[PATCH] modusers

mehle

Mitglied
Mitglied seit
26 Jan 2009
Beiträge
273
Punkte für Reaktionen
0
Punkte
0
Hi,

folgender Patch macht /tmp/shadow und /tmp/gshadow ausschliesslich r/w für root. Ohne diesem Patch sind diese Dateien weltlesbar, was mir natürlich nicht gefällt, wenn man Dienste bedenkt, die im Internet hängen.

Danke
Stephan
 

Anhänge

  • modusers-1.patch.bz2
    271 Bytes · Aufrufe: 9
Sollte man die Dateien, dann nicht gleich mit den richtigen Rechten einpacken oder ändert das nichts? Kommt man nicht auch sonst unter /mod and die Dateien?

MfG Oliver
 
Naja, die Dateien haben ja schon nicht mehr die richtigen Rechte. Also ein einfaches tar geht nicht mehr, da jeder von uns bereits diese Dateien mit den Rechten 644 hat.

In /mod (oder in /etc, ich habe gerade kein Zugang) liegt einfach nur ein Symlink auf /tmp/shadow. Also brauchen wir uns um diese Links nicht zu kümmern.

Ciao
Stephan
 
Klar ist in /etc nur ein Symlink, aber die Dateien werden ja aus /tmp/flash/users geholt.

MfG Oliver

edit:
fwmod:
Code:
...
echo "root:x:0:0:root:/mod/root:/bin/sh" > "${VARTAR_MOD_DIR}/var/tmp/passwd"
echo 'root:$1$$zO6d3zi9DefdWLMB.OHaO.:12332:0:99999:7:::' > "${VARTAR_MOD_DIR}/var/tmp
echo "root:x:0:" > "${VARTAR_MOD_DIR}/var/tmp/group"
echo "users:x:1:" >> "${VARTAR_MOD_DIR}/var/tmp/group"
touch "${VARTAR_MOD_DIR}/var/tmp/ethers"
touch "${VARTAR_MOD_DIR}/var/tmp/exports"
touch "${VARTAR_MOD_DIR}/var/tmp/gshadow"
chmod 644 "${VARTAR_MOD_DIR}/var/tmp/passwd" "${VARTAR_MOD_DIR}/var/tmp/group"
chmod 600 "${VARTAR_MOD_DIR}/var/tmp/shadow" "${VARTAR_MOD_DIR}/var/tmp/gshadow"
touch "${VARTAR_MOD_DIR}/var/tmp/onlinechanged"
...
MfG Oliver
 
Zuletzt bearbeitet:
Aber beim Laden der Konfiguration werden diese Dateien durch die im Flash gespeicherten Inhalte ersetzt. Bei mir hat die Datei shadow allerdings schon die Rechte 600, gshadow interessanterweise nicht (wobei dort auch nichts wichtiges drin steht).

Vielleicht sind die Rechte anders, wenn man noch eine ältere Konfiguration hat.

Die Frage ist, ob Freetz das dann korrigieren soll, oder ob jeder, dem es wichtig ist, selbst die Rechte ändert und dann abspeichert.
 
Interessanter weise sind beide Dateien bei mir mit 755 in /tmp gespeichert. Da ich die vorher nie angefasst habe, sind diese Rechte irgendwie vom System gekommen.

IMHO sollte das System die auch fixen.

Bei einem Test hatte ich /tmp/shadow auf 600 gesetzt. Nach einem Reboot war die wieder auf 755. Da diese Dateien interessant sind, sollte die Box sicherstellen, dass diese Dateien geschützt sind.

Ciao
Stephan
 
Imho kommen die Daten doch direkt aus der AVM-Firmware und werdne von Freetz nur editiert?
 
Dies mag ja sein, aber auch wenn die aus der AVM Firmware kommen, sollte Freetz sicherstellen, dass die nicht welt-lesbar sind. Bei der AVM Firmware mag das ja ok sein, aber mit Freetz fügen wir Programme hinzu, die Dienste im Internet anbieten. Demzufolge ändert sich die Gefährdungslage der Box erheblich (mit der Standard-AVM-Firmware wird erst einmal kein einzigster Dienst im Internet angeboten).

Eine Frage dennoch: ist diese Diskussion aus Interesse, oder gibt es Einwände gegen den Patch? IMHO macht der Patch keine Änderungen, die für irgend jemanden sichtbar sind. Es wird ausschliesslich die Sicherheit der Box erhöht - oder liege ich hier falsch?

Ciao
Stephan
 
Wie sieht es mit den Zeilen von oben aus? Soll ich da an den chmods gleich was mitändern?

MfG Oliver
 
Imho sollte man sich dann mit dem Problem auch an AVM wenden, denn diese verursachen dies und bieten definitiv auch Dienste an, die nach aussen gehen.
Klar, oder wir implementieren da,s und AVM hat dann in der nächsten Version alles angepasst, ohne selbst arbeiten zu müssen.
 
Bei einem Test hatte ich /tmp/shadow auf 600 gesetzt. Nach einem Reboot war die wieder auf 755.
Du solltest auch noch modsave aufrufen, um die Dateien dauerhaft zu speichern.

Soll ich da an den chmods gleich was mitändern?

Dort wird schon 600 für shadow und gshadow gesetzt. Allerdings sind in der TAR-Datei trotzdem nicht diese Rechte. Das liegt an dieser Zeile:
Code:
"$TAR" -c --owner=0 --group=0 [B]--mode=0755[/B] --format=oldgnu -C "$VARTAR_MOD_DIR" . > "$VARTAR_MOD" || exit 1
Das mode sollte hier entfernt werden. Es bringt nichts, vorher gezielt Rechte für Dateien zu vergeben und diese nachher zu überschreiben.

Unabhängig davon hat dies keinen Einfluß, wenn man bereits eine Konfiguration auf der Box gespeichert hat. Wir können aber für einige Versionen die Zugriffsrechte auf 600 setzen, so wie wir auch für einige Zeit Funktionen zum Konvertieren von alten Benutzer-Informationen mit drin hatten.

PS:
Es sollte möglich sein, die Dateien var/*/.dummy zu entfernen, um etwas Platz zu sparen. Die Verzeichnisse werden auch so angelegt (einschließlich var/tam, bei dem auch AVM keine .dummy Datei verwendet).

Das an AVM zu melden, wird wahrscheinlich nicht viel bringen. Wird das Remote-Paßwort überhaupt in der shadow Datei abgelegt? Das FTP-Paßwort zum Beispiel landet in der passwd. Deswegen wird auch nur passwd und nicht shadow vom ctlmgr überschrieben.
 
@RalfFriedl: Danke für das Auffinden des Basisproblems.

Weil wir aber gerade bei Passwörtern sind: Ich habe gerade gesehen, dass es die Umgebungsvariable MOD_HTTPD_PASSWD gibt, in der das MD5 Passwort von dem admin user des Webfrontends steht. Können wir diese Variable entfernen?

Danke
Stephan
 
Was genau meinst Du?
Wo gibt es diese Variable und wo soll sie entfernt werden?
Offensichtlich muß irgendwo daß Paßwort gespeichert sein.
 
Wenn ich bei meinem Webserver mit php phpinfo() aufrufe, werden auch die Umgebungsvariablen ausgespuckt. Dabei habe ich genannte Variable gefunden, die ein MD5 Hash eines Passworts enthält. Ich nehme mal stark an, dass dies das Passwort des admin users im Webfrontend ist.

Interessanter weise ist diese Umgebungsvariable auf der Kommandozeile nicht sichtbar.

Ciao
Stephan
 
Vielleicht noch ein Hinweis: suche mal die PID des MOD httpd und dann mache folgendes:

cat /proc/$PID/environ | grep MOD_HTTPD_PASSWD

Ich finde diese Variable auch in meiner lighttpd und php-cgi Instanzen obwohl die dort ja wohl nichts zu suchen hat.

Dies möchte ich gerne verhindern.

Danke
Stephan
 
Welche Umgebungsvariablen man mit PHP sieht, kann man in der php.ini festlegen. safe_mode und wie das ganze Zeug nicht heisst. Dies ist eine einfache Konfigurationssache, dessen sich der Admin eines Webservers bewusst sein sollte, bevor er Seiten und Zugriffe nach aussen freigibt.
 
Das hat seinen Grund darin, daß die Umgebungsvariable auf der Kommandozeile nicht gebraucht wird.
Allerdings ist es ein Problem, das vermutlich auch andere Programme betreffen könnte.
Der Grund ist der Konfigurationsmechanismus in modconf.

Versuch mal diesen Patch:
Code:
Index: root/etc/init.d/rc.webcfg
===================================================================
--- root/etc/init.d/rc.webcfg   (Revision 3233)
+++ root/etc/init.d/rc.webcfg   (Arbeitskopie)
@@ -35,8 +35,7 @@
        config

        echo -n "Starting $DAEMON_LONG_NAME..."
-       homedir=/usr/mww/
-       httpd -P "$PID_FILE" -p "$MOD_HTTPD_PORT" -c /mod/etc/$DAEMON.conf -h "$homedir" -r "Freetz"
+       webcfg -P "$PIDFILE"
        exitval=$?
        if [ "$exitval" -eq 0 ]; then
                echo 'done.'
Index: root/usr/bin/webcfg
===================================================================
--- root/usr/bin/webcfg (Revision 3207)
+++ root/usr/bin/webcfg (Arbeitskopie)
@@ -9,6 +9,7 @@
        exit 1
 fi

+alias export=
 . /mod/etc/conf/mod.cfg

 homedir=/usr/mww/
 
Ja aber warum schwirrt diese Variable in so vielen Programmen rum?

Ciao
Stephan
 
@FalfFriedl: ich kann deinen Patch erst morgen testen

Danke
Stephan
 
Zusätzlich sollten wir noch das machen:
Code:
--- root/etc/init.d/modlibrc    (Revision 3207)
+++ root/etc/init.d/modlibrc    (Arbeitskopie)
@@ -141,7 +141,9 @@
                        exit 1
                fi

+               alias export=
                . /mod/etc/conf/$DAEMON.cfg
+               unalias export
                ;;
 esac
Letztlich verbrauchen diese ganzen Variablen auch unnütz Platz im RAM der Box.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.