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

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Content Scan=
+
=Maschine Klonen=
*Auf dem Client muss das CA Zertifikat des Proxy installiert sein.
+
{| class="wikitable" style="background-color: #f2f2f2;"
*Proxy generiert für jede Anfrage ein neues Zertifikat und schickt es dem Client.
+
! Parameter !! Wert !! Erläuterung
*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>
+
| '''Netzwerk (NIC)''' || DMZ || Internes Netzwerk
 
|-
 
|-
| Rocky Linux || <code>/etc/pki/ca-trust/source/anchors/</code> || <code>update-ca-trust</code>
+
| '''IP''' || 10.88.2XX.4 || Statische IP
|}
 
 
 
# 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>
+
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
 
|-
 
|-
| Rocky Linux || <code>/etc/pki/ca-trust/source/anchors/</code> || <code>update-ca-trust</code>
+
| '''GW''' || 10.88.2XX.1 || GATEWAY
|}
 
 
 
=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>
+
| '''NS''' || 10.88.2XX.21 || Resolver
 
|-
 
|-
| Rocky Linux || <code>/usr/lib64/squid/security_file_certgen -c -s /var/cache/squid/ssl_db -M 4MB</code>
+
| '''FQDN''' || proxy.it2XX.int || Fully Qualified Domain Name
|}
 
 
 
# 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>
+
| '''SHORT''' || proxy || Short Name
 
|-
 
|-
| Rocky Linux || <code>/var/cache/squid/ssl_db</code>
+
| '''DOM''' || it2XX.int|| Domain Name
 
|}
 
|}
  
http_port 3128 ssl-bump cert=/etc/squid/certs/squid_proxyCA.pem generate-host-certificates=on options=NO_SSLv3,NO_TLSv1,NO_TLSv1_1
+
=Umsetzung=
ssl_bump bump all
+
*[[Squid-Kit-TLS-CA Debian]]
 
+
*[[Squid-Kit-TLS-CA Rocky]]
=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 21. Mai 2026, 11:46 Uhr

Maschine Klonen

Parameter Wert Erläuterung
Netzwerk (NIC) DMZ Internes Netzwerk
IP 10.88.2XX.4 Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 10.88.2XX.1 GATEWAY
NS 10.88.2XX.21 Resolver
FQDN proxy.it2XX.int Fully Qualified Domain Name
SHORT proxy Short Name
DOM it2XX.int Domain Name

Umsetzung