Linux

Seconda parte – Server Amule e gestione su Android

amule
Eccoci alla seconda tappa del nostro viaggio: l’installazione del server aMule (che sarebbe emule, ma dato che gira sotto linux hanno tolto la lettera “e” sostituendola con la “a”, con l’acronimo di “all platform”).
La presente guida tratterà l’installazione in ambito Debian su un sistema privo di ambiente grafico, ma se avete un’altra distribuzione o un server grafico (spreconi! ;D) la sostanza non cambia.
Bene, iniziamo con l’installazione.
Digitate da riga di comando
$ sudo apt-get install amule-daemon amule-utils
Una volta installata tutta la rava e la fava, è necessario mandare in esecuzione il demone la prima volta per fargli generare automaticamente dei file, tra cui quello di configurazione.
$ amuled
Il sistema risponderà con un errore, ma è la testimonianza del fatto che il lavoro sporco è stato eseguito. Se il programma non torna alla linea di comando, terminarlo con CTRL+C
Tutti i file ora si trovano in ~/.aMule/
Editiamo quindi il file amule.conf
nano amule.conf
Ecco le voci più importanti da settare
[eMule]
MaxUpload=0
MaxDownload=0
SlotAllocation=2
Port=4662
UDPPort=4672
TempDir=/home/nome_utente/.aMule/Incoming
IncomingDir=/home/nome_utente/.aMule/Temp

[ExternalConnect]
AcceptExternalConnections=1
ECPort=4712
ECPassword=tuapasswordMD5

[WebServer]
Enabled=1
Password=tuapasswordMD5
Port=4711

Innanzitutto le porte TCP ed UDP, per motivi di sicurezza sostituitele con due a vostro piacimento da 1001 a 65000. Tali porte dovranno inoltre essere inoltrate dal router (per essere accessibili dall’esterno); impostate anche un ulteriore inoltro sempre sul router della porta UDP impostandola a TCP+3
Avremo quindi:
1122 TCP –>192.168.10.10 (indirizzo vs server)
1142 UDP –>192.168.10.10
1125 UDP –>192.168.10.10
Se avete un firewall, cosa altamente consigliata (farò un articolo dedicato a questo prossimamente), dovete ovviamente abilitare l’accesso dall’esterno a queste porte. Di norma iptables è presente sulla maggior parte delle distribuzioni linux e se non configurato opportunamente, rimane silente facendo entrare ed uscire tutto il traffico senza alcun controllo. Quindi, se questa è la vostra situazione, non toccate nulla, altrimenti, impostate come segue:
iptables -A INPUT -p tcp --dport XX -j ACCEPT
iptables -A INPUT -p udp --dport XX+3 -j ACCEPT
iptables -A INPUT -p udp --dport YY -j ACCEPT

Le voci Tempdir ed IncomingDir servono a dire al demone dove scaricare i download non ancora completati ed i file interi, potete modificarle a vostro piacimento.
Le voci ExternalConnect e WebServer servono rispettivamente ad abilitare la gestione remota del demone (tramite ad es. Android come vedremo dopo) e la gestione tramite interfaccia web. Per motivi di sicurezza, vi consiglio di abilitare tali voci solo al traffico lan interno (non facendo quindi l’inoltro delle porte dal router) ed abilitandole sul firewall in tale maniera.
$iptables -A INPUT -p tcp --dport 4711 -m state --state NEW -s 192.168.10.0/24 -j ACCEPT
$iptables -A INPUT -p tcp --dport 4712 -m state --state NEW -s 192.168.10.0/24 -j ACCEPT

Impostiamo la voce “Enabled” su 1 per entrambe.
Un altro parametro è ECPPassword e Password. Sono rispettivamente le password per la gestione remota e per la gestione tramite interfaccia web. Vanno inserite in forma criptata con l’algoritmo MD5
Digitiamo quindi echo -n miapassword | md5sum ed incolliamo la stringa risultante nei campi ECPPassword e Password
Se proprio vogliamo essere sicuri, impostiamo due password diverse.
Modifichiamo quindi il file /etc/default/amule-daemon impostando l’utente che eseguirà amuled, modificando il seguente parametro:
AMULED_USER="utente"
Abbiamo quasi finito.
Aggiungiamo quindi le liste dei server eDonkey:
$ echo "http://www.gruk.org/server.met.gz" > ~/.aMule/addresses.dat
$ echo "http://www.peerates.net/servers.php" >> ~/.aMule/addresses.dat

Per la rete Kad scarichiamo una lista ulteriore prelevandola da http://www.nodes-dat.com/ e salviamola in ~/.aMule/
A questo punto avviamo il demone digitando
$ sudo service amule-daemon start
Se è tutto ok, il demone dovrebbe avviarsi caricando anche quello per la gestione dell’interfaccia web. Andate sul browser e digitate sulla barra indirizzo
ipdelserver:4711
ad esempio 192.168.10.10:4711

Per ogni altro dubbio e/o approfondimento vi consiglio di consultare la wiki di aMule
Vediamo ora la gestione tramite Android. Andate su Google play e scaricate “aMule Remote”, oppure a questo link
Il programma è semplicissimo da configurare, basta andare nelle impostazioni e digitare l’indirizzo del server, il numero della porta ECP (4712 se non è stata cambiata) e la password scelta, questa volta però da digitare in chiaro.
Fatto questo, il programma si collegherà automaticamente illustrando i file attualmente in download e le loro statistiche
amule1
amule2

Standard
Linux

SSH Tunnel su Android

Rieccoci.
Abbiamo settato il nostro server ssh per connetterci in sicurezza tramite il nostro laptop. Ma cosa succede se abbiamo un cellulare o un tablet a disposizione per navigare? Senza metterci a ripetere tutti i rischi di sicurezza relativi ad una connessione hot-spot pubblica, purtroppo gli stessi si ripresentano anche se navighiamo con i nostri due nuovi gadget tecnologici. L’inoltro del desktop è però in questi casi impossibile, allora come fare?
Abbiamo due strade: la prima, è quella di creare una vpn, instradando il traffico nel tunnel criptato che viene a crearsi, la seconda, a mio avviso più semplice e rapida, consiste nello sfruttare la connessione ssh esistente inoltrandovi tutto il traffico in arrivo ed in partenza dallo smartphone.
Ok, come?
Fortunatamente per android esiste l’applicazione SSH Tunnel, reperibile su google play a questo indirizzo oppure sullo store del telefono.
Prima di continuare però, devo avvisarvi che l’applicazione funziona solo su telefoni di cui si dispone dei permessi di root, altrimenti si collega solamente al server ssh remoto ma rimane inattiva. Per il root del vostro cellulare cercate le guide eventalmente presenti in rete riferite al vostro modello, tenendo bene a mente però che non mi assumo nessuna responsabilità nel caso in cui durante il processo di rooting doveste rendere inutilizzabile il vostro terminale.
Una volta quindi ottenuti i permessi di root ed installato l’applicazione, andiamo a vedere come configurarla.

Nel campo host inserite l’indirizzo ip pubblico del vostro server oppure l’hostname nel caso in cui abbiate attivato un servizio di dinamic-dns (consigliato) quali no-ip o similari. Per le prove da casa, basta andare sul browser e digitare http://www.iplocation.net per trovare l’ip pubblico della connessione. Confermate la porta standard oppure mettete quella personalizzata ed inserite nome utente e password della connessione ssh. Se avete scelto il login tramite chiavi pubbliche, dovete importare la chiave pubblica e privata di un vostro client (il portatile ad esempio) (si trovano in home/.ssh e sono i file id.rsa*) cliccando sul menù impostazioni e selezionare la voce “key file manager”.
Una volta fatto questo vi consiglio di attivare le voci “use socks proxy”, abilitando così il redirect dinamico di tutte le porte, “auto reconnect” e “global proxy” (tutto il traffico generato da tutte le applicazioni sul telefono viene instradato nel tunnel ssh cifrato), oppure selezionando “individual proxy” si possono scegliere ad una ad una le app che verranno instradate e quelle che invece seguiranno la via non criptata. Vi consiglio di abilitare anche la voce “enable dns proxy” che cripta anche le richieste al dns. Praticamente, uno sniffer se questa opzione non è abilitata può vedere su quale sito andiamo ma non il flusso dati generato, che rimane criptato. Ma fatto 30, facciamo 31, no?
Tutto qui!
Ora basta attivare la voce “Tunnel switch” ed il collegamento ssh avrà inizio. La prima volta può comparire un messaggio di avvertimento che l’host non è conosciuto (non è presente nel file known_hosts) ma non fa nulla. Se invece l’avvertimento continua a ripetersi, probabilmente state subendo un attacco del tipo “man in the middle” (una spiegazione molto sintetica qui, se volete maggiori approfondimenti la pagina inglese è decisamente migliore).
Per testare se tutto funziona, prima di attivare il collegamento, con la connessione dati 3G attiva sul cellulare andate sulla pagina www.iplocation.net ed annotatevi l’indirizzo ip assegnatovi dal vostro gestore di telefonia. Attivate quindi il tunnel ssh (dovreste avere se tutto è ok questa immagine tra le applicazioni in esecuzione) collegamento riuscito
Tornate sul browser e date il refresh della pagina. Vedrete per magilla l’indirizzo ip cambiare da quello del gestore di telefonia a quello di casa vostra. Ora, tutto il traffico è criptato.

Standard