Squid-keberos-neu
Zur Navigation springen
Zur Suche springen
Erstellen einer Keytab-Datei für den Squid-Dienst
Diese Anleitung beschreibt die Schritte zur Erstellung einer Keytab-Datei für die Integration des Squid-Proxys mit Active Directory für die Kerberos-Authentifizierung.
Schritt 1: Erstellen eines Benutzerkontos im Active Directory
- Öffnen Sie auf dem Domänencontroller die Konsole "Active Directory-Benutzer und -Computer".
- Erstellen Sie ein neues Benutzerkonto, z. B. mit dem Namen squid-user.
- Optional: Aktivieren Sie in den Eigenschaften des Benutzerkontos auf der Registerkarte "Konto" die Option This account supports Kerberos AES 256 bit encryption.
Schritt 2: Erstellen der Keytab-Datei mit `ktpass`
- Öffnen Sie eine Eingabeaufforderung mit Administratorrechten auf dem Domänencontroller.
- Führen Sie folgenden Befehl aus, um eine Keytab-Datei für den Benutzer `squid-user` zu erstellen:
C:\Windows\system32\ktpass.exe -princ HTTP/proxy.lab34.linuggs.de@LAB34.LINUGGS.DE -mapuser squid-user@LAB34.LINUGGS.DE -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\squid.keytab
- Erklärung der Parameter:**
- -princ: Gibt den Dienstprinzipalnamen (SPN) an. Verwenden Sie den FQDN des Servers in Kleinbuchstaben und den Realm in Großbuchstaben.
- -mapuser: Das Benutzerkonto, das Sie in Active Directory erstellt haben.
- -crypto AES256-SHA1: Verschlüsselungsalgorithmus.
- -ptype KRB5_NT_PRINCIPAL: Typ des Kerberos-Prinzips.
- -pass *: Sie werden aufgefordert, das Passwort für den `squid-user` einzugeben.
- +dumpsalt: Zeigt den generierten Salt an. Notieren Sie diesen Wert, da Sie ihn später benötigen.
- -out: Der Pfad und der Dateiname der zu erstellenden Keytab-Datei.
- Notieren Sie sich den generierten Salt-Wert, z. B. LAB34.LINUGGS.DEHTTPproxy.lab34.linuggs.de.
Schritt 3: Übertragen der Keytab-Datei auf den Proxy-Server
- Kopieren Sie die erstellte Keytab-Datei (z. B. C:\keytabs\squid.keytab) vom Domänencontroller auf den Proxy-Server. Verwenden Sie dafür ein Dateitransferwerkzeug wie `scp` oder eine Netzfreigabe.
- Verschieben Sie die Keytab-Datei auf dem Proxy-Server nach /etc/squid/:
sudo cp /path/to/squid.keytab /etc/squid/squid.keytab
Schritt 4: Zugriffsrechte auf die Keytab-Datei festlegen
- Setzen Sie die Berechtigungen der Keytab-Datei so, dass der Benutzer, unter dem Squid läuft (proxy), darauf zugreifen kann:
sudo chown proxy:proxy /etc/squid/squid.keytab
sudo chmod 400 /etc/squid/squid.keytab
Schritt 5: Konfiguration des Squid-Dienstes für Kerberos-Authentifizierung
- Öffnen Sie die Squid-Konfigurationsdatei:
sudo nano /etc/squid/squid.conf
- Fügen Sie die folgenden Zeilen am Anfang der Datei hinzu:
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/proxy.lab34.linuggs.de@LAB34.LINUGGS.DE
auth_param negotiate children 100 startup=0 idle=10
auth_param negotiate keep_alive on
acl authenticated_user proxy_auth REQUIRED
http_access deny !authenticated_user
Schritt 6: Neustart des Squid-Dienstes
- Laden Sie die Systemd-Konfiguration neu und starten Sie den Squid-Dienst:
sudo systemctl daemon-reload
sudo systemctl restart squid
Schritt 7: Testen der Kerberos-Authentifizierung
- Auf dem Proxy-Server:
kinit -V -k -t /etc/squid/squid.keytab HTTP/proxy.lab34.linuggs.de@LAB34.LINUGGS.DE
- Überprüfen Sie die Squid-Logs unter /var/log/squid/cache.log, um sicherzustellen, dass die Kerberos-Authentifizierung funktioniert.
Zusätzliche Schritte bei Clustern oder mehreren Knoten
- Falls Sie eine Keytab-Datei für mehrere Knoten (Cluster) erstellen, fügen Sie zusätzliche SPNs wie in der Anleitung beschrieben hinzu und verwenden Sie dabei den vorher generierten Salt-Wert.
Zusammenfassung
1. Erstellen Sie ein `squid-user`-Konto in Active Directory. 2. Erstellen Sie eine Keytab-Datei mit dem `ktpass`-Tool auf dem Domänencontroller. 3. Übertragen Sie die Keytab-Datei auf den Proxy-Server und passen Sie die Zugriffsrechte an. 4. Konfigurieren Sie den Squid-Dienst, um Kerberos-Authentifizierung zu verwenden. 5. Starten Sie den Squid-Dienst neu und testen Sie die Konfiguration.