Linux palomuurina (iptables) sekä squid-proxy

Slides:



Advertisements
Samankaltaiset esitykset
Tietokannat: MySQL ja PostgreSQL. Yleistä • Relaatiotietokantaohjelmisto, jolla voidaan luoda, ylläpitää ja muuttaa ja hallinnoida tietokantoja • Avoin.
Advertisements

Tietokoneen käyttöjärjestelmä
TOSIBOX LOCK Turvallisuusasetukset
Johdatus Linuxiin Mauri Heinonen
Tech days ● 2010 Finland. tech days ● 2010 Finland.
Filipp Koivu, Tomi Virtanen, Niclas Arvela
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
1 Java-kieleen pohjautuvien ohjelmien käyttökohteita Ohjelmat Appletit JavaBeans JavaScript Java Server Pages (JSP) Java Servletit J2ME, mobiililaitteet.
1.
1 1.
NAT NAT – Network Address Translation PAT – Port Address Translation NAPT – Network Address and Port Transalation.
Internetin toimintaperiaate ja käyttötavat
Linuxin rakenne ja ominaisuudet
Lähiverkot -erikoistyökurssi Maiju Kansanen 1 NIS Network Information System.
vuorovaikutteiset www-sivut 1.Asiakas-palvelinmalli kuvana Request Response request.asp response.asp.
VMware workstation. VMware •Virtual Machine •Yhtiö perustettu vuonna 1998 •1999 julkaisi ensimmäisen tuotteen: VMware for workstations •2001 tuli VMware.
Ubuntuun LAMP server sekä Samba tiedostonjako palvelu.
Samba seminaari. Historiaa  Ensimmäinen versio 1992  Kehittäjä Andrew TridgellAndrew Tridgell.
W w w. h a m k. f i Wiki koulutus Leenakaija Lehto
1 1.
YASA Simple Library Ahmed Alkaleedy & Yll Syla.
 Eristävä moniosainen järjestelmä  Suodattaa suojattavan verkon ja vaarallisemman verkon välisiä yhteyksiä  Voidaan toteuttaa joko ohjelmistolla tai.
Valtteri, Simo, Mika Myllytulli, My-tlpt09E 2010
Sähköinen portfolio - kyvyt.fi
Java-ohjelmien vianjäljitys Pietu Pohjalainen. Vianjäljitin Vianjäljitin (debuggeri) on ohjelma, jolla voidaan seurata toisen ohjelman suoritusta Tietotekniikan.
DNS-Nimipalvelin Eine Vahala 2006.
DHCP & DNS Joni Härmä EL3.
IDS: Intrusion Detection System IPS: Intrusion Prevention System Antti Mattila Mikko Toivonen.
Novell NetWare Verkkokäyttöjärjestelmä. NOS (Network Operating System) Yleensä järjestelmäriippumaton. Antaa: Läpinäkyvän (käyttäjän kannalta protokollavapaan)
Ville Ahola EL5. Yleistä  Avoimen lähdekoodin www- serveriohjelma  Lähes jokaiseen käyttöjärjestelmään löytyy oma versio  Ollut suosituin www-palvelin.
vuorovaikutteiset www-sivut1 Palvelinpuolen www- ohjelmointi Dynaaminen Internet  käyttäjän tai selaimen tunnistaminen  käyttäjän toiveiden.
Mandrake linux Seminaarityö. Linux -Linux on vapaa Unix-tyyppinen käyttöjärjestelmä. Tavallisesti Linuxista puhuttaessa tarkoitetaan "levitysversiota"
Ossi Rönnberg & Atte Koste OH5
JohdantotMyn1 Johdanto Verkkopalvelun koostamiseen käytetään koosteohjelmia ja ohjelmointikieliä. Verkkopalvelun toteutus voi vaatia myös palvelinohjelmointia.
Linux Palomuurina V Anssi Hohti & Jari Ravantti.
JavaStation haastaa PC:n oppilaitoksissa Pasi Häkkinen TTKK/DMI/Hypermedialaboratorio Multimedian monet muodot, Tampere-talo.
Gentoo Linux Jarno Niemelä & Mika Koivistoinen. Historia Daniel Robbins aloitti kehityksen 1999 Daniel Robbins aloitti kehityksen 1999 Enoch Enoch tarkoitus.
Lyhyt johdanto CVS:ään (ict1td002 - Ohjelmointitaito)
Markus Riihelä Mikko Sallinen. Yleistä Samba on lähes kaikilla UNIX ja UNIX- tyylisillä käyttöjärjestelmillä pyörivä tiedosto- ja tulostinpalvelin. Samba.
Linux palomuurina Kimmo Karhu, EL0A
HTTP (c) Reino Aarinen, HTTP yhteyskäytäntö Web asiakasohjelmat (yleensä erilaiset selaimet) käyttävät HTTP protokollaa tiedon siirtoon WWW sivustojen.
LINUX PALOMUURINA / IPTABLES A Linux © Teemu Turkia 2005.
Rautaa rajalle! Rautapalomuurit verkon reunalla
DNS ja DHCP palvelut Linuxissa
Joni Kelloniitty & Niko Säyriö
APACHE Kurssi: V Linux Sami Karjalainen OH3 Mika Haaja OH5.
Samba - perustietoja Samba on ilmainen ”Open Source” –ohjelma (GNU GPL). Sitä on kehitetty vuodesta 1992 alkaen. Toimii mm. tiedosto- ja tulostuspalvelimena.
Jean Danielsbacka EL3 Linux. Samba? ● Tiedosto- ja tulostuspalvelin, joka toimii lähes missä tahansa TCP/IP:tä tukevassa ympäristössä ● Samba on ilmainen.
Linux-työ www-proxy Jussi Murtola. Proxyn toiminnallisuus.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
Palomuuri Linux-harjoitustyö
Windows 2000 Jukka Stranden Marko Suhonen Käyttöjärjestelmät Seminaari 2006.
Linux – Palomuuri (iptables) Antti Almgren Tite
Intrusion detection system IDS Erik Taavila TITE III.
Lähiverkot -erikoistyökurssi Linux -työ Network File System 22.4 Jarkko Pulli.
Palomuuri Valtteri Virtanen. Yritysten uhkakuvia Liiketietojen menetys Kyvyttömyys taata tietojen eheys Saatavuuden takaaminen Tietotekniikkainfrastruktuurin.
Linux-työ: WWW-Proxy Teemu Niemelä. Mikä on proxy? Proxyksi kutsutaan palvelinta, joka tekee jotakin käyttäjän oman selaimen hyväksi tai puolesta. Kansankielellä.
Quality of Service Elina Koskela. QoS – Palvelun laatu Takaa sujuvan liikenteen verkossa Ottaa huomioon liikenteen luonteen Ottaa huomioon eri käyttäjien.
WWW-palvelin Apache HTTP Server. Yleistä Siirtää HTTP-protokollaa käyttäen pyydetyt tiedostot Internetin välityksellä Portti 80 varattu HTTP-protokollalle.
Tietokantapalvelimet -Mikko Pehkonen, Tite4. Tietokantapalvelimista  DBMS (Database Management Systems)  Tarkoitettu tiedon keskitettyyn hallintaan.

Tiedon suojaaminen ja turvaaminen
Linux palomuurina ( IPTABLES )
Sisältö PostgreSQL MySQL Historia yms. ORDBMS Ominaisuuksia Asennus
Istuntojen hallinta PHP-sovelluksessa
Työaseman lisäämisen asetukset
Linux -järjestelmät Teemu karstila ja antti juvonen
Riku Heino ja Milo Hakalahti
Samba Tuukka Toropainen.
Esityksen transkriptio:

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 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)

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).

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.

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).

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).

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ä.

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.

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.

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

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.

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.

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.

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.

Esimerkkiskripti iptablesille, jolla mahdollistetaan keskeyttävä proxy ja toteutetaan pakettisuodatusta #!/bin/sh LAN="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 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

# 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

/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)

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

Perusasetukset löydyttävä: cache_dir Välimuistin hakemisto, tallennustapa ja koko Esimerkiksi: cache_dir ufs /usr/local/squid/cache 100 16 256 (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 192.168.0.1 192.168.0.0/24 <- sallitut yhteydenottajat http_access allow localhost http_access allow lan

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