Ticket #714 (closed enhancement: fixed)

Opened 5 months ago

Last modified 4 months ago

UMURMUR package

Reported by: sf3978 Owned by: er13
Priority: normal Milestone: freetz-1.2
Component: packages Version: devel
Severity: normal Keywords: umurmur
Cc: Product ID:
Firmware Version:

Description

Nach einer Idee und entscheidenden Vorleistungen (Makefile's, etc.) von blubber12345 (siehe hier:  klick), habe ich die Dateien für das Paket von  umurmur (binary only), erstellt.

Attachments

umurmur.patch Download (10.5 KB) - added by sf3978 5 months ago.
umurmur_dyn.patch Download (6.4 KB) - added by sf3978 5 months ago.
umurmur_dyn_lib_gen_key.patch Download (6.9 KB) - added by sf3978 5 months ago.
umurmur.cgi Download (1.2 KB) - added by sf3978 4 months ago.
umurmur_cgi_cert.patch Download (10.1 KB) - added by sf3978 4 months ago.
umurmur_WEB_IF.png Download (129.3 KB) - added by sf3978 4 months ago.
umurmur.cgi.txt Download (1.2 KB) - added by sf3978 4 months ago.
rc.umurmur.txt Download (0.9 KB) - added by sf3978 4 months ago.
umurmur_key.def Download (0.6 KB) - added by sf3978 4 months ago.
umurmur_crt.def Download (0.8 KB) - added by sf3978 4 months ago.
new_rc.umurmur.txt Download (1.2 KB) - added by sf3978 4 months ago.
config.txt Download (26.3 KB) - added by sf3978 4 months ago.
log_4621_trunk_280210_2126.txt Download (9.2 KB) - added by sf3978 4 months ago.
proper_rc.umurmur.txt Download (1.3 KB) - added by sf3978 4 months ago.
proper_umurmur_key.def.txt Download (0.6 KB) - added by sf3978 4 months ago.
proper_umurmur_crt.def.txt Download (0.8 KB) - added by sf3978 4 months ago.
umurmur.diff Download (7.5 KB) - added by sf3978 4 months ago.
proper_umurmur.diff Download (7.3 KB) - added by sf3978 4 months ago.
new_proper_umurmur.diff Download (7.3 KB) - added by sf3978 4 months ago.

Change History

Changed 5 months ago by sf3978

  Changed 5 months ago by er13

bin nur drübergeflogen, eine Sache gefällt mir schon jetzt nicht, bitte libconfig & polarssl als separate Library-Pakete machen, dann reden wir weiter.

Ist polarssl nicht Nachfolger von irgendeiner anderen ssl-library, die wir schon haben, dann parallel bitte schauen, ob diese abgelöst werden kann…

  Changed 5 months ago by sf3978

Statt polarssl könnte man openssl (wie bekannt in Freetz vorhanden). Aber hier hat man ja bewusst polarssl aus folgendem Grund genommen:

PolarSSL vs OpenSSL
PolarSSL uses a lot less RAM memory than OpenSSL:
    * uMurmur linked to PolarSSL lib with 7 connected users uses ~900 Kb (code + data). Each new connection increases mem usage by ~60-70 kB.
    * uMurmur linked to OpenSSL lib with 7 connected users uses ~4 Mb (code + data). Each new connection increases mem usage by ~400 kB. 

Library-Pakete habe ich noch nie erstellt. Da muss ich mich erst einarbeiten.;)

  Changed 5 months ago by oliver

Replying to er13:

Ist polarssl nicht Nachfolger von irgendeiner anderen ssl-library, die wir schon haben, dann parallel bitte schauen, ob diese abgelöst werden kann…

[UPDATE 2008-12-31] As of now, XySSL is no longer maintained by Christophe
Devine. The current project manager is Paul Bakker, and the new site can be
accessed at: http://polarssl.org/

Wird von xrelyad benötigt.

  Changed 5 months ago by sf3978

Ich habe den Patch für umurmur überarbeitet. Er funktioniert mit den von mir erstellten libraries (polarssl und libconfig) und wird auch mit der von er13 gefixten polarssl funktionieren.;) Das mit der "tools/external" habe ich vergessen. Danke er13. Das binary für umurmur ist jetzt wesentlich kleiner (dynamisch gelinkt):

> file packages/umurmur-0.2.2/root/usr/bin/umurmurd
packages/umurmur-0.2.2/root/usr/bin/umurmurd: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), stripped

Ohne diesen Eintrag "$(FREETZ_BASE_DIR)/root/usr/lib/freetz/lib*.so" in den *.mk-Dateien, werden die libraries aus dem Verzeichnis "usr/lib/freetz", bei meinen Lib-Paketen nicht gelöscht.

Changed 5 months ago by sf3978

  Changed 5 months ago by oliver

Sollten wir auch eine OpenSSL Variante anbieten? ( OpenWRT)

  Changed 5 months ago by sf3978

Ich denke nicht, denn umurmur mit OpenSSL auf der Box, ist nicht ausreichend ressourcenschonend. OpenWRT wird u. a. auch auf leistungsfähigerer Hardware, als die FritzBoxen, installiert. Deshalb macht es dort evtl. Sinn, ein umurmur mit OpenSSL Variante zu haben.

Changed 5 months ago by sf3978

  Changed 4 months ago by sf3978

Ich wollte ein Webinterface für umurmur erstellen. Mit der Sprache will es aber nicht funktionieren. Folgende Meldung wird im WEB-IF angezeigt: *** error: language not set *** Im Anhang meine "umurmur.cgi"-Datei.

Changed 4 months ago by sf3978

  Changed 4 months ago by oliver

Wie man das geschickt auf der Box macht kann ich dir gar nicht sagen. Die Sprache wird von fwmod verarbeitet. Dabei fliegt alles bis auf den Inhalt zwischen den " " der ausgewählten Sprache raus. Auf der Box soll also nicht mehr de:"foobar" en:"foo" stehen, sondern nur noch foobar oder foo.

Normalerweise haben wir keine Versionsnummern in den Webseiten.

  Changed 4 months ago by sf3978

Danke für die Anwort. Das Problem ist, dass auf der Box z. B.: $(lang de:"Starttyp" en:"Start type") steht.

  Changed 4 months ago by sf3978

Ich habe meinen Fehler gefunden. Im Ordner "files" hat die versteckte Datei ".language" gefehlt.

  Changed 4 months ago by sf3978

Jetzt funktioniert es so wie es soll. Im Anhang der Patch mit dem Webinterface.

Changed 4 months ago by sf3978

  Changed 4 months ago by er13

Ich habe einige Fragen bzw. Anmerkungen:

1) Ist es wirklich gut, Schlüssel/Zertifikat beim Bauen immer wieder neu zu generieren? Sollte meiner Meinung nach genauso wie bei lighttpd, vsftpd, stunnel, xrelayd und wie sie alle heißen gelöst werden. Es gab schon ein Ticket, dass man alle Zertifikate an einer zentralen Stelle verwaltet, das ist aber ein etwas anderes Thema.

2) Könnte man den Daemon auch per start-stop-daemon starten und dabei eine piddatei anlegen? Bin kein Fan von killall und pidof…

3) Wozu ist die make/umurmur/files/root/etc/umurmur/dummy Datei da?

  Changed 4 months ago by sf3978

Zu 1) Ich finde das Generieren beim Bauen gut, weil man dann Schlüssel und Zertifikat im RO-Bereich (etc…) speichern kann.

Zu 2) Mit "umurmurd -p <pidfile>" (siehe Aufrufparameter) wird eine piddatei angelegt.

Zu 3) Mit der dummy Datei wird mit diff und patch, der Ordner umurmur erstellt. OK, es gibt mit Sicherheit eine elegantere Lösung.

Changed 4 months ago by sf3978

  Changed 4 months ago by er13

  • severity changed from trivial to normal

Zu 1) Na ja, wenn man es im RO-Bereich ablegen möchte, kann man es doch einfach unter root ablegen bzw. aus fwmod_custom es dorthin kopieren. Man muss es doch nicht jedes Mal beim Bauen neu generieren, es reicht einmal. Dann braucht auch die Gegenseite, es nicht jedes Mal neu zu der Liste der vertrauenswürdigen hinzuzufügen.

Zu 2) Könntest Du bitte den -p Parameter in das rc-Script übernehmen und den Daemon analog anderen Daemons, die die Piddatei nutzen, starten/stoppen. Es lassen sich dann viele Funktionen aus /etc/init.d/modlibrc nutzen. Wenn ich mich jetzt nicht irre, brauchst Du dann nur start selbst implementieren, alles andere sind Aufrufe der Funktionen aus modlibrc.

Und Andreas hat in r4572 eine neue Funktion eingeführt, um *_chk Variablen zu setzen. Könntest Du diese bitte verwenden. Danke!

  Changed 4 months ago by er13

(In [4574]) * add new package umurmur, by sf3978 (binary only, web-interface/startup-script are on the way) * refs #714

  Changed 4 months ago by er13

@sf3978: habe jetzt den Teil, wo ich drüber geschaut habe, committed, kannst Dich ums Web-Interface und Startup-Script kümmern.

  Changed 4 months ago by er13

  • owner set to er13
  • priority changed from low to normal
  • status changed from new to assigned

  Changed 4 months ago by sf3978

@er13: Danke für das committen von umurmur. Ich werde am kommenden Wochenende versuchen, deine Vorschläge für umurmur.cgi und rc.umurmur, umzusetzen.

  Changed 4 months ago by oliver

  • milestone changed from freetz-1.3 to freetz-1.2

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

Im Anhang die geänderte umurmur.cgi und rc.umurmur.

Changed 4 months ago by sf3978

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

Für den Schlüssel und das Zertifikat habe ich versucht ein WEB-IF (z. B. wie beim vsftpd) zu erstellen. Die *.def-Dateien werden aber nicht berücksichtigt. Müssen die noch irgendwo zentral eingetragen werden? Ich habe das Dateisystem des trunk durchsucht, aber betr. *.def-Dateien nichts gefunden

Changed 4 months ago by sf3978

  Changed 4 months ago by oliver

Schau dir mal das dnsmasq package an. Du musst die Datei im rc-Skript registrieren.

deffile='/mod/etc/default.dnsmasq/dnsmasq_extra.def'
[ -r "/tmp/flash/dnsmasq/dnsmasq_extra.def" ] && deffile='/tmp/flash/dnsmasq/dnsmasq_extra.def'
modreg file 'dnsmasq__extra' 'Dnsmasq: extra' 0 "$deffile"

  Changed 4 months ago by sf3978

@oliver: Vielen Dank für die Hilfe bzw. den Hinweis. Ich habe das rc-Skript geändert (siehe Anhang) und wollte es mit der neuen umurmur-Version (0.2.4) testen. Leider funktioniert die Box nicht mit dieser neuen umurmur-Version (d. h. auch ohne Änderungen/Ergänzungen nicht, wie ausgecheckt). Nach dem Flashen des Images sind alle Freetz-Dienste nicht mehr erreichbar. Nur die Ports 80 und 8080 der Box sind offen. Der trunk mit dem umurmur (0.2.2) auf meiner Box funktioniert, ist die Revision 4587. Ich werde das rc-Skript und die def-Dateien mit diesem trunk testen.

Changed 4 months ago by sf3978

  Changed 4 months ago by er13

@sf3978: hmm, habe jetzt nicht verstanden. Funktioniert es wegen der neuen umurmur Version nicht oder weil zwischenzeitlich was anderes geändert wurde? Mit welcher Revision genau hast Du getestet mit 4590 (umurmur version bump) oder einer späteren?

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

@er13: Mit der config aus dem Anhang geht es mit der rev. 4587 noch und mit den rev. 4593, 4598 und 4603 nicht mehr. Mit der rev. 4603 habe ich am ausgecheckten umurmur-Packet (umurmur version bump) nichts geändert. Ein minimal-Image (ohne Pakete, ohne external) mit rev. 4593 funktioniert.

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

Es liegt nicht an der neuen Version von umurmur bzw. polarssl. Ich habe jetzt ein Image ohne umurmur bzw. ohne polarssl, mit der trunk rev. 4608 kompiliert und dieses Image funktioniert auch nicht: Freetz-Dienste sind nicht erreichbar.

follow-up: ↓ 28   Changed 4 months ago by er13

@sf3978: statt nach oben zu gehen, hättest Du nach unten gehen müssen, i.e. schrittweise oder mit binärer Suche :) Richtung 4587. Du schreibst, 4593 funktioniert bereits nichts, demzufolge sind es lediglich 5 Revisionen, die zu testen sind. Ich bezweifle allerdings stark, dass es an einer der Änderungen 4588-4593 liegt, wobei 4588 und 4593 theoretisch schon was mit dem Problem zu tun haben könnten (die restlichen schließe ich mit großer Wahrschinelichkeit aus).

Aktiviere mal telnet (per Telefon), gehe dann per telnet auf die Box und schaue, was die (Mod-)Log-Dateien unter /var/log/ insbesondere die, die mit mod beginnen, so preisgeben. Ich vermute, dass bei Dir die Box beim Booten hängen bleibt oder irgendein Prozess mit einem Fehler aussteigt. Volllaufen Deines flashes wäre auch denkbar.

in reply to: ↑ 27   Changed 4 months ago by sf3978

Replying to er13:

Aktiviere mal telnet (per Telefon), gehe dann per telnet auf die Box und schaue, was die (Mod-)Log-Dateien unter /var/log/ insbesondere die, die mit mod beginnen, so preisgeben. Ich vermute, dass bei Dir die Box beim Booten hängen bleibt oder irgendein Prozess mit einem Fehler aussteigt. Volllaufen Deines flashes wäre auch denkbar.

Mit meiner regulären Konfiguration kann ich telnet per Telefon nicht aktivieren, da alle Telefonfunktionen rausgepatcht sind. Ich werden mal ein Image mit den Telefonfunktionen kompilieren.

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

Obwohl ich an meiner Buildumgebung (OpenSUSE 11.2) nichts geändert habe, kann ich kein funktionierendes Freetz-Image mehr erstellen. Auch nicht mit den trunks (z. B. 4587) von denen ich schon funktionierende Freetz-Images habe. Nach dem Flashen eines nicht funktionierenden Freetz-Images (trunk rev. 4621), ist es mir gelungen für kurze Zeit (ca. 1 Minute) telnet zu aktivieren. Aus den log-Dateien (siehe Anhang) werde ich aber nicht schlau. Ich werde mit einer anderen Build-Umgebung ein Freetz-Image erstellen und testen.

Changed 4 months ago by sf3978

  Changed 4 months ago by oliver

Wenn du nochmal auf die Shell kommst, dann kannst du probieren ob du den Neustart hiermit verhindern kannst:

echo disable > /dev/watchdog

Mir fällt in deinem Log auf, dass der ctlmgr fehlt. Außerdem ist die mod_load.log leer. Daher denke ich, dass irgendwas mit deinem /tmp bzw. /tmp/flash Verzeichnis nicht stimmt.

  Changed 4 months ago by sf3978

/tmp bzw. /tmp/flash wird erst bei der Aktivierung von telnet gelöscht. Wenn ich "nur" ein nicht funktionierendes Freetz-Image auf die Box flashe, bleibt /tmp und /tmp/flash erhalten.

  Changed 4 months ago by oliver

Die Aussage versteh ich nicht. Bitte nochmal. ;-)

  Changed 4 months ago by sf3978

Wenn ich mit einem nicht funktionierenden Freetz-Image auf der Box , telnetd mit Hilfe eines telnet-start-Images starte, dann wird der Inhalt der Verzeichnisse /tmp und /tmp/flash gelöscht. Es sind danach keine Freetz-Konfigurationsdateien auf der Box mehr vorhanden. Flashe ich nur das nicht funktionierende Freetz-Image, starte telnet nicht und flashe anschließend ein funktionierendes Freetz-Image, sind noch alle Freetz-Konfigurationsdateien (/tmp, /tmp/flash) vorhanden.

  Changed 4 months ago by cinereous

Diese Verzeichnisse werden eh beim Boot angelegt, Will heissen: "Weg" sind sie nie wirklich.

  Changed 4 months ago by oliver

/tmp muss immer da sein. Das wird als Symlink in fwmod angelegt.

  Changed 4 months ago by sf3978

Mit einem funktionierendem Freetz-Image sind eure Aussagen richtig. Wie ist dieser Eintrag in der Log-Darei zu verstehen?

"" /etc/init.d/rc.S: /etc/init.d/rc.mod: line 90: can't create /tmp/flash/mod/resolv.conf: nonexistent directory ""

Nach telnetd-Aktivierung sind z. B. die "rc.custom" und "security" Dateien, auch nicht mehr im Verzeichnis "/tmp/flash/mod" vorhanden.

  Changed 4 months ago by oliver

Er versucht die resolv.conf anzulegen und wahrscheinlich existiert /tmp/flash/mod nicht. Wahrscheinlich weil der erste Test in /usr/bin/modload fehlschlägt. Du kannst mal folgendes versuchen:

sh -x modload force

  Changed 4 months ago by sf3978

Kennt jemand eine Möglichkeit telnetd so zu aktivieren, dass man sich nicht mit "root" und "freetz" einloggen muss, sondern mit "root" und dem benutzerdefinierten Passwort für root. Vielleicht wird ja dann der Inhalt der Verzeichnisse "/var/tmp/flash/mod" und co. bzw. die Datei "/etc/passwd", nicht geändert bzw. nicht gelöscht.

  Changed 4 months ago by oliver

Dass da das Standardpasswort gesetzt ist liegt bestimmt daran, dass die Konfiguration nicht geladen werden kann.

Changed 4 months ago by sf3978

follow-up: ↓ 41   Changed 4 months ago by sf3978

Danke für die Hinweise. Nach einem Zurücksetzen der AVM-Konfiguration auf Werkseinstellungen, gehn die Freetz-Dienste auch mit dem aktuellen trunk wieder. Ein kleiner Schönheitsfehler gibt es noch. Ich bekomme folgende Meldungen in der mod.log:

rc.mod version freetz-devel-4633M
crond is disabled
Starting telnetd...done.
httpd is started via inetd
Starting syslogd...done.
Setting up virtual network interface...done.
Updating inetd config for telnetd: inactive.
Updating inetd config for vsftpd: active.
Updating inetd config for webcfg: active.
Reloading inetd...not running.
Writing /var/flash/freetz...done.
35328 bytes written.
/usr/bin/modreg file inetd_conf: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
Starting inetd...done.
/usr/bin/modreg file dnsmasq__extra: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
dnsmasq already started.
/usr/bin/modreg file privoxy__user_filter: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
/usr/bin/modreg file privoxy__user_action: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
Privoxy is disabled
/usr/bin/modreg file vsftpd_crt: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
vsftpd is started via inetd
vtund is disabled
/usr/bin/modreg file ssh_authorized-keys: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
Setting up SSH authorized_keys for root...initialized.
/usr/bin/modreg file onlinechanged: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
Setting up onlinechanged scripting ...done.
/usr/bin/modreg file openssh__rsa_key: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
/usr/bin/modreg file openssh__dsa_key: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
OpenSSH openssh is disabled
/usr/bin/modreg file umurmur__umurmur_key: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
/usr/bin/modreg file umurmur__umurmur_crt: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
umurmurd is disabled
Starting swap...done.

Was müsste ich ändern?

Changed 4 months ago by sf3978

in reply to: ↑ 40   Changed 4 months ago by er13

Replying to sf3978:

Was müsste ich ändern?

modreg file "umurmur__$i" "uMurmur: $i" 0 "$deffile"

durch

modreg file umurmur "$i" "uMurmur: $i" 0 "$deffile"

ersetzen.

Könntest Du bitte eine Diff-Datei anhängen, die alle Änderungen enthält, das würde es mir etwas leichter machen. Danke!

  Changed 4 months ago by sf3978

@er13: Im Anhang die .diff-Datei mit den Änderungen.

Changed 4 months ago by sf3978

  Changed 4 months ago by buehmann

Die deffile-Zeilen sollten auch noch weg (dass die sich überall wiederholen, war einer der Ausgangspunkte der "modreg file"-Erneuerungen):

 	                deffile="/etc/default.umurmur/$i.def" 
 	                [ -r /var/tmp/flash/umurmur/$i.def ] && deffile="/var/tmp/flash/umurmur/$i.def" 
 	                modreg file umurmur "$i" "uMurmur: $i" 0 "$deffile" 

wird zu

 	                modreg file umurmur "$i" "uMurmur: $i" 0 "$i" 

(Wenn das letzte Argument nicht ein absoluter Pfad ist, wird es (mit der Endung .def ergänzt) genau in den beiden genannten Verzeichnissen gesucht.)

  Changed 4 months ago by sf3978

@er13 & @buehmann: Danke für die Hilfe und die Hinweise. Habe den Inhalt des Beitrags von buehmann, in die neue "proper_umurmur.diff" eingetragen (siehe Anhang). Die Meldungen gibt es jetzt nur noch für privoxy & Konsorten:

# /var/mod/etc/init.d/rc.umurmur load
umurmurd is disabled
/var/mod/root # /var/mod/etc/init.d/rc.privoxy load
/usr/bin/modreg file privoxy__user_filter: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
/usr/bin/modreg file privoxy__user_action: Registration without <pkg> argument is deprecated. Please switch to the new style. See /usr/bin/modreg for more details.
Privoxy is disabled

Changed 4 months ago by sf3978

  Changed 4 months ago by buehmann

Die modunreg-Zeilen solltest du auch noch anpassen:

modunreg file umurmur

statt der beiden, die momentan dort mit den alten IDs stehen.

Changed 4 months ago by sf3978

  Changed 4 months ago by sf3978

Erledigt (siehe Anhang). Danke.

  Changed 4 months ago by er13

  • status changed from assigned to closed
  • resolution set to fixed

(In [4662]) umurmur:

  • add (rudimentary) web-interface & start-up script (by sf3978 + fixes by me)
  • fixes #714

  Changed 4 months ago by er13

@sf3978: Könntest Du bitte umurmur noch im Wiki beschreiben, inklusive einer Beispiel-Konfigdatei. Danke!

  Changed 4 months ago by sf3978

@er13: Ja, werde ich evtl. am kommenden Wochenende machen.

Note: See TracTickets for help on using tickets.