Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> sshd unter optware/ipkg auf dem CH3WNAS: EAFNOSUPPORT Awaynick in ZNC: 30 Sekunden Wartezeit verkürzen :: HP TODO: BlockSysUserInstall.exe
sshd unter optware/ipkg auf dem CH3WNAS: EAFNOSUPPORT
Verfasst am: 26.08.2010, 12:14   Autor: killerbees19
Einige hatten es gestern im IRC vermutlich mitbekommen: Ich beschäftigte mich fast ausschließlich mit meinem zweiten NAS - dem CH3WNAS von Conceptronic (Grab'n'Go Wireless NAS Media Store). Unabhängig davon, dass man nur über Umwege brauchbare Anleitungen und Programme findet (dazu schreibe ich in den nächsten Tagen noch etwas), schaffte ich es einfach nicht auf den sshd von optware/ipkg zuzugreifen. Der steinige Weg, optware/ipkg zu installieren ist in den nächsten Tagen vielleicht noch einen Blogeintrag wert...

Das erste Problem war, dass man die Rechte der RSA und DSA Keys in /opt/etc/openssh ändern muss, da diese standardmäßig auf 0777 standen. Danach wurde es allerdings lustig: Der sshd lief, lauschte auf der richtigen IP, am richtigen Port, aber ich konnte keine Verbindung herstellen. Der Port war zwar erreichbar, aber die Verbindung wurde sofort wieder beendet. An der von Haus aus fehlerhaften passwd konnte es nicht liegen, die wird bereits bei jedem Neustart durch den das Script für den telnet Server gepatcht. Die Debug Ausgabe vom zugreifenden SSH Client brachte mich auch nicht weiter. Also startete ich den sshd im Debug Modus und danach auch über strace:

Code:
# /opt/sbin/sshd -Dde
debug1: sshd version OpenSSH_5.5p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/opt/sbin/sshd'
debug1: rexec_argv[1]='-Dde'
socket: Address family not supported by protocol
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
reexec socketpair: Address family not supported by protocol


Die letzte Zeile zeigt hier schon das Problem, denn die wiederholt sich bei jedem Verbindungsversuch. strace bestätigt das dann nochmals:

Code:
socketpair(PF_FILE, SOCK_STREAM, 0, 0x7ffffd08) = -1 EAFNOSUPPORT (Address family not supported by protocol)


An IPv6 liegt es schon mal nicht, das wird vom Kernel nicht unterstützt, und aber auch nirgends verwendet. Nach einigen Stunden (!) google'n fand ich in einem Forenbeitrag dann die Lösung:

Kaj hat Folgendes geschrieben:
Michael found that you can prevent socketpair() calls with an undocumented -r option and sshd then works:

http://forum.syllable.org/viewtopic.php?t=1362


Und tatsächlich: Mit -r funktioniert alles problemlos! winken

Code:
[...]

Connection from 192.168.***.*** port 39582
debug1: Client protocol version 2.0; client software version OpenSSH_5.2

[...]


Einfach in der /opt/etc/init.d/S40sshd dauerhaft anpassen Wink

Beim nächsten Login meckert er allerdings immer rum, dass das Passwort veraltet ist und geändert werden muss. Dazu zwingt mich der sshd auch, indem er die /usr/sbin/passwd ausführt und danach die Verbindung beendet. Ich konnte mich also noch immer nicht einloggen. Grund dafür ist eine schlecht aufgesetzte /etc/shadow. Diese kann man durch das /mnt/HD_a2/fun_plug Script aber relativ einfach dauerhaft anpassen:

Code:
# shadow Datei anpassen, da sonst der sshd immer das Passwort ändern will...
sed -i -e 's/:0:0:99999:7:::/:::::::/' /etc/shadow


Bitte unbedingt den richtigen Pfad zu sed angeben, falls er nicht in $PATH enthalten ist! Und erst nach den Zeilen für den telnet Server eintragen. Diese Zeile deaktiviert alle Überprüfungen für abgelaufene Passwörter. Danke für den Denkanstoß, TheXception. Nach einem Neustart sollte alles funktionieren, vorausgesetzt man aktiviert den sshd noch dauerhaft in der fun_plug:

Code:
# sshd starten
/opt/etc/init.d/S40sshd


Nach all dem Ärger (fast alles braucht Anpassungen) überlege ich mir allerdings wirklich, das NAS in ein Debian zu chroot'en, soll angeblich nicht so schwierig sein Cool

Als Abschluss noch mein persönliches fun_plug Script, relativ brauchbar mittlerweile Very Happy

Code:
#!/bin/sh

# dmesg
touch /mnt/HD_a2/log/dmesg.out
chmod 0777 /mnt/HD_a2/log/dmesg.out
dmesg > /mnt/HD_a2/log/dmesg.out

# ash/busybox linken
if [ ! -e /mnt/HD_a2/system/bin/ash ]
then
   ln -s /mnt/HD_a2/system/bin/busybox /mnt/HD_a2/system/bin/ash
fi

# ...
if [ ! `grep root /etc/shadow` ]
then
   echo kontroll.`grep admin /etc/shadow` >> /etc/shadow
   /mnt/HD_a2/system/bin/sed -i -e 's/kontroll.admin/root/' /etc/shadow
fi

# telnet starten
/mnt/HD_a2/system/bin/sed -i -e 's/root:.*/root:x:0:0:Linux User,,,:\/:\/mnt\/HD_a2\/system\/bin\/ash/' /etc/passwd
cd /dev && /mnt/HD_a2/system/bin/busybox makedevs ptyp c 2 0 0 9
cd /dev && /mnt/HD_a2/system/bin/busybox makedevs ttyp c 3 0 0 9
/mnt/HD_a2/system/bin/busybox telnetd &

# Optware vorbereiten
echo "# Optware (by /mnt/HD_a2/fun_plug)" >> /etc/profile
echo "export PATH=$PATH:/opt/sbin:/opt/bin:/mnt/HD_a2/system/bin:/mnt/HD_a2/system/scripts" >> /etc/profile
if [ ! -e /opt ]
then
   ln -s /mnt/HD_a2/opt /opt
fi

# # Auf "0" beim Port 12345 lauschen, für einen sauberen Shutdown
# if [ -e /mnt/HD_a2/system/scripts/shutdown_listener.sh ]
# then
#    /mnt/HD_a2/system/scripts/shutdown_listener.sh &
# fi

# shadow Datei anpassen, da sonst der sshd immer das Passwort ändern will...
/mnt/HD_a2/system/bin/sed -i -e 's/:0:0:99999:7:::/:::::::/' /etc/shadow

# sshd starten
/opt/etc/init.d/S40sshd

#kill legacy upnp
kill -9 `pidof upnp`

# MediaTomb starten
if [ -e /mnt/HD_a2/system/scripts/start-mediatomb.sh ]
then
   /mnt/HD_a2/system/scripts/start-mediatomb.sh &
fi

# LigHTTPd und PHP 5.1 starten
/mnt/HD_a2/system/share/lighttpd/lighttpd -f /mnt/HD_a2/system/share/lighttpd/lighttpd.conf -m /mnt/HD_a2/system/share/lighttpd &



MfG Christian

Dieser Beitrag wurde insgesamt 7 mal geändert. Zuletzt am 26.08.2010, 12:20.


Autor Nachricht
Für diesen Beitrag können zur Zeit keine neuen Kommentare verfasst werden.

Kontaktiere den Autor des Beitrages, falls du Fragen dazu hast.


 

Verwendete Zeitzone: CET (Europe/Berlin)
Aktuelles Datum & Uhrzeit: 13.01.2025, 21:43
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

Hosted by netcup
 
 
[ happytec.at | blog.happytec.at | forum.happytec.at | esports.happytec.at ]