Правила не помогли, собственно уже не знаю даже куда рыть, уже pf в ядро загрузил, а не модулем. Проблему решить не могу.
# Internet
ext_if="re1"
external_addr="217.195.xxx.xxx"
# Local network
int_if="re0"
internal_addr="192.168.xxx.xxx"
internal_net="192.168.xxx.0/24"
# Servers
spbfs="192.168.xxx.xxx"
mail_srv="192.168.xxx.xxx"
mail_srv_port="{ 25, 110, 993, 995 }"
table <me> const { $external_addr, $internal_addr }
# Redirect table
rdr on $int_if inet proto tcp from $internal_net to any port { 80, 8080 } -> 127.0.0.1 port 3128
rdr on $ext_if inet proto tcp from any to $external_addr port $mail_srv_port -> $mail_srv
# Block
block in log all
block on $ext_if from <sshblocked> to <me>
# Update
pass in on $int_if inet proto tcp from { $spbfs, $mail_srv } to any keep state
# ICMP
pass in inet proto icmp from any to any keep state
#ICQ, Jabber, Mail agent
pass in on $int_if inet proto udp from $internal_net to any port 5190 keep state
pass in on $int_if inet proto tcp from $internal_net to any port 5190 keep state
# Mail
pass in on $int_if inet proto tcp from $internal_net to $mail_ru port { 25, 110, 135, 143, 465, 993, 995 } keep state
pass in on $int_if inet proto tcp from $internal_net to $list_ru port { 25, 110, 135, 143, 465, 993, 995 } keep state
pass in on $int_if inet proto tcp from $internal_net to $smtp_mail port 25 keep state
#pass in on $ext_if inet proto tcp from any to $external_addr port { 25, 110, 143, 465, 993, 995 } keep state
pass in on $int_if inet proto tcp from $internal_net to $argus port { 25, 110 } keep state
pass in on $int_if inet proto tcp from $internal_net to $list2_ru port { 25, 110, 135, 143, 465, 993, 995 } keep state
pass in on $int_if inet proto tcp from $internal_net to { $pop_mail, $smtp_mail } port { 25, 110, 135, 143, 465, 993, 995 } keep state
pass in on $ext_if inet proto tcp from any to $mail_srv port { 25, 110, 993, 995 } keep state
#pass in on $int_if inet proto tcp from $mail_srv to any port { 25, 110, 993, 995 } keep state
# DNS, DHCP
pass in on $int_if inet proto tcp from $internal_net to $internal_addr port 389 keep state
pass in on $int_if inet proto udp from $internal_net to $internal_addr port 389 keep state
pass in on $int_if inet proto udp from $internal_net to $internal_addr port { 53, 67, 68, 88 } keep state
pass in on $int_if inet proto tcp from $internal_net to $internal_addr port { 53, 67, 68, 88 } keep state
pass in on $ext_if inet proto udp from any to $external_addr port 53 keep state
# Samba
pass in on $int_if inet proto udp from $internal_net to $internal_addr port { 137, 138 } keep state
pass in on $int_if inet proto tcp from $internal_net to $internal_addr port { 139, 445 } keep state
# Unlim
pass in on $int_if from { $my_comp, $id_comp, $gd_comp, $gb_comp, $mail_srv } to any keep state
pass in on $int_if from $internal_net to $internal_addr keep state
# out ext
pass out from <me> to any keep state
Это основные конфиги, все что связано с мылом оставил как есть, может там у меня где ошибка, на неописанные имена не обращайте внимания они описаны, но сюда не выложены
Тормоза долго не живут, они стираются.