SSH auf Centos 7 mit WiKID-Zwei-Faktor-Authentifizierung sichern
SSH bietet einen hochsicheren Kanal für die Remoteverwaltung von Servern. Wenn Sie sich jedoch einem Audit aufgrund regulatorischer oder geschäftlicher Anforderungen gegenübersehen, wie z. B. Visa/Mastercard PCI, müssen Sie sich einiger potenzieller Mängel im Zusammenhang mit der Authentifizierung bewusst sein, die bei einem Audit Kopfschmerzen verursachen können. Zum Beispiel:
- Es gibt keine Möglichkeit zu kontrollieren, welche Benutzer die Berechtigung für öffentliche Schlüssel haben
- Es gibt keine Möglichkeit, die Komplexität der Passphrase zu erzwingen (oder gar sicher zu sein, dass eine verwendet wird)
- Es gibt keine Möglichkeit, einen öffentlichen Schlüssel ablaufen zu lassen
In diesem Dokument zeigen wir, wie Sie die Zwei-Faktor-Authentifizierung von WiKID auf Redhat konfigurieren. Das WiKID Strong Authentication System ist eine kommerzielle/Open-Source-Zwei-Faktor-Authentifizierungslösung. Zuerst konfigurieren wir eine Domäne auf dem WiKID-Server, fügen dann den Zielserver als Netzwerkclients zum WiKID-Server hinzu und konfigurieren schließlich die Redhat-Box mit pam-radius.
Wir gehen davon aus, dass Ihr Centos 7-Server betriebsbereit ist und Sie bereit sind, die Zwei-Faktor-Authentifizierung in Ihrer Umgebung zu implementieren.
Hinzufügen einer Domain zum WiKID-Server
Bitte beachten Sie, dass der Domänenservercode die mit Nullen aufgefüllte externe IP-Adresse Ihres Servers sein sollte. Wenn Ihre IP also 54.83.0.181 lautet, lautet der Servercode oder die Domänenkennung 054083000181.
Erstellen Sie einen Netzwerk-Client
Klicken Sie nach dem Speichern der Domäneninformationen auf den Netzwerk-Client und Neuen Netzwerk-Client erstellen . Geben Sie einen Namen für diesen Client und die IP-Adresse des SSH-Gateways im internen Netzwerk ein. Wählen Sie Radius als Protokoll und die oben erstellte Domäne als Domäne aus.
Klicken Sie auf Hinzufügen um zur nächsten Seite zu gelangen und das gemeinsame Geheimnis für Radius einzugeben.
Sie müssen diesen Vorgang für jeden Server in Ihrem Netzwerk wiederholen.
Konfigurieren Sie SSH auf Ihrem Centos 7-Server
Jetzt konfigurieren wir SSH auf dem Zielcomputer. Jede Linux-Variante handhabt PAM etwas anders. Dieses Tutorial behandelt die Installation von pam-radius für die Zwei-Faktor-Authentifizierung auf Redhat.
Laden Sie zunächst die tar-Datei der Quelle herunter. Die aktuelle Version ist 1.3.17
$ wget ftp://ftp.freeradius.org/pub/radius/pam_radius-1.3.17.tar.gz
Entpacken Sie die Datei:
$ tar -xzvf pam_radius-1.3.17.tar.gz
Installieren Sie pam-devel:
$ sudo yum install pam-devel
Wechseln Sie in das erstellte Verzeichnis und führen Sie make:
aus$ make
Möglicherweise werden einige Fehler angezeigt, aber wenn die .so-Datei erstellt wird, sollte alles in Ordnung sein. Kopieren Sie die Bibliothek an den richtigen Speicherort auf 32-Bit oder 64-Bit, abhängig von Ihrer Architektur:
$ sudo cp pam_radius_auth.so /lib/security/
$ sudo cp pam_radius_auth.so /usr/lib64/security/
Verwenden Sie Ihren bevorzugten Editor, um SSH anzuweisen, den Radius für die Authentifizierung zu verwenden. Fügen Sie dies als zweite Zeile hinzu:
auth ausreichend /lib/security/pam_radius_auth.so
Speichern Sie die Datei und beenden Sie. Beachten Sie, dass diese Einstellung weiterhin Kennwörter zur Authentifizierung zulässt. Ändern Sie „ausreichend“ in „erforderlich“, um nur die Radiusauthentifizierung zuzulassen. Normalerweise belasse ich es als ausreichend, bis ich einige Tests durchgeführt habe, insbesondere wenn der Server entfernt ist.
Jetzt müssen wir PAM mitteilen, wo sich der Radius-Server befindet. In diesem Fall ist es der WiKID-Server. (Hinweis:Ein weiterer Vorteil der Verwendung von radius besteht darin, dass Sie die Authentifizierungsanfragen durch Ihr Verzeichnis leiten – LDAP oder AD zur Autorisierung. Wir empfehlen dies dringend.)
Bearbeiten oder erstellen Sie Ihre Datei /etc/raddb/server. Ein Muster finden Sie hier .
$ sudo vim /etc/pam_radius_auth.conf
Bearbeiten Sie die Zeile "other-server other-secret 3" und ersetzen Sie "other-server" durch die IP-Adresse oder den Hostnamen Ihres WiKID Strong Authentication-Servers (oder Radius-Server, wenn Sie einen zwischen WiKID und Ihren Servern eingerichtet haben) und ändern Sie "other -secret' das gemeinsame Geheimnis für diesen Netzwerk-Client.
Jetzt sind Sie bereit zum Testen. Ich empfehle Ihnen, während des Tests 'tail -f /var/log/secure' auszuführen.
Beachten Sie, dass wir keine Änderungen an der Kontoeinrichtung vorgenommen haben, sodass erwartet wird, dass der Benutzer ein lokales Konto auf dem Computer hat, oder Sie können das Konto so konfigurieren, dass es pam_ldap verwendet und auf Ihren AD/LDAP-Server verweist.
Remote-SSH ist jetzt extrem sicher. Kein Benutzer kann auf den Server zugreifen, ohne zuerst einen einmaligen Passcode vom WiKID-Server zu erhalten. Die beiden Authentifizierungsfaktoren sind der Besitz des WiKID-Tokens (und seines kryptografischen Schlüssels) und die Kenntnis der PIN. Da die PIN auf dem WiKID-Server validiert wird, ist es sehr einfach, einen Benutzer zu deaktivieren. Alles wird protokolliert und jeder Prüfer dürfte sehr zufrieden sein.
Darüber hinaus könnten Sie einen einmaligen WiKID-Passcode für den Root-Zugriff auf internen Computern benötigen. Erstellen Sie einfach eine neue Domain für su und bearbeiten Sie /etc/pam.d/su entsprechend. Auf diese Weise können Sie die Server auch zur Verwaltung in verschiedene Gruppen aufteilen. Einfach erstellen Wenn Sie beispielsweise eine Reihe von Servern für die Personalabteilung haben, auf die nur bestimmte Administratoren Root-Zugriff haben, können sie für eine bestimmte WiKID-Domäne konfiguriert werden, was eine feinkörnige Zugriffskontrolle und starke Authentifizierung ermöglicht. Weitere Informationen zur Zwei-Faktor-Authentifizierung finden Sie auf der WiKID-Website.
Links:
- Centos:http://www.centos.org
- PAM-RADIUS: http://freeradius.org/pam_radius_auth/
- WIKID Zwei-Faktor-Authentifizierung:https://www.wikidsystems.com