aMule-2.2.2 für Dreambox 70x0

  • So nach langer Zeit kommt mal wieder ein aMule update auf Version 2.2.2 für das ich mal wieder ein Port für die ppc Dreamboxen erstellt habe. Ein Startskript 'amule' ist auch dabei was folgende Features unterstützt:


    - aMule läuft komplett in einer chroot-Umgebung
    - aMule und Co werden als non root ausgeführt
    - ein user für aMule wird angelegt, kann konfiguriert werden
    - Starten der aMule apps (alcc, amulecmd, cas, ed2k) in chroot
    - eine Konfiguration mit den wichtigsten Optionen für den ersten Start


    Installation:
    Ladet euch im Anhang die Datei aMule-2.2.2-ppc.tar.gz auf Euren PC.
    Schiebt die Datei dann mit einen FTP-Proggi auf Eure Dream nach '/hdd'.
    Nun begebt ihr Euch mit telnet auf Eure Dream und entpackt den Esel

    Code
    cd /hdd
    gzip -dc aMule-2.2.1-ppc.tar.gz | tar -xv


    Es sollte jetzt ein Ordner /hdd/aMule existieren.


    Für die erste Konfiguration führt ihr folgendes aus:

    Code
    /hdd/aMule/bin/amule config


    und folgt den Anweisungen.

    Wenn ihr andere Ports als die default nehmt, merkt Euch diese, da Sie später unter anderem für den Zugriff auf das Webinterface benötigt werden.
    Ich lehne mich bei dieser Erklärung an die Default Ports. Ich ändere nur nach Bedarf die Passwörter (auch hier wichtig für das Webinterface) und das Standard Skin zu litoral, gefällt mir persönlich ganz gut.


    Als User könnt ihr p2p lassen, ihr werden dann mit dem klassischen passwd Befehl nach Eurem Passwort gefragt, welches ihr 2 mal eingeben müsst. Nur um die Sache zu vervollständigen, das Passwort ist bei der Eingabe nicht zu sehen.


    Danach sollte eigentlich die Konfiguration abgeschlossen werden. Bei Mißerfolg führt den Befehl bitte erneut aus.
    Nun könnt ihr den Esel wie folgt starten

    Code
    /hdd/aMule/bin/amule start


    Damit wird der amule Daemon und das amule Webinterface in Gang gesetzt ;).
    Hier wäre gleich zu erwähnen, das für den späteren Betrieb das Webinterface beendet werden kann, um Ressourcen zu schonen. Der Esel läuft unabhängig davon weiter.


    Zum beendet und starten gibt es die folgenden Befehle

    Code
    /hdd/aMule/bin/amule stop webif


    bzw.

    Code
    /hdd/aMule/bin/amule start webif


    Weitere Details sind über

    Code
    /hdd/aMule/bin/amule help


    zu erfahren.


    Wurde der Start von amule mit OK ausgegeben solltet ihr nun mit Eurem Webbrowser auf das amule Webinterface zugreifen können.
    Dazu gebt einfach ein:

    Zitat


    Euren Port solltet ihr natürlich auf Eure Konfiguration anpassen.


    Nun sollte das Webinterface mit dem Login erscheinen. Gebt das Passwort ein, welches ihr bei Eurer Konfiguration vergeben habt und ihr habt nun Zugriff auf den aMule Daemon. Über den Button "configuration", oben rechts, können weitere Details konfiguriert werden. Hier muss jeder für sich selbst sein Optimum finden.


    Übrigens kann die Konfiguration wie vor dem ersten Start des Esel beliebig oft wiederholt werden. Dadurch kann der Esel wieder in Gang gebracht werden, sollte einmal irgendwas schief gelaufen und ein Start unmöglich sein.


    Vergesst nicht für eine Hohe ID die entsprechenden Ports zu forwarden, die Uploadlimits etc. für den Esel über das Webinterface zu konfigurieren und den Swap auf Eurer Box zu aktivieren!



    Das aMule Webinterface sollte nun alle Funktionen enthalten. Die Grafische Darstellung der Statistiken funktioniert und auch sonst habe ich keine Fehler festgestellt. Sollte Euch irgendwas aufallen oder nicht funktionieren findet ihr oben rechts einen Button "log". Darüber könnt ihr den Log aufrufen und z.B. hier posten, dann kann ich evtl. weiterhelfen.




    Hintergrund zum bauen:


    Der Esel wurde von mir statisch gelinkt. Dazu habe ich die toolchain mit dem nice crosstool von Dan Kegel erstellt. Die Entwicklungsumgebung für die 70x0er Dreams erstellen immer fehlerhafte aMule Binaries wenn diese statisch gelinkt werden. Warum das so ist habe ich bis heute noch nicht herausfinden können? Ich vermute es liegt an den nptl. Die crosstool toolchain verwendet die Standard posix threads.




    So nun aber fröhlichen Testen und Saugen.


    cheers :winking_face:

  • Hallo,
    hab diese Version auf einer 600er zum Laufen gebracht. Allerdings suche ich vergeblich im WIF den Config-Button oben rechts ?!? Ist der doch nicht impementiert worden oder hab ich da etwas falsch gelesen?


    thx


    p.S: Hat sich erledigt, man muss das Interface LITORAL wählen, dann klappts auch mit dem Button config :smiling_face:

    dm600pvr / 160GB HDD

    Einmal editiert, zuletzt von bspi ()

  • Na nicht direkt ein Button, sondern eher ein Hyperlink als Schriftzug namens "configure", war vielleicht etwas schwammig ausgedrückt. Den Link findest du im Webif oben rechts, zumindest beim litoral und chicane Skin soweit ich noch weiß.


    Ansonsten hat das amule startscript noch einen kleinen Fehler. Beim Ausführen der amule tools in chroot gibt's ein error. Update kommt ... :winking_face:

    Make your dreams true with xdevels.

  • Könntest du noch ein paar Information bezüglich chroot geben? Welche Funktionen hat es genau und ist es möglich darüber per Skript ed2k links einzugeben?
    Hast du vielleicht schon irgendetwas geschriebn für Firefox und amulecmd?


    gruss napterk

    Einmal editiert, zuletzt von napterk ()

  • Also vorab lässt es meine Zeit in den letzten Wochen nicht zu, viel mit dem Esel zu probieren. Ich wollte noch das Skript anpassen und uppen, nichtmal das habe ich geschafft. :winking_face:


    Zu chroot:


    chroot allgemein bezeichnet den Ablauf von Prozessen auf Linux basierenden Systemen, die getrennt von der eigentlichen Dateistruktur funktionieren. Dazu wendet man den Trick an, dass man ein Verzeichnis betritt und das Wurzelverzeichnis (root) für die ablaufende chroot Umgebung auf dieses Verzeichnis beschränkt (verändert). Das bedeutet Prozesse die in chroot ablaufen können dieser Umgebung "nicht" entfliehen, da sie sich schon in höchster Ebene der Verzeichnisstruktur befinden, nämlich "/".


    Beispiel für eine chroot Umgebung im Verzeichnis "/hdd/amule"


    1. Von root aus betrachtet "/hdd/amule"
    2. Nach betreten der chroot Umgebung wird dieses Verzeichnis von dort aus als "/" erkannt obwohl wir uns real in "/hdd/amule" befinden.


    Klar ist das entfliehen der chroot Umgebung realistisch betrachtet machbar und vor allen dann, wenn man root Prozesse in dieser Umgebung laufen lässt und zusätzlich /dev /proc in dem Verzeichnis gemountet hat. Dann ist es einem potentiellen Angreifer möglich beispielsweise eine Festplatte in dieser Umgebung zu mounten und somit in das root Filesystem zu gelangen. Dem habe ich durch beschränkte Auswahl von Device files und der Änderung der Prozess ID als nonroot entgegengewirkt. Der Esel sollte somit sicher laufen und wenig Spielraum für potentielle Angreifer liefern.


    Weitere Informationen zu chroot findet man genügend im Netz.



    Ich habe dem Binary aMule Packet eine geänderte chroot Datei beigelegt, die es ermöglicht Anwendungen in chroot zu starten und das als nonuser. Normalerweise kann man erst nach dem Betreten der chroot die Prozess ID ändern. Da ich aber auf diverse Tools in der chroot Umgebung verzichten wollte, habe ich mich für die gepatchte chroot Version entschieden.


    Das Script amule übernimmt im übrigen die ganzen Vorgänge für dich. Vor dem Betreten der chroot Umgebung in der dann auch der Esel ausgeführt wird, müssen noch einige Anpassung im /dev der chroot Umgebung gemacht werden. Ohne diese Skript wäre eine ständige manuelle Eingabe der gesamten Prozedur mit der Hand unabdingbar.


    Die Tools ed2k, amulecmd .... usw. kann man auch mit diesem Script ausführen. Dazu wird das entsprechende Tool ebenfalls in chroot gestartet. Dabei sollte man aber immer bedenken, gerade weil hier ed2k angesprochen wurde, dass man sich nach dem Betreten der Umgebung in "/" befindet. Ein Verzeichnis "/hdd/amule" existiert in der chroot Umgebung nicht.


    cheers :winking_face:

    Make your dreams true with xdevels.

    2 Mal editiert, zuletzt von krallekit ()

  • Wow, erstmal vielen Dank für die gute und einfache Erklärung, hatte mich schon bei Wiki und Ubuntu eingelesen, nicht jedoch daraus schlauer geworden. Inzwischen habe ich mich ein bischen mit amulecmd beschäftigt und es lieben gelernt. :smiling_face:
    Auf amule.org habe ich auch ein paar Skripte gefunden mit denen man scheinbar Links auf amulecmd weitlerleiten kann, ob oder wie dies auf die Dreambox anzuwenden ist, hab ich noch nicht rausgefunden. Auch mir ist die Zeit nicht reichlich beschert vor Weihnachten, aber ich hoffe im nächsten Jahr wirds besser...


    gruss napterk