Shorewall: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Rkolga (talk | contribs)
New page: Autor: Ragnar Kolga - Ak32
 
Rkolga (talk | contribs)
No edit summary
 
(109 intermediate revisions by the same user not shown)
Line 1: Line 1:
<br>
<b> Autor: </b> Ragnar Kolga - AK32


Autor: Ragnar Kolga - Ak32
=Sissejuhatus=
 
<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.
 
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>
    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 :-|
 
 
<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>
 
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
 
<br><b> Interfaces konfiguratsioonifail</b><br>
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.
 
<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><br>
Kõige tähtsam konfiguratsioonifail. 
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]
 
--- 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 ...
<pre> shorewall try /etc/shorewall 120 </pre>
Shorewall käivitatakse 120 sekundiks.
 
=Teenus (start/stop/restart/status)=
 
<pre> service shorewall start  - teenuse käivitamine </pre>
<pre> service shorewall stop    - teenuse seiskamine </pre>
<pre> service shorewall restart - teenuse taaskäivitamine </pre>
<pre> service shorewall status  - teenuse oleku kuvamine (iptables reeglid, loodud ja loomisel ühendused, ...) </pre>
 
 
=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
<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=
 
<b> Debian, Fedora, RedHat, Suse, Centos, Ubuntu, ... </b><br>
<pre> apt-get remove -purge shorewall </pre>
<pre> yum remove shorewall</pre>
 
RPM<br>
<pre>rpm -e shorewall</pre>
 
TAR<br>
Mine shorewalli kausta (cd /shorewall/kasuta/asukoht) ja käivita käsk
<pre>./uninstall.sh</pre>
 
=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=
* http://www.shorewall.net/
* http://en.wikipedia.org/wiki/Shorewall
* http://en.wikipedia.org/wiki/Netfilter
* http://www.netfilter.org/
* http://www.frozentux.net/documents/iptables-tutorial/
* http://easyfwgen.morizot.net/gen/ - hea tulemüüri reeglite genereerimiseks
 
 
[[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

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

Konfigureerimisest


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

Konfigureerimisest täpsemalt

Konfiguratsioonifailis tuleks muuta:

  1. STARTUP_ENABLED=No

STARTUP_ENABLED=Yes

  1. IPTABLES=

IPTABLES=/sbin/iptables

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

Kasutatud kirjandus