Shorewall: Difference between revisions
No edit summary |
|||
(65 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
=Sissejuhatus= | =Sissejuhatus= | ||
<b> Shorewall (alias Shoreline Firewall)</b> on | <b> Shorewall (alias Shoreline Firewall)</b> on tarkvaraline vahend netfiltri konfigureerimiseks Linuxis (linux - operatsioonisüsteem linux kernelil). | ||
<b>Netfilter</b> koos kasutajaliidesega iptables on paketifilter. Shorewall konfigureerib Netfiltri, kasutades konfiguratsioonifaile ja seda iptables utiliidi vahendusel. Shorewalli on võimalik kasutada tulemüürina väga erinevatel seadmetel (ruuteritel, serveritel, ...). | |||
Shorewall teeb lihtsamaks tulemüürireeglite manageerimise. Reeglid defineeritakse tekstifailides ja on lihtsasti muudetavad. | |||
Uuele kasutajale selles valdkonnas on kindlasti lihtsamaid tulemüüri reeglite haldamise vahendeid, millel on olemas ka graafiline liides. | |||
Alates 4.2 versioonist on toetatud ka IPv6. | |||
Järgnevalt tooksin välja tegevused shorewalli konfiguratsioonifailidega (abiks edaspidistel tegevustel ja tekib parem ettekujutus | Viimane stabiilne versioon on 4.4.7 (04.2010 seisuga). | ||
Shorewalli tarkvara on saadaval ingliskeelsena. Litsents on GPLv2 ja üks arendajatest on Thomas M.Eastep. | |||
=Eelinfo= | |||
Oluline on teada, et <b>netfilter</b> lubab defineerida reegleid, mille järgi käsitletakse võrgupakette. | |||
Netfilter koosneb erinevatest ahelast : | |||
INPUT - sissetulevad paketid | |||
OUTPUT - väljuvad paketid | |||
FORWARD - edastatavad paketid | |||
PREROUTING ja POSTROUTING - põhiliselt NAT tegemiseks (kui ei ole piisavalt avalike ip aadresse siis tuleb kasutada NAT-i). | |||
Siinkohal tooks veel välja, et <b>iptables</b> on vahend netfilter tabelite konfigureerimiseks (reeglitest koosnevad tabelid). | |||
Alustuseks tuleks luua üldine võrgu skeem ( [http://docs.huihoo.com/shorewall/2.0/images/basics.png Joonis] [http://docs.huihoo.com/shorewall/2.0/images Veel erinevaid lahendusi]). | |||
Järgnevalt tooksin välja tegevused shorewalli konfiguratsioonifailidega (abiks edaspidistel tegevustel ja toimuvast tekib parem ettekujutus). | |||
<b> Fail Tegevus </b> | <b> Fail Tegevus </b> | ||
Zones Võrgu jagamine tsoonideks | Zones Võrgu jagamine tsoonideks | ||
Hosts, Interfaces Defineeritakse tsoonid tulemüüri liideste ja ip | Hosts, Interfaces Defineeritakse tsoonid tulemüüri liideste ja ip aadressidega | ||
Defineeritakse erinevate tsoonide võrguliikluse piirangud | Defineeritakse erinevate tsoonide võrguliikluse piirangud | ||
Policy Tsoonide vaheline ligipääs | Policy Tsoonide-vaheline ligipääs | ||
Rules Määratakse teenuste kaupa ligipääsu reeglid | Rules Määratakse teenuste kaupa ligipääsu reeglid | ||
Määratakse destination NAT (D-NAT) reeglid | Määratakse destination NAT (D-NAT) reeglid | ||
Masq Määratakse Source NAT (S-NAT) reeglid | Masq Määratakse Source NAT (S-NAT) reeglid | ||
Shorewall.conf Üldise konfiguratsioonifaili määrangud | Shorewall.conf Üldise konfiguratsioonifaili määrangud | ||
... Muud piirangud | ... Muud piirangud/reeglid | ||
<b> | PS. Kõik käsud, mis on toodud välja selles wiki's(referaadis) on käivitatud root kasutaja õigustes :-| | ||
<pre> | |||
<pre> | |||
<pre> | <b>Abistavad käsud võrguliideste määramiseks konfiguratsioonifailides:</b> | ||
<pre>ip route ls - käsu käivitamisel kuvatakse võrguaadressid </pre> | |||
<pre>ifconfig -a - käsu käivitamisel kuvatakse võrguliidesed mis on defineeritud </pre> | |||
<pre> route -n - käsu käivitamisel kuvatakse ruutingutabel </pre> | |||
... | |||
<b>Abistavad käsud reeglite määramiseks konfiguratsioonifailides:</b> | |||
<pre>netstat -tnl - selle käsuga väljastatakse info, millised on tcp teenused </pre> | |||
<pre>netstat -unl - selle käsuga väljastatakse info, millised on udp teenused </pre> | |||
<pre>netstat -luntp - selle käsuga väljastatakse info teenustest, mis töötavad sinu süsteemis </pre> | |||
<pre>grep "teenuse nimi" /etc/services - väljastatakse päritud informatsioon </pre> | |||
Näiteks vaatame, mis port on https teenusel. | |||
<b>Kui teame teenuse nime:</b> | |||
[student@student student]$ grep "https" /etc/services | |||
https 443/tcp # MCom | |||
https 443/udp # MCom | |||
<b>Kui teame teenuse porti:</b> | |||
[student@student student]$ grep "443" /etc/services | |||
https 443/tcp # MCom | |||
https 443/udp # MCom | |||
... | |||
=Installeerimine= | |||
[http://www.shorewall.net/Install.htm Juhend ] | |||
Installerimiseks peame logima oma arvutisse, kuhu soovime shorewall tarkvara paigaldada. | |||
Installeerimiskäsud peab käivtama vastavate õigustega kasutaja (võimalik teha sudo -i ja minna root kasutaja õigustesse või lisada kõikidele käskudele ette <b>sudo</b>). | |||
<pre>yum install shorewall</pre> | |||
<pre> | |||
Lae alla shorewall 4.4.8 versioon käsurealt (vaata endale teine sobiv versioon ([http://slovakia.shorewall.net/pub/shorewall/ Vaata teine versioon])): | |||
<pre>wget http://slovakia.shorewall.net/pub/shorewall/4.4/shorewall-4.4.8/shorewall-4.4.8-2.noarch.rpm </pre> | |||
< | Installeeri | ||
<pre>N: rpm -ivh <shorewall-4.4.8-2.noarch.rpm></pre> | |||
Edaspidi siis asenda uuema versiooni rpm faili nimega | |||
<pre>rpm -ivh <shorewall rpm paketi nimi></pre> | |||
TAR installeerimine käsurealt | |||
<pre>wget http://slovakia.shorewall.net/pub/shorewall/4.4/shorewall-4.4.8/shorewall-docs-html-4.4.8.tar.bz2</pre> | |||
<pre>tar -jxf shorewall-x.x.x.tar.bz2</pre> | |||
<pre>tar -xzf shorewall_versiooninr.tgz</pre> | |||
Mine shorewall kausta (cd shorewallkaus) ja käivita käsk | |||
<pre>./install.sh</pre> | |||
Kopeerime näidiskonfiguratsioonifailid /etc/shorewall kausta (Debian) | |||
<pre> cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/ </pre> | |||
=Konfigureerimine= | |||
Shorewalli olulisemad konfiguratsioonifailid on zones, policy, rules ja shorewall.conf. | |||
Antud referaadi koostamisel lähtud kõige levinumast lahendusest, kus on üks <b>välisvõrgu ja sisevõrgu</b> liides.<br> | |||
[http://www.shorewall.net/shorewall_setup_guide.htm Konfigureerimisest] | |||
<br><b> Zones (tsoonid) konfiguratsioonifail </b><br> | |||
Ühe tsooni piires kehtivad ühesugused tulemüüri reeglid. | |||
Kõigepealt tuleb konfigureerida erinevad võrgu tsoonid. Kirjelduseks tuleb tsoonidele anda nimed. | |||
Näiteks välisvõrk net (interNET) ja sisevõrk loc (LOCal või private). | |||
--- konfiguratsioonifaili sisu --- | |||
#ZONE TYPE OPTIONS IN OUT | |||
# OPTIONS OPTIONS | |||
fw firewall | |||
net ipv4 | |||
loc ipv4 | |||
<b> Interfaces | <br><b> Interfaces konfiguratsioonifail</b><br> | ||
Võrguliideste defineerimine. Siin määrame milline võrguliides vastab tsoonifailis oleva kirjeldusega. | Võrguliideste defineerimine. Siin määrame milline võrguliides vastab tsoonifailis oleva kirjeldusega. | ||
--- | --- konfiguratsioonifaili sisu --- | ||
#ZONE INTERFACE BROADCAST OPTIONS | #ZONE INTERFACE BROADCAST OPTIONS | ||
net eth1 193.xxx.xxx.xxx routefilter | net eth1 193.xxx.xxx.xxx routefilter | ||
Line 87: | Line 132: | ||
Zone - tsoon mis on defineeritud zones failis. | Zone - tsoon mis on defineeritud zones failis. | ||
Interfaces - võrguliidese nimi. | Interfaces - võrguliidese nimi. | ||
<b> Policy | <br><b> Policy konfiguratsioonifail (General plan of action - tegevusplaan)</b><br> | ||
--- konfiguratsioonifaili sisu --- | |||
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST | |||
loc net ACCEPT | |||
net all DROP info | |||
all all REJECT info | |||
<b> Rules (reeglid) konfiguratsioonifail </b> | <b> Rules (reeglid) konfiguratsioonifail </b><br> | ||
Kõige tähtsam konfiguratsioonifail. | Kõige tähtsam konfiguratsioonifail. | ||
Reeglite failis määratakse mis on lubatud ja keelatud. Kõikide uute ühenduste loomisel kontrollitakse tulemüüri reegleid. | Reeglite failis määratakse, mis on lubatud ja keelatud. Kõikide uute ühenduste loomisel kontrollitakse tulemüüri reegleid. | ||
[http://www.shorewall.net/manpages/shorewall-rules.html Lisainfo reeglite kasutamisest] | |||
#ACTION | --- konfiguratsioonifaili sisu --- | ||
# | #ACTION SOURCE DEST PROTO DEST PORT(S) | ||
Web(DNAT) net loc:10.10.10.2 # lubame veebi (port 80) 10.10.10.2 masinasse | |||
ACCEPT dmz net tcp smtp # lubame smtp | |||
<b> shorewall.conf </b><br> | |||
[http://www.shorewall.net/manpages/shorewall.conf.html Konfigureerimisest täpsemalt] | |||
Konfiguratsioonifailis tuleks muuta: | |||
#STARTUP_ENABLED=No | |||
STARTUP_ENABLED=Yes | |||
#IPTABLES= | |||
IPTABLES=/sbin/iptables | |||
#IP_FORWARDING=On | |||
IP_FORWARDING=Off | |||
Kui tulemüüri reeglid on paigas võiks proovida teenust käivitada teatud perioodiks, vältimaks ligipääsu probleeme ... | Kui tulemüüri reeglid on paigas, võiks proovida teenust käivitada teatud perioodiks, vältimaks ligipääsu probleeme ... | ||
<pre> shorewall try /etc/shorewall 120 </pre> | <pre> shorewall try /etc/shorewall 120 </pre> | ||
Shorewall käivitatakse 120 sekundiks. | Shorewall käivitatakse 120 sekundiks. | ||
Line 122: | Line 180: | ||
=Probleemid= | =Probleemid= | ||
Ära installeeri shorewalli kaughaldusena (muidu lõikad näppu ja ei pääse kaugelt süsteemile ligi). | Ära installeeri shorewalli kaughaldusena (muidu lõikad endale näppu ja ei pääse kaugelt süsteemile ligi). | ||
Kui shorewalli konfiguratsioonifailides on probleem, siis peaks vaatama logifaili | Kui shorewalli konfiguratsioonifailides on probleem, siis peaks vaatama logifaili | ||
<pre> less /var/log/shorewall-init.log </pre> | <pre> less /var/log/shorewall-init.log </pre> | ||
Logimine | |||
shorewall show log - näitab viimast 20 logitud rida | |||
shorewall logwatch - näitab logi teatud intervalliga | |||
shorewall dump - shorewall probleemide tuvastamiseks | |||
(erinevad võimalused: add, allow, check, clear, help, forget, hits, ipcalc, iprange, refresh, reject, show, try, ) | |||
=Varundamine= | |||
Varundada on vaja konfiguratsioonifailid (näiteks asuvad konfiguratsioonifailid /etc/shorewall/ kaustas). | |||
<pre>ls -la /etc/shorewall/ - kuvatakse kausta shorewall sisu</pre> | |||
<pre>tar -zcp /etc/shorewall > /root/shorewall_reeglite_varu.tar.gz - pakime konfiguratsioonifailid kokku</pre> | |||
<pre>cp -r /etc/shorewall > /root/varundamisekaust/shorewall - kopeerime failid varundamise kausta</pre> | |||
=Eemaldamine= | =Eemaldamine= | ||
<b> Debian, Fedora, RedHat, Suse, Centos, Ubuntu, ... </b><br> | <b> Debian, Fedora, RedHat, Suse, Centos, Ubuntu, ... </b><br> | ||
<pre> apt-get remove shorewall </pre> | <pre> apt-get remove -purge shorewall </pre> | ||
<pre> yum remove shorewall</pre> | |||
<pre> | RPM<br> | ||
<pre>rpm -e shorewall</pre> | |||
<pre> | TAR<br> | ||
Mine shorewalli kausta (cd /shorewall/kasuta/asukoht) ja käivita käsk | |||
<pre>./uninstall.sh</pre> | |||
=Kokkuvõte= | =Kokkuvõte= | ||
Shorewall tarkvara on lihtne paigaldada ja hallata. Paigaldamisel tuleb kasuks, kui teate mõningaid teadmisi linuxi valdkonnast (alusta järgnevalt [https://wiki.itcollege.ee/index.php/Category:IT_infrastruktuuri_teenused lingilt]). | |||
Shorewall projektiga tegeletakse aktiivselt edasi ja soovitan huvilistel olla kursis uudistega, mille leiad järgnevalt [http://www.shorewall.net/News.htm lingilt]. | |||
=Kasutatud kirjandus= | =Kasutatud kirjandus= | ||
* http://www.shorewall.net/ | * http://www.shorewall.net/ | ||
* http://en.wikipedia.org/wiki/Shorewall | * http://en.wikipedia.org/wiki/Shorewall | ||
* http://en.wikipedia.org/wiki/Netfilter | |||
* http://www.netfilter.org/ | |||
* http://www.frozentux.net/documents/iptables-tutorial/ | * http://www.frozentux.net/documents/iptables-tutorial/ | ||
* http://easyfwgen.morizot.net/gen/ - hea tulemüüri reeglite genereerimiseks | * http://easyfwgen.morizot.net/gen/ - hea tulemüüri reeglite genereerimiseks | ||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category:Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 22:01, 30 April 2010
Autor: Ragnar Kolga - AK32
Sissejuhatus
Shorewall (alias Shoreline Firewall) on tarkvaraline vahend netfiltri konfigureerimiseks Linuxis (linux - operatsioonisüsteem linux kernelil). Netfilter koos kasutajaliidesega iptables on paketifilter. Shorewall konfigureerib Netfiltri, kasutades konfiguratsioonifaile ja seda iptables utiliidi vahendusel. Shorewalli on võimalik kasutada tulemüürina väga erinevatel seadmetel (ruuteritel, serveritel, ...).
Shorewall teeb lihtsamaks tulemüürireeglite manageerimise. Reeglid defineeritakse tekstifailides ja on lihtsasti muudetavad. Uuele kasutajale selles valdkonnas on kindlasti lihtsamaid tulemüüri reeglite haldamise vahendeid, millel on olemas ka graafiline liides.
Alates 4.2 versioonist on toetatud ka IPv6.
Viimane stabiilne versioon on 4.4.7 (04.2010 seisuga). Shorewalli tarkvara on saadaval ingliskeelsena. Litsents on GPLv2 ja üks arendajatest on Thomas M.Eastep.
Eelinfo
Oluline on teada, et netfilter lubab defineerida reegleid, mille järgi käsitletakse võrgupakette.
Netfilter koosneb erinevatest ahelast :
INPUT - sissetulevad paketid OUTPUT - väljuvad paketid FORWARD - edastatavad paketid PREROUTING ja POSTROUTING - põhiliselt NAT tegemiseks (kui ei ole piisavalt avalike ip aadresse siis tuleb kasutada NAT-i).
Siinkohal tooks veel välja, et iptables on vahend netfilter tabelite konfigureerimiseks (reeglitest koosnevad tabelid).
Alustuseks tuleks luua üldine võrgu skeem ( Joonis Veel erinevaid lahendusi).
Järgnevalt tooksin välja tegevused shorewalli konfiguratsioonifailidega (abiks edaspidistel tegevustel ja toimuvast tekib parem ettekujutus).
Fail Tegevus Zones Võrgu jagamine tsoonideks Hosts, Interfaces Defineeritakse tsoonid tulemüüri liideste ja ip aadressidega Defineeritakse erinevate tsoonide võrguliikluse piirangud Policy Tsoonide-vaheline ligipääs Rules Määratakse teenuste kaupa ligipääsu reeglid Määratakse destination NAT (D-NAT) reeglid Masq Määratakse Source NAT (S-NAT) reeglid Shorewall.conf Üldise konfiguratsioonifaili määrangud ... Muud piirangud/reeglid
PS. Kõik käsud, mis on toodud välja selles wiki's(referaadis) on käivitatud root kasutaja õigustes :-|
Abistavad käsud võrguliideste määramiseks konfiguratsioonifailides:
ip route ls - käsu käivitamisel kuvatakse võrguaadressid
ifconfig -a - käsu käivitamisel kuvatakse võrguliidesed mis on defineeritud
route -n - käsu käivitamisel kuvatakse ruutingutabel
... Abistavad käsud reeglite määramiseks konfiguratsioonifailides:
netstat -tnl - selle käsuga väljastatakse info, millised on tcp teenused
netstat -unl - selle käsuga väljastatakse info, millised on udp teenused
netstat -luntp - selle käsuga väljastatakse info teenustest, mis töötavad sinu süsteemis
grep "teenuse nimi" /etc/services - väljastatakse päritud informatsioon
Näiteks vaatame, mis port on https teenusel. Kui teame teenuse nime:
[student@student student]$ grep "https" /etc/services https 443/tcp # MCom https 443/udp # MCom
Kui teame teenuse porti:
[student@student student]$ grep "443" /etc/services https 443/tcp # MCom https 443/udp # MCom
...
Installeerimine
Installerimiseks peame logima oma arvutisse, kuhu soovime shorewall tarkvara paigaldada. Installeerimiskäsud peab käivtama vastavate õigustega kasutaja (võimalik teha sudo -i ja minna root kasutaja õigustesse või lisada kõikidele käskudele ette sudo).
yum install shorewall
Lae alla shorewall 4.4.8 versioon käsurealt (vaata endale teine sobiv versioon (Vaata teine versioon)):
wget http://slovakia.shorewall.net/pub/shorewall/4.4/shorewall-4.4.8/shorewall-4.4.8-2.noarch.rpm
Installeeri
N: rpm -ivh <shorewall-4.4.8-2.noarch.rpm>
Edaspidi siis asenda uuema versiooni rpm faili nimega
rpm -ivh <shorewall rpm paketi nimi>
TAR installeerimine käsurealt
wget http://slovakia.shorewall.net/pub/shorewall/4.4/shorewall-4.4.8/shorewall-docs-html-4.4.8.tar.bz2
tar -jxf shorewall-x.x.x.tar.bz2
tar -xzf shorewall_versiooninr.tgz
Mine shorewall kausta (cd shorewallkaus) ja käivita käsk
./install.sh
Kopeerime näidiskonfiguratsioonifailid /etc/shorewall kausta (Debian)
cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/
Konfigureerimine
Shorewalli olulisemad konfiguratsioonifailid on zones, policy, rules ja shorewall.conf.
Antud referaadi koostamisel lähtud kõige levinumast lahendusest, kus on üks välisvõrgu ja sisevõrgu liides.
Zones (tsoonid) konfiguratsioonifail
Ühe tsooni piires kehtivad ühesugused tulemüüri reeglid. Kõigepealt tuleb konfigureerida erinevad võrgu tsoonid. Kirjelduseks tuleb tsoonidele anda nimed. Näiteks välisvõrk net (interNET) ja sisevõrk loc (LOCal või private).
--- konfiguratsioonifaili sisu ---
#ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4 loc ipv4
Interfaces konfiguratsioonifail
Võrguliideste defineerimine. Siin määrame milline võrguliides vastab tsoonifailis oleva kirjeldusega.
--- konfiguratsioonifaili sisu ---
#ZONE INTERFACE BROADCAST OPTIONS net eth1 193.xxx.xxx.xxx routefilter loc eth0 172.xxx.xxx.255 dhcp,routeback
Zone - tsoon mis on defineeritud zones failis. Interfaces - võrguliidese nimi.
Policy konfiguratsioonifail (General plan of action - tegevusplaan)
--- konfiguratsioonifaili sisu ---
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST loc net ACCEPT net all DROP info all all REJECT info
Rules (reeglid) konfiguratsioonifail
Kõige tähtsam konfiguratsioonifail.
Reeglite failis määratakse, mis on lubatud ja keelatud. Kõikide uute ühenduste loomisel kontrollitakse tulemüüri reegleid.
Lisainfo reeglite kasutamisest
--- konfiguratsioonifaili sisu ---
#ACTION SOURCE DEST PROTO DEST PORT(S) Web(DNAT) net loc:10.10.10.2 # lubame veebi (port 80) 10.10.10.2 masinasse ACCEPT dmz net tcp smtp # lubame smtp
shorewall.conf
Konfiguratsioonifailis tuleks muuta:
- STARTUP_ENABLED=No
STARTUP_ENABLED=Yes
- IPTABLES=
IPTABLES=/sbin/iptables
- IP_FORWARDING=On
IP_FORWARDING=Off
Kui tulemüüri reeglid on paigas, võiks proovida teenust käivitada teatud perioodiks, vältimaks ligipääsu probleeme ...
shorewall try /etc/shorewall 120
Shorewall käivitatakse 120 sekundiks.
Teenus (start/stop/restart/status)
service shorewall start - teenuse käivitamine
service shorewall stop - teenuse seiskamine
service shorewall restart - teenuse taaskäivitamine
service shorewall status - teenuse oleku kuvamine (iptables reeglid, loodud ja loomisel ühendused, ...)
Probleemid
Ära installeeri shorewalli kaughaldusena (muidu lõikad endale näppu ja ei pääse kaugelt süsteemile ligi).
Kui shorewalli konfiguratsioonifailides on probleem, siis peaks vaatama logifaili
less /var/log/shorewall-init.log
Logimine
shorewall show log - näitab viimast 20 logitud rida shorewall logwatch - näitab logi teatud intervalliga shorewall dump - shorewall probleemide tuvastamiseks
(erinevad võimalused: add, allow, check, clear, help, forget, hits, ipcalc, iprange, refresh, reject, show, try, )
Varundamine
Varundada on vaja konfiguratsioonifailid (näiteks asuvad konfiguratsioonifailid /etc/shorewall/ kaustas).
ls -la /etc/shorewall/ - kuvatakse kausta shorewall sisu
tar -zcp /etc/shorewall > /root/shorewall_reeglite_varu.tar.gz - pakime konfiguratsioonifailid kokku
cp -r /etc/shorewall > /root/varundamisekaust/shorewall - kopeerime failid varundamise kausta
Eemaldamine
Debian, Fedora, RedHat, Suse, Centos, Ubuntu, ...
apt-get remove -purge shorewall
yum remove shorewall
RPM
rpm -e shorewall
TAR
Mine shorewalli kausta (cd /shorewall/kasuta/asukoht) ja käivita käsk
./uninstall.sh
Kokkuvõte
Shorewall tarkvara on lihtne paigaldada ja hallata. Paigaldamisel tuleb kasuks, kui teate mõningaid teadmisi linuxi valdkonnast (alusta järgnevalt lingilt).
Shorewall projektiga tegeletakse aktiivselt edasi ja soovitan huvilistel olla kursis uudistega, mille leiad järgnevalt lingilt.