[Berlin-wireless] Verschiende OpenWRT Fragen

Steffen Dettmer steffen
So Jul 8 18:56:44 CEST 2007


Hi,

hier ein paar Antworten, nur der Vollständigkeit halber.

* Steffen Dettmer wrote on Sun, Jul 01, 2007 at 16:09 +0200:
>   1) Wie wird der Hostname gesetzt?

$ echo $HOSTNAME >/proc/sys/kernel/hostname 
$ nvram get hostname >/proc/sys/kernel/hostname 

Letzeres z.B. in /etc/init.d/rcS vor syslog start, z.B. als zweite
Zeile.

>   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.





Mehr Informationen über die Mailingliste Berlin