Tulemüüri labor: Difference between revisions
(32 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
=Legend= | =Legend= | ||
Tuleb installeerida tulemüür kus tuleb lubada veebiserver, Open SSH ja Samba. | Tuleb installeerida tulemüür kus tuleb lubada veebiserver, Open SSH ja Samba. | ||
Tulemüür peaks rakenduma arvuti alglaadimisel. Labor/juhend töötab Linux Ubuntu versioonidega 10.04 ja 10.10. | |||
=Installeerimine= | |||
Alguses minna juurkasutajaks | |||
<source lang="bash"> | |||
sudo -i | |||
</source> | |||
Veebiserveri lubamiseks: | |||
<source lang="bash"> | |||
iptables -I INPUT -p tcp --dport 80 -j ACCEPT | |||
</source> | |||
Turvatud veebiserveri jaoks: | |||
<source lang="bash"> | |||
iptables -I INPUT -p tcp --dport 443 -j ACCEPT | |||
</source> | |||
SSH lubamiseks: | |||
<source lang="bash"> | |||
iptables -I INPUT -p tcp --dport 22 -j ACCEPT | |||
</source> | |||
Täpsemalt peab lubama järgnevad pordid Samba jaoks: | |||
<source lang="bash"> | |||
# TCP 445 | |||
iptables -I INPUT -p tcp --dport 445 -j ACCEPT | |||
# TCP 139 | |||
iptables -I INPUT -p tcp --dport 139 -j ACCEPT | |||
# UDP 138 | |||
iptables -I INPUT -p udp --dport 138 -j ACCEPT | |||
# UDP 137 | |||
iptables -I INPUT -p udp --dport 137 -j ACCEPT | |||
</source> | |||
Keelatakse INPUTi liiklus, kui konkreetseid reegleid pole seatud | |||
<source lang="bash"> | |||
iptables -P INPUT DROP | |||
</source> | |||
Selleks et väljaminevate ühenduste jaoks tagasi tulnud pakette ka lubataks peab tegema nii: | |||
<source lang="bash"> | |||
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT | |||
</source> | |||
Muidugi on alati tervislik lubada localhost õue: | |||
<source lang="bash"> | |||
iptables -A OUTPUT -o lo -j ACCEPT | |||
</source> | |||
=Reeglite järjekord= | |||
IPTABLES'i seadistamisel tuleb rangelt kinni pidada reeglite järjekorrast, reegleid loetakse ülevalt alla ning sobiva reegli leidmisel rohkem edasi ei kontrollita, näiteks, kui tulemüüriseadistuses on esimene rida mis lubab sisse kõiki ühendusi, ei hakata edasi üldse vaatama, ning kõik ühendused lubatakse olenemata võimalikest järgnevatest keelavatest reeglitest. | |||
iptables -I INPUT 1 -i lo -j ACCEPT | |||
Seadistuste tegemisel on hea teada mida teevad -I ja -A võtmed iptables käsu järel. | |||
*-A käsk lisatakse viimaseks reegliks | |||
*-I käsk lisatakse kindlale kasutaja poolt määratud reale | |||
iptables -I INPUT 5 -i lo -j ACCEPT | |||
Lisab käsu INPUT CHAIN'i 5. reegliks, ehk kui enne 5. reeglit pole ühtegi keelavat reeglit, on kõik sissetulevad ühendused lubatud. | |||
Kui jätta määramata reegli rea number, pannakse reegel esimeseks. | |||
=Teenuse portide leidmine= | |||
NB! Suvalise teenuse pordid saad kindlaks teha netstat abil: | |||
<source lang="bash"> | |||
sudo /etc/init.d/smbd stop && \ | |||
netstat -lnut > /tmp/before && \ | |||
sudo /etc/init.d/smbd start && \ | |||
netstat -lnut > /tmp/after && \ | |||
diff -u /tmp/before /tmp/after | |||
</source> | |||
* Stopping Samba daemons [ OK ] | |||
* Starting Samba daemons [ OK ] | |||
--- /tmp/before 2009-10-26 14:34:08.461610086 +0200 | |||
+++ /tmp/after 2009-10-26 14:34:08.533616024 +0200 | |||
@@ -1,7 +1,13 @@ | |||
Aktiivsed internetiühendused (ainult serverid) | |||
Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek | |||
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN | |||
+tcp6 0 0 :::445 :::* LISTEN | |||
+tcp6 0 0 :::139 :::* LISTEN | |||
tcp6 0 0 ::1:631 :::* LISTEN | |||
udp 0 0 0.0.0.0:5353 0.0.0.0:* | |||
+udp 0 0 192.168.1.165:137 0.0.0.0:* | |||
+udp 0 0 0.0.0.0:137 0.0.0.0:* | |||
+udp 0 0 192.168.1.165:138 0.0.0.0:* | |||
+udp 0 0 0.0.0.0:138 0.0.0.0:* | |||
udp 0 0 0.0.0.0:57873 0.0.0.0:* | |||
udp 0 0 0.0.0.0:68 0.0.0.0:* | |||
Kus plussiga on märgitud pordid mis lisandusid. | |||
=IPTABLES reeglite salvestamine ja taastamine= | |||
==Salvestamine== | |||
Selleks, et reegleid salvestada, tuleb alguses luua koht kuhu neid reegleid salvestada | |||
Näiteks: | |||
<pre> | |||
mkdir /etc/iptables | |||
</pre> | |||
Salvestamiseks endaks tuleb sisestada käsk : | |||
<pre> | |||
iptables-save > /etc/iptables/iptables.conf | |||
</pre> | |||
Fail kuhu reeglid salvestadakse ei pea olema iptables.conf | |||
==Taastamine== | |||
Taastamiseks (failist mis sa varem oled salvestanud) tuleb siestada järgmine käsk: | |||
<pre> | |||
iptables-restore < /etc/iptables/iptables.conf | |||
</pre> | |||
==Taastamine alglaadmisel== | |||
Selleks, et taastada iptables reeglis alglaadimisel, tuleb muuta /etc/network/interfaces faili | |||
Ava fail | |||
<pre> | |||
nano /etc/network/interfaces | |||
</pre> | |||
ning lisa faili lõppu järgmine rida : | |||
<pre> | |||
pre-up iptables-restore < /etc/iptables/iptables.conf | |||
</pre> | |||
Testimiseks tee reboot ja vaata järmise käsuga kas reeglid on olemas : <pre>iptables -L </pre> | |||
==Iptables resettimine== | |||
Selleks, et resettida iptables algsätedele | |||
<pre> | |||
iptables --policy INPUT ACCEPT | |||
iptables --policy OUTPUT ACCEPT | |||
iptables --policy FORWARD ACCEPT | |||
iptables -Z | |||
iptables -F | |||
iptables -X | |||
</pre> | |||
=Edasijõudnutele= | |||
Siin leiab veel huvitavaid ridu: | |||
http://ubuntuforums.org/showthread.php?t=159661 - väga põhjalik juhend [Beginners edition] | |||
http://enos.itcollege.ee/~mernits/infrastruktuur/loeng07%20-%20iptables.pdf - tulemüüri loengumaterjal | |||
https://help.ubuntu.com/community/IptablesHowTo - ametlik juhend | |||
http://ubuntuforums.org/showthread.php?t=668148 - pisut huvitavamate reeglite tegemiseks [Advanced user only] | |||
[[Category:IT infrastruktuuri teenused]] | [[Category:IT infrastruktuuri teenused]] |
Latest revision as of 15:08, 27 February 2012
Legend
Tuleb installeerida tulemüür kus tuleb lubada veebiserver, Open SSH ja Samba. Tulemüür peaks rakenduma arvuti alglaadimisel. Labor/juhend töötab Linux Ubuntu versioonidega 10.04 ja 10.10.
Installeerimine
Alguses minna juurkasutajaks
sudo -i
Veebiserveri lubamiseks:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Turvatud veebiserveri jaoks:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
SSH lubamiseks:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
Täpsemalt peab lubama järgnevad pordid Samba jaoks:
# TCP 445
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
# TCP 139
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
# UDP 138
iptables -I INPUT -p udp --dport 138 -j ACCEPT
# UDP 137
iptables -I INPUT -p udp --dport 137 -j ACCEPT
Keelatakse INPUTi liiklus, kui konkreetseid reegleid pole seatud
iptables -P INPUT DROP
Selleks et väljaminevate ühenduste jaoks tagasi tulnud pakette ka lubataks peab tegema nii:
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
Muidugi on alati tervislik lubada localhost õue:
iptables -A OUTPUT -o lo -j ACCEPT
Reeglite järjekord
IPTABLES'i seadistamisel tuleb rangelt kinni pidada reeglite järjekorrast, reegleid loetakse ülevalt alla ning sobiva reegli leidmisel rohkem edasi ei kontrollita, näiteks, kui tulemüüriseadistuses on esimene rida mis lubab sisse kõiki ühendusi, ei hakata edasi üldse vaatama, ning kõik ühendused lubatakse olenemata võimalikest järgnevatest keelavatest reeglitest.
iptables -I INPUT 1 -i lo -j ACCEPT
Seadistuste tegemisel on hea teada mida teevad -I ja -A võtmed iptables käsu järel.
- -A käsk lisatakse viimaseks reegliks
- -I käsk lisatakse kindlale kasutaja poolt määratud reale
iptables -I INPUT 5 -i lo -j ACCEPT
Lisab käsu INPUT CHAIN'i 5. reegliks, ehk kui enne 5. reeglit pole ühtegi keelavat reeglit, on kõik sissetulevad ühendused lubatud.
Kui jätta määramata reegli rea number, pannakse reegel esimeseks.
Teenuse portide leidmine
NB! Suvalise teenuse pordid saad kindlaks teha netstat abil:
sudo /etc/init.d/smbd stop && \
netstat -lnut > /tmp/before && \
sudo /etc/init.d/smbd start && \
netstat -lnut > /tmp/after && \
diff -u /tmp/before /tmp/after
* Stopping Samba daemons [ OK ] * Starting Samba daemons [ OK ]
--- /tmp/before 2009-10-26 14:34:08.461610086 +0200 +++ /tmp/after 2009-10-26 14:34:08.533616024 +0200 @@ -1,7 +1,13 @@ Aktiivsed internetiühendused (ainult serverid) Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN +tcp6 0 0 :::445 :::* LISTEN +tcp6 0 0 :::139 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN udp 0 0 0.0.0.0:5353 0.0.0.0:* +udp 0 0 192.168.1.165:137 0.0.0.0:* +udp 0 0 0.0.0.0:137 0.0.0.0:* +udp 0 0 192.168.1.165:138 0.0.0.0:* +udp 0 0 0.0.0.0:138 0.0.0.0:* udp 0 0 0.0.0.0:57873 0.0.0.0:* udp 0 0 0.0.0.0:68 0.0.0.0:*
Kus plussiga on märgitud pordid mis lisandusid.
IPTABLES reeglite salvestamine ja taastamine
Salvestamine
Selleks, et reegleid salvestada, tuleb alguses luua koht kuhu neid reegleid salvestada
Näiteks:
mkdir /etc/iptables
Salvestamiseks endaks tuleb sisestada käsk :
iptables-save > /etc/iptables/iptables.conf
Fail kuhu reeglid salvestadakse ei pea olema iptables.conf
Taastamine
Taastamiseks (failist mis sa varem oled salvestanud) tuleb siestada järgmine käsk:
iptables-restore < /etc/iptables/iptables.conf
Taastamine alglaadmisel
Selleks, et taastada iptables reeglis alglaadimisel, tuleb muuta /etc/network/interfaces faili
Ava fail
nano /etc/network/interfaces
ning lisa faili lõppu järgmine rida :
pre-up iptables-restore < /etc/iptables/iptables.conf
Testimiseks tee reboot ja vaata järmise käsuga kas reeglid on olemas :
iptables -L
Iptables resettimine
Selleks, et resettida iptables algsätedele
iptables --policy INPUT ACCEPT iptables --policy OUTPUT ACCEPT iptables --policy FORWARD ACCEPT iptables -Z iptables -F iptables -X
Edasijõudnutele
Siin leiab veel huvitavaid ridu:
http://ubuntuforums.org/showthread.php?t=159661 - väga põhjalik juhend [Beginners edition]
http://enos.itcollege.ee/~mernits/infrastruktuur/loeng07%20-%20iptables.pdf - tulemüüri loengumaterjal
https://help.ubuntu.com/community/IptablesHowTo - ametlik juhend
http://ubuntuforums.org/showthread.php?t=668148 - pisut huvitavamate reeglite tegemiseks [Advanced user only]