IP maskeraad
IP maskeraadi kuidas-teha
IP maskeraad on eriline tehnika sisevõrgu arvutite ühendamiseks Internetiga Tüüpiliselt on see ühendus ühepoolne: sisevõrgu arvutitest saab kasutada Interneti teenuseid, kuid reeglina ei saa Internetist kasutada sisevõrgu teenuseid. Oluline on arvestada, et maskeraadiga ühendatud sisevõrgu arvutitele on tavaliselt omistatud IP aadressid privaataadresside ruumist (nt võrgust 192.168.1.0/24, 10.0.0.0/8 jne).
IP maskeraadi eelisteks on:
* saab teha Interneti teenused kättesaadavaks suuremale hulgale töökohtadele, kui teil on kasutada avalikke IP aadresse * saab osa IP maskeraadiga kaasnevast turvalisusest - kuna sisevõrgu arvutile on omistatud privaat-aadressid, siis ei saa neid otseselt rünnata - paketid ei jõua lihtsalt kohale. * maskeraadi kasutamiseks ei ole tarvis tööjaamadesse installeerida täiendavat tarkvara
IP maskeraadiga kaasneb turvalisus vaid seni, kuni maskeeriv masin ise on turvaline. Tavaliselt on maskeeriv masin ainus sisevõrgu ja Interneti kokkupuute-punkt ning seetõttu on oluline maskeeriv masin kindlustada st konfigureerida tulemüürina.
IP maskeraadi puudusteks on:
* mitte päris kõik teenused pole rahuldavalt maskeraaditavad, näiteks videokonverentsid. Siiski enamus töörahvale olulisi teenuseid on maskeeritud arvutitest täiesti kasutatavad * maskeeritud võrgu arvutisse on keeruline tööle seada serverit, mis pakub avalikku so Internetist kasutatavat teenust
Kuigi järgnevas näites kõneleme ühest kohtvõrgust, saab sarnaselt Internetiga ühendada ka mitut kohtvõrku. Võrgu skeem
Et maskeraad edukalt tööle saada, peaks teil olema suhteliselt selge ettekujutus, kuidas teie arvutid võrgus paiknevad ning millised IP aadresse te kasutate. Näiteks kirjeldab seda selline skeem
(( ..- ) ( ) ( ) ( ))) INTERNET ( . -) ((. ) (---- ) | | __|__ | | ISPi võrguseade |__ __| 193.40.222.63 | | | | __|__ 193.40.222.62 | | teenusepakkuja ruuter, näiteks NOKIA | | _ _|_ _ _|_ _ _ _ teie asutuse piir _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | | |__ __| ___ avalik | 193.40.223.97 | | server | |___| 193.40.223.99 | vahevõrk | |---|--------|------ 193.40.223.96/28 ---------------|------------| | | | eth0 193.40.223.98 ---|--- | | | | Linuxi masin | | ---|--- | eth1 192.168.1.1 | |-----|--- 192.168.1.0/24 ---|---- ... --|------| sisevork __|__ __|__ | | | | |_____| |_____| 192.168.1.2 192.168.1.254
Skeemil on kujutatud Internetiühenduse ja kohtvõrgu maskeraadimise seisukohtast kõik olulised sõlmed ja parameertid.
Teie asutuse piiri kujutavast joonest allapoole jääb asutusesisene võrk, miskoosneb kahest alamvõrgust:
* vahevõrk - selles võrgus kasutatakse avalikke IP aadresse ning sinna ühendatud masinad on otse nähtavad Internetist * sisevõrk - selles võrgus kasutatakse privaat IP aadresse ning seal asuvad masinad on maskeraaditud Linuxi serveri poolt
Praktiliselt saab kõike avalikke teenuseid pakkuda ka Linuxi masinast, kuid põhimõtteliselt on korrektsem kasutada selleks eraldi masinat, avalikku serverit (193.40.223.99). Järgnevas ei kirjeldada kuidas kasutada või konfigureerida avalikku serverit, sisevõrgu jaoks on ta lihtsalt üks väljas Internetis asuv masin.
Välisvõrgu võrguseadmete aadressid teatab teile teenusepakkuja, näites kasutame järgmisi:
* 193.40.223.96 - vahevõrgu aadress * 193.40.223.111 - vahevõrgu leviaadress * 193.40.223.97 - teenusepakkuja ruuteri vahevõrgupoolne IP aadress * 193.40.223.98 - Linuxi masina vahevõrgupoolse seadme IP aadress * eth0 - Linuxi masina välisvõrgu poolse seadme nimi
Maskeeritud sisevõrgu arvutid paigutatakse tavaliselt privaat aardessruumi, näiteks võrku 192.168.1.0 kus on 255 IP aadressi:
* 192.168.1.0 - sisevõrgu aadress * 192.168.1.255 - sisevõrgu leviaadress * 192.168.1.1 - Linuxi masina sisevõrgu poolse seadme IP aadress * 192.168.1.2 ... 192.168.1.254 - sisevõrgu tööjaamade IP aadressid * eth1 - Linuxi masina sisevõrgu poolse seadme nimi
Skeemil on suhteliselt meelevaldselt valitud väliseks võrguseadmeks eth0 ja sisemiseks eth1, võib olla ka vastupidi, see pole oluline; alltoodud näidete kasutamisel tuleb nad selles suhtes kohandada oma olukorrale. Maskeraad
Ilma maskeraadi kasutamata saab interneti teenuseid tarvitada vaid Linuxi arvutist; tööjaamadest saab tarvitada ainult Linuxi masina enda poolt pakutvaid teenuseid. Selleks tuleb Linuxi masina võrguseadmed konfigureerida ning seada ruutingud kumbagi võrku ning ka Internetti. Näiteks selliselt
bash# ifconfig eth0 193.40.223.98 bash# ifconfig eth1 192.168.1.1 bash# route add -net 192.40.223.96 netmask 255.255.255.240 eth0 bash# route add -net 192.168.1.0 netmask 255.255.255.0 eth1
Viimasel ajal pole kahte viimast käsku vaja andagi, esimesed kaks seadistavad automaatselt enda võrkudesse ruutingu ära. Veenduge selles andes käsu route
bash# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 193.40.223.96 0.0.0.0 255.255.255.240 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 ...
Paraku ei saa Linuxi masinat kasutada tavalises mõttes ruuterina kuna teil pole sisevõrgu klientide jaoks IP aadresse. Põhimõtteliselt saavad nad pakette Internetti saada, kuid see, kellele nad läksid ei saa neile vastuseid saata, kuna lähteaadress pole avalikult kasutatav IP aadress.
Eeldusel, et kumbagi võrku on ruuting tehtud, saab teha sisevõrgu masinatele siiski Interneti teenused kättesaadavaks. Selleks tuleb sisevõrgust Internetti suunduva IP paketi lähteaadressiks kirjutada Linuxi masina Interneti poolse võrguseadme aadress ning jätta meelde milliselt sisevõrgu masinast pakett tuli ja kuhu see läks. Paketid vastuvõtnud Interneti server saadab vastuse tagasi Linuxi masinale ning see peab toimeta selle edasi andmevahetuse algatanud sisevõrgu masinale.
Sellise skeemi kohaselt tegutsedes jääb sisevõrgus oleval kliendil mulje, et ta suhtleb otse Interneti serveriga. Interneti server aga suhtleb enda meelest Linuxi masinaga. Mida on vaja teha maskeraadi töölesaamiseks
Sõltuvalt teie olemasolevast asjade seisust peate tegema rohkem või vähem samme maskeraadi tööleseadmiseks. Näiteks, kui teie Linuxi kernel ei toeta maskeraadi, ei pääse te muidu, kui peate hankima sobiva kerneli.
Teil on tarvis:
1. teada eelmise punkti skeemil toodud vahevõrgu parameetreid, selle informatsiooni saate te oma teenusepakkujalt 2. konfigureerida sisevõrgu tööjaamad eelmises punktis toodud skeemile vastavalt (vt. Linuxi võrguotoe seadistamise KT, Windowsi masina võrgutoe kongfigureerimine) 3. konfigureerida Linuxi masina võrguseadmed vastavalt eelmises punktis toodud skeemile (vt. Linuxi võrguotoe seadistamise KT) 4. veenduda, et Linuxi masinast paistab vahe- ja sisevõrk (vt. Võrgudiagnostika) ning Internet vajadusel muuta Linuxi masina või tööjaamade konfiguratsiooni 5. teha kindlaks kas Linuxi masinas leidub maskeraadimiseks vajalik tarkvara ning vajadusel see lisada (vt. punkt Tarkvara) 6. konfigureerida maskeraad (vt. punkt Maskeraadi käivitamine) 7. kindlustada Linuxi masin (vt. punkt Linuxi masina kindlustamine)
Kolm viimast sammu on kirejeldatud järgnevates punktides, näidetes jätkame skeemil toodud võrguseadmete parameetrite väärtustega, teie peate ilmselt asendama need oma vastavate väärtustega. Tarkvara
Maskeraadi tegemine toimub 2.2.x tuumaga programmi Ipchains abil, mis on tavaliselt Linuxi distributsiooniga kaasas ja vaikimisi installeeritud. Uurige, kas teie süsteemis on programm ipchains olemas
bash# which ipchains /sbin/ipchains
Kui te kasutate ühte alltoodud Linuxi distributsioonidest või selle uuemat versiooni, siis tõenäoliselt tuleb ta vaikimisi koos 2.2.x tuumaga ning sisaldab ipchainsi utiliite:
* Caldera v2.2 * Debian v2.1 * Linux Mandrake v6.0 * Mandrake v7.0 * Redhat v6.0 * Slackware v7.0 * SuSE v6.1 * TurboLinux v6.0
Vajadusel tarkvara ise kompileerida saab Ipchainsi kopeerida aadressilt http://netfilter.kernelnotes.org/ipchains/.
Kuna Ipchains töötab tuuma tasemel, siis on tihti tarvis sobiv tuum kompileerida. Olulised valikud on (tuum 2.2.17)
[ * ] Network firewalls [ * ] IP: firewalling [ * ] IP: masquerading [ * ] IP: ICMP masquerading
Esmalt tasub katsetada olemasoleva tuumaga.
Lisaks tuumale kompileeritakse tehtud valikute korral käsuga 'make modules' teatud teenuste (FTP, IRC jt) maskeraadiks vajalikud moodulid
bash:~# ls -l /lib/modules/2.2.17/ipv4/ total 28 -rw-r--r-- 1 root root 2512 Nov 25 17:28 ip_masq_cuseeme.o -rw-r--r-- 1 root root 4652 Nov 25 17:28 ip_masq_ftp.o -rw-r--r-- 1 root root 3308 Nov 25 17:28 ip_masq_irc.o -rw-r--r-- 1 root root 3040 Nov 25 17:28 ip_masq_quake.o -rw-r--r-- 1 root root 5024 Nov 25 17:28 ip_masq_raudio.o -rw-r--r-- 1 root root 4992 Nov 25 17:28 ip_masq_user.o -rw-r--r-- 1 root root 2904 Nov 25 17:28 ip_masq_vdolive.o
Olemasoleva tuuma versiooni saab näha käsuga
bash$ uname -a Linux zoo 2.2.17 #2 Sat Nov 25 17:22:33 CET 2000 i686 unknown ning sellele, et olemasolev tuum toetab Ipchainsi viitab faili /proc/net/ip_fwchains olemasolu. Maskeraadi käivitamine Maskeraadi käivitamiseks sobib alustuseks moodustada sarnane kooriku skript masq.sh #!/bin/sh ############################################# ## TEHKE SIIN VAJALIKUD MUUDATUSED ## ############################################# # välisseade vs vs="eth1" # sisevõrk sv sv="192.168.1.0/255.255.255.0" ############################################# ## ALLPOOL POLE VAJA MIDAGI MUUTA ## ############################################# # # seadme masina pakette edasisuunama echo 1 > /proc/sys/net/ipv4/ip_forward # tekitame sobiva algseisu ipchains -F input ipchains -F output ipchains -F forward # lubame piiranguteta igasugust liiklust ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT # korraldame sisevõrgu maskeerimise ipchains -A forward -i $vs -s $sv -d 0/0 -j MASQ
Anname skriptile käivitamiseks vajalikud õigused
bash# chmod 744 masq.sh
ning käivitame
bash# ./masq.sh
Siiamaani kehtestatud reegleid saab vaadata käsuga ipchains selliselt
bash# ipchains -L -n Chain input (policy ACCEPT): Chain forward (policy ACCEPT): target prot opt source destination ports MASQ all ------ 192.168.1.0/24 anywhere n/a Chain output (policy ACCEPT):
Soovides reegleid muuta, redigeerige masq.sh faili ning käivitage ta uuesti.
Toodud näide töötab, kuid ei sobi pikaajaliseks praktiliseks kasutamiseks, kuna ta sõna otseses mõttes jätab liiga palju auke. Alustada aga on mõtet just sellest, sest väikese arvu reeglitega on lihtsam suuri vigu leida. Kui maskeraad töötab, siis tuleb tõhustada Linuxi masina kui tulemüüri omadusi.
Maskeraadi õnnestunud konfigureerimisest annab tunnistust see, et kohtvõrgu tööjaamadest saab kasutada levinud interneti teenuseid, näiteks veebi. Linuxi masina kindlustamine
Kui te olete saanud eelmises punktis toodud näite eeskujul tööle maskeraadi, on tarvis kindlustada Linuxi masinat ja sisevõrku mittesoovitavate külalistuste eest.
Kindlustame Linuxi masina IP pakettide filtreerimse abil, mida võimaldab korraldada samuti programm ipchains. IP pakettide filtreerimisel kontrollitakse igast võrguseadmest läbi liikuvaid IP pakette ning otsustatakse millises suunas liikuvaid milliseid pakette lubada (ACCEPT) või keelata (REJECT). Näiteks käsk
ipchains -A input -i eth0 -d 193.40.223.98 80 -p tcp -j ACCEPT
lisab ahelasse input (-A input) reegeli, mis näitab, et tuleb sisse lubada (-j ACCEPT) läbi võrguseadme eth0 (-i eth0) saabuvad TCP paketid (-p tcp), mis suunduvad aadressile 193.40.223.98 ja pordile 80 (-d 193.40.223.98 80).
Kõige lihtsamal juhul asuvad reeglid vaid kolmes ahelas
* input - toimub võrguseadmest sisenevate pakettide kontroll * output - toimub võrguseadmest väljuvate pakettide kontroll * forward - toimub võrguseadmesse edasisuunatud pakettide kontroll, selles ahelas toimub muuseas ka maskeraad
Ühes ahelas on tavaliselt mitu reeglit; kui näiteks pakett siseneb, siis asutakse järjest läbi vaatama input ahela reegleid. Rakendatakse esimene reegel, millega pakett klappis ning võetakse vaatluse alla järgmine pakett.
Seame eesmärgiks
* lubada Linuxi masinast ja sisevõrgust külastada kõiki interneti teenuseid (praktiliselt küll vaid neid, mida maskeraad toetab, kuid enamlevinuid teenused on kasutatavad) * lubada Internetist külastada vaid teatud Linuxi masina teenuseid * lubada sisevõrgust külastada kõiki Linuxi masina teenuseid
Linuxi masinas töötavad järgmised teenused ning nad kasutavad tabelis tootud vaikimisi porte. Tabelis on samuti näidatud milliseid teenused saab kuskilt tarvitada
teenus tcp port udp port sisevõrgule välisvõrgule FTP 21 - jah jah SSH 22 - jah jah Epost 25 - jah jah Veeb 80 - jah jah POP3 110 - jah ei Identd 113 - jah jah Samba 137, 139 - jah ei IMAP 143 - jah ei
Sõnastatud nõudeid täidab selline, muudetud masq.sh
#!/bin/sh # need moodulid tagavad vähemvalulise FTP, RealAudi ja IRC kasutamise # maskeraaditud sisevõrgust modprobe ip_masq_ftp.o modprobe ip_masq_raudio.o modprobe ip_masq_irc.o # seame masina pakette edasisuunama echo 1 > /proc/sys/net/ipv4/ip_forward ############################################# ## TEHKE SIIN VAJALIKUD MUUDATUSED ## ############################################# # kasutame allpool muutujaid # välisvõrguga suhtleva võrguseademe nimi vs="eth0" # sisevõrguga suhtleva võrguseadme nimi ss="eth1" # välisvõrguga suhtleva võrguseadme IP aadress vip="193.40.223.98" # sisevõrguga suhtleva võrguseadme IP aadress sip="192.168.1.1" # sisevõrgu võrgunumber ja võrgmask sv="192.168.1.0/255.255.255.0" ############################################# ## ALLPOOL POLE VAJA MIDAGI MUUTA ## ############################################# # puhastame ahelad ipchains -F input ipchains -F output ipchains -F forward # kehtestame ahelate vaiketegevuse ehk policy ipchains -P input REJECT ipchains -P output REJECT ipchains -P forward REJECT # ALLPOOL KASUTATUD 'SISSE' JA 'VÄLJA' ON ARVESTATUD # LINUXI MASINA SUHTES # Nii lähevad näiteks Linuxi masinast sisevõrku suunduvad paketid samuti # selles mõttes välja # # VÄLISSEADE # # LÄBI VÄLISSEADME VÄLJA # # Oleme viisakad: Linuxi masinast ei saa välja paketid # mille lähteaadressiks on privaatvõrk # kui selline asi toimub on tegemist kohaliku pahalasega ipchains -A output -i $vs -s 192.168.0.0/255.255.0.0 -d 0/0 -j REJECT -l ipchains -A output -i $vs -s 172.16.0.0/255.240.0.0 -d 0/0 -j REJECT -l ipchains -A output -i $vs -s 10.0.0.0/255.0.0.0 -d 0/0 -j REJECT -l ipchains -A output -i $vs -s 127.0.0.0/255.0.0.0 -d 0/0 -j REJECT -l # välja saab piiranguteta kõikjale ipchains -A output -i $vs -s $vip -d 0/0 -j ACCEPT # igaks juhuks logime kõike muud väljuvat ipchains -A output -i $vs -j REJECT -l # LÄBI VÄLISSEADME SISSE # # Millised Linuxi masina teenused peavad olema välisvõrgust kättesaadavad # # privaatvõrkudest lähtuvad paketid # ei saa siseneda läbi välise seadme # Tavaliselt on sellised paketid kahtlased - logime ipchains -A input -i $vs -s 192.168.0.0/255.255.0.0 -d $vip -j REJECT -l ipchains -A input -i $vs -s 172.16.0.0/255.240.0.0 -d $vip -j REJECT -l ipchains -A input -i $vs -s 10.0.0.0/255.0.0.0 -d $vip -j REJECT -l ipchains -A input -i $vs -s 127.0.0.0/255.0.0.0 -d $vip -j REJECT -l # mida teha välisvõrgu leviaadressile saadetud # pakettidega, küsimus laiale ringile ? # sisse saavad seest algatatud ühendustele vastuseks # saabuvad tcp paketid ipchains -A input -i $vs -d $vip -p tcp ! -y -j ACCEPT # sisse saavad välisvõrgust saabuvad udp paketid # paraku tuleb kõik vastu võtta, ka need mis # tulevad omaalgatuslikult; siiski võtame vastu # ainult privilegeerimata portidele # va NFSi port 2049 ipchains -A input -i $vs -d $vip 2049 -p udp -j REJECT -l ipchains -A input -i $vs -d $vip 1024: -p udp -j ACCEPT # sisse saavad icmp paketid (ping, traceroute) ipchains -A input -i $vs -d $vip -p icmp -j ACCEPT -l # välisvõrgust tuleb sisse lasta # meie poolt välisvõrgule pakutavatele teenustele vastavad paketid # nende vastused saavad välja kuna me laseme # välja väga ladnalt ipchains -A input -i $vs -d $vip 21 -p tcp -j ACCEPT ipchains -A input -i $vs -d $vip 22 -p tcp -j ACCEPT ipchains -A input -i $vs -d $vip 25 -p tcp -j ACCEPT ipchains -A input -i $vs -d $vip 80 -p tcp -j ACCEPT ipchains -A input -i $vs -d $vip 113 -p tcp -j ACCEPT # aktiivne FTP, kliendi jaoks ipchains -A input -i $vs -s 0/0 20 -d $vip 1024: -p tcp -y -j ACCEPT # passiivne FTP, serveri jaoks ipchains -A input -i $vs -s 0/0 1024: -d $vip 1024: -p tcp -y -j ACCEPT # muu väljast siseneva keelame ja logime ipchains -A input -i $vs -j REJECT -l # LÄBI SISESEADME SUUNATUD SISSE # # Kohtvõrgu kliendid saavad külastada kõiki # Linuxi masina ja interneti teenuseid # ipchains -A input -i $ss -s $sv -d 0/0 -j ACCEPT # kõik muud keelame ja logime ipchains -A input -i $ss -d 0/0 -j REJECT -l # # SISESEADE # # LÄBI SISESEADME VÄLJA # # 3. Sisevõrku saavad kõik paketid piiranguteta # Kaitse välismaailma eest toimub välisseadme reeglitega ipchains -A output -i $ss -s 0/0 -d $sv -j ACCEPT
# muu keelame ja logime ipchains -A output -i $ss -j REJECT -l # KOHTSEADE # serverist saab lo0 seadet kasutada igatpidi ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT # MASKERAAD # korraldame kohtvõrgu maskeraadimise ipchains -A forward -i $vs -s $sv -d 0/0 -j MASQ
Kuna Linuxi 2.2.x kernel ja Ipchains ei võimalda lihtsasti eristada seest saadetud UDP paketile vastusesks tulevat paketti väljast omaalgatuslikult saadetud UDP paketist, siis toodud näites lubatakse liiga vabalt UDP pakette sisse. So kõikidesse UDP portidesse üle 1024 va 2049. Vajadusel blokeerige või laske UDP porte vabaks, näiteks kui teil töötab Linuxi masinas avalik nimeserver.
Näites on reeglid sõnastaud seadmete kaupa, Ipchains hoiab ise reegleid ahelate kaupa, vastavad reeglid on sellised
bash# ipchains -L -n --line-numbers -v Chain input (policy REJECT: 1906 packets, 841766 bytes): num pkts bytes target prot opt tosa tosx ifname mark outsize source destination ports 1 0 0 REJECT all ----l- 0xFF 0x00 eth1 192.168.0.0/16 193.40.223.98 n/a 2 0 0 REJECT all ----l- 0xFF 0x00 eth1 172.16.0.0/12 193.40.223.98 n/a 3 0 0 REJECT all ----l- 0xFF 0x00 eth1 10.0.0.0/8 193.40.223.98 n/a 4 0 0 REJECT all ----l- 0xFF 0x00 eth1 127.0.0.0/8 193.40.223.98 n/a 5 180 138K ACCEPT tcp !y---- 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> * 6 0 0 REJECT udp ----l- 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 2049 7 5 841 ACCEPT udp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 1024:65535 8 0 0 ACCEPT icmp ----l- 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> * 9 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 21 10 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 22 11 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 23 12 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 25 13 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 80 14 0 0 ACCEPT tcp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 113 15 0 0 ACCEPT udp ------ 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 * -> 53 16 0 0 ACCEPT tcp -y---- 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 20 -> 1024:65535 17 0 0 ACCEPT tcp -y---- 0xFF 0x00 eth1 0.0.0.0/0 193.40.223.98 1024:65535 -> 1024:65535 18 0 0 REJECT all ----l- 0xFF 0x00 eth1 0.0.0.0/0 0.0.0.0/0 n/a 19 135 24157 ACCEPT all ------ 0xFF 0x00 eth2 192.168.1.0/24 0.0.0.0/0 n/a 20 0 0 REJECT all ----l- 0xFF 0x00 eth2 0.0.0.0/0 0.0.0.0/0 n/a 21 6 730 ACCEPT all ------ 0xFF 0x00 lo 0.0.0.0/0 0.0.0.0/0 n/a Chain forward (policy REJECT: 10 packets, 840 bytes): num pkts bytes target prot opt tosa tosx ifname mark outsize source destination ports 1 135 24157 MASQ all ------ 0xFF 0x00 eth1 192.168.1.0/24 0.0.0.0/0 n/a Chain output (policy REJECT: 1747 packets, 278277 bytes): num pkts bytes target prot opt tosa tosx ifname mark outsize source destination ports 1 0 0 REJECT all ----l- 0xFF 0x00 eth1 192.168.0.0/16 0.0.0.0/0 n/a 2 0 0 REJECT all ----l- 0xFF 0x00 eth1 172.16.0.0/12 0.0.0.0/0 n/a 3 0 0 REJECT all ----l- 0xFF 0x00 eth1 10.0.0.0/8 0.0.0.0/0 n/a 4 0 0 REJECT all ----l- 0xFF 0x00 eth1 127.0.0.0/8 0.0.0.0/0 n/a 5 149 25156 ACCEPT all ------ 0xFF 0x00 eth1 193.40.223.98 0.0.0.0/0 n/a 6 0 0 REJECT all ----l- 0xFF 0x00 eth1 0.0.0.0/0 0.0.0.0/0 n/a 7 172 135K ACCEPT all ------ 0xFF 0x00 eth2 0.0.0.0/0 192.168.1.0/24 n/a 8 0 0 REJECT all ----l- 0xFF 0x00 eth2 0.0.0.0/0 0.0.0.0/0 n/a 9 6 730 ACCEPT all ------ 0xFF 0x00 lo 0.0.0.0/0 0.0.0.0/0 n/a
Võtmega -n kuvatakse IP aadressid ja pordid numbrilisel kujul. Lisades võtme -v saate näha iga reegliga seotud andmemahte.
toimub ma Maskeraadi automaatne käivitamine
Et igal masina taaskäivitamisel ei peaks käsitsi skripti masq.sh käivitama, selleks tuleb kirjutada vastav rida mõnda süsteemi algkäivitusfaili. Näiteks täidetakse failis /etc/rc.d/rc.local olevad käsud süsteemi käivitamise käigus automaatselt. Logide analüüs
Nendele skriptis kirjeldatud reeglitele, mis lõppevad '-l' -ga vastavad paketid logitakse Syslogi. Syslogis on ilmselt lisaks maskeraadi logidele ka muud informatsiooni, mida saab vaadata näiteks käsuga tail
bash# tail -f /var/log/messages Dec 13 14:14:14 cockpit kernel: Packet log: input ACCEPT eth1 PROTO=1 62.254.76.154:0 193.40.223.98:0 L=28 S=0x00 I=61117 F=0x0000 T=112 (#8) Dec 13 14:14:16 cockpit identd[16683]: Connection from lustiverepk.edu.ee Dec 13 14:14:15 cockpit kernel: Packet log: input ACCEPT eth1 PROTO=1 172.143.67.60:0 193.40.223.98:0 L=28 S=0x00 I=12806 F=0x0000 T=108 (#8) Dec 13 14:14:15 cockpit kernel: Packet log: input ACCEPT eth1 PROTO=1 172.154.227.160:0 193.40.223.98:0 L=28 S=0x00 I=19757 F=0x0000 T=108 (#8) Dec 13 14:14:15 cockpit kernel: Packet log: input ACCEPT eth1 PROTO=1 194.230.177.147:0 193.40.223.98:0 L=28 S=0x00 I=50513 F=0x0000 T=109 (#8)
Maskeraadiga seotud read tunneb ära nime 'Pacet log' järgi. Näiteks esimene rida tähendab järgmist
* Dec 13 14:14:14 - sündumuse toimumise aeg * cockpit kernel: Packet log: - tegemist on kerneli Packet logiga * input ACCEPT eth0 - tegemist on läbi välise võrguseadme siseneda lubatud paketiga * PROTO=1 - tegu on ICMP sõnumiga, tõenäoliselt ping (vt. /etc/protocols) * 62.254.76.154:0 193.40.223.98:0 - pakett tuli aadressilt 62.254.76.15 ja oli suunatud aadressile 193.40.223.98 * (#8) - paketile rakendus 24. input ahela reegel
Üks võimalus Linuxi masina kaitstuse üle otsustada on uurides süsteemi logisid.