Ich bin neu bei Ansible. Die meisten VPS-Bereitstellungshandbücher, die ich bisher gesehen habe, tun dies:
- Deaktivieren Sie die Anmeldung von root
- Erstellen Sie einen neuen Benutzer, der sich nur mit
ssh
(kein Passwort) anmelden kann. - Fügen Sie den neuen Benutzer
wheel
mit kennwortloser Sudo- Berechtigung zur Gruppe hinzu
Ich verstehe (1) und (2), aber nicht (3).
Sicherlich ist passwortlos sudo
wie das Anmelden als root
? Ich verstehe den Nutzen (Bequemlichkeit), aber ist das nicht sehr unsicher?
Mir ist klar, dass Administratoren ihre Netzwerke auf verschiedene Arten betreiben, und dies kann als "subjektiv" bezeichnet werden, aber dies ist eine SEHR gängige Praxis. Sie wird sogar in verschiedenen offiziellen Ansible-Dokumenten sowie in Leitfäden gezeigt, die von Hosting-Unternehmen veröffentlicht werden. Es widerspricht dem gesunden Menschenverstand. Was ist die Logik dahinter?
Antworten:
Wenn das Dienstkonto passwortloses Sudo ausführen kann, müssen Sie den Zugriff auf dieses Konto schützen.
Wenn das Konto kein Kennwort hat und sich nur mit SSH-Schlüsseln anmeldet, wird dies erreicht, vorausgesetzt, Sie können den privaten SSH-Schlüssel auch sicher aufbewahren.
quelle
Der in (2) erstellte neue Benutzer kann sich nur mit dem SSH-Schlüssel und ohne Kennwort anmelden. Der SSH-Schlüssel ermöglicht den indirekten Root-Zugriff. Dies entspricht also nur dem Zulassen der Root-Anmeldung mit einem Schlüssel.
Da das Konto kein Passwort hat, ist es nicht möglich
sudo
, nach einem Passwort zu fragen. Außerdem muss Ansible in der Lage sein, Befehle auszuführen. Ein zusätzliches Kennwort am selben Ort wie der Schlüssel würde die Sicherheit nicht erhöhen.quelle
Das Problem ist, dass ansible für Administratoren und die Automatisierung bestimmt ist. Wenn Sie also ein Kennwort eingeben müssen, um ein Skript auszuführen, ist dies nicht der beste Weg. Es ist auch nicht sicher, das Passwort für sudo in einer Datei oder Datenbank zu speichern und es jedes Mal abzurufen, wenn das Playbook ausgeführt wird. Die Kombination von passwortlosem sudo und der Authentifizierung mit ssh Keys ist daher die beste Methode, um Sicherheit und keine richtigen Probleme durch Ausführen des Playbooks zu gewährleisten. Auch Sie sind Administrator und wissen, was Sie im Playbook programmieren. Das Playbook kann also Ihre Server nicht zerstören.
quelle