Squid-Kit-Transparenter-Proxy nftables auf einem anderen Host Rocky

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Schaubild

Voraussetzung

Voraussetzungen

  • Clients im Netz: 172.26.2XX.0/24
  • Proxy-Host: 10.88.2XX.4
  • Ziel: HTTP/HTTPS-Verkehr per Policy Routing an Squid weiterleiten, dort per REDIRECT + intercept abfangen

Firewall-Konfiguration

Die Datei /etc/sysconfig/nftables.conf ergänzen
table inet fwmark {
	chain prerouting {
		type filter hook prerouting priority mangle; policy accept;
		ip saddr 172.26.2XX.0/24 tcp dport { 80, 443 } meta mark set 0x00000001
	}
}
Neu laden
  • nft -f /etc/nftables.conf
Kontrolle
  • nft list ruleset
Policy Routing aktivieren
Routing-Regel und Route persistent über nmcli setzen
  • nmcli connection modify enp0s8 +ipv4.routes "0.0.0.0/0 10.88.213.4 table=100"
  • nmcli connection modify enp0s8 +ipv4.routing-rules "priority 100 from 0.0.0.0/0 fwmark 1 table 100"
  • nmcli connection up enp0s8
Kontrolle
  • ip rule show
  • ip route show table 100

Proxy-Konfiguration (nftables REDIRECT)

Nftables Tabelle, Kette und Regeln erstellen
  • vi /etc/sysconfig/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
table inet nat {
	chain prerouting {
		type nat hook prerouting priority dstnat; policy accept;
		tcp dport 80 redirect to :3129
		tcp dport 443 redirect to :3130
	}
}
Enablen und starten von nftables
  • systemctl stop firewalld
  • systemctl disable firewalld
  • systemctl enable --now nftables
Checken
  • nft list ruleset

Squid-Konfiguration

  • vi /etc/squid/squid.conf
http_port 3129 intercept
https_port 3130 ssl-bump intercept cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1
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