Ingår i de senaste versionerna av OpenBSD. Förutsättningar för konfiguration beskriven här är att
du vill komma åt maskinen via SSH från kända IP-serier utifrån, och från det interna nätverket.
Det interna nätet ligger på den privata IP-serien 192.168.1.0/24, och endast interfacet xl0 används
(maskinen används inte som brandvägg/nat-box/brygga).
De övriga IP-serierna du litar på är:
81.235.36.0/24
Skapa/redigera filen /etc/pf.conf (utgår i från originalet):
# $OpenBSD: pf.conf,v 1.34 2007/02/24 19:30:59 millert Exp $ # # See pf.conf(5) and /usr/share/pf 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. ext_if="xl0" #int_if="int0" #table <spamd-white> persist set skip on lo scrub in allowed_in = "{ 81.235.36.0/24, 192.168.0.0/16 }" #nat-anchor "ftp-proxy/*" #rdr-anchor "ftp-proxy/*" #nat on $ext_if from !($ext_if) -> ($ext_if:0) #rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021 #no rdr on $ext_if proto tcp from <spamd-white> to any port smtp #rdr pass on $ext_if proto tcp from any to any port smtp \ # -> 127.0.0.1 port spamd #anchor "ftp-proxy/*" block in pass out #pass quick on $int_if no state #antispoof quick for { lo $int_if } #pass in on $ext_if proto tcp to ($ext_if) port ssh #pass in log on $ext_if proto tcp to ($ext_if) port smtp #pass out log on $ext_if proto tcp from ($ext_if) to port smtp pass in log quick from $allowed_in to any
Det markerade är de rader jag ändrat på, och en kort förklaring på vad jag gjort följer:
För att aktivera PF kör man kommandona:
pfctl -f /etc/pf.conf pfctl -e
Mest troligt kommer din befintliga SSH-uppkoppling mot maskinen att 'frysa', så att du behöver logga in på nytt för att fortsätta.
Fixa så att PF startas automatiskt
echo 'pf=YES' >>/etc/rc.conf.local
För att kontrollera reglerna, och se hur de tolkats (pf.conf):
pfctl -s rules
För att ladda om pf.conf:
pfctl -f /etc/pf.conf
För att avaktivera filtret:
pfctl -d
För att se loggen (och spåra ev otillåtna anslutningar eller blockerade paket):
tcpdump -n -e -ttt -r /var/log/pflog
alt. (realtid)
tcpdump -n -e -ttt -i pflog0
Mer nyttigheter om PF finns att läsa i FAQ:n http://www.openbsd.org/faq/pf/index.html