OpenBSD tulemüür PF

From ICO wiki
Revision as of 20:38, 6 December 2011 by Hvosujal (talk | contribs)
Jump to navigationJump to search

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 mygate kataloogi /etc.

#vi /etc/mygate
192.168.6.254

Meie võrguplaan

Meie võrguplaan on selline nagu järgneval joonisel.

Packet Filter

PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust failis /etc kataloogis asuvas 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