Squid 3.4.6 Проблемы с прозрачным прокси

6098
criostage

Я пытаюсь реализовать Прозрачный прокси-сервер Squid для беспроводной сети, где он в основном предназначен для мобильных устройств. Я использую программное обеспечение squid 3.4.6 (последняя версия, скомпилированная из исходного кода) на сервере Debian 7.6 и в IPTables. Моя сеть состоит из многих сетей VLAN, все из которых контролируются центральным межсетевым экраном CheckPoint, что также позволяет нам контролировать, кто и куда направляется, а серверы напрямую выходят в Интернет. Вот небольшая диаграмма, которую я создал:

Pic

Итак, я до сих пор выделил одну VLAN только для мобильных устройств, где они перенаправляют запросы DHCP / DNS в наш центр обработки данных, где находятся все серверы. Наконец, используя опцию, которая перенаправляет весь трафик HTTP и HTTPS (сопоставленный http) из этой выделенной беспроводной VLAN на один сервер Squid в центре обработки данных.

Я установил сервер squid с одним сетевым адаптером (который получает весь трафик squid, подключенный напрямую к Интернету с помощью брандмауэра Checkpoint) Debian со всеми обновлениями, и я зарегистрировал процесс установки, чтобы его было проще копировать. Все это сделано на одной машине:

Установите VMWARE Tools

apt-get install -y build-essential linux-headers-amd64 mount /dev/cdrom /mnt/ cp /mnt/VMwareTools-4.0.0-236512.tar.gz /tmp/ umount /mnt/ tar -zxvf /tmp/VMwareTools-4.0.0-236512.tar.gz --directory=/tmp/ mkdir -pv /usr/lib64 /tmp/vmware-tools-distrib/vmware-install.pl --default rm /tmp/WM* /tmp/vm* -rf 

Установить SQUID

apt-get install -y libtool libssl-dev libcrypto++-dev devscripts fakeroot htop ssl-cert squid-langpack && apt-get build-dep -y squid3 sysctl -w net.ipv4.ip_forward=1 nano /etc/sysctl.conf - net.ipv4.ip_forward=1 - net.ipv4.conf.default.rp_filter = 0 - net.ipv4.conf.default.accept_source_route = 0 wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.6.tar.gz tar -zxvf squid-3.4.6.tar.gz cd squid-3.4.6 nano configure.sh chmod +x configure.sh ./configure.sh make make install 

Содержимое файла configure.sh

#!/bin/sh './configure' \ '--build=x86_64-linux-gnu' \ '--srcdir=.' \ '--prefix=/usr' \ '--includedir=/usr/include' \ '--localstatedir=/var' \ '--mandir=/usr/share/man' \ '--infodir=/usr/share/info' \ '--libexecdir=/usr/lib/squid' \ '--datadir=/usr/share/squid' \ '--sysconfdir=/etc/squid' \ '--localstatedir=/var' \ '--bindir=/usr/sbin' \ '--enable-inline' \ '--enable-ssl' \ '--enable-ssl-crtd' \ '--enable-icap-client' \ '--enable-follow-x-forwarded-for' \ '--enable-removal-policies=heap,lru' \ '--enable-delay-pools' \ '--enable-cache-digests' \ '--enable-storeio=ufs,aufs,diskd,rock' \ '--enable-disk-io' \ '--disable-eui' \ '--disable-snmp' \ '--disable-wccp' \ '--disable-wccpv2' \ '--disable-http-violations' \ '--disable-translation' \ '--disable-auto-locale' \ '--disable-htcp' \ '--disable-internal-dns' \ '--with-default-user=proxy' \ '--with-logdir=/var/log/squid/' \ '--with-pidfile=/var/run/squid.pid' \ '--with-filedescriptors=65536' \ '--with-cppunit-basedir=/usr' \ '--with-large-files' \ "$@" 

Настройка SQUID

nano /etc/init.d/squid chmod +x /etc/init.d/squid chown -R proxy:proxy /var/log/squid/ update-rc.d squid defaults mkdir -p /etc/squid/ssl openssl genrsa -des3 -out openssl.key 1024 openssl req -new -key openssl.key -out openssl.csr cp openssl.key openssl.key.old openssl rsa -in openssl.key.old -out openssl.key openssl x509 -req -days 365 -in openssl.csr -signkey openssl.key -out openssl.crt /usr/lib/squid/ssl_crtd -c -s /etc/squid/ssl/db nano /etc/squid/squid.conf 

Содержимое squid.conf

http_port 3128 http_port 3129 transparent https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cert=/etc/squid/ssl/openssl.crt key=/etc/squid/ssl/openssl.key version=3 visible_hostname proxyc.domain.com dns_nameservers 8.8.8.8 8.8.4.4 strip_query_terms on access_log stdio:/var/log/squid/access.log cache_log /var/log/squid/cache.log coredump_dir /var/cache/squid shutdown_lifetime 1 second ssl_bump server-first all always_direct allow all sslcrtd_program /usr/lib/squid/ssl_crtd -s /etc/squid/ssl/db -M 8MB sslcrtd_children 5 sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER,NO_DEFAULT_CA http_access allow all http_reply_access allow all 

Вот где я считаю, что проблема в том, но я понятия не имею, что делать:

Конфигурация IPTABLES

iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 3129 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --dport 3130 -j ACCEPT iptables -t nat -I PREROUTING -i eth0 ! -s 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3129 iptables -t nat -I PREROUTING -i eth0 ! -s 192.168.1.1 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.1:3130 

Как мне получить IPTables для перенаправления входящего трафика HTTP / HTTPS как DNAT в порт Squid на 3129 и 3130 ... порт 3128 работает в любом браузере, в котором я могу настроить прокси, но перенаправления с IPTables сводят меня с ума!

То, что я разместил выше в IPTables, не работает. Я получаю сообщение об ошибке 111 «Отказано в соединении», и если я устанавливаю какой-либо веб-браузер на любой URL-адрес, который я там размещаю, я получаю страницу приветствия Apache «Это работает !!» если бы кто-нибудь мог просветить меня, что я делаю неправильно, я был бы признателен.

1

0 ответов на вопрос

Похожие вопросы