sicherheit auf server: wie (root?!) einwählen ins i-net

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
michaa7
Beiträge: 4953
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

sicherheit auf server: wie (root?!) einwählen ins i-net

Beitrag von michaa7 » 31.03.2005 11:15:45

Ich möchte etwas besser verstehen, wie ich meinen server (debian-sarge) besser gegen das i.net abschirmen kann.

Derzeit nutze ich den server als router für meinen hauptrechner, daneben läuft ein edonkey-client unter einem user-account auf dem server.

Die einwahl ins netz (adsl-account bei der telekom) geschieht wie in der standartkonfiguration vorgesehn, nur versteh ich nicht WAS da eigentlich abläuft. Zum zeitpunkt der installation war ich ja wohl root (?), und seitdem wählt sich ja der server (wer, root? ein besonderer, vom system dafür vorgesehener user, oder wer?) bei jedem serverstart automatisch ins netz ein. Ist es sinnvoll. dies so zu lassen (oder wäre das starten unter einem weniger privilegiertem account sicherer. Falls ja, wie?)

Darüberhinaus starte ich als root per hand folgendes script:

Code: Alles auswählen

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Einmal abgesehen davon, dass noch keine ip-table-firewallregeln eingerichet sind, ist es sinnvoll dieses script als root zu starten oder wäre es besser für den ganzen netzwerkkram eine gesonderten user einzurichten (wobei aufwand und sicherheitszugewinn schon in einem vertretbaren verhältniss stehen sollten)

Zukünftig soll noch ne kleine persönliche hp und ein ftp-server mit stark eingeschränktem userkreis auf den server. ( zu diesem zweck werde ich mich dann mal mit chroot auseinandersetzen, wovon ich beslang nur glaube verstanden zu haben, dass es für derartige anwendungen eine besonders sichere umgebung schafft???)

Daneben läuft wie oben erwähnt ja edonkey unter einem unprivilegierten useraccount. Auch den mldonkey starte ich als user per hand. Ich hatte mir dazu wohl ein script geschrieben (bash), der user darf dieses jedoch nicht ausführen. Ich nehme an das bash zu mächtig für normaluser ist, und die bashausführung an rootrechte gekoppelt ist. Liege ich da richtig? Ist es sinnvoll und sicher dies mit "sh" anstelle von "bash" zu verknüpfen. Sollten also userscripte generell immer sh-scripte sein?

Ich hoffe mit der fülle von fragen auf grund ihrer grundsätzlichen zusammengehörigkeit hier gnade zu finden und nicht der "stell-pro-posting-nur-eine-frage-regel" zum opfer zu fallen;-)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 31.03.2005 11:30:37

puh, das ist harter Stoff..

ok mal aufdröseln:
Darüberhinaus starte ich als root per hand folgendes script:
die Befehle die darin ausgeführt werden MÜSSEN als Root getätigt werden.

chroot:

normalerweise gehst du ja vom Wurzelverzeichnis aus "/".. jetzt kannst du dir z.B. ein Unterverzeichnis machen

/test/

in dieses kommen ein paar wichtige Dateien (glaub es reicht sowas):

cp -r /bin /test

sodass du nun

/test/bin

besitzt.

wenn du nun ein

chroot /test

machst, dann ist dein Wurzelverzeichnis plötzlich "/test/" aber es sieht für dich wie "/" aus und du kommst auch nicht mehr "nach oben".. somit verbirgst du demjenigen, der in einer chroot Umgebung ist, alle Dateien außerhalb des "Käfigs"..

zur Bash:

nein auch ein normaler User darf Shellscripte schreiben. Das Problem liegt woanders (ohne Fehlermeldung kann ich aber nicht sagen wo).

Außerdem schau dir mal die "sh" an

Code: Alles auswählen

ls -l /bin/sh
es ist nur ein Link auf
/bin/bash ;-)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

LittleBoy
Beiträge: 718
Registriert: 30.04.2002 14:32:26

Beitrag von LittleBoy » 01.04.2005 12:48:02

Je mehr du physikalisch separierst, desto besser. Im Optimalfall laufen auf dem Rechner, der die Internetverbindung herstellt keine weiteren Prozesse. Grund: Angenommen es läuft auf dem selben Rechner ein mldonkey. Nu isses bei solchen Projekten so, dass Sicherheit nicht an erster Stelle steht. Wenn also ein Exploit für mldonkey existiert, kommt somit jemand auf diesen Rechner auf dem mldonkey läuft. Dann hat er meist auch direkt die Möglichkeit, die Firewall-Regeln zu manipulieren und hat so die volle Kontrolle.
Da sich die meisten Privatanwender wohl kaum zwei PCs aufstellen werden bleibt somit ein Hardware-Router oder eine Lösung wie in der ct neulich, wo das Gateway mit FIrewall in einerm Usermode-Linux eingesperrt wurde. Da du EInsteiger zu sein scheinst, würde ich auf eine solche fertige Lösung zurückgreifen.

Ein Mail- oder Webserver wird durch ein chroot imho nicht wirklich sicherere, bzw. der Aufwand ist imho viel zu groß im Vergleich zum Sicherheitsgewinn. Die FTP-Nutzer zu chrooten ist ganz sinnvoll, in diesem Fall kann man dann Verzeichnisse festlegen, in denen sich die Nutzer bewegen dürfen. Für Einsteiger wohl durchsichtiger ist dabei das virtual chroot, wie es z.B: von pure-ftpd angeboten wird.

Wenn du mldonkey über ein Skript startest (warum eigentlich - liegt doch als Debian-Paket vor) und der normale User das nicht darf, dann musst du dir mal die Rechte von dem Skript anschauen. Normalerweise gibts nichts, was der mldonkey an root-Rechten braucht. (Selbst wenn man ihn als root startet ändert er seine Rechte auf die eines Nutzers bei richtiger Konfiguration)

Antworten