Iptables mit Squid Transparenter Proxy

Aus xinux.net
Zur Navigation springen Zur Suche springen

Transparenter proxy

  • Wenn man den http_port auf intercept für https auf https stellt kann er normal Anfragten nicht beantworten.
  • Wenn man beides will sollte man die Interception auf einen anderen zusätlichen Port legen.

Installation von squid

Wir brauchen eine angepasste Version von squid
Diese können wir selbst komplilieren oder das squid-openssl Paket von nutzen
  • apt install squid-openssl

Erstellen eines Selbstsignierten Zertifikates

Verzeichnis anlegen
  • mkdir /etc/squid/certs
  • cd /etc/squid/certs
Generieren Sie ein lokales selbstsigniertes CA-Zertifikat und geheimen Schlüssel (in derselben Datei))
  • openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout squid_proxyCA.pem -out squid_proxyCA.pem
  • chown -R proxy:proxy squid_proxyCA.pem
  • chmod 0400 squid_proxyCA.pem
füge das squid_proxyCA-Zertifikat zum System hinzu, damit es standardmäßig vertrauenswürdig ist
  • openssl x509 -inform PEM -in squid_proxyCA.pem -out squid_proxyCA.crt
  • cp squid_proxyCA.crt /usr/local/share/ca-certificates
  • update-ca-certificates

Zertifikat auf den Clients installieren

!!!Wichtig Wichtig Wichtig!!!

  • squid_proxyCA.crt auf die Clients kopieren.
Firefox
  • Burgermenu
    • Einstellungen
      • Nach Zertifikaten suchen
        • Zertifikate anzeigen
          • Zertifizierungsstellen importieren

Zertifikats Cache anlegen

security_file_certgen — SSL certificate generator for Squid.
  • Das Generieren und Signieren von SSL-Zertifikaten nimmt Zeit in Anspruch.
  • Squid kann diesen Helfer als externen Prozess verwenden, um die Arbeit zu erledigen.
  • Die Kommunikation erfolgt über TCP-Sockets, die an die Loopback-Schnittstelle gebunden sind.
  • Dieser Helfer kann einen Festplattencache mit Zertifikaten verwenden, um die Antwortzeiten bei wiederholten Anforderungen zu verbessern.
  • Es kann auch ohne Cache arbeiten und generiert bei jeder Anfrage neue Zertifikate.
  • /usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
  • chown -R proxy:proxy /var/spool/squid

Squid Eintrag

  • cat /etc/squid/squid.conf
http_port 8889
Wichtig Wichtig https_port nicht http_port
#intercept https
https_port 8888  ssl-bump intercept cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on  options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1,SINGLE_DH_USE,SINGLE_ECDH_USE
ssl_bump bump all

Iptables Kommando

  • iptables -t nat -A PREROUTING -j REDIRECT -i $LANDEV -p tcp --dport 80 --to 8889
  • iptables -t nat -A PREROUTING -j REDIRECT -i $LANDEV -p tcp --dport 443 --to 8888
  • iptables -A INPUT -p tcp --dport 8888 -s $LAN -m state --state NEW -j ACCEPT
  • iptables -A INPUT -p tcp --dport 8889 -s $LAN -m state --state NEW -j ACCEPT