Squid im Intercept-Modus nftables auf einem anderen Host
Zur Navigation springen
Zur Suche springen
Voraussetzungen
- Clients im Netz: 172.17.113.0/24
- Proxy-Host: 10.88.113.51
- Ziel: HTTP/HTTPS-Verkehr per Policy Routing an Squid weiterleiten, dort per REDIRECT + intercept abfangen
Firewall-Konfiguration
- Tabelle und Kette erstellen
- nft add table inet fwmark
- nft add chain inet fwmark prerouting '{ type filter hook prerouting priority mangle; policy accept; }'
- Regel zur Paketmarkierung:
- nft add rule inet fwmark prerouting ip saddr 172.17.113.0/24 tcp dport { 80, 443 } meta mark set 0x1
- Policy Routing aktivieren:
- ip rule add fwmark 1 lookup 100
- ip route add default via 10.88.113.51 table 100
Proxy-Konfiguration (nftables REDIRECT)
- Tabelle und Kette anlegen
- nft add table ip nat
- nft add chain ip nat prerouting '{ type nat hook prerouting priority dstnat; policy accept; }'
- HTTP und HTTPS lokal umleiten
- nft add rule ip nat prerouting tcp dport 80 redirect to :3129
- nft add rule ip nat prerouting tcp dport 443 redirect to :3130
Squid-Konfiguration
vi /etc/squid/squid.conf
http_port 3129 intercept https_port 3130 ssl-bump intercept cert=/etc/squid/certs/squid_proxyCA.pem key=/etc/squid/certs/squid_proxyCA.key generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1,SINGLE_DH_USE,SINGLE_ECDH_USE ssl_bump bump all
Hinweise
- Squid übernimmt die Verbindungen lokal über redirect + intercept
- Zertifikat muss existieren und lesbar für den Squid-Benutzer sein
- Root-CA muss auf Clients importiert werden, um HTTPS-Warnungen zu vermeiden
Diagnose
- tail -f /var/log/squid/access.log
- tail -f /var/log/squid/cache.log
- nft list ruleset
- ip rule show
- ip route show table 100