Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/gemstones/containers/podman.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Podman fournit également la sous-commande `generate systemd`. Il peut être uti
!!! warning "Avertissement"

```
`generate systemd` est désormais obsolète et ne recevra plus de fonctionnalités supplémentaires. L'utilisation de Quadlet est recommandée.
`generate systemd` est maintenant désuet et ne recevra plus de fonctionnalités. L'utilisation de `Quadlet` est recommandée.
```

Faisons-le désormais avec Nextcloud. Exécuter :
Expand Down
2 changes: 1 addition & 1 deletion docs/gemstones/network/RL9_network_manager.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Pour RockyLinux 8.x, nous avons expliqué comment configurer son réseau [ici](.

## Règles de nommage pour udev device manager

Pour RockyLinux 9.x, si vous allez dans le répertoire **/etc/sysconfig/network-scripts/** , il y aura un **readme-ifcfg-rh.txt** texte de description qui vous invite à vous rendre dans le répertoire **/etc/NetworkManager/system-connections/**.
Pour RockyLinux 9.x, si vous allez dans le répertoire **/etc/sysconfig/network-scripts/** , il y aura un texte descriptif **readme-ifcfg-rh.txt** qui vous invite à vous rendre dans le répertoire **/etc/NetworkManager/system-connections/**.

```bash
Shell > cd /etc/NetworkManager/system-connections/ && ls
Expand Down
2 changes: 1 addition & 1 deletion docs/gemstones/network/nmtui.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Toutes les distributions RHEL <font color="red">7.x</font> ou <font color="red">

!!! warning "Avertissement"

Dans les distributions RHEL 9.x, l'emplacement du répertoire où le fichier de configuration du réseau est stocké a été modifié, c'est-à-dire **/etc/NetworkManager/system-connections/**. Veuillez consulter [ce site](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index) pour plus d'informations.
Dans les distributions RHEL 9.x, l'emplacement du répertoire où le fichier de configuration de la carte réseau est stocké a été modifié, soit **/etc/NetworkManager/system-connections/**. Veuillez consulter [ce site](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/configuring_and_managing_networking/index) pour plus d'informations.

```bash
shell > ls /etc/sysconfig/network-scripts/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
---
title: Active Directory-Authentifizierung
author: Hayden Young
contributors: Steven Spencer, Sambhav Saggi, Antoine Le Morvan, Krista Burdine, Ganna Zhyrnova, Neel Chauhan
tested_with: 9.4
---

## Voraussetzungen

- Grundverständnis von Active Directory
- Grundverständnis von LDAP

## Einleitung

Microsofts Active Directory (AD) ist in den meisten Unternehmen das de facto Authentifizierungssystem für Windows-Systeme und für externe LDAP-angeschlossene Dienste. Es erlaubt Ihnen, Benutzer und Gruppen zu konfigurieren, sowie Zugriffskontrolle, Berechtigungen, Auto-Mount und mehr.

Während Linux mit einem AD-Cluster verbunden wird, können _nicht alle_ der genannten Funktionen unterstützt werden, es kann jedoch Benutzer, Gruppen und Zugriffskontrolle verwalten. Es ist sogar möglich SSH-Schlüssel unter Verwendung von AD zu verteilen (durch einige Konfigurationseinstellungen auf der Linux-Seite und durch einige fortgeschrittene Optionen auf der AD-Seite).

Diese Anleitung deckt jedoch nur die Konfiguration der Authentifizierung gegen Active Directory ab und enthält keine zusätzliche Konfiguration auf der Windowsseite.

## AD mit Hilfe von SSSD finden und verbinden

!!! note "Hinweis"

In dieser Anleitung wird der Domainname `ad.company.local` verwendet, um
die Active Directory Domain zu simulieren. Um dieser Anleitung zu folgen, ersetzen Sie sie durch den aktuellen Domain-Namen, den Ihre AD-Domain verwendet.

Der erste Schritt auf dem Weg zu einem Linux-System in AD ist es, den AD-Cluster zu finden, um sicherzustellen, dass die Netzwerkkonfiguration auf beiden Seiten korrekt ist.

### Zubereitung

- Stellen Sie sicher, dass die folgenden Ports für Ihren Linux-Host auf Ihrem Domain Controller offen sind:

| Dienst | Port(s) | Beschreibung |
| -------- | ----------------- | ------------------------------------------------------------------------------- |
| DNS | 53 (TCP+UDP) | |
| Kerberos | 88, 464 (TCP+UDP) | Verwendet von `kadmin` für die Einstellung & die Aktualisierung von Passwörtern |
| LDAP | 389 (TCP+UDP) | |
| LDAP-GC | 3268 (TCP) | LDAP Global Catalog - ermöglicht die Quell-Benutzer-IDs von AD zu übernehmen |

- Stellen Sie sicher, dass Sie Ihren AD Domänencontroller als DNS-Server auf Ihrem Rocky Linux Host konfiguriert haben:

**Mit dem NetworkManager:**

```sh
# where your primary NetworkManager connection is 'System eth0' and your AD
# server is accessible on the IP address 10.0.0.2.
[root@host ~]$ nmcli con mod 'System eth0' ipv4.dns 10.0.0.2
```

- Stellen Sie sicher, dass die Zeit auf beiden Seiten (AD Host und Linux System) synchronisiert ist (siehe chronyd)

**Um die Zeit auf Rocky Linux zu überprüfen:**

```sh
[user@host ~]$ date
Wed 22 Sep 17:11:35 BST 2021
```

- Installieren bitte Sie die benötigten Pakete für die AD-Verbindung auf der Linux-Seite:

```sh
[user@host ~]$ sudo dnf install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
```


### Discovery

Jetzt sollten Sie in der Lage sein, Ihre AD-Server erfolgreich von Ihrem (Rocky) Linux-Host zu finden.

```sh
[user@host ~]$ realm discover ad.company.local
ad.company.local
type: kerberos
realm-name: AD.COMPANY.LOCAL
domain-name: ad.company.local
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common
```

Die relevanten SRV-Einträge, die in Ihrem Active Directory-DNS-Dienst gespeichert sind, ermöglichen die Erkennung.

### Verbindung

Sobald Sie Ihre Active Directory Installation vom Linux-Host gefunden haben, sollten Sie in der Lage sein mit `realmd` der Domain beizutreten, welche die Konfiguration von `sssd` unter Verwendung von `adcli` und anderen solchen Tools orchestriert.

```sh
[user@host ~]$ sudo realm join ad.company.local
```

Wenn sich dieser Prozess über die Verschlüsselung mit folgender Meldung beschwert `KDC has no support for this encrption type`, versuchen Sie, die globalen Verschlüsselungsrichtlinien zu aktualisieren, um ältere Verschlüsselungsalgorithmen zu zulassen:

```sh
[user@host ~]$ sudo update-crypto-policies --set DEFAULT:AD-SUPPORT
```

Wenn dieser Prozess erfolgreich ist, sollten Sie jetzt in der Lage sein, `passwd` Informationen für einen Active Directory Benutzer zu bekommen.

```sh
[user@host ~]$ sudo getent passwd administrator@ad.company.local
administrator@ad.company.local:*:1450400500:1450400513:Administrator:/home/administrator@ad.company.local:/bin/bash
```

!!! note "Hinweis"

`getent` liest Einträge von Name Service Switch Bibliotheken (NSS). Es bedeutet, dass es im Gegensatz zu `passwd` oder `dig` zum Beispiel verschiedene Datenbanken abgefragen werden inklusive `/etc/hosts` für `getent hosts` oder von `sssd` im `getent passwd` Fall.

`realm` bietet einige interessante Optionen, die Sie verwenden können:

| Option | Beschreibung |
| ---------------------------------------------------------- | --------------------------------------------------- |
| --computer-ou='OU=LINUX,OU=SERVERS,dc=ad,dc=company.local' | Das OU, wo das Server-Konto gespeichert werden soll |
| --os-name='rocky' | Gibt den OS-Namen an, der im AD gespeichert ist |
| --os-version='8' | Gibt die OS-Version an, die im AD gespeichert ist |
| -U admin_username | Admin-Konto |

### Authentifizierungs-Versuch

Jetzt sollten Ihre Benutzer in der Lage sein, sich bei Ihrem Linux-Host gegen Active Directory zu authentifizieren.

**Unter Windows 10** (welches eine eigene Kopie von OpenSSH bereitstellen sollte</strong>):

```dos
C:\Users\John.Doe> ssh -l john.doe@ad.company.local linux.host
Password for john.doe@ad.company.local:

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Wed Sep 15 17:37:03 2021 from 10.0.10.241
[john.doe@ad.company.local@host ~]$
```

Wenn dies gelingt, haben Sie Linux erfolgreich für die Verwendung von Active Directory als Authentifizierungsquelle konfiguriert.

### Einstellung der Standard-Domain

Bei einer vollständig standardmäßigen Einrichtung müssen Sie sich mit Ihrem AD-Konto anmelden, indem Sie die Domäne in Ihrem Benutzernamen angeben (z. B. `john.doe@ad.company.local`). Wenn dies nicht das gewünschte Verhalten ist und Sie stattdessen den Domänennamen bei der Authentifizierung weglassen möchten, können Sie SSSD so konfigurieren, dass standardmäßig eine bestimmte Domäne verwendet wird.

Dies ist ein relativ unkomplizierter Vorgang, der eine Konfigurationsoptimierung in Ihrer SSSD-Konfigurationsdatei erfordert.

```sh
[user@host ~]$ sudo vi /etc/sssd/sssd.conf
[sssd]
...
default_domain_suffix = ad.company.local
```

Durch Hinzufügen des `default_domain_suffix` weisen Sie SSSD an, (wenn keine andere Domäne angegeben ist) daraus zu folgern, dass der Benutzer versucht, sich als Benutzer aus der Domäne `ad.company.local` zu authentifizieren. Dadurch können Sie sich beispielsweise als `john.doe` statt als `john.doe@ad.company.local` authentifizieren.

Damit diese Konfigurationsänderung wirksam wird, müssen Sie die Einheit `sssd.service` mit `systemctl` neu starten.

```sh
[user@host ~]$ sudo systemctl restart sssd
```

Wenn Sie nicht möchten, dass Ihre Home-Verzeichnisse mit dem Domänennamen als Suffix versehen werden, können Sie diese Optionen auf die gleiche Weise in Ihre Konfigurationsdatei `/etc/sssd/sssd.conf` einfügen:

```
[domain/ad.company.local]
use_fully_qualified_names = False
override_homedir = /home/%u
```

Vergessen Sie nicht, den Dienst `sssd` neu zu starten.

### Auf bestimmte Benutzer beschränken

Es gibt verschiedene Methoden, den Zugriff auf den Server auf eine begrenzte Anzahl von Benutzern zu beschränken, aber diese ist, wie der Name schon sagt, sicherlich die einfachste:

Fügen Sie diese Optionen in Ihre Konfigurationsdatei `/etc/sssd/sssd.conf` ein und starten Sie den Dienst neu:

```
access_provider = simple
simple_allow_groups = group1, group2
simple_allow_users = user1, user2
```

Jetzt können nur Benutzer aus `group1` und `group2` oder `user1` und `user2` über sssd eine Verbindung zum Server herstellen!

## Interagieren Sie mit dem AD über `adcli`

`adcli` ist eine CLI zum Ausführen von Aktionen in einer Active Directory-Domäne.

- Falls noch nicht geschehen, installieren Sie das erforderliche Paket:

```sh
[user@host ~]$ sudo dnf install adcli
```

- Testen Sie, ob Sie bereits einer Active Directory-Domäne beigetreten sind:

```sh
[user@host ~]$ sudo adcli testjoin
Successfully validated join to domain ad.company.local
```

- Erhalten Sie weitere Informationen zur Domäne:

```sh
[user@host ~]$ adcli info ad.company.local
[domain]
domain-name = ad.company.local
domain-short = AD
domain-forest = ad.company.local
domain-controller = dc1.ad.company.local
domain-controller-site = site1
domain-controller-flags = gc ldap ds kdc timeserv closest writable full-secret ads-web
domain-controller-usable = yes
domain-controllers = dc1.ad.company.local dc2.ad.company.local
[computer]
computer-site = site1
```

- `adcli` ist mehr als nur ein Anzeige-Tool. Sie können damit mit Ihrer Domäne interagieren: Benutzer oder Gruppen verwalten, Passwörter ändern usw.

Beispiel: Verwenden Sie `adcli`, um Informationen über einen Computer abzurufen:

!!! note "Hinweis"

Dieses Mal geben Sie dank der Option `-U` einen Administrator-Benutzernamen an

```sh
[user@host ~]$ adcli show-computer pctest -U admin_username
Password for admin_username@AD:
sAMAccountName:
pctest$
userPrincipalName:
- not set -
msDS-KeyVersionNumber:
9
msDS-supportedEncryptionTypes:
24
dNSHostName:
pctest.ad.company.local
servicePrincipalName:
RestrictedKrbHost/pctest.ad.company.local
RestrictedKrbHost/pctest
host/pctest.ad.company.local
host/pctest
operatingSystem:
Rocky
operatingSystemVersion:
8
operatingSystemServicePack:
- not set -
pwdLastSet:
133189248188488832
userAccountControl:
69632
description:
- not set -
```

Beispiel: Verwenden Sie `adcli`, um das Passwort des Benutzers zu ändern:

```sh
[user@host ~]$ adcli passwd-user user_test -U admin_username
Password for admin_username@AD:
Password for user_test:
[user@host ~]$
```

## Problembehandlung

Manchmal wird der Netzwerkdienst nach SSSD gestartet, was zu Problemen bei der Authentifizierung führt.

Bis Sie den Dienst neu starten, können AD-Benutzer keine Verbindung herstellen.

In diesem Fall müssen Sie die Servicedatei von systemd überschreiben, um das Problem zu beheben.

Kopieren Sie diesen Inhalt in `/etc/systemd/system/sssd.service`:

```
[Unit]
Description=System Security Services Daemon
# SSSD must be running before we permit user sessions
Before=systemd-user-sessions.service nss-user-lookup.target
Wants=nss-user-lookup.target
After=network-online.target


[Service]
Environment=DEBUG_LOGGER=--logger=files
EnvironmentFile=-/etc/sysconfig/sssd
ExecStart=/usr/sbin/sssd -i ${DEBUG_LOGGER}
Type=notify
NotifyAccess=main
PIDFile=/var/run/sssd.pid

[Install]
WantedBy=multi-user.target
```

Beim nächsten Reboot wird der Dienst entsprechend seinen Anforderungen gestartet und alles wird gut gehen.

## Verlassen des Active Directory

Manchmal ist es notwendig, die Active Directory zu verlassen.

Sie können erneut mit `realm` fortfahren und dann die nicht mehr benötigten Pakete entfernen:

```sh
[user@host ~]$ sudo realm leave ad.company.local
[user@host ~]$ sudo dnf remove realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
```
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ tested_with: 9.4
- Connaissances de base de Active Directory
- Connaissances de base de LDAP

## Présentation de Active Directory
## Introduction

Active Directory (AD) de Microsoft est, dans la plupart des entreprises, le système d'authentification standard pour les systèmes Windows et pour les applications externes connectées à LDAP. Il permet de configurer les utilisateurs et les groupes, le contrôle d'accès, les permissions, le montage automatique, etc.

Expand Down Expand Up @@ -100,7 +100,7 @@ Si ce processus affiche un problème de chiffrement comme `KDC has no support fo
[user@host ~]$ sudo update-crypto-policies --set DEFAULT:AD-SUPPORT
```

Si ce processus réussit, vous devriez maintenant pouvoir extraire les informations `passwd` d'un utilisateur d'Active Directory.
Si la procédure est couronnée de succès, vous devriez maintenant pouvoir extraire les informations `passwd` d'un utilisateur d'Active Directory.

```sh
[user@host ~]$ sudo getent passwd administrator@ad.company.local
Expand All @@ -124,7 +124,7 @@ administrator@ad.company.local:*:1450400500:1450400513:Administrator:/home/admin

Now your users should be able to authenticate to your Linux host against Active Directory.

**Sous Windows 10 :** (qui possède sa propre copie de OpenSSH)
**Sous Windows 10** (qui possède sa propre implémentation de OpenSSH) :

```dos
C:\Users\John.Doe> ssh -l john.doe@ad.company.local linux.host
Expand Down