Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Linux palomuurina (iptables) sekä squid-proxy

Samankaltaiset esitykset


Esitys aiheesta: "Linux palomuurina (iptables) sekä squid-proxy"— Esityksen transkriptio:

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) palomuurien toteuttamisen. Iptables pitää kirjaa muodostetuista TCP- ja UDP-yhteyksistä ja sallii vain yhteyteen kuuluvat paketit. Ipchains:illa voidaan rakentaa vain tilattomia (stateless) ratkaisuja (poislukien muutama hyvin rajoitettu tapaus).

7 Iptables - tulevaisuus
Iptables korvautuu tulevaisuudessa nftables-nimisellä toteutuksella (tällä hetkellä alpha-kehitysvaiheessa) tai vaihtoehtoisesti Xtables2:illa (jonka ajatus pohjautuu kernelissä jo olevan koodin hienovaraiseen parantamiseen asteittain).

8 Iptables - mahdollisuudet
Iptablesilla voidaan toteuttaa erilaisten palomuurien lisäksi: NAT- ja piilotus(masquerading) palveluita Internet-yhteyden jakamiseksi muille verkon käyttäjille Pakettien priorisointia (Qos) Jopa bittitason muutoksia läpikulkevien pakettien otsikko(header)tietoihin. Erityyppisiä proxyjä.

9 Mikä Squid on? Squid on välitys(proxy)- ja välimuistipalvelu.
Pääasialliset käyttökohteet HTTP ja FTP. On lisäksi kattava työkalu liikenteen suodatukseen ja uudelleenohjaukseen iptablesin rinnalla. Tarkoitettu ajettavaksi Unix-tyylisissä järjestelmissä, mutta toimii myös Windows-pohjaisissa.

10 Squid - historia Kehitystyön alullepanija oli Duane Wessels, Coloradon yliopistosta. Kehitystyö nykyään lähes kokonaan vapaaehtoistyön varassa. Squid on ilmainen ja julkaistu GNU GPL:n (General Public License) alaisena.

11 Squid – välimuisti Välimuistilla (cache) tarkoitetaan Internetistä haettavan tiedon tallentamista paikallisesti välimuistipalvelua ajavalle palvelimelle. Etuina hakuaikojen paraneminen ja ulkoverkon kuorman aleneminen.

12 Squid - välityspalvelu
Välityspalvelin(proxy) toimii välittäjänä asiakaskoneen ja esimerkiksi haettavan www-sivun palvelimen välissä. Haluttaessa kaikki liikenne ajetaan määrätyn välityspalvelimen läpi. Menetelmä tarjoaa osittaisen anonymiteetin ulkoverkkoon lähtevän liikenteen suhteen.

13 Squid – välityspalvelu, vastuu
Menetelmä tarjoaa myös mahdollisuuden rajoittaa tietyille sivustoille pääsyä, tallentaa haetuista sivuista logeja ja asettaa osa sivuista tai palveluista määrätyille käyttäjille sallituiksi. Välitettävää tietoa voidaan halutessa myös tarkkailla esimerkiksi viruksien varalta. Mahdollisuudet tuovat riskejä ja vastuuta -> kirjesalaisuus, yksilönsuoja.

14 Squid – transparent proxy
Käyttötarkoituksen mukaan erilaisia välityspalvelintyyppejä on monia. Squid on mahdollista konfiguroida suhteellisen helposti halutuntyyppiseksi ja tarvittaessa muuttaa toiseksi. Yksi näistä tyypeistä on läpinäkyvä välityspal-velin(transparent proxy), termillä tarkoitetaan yleensä keskeyttävää välityspalvelinta.

15 Squid – transparent proxy
Keskeyttävä välityspalvelin ei näy suoraan käyttäjälle, eikä velvoita käyttöönottoa asiakaspuolen koneelta (käyttäjä on yleensä tietämätön kyseisen proxyn olemassaolosta) Käyttäjä ei itse pääse vaikuttamaan siihen, ajetaanko liikenne proxyn läpi vai ei.

16 Esimerkkiskripti iptablesille, jolla mahdollistetaan keskeyttävä proxy ja toteutetaan pakettisuodatusta #!/bin/sh LAN="eth1" INTERNET="eth0" IPTABLES="/sbin/iptables” SQUID_SERVER=” ” SQUID_PORT=”3128” # Drop ICMP echo-request messages sent to broadcast or multicast addresses echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Drop source routed packets echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route # Enable TCP SYN cookie protection from SYN floods echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Don't accept ICMP redirect messages echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # Don't send ICMP redirect messages echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects # Enable source address spoofing protection echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter # Log packets with impossible source addresses echo 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 /etc/rc.localin sisään rivi
# 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 Perusasetukset löydyttävä:
cache_dir Välimuistin hakemisto, tallennustapa ja koko Esimerkiksi: cache_dir ufs /usr/local/squid/cache (100 tarkoittaa 100Mt välimuistin kokoa.) http_port Välimuistin portti (tämä selaimen cache-kenttään), 3128 vakio. cache_effective_user & cache_effective_ group Käyttäjä ja ryhmä, jonka oikeuksilla squid:ia ajetaan. Käyttäjällä oltava luku-/kirjoitusoikeudet asetetun välimuistin hakemistoon ja 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 acl lan src /24 <- sallitut yhteydenottajat http_access allow localhost http_access allow lan

21 Lähteet http://en.wikipedia.org/wiki/Internet_Cache_Protocol


Lataa ppt "Linux palomuurina (iptables) sekä squid-proxy"

Samankaltaiset esitykset


Iklan oleh Google