На FreeBSD 10.1 с поддержкой ipnat установлен squid-3.4.10. Привожу пример конфига сквид:http_port 192.168.0.10:3128
http_port 127.0.0.1:3128
http_port 127.0.0.1:3129 intercept
cache_mem 64 MB
cache_dir ufs /media/squid/cache 200 16 256
cache_access_log /media/squid/logs/access.log
cache_log /media/squid/logs/cache.log
coredump_dir /media/squid/
cache_store_log none
#cache deny all
forwarded_for off
dns_v4_first on
shutdown_lifetime 2 seconds
#
acl fullinet src 192.168.0.0/24
acl admin src 192.168.0.55 192.168.0.113
acl panta src 192.168.0.34 192.168.0.70 192.168.0.155 192.168.0.80 192.168.0.9
acl programer src 192.168.0.26
acl torrent urlpath_regex -i \.torrent$
acl torrent_mime rep_mime_type -i ^application/x-bittorrent$
acl torrent_mime rep_mime_type -i application/x-bittorrent
http_access allow manager localhost
http_access deny manager
http_reply_access deny torrent_mime panta
http_access deny panta torrent
http_access allow panta
http_reply_access allow torrent_mime admin
http_access allow admin torrent
http_access allow admin
http_reply_access deny torrent_mime programer
http_access allow programer
http_reply_access deny torrent_mime fullinet
http_access deny fullinet torrent
http_access allow fullinet
#And finally deny all other acces to this proxy
http_access deny all
#
visible_hostname Denep
error_directory /usr/local/etc/squid/errors/ruЛог cache.log при запуске:
2014/12/17 16:36:27 kid1| Set Current Directory to /media/squid/
2014/12/17 16:36:27 kid1| Starting Squid Cache version 3.4.10 for i386-portbld-freebsd10.1...
2014/12/17 16:36:27 kid1| Process ID 69620
2014/12/17 16:36:27 kid1| Process Roles: worker
2014/12/17 16:36:27 kid1| With 57519 file descriptors available
2014/12/17 16:36:27 kid1| Initializing IP Cache...
2014/12/17 16:36:27 kid1| DNS Socket created at [::], FD 7
2014/12/17 16:36:27 kid1| DNS Socket created at 0.0.0.0, FD 8
2014/12/17 16:36:27 kid1| Adding domain symmetron.ua from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Adding nameserver 193.93.184.33 from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Adding nameserver 193.93.184.34 from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Adding nameserver 94.244.32.2 from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Adding nameserver 192.168.0.100 from /etc/resolv.conf
2014/12/17 16:36:27 kid1| Logfile: opening log /media/squid/logs/access.log
2014/12/17 16:36:27 kid1| WARNING: log name now starts with a module name. Use 'stdio:/media/squid/logs/access.log'
2014/12/17 16:36:27 kid1| Unlinkd pipe opened on FD 13
2014/12/17 16:36:27 kid1| Store logging disabled
2014/12/17 16:36:27 kid1| Swap maxSize 204800 + 65536 KB, estimated 20795 objects
2014/12/17 16:36:27 kid1| Target number of buckets: 1039
2014/12/17 16:36:27 kid1| Using 8192 Store buckets
2014/12/17 16:36:27 kid1| Max Mem size: 65536 KB
2014/12/17 16:36:27 kid1| Max Swap size: 204800 KB
2014/12/17 16:36:27 kid1| Rebuilding storage in /media/squid/cache (clean log)
2014/12/17 16:36:27 kid1| Using Least Load store dir selection
2014/12/17 16:36:27 kid1| Set Current Directory to /media/squid/
2014/12/17 16:36:27 kid1| Finished loading MIME types and icons.
2014/12/17 16:36:27 kid1| HTCP Disabled.
2014/12/17 16:36:27 kid1| Squid plugin modules loaded: 0
2014/12/17 16:36:27 kid1| Accepting HTTP Socket connections at local=127.0.0.1:3128 remote=[::] FD 16 flags=9
2014/12/17 16:36:27 kid1| Done reading /media/squid/cache swaplog (0 entries)
2014/12/17 16:36:27 kid1| Store rebuilding is 0.00% complete
2014/12/17 16:36:27 kid1| Finished rebuilding storage from disk.
2014/12/17 16:36:27 kid1| 0 Entries scanned
2014/12/17 16:36:27 kid1| 0 Invalid entries.
2014/12/17 16:36:27 kid1| 0 With invalid flags.
2014/12/17 16:36:27 kid1| 0 Objects loaded.
2014/12/17 16:36:27 kid1| 0 Objects expired.
2014/12/17 16:36:27 kid1| 0 Objects cancelled.
2014/12/17 16:36:27 kid1| 0 Duplicate URLs purged.
2014/12/17 16:36:27 kid1| 0 Swapfile clashes avoided.
2014/12/17 16:36:27 kid1| Took 0.06 seconds ( 0.00 objects/sec).
2014/12/17 16:36:27 kid1| Beginning Validation Procedure
2014/12/17 16:36:27 kid1| Completed Validation Procedure
2014/12/17 16:36:27 kid1| Validated 0 Entries
2014/12/17 16:36:27 kid1| store_swap_size = 0.00 KB
2014/12/17 16:36:28 kid1| storeLateRelease: released 0 objects
Все вроде нормально.
Проблема первая: командой /usr/local/etc/rc.d/squid start сквид стартует следующим образом
ps -ax | grep squid
69618 - Is 0:00,00 /usr/local/sbin/squid -f /usr/local/etc/squid/squid.conf
69620 - S 0:00,50 (squid-1) -f /usr/local/etc/squid/squid.conf (squid)
Причем в пид файле 69620, когда останавливаем squid /usr/local/etc/rc.d/squid stop, завершается процесс 69620, 69618 остается. Мало того через перу сек он запускает новый аналогичный процесс. Опять запущено 2 сквида... завершить далее его можно killall и более никак, соответствено сам процес падает в корку. Это же происходит и при перезагрузке FREEBSD.
Проблема вторая: не работает транспарент прокси! Трафик заворачиваю с помощью ipnat: rdr xl0 0/0 port 80 -> 127.0.0.1 port 3129 tcp, и какбы дело и до сквида доходит, но далее никуда не пускает, выдает в браузере:При получении URL http://xxx.net/ произошла следующая ошибка
Доступ запрещён.
Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему администратору.
Администратор Вашего кэша: webmaster.Помогите пожалуйста, не могу понять что тут не так.
Аналогичное поведение.
По второй проблеме, у меня так заработало
http_port 127.0.0.1:3128 transparent
Хотя в доке именно intercept надо указывать.
заварачиваю с помощью IPFW
По первой еще разбираюсь.
> Аналогичное поведение.
> По второй проблеме, у меня так заработало
> http_port 127.0.0.1:3128 transparent
> Хотя в доке именно intercept надо указывать.
> заварачиваю с помощью IPFW
> По первой еще разбираюсь.Спасибо за ответ. Не меняя конфигурацию squid, я тоже завернул с помощью ipwf, предварительно убрав форвард в ipnat. Заработало. Ipnat оставил выполнять роль ната. Т.е работает с 127.0.0.1:3129 intercept. Интересно, почему не работает с форвардом ipnat.
Хоть это и не критично, но первую проблему не решил. Напрочь отказывается корректно завершаться squid по своему же скрипту в usr/local/etc/rc.d/squid. Ставил с портов, предварительно их обновив.
>[оверквотинг удален]
>> Хотя в доке именно intercept надо указывать.
>> заварачиваю с помощью IPFW
>> По первой еще разбираюсь.
> Спасибо за ответ. Не меняя конфигурацию squid, я тоже завернул с помощью
> ipwf, предварительно убрав форвард в ipnat. Заработало. Ipnat оставил выполнять роль
> ната. Т.е работает с 127.0.0.1:3129 intercept. Интересно, почему не работает с
> форвардом ipnat.
> Хоть это и не критично, но первую проблему не решил. Напрочь отказывается
> корректно завершаться squid по своему же скрипту в usr/local/etc/rc.d/squid. Ставил с
> портов, предварительно их обновив.Первая проблема решилась переделкой стартового скрипта
изменил restart на /usr/local/sbin/squid -k restart