Не могу понять в чем дело, перековырял вроде все настройки, до этого все работало, после обновления не пашет именно прозрачный прокси, в логах ничего нету!ipfw2 initialized, divert loadable, nat enabled, rule-based forwarding enabled, default to deny, logging disabled
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 rl0uname -a 9.1-RELEASE-p22 FreeBSD 9.1-RELEASE-p22
squid.confaccess_log syslog:LOG_LOCAL4 squid
cache_mem 128 MB
cache_dir ufs /var/spool/squid 2048 64 256
maximum_object_size 8092 KB
maximum_object_size_in_memory 1024 KB
max_filedescriptors 8128shutdown_lifetime 1 seconds
connect_timeout 20 seconds#url_rewrite_program /usr/local/bin/squidGuard
#
# Recommended minimum configuration:
## Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 192.168.0.10-192.168.0.254 # RFC1918 possible internal network
acl admin src 192.168.0.2-192.168.0.9acl SSL_ports port 443 # https
acl Safe_ports port "/usr/local/etc/squid/safe_ports.acl"
acl Safe_ports port 1025-65535 # unregistered portsacl purge method PURGE
acl CONNECT method CONNECThttp_access deny !Safe_ports
http_access allow localhost
http_access allow admin
http_access allow localnethttp_access allow all
http_access deny allicp_access allow localnet
icp_access deny all# Deny CONNECT to other than secure SSL ports
#http_access deny CONNECT !SSL_ports# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
http_access deny to_localhost#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
## Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost# And finally deny all other access to this proxy
http_access deny all# Squid normally listens to port 3128
http_port 3128
http_port 127.0.0.1:3128 interceptdns_v4_first on
# Leave coredumps in the first cache dir
coredump_dir /var/squid/cache/squid# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: &n... 1440 0% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320squid/cache.log
2015/06/03 12:43:34 kid1| Set Current Directory to /var/squid/cache/squid
2015/06/03 12:43:34 kid1| Starting Squid Cache version 3.5.3 for amd64-portbld-freebsd9.1...
2015/06/03 12:43:34 kid1| Service Name: squid
2015/06/03 12:43:34 kid1| Process ID 65092
2015/06/03 12:43:34 kid1| Process Roles: worker
2015/06/03 12:43:34 kid1| With 8128 file descriptors available
2015/06/03 12:43:34 kid1| Initializing IP Cache...
2015/06/03 12:43:34 kid1| DNS Socket created at [::], FD 6
2015/06/03 12:43:34 kid1| DNS Socket created at 0.0.0.0, FD 8
2015/06/03 12:43:34 kid1| Adding domain backup.hochuvotpusk.ru from /etc/resolv.conf
2015/06/03 12:43:34 kid1| Adding nameserver 192.168.0.1 from /etc/resolv.conf
2015/06/03 12:43:34 kid1| Adding nameserver 213.134.192.18 from /etc/resolv.conf
2015/06/03 12:43:34 kid1| Adding nameserver 213.134.195.253 from /etc/resolv.conf
2015/06/03 12:43:34 kid1| Logfile: opening log syslog:LOG_LOCAL4
2015/06/03 12:43:35 kid1| Unlinkd pipe opened on FD 12
2015/06/03 12:43:35 kid1| Store logging disabled
2015/06/03 12:43:35 kid1| Swap maxSize 2097152 + 131072 KB, estimated 171401 objects
2015/06/03 12:43:35 kid1| Target number of buckets: 8570
2015/06/03 12:43:35 kid1| Using 16384 Store buckets
2015/06/03 12:43:35 kid1| Max Mem size: 131072 KB
2015/06/03 12:43:35 kid1| Max Swap size: 2097152 KB
2015/06/03 12:43:35 kid1| Rebuilding storage in /var/spool/squid (clean log)
2015/06/03 12:43:35 kid1| Using Least Load store dir selection
2015/06/03 12:43:35 kid1| Set Current Directory to /var/squid/cache/squid
2015/06/03 12:43:35 kid1| Finished loading MIME types and icons.
2015/06/03 12:43:35 kid1| HTCP Disabled.
2015/06/03 12:43:35 kid1| Squid plugin modules loaded: 0
2015/06/03 12:43:35 kid1| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 15 flags=9
2015/06/03 12:43:35 kid1| Accepting NAT intercepted HTTP Socket connections at local=127.0.0.1:3128 remote=[::] FD 16 flags=41
2015/06/03 12:43:35 kid1| Done reading /var/spool/squid swaplog (13 entries)
2015/06/03 12:43:35 kid1| Finished rebuilding storage from disk.
2015/06/03 12:43:35 kid1| 13 Entries scanned
2015/06/03 12:43:35 kid1| 0 Invalid entries.
2015/06/03 12:43:35 kid1| 0 With invalid flags.
2015/06/03 12:43:35 kid1| 13 Objects loaded.
2015/06/03 12:43:35 kid1| 0 Objects expired.
2015/06/03 12:43:35 kid1| 0 Objects cancelled.
2015/06/03 12:43:35 kid1| 0 Duplicate URLs purged.
2015/06/03 12:43:35 kid1| 0 Swapfile clashes avoided.
2015/06/03 12:43:35 kid1| Took 0.02 seconds (698.66 objects/sec).
2015/06/03 12:43:35 kid1| Beginning Validation Procedure
2015/06/03 12:43:35 kid1| Completed Validation Procedure
2015/06/03 12:43:35 kid1| Validated 13 Entries
2015/06/03 12:43:35 kid1| store_swap_size = 164.00 KB
2015/06/03 12:43:36 kid1| storeLateRelease: released 0 objectsЕсли попробовать перенастроить браузер на прокси 192.168.0.1:3128 все работает
но прозрачный никак, где я накосячил?
лучше, если вы приведете все правила, а то согласно этим двум ничего работать и не будет> ipfw2 initialized, divert loadable, nat enabled, rule-based forwarding enabled, default
> to deny, logging disabled
> 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?
>[оверквотинг удален]
>> 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 fluship_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
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 rl0ipfw 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 нет
если бы вы привели то, что я просил, было бы чуть проще :)ipfw show показывает не то, что вы прописали, а то, что сейчас работает. причем со счетчиками по правилам :)
в 1000 правило у вас редко что попадать будет - есть 300, в котором и будут считаться все, что уехало наружу на 80 порт
и вывод sockstat -4 -l дайте, плз
> если бы вы привели то, что я просил, было бы чуть проще
> :)
> ipfw show показывает не то, что вы прописали, а то, что сейчас
> работает. причем со счетчиками по правилам :)
> в 1000 правило у вас редко что попадать будет - есть 300,
> в котором и будут считаться все, что уехало наружу на 80
> порт
> и вывод sockstat -4 -l дайте, плзsquid squid 32736 6 udp4 *:17156 *:*
squid squid 32736 15 tcp4 *:8080 *:*
squid squid 32736 16 tcp4 127.0.0.1:3128 *:*00005 21980 34031574 allow ip from me to me via lo0
00010 0 0 check-state
00020 2287518 3498872402 allow ip from me to any established
00100 19661349 14460320610 allow tcp from any to any via ale0
00110 531121 95034555 allow udp from any to any via ale0
00120 41658 2333880 allow icmp from any to any via ale0
00130 0 0 allow ip from me to 127.0.0.1 dst-port 3551 keep-state
00150 0 0 allow ip from me to 127.0.0.1 dst-port 9000 keep-state
00200 0 0 allow ip from me to any dst-port 20,21 via rl0 keep-state
00210 222195 205204968 allow ip from any to me dst-port 20,21 via rl0 keep-state
00300 12624 6854989 allow tcp from me to any dst-port 80,8080,443,3128 via rl0 keep-state
00310 1093 101948 allow tcp from any to me dst-port 80,443 via rl0 keep-state
00350 469987 318919845 allow ip from any to me dst-port 25,110,143,2525 via rl0 keep-state
00360 74812 61487409 allow ip from me to any dst-port 25,110,143,2525 via rl0 keep-state
00400 165149 32499199 allow ip from me to any dst-port 53 via rl0 keep-state
00500 0 0 allow ip from me to 127.0.0.1 dst-port 4949 keep-state
00710 9682 873088 allow icmp from any to me via rl0
00800 2414 183967 allow ip from any to me dst-port 123 via rl0 keep-state
00810 1240 94240 allow ip from me to any dst-port 123 keep-state
01000 0 0 allow tcp from me to any out via rl0 uid squid keep-state
01010 48 4764 fwd 127.0.0.1,3128 tcp from 192.168.0.3 to any dst-port 80-83,8080-8083 out via rl0
01050 0 0 deny ip from any to 192.168.0.0/16 in recv rl0
01060 0 0 deny ip from 192.168.0.0/16 to any in recv rl0
01070 0 0 deny ip from any to 172.16.0.0/12 in recv rl0
01080 0 0 deny ip from 172.16.0.0/12 to any in recv rl0
01090 0 0 deny ip from any to 10.0.0.0/8 in recv rl0
01100 127 94388 deny ip from 10.0.0.0/8 to any in recv rl0
01110 0 0 deny ip from any to 169.254.0.0/16 in recv rl0
01120 0 0 deny ip from 169.254.0.0/16 to any in recv rl0
57000 3342 453600 allow ip from any to me dst-port 22
65000 17035413 12675655901 nat 1 ip from any to any via rl0
65535 26 1872 deny ip from any to anyТрафик не идет ни какой судя по комманде
tcpdump -v -i lo0 dst 127.0.0.1 and port 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убрать out via rl0 или заменить на in recv ale0
> в строке
>> 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
> убрать out via rl0 или заменить на in recv ale0Не помогло, трафик по правилу вообще не идет, попробовал поставить повыше 270, все равно также история, возникла идея может это как то связано с keep-state, и трафик просто не на те правила попадает
>> в строке
>>> 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
>> убрать out via rl0 или заменить на in recv ale0
> Не помогло, трафик по правилу вообще не идет, попробовал поставить повыше 270,
> все равно также история, возникла идея может это как то связано
> с keep-state, и трафик просто не на те правила попадаетессно
оно сначала сюда
>00100 19661349 14460320610 allow tcp from any to any via ale0попадает
>>> в строке
>>>> 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
>>> убрать out via rl0 или заменить на in recv ale0
>> Не помогло, трафик по правилу вообще не идет, попробовал поставить повыше 270,
>> все равно также история, возникла идея может это как то связано
>> с keep-state, и трафик просто не на те правила попадает
> ессно
> оно сначала сюда
>>00100 19661349 14460320610 allow tcp from any to any via ale0
> попадаетПоставил 50, трафик пошел, интернет работает, НО смущает что в access.log нет ничего
Выключил squid, интернет все равно работает )) c этим правилом
Времени нет писать. Должно быть так:
http_port 127.0.0.1:3128
http_port 127.0.0.1:3129 interceptСтрочка в rc.firewall
${fwcmd} add "номерправила" fwd 127.0.0.1,3129 tcp from "откуданужно" to any dst-port 80
Да, ну и прокся должна быть собрана с опцией прозрачности IP_IPFW
Как обновлял squid? Через порты или пакеты?
> Как обновлял squid? Через порты или пакеты?Обновлял через порты, опция ip_fw включена, пробывал и пересобирать все зависимости, один фиг не работает!
Люди вот знающие с другого форума подсказали что проблема скорее всего в версии системы,
squid 3.5 не поддерживает FreeBSD 9.1, но пока это только идея, что могли нового внести в ipfw такого в новых версиях не понятно.Так что пока оставил до лучших времен, щас времени нет обновлять систему, боюсь на рабочем роутере это делать.