Воюю с freebsd 5.3, 5.4 и щас уже поставил 6.0 везде одна и таже проблема.192.168.234.0/24 - первая локальная (роутер 192.168.234.254)
192.168.1.0/24 - вторая локальная сетьВ машине одна сетевая (rl0) ип 192.168.234.52 и алиас 192.168.1.1
Есть squid 2.5.11 на 3128 порту у 192.168.234.52 и 192.168.1.1 (собирал по дефорту из портов) и squidGuard 1.2.0
Если на клиенской машине прописать прокси то все работает, я хочу сделать невидимый прокси, для этого собрал ядро с
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDED
options IPDIVERTпотом в фаервол пытался добавлять в тичение 2 недель разлицные вареанты fwd, и результат нулевой.
само правило fwd работает, проверил так для сети 192.168.1.0/24 запретил вход на порт 3128 и сделал
${fwcmd} add fwd 192.168.234.52,3128 log tcp from 192.168.1.0/24 to any 3128
в инет выхожу нормальноно если делать чтото типо
${fwcmd} add fwd 127.0.0.1,3128 log tcp from any to any 80
то результат нулево, причем cудя по логу пакеты успешно ходятkernel: ipfw: 2300 Forward to 127.0.0.1:3128 TCP 192.168.1.200:1592 69.20.16.91:80 in via rl0
kernel: ipfw: 2300 Forward to 127.0.0.1:3128 TCP 192.168.1.200:1593 66.102.9.147:80 in via rl0я пробывал и тоже самое проделать натом, порты нереадресовывать нехочет, пробывал вставлять до правила и после
${fwcmd} add divert natd all from any to any via ${natd_interface}
и в rc.conf прописывал
natd_enable="YES"
natd_interface="rl0"пробывал разделять сети вставляя вторую сетевую и подключая к ней клиенскую машину, перепродывал все примеры что смог найти. Максимум что получилось это переадресовать ип адреса.
Правильно надо написать
${fwcmd} add fwd 127.0.0.1,3128 log tcp from 192.168.1.0/24 to any 80
причем до правил ната, а то нат будет отрабатывать и форвардить будет уже нечего и настроить сквид на транспарент, т.е для данного случая добавить
httpd_accel_host virtual 80
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
и так я тоже пробывал
правило
${fwcmd} add fwd 127.0.0.1,3128 log tcp from 192.168.1.0/24 to any 80лог
ipfw: 2600 Forward to 127.0.0.1:3128 TCP 192.168.1.200:1092 64.233.167.147:80 in via rl0ipfw show
02600 10 480 fwd 127.0.0.1,3128 log logamount 20 tcp from 192.168.1.0/24 to any dst-port 80в сквиде все именно так
httpd_accel_host virtual 80
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onвот весь
# ipfw show
00100 0 0 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 icmp from any to any in icmptypes 5,9,13,14,15,16,17
00500 0 0 deny icmp from any to any frag
00600 0 0 allow icmp from any to any
00700 172 45173 allow tcp from any to any established
00800 4 279 allow ip from 192.168.234.52 to any
00900 3 327 allow ip from 192.168.1.1 to any
01000 0 0 allow tcp from any to 192.168.234.52 dst-port 53 setup
01100 0 0 allow udp from any to 192.168.234.52 dst-port 53
01200 0 0 allow udp from 192.168.234.52 53 to any
01300 0 0 allow tcp from any to 192.168.1.1 dst-port 53 setup
01400 3 179 allow udp from any to 192.168.1.1 dst-port 53
01500 0 0 allow udp from 192.168.1.1 53 to any
01600 0 0 allow udp from any to any dst-port 137
01700 2 458 allow udp from any to any dst-port 138
01800 0 0 allow tcp from any to 192.168.234.52 dst-port 22 setup
01900 0 0 allow tcp from any to 192.168.234.52 dst-port 80 setup
02000 0 0 allow tcp from 192.168.234.0/24 to 192.168.234.52 dst-port 3128 setup
02100 0 0 allow tcp from 192.168.1.0/24 to 192.168.1.1 dst-port 3128 setup
02200 0 0 allow ip from any to 192.168.234.52 dst-port 1025-49151 keep-state
02300 4 389 allow ip from any to 192.168.234.52 dst-port 49152-65535 keep-state
02400 0 0 allow ip from any to 192.168.1.1 dst-port 1025-49151 keep-state
02500 0 0 allow ip from any to 192.168.1.1 dst-port 49152-65535 keep-state
02600 3 144 fwd 127.0.0.1,3128 log logamount 20 tcp from 192.168.1.0/24 to any dst-port 80
65534 0 0 deny log logamount 20 ip from any to any
65535 0 0 deny ip from any to anyя пробывал и с натом и без него, один хрен. В логи сквида просто ничего непоявляется, какбудто пакеты уходят в некуда
Експеремент номер IIПовесил сквид на 80 порт, прописал у клиента как прокси сервер, все работает, сделал
02600 35 1680 fwd 192.168.1.1,80 log logamount 20 tcp from 192.168.1.0/24 to any dst-port 80
лог
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1152 69.20.16.91:80 in via rl0
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1153 69.20.16.91:80 in via rl0
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1154 69.20.16.91:80 in via rl0
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1155 69.20.16.91:80 in via rl0
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1156 69.20.16.91:80 in via rl0
Nov 22 09:29:13 proxy kernel: ipfw: 2600 Forward to 192.168.1.1:80 TCP 192.168.1.200:1157 69.20.16.91:80 in via rl0
неработает, а таже самая конструкция но с редиректом из 192.168.1.0/24:3128 -> 192.168.234.52:3128 работает
правило 700 поставь вниз куда-нибудь