====== Installazione di MLDonkey ======
In Debian Sarge Testing c'era il pacchetto ''**mldonkey-server**'', abbastanza ben fatto (script start/stop funzionanti) è stato rimosso dalla distribuzione Testing, ma rimane in Debian **Unstable** e non dovrebbe avere dipendenze difficili da soddisfare. Consigliato.
La home page è [[http://mldonkey.org/]]. Download della distribuzione stabile, linkata staticamente da [[http://savannah.nongnu.org/download/mldonkey/release-2.5-4/official/mldonkey-2.5-4.static.i586-Linux.tar.bz2|savannah.nongnu.org]]
Scompattato il file, presi i tre eseguibili principali e messi in ''/usr/local/bin/''
* **mlnet** (the daemon containing support for all networks)
* **mlgui** (the default GTK Graphical Interface)
* **mlnet+gui** (the daemon bundled with the GTK interface)
Creare una directory vuota a nome dell'utente che dovrà eseguire il programma, entrare nella directory e metterci dentro il file ''servers.ini'' che contiene un elenco di server ai quali tentare la connessione. Eseguire ''mlnet''. Vengono create le sottodirectory ''incoming'' e ''temp'', inoltre vengono creati tutti i file di configurazione necessari. A questo punto si dirige il browser su ''%%http://localhost:4080/%%''.
Si devono aprire alcune porte sul firewall, alcune alla rete locale (**loc**) altre a Internet (**net**). Controllare in ''donkey_expert.ini'' quale porta ''overnet_port'' viene usata, alla prima esecuzione ne viene scelta una a caso. questo è un esempio di configurazione per Shorewall:
ACCEPT loc fw tcp 4000 # MLdoneky (telnet control)
ACCEPT loc fw tcp 4001 # MLdoneky (GUI control)
ACCEPT loc fw tcp 4080 # MLdonkey (web control)
ACCEPT net fw tcp 4662 # MLdonkey (eDonkey TCP port)
ACCEPT net fw udp 4666 # MLdonkey (eDonkey UDP port)
ACCEPT net fw tcp ???? # MLdonkey (Overnet file transfer)
ACCEPT net fw udp ???? # MLdonkey (Overnet searches)
ACCEPT net fw tcp 6346 # MLdonkey (Gnutella)
Il controllo via telnet (porta 4000) e web (porta 4080) è accettato inizialmente solo da localhost, ma senza password! Per accettare il controllo da remoto mettere l'indirizzo IP autorizzato in ''downloads.ini'' (per indicare un'intera classe C mettere qualcosa del tipo 192.168.2.255):
allowed_ips = [
"127.0.0.1";
"10.0.1.2";]
Per imporre un minimo di sicurezza si potrebbero creare degli account ciascuno con una propria password, come minimo si imposta la password per l'utente di default **admin**, da interfaccia telnet:
> add_user admin pippo123
Gli account creati e gli hash delle password sono salvate in ''downloads.ini'' nella sezione **users**. A questo punto l'accesso via HTTP richiede l'autenticazione base, l'accesso via telnet sarà invece ancora libero, ma sarà necessario immettere la password prima di eseguire i comandi privilegiati:
> auth admin pippo123