Так и не могу понять в чем же дело. Перечитал всю тему. У людей были проблемы с входящими соединениями, но как описано в доп. материалах к статье terminus'a решались они путем выключения rxcsum и tso. У меня были глюки с веб сервером - картинки на сайте прогружались не до конца. Выключил tso сервер отпустило

Но на входящие соединения это ни как не повлияло. Пока не включу машину за сервером - сервер не принимает ничего! Причем машину потом можно выключить и все будет работать. До определенного момента.
Вот параметры адаптеров:
внутренний:
Код: Выделить всё
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
внешний:
Код: Выделить всё
alc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=c3098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
lo0:
Код: Выделить всё
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
Ядро пересобрано с такими опциями:
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ="1000"
Правила ipfw:
Код: Выделить всё
#!/bin/sh
# Вводим переменные:
FwCMD="/sbin/ipfw" # Расположение бинарника IPFW
LanOUT="alc0" # Внешний интерфейс
LanIN="re0" # Внутренний интерфейс
IpOUT="80.80.80.80" # Внешний IP адрес
IpIN="192.168.1.1" # Внутренний IP адрес
NetIN="192.168.1.0" # Внетренняя сеть
FullUSER="192.168.1.2/32,192.168.1.3/32,192.168.1.4/32,192.168.1.5/32,192.168.1.6/32" # IP адреса с доступом в интернет
# Сбрасываем все правила
${FwCMD} -f flush
# Очищаем таблицы с блокируемыми адресами
${FwCMD} -f "table 1" flush
${FwCMD} -f "table 2" flush
# Разрешаем весь трафик по внутреннему интерфейсу (петле)
${FwCMD} add allow ip from any to any via lo0
# Запрещаем lo0 куда то лезть и откуда то лезть
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
# Запрещаем таблицу с ip адресами с которых неправильно ввели логин или пароль по SSH. BruteBlock для SSH
${FwCMD} add deny ip from "table(1)" to any in recv ${LanOUT}
# Запрещаем таблицу с ip адресами с которых неправильно ввели логин или пароль к vsftpd
${FwCMD} add deny ip from "table(2)" to any in recv ${LanOUT}
# Разрешаем некоторые типы ICMP запросов (эхо-запрос, эхо-ответ, время жизни пакета истекло)
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# Разрешаем все исходящие/входящие соединения FullUser'ам через внутренний интерфейс
# zapreshaem vsem ostalnim vozmozhnost' ispolzovat etot router
${FwCMD} add allow all from ${FullUSER} to any in recv ${LanIN}
${FwCMD} add allow all from any to ${FullUSER} out xmit ${LanIN}
${FwCMD} add deny all from ${NetIN} to any via ${LanIN}
# Запрещаем частные сети на внешнем интерфейсе
${FwCMD} add deny ip from any to 10.0.0.0 in recv ${LanOUT}
${FwCMD} add deny ip from 10.0.0.0/8 to any in recv ${LanOUT}
${FwCMD} add deny ip from any to 172.16.0.0/12 in recv ${LanOUT}
${FwCMD} add deny ip from 172.16.0.0/12 to any in recv ${LanOUT}
${FwCMD} add deny ip from any to 192.168.0.0/16 in recv ${LanOUT}
${FwCMD} add deny ip from 192.168.0.0/16 to any in recv ${LanOUT}
${FwCMD} add deny ip from any to 169.254.0.0/16 in recv ${LanOUT}
${FwCMD} add deny ip from 169.254.0.0/16 to any in recv ${LanOUT}
# Запрещаем широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in recv ${LanOUT}
${FwCMD} add deny log icmp from any to 255.255.255.255 out xmit ${LanOUT}
# NAT встроенный в ядро системы
${FwCMD} nat 1 config log if ${LanOUT} reset same_ports deny_in redirect_port tcp ${IpOUT}:22 22 redirect_port tcp ${IpOUT}:21 21 redirect_port tcp ${IpOUT}:50000-50500 50000-50500 redirect_port tcp ${IpOUT}:80 80
${FwCMD} add nat 1 ip from any to any via ${LanOUT}
ipfw show (правила составлены по наводке

автора статьи):
Код: Выделить всё
00100 1784 184134 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from table(1) to any in recv alc0
00500 0 0 deny ip from table(2) to any in recv alc0
00600 0 0 deny ip from table(3) to any dst-port 80 in recv alc0
00700 294 18092 allow icmp from any to any icmptypes 0,8,11
00800 225402 13071496 allow ip from 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,192.168.1.6 to any in recv re0
00900 482227 706049343 allow ip from any to 192.168.1.2,192.168.1.3,192.168.1.4,192.168.1.5,192.168.1.6 out xmit re0
01000 0 0 deny ip from 192.168.1.0 to any via re0
01100 31 1712 deny ip from any to any dst-port 139,445 in recv alc0
01200 0 0 deny ip from any to 10.0.0.0 in recv alc0
01300 198278 19158881 deny ip from 10.0.0.0/8 to any in recv alc0
01400 0 0 deny ip from any to 172.16.0.0/12 in recv alc0
01500 0 0 deny ip from 172.16.0.0/12 to any in recv alc0
01600 199 32138 deny ip from any to 192.168.0.0/16 in recv alc0
01700 345 198472 deny ip from 192.168.0.0/16 to any in recv alc0
01800 810 69875 deny ip from any to 169.254.0.0/16 in recv alc0
01900 0 0 deny ip from 169.254.0.0/16 to any in recv alc0
02000 0 0 deny log logamount 1000 icmp from any to 255.255.255.255 in recv alc0
02100 0 0 deny log logamount 1000 icmp from any to 255.255.255.255 out xmit alc0
02200 892966 842252492 nat 1 ip from any to any via alc0
65535 392 49192 deny ip from any to any
Не работает как с параметром deny_in так и без него. Все вроде делаю по статье, и глюки тоже учтены.
У кого нибудь есть идеи? Прошу помочь по возможности...