User mit beschränkten Rechten anlegen

little_skunk

Semiprofi
Thread Starter
Mitglied seit
17.08.2006
Beiträge
3.773
Hallo

ich möchte auf meinem NAS gern ein Server Programm laufen lassen. Das Programm ist noch in der Entwicklung und kann potentielle Sicherheitslücken haben. Ich würde dieses Programm gern isolieren. Es soll in einem LXC Container (Debian Jessi) laufen. Port 80 wird an den Container weitergeleitet. Jetzt habe ich allerdings noch zwei Probleme.

1.) Das Programm darf nicht unter root laufen. Das wäre mir zu unsicher. Am Ende wird der LXC Container übernommen und als Spambot missbraucht. Ich brauche also einen neuen User der so wenig Rechte wie möglich hat. Wie mache ich das?

2.) Der LXC Container darf keine Netzwerkverbindungen aufbauen. Ist es ausreichend dem neuen User einfach alle Befehle wie zum Beispiel wget zu verweigern oder ist dafür mehr notwendig?

Mit freundlichen Grüßen
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Port 80 wird an den Container weitergeleitet. Jetzt habe ich allerdings noch zwei Probleme.

1.) Das Programm darf nicht unter root laufen. Das wäre mir zu unsicher. Am Ende wird der LXC Container übernommen und als Spambot missbraucht.
Nur root kann auf Ports unter 1024 lauschen. Die einfachste Möglichkeit, das abzusichern, ist xinetd o.ä. auf diesem Port laufen zu lassen. Xinetd kann dann dein Programm unter einem beliebigen User aufrufen. Das hat zusätzlich den Vorteil, dass du keinen Daemon implementieren musst, darum kümmert sich xinetd.

2.) Der LXC Container darf keine Netzwerkverbindungen aufbauen. Ist es ausreichend dem neuen User einfach alle Befehle wie zum Beispiel wget zu verweigern oder ist dafür mehr notwendig?
Ich habe LXC noch nie in der Praxis benutzt, aber was man so liest, blockst du die Verbindungen vermutlich am besten mit der Firewall, d.h. iptables.
 
xinetd klingt schonmal sehr gut. Einfach eine neue Konfiguration für das Programm anlegen und dort gleich den gewünschten User eintragen. Wird das Programm dann automatisch gestartet wenn ich xinetd starte?

iptables sollte funktionieren. Der LXC Container braucht auch für root keine SSH Verbindung. Ich verbinde mich mit meinem NAS und nicht mit dem Container. Das wird dann intern über den Dienst geregelt. Demnach müsste meine Config sinngemäß folgendermaßen aussehen:
INPUT port 5000 ACCEPT
INPUT DROP
OUTPUT port 5000 ACCEPT
OUTPUT DROP

Damit sollte schonmal ein sehr guter Schutz vorhanden sein. Jetzt muss ich dem User nur noch die Rechte für alle möglichen Programme entziehen und nur geziehlt zum Beispiel Python erlauben. Anschließend mit Hilfe der dann zu erwartenden Fehlermeldungen langsam das eine oder andere Programm erlauben bis alles fehlerfrei läuft.
 
xinetd klingt schonmal sehr gut. Einfach eine neue Konfiguration für das Programm anlegen und dort gleich den gewünschten User eintragen. Wird das Programm dann automatisch gestartet wenn ich xinetd starte?
Normalerweise wird das Programm gestartet, wenn ein Client auf den Port zugreift. Aber da lässt sich viel konfigurieren. Hier gibt's einen kurzen Einstieg: https://wiki.ubuntuusers.de/xinetd.

Jetzt muss ich dem User nur noch die Rechte für alle möglichen Programme entziehen und nur geziehlt zum Beispiel Python erlauben. Anschließend mit Hilfe der dann zu erwartenden Fehlermeldungen langsam das eine oder andere Programm erlauben bis alles fehlerfrei läuft.
Ich bin mir nicht sicher, ob es Sinn macht, so weit zu gehen. Mit Python kann man schon praktisch jede Linux Systemfunktion aufrufen, dazu braucht es keine anderen Programme mehr.
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh