The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"squid intercept и шлюз openwrt "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid, Tor и прокси серверов (Прозрачный proxy)
Изначальное сообщение [ Отслеживать ]

"squid intercept и шлюз openwrt "  +/
Сообщение от Caesar Irod (ok), 28-Дек-19, 18:45 
Привет, нужна помощь в настройке связки шлюза на openwrt и squid intercept на отдельной машине.
В такой конфигураци, при обращении к http, на squid ошибки вида:
ERROR: NF getsockopt(ORIGINAL_DST) failed on local=192.168.174.2:3128 remote=192.168.174.1:43574 FD 13 flags=33: (2) No such file or directory
ERROR: NAT/TPROXY lookup failed to locate original IPs on local=192.168.174.2:3128 remote=192.168.174.1:43574 FD 13 flags=33
Которые свидетельствуют о том что, запрос идет напрямую, как от браузера.
Если я делаю перенаправление на 3130 (не intercept порт) то трафик начинает ходить,но в логах squid все запросы от шлюза.
Я вангую, что у меня криво настроенные правила маршрутизации на шлюзе, но ничего лучше я придумать не смог, и да я видел мануал по настройке через маркировку пакетов https://wiki.squid-cache.org/ConfigExamples/Intercept/Iptabl... но я его не осилил.

squid на openwrt ставить не получится, потому что в дальнешем планируется использование прозрачного https без подмены сертификатов, а это корректно работает на версиях 4.+
Делать шлюзом squid то-же не вариант.

Конфигурация сети:
шлюз на openwrt(192.168.174.1)
squid сервер ubuntu 19.04(192.168.174.2)

Конфигурация firewall openwrt

config redirect
        option name       'squid_http_dnat'
        option src        lan
        option dest       wan
        option proto      tcp
        option src_ip     !192.168.174.2
        option src_dport  80
        option dest_ip    192.168.174.2
        option dest_port  3128
        option target     DNAT
        option enabled    1

config redirect
        option name       'squid_http_snat'
        option dest       lan
        option proto      tcp
        option src_dip    192.168.174.1
        option dest_ip    192.168.174.2
        option dest_port  3128
        option target     SNAT
        option enabled    1

Конфигурация squid.conf

http_port  3130 accel allow-direct
http_port  3128 intercept
client_dst_passthru off
acl localnet src 192.168.174.0/24 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 8080          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access deny to_localhost
http_access allow localnet
http_access allow localhost
http_access deny all
always_direct allow all
cache_dir ufs /var/spool/squid 2048 64 256
coredump_dir /var/spool/squid
refresh_pattern ^ftp:         &n... 1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
dns_v4_first on
shutdown_lifetime 3 seconds
cache_mem 256 MB
maximum_object_size_in_memory 1 MB
dns_nameservers 192.168.174.1
visible_hostname home-srv.local
redirect_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf

Версия squid

Squid Cache: Version 4.4
Service Name: squid
Ubuntu linux
configure options:  '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' 'BUILDCXXFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-y3c0Vk/squid-4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' '--enable-build-info=Ubuntu linux' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,SMB_LM' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,time_quota,unix_group,wbinfo_group' '--enable-security-cert-validators=fake' '--enable-storeid-rewrite-helpers=file' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--with-gnutls' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-y3c0Vk/squid-4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-y3c0Vk/squid-4.4=. -fstack-protector-strong -Wformat -Werror=format-security'

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "squid intercept и шлюз openwrt "  +/
Сообщение от Caesar Irod (ok), 29-Дек-19, 00:10 
Победа, все работает squid пересобран с поддержкой peek/splice
Так же, на проксе живет nginx на тех же портах

на шлюзе

#!/bin/ash
PROXY_IP=192.168.174.2
RT_TABLE=/etc/iproute2/rt_tables
CLIENT_IFACE=br-lan
FW_MARK=33

ADD_TABLE=`cat ${RT_TABLE} | grep '^200     proxy$' | wc -l`
if [ ${ADD_TABLE} = 0 ]; then
    echo '200     proxy' >> ${RT_TABLE}
fi

iptables -t mangle -A PREROUTING -j ACCEPT -p tcp -m multiport --dports 80,443 -s ${PROXY_IP}
iptables -t mangle -A PREROUTING -j MARK --set-mark ${FW_MARK} -p tcp -m multiport --dports 80,443
ip rule del fwmark ${FW_MARK}
ip rule add fwmark ${FW_MARK} table proxy
ip route add default via ${PROXY_IP} dev br-lan table proxy


На проксе

iptables -A PREROUTING -t nat -i ens2 -p tcp --dport 80 ! -d 192.168.174.2 -j REDIRECT --to-port 3128
iptables -A PREROUTING -t nat -i ens2 -p tcp --dport 443 ! -d 192.168.174.2 -j REDIRECT --to-port 3129

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру