Выручайте:
стоит FreeBSD 8 IPFW и SQUID
На клиентских машинах через squid некоторые сайты не хотят открываться. например mail.ru открывается, но не прикрепляеюся файлы (долго-долго грузит и в итоге Ошибка!)
Если на этой же машине отключить проксю, т.е. работать через NAT то все летает!
Дальше интересней: если отключить IPFW (allow all any to any) то все летает и через squid и через nat.
Я грешу на неправильную настройку файлов hosts и resolv.conf и на две строки в IPFW, отвечающие за DNS:
${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
или же где то пропустил какое то разрешающее правило.
вот еще:
f8# nslookup mail.ru
Server: 88.147.129.15
Address: 88.147.129.15#53
Non-authoritative answer:
Name: mail.ru
Address: 217.69.128.41
Name: mail.ru
Address: 217.69.128.42
Name: mail.ru
Address: 217.69.128.43
Name: mail.ru
Address: 217.69.128.44
Даже вот щас нажал кнопку "Отправить" и ждал 3 минуты и ничего. Отключил IPFW и сразу сообщение добавилось в форум!
IPFW:
#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="em1" #внешний интерфейс
LanIn="em0" #внутренний
IpOut="192.168.33.8" #внешний ИП
IpIn="192.168.0.123" #внутренний
NetMask="24" #маска
NetIn="192.168.0.0" #внутренняя сеть
${FwCMD} flush
${FwCMD} add 5 allow all from any to any
${FwCMD} add 100 check-state
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add 110 divert natd all from ${NetIn}/${NetMask} to any out via ${LanOu
${FwCMD} add 120 divert natd all from any to ${IpOut} in via ${LanOut}
${FwCMD} add 200 allow ip from any to any via lo0 #разрешаем трафив через петлю
${FwCMD} add 300 deny ip from any to 127.0.0.0/8 # рубит lo0.
${FwCMD} add 400 deny ip from 127.0.0.0/8 to any #.
#запрещают вход и выход по нетбиосу
${FwCMD} add 405 deny tcp from any to any 135-139 via em1
${FwCMD} add 407 deny tcp from any 135-139 to any
#Вводим запреты, рубим частные сeти
${FwCMD} add 500 deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add 600 deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add 800 deny ip from any to 0.0.0.0/8 in via ${LanOut}
#Рубим автоконфигуренную частную сеть
${FwCMD} add 900 deny ip from any to 169.254.0.0/16 in via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 1000 deny ip from any to 240.0.0.0/4 in via ${LanOut}
#рубим фрагментированные icmp
${FwCMD} add 1100 deny icmp from any to any frag
#рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add 1200 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add 1300 deny log icmp from any to 255.255.255.255 out via ${LanOut}
#а тут собственно файрволл и начался:
#рубим траффик к частным сетям через внешний интерфейс
#заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add 1800 deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add 1900 deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add 2000 deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add 2100 deny ip from 0.0.0.0/8 to any out via ${LanOut}
#рубим автоконфигуреную частную сеть
${FwCMD} add 2200 deny ip from 169.254.0.0/16 to any out via ${LanOut}
#рубаем мультикастовые рассылки
${FwCMD} add 2400 deny ip from 240.0.0.0/4 to any out via ${LanOut}
#разрешаем все установленные соединения (если они установились -.
#значит по каким-то правилам они проходили.)
${FwCMD} add 2500 allow tcp from any to any established
#разрешаем весь исходящий траффик (серверу-то в инет можно?
)
${FwCMD} add 2600 allow ip from ${IpOut} to any out xmit ${LanOut}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add 2755 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 2756 allow udp from any 53 to any via ${LanOut}
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3100 allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3200 allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add 3300 allow icmp from any to any via ${LanIn}
${FwCMD} add 3475 allow tcp from any to any out via ${LanOut} setup keep-state