1 / 21

Linux palomuurina (iptables) sekä squid-proxy

Linux palomuurina (iptables) sekä squid-proxy. Mikä Iptables on?. Linux-kernelin sisäänrakennetun palomuurin, netfilter , käyttöliittymä . Mukana kaikissa moderneissa Linux-distroissa. Käytetään komentoriviltä, mutta saatavissa myös graafisia käyttöliittymiä. . Iptables - historia.

braith
Download Presentation

Linux palomuurina (iptables) sekä squid-proxy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux palomuurina (iptables) sekä squid-proxy

  2. Mikä Iptables on? • Linux-kernelin sisäänrakennetun palomuurin, netfilter, käyttöliittymä. • Mukana kaikissa moderneissa Linux-distroissa. • Käytetään komentoriviltä, mutta saatavissa myös graafisia käyttöliittymiä.

  3. Iptables - historia • Netfilter/iptables -projektin aloitti Rusty Russell vuonna 1998 • Netfilter valmis 2000, jolloin se liitettiin kernelin versioon 2.3. Ipfw(BSD)-> ipfwadm(Kernel 2.0)-> Netfilter(Kernel 2.3(devel kernel)->2.2) -> Iptables(Kernel 2.4,2.6)

  4. Iptables - toiminta • Iptablesin käyttämiseen tarvitaan root-käyttäjän oikeudet. • Iptables luo netfilterille sääntöjä(rules), jotka kootaan ketjuiksi (chain) -> Ketjut muodostavat taulukoita (tables).

  5. Iptables - ipfwadm -> • Ipfwadm:in toimintamallissa oli lista sääntöjä, joista jokainen määritteli paketin, johon kyseinen sääntö kohdennettiin, ja toiminnan. • Ipchains lisäsi ajatusmallin sääntöjen ketjuttamisesta • Iptables laajensi ajatusta edelleen tekemällä näistä säännöistä tauluja.

  6. Iptables – tilallinen vs. tilaton • Iptablesissa käytetyt ratkaisut mahdollistavat tarkkojen ns. tilallisten (stateful) palomuurientoteuttamisen. Iptables pitää kirjaa muodostetuista TCP- ja UDP-yhteyksistä ja sallii vain yhteyteen kuuluvat paketit. • Ipchains:illavoidaanrakentaa vain tilattomia (stateless) ratkaisuja (poislukienmuutamahyvinrajoitettutapaus).

  7. Iptables - tulevaisuus • Iptableskorvautuutulevaisuudessanftables-nimisellätoteutuksella (tällähetkellä alpha-kehitysvaiheessa) tai • vaihtoehtoisesti Xtables2:illa (jonkaajatuspohjautuukernelissäjoolevankoodinhienovaraiseenparantamiseenasteittain).

  8. Iptables - mahdollisuudet • Iptablesillavoidaantoteuttaaerilaistenpalomuurienlisäksi: • NAT- japiilotus(masquerading)palveluitaInternet-yhteydenjakamiseksimuilleverkonkäyttäjille • Pakettienpriorisointia (Qos) • Jopabittitasonmuutoksialäpikulkevienpakettienotsikko(header)tietoihin. • Erityyppisiäproxyjä.

  9. Mikä Squid on? • Squid on välitys(proxy)- javälimuistipalvelu. • Pääasiallisetkäyttökohteet HTTP ja FTP. • On lisäksikattavatyökaluliikenteensuodatukseenjauudelleenohjaukseeniptablesinrinnalla. • TarkoitettuajettavaksiUnix-tyylisissäjärjestelmissä, muttatoimiimyös Windows-pohjaisissa.

  10. Squid - historia • Kehitystyönalullepanijaoli Duane Wessels, Coloradonyliopistosta. • Kehitystyönykyäänläheskokonaanvapaaehtoistyönvarassa. • Squid on ilmainenjajulkaistuGNU GPL:n (General Public License) alaisena.

  11. Squid – välimuisti • Välimuistilla (cache) tarkoitetaanInternetistähaettavantiedontallentamistapaikallisestivälimuistipalveluaajavallepalvelimelle. • Etuinahakuaikojenparaneminenjaulkoverkonkuormanaleneminen.

  12. Squid - välityspalvelu • Välityspalvelin(proxy) toimiivälittäjänäasiakaskoneenjaesimerkiksihaettavanwww-sivunpalvelimenvälissä. • Haluttaessakaikkiliikenneajetaanmäärätynvälityspalvelimenläpi. • Menetelmätarjoaaosittaisenanonymiteetinulkoverkkoonlähtevänliikenteensuhteen.

  13. Squid – välityspalvelu, vastuu • Menetelmätarjoaamyösmahdollisuudenrajoittaatietyillesivustoillepääsyä, tallentaahaetuistasivuistalogejajaasettaaosasivuista tai palveluistamäärätyillekäyttäjillesallituiksi. • Välitettäväätietoavoidaanhalutessamyöstarkkaillaesimerkiksiviruksienvaralta. • Mahdollisuudettuovatriskejäjavastuuta -> kirjesalaisuus, yksilönsuoja.

  14. Squid – transparent proxy • Käyttötarkoituksenmukaanerilaisiavälityspalvelintyyppejäon monia. • Squid on mahdollistakonfiguroidasuhteellisenhelpostihalutuntyyppiseksijatarvittaessamuuttaatoiseksi. • Yksinäistätyypeistä on läpinäkyvävälityspal-velin(transparent proxy), termillätarkoitetaanyleensäkeskeyttäväävälityspalvelinta.

  15. Squid – transparent proxy • Keskeyttävävälityspalvelineinäysuoraankäyttäjälle, eikävelvoitakäyttöönottoaasiakaspuolenkoneelta (käyttäjä on yleensätietämätönkyseisenproxynolemassaolosta) • Käyttäjäeiitsepääsevaikuttamaansiihen, ajetaankoliikenneproxynläpivaiei.

  16. Esimerkkiskripti iptablesille, jolla mahdollistetaan keskeyttävä proxy ja toteutetaan pakettisuodatusta #!/bin/shLAN="eth1"INTERNET="eth0"IPTABLES="/sbin/iptables” SQUID_SERVER=”192.168.0.1” SQUID_PORT=”3128” # Drop ICMP echo-request messages sent to broadcast or multicast addressesecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts# Drop source routed packetsecho 0 > /proc/sys/net/ipv4/conf/all/accept_source_route# Enable TCP SYN cookie protection from SYN floodsecho 1 > /proc/sys/net/ipv4/tcp_syncookies# Don't accept ICMP redirect messagesecho 0 > /proc/sys/net/ipv4/conf/all/accept_redirects# Don't send ICMP redirect messagesecho 0 > /proc/sys/net/ipv4/conf/all/send_redirects# Enable source address spoofing protectionecho 1 > /proc/sys/net/ipv4/conf/all/rp_filter# Log packets with impossible source addressesecho 1 > /proc/sys/net/ipv4/conf/all/log_martians

  17. # Flush all chains$IPTABLES --flush# Allow unlimited traffic on the loopback interface$IPTABLES -A INPUT -i lo -j ACCEPT$IPTABLES -A OUTPUT -o lo -j ACCEPT# Set default policies$IPTABLES --policy INPUT DROP$IPTABLES --policy OUTPUT DROP$IPTABLES --policy FORWARD DROP# Previously initiated and accepted exchanges bypass rule checking$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# Allow incoming port 22 (ssh) connections on LAN interface$IPTABLES -A INPUT -i $LAN -p tcp --destination-port 22 -m state \--state NEW -j ACCEPT# Allow incoming port (squid) connections on LAN interface$IPTABLES -A INPUT -i $LAN -p tcp --destination-port $SQUID_PORT -m state \--state NEW -j ACCEPT# Allow ICMP ECHO REQUESTS on LAN interface$IPTABLES -A INPUT -i $LAN -p icmp --icmp-type echo-request -j ACCEPT # DNAT port 80 request coming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy$IPTABLES -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT# if it is same system$IPTABLES -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT

  18. # Allow ssh on LAN interface$IPTABLES -A OUTPUT -o $LAN -p tcp --destination-port 22 -m state \--state NEW -j ACCEPT# Allow Squid-proxy on http, https $IPTABLES -A OUTPUT -o $INTERNET -p tcp --destination-port 80 -m state \--state NEW -j ACCEPT$IPTABLES -A OUTPUT -o $INTERNET -p tcp --destination-port 443 -m state \--state NEW -j ACCEPT# LOGDROP chain -> log and drop packets$IPTABLES -N LOGDROP$IPTABLES -A LOGDROP -j LOG$IPTABLES -A LOGDROP -j DROP# Drop all other traffic$IPTABLES -A INPUT -j LOGDROP# Have these rules take effect when iptables is started/sbin/service iptables save TAI /etc/rc.localin sisään rivi ./path/to/firewall/firewall.script (sisältää mainitun skriptin, tiedostolla ajo-oikeudet -> chmod +x)

  19. Squid - asennus • Debianissa: • su • apt-get install squid • nano –w /etc/squid/squid.conf (4350 riviä, joka pääasiassa koostuu inline dokumentoinnista) • /etc/init.d/squid restart

  20. Perusasetuksetlöydyttävä: • cache_dir • Välimuistinhakemisto, tallennustapajakoko • Esimerkiksi: cache_dirufs /usr/local/squid/cache 100 16 256 (100 tarkoittaa 100Mt välimuistinkokoa.) • http_port • Välimuistinportti (tämäselaimen cache-kenttään), 3128 vakio. • cache_effective_user& cache_effective_ group • Käyttäjäjaryhmä, jonkaoikeuksillasquid:iaajetaan. Käyttäjälläoltavaluku-/kirjoitusoikeudetasetetunvälimuistinhakemistoonja log-tiedostoihin. Määritellään proxyn toimintatila(Tässä tapauksessa keskeyttävä(intercepting): • httpd_accel_host virtual • httpd_accel_port 80 • httpd_accel_with_proxy on • httpd_accel_uses_host_header on • acllansrc192.168.0.1 192.168.0.0/24 <- sallitutyhteydenottajat • http_accessallow localhost • http_accessallow lan

  21. Lähteet • http://en.wikipedia.org/wiki/Internet_Cache_Protocol • http://en.wikipedia.org/wiki/Iptables • http://en.wikipedia.org/wiki/Network_address_translation • http://en.wikipedia.org/wiki/Proxy_server • http://en.wikipedia.org/wiki/Squid_%28software%29 • http://fi.wikipedia.org/wiki/Iptables • http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html • http://www.deckle.co.za/squid-users-guide/ • http://www.frozentux.net/documents/iptables-tutorial/ • http://www.linuxp2p.net/mirrors/www.brandonhutchinson.com/squid_iptables_firewall.html • http://www.netfilter.org/ • http://www.squid-cache.org/ • http://wiki.squid-cache.org/ConfigExamples/FullyTransparentWithTPROXY?highlight=%28ConfigExamples/Strange%29|%28ConfigExamples/Reverse%29|%28ConfigExamples/Authenticate%29|% • http://www.visolve.com/squid/Squid_tutorial.php

More Related