>[оверквотинг удален]
>> ipfw add 1000 allow tcp from me to any out via rl0
>> keep-state uid squid
>> ipfw add 1010 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80-83,8080-8083 out
>> via rl0
> для начала
> 1. приходят ли пакеты от клиентов на прокси? проверяется tcpdump
> 2. работает ли форвард?
> можно вывод ipfw show
> 3. сквид с пакетов или пакеджей? включена ли в нем поддержка прозрачности
> через ipfw?Да форвардинг работает ipfw2 initialized, divert loadable, nat enabled, rule-based forwarding enabled, default to deny, logging disabled!
Вот конфиг ipfw
#!/bin/sh
ipfw -f flush
ip_out="85.236.xx.xx"
lan_in="192.168.0.0/24"
ipfw add 5 allow all from me to me via lo0
ipfw add 10 check-state
ipfw add 20 pass ip from me to any established
# разрешаем все через интерфейс локальной сети
ipfw add 100 allow tcp from any to any via ale0
ipfw add 110 allow udp from any to any via ale0
ipfw add 120 allow icmp from any to any via ale0
#ftp
ipfw add 200 pass all from me to any 20,21 via rl0 keep-state
ipfw add 210 allow all from any to me 20,21 via rl0 keep-state
#web
ipfw add 300 allow tcp from me to any 80, 8080, 443, 3128 via rl0 keep-state
ipfw add 310 allow tcp from any to me 80, 443 via rl0 keep-state
#mail
ipfw add 350 allow all from any to me 25, 110, 143, 2525 via rl0 keep-state
ipfw add 360 allow ip from me to any dst-port 25,110,143,2525 via rl0 keep-state
#dns
ipfw add 400 allow all from me to any 53 via rl0 keep-state
#icmp
ipfw add 710 allow icmp from any to me via rl0
#squid
ipfw add 1000 allow tcp from me to any out via rl0 keep-state uid squid
ipfw add 1010 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80-83,8080-8083 out via rl0
ipfw add 1050 deny ip from any to 192.168.0.0/16 in recv rl0
ipfw add 1060 deny ip from 192.168.0.0/16 to any in recv rl0
ipfw add 1070 deny ip from any to 172.16.0.0/12 in recv rl0
ipfw add 1080 deny ip from 172.16.0.0/12 to any in recv rl0
ipfw add 1090 deny ip from any to 10.0.0.0/8 in recv rl0
ipfw add 1100 deny ip from 10.0.0.0/8 to any in recv rl0
ipfw add 1110 deny ip from any to 169.254.0.0/16 in recv rl0
ipfw add 1120 deny ip from 169.254.0.0/16 to any in recv rl0
# настройка ната.
ipfw nat 1 config log if rl0 reset same_ports deny_in
#ssh
ipfw add 57000 allow ip from any to me 22
# заварачиваем все что проходит через внешний интерфейс в нат
ipfw add 65000 nat 1 ip from any to any via rl0
Последнее правило deny ip from any to any
squid собран с поддержкой естественно ipfw
squid -v
Squid Cache: Version 3.5.3
Service Name: squid
configure options: '--with-default-user=squid' '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var' '--sysconfdir=/usr/local/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid/squid.pid' '--with-swapdir=/var/squid/cache' '--without-gnutls' '--enable-auth' '--enable-build-info' '--enable-loadable-modules' '--enable-removal-policies=lru heap' '--disable-epoll' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-translation' '--disable-arch-native' '--disable-eui' '--disable-cache-digests' '--disable-delay-pools' '--disable-ecap' '--disable-esi' '--disable-follow-x-forwarded-for' '--enable-htcp' '--disable-icap-client' '--disable-icmp' '--enable-ident-lookups' '--disable-ipv6' '--enable-kqueue' '--without-large-files' '--disable-http-violations' '--without-nettle' '--enable-snmp' '--disable-ssl' '--disable-ssl-crtd' '--disable-stacktraces' '--disable-ipf-transparent' '--enable-ipfw-transparent' '--disable-pf-transparent' '--without-nat-devpf' '--disable-forw-via-db' '--enable-wccp' '--enable-wccpv2' '--with-heimdal-krb5=/usr' 'CFLAGS=-I/usr/include -pipe -g -fstack-protector -fno-strict-aliasing' 'LDFLAGS=-L/usr/lib -pthread -fstack-protector' 'LIBS=-lkrb5 -lgssapi -lgssapi_krb5 ' '--enable-auth-basic=DB SMB_LM MSNT-multi-domain NCSA PAM POP3 RADIUS fake getpwnam NIS' '--enable-auth-digest=file' '--enable-external-acl-helpers=file_userip time_quota unix_group' '--enable-auth-negotiate=kerberos wrapper' '--enable-auth-ntlm=fake smb_lm' '--enable-storeio=ufs aufs diskd' '--enable-disk-io=AIO Blocking IpcIo Mmapped DiskThreads DiskDaemon' '--enable-log-daemon-helpers=file' '--enable-url-rewrite-helpers=fake' '--enable-storeid-rewrite-helpers=file' '--disable-optimizations' '--enable-debug-cbdata' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd9.1' 'build_alias=amd64-portbld-freebsd9.1' 'CC=cc' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-pipe -g -fstack-protector -fno-strict-aliasing' 'CPP=cpp' --enable-ltdl-convenience
Интернет работает без прокси, и с прокси если вручную прописать в браузере 192.168.0.1:3128
Как только ставлю правило заворачивать трафик на 127.0.0.1 3128, в браузере инет пропадает
ipfw add 1010 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80-83,8080-8083 out via rl0
При этом в логах вообще пусто и в access.log и cache.log
Но судя по выводу ipfw трафик на правило 1010 идет, но вот трафик на правило 1000 нет