Neuer Webserver: Welche Benutzerkonten muss ich erstellen und welche Berechtigungen muss ich dafür bereitstellen?

Neuer Webserver: Welche Benutzerkonten muss ich erstellen und welche Berechtigungen muss ich dafür bereitstellen?

Dies ist eine Fortsetzung meiner FrageHier.

Ich richte den ersten Webserver ein und bin am Überlegen, welche Benutzerkonten ich erstellen und welche Berechtigungen ich für mehr Sicherheit bereitstellen soll. Unten sehen Sie, was ich habe.

Für 2 Entwickler habe ich 2 Konten (und sie sind der zusätzlichen Gruppe hinzugefügt devs) und nur sie dürfen per SSH auf den Server zugreifen. Für die Webanwendung (basierend auf Django) habe ich 1 normalen Benutzer erstellt app(ich habe ihn nicht als --systemBenutzer konfiguriert und er gehört zur Gruppe app) mit Shell-Zugriff. Die 2 Entwickler werden nach der SSH-Verbindung zum Server per su auf appalle Updates zugreifen und die Anwendung starten/stoppen. Der Benutzer appdarf nichts ausführen (blockiert, weil er in using sunicht zur Gruppeneinstellung hinzugefügt wurde ). Ich habe außerdem ein drittes Konto ohne Berechtigungen für Backup-bezogene Aufgaben, bei denen ein Cron-Job per SSH Protokolldateien, Status usw. abruft./etc/pam.d/supam_wheel.sosu

Sagen Sie mir Bescheid, wenn Sicherheitsaspekte verbessert werden müssen. (PS: Ich bin hier ein Neuling)

Antwort1

suerfordert die Weitergabe eines Passworts. Ich bevorzuge sudo. Entwickler würden also entweder ausführen, um als sudo -u app commandauszuführen , oder ausführen , um eine interaktive Shell als zu starten . Möglicherweise , wenn Sie die Shell von auf etwas wie /bin/false oder /bin/true eingestellt haben .commandappsudo -u app -iappsudo -u app -i /bin/bashapp

Wenn sie keine vollständige Shell als App benötigen, sondern nur die App neu starten müssen, können Sie die Befehle einschränken, die sie als App ausführen können. Verwenden Sie eine Standard-ACL für die Verzeichnisse, auf die sie zugreifen müssen, die den Entwicklern und der App Zugriff gewährt, damit Sie keine Probleme mit den Dateisystemberechtigungen haben. Meiner Meinung nach müssen Sie das Prinzip der geringsten Privilegien befolgen. Wenn sie es nicht tun müssen, geben Sie ihnen keinen Zugriff darauf.

Normalerweise verwende ich lieber nur Schlüssel für SSH. Wenn Sie das können, deaktivieren Sie die Passwörter für die Entwickler und legen Sie die Sudo-Regeln so fest, dass kein Passwort erforderlich ist. Dann braucht niemand mehr Passwörter und somit kann auch kein Passwort offengelegt, verloren oder zurückgesetzt werden.

Leseaufgabe für heute Abend, da es für diesen Beitrag etwas zu viel ist: „Wie funktionieren Dateisystem-ACLs?“ und „Wie konfiguriere ich sudo?“. Vielleicht gefolgt von der Verwaltung von SSH-Schlüsseln.

verwandte Informationen