[Berlin-wireless] Verschiende OpenWRT Fragen / root-passwort

Wolfram Eifler adagio
Mi Jul 11 15:14:42 CEST 2007


hi,

bei mir gibt es zumindest einen Node (ff 2.4.5), der ganz entschieden  
der Meinung ist,
verschiedene Passworte auf web <-> ssh haben zu wollen.
Die Situation ist entstanden mit:
1. installieren, per web-frontend das web-passwort vergeben (damit  
gilt es erstmal für beides)
2. ssh-login auf dem Node und auf der Kommandozeile per "passwd"  
neues root-passwort setzen.

ist bei mir eher Zufall gewesen, der node funktioniert seit ca. 1  
Jahr stabil und hat mehrere
ff-firmware-upgrades ohne rumzicken mitgemacht (bei welcher Version  
ich mit dem Spiel angefangen habe
weiss ich leider nicht mehr).

PS: seit wann kann mir nationales Recht vorschreiben, welche  
Passworte ich auf welchem
Zugangsweg vorschalte .... *staun*.

Am 08.07.2007 um 18:56 schrieb Steffen Dettmer:

>> (...)

>>   5) Wie kriegt man es hin, dass das Webfrontend nicht das root  
>> password
>>      verwendet?
>
> MACHT DAS NICHT. Es wird in whiterussion nicht direkt unterstützt und
> kann zu komischen Effekten führen, gegen nationales Recht  
> verstossen und
> Ihr Baby verletzen.
>
> Hier bisschen ausführlicher, was man nicht machen soll:
>
> - statt "passwd -l" (Sicherheitslücke; das entfernt das Passwort,
>   anstatt es zu sperren)
>   $ vi /etc/passwd
>   und encrypted PW string kaputt machen (z.B. Zeichen einfügen,  
> dass er
>   länger wird)
>
> - Encrypted PW string erzeugen
>     $ httpd -m "pass"
>     $1$$uqbusDeGY2YWqg.T2S1100
>   (Achtung, salting scheint nicht zu funktionieren, aber egal)
>   Statt pass natürlich das Passwort, z.B. "8fljA0qy", aber das wird  
> dann
>   eh im Klartext über HTTP übertragen ;)
>
> - $ vi /etc/httpd.conf
>   alle /cgi-bin/webif Zeilen auskommentieren, dafür einfügen:
>     /cgi-bin/webif:admin:$1$$uqbusDeGY2YWqg.T2S1100
>   Klartextpasswort geht auch:
>     /cgi-bin/webif:admin:pass
>
> - $ killall httpd
>   $ /etc/init.d/S50httpd
>
> passwd -l geht nicht weil:
> 	/usr/lib/webif/webif.sh
> 	grep 'root:!' /etc/passwd
> (ich finde, dass ist ein bug, weil das passwd -l erzeugt)
>
> geht nur mit busybox httpd:
> 	_passwd()
> 	grep '^root:' /etc/passwd | cut -d: -f1,2 > $cgidir/.htpasswd
>
>
> Achtung: wenn über das webif das rootpasswort geändert wird, gibt es
> dieses rootpasswort, es gilt aber nicht fürs webif.
>
>
> chmod 0 /www/cgi-bin/webif/system-password.sh
>
> macht die Passwort-Änderungs-Seite kaputt, mit klicken geht das dann
> nicht mehr, aber wenn man sich händisch ne URL zusammenbaut geht es  
> doch
> (ist also nicht sicher, sorgt nur dafür, dass es nicht aus Versehen
> passiert)
>
> Weil passwd ein link auf busybox ist, kann man das vermutlich auch  
> nicht
> so einfach unbenennen, aber man kann in /usr/lib/webif/webif.sh
> die Stelle:
>
>                         echo '<pre>'
>                         (
>                                 echo "$FORM_passwd1"
>                                 sleep 1
>                                 echo "$FORM_passwd2"
>                         ) | passwd root 2>&1 && apply_passwd
>                         echo '</pre>'
>
> ändern, vielleicht in
>
>                         echo '<pre>'
> 			echo 'Permission denied.'
>                         echo '</pre>'
>
> oder ein if drum basteln oder so, just BTW, mir reicht 404 Not Found
> nach "chmod 0" :-)
>
>>      webif/system-*sh würde ich "chmod 0" disablen oder so, das  
>> ist mir zu
>>      mächtig und brauch ich nicht. Auf den Rest würde ich inzwischen
>>      aber nicht mehr gern verzichten (ist schon schick das  
>> webif! :-))
>
> chmod 0 /www/cgi-bin/webif/system-*sh
> schaltet das schon aus, aber die Meldung (HTTP 404) wird hässlich.  
> Aber
> geht erstmal.
>
>>      DHCP MAC Addressen würde ich ggf. gern mit dem Webfrontent
>>      hinzufügen.
>>      Kann man sich das syslog angucken `logread'? Finde das
>>      nicht. Für meine Spezialanforderung würde ich einfach sowas wie
>>      "logread|grep DHCPDISCOVER" unten in network-hosts.sh reinhacken
>>      (falls ich das hinkriege ;)). Geht das besser?
>
> man kann jedenfalls in network-hosts.sh unten (vor "footer") einfügen
>
> 	echo 'DHCPDISCOVER<br>'
> 	echo '<pre>'
> 	logread|grep DHCPDISCOVER
> 	echo '</pre>'
>
> arm und billig - aber geht erstmal.
>
> Ein bisschen schöner geht's auch so:
>
> man lege sich folgende Datei an /www/cgi-bin/webif/syslog.sh:
>
> #!/usr/bin/webif-page
> <?
> . /usr/lib/webif/webif.sh
> header "Info" "Syslog" "@TR<<Syslog>>"
> ?>
>
> <pre>
> <? logread ?>
> </pre>
>
> <? footer ?>
> <!--
> ##WEBIF:name:Info:20:Syslog
> -->
>
> und hat einen sylog-Knopf.
>
> Noch schöner gehts hier:
>
> http://www.bitsum.com/xwrt/full/log_syslog.png
>
> siehe hier
>
> http://x-wrt.org
>
> dass kann scheinbar vieeeeellllllll mehr, ist aber wohl nicht fertig.
>
>>   6) Wird SSH ohne PasswordAuthentication unterstützt (und wie richte
>>      ich es ein)?
>
> Da gibt es eine Kommandozeilenoption, muss man nur finden :)
>
> http://downloads.openwrt.org/people/nico/man/man8/dropbear.8.html
>
> 	-s
> 		Disable password logins.
>
> Also einfach ein "-s" hinten in /etc/init.d/S50dropbear einfügen und
> Passwort funktioniert nicht mehr.
>
>
>>   7) Wie günstig reflashen und backup restoren?
>>
>>      cat bak.tar.gz | gunzip | ssh root at ikarus tar xf - -C /
>>      (jedenfalls fast, praktisch leider auch nicht, siehe backup- 
>> Frage-Mail).
>>      Das geht sicherlich einfacher/schöner bzw. überhaupt. Hat  
>> jemand Tips?
>
> Mein tar kann "-X" (exclude-from=FILE), weiss nicht, ob das default  
> ist,
> damit müsste man das gebastelt kriegen.
>
> Wie es richtig geht, steht hier:
>
> http://wiki.openwrt.org/BackupAndRestore
>
> (kurz: man zieht /dev/mtdblock/4 als image nach mount -o remount,rw)
>
> oki,
>
> Steffen
>
> -- 
> Dieses Schreiben wurde maschinell erstellt,
> es trägt daher weder Unterschrift noch Siegel.
>
> _______________________________________________
> Berlin mailing list
> Berlin at berlin.freifunk.net
> http://lists.berlin.freifunk.net/cgi-bin/mailman/listinfo/berlin





Mehr Informationen über die Mailingliste Berlin