"Router mit Mehrwert" c't 3/03, ju

Die folgende Kurzanleitung beschreibt, wie man auf
einem Router mldonkey in einem chroot-Gefaengnis
einrichtet. Die konkreten Befehle beziehen sich auf
eine IPCop-Installation (an manchen Stellen
erlaeutern Kommentare die Vorgehensweise fuer ein
Debian-Linux).

Befehle sind durch ein "#" am Beginn der Zeile
gekennzeichnet, das aber *nicht* mit einzugeben ist.
Zeilen mit "-" am Anfang erklaeren was der naechste
Befehl macht.

Die benoetitigten Dateien koennen Sie ueber die
Soft-Links zum Artikel herunterladen.



0) Vorarbeiten:

- mldonkey-2.02-0.static.i386-Linux.tar.bz2 mit
  WinSCP/scp nach /root/ kopieren

- Linux-Programm bzip2 nach /usr/bin/bzip2 kopieren





1) Einrichten:

Auf dem SSH-Prompt des IPCop-Rechners als "root" eingeben:

- bzip2 ausfuehrbar machen
# chmod 0755 /usr/bin/bzip2

- User "esel" anlegen
# adduser -u 65000 -s /sbin/nologin esel
(Debian: adduser -u 65000 --shell /bin/false esel)

- In sein Home-Verzeichnis wechseln
# cd /home/esel

- MLdonkey auspacken
# bzip2 -dc ~/mldonkey-2.02-0.static.i386-Linux.tar.bz2 | tar xvf -

- Vereichnis umbenennen
# mv mldonkey-distrib-2.02-0 mldonkey

- unnoetige GUI-Programme loeschen
# rm mldonkey/*gui*

- "esel" zum Eigentuemer aller Dateien im Verzeichnis machen
# chown -R esel:esel mldonkey

- ins Verzeichnis wechseln
# cd mldonkey/

- Set-UID und Set-GID-Flag setzen (damit das Programm
  unter der Benutzerkennung von "esel" laeuft)
# chmod ug+s ./mldonkey

(bei neueren Versionen heisst das Programm selbst "mlnet"

- mldonkey starten
(erzeugt die Setup-Dateien, abbrechen mit CTRL-C)
# ./mldonkey


2) Konfigurieren: 
In "downloads.ini" editieren:

- "/home/esel/mldonkey" durch "/" ersetzen

- http_login, http_password und password setzen

- http_bind_addr, gui_bind_addr, telnet_bind_addr auf lokale IP-Adresse setzen
    http_bind_addr = "192.168.0.1"

- allowed_ips setzen
 allowed_ips = [
   "127.0.0.1"
   "192.168.0.255" ]

- evtl. Firewall Regeln anpassen: 

iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -p udp --dport 4665 -j ACCEPT

(oder analoge ipchains-Regeln)

Bei neueren Versionen von IPCop und/oder mldonkey muss
man die Incoming Ports TCP4662/UDP4665 explizit im
IPCOP-Setup-Men services/external services access
durchleiten. Sonst bekommt man nur "Low ISDs".

3) (automatisch) starten

In /etc/rc.d/rc.sysinit eintragen:

echo "Starting mdldonkey"
/usr/sbin/chroot /home/esel/mldonkey /mldonkey >> /home/esel/mldonkey.log &

Alternativ:

In /etc/ppp/ip-up eintragen:
system('/usr/sbin/chroot /home/esel/mldonkey /mldonkey > /home/esel/mldonkey.log &');

und in /etc/ppp/ip-down:
system "killall mldonkey";        

Debian: In /etc/ppp/ip-up.d/ und /etc/ppp/ip-down.d
entsprechende Skripte anlegen
