De las secciones anteriores resultaría un
archivo /etc/pf.conf
(adaptado de la Guía de PF) como el siguiente:
# Recordar poner net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
# en /etc/sysctl.conf
ext_if="dc1" # Cambiar por interfaz externa
int_if="dc0" # Cambiar por interfaz interna
int_ip="192.168.1.1" # Cambiar por dirección en LAN
ext_ip="200.93.171.42" # Cambiar por IP pública
# LAN. Segmento de red
lan="192.168.1/24"
# Servicios que presta cortafuegos
servicios_tcp="{ssh,domain}"
servicios_udp="{domain}"
servicios_icmp="echoreq"
# Servidor interno
serv_ip="192.168.2.2"
servicios_serv="{ldap,smtp,www,https,imaps}"
set block-policy return
set loginterface $ext_if
set skip on {lo enc0}
scrub in all
match out on $ext_if from !($ext_if) nat-to ($ext_if:0)
block in log all
pass out keep state
pass quick on { lo }
antispoof quick for { lo $int_if }
pass in on $int_if proto tcp from $lan to any port ftp
pass out proto tcp from $ext_ip to any port 21
match in on $int_if proto tcp from $lan to any port ftp rdr-to \
127.0.0.1 port 8021
pass in quick on $int_if
match in on $ext_if proto tcp from any to any port 80 rdr-to \
$serv_ip port 80
match in on $ext_if proto tcp from any to any port 443 rdr-to \
$serv_ip port 443
match in on $ext_if proto tcp from any to any port 993 rdr-to \
$serv_ip port 993
match in on $ext_if proto tcp from any to any port smtp rdr-to \
$serv_ip port smtp
match in on $ext_if proto tcp from any to any port 389 rdr-to \
$serv_ip port 389
match in on $ext_if proto tcp from any to any port 10022 rdr-to \
$serv_ip port 22
pass on $ext_if proto tcp from any to any port 10022
match in on $ext_if proto tcp from any to any port 10465 rdr-to \
$serv_ip port 465
pass on $ext_if proto tcp from any to any port 10465
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $servicios_tcp keep state
pass in on $ext_if inet proto udp from any to ($ext_if) \
port $servicios_udp keep state
pass in inet proto icmp all icmp-type $servicios_icmp keep state
pass in on $ext_if proto tcp from any to $serv_ip port $servicios_serv \
flags S/SA synproxy state
Guía del usuario de PF [PF].