IP maskeraad

Allikas: Kuutõrvaja

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.