[Howto/Tutorial] Dropbear ssh für Android cyanogenmod konfigurieren

Du möchtest also per ssh auf dein Telefon. Das ist prinzipiell ab der Version 4.0.2 der cyanogenmod Software auf deinem Telefon möglich. Ab dieser Version ist der dropbear ssh server mit dabei. Dieser nutzt im Build von cyanogen das Verzeichnis /data/dropbear/.

Du musst nun folgendes tun:

Einen ssh key mit PuTTY oder Linux erzeugen. Für Putty gibts hier eine Anleitung.

Jetzt muss Du den ssh public key als Datei speichern und authorized_keys Datei auf der sdkarte speichern.

Jetzt kommen die Sachen im Terminal deines Telefons:

Werde root:

su - 

Lege das Verzeichnis /data/dropbear und /data/dropbear/.ssh an:

mkdir -p /data/dropbear/.ssh  

Kopiere die die Datei authorized_keys nach /data/dropbear/.ssh

cp /sdcard/authorized_keys /data/dropbear/.ssh/

Setze nun die richtigen Rechte:

chmod -R 644 /data/dropbear

Erzeuge nun einen passenden Hostkey (das kann einen moment dauern):

dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_hostkey

Optional kannst Du noch einen dss key erzeugen:

dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key

Jetzt musst Du Dir noch ein passendes Profil anlegen:

echo >>/data/dropbear/.profile "PATH=/usr/bin:/usr/sbin:/bin:/sbin \
:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin"

echo >>/data/dropbear/.profile "export PATH"

Fertig!

Jetzt kannst Du den dropbear Server das erste mal starten:

dropbear -v -F

Wenn alles gut ist siehst Du folgendes (oder so ähnlich):

TRACE: enter loadhostkeys
TRACE: enter buf_get_priv_key
TRACE: enter rsa_key_free
TRACE: leave rsa_key_free: key == NULL
TRACE: enter buf_get_rsa_priv_key
TRACE: enter buf_get_rsa_pub_key
TRACE: leave buf_get_rsa_pub_key: success
TRACE: leave buf_get_rsa_priv_key
TRACE: leave buf_get_priv_key
TRACE: enter buf_get_priv_key
TRACE: enter dsa_key_free
TRACE: enter dsa_key_free: key == NULL
TRACE: enter buf_get_dss_pub_key
TRACE: leave buf_get_dss_pub_key: success
TRACE: leave buf_get_priv_key
TRACE: leave loadhostkeys
[6343] Sep 18 11:53:35 Not forking
TRACE: listensockets: 1 to try
TRACE: listening on ':22'
TRACE: enter dropbear_listen
TRACE: dropbear_listen: all interfaces
TRACE: leave dropbear_listen: success, 1 socks bound

Nun kannst Du das erste mal ein ssh auf dein Telefon machen. In einem anderen Artikel beschreibe ich wie man den Dienst beim booten startet. Hattest Du nun die Hoffnung auf ein Login unterwegs möglich ist, muss ich dich leider, zumindestens für T-Mobile, entäuschen. Du bekommst im T-Mobile Netz keine öffentliche IP, sondern eine Private (NAT). Damit ist es nicht möglich von aussen auf dein Telefon zuzugreifen.

Ein Teil dieses Artikels ist im übrigen dem Wiki hier entnommen.

ModAJP tips+tricks

Ich Arbeite recht viel mit der Kombination aus Tomcat und Apache. Dazu benötigt man das das modajp (Ich weiß man kanns auch mit mod proxy machen). Hier mal ein paar Infos die ich mit der Zeit gelernt hab.

Basiskonfiguration

Theoretisch funktioniert der Kram recht easy, und zwar indem man mod_proxy und mod_proxy_balancer einschaltet und folgendes in die httpd.conf einträgt:

ProxyRequests Off

Das verhindert erstmal, das wir offener Proxy spielen, ganz, ganz, ganz, ganz … wichtig. Und nun brauchen wir noch den AJP Connect:

ProxyPass / ajp://127.0.0.1:8009/

Und fertig sind wir, wir haben jetzt einen AJP Connector auf das Loopbackinterface und Port 8009 konfiguriert. Dazu muss natürlich, in der server.xml des Tomcats, folgendes eingetragen sein:

<Connector port=“8009″ protocol=“AJP/1.3″ redirectPort=“8443″ />

Genau, ein AJP Connector.

Also funktioniert das ganze jetzt schon mal. Meiner Erfahrung nach, läuft es aber so einfach, gerade in Hochlastzeiten nicht zufriedenstellend. Deswegen ….

A bisl Tuning

Wir haben eben den ajp connector im Apache gemacht, diesem kann man wenn man mag noch ein paar hilfreiche Optionen mit auf den Weg geben. Getestet mit ein paar Milliarden zugriffen bisher ist folgendes:

ProxyPass / ajp://127.0.0.1:8009/ smax=5 max=20 ttl=10 retry=0 disablereuse=On

Das macht meiner Erfahrung nach die ganze Nummer erheblich stabiler.

Den Connector des Tomcats kann man dazu natürlich auch noch ein bischen anpassen, siehe dazu die Optionen des HTTP Connectors.

Server Tokens im Apache konfigurieren

Wie gewöhne ich dem Apache ab zuviel Informationen über sich Preis zu geben? Einfach

ServerTokens Prod

in die httpd.conf einfügen.

Wie sehe ich nun ob das was gebracht hat? Einfach ein fehlendes Dokument aufrufen. Wenn das sowas erscheint:

Not Found

The requested URL /dkwjhdwe was not found on this server.
Apache/2.2.2 (Fedora) Server at www.xxx.de Port 80

dann sieht man zuviel, nochmal checken bitte. Wenn das ganze allerdings so aussieht:

Error 404
tn.genano.de
Wed Jun 27 17:05:58 2007
Apache

Dann passt das.