LAB Linux in heterogenen Netzen Squid KERBEROS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Installation und Konfiguration von Squid mit Kerberos-Authentifizierung == === Voraussetzungen === * Ein Linux-Server (Debian/Ubuntu oder eine andere Distr…“)
 
Zeile 1: Zeile 1:
== Installation und Konfiguration von Squid mit Kerberos-Authentifizierung ==
+
== Integration des Proxy-Servers in die Active Directory-Domäne mit Samba und Realm ==
  
 
=== Voraussetzungen ===
 
=== Voraussetzungen ===
Zeile 11: Zeile 11:
 
<pre>
 
<pre>
 
sudo apt update
 
sudo apt update
sudo apt install squid krb5-user libkrb5-dev
+
sudo apt install samba realmd sssd adcli
 
</pre>
 
</pre>
 +
 +
=== Konfiguration von Samba ===
 +
Bearbeiten Sie die Samba-Konfigurationsdatei /etc/samba/smb.conf:
 +
 +
<pre>
 +
sudo nano /etc/samba/smb.conf
 +
</pre>
 +
 +
Fügen Sie die folgenden Zeilen hinzu oder passen Sie die Datei entsprechend an:
 +
 +
<pre>
 +
[global]
 +
  workgroup = LAB34
 +
  realm = LAB34.LINUGGS.DE
 +
  security = ADS
 +
  kerberos method = secrets and keytab
 +
  log file = /var/log/samba/%m.log
 +
  max log size = 50
 +
</pre>
 +
 +
=== Beitritt zur Active Directory-Domäne ===
 +
Verwenden Sie den `realm`-Befehl, um den Proxy-Server der AD-Domäne beizutreten:
 +
 +
<pre>
 +
sudo realm join --user=Administrator LAB34.LINUGGS.DE
 +
</pre>
 +
 +
Geben Sie das Passwort für den Benutzer Administrator ein, wenn Sie dazu aufgefordert werden.
  
 
=== Kerberos-Konfiguration ===
 
=== Kerberos-Konfiguration ===
Bearbeiten Sie die Kerberos-Konfigurationsdatei /etc/krb5.conf:
+
Überprüfen Sie die Kerberos-Konfigurationsdatei /etc/krb5.conf:
  
 
<pre>
 
<pre>
Zeile 21: Zeile 49:
 
</pre>
 
</pre>
  
Fügen Sie Folgendes hinzu oder passen Sie die Datei entsprechend an:
+
Stellen Sie sicher, dass die Datei wie folgt aussieht:
  
 
<pre>
 
<pre>
Zeile 41: Zeile 69:
  
 
=== Erstellen einer Keytab-Datei ===
 
=== Erstellen einer Keytab-Datei ===
Führen Sie die folgenden Befehle auf dem Active Directory-Domänencontroller aus, um einen Kerberos-Service Principal Name (SPN) zu erstellen und eine Keytab-Datei zu generieren:
+
Verwenden Sie `net ads` oder `msktutil`, um eine Keytab-Datei zu erstellen:
 
 
* Erstellen Sie ein Benutzerkonto für den Proxy (falls nicht vorhanden):
 
 
 
<pre>
 
New-ADUser -Name "squid-user" -UserPrincipalName "squid-user@LAB34.LINUGGS.DE" -AccountPassword (ConvertTo-SecureString "your_password" -AsPlainText -Force) -Enabled $true
 
</pre>
 
 
 
* Fügen Sie den SPN hinzu:
 
  
 
<pre>
 
<pre>
setspn -A HTTP/proxy.lab34.linuggs.de squid-user
+
sudo net ads keytab add HTTP/proxy.lab34.linuggs.de -U Administrator
 
</pre>
 
</pre>
  
* Erstellen Sie die Keytab-Datei:
+
Geben Sie das Passwort für den Benutzer Administrator ein, wenn Sie dazu aufgefordert werden.
 
 
<pre>
 
ktpass -princ HTTP/proxy.lab34.linuggs.de@LAB34.LINUGGS.DE -mapuser squid-user@LAB34.LINUGGS.DE -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out /etc/squid/PROXY.keytab
 
</pre>
 
  
 
=== Konfiguration von Squid ===
 
=== Konfiguration von Squid ===
Zeile 68: Zeile 84:
 
</pre>
 
</pre>
  
Fügen Sie die folgenden Zeilen hinzu, um Kerberos-Authentifizierung und Gruppenmitgliedschaft zu konfigurieren:
+
Fügen Sie die folgenden Zeilen hinzu:
  
 
<pre>
 
<pre>
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -d -s HTTP/proxy.lab34.linuggs.de
+
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -s HTTP/proxy.lab34.linuggs.de
 
auth_param negotiate children 1000
 
auth_param negotiate children 1000
 
auth_param negotiate keep_alive on
 
auth_param negotiate keep_alive on
  
external_acl_type kerberos_group ttl=3600 negative_ttl=3600 %LOGIN /usr/local/libexec/squid/ext_kerberos_ldap_group_acl -a -g lg_proxy -D LAB34.LINUGGS.DE
+
external_acl_type kerberos_group ttl=3600 negative_ttl=3600 %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g lg_proxy -D LAB34.LINUGGS.DE
  
 
acl auth proxy_auth REQUIRED
 
acl auth proxy_auth REQUIRED

Version vom 6. Oktober 2024, 15:37 Uhr

Integration des Proxy-Servers in die Active Directory-Domäne mit Samba und Realm

Voraussetzungen

  • Ein Linux-Server (Debian/Ubuntu oder eine andere Distribution)
  • Zugriff auf einen Active Directory-Domänencontroller
  • Administratorrechte auf dem Proxy-Server

Installation der erforderlichen Pakete

Installieren Sie die erforderlichen Pakete auf dem Proxy-Server:

sudo apt update
sudo apt install samba realmd sssd adcli

Konfiguration von Samba

Bearbeiten Sie die Samba-Konfigurationsdatei /etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

Fügen Sie die folgenden Zeilen hinzu oder passen Sie die Datei entsprechend an:

[global]
   workgroup = LAB34
   realm = LAB34.LINUGGS.DE
   security = ADS
   kerberos method = secrets and keytab
   log file = /var/log/samba/%m.log
   max log size = 50

Beitritt zur Active Directory-Domäne

Verwenden Sie den `realm`-Befehl, um den Proxy-Server der AD-Domäne beizutreten:

sudo realm join --user=Administrator LAB34.LINUGGS.DE

Geben Sie das Passwort für den Benutzer Administrator ein, wenn Sie dazu aufgefordert werden.

Kerberos-Konfiguration

Überprüfen Sie die Kerberos-Konfigurationsdatei /etc/krb5.conf:

sudo nano /etc/krb5.conf

Stellen Sie sicher, dass die Datei wie folgt aussieht:

[libdefaults]
    default_realm = LAB34.LINUGGS.DE
    dns_lookup_realm = true
    dns_lookup_kdc = true

[realms]
    LAB34.LINUGGS.DE = {
        kdc = 10.114.214.101
        admin_server = 10.114.214.101
    }

[domain_realm]
    .lab34.linuggs.de = LAB34.LINUGGS.DE
    lab34.linuggs.de = LAB34.LINUGGS.DE

Erstellen einer Keytab-Datei

Verwenden Sie `net ads` oder `msktutil`, um eine Keytab-Datei zu erstellen:

sudo net ads keytab add HTTP/proxy.lab34.linuggs.de -U Administrator

Geben Sie das Passwort für den Benutzer Administrator ein, wenn Sie dazu aufgefordert werden.

Konfiguration von Squid

Bearbeiten Sie die Squid-Konfigurationsdatei /etc/squid/squid.conf:

sudo nano /etc/squid/squid.conf

Fügen Sie die folgenden Zeilen hinzu:

auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -s HTTP/proxy.lab34.linuggs.de
auth_param negotiate children 1000
auth_param negotiate keep_alive on

external_acl_type kerberos_group ttl=3600 negative_ttl=3600 %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g lg_proxy -D LAB34.LINUGGS.DE

acl auth proxy_auth REQUIRED
acl GroupProxy external kerberos_group

http_access deny !auth
http_access allow GroupProxy auth
http_access deny all

Neustart des Squid-Dienstes

Speichern Sie die Änderungen und starten Sie den Squid-Dienst neu:

sudo systemctl restart squid

Testen der Konfiguration

  • Überprüfen Sie den Zugriff mit einem Benutzer, der Mitglied der Gruppe lg_proxy ist, um sicherzustellen, dass der Zugriff gewährt wird.
  • Testen Sie den Zugriff mit einem Benutzer, der nicht in der Gruppe ist, um sicherzustellen, dass der Zugriff verweigert wird.

Fehlerbehebung

  • Überprüfen Sie die Logs unter /var/log/squid/cache.log, um Authentifizierungsfehler oder andere Probleme zu identifizieren.
  • Stellen Sie sicher, dass der Benutzer korrekt in der AD-Gruppe lg_proxy ist und dass die Keytab-Datei die richtigen SPNs enthält.