Squid-Kit-TLS-CA: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „*Squid-Kit-TLS-CA Debian *Squid-Kit-TLS-CA Rocky“)
Markierung: Ersetzt
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
=Content Scan=
+
*[[Squid-Kit-TLS-CA Debian]]
*Auf dem Client muss das CA Zertifikat des Proxy installiert sein.
+
*[[Squid-Kit-TLS-CA Rocky]]
*Proxy generiert für jede Anfrage ein neues Zertifikat und schickt es dem Client.
 
*Client denkt er kommuniziert mit dem Original Server
 
*Virenscan ist möglich
 
*Webserver denkt die Anfrage kommt von einem normalen Client
 
*Prinzip der Man in the Middle Attacke
 
{{#drawio:proxy-4}}
 
 
 
=Installation von squid=
 
;Wir brauchen eine angepasste Version von squid mit SSL-Unterstützung.
 
 
 
{| class="wikitable"
 
! Distribution !! Befehl
 
|-
 
| Debian / Ubuntu || <code>apt install squid-openssl</code>
 
|-
 
| Rocky Linux || <code>dnf install squid</code> (SSL bereits enthalten)
 
|}
 
 
 
=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 -subj "/CN=proxy-ca"
 
 
 
;Benutzer und Rechte setzen
 
 
 
{| class="wikitable"
 
! Distribution !! Proxy-Benutzer
 
|-
 
| Debian / Ubuntu || <code>proxy</code>
 
|-
 
| Rocky Linux || <code>squid</code>
 
|}
 
 
 
chown -R proxy:proxy squid_proxyCA.pem      # Debian/Ubuntu
 
chown -R squid:squid squid_proxyCA.pem      # Rocky Linux
 
chmod 0400 squid_proxyCA.pem
 
 
 
;Wir extrahieren das ca.crt aus dem Container
 
*openssl x509 -inform PEM -in squid_proxyCA.pem -out squid_proxyCA.crt
 
 
 
;CA-Zertifikat systemweit als vertrauenswürdig eintragen
 
 
 
{| class="wikitable"
 
! Distribution !! Zielverzeichnis !! Befehl
 
|-
 
| Debian / Ubuntu || <code>/usr/local/share/ca-certificates/</code> || <code>update-ca-certificates</code>
 
|-
 
| Rocky Linux || <code>/etc/pki/ca-trust/source/anchors/</code> || <code>update-ca-trust</code>
 
|}
 
 
 
# Debian/Ubuntu
 
cp squid_proxyCA.crt /usr/local/share/ca-certificates
 
update-ca-certificates
 
 
# Rocky Linux
 
cp squid_proxyCA.crt /etc/pki/ca-trust/source/anchors/
 
update-ca-trust
 
 
 
=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
 
 
 
;Systemweit auf dem Client (Linux)
 
 
 
{| class="wikitable"
 
! Distribution !! Zielverzeichnis !! Befehl
 
|-
 
| Debian / Ubuntu || <code>/usr/local/share/ca-certificates/</code> || <code>update-ca-certificates</code>
 
|-
 
| Rocky Linux || <code>/etc/pki/ca-trust/source/anchors/</code> || <code>update-ca-trust</code>
 
|}
 
 
 
=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.
 
 
 
{| class="wikitable"
 
! Distribution !! Befehl
 
|-
 
| Debian / Ubuntu || <code>/usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB</code>
 
|-
 
| Rocky Linux || <code>/usr/lib64/squid/security_file_certgen -c -s /var/cache/squid/ssl_db -M 4MB</code>
 
|}
 
 
 
# Debian/Ubuntu
 
chown -R proxy:proxy /var/spool/squid
 
 
# Rocky Linux
 
chown -R squid:squid /var/cache/squid
 
 
 
'''Hinweis Rocky Linux:''' SELinux-Kontext setzen:
 
<pre>
 
restorecon -Rv /var/cache/squid/ssl_db
 
chcon -t squid_conf_t /etc/squid/certs/squid_proxyCA.pem
 
</pre>
 
 
 
=Einfügen in der squid.conf=
 
;unter die http_access rules
 
 
 
{| class="wikitable"
 
! Distribution !! ssl_db Pfad
 
|-
 
| Debian / Ubuntu || <code>/var/spool/squid/ssl_db</code>
 
|-
 
| Rocky Linux || <code>/var/cache/squid/ssl_db</code>
 
|}
 
 
 
http_port 3128 ssl-bump cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1
 
ssl_bump bump all
 
 
 
=Restart von Squid=
 
*systemctl restart squid
 
 
 
=Misc=
 
;Hier ist ein Befehl, um die am häufigsten zwischengespeicherten Domänen anzuzeigen.
 
*awk 'BEGIN {FS="[ ]+"}; {print $7}' < /var/log/squid/access.log | awk 'BEGIN {FS="/"}; {print $3}' | sort | uniq -c |sort -k1,1nr -k2,2 | head
 

Aktuelle Version vom 28. April 2026, 10:04 Uhr