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 mit SSL-Unterstützung.
| Distribution |
Befehl
|
| Debian / Ubuntu |
apt install squid-openssl
|
| Rocky Linux |
dnf install squid (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
| Distribution |
Proxy-Benutzer
|
| Debian / Ubuntu |
proxy
|
| Rocky Linux |
squid
|
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
| Distribution |
Zielverzeichnis |
Befehl
|
| Debian / Ubuntu |
/usr/local/share/ca-certificates/ |
update-ca-certificates
|
| Rocky Linux |
/etc/pki/ca-trust/source/anchors/ |
update-ca-trust
|
# 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)
| Distribution |
Zielverzeichnis |
Befehl
|
| Debian / Ubuntu |
/usr/local/share/ca-certificates/ |
update-ca-certificates
|
| Rocky Linux |
/etc/pki/ca-trust/source/anchors/ |
update-ca-trust
|
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.
| Distribution |
Befehl
|
| Debian / Ubuntu |
/usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 4MB
|
| Rocky Linux |
/usr/lib64/squid/security_file_certgen -c -s /var/cache/squid/ssl_db -M 4MB
|
# Debian/Ubuntu
chown -R proxy:proxy /var/spool/squid
# Rocky Linux
chown -R squid:squid /var/cache/squid
Hinweis Rocky Linux: SELinux-Kontext setzen:
restorecon -Rv /var/cache/squid/ssl_db
chcon -t squid_conf_t /etc/squid/certs/squid_proxyCA.pem
Einfügen in der squid.conf
- unter die http_access rules
| Distribution |
ssl_db Pfad
|
| Debian / Ubuntu |
/var/spool/squid/ssl_db
|
| Rocky Linux |
/var/cache/squid/ssl_db
|
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
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