Legacy-Quellcodeverwaltung: CVS unter xinetd
Wir haben ein Team, das die alte Quellcodeverwaltung verwendet: cvs. Wir führen cvs pserver unter xinetd aus (Konfigurationsdatei unten).
Prüfkennzeichen
Bei einer Sicherheitsüberprüfung wurde ein Fehler gemeldet: „Stellen Sie sicher, dass der CVS-Server nicht als Root ausgeführt wird.“
Frage:
Kann ich den „cvs pserver“ sicher sperren, indem ich „user=root“ durch „user=cvs“ ersetze? Gibt es irgendwelche schädlichen Nebenwirkungen oder Fallstricke?
Hinweis: Der Benutzer „cvs“ besitzt alle Dateien im „CVS-Stammverzeichnis“ „/var/cvs/cvs“.
Ich frage, weil ich die gesamte jahrzehntealte Dokumentation durchsucht habe und alle Beispiele „user=root“ enthalten und in keinem vorgeschlagen wird, den Parameter „user=“ zu ändern, um die Sicherheit zu erhöhen.
Aktualisieren: Ich habe es probiert. Es hat funktioniert. Keine Probleme.
Danke
Beispiel: cvspserver-Konfigurationsdatei
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
Antwort1
Sie sollten ihren Rat unbedingt befolgen. Es ist ein äußerst guter Rat.
Im Allgemeinen müssen Sie dabei sicherstellen, dass der Daemon über ausreichende Rechte für seine Aufgabe verfügt. In diesem speziellen Fall bedeutet das höchstwahrscheinlich nur, dass er bereits Eigentümer ist. Mein Vorschlag wäre, Ihr Repository zu sichern und dann einfach die Änderung vorzunehmen.
Dies funktioniert so, dass xinetd (oft als Root ausgeführt) die Berechtigungen aufhebt und dann /usr/bin/cvs mit stdin und stdout ausführt, die auf den Socket gerichtet sind, den xinetd verwaltet. Das ist wirklich nichts Besonderes. CVS ist recht einfach und sollte keine Berechtigungen erfordern, außer die Möglichkeit, die Dateien unter seinem Root zu bearbeiten.