OpenBSD tulemüür PF
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.
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.
#vi /etc/hostname.em1 inet 192.168.56.50 255.255.255.0
Samuti tuleb seadistada välisühenduseks gateway, milleks tuleb luua fail /etc/mygate.
#vi /etc/mygate 192.168.6.254
Meie võrguplaan
Meie võrguplaan on selline nagu järgneval joonisel. vorguplaan
Packet Filter
PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust failis /etc/rc.conf.
#vi /etc/rc.conf pf=YES # Packet filter / NAT
Teisi seadeid, mida soovitatakse käivitada, saab seadistada failis /etc/sysctl.conf. Näiteks marsruutimiseks tuleb sisse kommenteerida järgnev 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 aga 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
Kasutatud kirjandus
http://www.openbsd.org/faq/pf/index.html
http://kuutorvaja.eenet.ee/wiki/Packet_Filter
Autorid
Heigo Võsujalg
Toomas Rohumets