Для реализации был взят готовый конфиг отсюда http://netbsd.webfabrika.ru/content/view/41/ и немного переделан под собственные нужды... В результате имеем:
--------------------
#################################################################
# Создаем общие группы правил.
#################################################################
block in on fxp0 all head 100
block in proto tcp all flags S head 101 group 100
block in proto udp all head 201 group 100
block in proto icmp all head 202 group 100
block out on fxp0 all head 150
block in log on rl0 all head 250
#block in proto tcp all flags S head 251 group 250
#block in proto udp all head 252 group 250
#block in proto icmp all head 253 group 250
block out on rl0 all head 300
block in on fxp1 all head 350
block out on fxp1 all head 400
#################################################################
# Разрешаем прохожение пакетов через loopback интерфейс.
#################################################################
pass in quick on lo0 all
pass out quick on lo0 all
block in quick on fxp0 from 127.0.0.0/8 to any
block in quick on fxp0 from any to 127.0.0.0/8
#################################################################
# Разрешаем прохождение пакетов на интерфейсе rl0.
#################################################################
pass in quick proto tcp from any to any port = 22 keep state keep frags group 250
pass in quick proto tcp from any to any port = 53 keep state keep frags group 250
pass in quick proto udp from any to any port = 53 keep state keep frags group 250
pass in quick proto tcp from any to any port = smtp keep state keep frags group 250
pass in quick proto tcp from any to any port = pop3 keep state keep frags group 250
pass in quick proto icmp from any to any group 250
pass out quick from any to any keep state keep frags group 300
#################################################################
# Разрешаем прохождение пакетов на интерфейсе fxp1.
#################################################################
pass in quick all group 350
pass out quick all group 400
#################################################################
# Блокируем исходящий трафик от запрещенных сетей
#################################################################
block out quick from any to 127.0.0.0/8 group 150
block out quick from any to 192.168.0.0/16 group 150
block out quick from any to 172.16.0.0/12 group 150
block out quick from any to 10.0.0.0/8 group 150
block out quick from any to 0.0.0.0/8 group 150
block out quick from any to 169.254.0.0/16 group 150
block out quick from any to 192.0.2.0/24 group 150
block out quick from any to 204.152.64.0/23 group 150
block out quick from any to 224.0.0.0/3 group 150
#################################################################
# Разрешаем исходящие пакеты на интерфейсе fxp0 с созданием контроля соединений и фрагментированных пакетов
#################################################################
pass out quick from any to any keep state keep frags group 150
#################################################################
# Блокируем входящие пакеты на интерфейс fxp0 от запрещенный сетей
#################################################################
block in log first quick all with short group 100
block in quick from 192.168.0.0/16 to any group 100
block in quick from 172.16.0.0/12 to any group 100
block in quick from 10.0.0.0/8 to any group 100
block in quick from 127.0.0.0/8 to any group 100
block in quick from 0.0.0.0/8 to any group 100
block in quick from 169.254.0.0/16 to any group 100
block in quick from 192.0.2.0/24 to any group 100
block in quick from 204.152.64.0/23 to any group 100
block in quick from 224.0.0.0/3 to any group 100
#################################################################
# Разрешаем пассивный и активный режим FTP.
#################################################################
#pass in quick proto tcp from any to any port = ftp keep state keep frags group 101
#pass in quick proto tcp from any to any port = ftp-data keep state keep frags group 101
#pass in quick proto tcp from any port = ftp-data to any port > 1023 keep state keep frags group 101
#pass in quick proto tcp from any to any port 39999 >< 40011 keep state keep frags group 101
#(диапазон портов 20000-25000 выделен для работы пассивного FTP)
#################################################################
# Разрешаем доступ снаружи к различным сервисам.
#################################################################
pass in quick proto tcp from any to any port = 53 keep state keep frags group 101
pass in quick proto udp from any to any port = 53 keep state keep frags group 201
pass in quick proto tcp from any to any port = 22 keep state keep frags group 101
pass in quick proto tcp from any to any port = smtp keep state keep frags group 101
pass in quick proto tcp from any to any port = pop3 keep state keep frags group 101
#pass in quick proto tcp from any to any port = imap keep state keep frags group 101
pass in quick proto tcp from any to any port = www keep state keep frags group 101
#pass in quick proto tcp from any to any port = https keep state keep frags group 101
#################################################################
# Разрешаем пинг с внутренней сети.
#################################################################
pass in quick proto icmp from any to any icmp-type 0 keep state group 202
pass in quick proto icmp from any to any icmp-type 11 keep state group 202
#################################################################
# Блокируем все другие типы ICMP на интерфейсе fxp0
#################################################################
block in quick from any to any group 202
#################################################################
# Возвращаем флаг RESET при обращении на 113 порт (необходимо для некоторых
# приложений использующих ident)
#################################################################
#block return-rst in quick proto tcp from any to any port = auth group 101
#################################################################
# Блокируем и пишем в лог все входящие попытки соединений на интерфейс fxp0 (пакеты с флагом S).
#################################################################
block in log first quick all with frag group 100
#################################################################
# Блокируем все входящие пакеты на интерфейс fxp0.
#################################################################
block in quick all group 101
--------------------
При таком раскладе у юзера кроме почты ничего нет...
Далее, включаем инет:
echo "pass in quick proto tcp from 192.168.0.10 to any keep state keep frags group 250" | ipf -f -
Прекрасно, теперь у юзера есть всё...
Теперь выключаю инет:
echo "pass in quick proto tcp from 192.168.0.10 to any keep state keep frags group 250" | ipf -rf -
Упс..., инета нету..., а вот радио, icq и т.д. продолжают работу...
#ipfstat -t
192.168.0.10,3142 62.140.230.23,8000 4/4 tcp 527475 331503240 119:59:59
192.168.0.10,3192 205.188.9.72,5190 4/4 tcp 679 85844 119:58:49
Надоумьте как решить проблему...