Squid-Kit-TLS-CA: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 7: | Zeile 7: | ||
*Prinzip der Man in the Middle Attacke | *Prinzip der Man in the Middle Attacke | ||
{{#drawio:proxy-4}} | {{#drawio:proxy-4}} | ||
| − | |||
=Installation von squid= | =Installation von squid= | ||
| − | ;Wir brauchen eine angepasste Version 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= | =Erstellen eines Selbstsignierten Zertifikates= | ||
;Verzeichnis anlegen | ;Verzeichnis anlegen | ||
*mkdir /etc/squid/certs | *mkdir /etc/squid/certs | ||
*cd /etc/squid/certs | *cd /etc/squid/certs | ||
| − | + | ;Generieren Sie ein lokales selbstsigniertes CA-Zertifikat und geheimen Schlüssel (in derselben Datei)) | |
| − | ;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" | *openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout squid_proxyCA.pem -out squid_proxyCA.pem -subj "/CN=proxy-ca" | ||
| − | + | *chown -R proxy:proxy squid_proxyCA.pem | |
| − | + | *chmod 0400 squid_proxyCA.pem | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
;Wir extrahieren das ca.crt aus dem Container | ;Wir extrahieren das ca.crt aus dem Container | ||
*openssl x509 -inform PEM -in squid_proxyCA.pem -out squid_proxyCA.crt | *openssl x509 -inform PEM -in squid_proxyCA.pem -out squid_proxyCA.crt | ||
| − | + | ;füge das squid_proxyCA-Zertifikat zum System hinzu, damit es standardmäßig vertrauenswürdig ist | |
| − | ; | + | *cp squid_proxyCA.crt /usr/local/share/ca-certificates |
| − | + | *update-ca-certificates | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=Zertifikat auf den Clients installieren= | =Zertifikat auf den Clients installieren= | ||
!!!'''Wichtig Wichtig Wichtig'''!!! | !!!'''Wichtig Wichtig Wichtig'''!!! | ||
*squid_proxyCA.crt auf die Clients kopieren. | *squid_proxyCA.crt auf die Clients kopieren. | ||
| − | |||
;Firefox | ;Firefox | ||
*Burgermenu | *Burgermenu | ||
| Zeile 72: | Zeile 34: | ||
****Zertifikate anzeigen | ****Zertifikate anzeigen | ||
*****Zertifizierungsstellen importieren | *****Zertifizierungsstellen importieren | ||
| + | ;füge das squid_proxyCA-Zertifikat zum System hinzu, damit es standardmäßig vertrauenswürdig ist | ||
| − | + | *sudo cp squid_proxyCA.crt /usr/local/share/ca-certificates | |
| − | + | *sudo update-ca-certificates | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=Zertifikats Cache anlegen= | =Zertifikats Cache anlegen= | ||
| Zeile 91: | Zeile 47: | ||
*Es kann auch ohne Cache arbeiten und generiert bei jeder Anfrage neue Zertifikate. | *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 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | =Einfügen in der squid.conf= | ||
| + | ;unter die http_access rules | ||
| + | #nativer Zugriff | ||
http_port 3128 ssl-bump cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1 | 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 | ssl_bump bump all | ||
| Zeile 127: | Zeile 60: | ||
=Restart von Squid= | =Restart von Squid= | ||
*systemctl restart squid | *systemctl restart squid | ||
| − | |||
=Misc= | =Misc= | ||
| − | ;Hier ist ein Befehl, um die am häufigsten zwischengespeicherten Domänen anzuzeigen. | + | ;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 | *awk 'BEGIN {FS="[ ]+"}; {print $7}' < /var/log/squid/access.log | awk 'BEGIN {FS="/"}; {print $3}' | sort | uniq -c |sort -k1,1nr -k2,2 | head | ||
Version vom 28. April 2026, 10:03 Uhr
Content Scan
- Auf dem Client muss das CA Zertifikat des Proxy installiert sein.
- 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
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 -subj "/CN=proxy-ca"
- chown -R proxy:proxy squid_proxyCA.pem
- 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
- füge das squid_proxyCA-Zertifikat zum System hinzu, damit es standardmäßig vertrauenswürdig ist
- 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
- Zertifikate anzeigen
- Nach Zertifikaten suchen
- Einstellungen
- füge das squid_proxyCA-Zertifikat zum System hinzu, damit es standardmäßig vertrauenswürdig ist
- sudo cp squid_proxyCA.crt /usr/local/share/ca-certificates
- sudo update-ca-certificates
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
Einfügen in der squid.conf
- unter die http_access rules
#nativer Zugriff 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
