Als Betriebssystemeist ist Ubuntu 20 benutzt.
Als free-TACACS+ ist das Projekt https://www.pro-bono-publico.de/projects/tac_plus.html benutzt.
Installierung des TACACS+ Servers
Die Installation von Ubuntu wird in diesem Artikel nicht behandelt.
Die Distribution und die Dokumentation von TACACS+ befindet sich hier: https://www.pro-bono-publico.de/projects/howto-tac_plus-ads.html.
Bekommen Sie die Distribution (Soutce-code) und auspacken sie in den Ordner /TAC
Im Ordner /TAC/PROJECTS/ gibt es eine Datei configure
Weiter machen Sie alles unter root:
./configure tac_plus mavis
make
make install
checkinstall
Jetzt im Ordner /TAC/PROJECTS/ haben Sie eine deb-Distribution projects_20211129-1_amd64.deb (Im Namen der deb-Distribution steht das heutige Datum)
Starten Sie die Installierung:
dpkg -i projects_20211129-1_amd64.deb
Konfigurierung der Server
Konfigurierung des Windows Active Directory Servers
- IP-Adresse (oder DNC-Name) von dem Domain Controller (oder zwei-drei Adressen, wenn es mehr Domain Controller Server gibt) ist benötigt.
- In Active Directory benötigen Sie zwei Gruppen tacacsadmin und tacacsuser zu haben.
- Sie brauchen einen speziellen User für TACACS-AD Integration, z.B. ad-tacacs. Durch den User, bekommt TACACS-Server die Information über AD-Gruppen und AD-Users. User ad-tacacs muss nur in der Gruppe „Domain Users“ sein. Er braucht keine Admin-Rechte. Das Kennwort des Users ad-tacacs kann nicht veraltet werden und der User kann das Kennwort nicht ändern. (Zwei Hacken in den Einstellungen von User in Active Directory)
- Die Gruppe tacacsadmin müssen die Netzwerkadministratoren enthalten. Die Gruppe tacacsuser muss die Users enthalten, deren Rechte auf den Netzwerkgeräten eingeschränkt sein müssen.
Konfigurierung des TACACS+ Servers
Erstellen Ordner für die Logs:
sudo mkdir /var/log/tac_plus
hier steht wer,wo und was gamacht hat:
sudo mkdir /var/log/tac_plus/accounting
hier befinden sich erfolgreiche und erfolglose Authentifizierungsversuche:
sudo mkdir /var/log/tac_plus/authentication
hier befinden sich nur erfolgreiche Authentifizierungsversuche. Zusammen mit "authentication" ist überflüssig:
sudo mkdir /var/log/tac_plus/access
Config-file soll hier liegen:
/usr/local/etc/tac_plus.cfg
Config-file (tac_plus.cfg) befindet sich hier:
Machen Sie tac_plus zu einem Linux-Service:
cp /TAC/PROJECTS/tac_plus/extra/etc_init.d_tac_plus /etc/init.d/tac_plus
chmod 755 /etc/init.d/tac_plus
Prüfen, ob Sie den tac_plus-Service haben:
service --status-all
Starten Sie den tac_plus-Service:
service tac_plus start
Nach jeder Änderung im Config-file (/usr/local/etc/tac_plus.cfg) muss tac_plus neustarten werden:
service tac_plus restart
Prüfung, ob in tac_plus.cfg alles richtig konfiguriert ist. Der Befehl zeigt wo in tac_plus.cfg ein Fehler ist. Falls der Befehl nichts zeigt, dann tac_plus.cfg keine Fehler enthaltet:
/usr/local/sbin/tac_plus -P /usr/local/etc/tac_plus.cfg
Machen Sie den Autostart des tac_plus-Services. Falls der Ubuntu-Server neustartet wird, muss den tac_plus-Service auch starten.
Im Anfang des Files /etc/init.d/tac_plus stellen Sie folgendes:
#!/bin/bash
### BEGIN INIT INFO
# Provides: haltusbpower
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Halts USB power...
### END INIT INFO
dann unter root:
systemctl enable tac_plus
Weiter starten Sie den Ubuntu Server neu und überprüfen, ob der tac_plus-Service läuft:
service --status-all
Prüfung der Konfiguration
Wenn den Config-File (tac_plus) richtig konfiguriert ist und der Befehl /usr/local/sbin/tac_plus -P /usr/local/etc/tac_plus.cfg
keine Fehler zeigt, kann man die Verbindung zwischen dem TACACS-Server und der Windows-Domäne überprüfen:
/usr/local/bin/mavistest -d -1 /usr/local/etc/tac_plus.cfg tac_plus TACPLUS AD-User AD-Password (AD-Netzwerkadminuser und sein Kennwort)
Die Verbindung zwischen dem TACACS-Server und der Windows-Domäne funktioniert richtig, wenn wir im Feld „RESULT“ bekommen „ACK“:
Input attribute-value-pairs:
TYPE TACPLUS
TIMESTAMP mavistest-4371-1639554269-0
USER AD-User
PASSWORD AD-Password
TACTYPE AUTH
Output attribute-value-pairs:
TYPE TACPLUS
TIMESTAMP mavistest-4371-1639554269-0
USER AD-User
RESULT ERR <===== !!!
PASSWORD AD-Password
SERIAL WqTqIUKL5Be91U+Y7OkoeA=
Hier funktioniert die Verbindung zwischen dem TACACS-Server und der Windows-Domäne richtig:
Input attribute-value-pairs:
TYPE TACPLUS
TIMESTAMP mavistest-6628-1639579625-0
USER AD-User
PASSWORD AD-Password
TACTYPE AUTH
Output attribute-value-pairs:
TYPE TACPLUS
TIMESTAMP mavistest-6628-1639579625-0
USER AD-User
RESULT ACK <===== !!!
PASSWORD AD-password
SERIAL OxA7FLHju+cP/FBqdno2gg=
DBPASSWORD AD-Password
TACMEMBER "admin"
TACTYPE AUTH
Konfigurierung der Switche
Der letzte Schritt besteht darin, den TACACS+-Server auf dem Switch zu konfigurieren.
ArubaOS
TACACS-Server und der Schlüssel (key) aus tac_plus.cfg. Wiederholen Sie diesen Befehl für jeden TACACS+-Server, den Sie haben:
tacacs-server host 10.255.255.1 key "longkey"
Timeout 2 Sekunden:
tacacs-server timeout 2
Auf dem Switch müssen Sie die TACACS+-Authentifizierung für SSH oder jeden anderen Dienst, den Sie verwenden möchten, mit dem folgenden Befehl aktivieren:
aaa authentication ssh login tacacs local
Nach der erfolgreichen Anmeldung muss sich der Benutzer authentifizieren, um auch mit dem folgenden Befehl auf den enable-Kontext zuzugreifen:
aaa authentication ssh enable tacacs local
Es ist gut genausolche Befehle für Console-Verbindung zu konfigurieren:
aaa authentication console login tacacs local
aaa authentication console enable tacacs local
Das Ende beider Befehle definiert die Authentifizierungsmethode. Es empfiehlt sich, local als zweite Authentifizierungsoption zu definieren, falls der TACACS+-Server nicht verfügbar ist. Dadurch ist sichergestellt, dass der Zugriff auf das Gerät immer möglich ist.
VORSICHT!
Einige ArubaOS-Geräte erlauben das Wort „local“ am Ende des Befehls zu schreiben, aber sie speichern das Wort „local“ in der Konfig NICHT.
Es war z.B. auf dem Switch Aruba 2530-8G (J9774A) mit der Firmwareversion #YA.16.11.0002
aaa authentication ssh login tacacs local #in der Konfig ist "local" nicht gespeichert
aaa authentication ssh enable tacacs local
aaa authentication console login tacacs local
aaa authentication console enable tacacs local
Um die doppelte Authentifizierung und den Zugriff auf den Aktivierungsmodus bei der ersten Anmeldung zu vermeiden, verwenden Sie diesen Befehl:
aaa authentication login privilege-mode
Der Vorteil eines TACACS-Servers gegenüber einem RADIUS-Server ist, dass jeder Befehl, den der Administrator auf einem Netzwerkgerät eingibt, erlaubt (autorisiert) sein muss. Das bedeutet, dass das Netzwerkgerät vor der Ausgabe des Befehls den TACACS-Server fragt, ob der aktuelle Benutzer berechtigt ist, den Befehl auszuführen.
Um die Autorisierung für Befehle zu aktivieren, verwenden Sie diesen Befehl:
aaa authorization commands tacacs
Dadurch wird die Befehlsberechtigung für jede Befehlsausgabe auf dem Switch aktiviert. Um nur die Befehlsberechtigung auf Managerebene zu aktivieren, verwenden Sie diesen Befehl (Alle Netzwerkadministratoren bekommen manager-Rechte, aber jeder Netzwerkadministrator kann auf den TACACS-Server beschränk? werden):
aaa authorization commands access-level manager
Der letzte Schritt besteht darin, die Befehlsabrechnung (accounting) zu aktivieren. Jeder Befehl, den der aktuelle Benutzer eingibt (natürlich, wenn der Befehl dem Benutzer erlaubt ist), wird nun in der log-File (sehen tac_plus.cfg) gespeichert. Um die Befehlsabrechnung zu aktivieren, verwenden Sie diesen Befehl:
aaa accounting commands interim-update tacacs
Die folgende Befehle gehören zu der TACACS+-Konfiguration nicht, aber es ist gut idle-Timeout von den Sessionen auf den Geräten zu beschränken. Die Befehle sind für die Console- und SSH-Verbindungen (900 Sekunden):
console idle-timeout 900
console idle-timeout serial-usb 900
Vollständige TACACS+-Konfiguration auf ArubaOS
console idle-timeout 900
console idle-timeout serial-usb 900
tacacs-server host 10.255.255.1 key "longkey"
tacacs-server timeout 2
aaa accounting commands interim-update tacacs
aaa authorization commands tacacs
aaa authorization commands access-level manager
aaa authentication login privilege-mode
aaa authentication ssh login tacacs local
aaa authentication ssh enable tacacs local
aaa authentication ssh login console local
aaa authentication ssh enable console local
ArubaOS-CX
In ArubaOS-CX muss man source-interface für TACACS+-Server einrichten. (IP-Adresse, oder Interfacename z.B. Loopback 0):
ip source-interface tacacs 10.255.255.4
In ArubaOS-CX ist der Schlüssel (key) aus tac_plus.cfg verschlüsselt:
tacacs-server key ciphertext AQBapbFg8LbZH33tGCO5YGWQ2Vt3GCiaaOt+QtlCijIIA1iCFAAAAMnUheK35LlU5nA0xoKeVBrgfzbh
Geben Sie für jeden TACACS-Server den Authentifizierungstyp wie in tac_plus.cfg (pap backend = mavis) an. Ich konnte leider das Chap-Protokoll nicht zum Laufen bringen.
tacacs-server host 10.255.255.1 auth-type pap
ArubaOS-CX unterstützt Gruppen von den TACACS+-Server:
aaa group server tacacs grTACACS-Servers
server 10.255.255.1
Die authentication-, authorization- und accounting-Befehle sind ähnlich wie auf ArubaOS:
aaa authentication login ssh group grTACACS-Servers local
aaa authentication login console group grTACACS-Servers local
aaa authorization commands ssh group grTACACS-Servers local
aaa authorization commands console group grTACACS-Servers local
aaa accounting all-mgmt ssh start-stop group grTACACS-Servers local
idle-Timeout von den Sessionen auf ArubaOS-CX (15 Minuten):
session-timeout 15
oder es gibt noch ein Befehl dafür:
cli-session
timeout 15
Vollständige TACACS+-Konfiguration auf ArubaOS-CX
tacacs-server key ciphertext AQBapbFg8LbZH33tGCO5YGWQ2Vt3GCiaaOt+QtlCijIIA1iCFAAAAMnUheK35LlU5nA0xoKeVBrgfzbh
tacacs-server host 10.255.255.1 auth-type pap
!
aaa group server tacacs grTACACS-Servers
server 10.255.255.1
!
!
aaa authentication login ssh group grTACACS-Servers local
aaa authentication login console group grTACACS-Servers local
aaa authorization commands ssh group grTACACS-Servers local
aaa authorization commands console group grTACACS-Servers local
aaa accounting all-mgmt ssh start-stop group grTACACS-Servers local
ip source-interface tacacs 10.255.255.4
cli-session
timeout 15
Links
https://www.pro-bono-publico.de/projects/howto-tac_plus-ads.html
https://www.flomain.de/2017/02/operator-login-clearpass/
https://www.flomain.de/2017/02/operator-command-authorization-and-accounting-with-clearpass-tacacs/
https://itsketch.ru/linux/ubuntu/83-tacacs-na-linux-s-domennoj-avtorizatsiej
https://habr.com/ru/post/194750/
Keine Kommentare:
Kommentar veröffentlichen