OpenBSD tulemüür PF: Difference between revisions
No edit summary |
No edit summary |
||
(37 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''Viimati muudetud: {{REVISIONDAY2}}/{{REVISIONMONTH}}/{{REVISIONYEAR}}''' | |||
'''Versioon: 1.1''' | |||
==Sissejuhatus== | ==Sissejuhatus== | ||
Selles referaadis käsitletakse tulemüüri seadistamist OpenBSD 5.0. Tulemüürina kasutatakse Packet Filterit (PF), mis on olnud osa OpenBSD-st alates versioonist 3.0, mis ilmus 2001 aastal. | Selles referaadis käsitletakse tulemüüri seadistamist OpenBSD 5.0. Tulemüürina kasutatakse Packet Filterit (PF), mis on olnud osa OpenBSD-st alates versioonist 3.0, mis ilmus 2001 aastal. | ||
Toodud näited eeldavad käsurea ja tekstiredaktor „vi“ kasutamise oskusi. Antud tulemüür eraldab välisvõrgust serveri, millel jookseb veebiserver ja samba ning antud serverit on võimalik seadistada välisvõrgust kasutades ssh ühendust. | Toodud näited eeldavad käsurea ja tekstiredaktor „vi“ kasutamise oskusi. Antud tulemüür eraldab välisvõrgust serveri, millel jookseb veebiserver ja samba ning antud serverit on võimalik seadistada välisvõrgust kasutades ssh ühendust. Näites kasutatud IP-d tuleb muuta vastavalt oma süsteemile. | ||
[[File:vorguplaan.PNG]] | |||
==OpenBSD paigaldamine== | ==OpenBSD paigaldamine== | ||
Antud töös on kasutatud OpenBSD 5.0 64 bitist operatsioonisüsteemi. OpenBSD sai paigaldatud vaikesätetega. Peale operatsioonisüsteemi paigaldust sai lisatud teine võrgukaart, milleks tuli lisada fail hostname.em1 kataloogi /etc. | Antud töös on kasutatud OpenBSD 5.0 64 bitist operatsioonisüsteemi. OpenBSD sai paigaldatud vaikesätetega. Peale operatsioonisüsteemi paigaldust sai lisatud teine võrgukaart, milleks tuli lisada fail '''hostname.em1''' kataloogi '''/etc'''. | ||
'''Esimene võrgukaart''' | |||
#vi /etc/hostname.em0 | |||
inet 192.168.6.157 255.255.255.0 | |||
'''Teine võrgukaart''' | |||
#vi /etc/hostname.em1 | #vi /etc/hostname.em1 | ||
inet 192.168.56. | |||
inet 192.168.56.10 255.255.255.0 | |||
Samuti tuleb seadistada välisühenduseks gateway, milleks tuleb luua fail /etc | Samuti tuleb seadistada välisühenduseks gateway, milleks tuleb luua fail '''mygate''' kataloogi '''/etc'''. | ||
#vi /etc/mygate | #vi /etc/mygate | ||
192.168.6.254 | 192.168.6.254 | ||
==Packet Filter== | ==Packet Filter== | ||
PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust | PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust kataloogis '''/etc''' asuvas failis '''rc.conf'''. | ||
/etc | |||
#vi /etc/rc.conf | #vi /etc/rc.conf | ||
pf=YES # Packet filter / NAT | pf=YES # Packet filter / NAT | ||
Teisi seadeid, mida soovitatakse käivitada, saab seadistada failis /etc/sysctl.conf. | Teisi seadeid, mida soovitatakse käivitada, saab seadistada failis '''/etc/sysctl.conf'''. Antud näite puhul tuleb sisse kommenteerida IPv4 pakettide marsruutimiseks vajalik rida. | ||
#vi /etc/sysctl.conf | #vi /etc/sysctl.conf | ||
net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets | net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets | ||
Tulemüüri seadistused teostatakse ning salvastatakse failis /etc/pf.conf ning laetakse süsteemi käsuga | Tulemüüri seadistused teostatakse ning salvastatakse failis '''/etc/pf.conf''' ning laetakse süsteemi käsuga | ||
pfctl -f /etc/pf.conf | pfctl -f /etc/pf.conf | ||
Line 48: | Line 65: | ||
server="192.168.56.107" | server="192.168.56.107" | ||
Algselt keelame kõik liikluse välisvõrgust blokeerides võrgukaardi | Algselt keelame kõik liikluse välisvõrgust blokeerides võrgukaardi '''ext_if'''. | ||
block in log on $ext_if all | block in log on $ext_if all | ||
Line 61: | Line 78: | ||
pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443 | pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443 | ||
Samba kasutuseks tuleb tulemüürist suunata serverisse pordid 137, 138, 193 ja 445. Kaks esimest kasutavas TCP protokolli ja viimased | Samba kasutuseks tuleb tulemüürist suunata serverisse pordid 137, 138, 193 ja 445. Kaks esimest kasutavas TCP protokolli ja viimased UDP protokolli. | ||
pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 | pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 | ||
Line 72: | Line 89: | ||
pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22 | pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22 | ||
Peale vastavate reeglite sisestust on /etc/pf.conf fail järgmine | Peale vastavate reeglite sisestust on '''/etc/pf.conf''' fail järgmine: | ||
# $OpenBSD: pf.conf,v 1.50 2011/04/28 00:19:42 mikeb Exp $ | # $OpenBSD: pf.conf,v 1.50 2011/04/28 00:19:42 mikeb Exp $ | ||
Line 78: | Line 95: | ||
# See pf.conf(5) for syntax and examples. | # See pf.conf(5) for syntax and examples. | ||
# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1 | # Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1 | ||
# in /etc/sysctl.conf if packets are to be forwarded between interfaces. | # in /etc/sysctl.conf if packets are to be forwarded between interfaces.<br> | ||
#set skip on lo | #set skip on lo<br> | ||
# filter rules and anchor for ftp-proxy(8) | # filter rules and anchor for ftp-proxy(8) | ||
#anchor "ftp-proxy/*" | #anchor "ftp-proxy/*" | ||
#pass in quick inet proto tcp to port ftp divert-to 127.0.0.1 port 8021 | #pass in quick inet proto tcp to port ftp divert-to 127.0.0.1 port 8021<br> | ||
# anchor for relayd(8) | # anchor for relayd(8) | ||
#anchor "relayd/*" | #anchor "relayd/*"<br> | ||
pass # to establish keep-state | pass # to establish keep-state<br> | ||
# rules for spamd(8) | # rules for spamd(8) | ||
#table <spamd-white> persist | #table <spamd-white> persist | ||
Line 93: | Line 110: | ||
#pass in on egress proto tcp from <nospamd> to any port smtp | #pass in on egress proto tcp from <nospamd> to any port smtp | ||
#pass in log on egress proto tcp from <spamd-white> to any port smtp | #pass in log on egress proto tcp from <spamd-white> to any port smtp | ||
#pass out log on egress proto tcp to any port smtp | #pass out log on egress proto tcp to any port smtp<br> | ||
#block in quick from urpf-failed to any # use with care | #block in quick from urpf-failed to any # use with care<br> | ||
# By default, do not permit remote connections to X11 | # By default, do not permit remote connections to X11<br> | ||
block in on ! lo0 proto tcp to port 6000:6010 | block in on ! lo0 proto tcp to port 6000:6010<br> | ||
### Macrod ### | ### Macrod ### | ||
ext_if="em0" | ext_if="em0" | ||
int_if="em1" | int_if="em1" | ||
server="192.168.56.107" | server="192.168.56.107"<br> | ||
### Keelatud ### | ### Keelatud ### | ||
block in log on $ext_if all | block in log on $ext_if all<br> | ||
### Match Rules ### | ### Match Rules ### | ||
match out on egress inet from !(egress) to any nat-to (egress:0) | match out on egress inet from !(egress) to any nat-to (egress:0)<br> | ||
### Redirection ### | ### Redirection ###<br> | ||
# web # | # web # | ||
pass in on $ext_if proto tcp from any to $ext_if port 80 rdr-to $server port 80 | pass in on $ext_if proto tcp from any to $ext_if port 80 rdr-to $server port 80 | ||
pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443 | pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443<br> | ||
# samba # | # samba # | ||
pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 | pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 | ||
pass in on $ext_if proto tcp from any to $ext_if port 445 rdr-to $server port 445 | pass in on $ext_if proto tcp from any to $ext_if port 445 rdr-to $server port 445 | ||
pass in on $ext_if proto udp from any to $ext_if port 137 rdr-to $server port 137 | pass in on $ext_if proto udp from any to $ext_if port 137 rdr-to $server port 137 | ||
pass in on $ext_if proto udp from any to $ext_if port 138 rdr-to $server port 138 | pass in on $ext_if proto udp from any to $ext_if port 138 rdr-to $server port 138<br> | ||
# ssh # | # ssh # | ||
pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22 | pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22 | ||
Peale muudatuste salvestamist faili /etc/pf.conf laetakse reeglid tulemüüri käsuga | Peale muudatuste salvestamist faili '''/etc/pf.conf''' laetakse reeglid tulemüüri käsuga: | ||
pfctl -f /etc/pf.conf | pfctl -f /etc/pf.conf | ||
==Varudandamine ja taastamine== | |||
Packet Filteri reegild on salvestatud '''pf.confi''' nimelisse faili, mis asub '''/etc''' kataloogis. Tulemüüri seadistuste taastamiseks, peab eelnevalt mainitud failist tegema varukoopia. Samuti tuleb dokumenteerida OpenBSD seadistused nagu näiteks võrguseadistused ja teenused, mis on antud süsteemis kasutusel. Toodud näites on võrguseadistused failides '''hostname.em0''', '''hostname.em1''' ja '''mygate''', mis asuvad kataloogis '''/etc'''. Samuti vajavad varundamist failid '''/etc/rc.conf''' ja '''/etc/sysctl.conf''', mis kirjeldavad alglaadimisel käivitatavaid süsteeme ja teenuseid. Tulemüüri taastamiseks tuleb peale vana süsteemi parandust või uue paigaldamist asendada vastavad failid varukoopiatega. Pärast vajalike failide paigaldamist/asendamist teha tulermüüri masinale restart. | |||
==Kasutatud kirjandus== | ==Kasutatud kirjandus== | ||
Line 127: | Line 147: | ||
http://kuutorvaja.eenet.ee/wiki/Packet_Filter | http://kuutorvaja.eenet.ee/wiki/Packet_Filter | ||
http://openbsd.com/faq/faq4.html | |||
==Autorid== | ==Autorid== |
Latest revision as of 16:14, 16 December 2011
Viimati muudetud: 16/12/2011
Versioon: 1.1
Sissejuhatus
Selles referaadis käsitletakse tulemüüri seadistamist OpenBSD 5.0. Tulemüürina kasutatakse Packet Filterit (PF), mis on olnud osa OpenBSD-st alates versioonist 3.0, mis ilmus 2001 aastal. Toodud näited eeldavad käsurea ja tekstiredaktor „vi“ kasutamise oskusi. Antud tulemüür eraldab välisvõrgust serveri, millel jookseb veebiserver ja samba ning antud serverit on võimalik seadistada välisvõrgust kasutades ssh ühendust. Näites kasutatud IP-d tuleb muuta vastavalt oma süsteemile.
OpenBSD paigaldamine
Antud töös on kasutatud OpenBSD 5.0 64 bitist operatsioonisüsteemi. OpenBSD sai paigaldatud vaikesätetega. Peale operatsioonisüsteemi paigaldust sai lisatud teine võrgukaart, milleks tuli lisada fail hostname.em1 kataloogi /etc.
Esimene võrgukaart
#vi /etc/hostname.em0
inet 192.168.6.157 255.255.255.0
Teine võrgukaart
#vi /etc/hostname.em1
inet 192.168.56.10 255.255.255.0
Samuti tuleb seadistada välisühenduseks gateway, milleks tuleb luua fail mygate kataloogi /etc.
#vi /etc/mygate
192.168.6.254
Packet Filter
PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust kataloogis /etc asuvas failis rc.conf.
#vi /etc/rc.conf
pf=YES # Packet filter / NAT
Teisi seadeid, mida soovitatakse käivitada, saab seadistada failis /etc/sysctl.conf. Antud näite puhul tuleb sisse kommenteerida IPv4 pakettide marsruutimiseks vajalik rida.
#vi /etc/sysctl.conf
net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets
Tulemüüri seadistused teostatakse ning salvastatakse failis /etc/pf.conf ning laetakse süsteemi käsuga
pfctl -f /etc/pf.conf
Enne kui tulemüüri käsklused süsteemi laadida, on mõistlik neid kontrollida. Seda saab teha käsuga:
pfctl –nf /etc/pf.conf
PF on võimalik seadistada muutujaid, milleks võivad olla nii võrgu liidesed, IP aadressid kui ka pordid. Antud näites on määratud võrgu liidestele nimed ning serveri IP aadress. Muutujad lihtsustavad tulemüüri reeglite loetavust ja muutuste teostust.
ext_if="em0" int_if="em1" server="192.168.56.107"
Algselt keelame kõik liikluse välisvõrgust blokeerides võrgukaardi ext_if.
block in log on $ext_if all
Kuna on vaja serverist ligipääsu välisvõrgule, siis on seadistatud NAT kogu sisevõrgule.
match out on egress inet from !(egress) to any nat-to (egress:0)
Serveril jookseb veebi ja samba teenus. Nende kasutamiseks peab välisvõrgust ligipääsu lubama vastavatele portidele serveris. Selleks on teostatud portide ümbersuunamine. Kuna serveris olevale veebilehele tuleb ligi pääseda kasutades ka turvatud ühendust, tuleb lisaks pordile 80 ümbersuunamine teha ka pordile 443.
pass in on $ext_if proto tcp from any to $ext_if port 80 rdr-to $server port 80 pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443
Samba kasutuseks tuleb tulemüürist suunata serverisse pordid 137, 138, 193 ja 445. Kaks esimest kasutavas TCP protokolli ja viimased UDP protokolli.
pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 pass in on $ext_if proto tcp from any to $ext_if port 445 rdr-to $server port 445 pass in on $ext_if proto udp from any to $ext_if port 137 rdr-to $server port 137 pass in on $ext_if proto udp from any to $ext_if port 138 rdr-to $server port 138
Serveri halduseks on võimaldatud ligipääs läbi tulemüüri SSH liiklusel. Selleks on ümbersuunatud TCP port 22 serveri IP aadressile.
pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22
Peale vastavate reeglite sisestust on /etc/pf.conf fail järgmine:
# $OpenBSD: pf.conf,v 1.50 2011/04/28 00:19:42 mikeb Exp $ # # See pf.conf(5) for syntax and examples. # Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1 # in /etc/sysctl.conf if packets are to be forwarded between interfaces.
#set skip on lo
# filter rules and anchor for ftp-proxy(8) #anchor "ftp-proxy/*" #pass in quick inet proto tcp to port ftp divert-to 127.0.0.1 port 8021
# anchor for relayd(8) #anchor "relayd/*"
pass # to establish keep-state
# rules for spamd(8) #table <spamd-white> persist #table <nospamd> persist file "/etc/mail/nospamd" #pass in on egress proto tcp from any to any port smtp \ # rdr-to 127.0.0.1 port spamd #pass in on egress proto tcp from <nospamd> to any port smtp #pass in log on egress proto tcp from <spamd-white> to any port smtp #pass out log on egress proto tcp to any port smtp
#block in quick from urpf-failed to any # use with care
# By default, do not permit remote connections to X11
block in on ! lo0 proto tcp to port 6000:6010
### Macrod ### ext_if="em0" int_if="em1" server="192.168.56.107"
### Keelatud ### block in log on $ext_if all
### Match Rules ### match out on egress inet from !(egress) to any nat-to (egress:0)
### Redirection ###
# web # pass in on $ext_if proto tcp from any to $ext_if port 80 rdr-to $server port 80 pass in on $ext_if proto tcp from any to $ext_if port 443 rdr-to $server port 443
# samba # pass in on $ext_if proto tcp from any to $ext_if port 193 rdr-to $server port 193 pass in on $ext_if proto tcp from any to $ext_if port 445 rdr-to $server port 445 pass in on $ext_if proto udp from any to $ext_if port 137 rdr-to $server port 137 pass in on $ext_if proto udp from any to $ext_if port 138 rdr-to $server port 138
# ssh # pass in on $ext_if proto tcp from any to $ext_if port 22 rdr-to $server port 22
Peale muudatuste salvestamist faili /etc/pf.conf laetakse reeglid tulemüüri käsuga:
pfctl -f /etc/pf.conf
Varudandamine ja taastamine
Packet Filteri reegild on salvestatud pf.confi nimelisse faili, mis asub /etc kataloogis. Tulemüüri seadistuste taastamiseks, peab eelnevalt mainitud failist tegema varukoopia. Samuti tuleb dokumenteerida OpenBSD seadistused nagu näiteks võrguseadistused ja teenused, mis on antud süsteemis kasutusel. Toodud näites on võrguseadistused failides hostname.em0, hostname.em1 ja mygate, mis asuvad kataloogis /etc. Samuti vajavad varundamist failid /etc/rc.conf ja /etc/sysctl.conf, mis kirjeldavad alglaadimisel käivitatavaid süsteeme ja teenuseid. Tulemüüri taastamiseks tuleb peale vana süsteemi parandust või uue paigaldamist asendada vastavad failid varukoopiatega. Pärast vajalike failide paigaldamist/asendamist teha tulermüüri masinale restart.
Kasutatud kirjandus
http://www.openbsd.org/faq/pf/index.html
http://kuutorvaja.eenet.ee/wiki/Packet_Filter
http://openbsd.com/faq/faq4.html
Autorid
Heigo Võsujalg
Toomas Rohumets