OpenBSD tulemüür PF: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Hvosujal (talk | contribs)
No edit summary
Trohumet (talk | contribs)
No edit summary
 
(38 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.50 255.255.255.0
 
  inet 192.168.56.10 255.255.255.0


Samuti tuleb seadistada välisühenduseks gateway, milleks tuleb luua fail /etc/mygate.
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
==Meie võrguplaan==
Meie võrguplaan on selline nagu järgneval joonisel.
[[File:vorguplaan.PNG]]


==Packet Filter==
==Packet Filter==


PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust failis
PF käivitatakse OpenBSD alglaadimisel. Seda saab sisse ja välja lülitada muutes seadistust kataloogis '''/etc'''  asuvas failis '''rc.conf'''.
/etc/rc.conf.


  #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. Näiteks marsruutimiseks tuleb sisse kommenteerida järgnev rida.
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 (ext_if).   
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 aga UDP protokolli.
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<br>
  #set skip on lo
 
  # 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<br>
  pass        # to establish keep-state
 
  # rules for spamd(8)
  # rules for spamd(8)
  #table <spamd-white> persist
  #table <spamd-white> persist
Line 98: 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<br>
  #block in quick from urpf-failed to any    # use with care
  # By default, do not permit remote connections to X11<br>
 
  block in on ! lo0 proto tcp to port 6000:6010<br>
  # By default, do not permit remote connections to X11
  block in on ! lo0 proto tcp to port 6000:6010
 
  ### 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)<br>
  match out on egress inet from !(egress) to any nat-to (egress:0)
  ### Redirection ###<br>
 
  ### Redirection ###
 
  # 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 141: 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