Squid 3.4.6 Transparente Proxy-Probleme

6111
criostage

Ich versuche, einen transparenten Squid-Proxy für ein drahtloses Netzwerk zu implementieren, in dem es hauptsächlich für mobile Geräte dient. Die Software, die ich verwende, ist Squid 3.4.6 (die neueste Version wurde aus dem Quellcode zusammengestellt) in Debian 7.6-Server und IPTables. Mein Netzwerk besteht aus vielen VLANs, die alle von einer zentralen Firewall von CheckPoint gesteuert werden. Dadurch können wir auch steuern, wer wohin geht, und die Server gelangen direkt ins Internet. Hier ist ein kleines Diagramm, das ich erstellt habe:

Pic

Was ich bisher getan habe, ist, dass ich ein VLAN für die mobilen Geräte isoliert habe, bei denen DHCP / DNS-Anforderungen an unser Rechenzentrum weitergeleitet werden, wo sich alle Server befinden. Durch die Verwendung einer Option wird der gesamte HTTP- und HTTPS-Verkehr (http-zugeordnet) von diesem dedizierten Wireless-VLAN an einen einzelnen Squid-Server im Datencenter umgeleitet.

Ich habe den Squid-Server mit einer NIC (die den gesamten Squid-Verkehr über die Checkpoint-Firewall direkt mit dem Internet verbindet) mit Debian und allen Updates installiert und meinen Installationsprozess protokolliert, um die Replikation zu vereinfachen. All dies wird auf derselben Maschine gemacht:

Installieren Sie die 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 

Installieren Sie 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 

Inhalt der 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 konfigurieren

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 

Inhalt von 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 

Hier glaube ich, dass das Problem liegt, aber ich habe keine Ahnung, was zu tun ist:

IPTABLES Konfiguration

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 

Wie bekomme ich die IPTables, um den eingehenden HTTP / HTTPS-Verkehr als DNAT in den Squid-Port 3129 und 3130 umzuleiten ... Der Port 3128 funktioniert in jedem Browser, der Proxy kann konfiguriert werden, aber die Weiterleitungen mit IPTables treiben mich NUTS!

Was ich oben in den IPTables gepostet habe, funktioniert nicht. Ich bekomme immer die Fehlermeldung, dass die Verbindung abgelehnt wurde. Wenn ich einen Webbrowser mit einer beliebigen URL installiere, die ich dort platziere, bekomme ich immer die Apache-Willkommensseite von "It Works !!" Wenn mich jemand aufklären könnte, was ich falsch mache, würde ich es schätzen.

1

0 Antworten auf die Frage