Hi
I have a simple question about pf.
I want to block outgoing smtp traficc for all my users. I only pass
smtp traffic to two smtp server (correo.urdi.com.ar,
smtp.bourlot.com).
This rule:
block out log quick on $ext_if proto tcp from any to any !{
correo.urdi.com.ar, smtp.bourlot.com } port smtp
don't woks ..... what's I doing wrong.
Thanks in advance
roberto
My rules are:
#interfaces
ext_if = "dc0"
int_if = "xl0"
# protocols
protocolos = "{ tcp, udp, icmp }"
netbios = "{ netbios-ns, netbios-dgm, netbios-ssn, microsoft-ds }"
##clients
cliente1 = "90.0.2.2"
cliente2 = "90.0.2.3"
cliente3 = "90.0.2.4"
clientes = "{" $cliente1 $cliente2 $cliente3 ........."}
# RFC1918
priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }"
# Those wonderful scrubbing bubbles
scrub in all
# NAT/RDR directives
nat on $ext_if from $clientes to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr on $ext_if proto { tcp, udp } from any to $ext_if port pptp ->
90.0.2.6 port pptp
# Filtering begins
block drop all
# Local machine stuff
pass quick on lo0 all
## enable ssh in firewall
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port 22 flags S/SA keep state queue ssh_server
# Clean invalid SRC/DST packets
block in quick on $ext_if from $priv_nets to any
block out quick on $ext_if from any to $priv_nets
# block netbios
block in log quick on $ext_if inet proto { tcp, udp } from any to any
port $netbios
block out log quick on $ext_if inet proto { tcp, udp } from any to any
port $netbios
### block smtp traffic (dont't work)
block out log quick on $ext_if proto tcp from any to any !{
correo.urdi.com.ar, smtp.bourlot.com } port smtp
# Out to the 'net
pass out on $ext_if proto tcp from ($ext_if) to any flags S/SA
modulate state queue(std_out, tcp_ack_out)
pass out on $ext_if proto tcp from ($ext_if) to any port 80 modulate
state queue web_surf
pass out on $ext_if proto tcp from ($ext_if) to any port 443 modulate
state queue https_surf
pass out on $ext_if proto { udp } from ($ext_if) to any keep state queue std_out
pass out on $ext_if proto { gre } from ($ext_if) to any keep state queue std_out
pass out on $ext_if proto { icmp } from ($ext_if) to any keep state
queue icmp_out
pass out on $ext_if proto { tcp udp } from ($ext_if) to any port
domain keep state queue dns_out
# Internal queueing
pass in on $int_if from $cliente1 to any keep state
pass in on $int_if from $cliente2 to any keep state
.......................................
.......................................