conrad Posted November 27, 2015 Posted November 27, 2015 Всем доброго времени суток! Необходимо запустить прозрачный прокси на отдельном сервере. Настроил схему согласно этой статье - http://habrahabr.ru/post/219435/ , но при попытке выйти в мир через прокси в логах сквида вижу следующее - 2015/11/28 03:10:15 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=81.19.77.5:80 remote=x.x.x.x:4966 FD 20 flags=17 2015/11/28 03:10:20 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=81.19.77.5:80 remote=x.x.x.x:4970 FD 20 flags=17 2015/11/28 03:10:29 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=217.69.139.58:80 remote=x.x.x.x:4976 FD 20 flags=17 2015/11/28 03:10:29 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=193.0.170.53:80 remote=x.x.x.x:4978 FD 20 flags=17 2015/11/28 03:11:29 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=94.100.180.59:80 remote=x.x.x.x:4980 FD 20 flags=17 2015/11/28 03:11:29 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=193.0.170.54:80 remote=x.x.x.x:4982 FD 20 flags=17 Где x.x.x.x - это ip за который делается nat. Вот некоторая дополнительная инфармация: Gateway: Linux border 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux Squid: Linux squid 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux squid -v Squid Cache: Version 3.5.11-20151120-r13955 Service Name: squid configure options: '--enable-linux-netfilter' '--prefix=/usr' '--localstatedir=/var' '--libexecdir=/lib/squid' '--datadir=/share/squid' '--sysconfdir=/etc/squid' '--with-default-user=proxy' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--enable-removal-policies=lru heap' --enable-ltdl-convenience Подскажите пожалуйста куда копать, заранее благодарю за помощь. Вставить ник Quote
Jaguar77 Posted November 28, 2015 Posted November 28, 2015 а разве squid у вас собран с tproxy ? Вставить ник Quote
conrad Posted November 28, 2015 Author Posted November 28, 2015 (edited) а разве squid у вас собран с tproxy ? Да, за это отвечает опция --enable-linux-netfilter. Вот кусок лога сквида при старте: 2015/11/28 21:08:35 kid1| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 35 flags=9 2015/11/28 21:08:35 kid1| Accepting TPROXY intercepted HTTP Socket connections at local=[::]:3129 remote=[::] FD 36 flags=25 2015/11/28 21:08:35 kid1| Done reading /cache/hdd1/squid swaplog (0 entries) 2015/11/28 21:08:35 kid1| Store rebuilding is 0.00% complete И вывод ./configure --help --enable-linux-netfilter Enable Transparent Proxy support for Linux (Netfilter) Edited November 28, 2015 by conrad Вставить ник Quote
[anp/hsw] Posted November 29, 2015 Posted November 29, 2015 проверьте вот с этим: echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind Вставить ник Quote
conrad Posted November 29, 2015 Author Posted November 29, 2015 ' timestamp='1448783040' post='1207457']проверьте вот с этим: echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind Тоже самое( Вставить ник Quote
conrad Posted November 29, 2015 Author Posted November 29, 2015 Вот еще информация: Gateway: eth0 - 10.17.0.2/24 eth0.3128 - 192.168.20.1/24 iptables -t mangle -I DIVERT ! -i eth0.3128 -s x.x.x.x -p tcp --dport 80 -j MARK --set-mark 4 где x.x.x.x белый ip (что бы гнать на прокси пока только одного пользователя) iptables -t mangle -I DIVERT ! -i eth0.3128 -d x.x.x.x -p tcp --sport 80 -j MARK --set-mark 4 тот же белый ip iptables -t mangle -I PREROUTING ! -i eth0.3128 -p tcp -m set ! --match-set tas-ix dst -m tcp --dport 80 -j DIVERT iptables -t mangle -I PREROUTING ! -i eth0.3128 -p tcp -m set ! --match-set tas-ix src -m tcp --sport 80 -j DIVERT ip rule add fwmark 4 lookup cache root@border:~# ip ru list 0: from all lookup local 32763: from all fwmark 0x4 lookup cache -- гнать трафик с меткой 4 в талицу cache 32764: from all fwmark 0xa lookup cron 32765: from 10.20.0.0/24 lookup cron 32766: from all lookup main 32767: from all lookup default root@border:~# ip ro sh table cache default via 10.17.0.3 dev eth0 -- гоню трафик на сквид. SQUID: eth0 - 10.17.0.3/24 eth0.3128 - 192.168.20.2/24 *mangle :PREROUTING ACCEPT [237869:76104852] :INPUT ACCEPT [325134:79872902] :FORWARD ACCEPT [7595:7198871] :OUTPUT ACCEPT [104270:7197275] :POSTROUTING ACCEPT [111865:14396146] :DIVERT - [0:0] -A PREROUTING -p tcp -m socket -j DIVERT -A PREROUTING -p tcp -m tcp --dport 80 -j TPROXY --on-port 3129 --on-ip 0.0.0.0 --tproxy-mark 0x1/0x1 -A DIVERT -j MARK --set-xmark 0x1/0xffffffff -A DIVERT -j ACCEPT root@squid:~# ip ru list 0: from all lookup local 32765: from all fwmark 0x1 lookup border 32766: from all lookup main 32767: from all lookup default root@squid:~# ip ro sh table border local default dev eth0 scope host P.S.: Прикрепляю схемку. Вставить ник Quote
hsvt Posted November 30, 2015 Posted November 30, 2015 Не могу вам ничем помочь к сожалению, но хотел бы спросить - а зачем вся эти пляски с ip rule, iptables divert etc, нельзя ли просто поставить squid на тот же сервер где шлюз\nat и блокировать там так же по acl regex ? Или слишком нагрузочка будет высокой и лишней для шлюза ? У нас самописное решение, но хотелось бы попробовать вариант со squid сделать. Вставить ник Quote
conrad Posted December 1, 2015 Author Posted December 1, 2015 Ну во первых нагрузка, во вторых основная цель прокси - это кеш(для которого выделено 5 дисков), а не блокировка сайтов. Вставить ник Quote
[anp/hsw] Posted December 1, 2015 Posted December 1, 2015 прокси - это кеш(для которого выделено 5 дисков),э Не будет оно кэшировать, сейчас уже большинство трафика - https, оно не кэшируется, если не подменять сертификаты. А если подменять, то вы уже упадете в глазах очень многих абонентов (да и всякие клиент-банки не будут работать). Вставить ник Quote
conrad Posted December 1, 2015 Author Posted December 1, 2015 Проблема решилась установкой libcap2-dev и пересборкой сквида, только теперь клиенты получают connection timed out от сквида... Вставить ник Quote
conrad Posted December 4, 2015 Author Posted December 4, 2015 Работает только у белых ip, серые не пашут, то есть не пашет у тех кого натим...(( Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.