Squid-keberos-neu

Aus Xinux Wiki
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.