
Ich verwende Squid Proxy für (DNS-Filterung). Ich habe den Squid Proxy hinter meinem GCP Cloud NAT im transparenten Modus konfiguriert, um HTTP- und HTTPS-Webdatenverkehr abzufangen. Ich habe nur die folgenden Regeln hinzugefügt, um HTTP- und HTTPS-Datenverkehr zu Squid umzuleiten.
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 443 -j REDIRECT --to-port 3130
Aber wie ich bisher gelernt habe, ist Squid ein Webproxy und verarbeitet nur HTTP-, HTTPS- und FTP-Anfragen. Squid versteht SMTP, UDP und andere Protokollanfragen nicht, aber die obigen iptables-Regeln funktionieren nur für HTTP und HTTPS, meine restlichen SMTP- und UDP-Anfragen werden blockiert. So wie ich das verstehe, können wir Squid nicht anweisen, SMTP- und UDP-Anfragen zu verarbeiten, daher möchte ich nur HTTP- und HTTPS-Verkehr auf Squid verarbeiten und möchte auch, dass meine restlichen Ports direkt zu meinem GCP Cloud NAT umgeleitet werden.
Kann mir jemand helfen, welche iptables-Regel ich schreiben soll, um nur Port 80, 443-Anforderungen an Squid umzuleiten, und den Rest der Portanforderung möchte ich umgehen oder direkt an mein GCP Cloud NAT umleiten
Verkehrsfluss
Private VM -> Squid-Proxy -> GCP Cloud NAT
Antwort1
Um nur Anfragen über Port 80 und 443 an Squid umzuleiten und alle anderen Anfragen zu umgehen, können Sie die vorhandenen iptables-Regeln wie folgt ändern:
Erstellen Sie in Squid eine ACL, um nur HTTP- und HTTPS-Anfragen zuzulassen. Dies können Sie tun, indem Sie Ihrer Squid-Konfigurationsdatei die folgenden Zeilen hinzufügen:
acl Safe_ports Port 80 443 http_access erlauben Safe_ports
Ändern Sie die iptables-Regeln, um nur HTTP- und HTTPS-Anfragen an Squid umzuleiten:
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 80 -j REDIRECT --zu-Port 3129 iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 443 -j REDIRECT --zu-Port 3130
Fügen Sie eine neue iptables-Regel hinzu, um alle anderen Anfragen zu umgehen und sie direkt an Ihr GCP Cloud NAT umzuleiten. Die Regel sollte folgendermaßen aussehen:
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp -m multiport ! --dports 80,443 -j DNAT --to-destination [GCP Cloud NAT-IP-Adresse]
Diese Regel gilt für den gesamten TCP-Verkehr, der nicht auf Port 80 oder 443 liegt, und leitet ihn direkt zu Ihrem GCP Cloud NAT um.
Stellen Sie sicher, dass Sie die [GCP Cloud NAT-IP-Adresse] an die richtige IP-Adresse Ihrer Cloud NAT-Instanz anpassen.
Mit diesen Regeln wird nur HTTP- und HTTPS-Verkehr zur Filterung an Squid umgeleitet, während der gesamte andere Verkehr umgangen und direkt an Ihr GCP Cloud NAT umgeleitet wird.