SSL Bumping in Squid konfigurieren

Gehen Sie wie folgt vor, um SSL Bumping in Squid zu konfigurieren:

  1. Vergewissern Sie sich, dass der verwendete Squid-Dienst die erforderlichen Optionen unterstützt. Führen Sie dazu den folgenden Befehl aus:

    squid -v

    Der Parameter configure options muss die Werte --enable-ssl-crtd und --with-openssl enthalten.

  2. Wechseln Sie in den Ordner des Squid-Dienstes. Führen Sie dazu den folgenden Befehl aus:

    cd /etc/squid

  3. Erstellen Sie ein selbstsigniertes SSL-Zertifikat. Führen Sie dazu den folgenden Befehl aus:

    openssl req -new -newkey rsa:2048 -days <Anzahl der Gültigkeitstage des Zertifikats> -nodes -x509 -keyout squidCA.pem -out squidCA.pem

    Sie werden dazu aufgefordert, die Felder des selbstsignierten SSL-Zertifikats auszufüllen.

  4. Füllen Sie die Felder des selbstsignierten SSL-Zertifikats aus.
  5. Erstellen Sie ein vertrauenswürdiges Zertifikat für den Import in den Browser. Führen Sie dazu den folgenden Befehl aus:

    openssl x509 -in squidCA.pem -outform DER -out squid.der

  6. Importieren Sie die Datei squid.der in die Browser der lokalen Computerbenutzer.

    Das Verfahren zum Import der Datei squid.der in den Browser hängt vom Browsertyp ab.

  7. Richten Sie die Berechtigungen zur Verwendung der selbstsignierten Zertifikatsdatei ein. Führen Sie dazu je nach verwendetem Betriebssystem folgende Befehle aus:
    • CentOS, Red Hat Enterprise Linux oder SUSE Linux Enterprise Server:

      chown squid:squid squidCA.pem

      chmod 400 squidCA.pem

    • Ubuntu oder Debian:

      chown proxy:proxy squidCA.pem

      chmod 400 squidCA.pem

  8. Erstellen Sie einen Ordner für zukünftige Zertifikate. Führen Sie dazu je nach verwendetem Betriebssystem folgende Befehle aus:
    • CentOS oder Red Hat Enterprise Linux:

      mkdir -p /var/lib/squid

      /usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R squid:squid /var/lib/squid

    • Ubuntu:

      mkdir -p /var/lib/squid

      /usr/lib/squid/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R proxy:proxy /var/lib/squid

    • SUSE Linux Enterprise Server:

      mkdir -p /var/lib/squid

      /usr/sbin/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R squid:squid /var/lib/squid

    • Im Betriebssystem Debian unterstützt Squid standardmäßig kein SSL Bumping. Wenn Squid mit der aktivierten Unterstützung von SSL Bumping kompiliert wurde, müssen Sie mithilfe der folgenden Befehle ein Verzeichnis für zukünftige Zertifikate erstellen:

      mkdir -p /var/lib/squid

      <Pfad, der bei der Kompilierung angegeben wurde>/ssl_crtd -c -s /var/lib/squid/ssl_db

      chown -R <Benutzer, der bei der Kompilierung angegeben wurde>:<Gruppe, die bei der Kompilierung angegeben wurde> /var/lib/squid

  9. Ändern Sie die Parameter des Squid-Dienstes. Gehen Sie dazu in der Datei /etc/squid/squid.conf wie folgt vor:
    1. Ändern Sie http_port 3128 in http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/squidCA.pem.
    2. Fügen Sie am Ende der Datei folgende Zeilen hinzu:
      • CentOS oder Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

      • Debian (wenn Squid mit aktivierter Unterstützung von SSL Bumping kompiliert wurde):

        sslcrtd_program <Pfad, der bei der Kompilierung angegeben wurde>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error deny all

    3. Wenn Sie die Zertifikate vertrauenswürdiger Domänen von der Untersuchung ausschließen möchten, fügen Sie die folgenden Zeilen hinzu:
      • CentOS oder Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

      • Debian (wenn Squid mit aktivierter Unterstützung von SSL Bumping kompiliert wurde):

        sslcrtd_program <Pfad, der bei der Kompilierung angegeben wurde>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        acl BrokenButTrustedServers dstdomain <example.com>

        sslproxy_cert_error allow BrokenButTrustedServers

        sslproxy_cert_error deny all

    4. Wenn Sie die Überprüfung von Zertifikaten für alle Domänen deaktivieren möchten, fügen Sie die folgenden Zeilen hinzu:
      • CentOS oder Red Hat Enterprise Linux:

        sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • Ubuntu:

        sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • SUSE Linux Enterprise Server:

        sslcrtd_program /usr/sbin/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

      • Debian (wenn Squid mit aktivierter Unterstützung von SSL Bumping kompiliert wurde):

        sslcrtd_program <der Pfad hängt von den Einstellungen während der Kompilierung ab>/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB

        sslcrtd_children 5

        ssl_bump server-first all

        sslproxy_cert_error allow all

        sslproxy_flags DONT_VERIFY_PEER

  10. Starten Sie den Squid-Dienst neu. Führen Sie dazu den folgenden Befehl aus:

    service squid restart

Die Konfiguration von SSL Bumping in Squid wird abgeschlossen.

Nach oben