Un esempio di filtro P2P - II INFN Security Workshop Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 1 Un esempio di filtro P2P - II INFN Security Workshop Cosa è il Peer-to-Peer ? Ritorno alle origini di internet: ARPA Network: Network Control Program -> hostto-host protocol. ● Fine del modello client/server: nel 2000, con Napster, migliaia (e migliaia...) di pc diventano nodi attivi di connessioni dirette, un megacomputer e un megafilesystem virtuale mondiale. ● Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 2 Un esempio di filtro P2P - II INFN Security Workshop ... Peer-to-Peer ? 3) L'ultima scocciatura, come spam, virus nelle e-mail, bachi per Windows xyz. Un caso di uso scorretto della rete. Un problema soprattutto tecnico(0), oltre che legale. (0) metà 2003, almeno 10 Mbs fissi in ingresso su unifi.it Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 3 Un esempio di filtro P2P - II INFN Security Workshop ... P2P I software per il file-sharing P2P tendono ad essere invasivi. Prima accedono a vari superserver(1), e funzionano aprendo una selva di connessioni parallele. Per un download efficace, il setup invita ad aumentare il rapporto speed/host, i files condivisi (così aumentano gli uploads) etc... cioè l'impatto sulla rete locale. In pratica, si tende a saturare la banda disponibile. [opinione: come in altri casi, l'aumento del throughput non serve, anzi..] (1) database di elenchi dinamici di host P2P Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 4 Un esempio di filtro P2P - II INFN Security Workshop Soluzioni ? A) Modello “unifi.it”: tutti cattivi: si chiudono sul router tutte le porte, escluso la 22, 25, e 80. ☹ Una noia per le applicazioni classiche (aggiornamento del s.o./kernel, download dei driver, ...). Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 5 Un esempio di filtro P2P - II INFN Security Workshop Soluzioni B) Blocco delle porte basse, con sorveglianza a vista del traffico (ntop, snort/acid, ...). Si cercano connessioni simultanee su porte alte, e si individuano gli utenti birboni. ☹ Scomodo: gestione quasi manuale. Si può usare anche un cutter(2), usando lo stdout di alcuni sniffer di connessioni p2p, per es. p2pmon da www.p2pwatchdog.com - gratis per Linux, va su RH. C) Traffic shaping. 2) uno dei tool per tagliare una connessione tcp/ip, oppure con iptables -s ... -d ... -j REJECT Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] Leonardo 6 Un esempio di filtro P2P - II INFN Security Workshop Ftwall su Linux - un notch filter Si studia un protocollo P2P, si scrive qualcosa ad-hoc in C, usando i tools presenti nelle distribuzioni Linux (netfilter - target QUEUE per accedere dallo spazio utente ai pacchetti che transitano nelle chains). ftwall: un filtro per ora(3) di FastTrack (Kazaa 2.x / Lite, iMesh 4.y, Grokster 1.z...). Pensato per l'uso su un firewall, ma si può adattare su un transparent bridge, (patches ebtables su kernel 2.4, oppure su 2.6 standard). (3) Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 7 Un esempio di filtro P2P - II INFN Security Workshop Caratteristiche di FastTrack non usa porte prefissate (1214) ●cache di ~200 indirizzi, che aggiorna regolarmente ●handshaking della parte TCP/IP della connessione criptato ● Come si collega un flood di pacchetti UDP; ●connessioni TCP/IP parallele, e ancora: ●connessioni singole TCP/IP classiche, ogni tanto e con timeout lunghi. ● Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 8 Un esempio di filtro P2P - II INFN Security Workshop Funzionamento di ftwall (1) # iptables -A FORWARD -p udp - i eth1 -j QUEUE Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 9 Un esempio di filtro P2P - II INFN Security Workshop Funzionamento di ftwall (2) # iptables -A FORWARD -p tcp - i eth1 --syn -j QUEUE Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 10 Un esempio di filtro P2P - II INFN Security Workshop Funzionamento di ftwall (3) # iptables -A INPUT -p udp -i eth1 -j QUEUE Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 11 Un esempio di filtro P2P - II INFN Security Workshop ftwall - osservazioni usa un timeout, azzerato da ogni SYN che proviene dal client P2P. Come effetto collaterale, tutto il traffico dell'host viene bloccato. Quando il client FastTrack si spegne, dopo il timeout, torna tutto normale. Con (3), la reazione ai pacchetti UDP inviati ogni t.o./2, blocca definitivamente il client. ●Nel 3° modo, i files sono trasferiti via http in chiaro. Gli header contengono l'IP del client, il protocollo e l'address di un supernodo; da questi, ftwall aggiunge il supernodo agli IP bloccati (e azzera il time lock). ●Se il flood UDP non inizia (per es. disabilitato), ftwall non funziona. ● Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 12 Un esempio di filtro P2P - II INFN Security Workshop ftwall setup non sempre è possibile aggiungere un altro firewall ... ●si prepara un transparent bridge - br0 ●si scrivono le regole di iptables per il br0 ifconfig eth0 0.0.0.0 up ifconfig eth1 0.0.0.0 up brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 (ifconfig br0 192.84.w.z netmask 255.255.255.0 up) (route add default gw 192.84.x.y) iptables -A FORWARD -p udp -i br0 -j QUEUE iptables -A FORWARD -p tcp -i br0 --syn -j QUEUE iptables -A INPUT -p udp -i eth1 -j QUEUE /etc/init.d/ftwall start Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 13 Un esempio di filtro P2P - II INFN Security Workshop Esempi di log - ftwall # tail -3 /var/lib/ftwall.store [con log Feb 19 17:14:30 prova ftwall[1576]: Drop (FORWARD) from br0:193.206.a.b:1466 to br0:62.16.152.x:3302 Feb 19 17:14:31 prova ftwall[1576]: Drop (FORWARD) from br0:193.206.a.b:1466 to br0:217.210.103.y:2457 Feb 19 17:14:32 prova ftwall[1576]: Drop (FORWARD) from br0:193.206.a.b:1466 to br0:213.113.202.z:1807 udp dropped] UDP packet UDP packet UDP packet # tail -3 /var/lib/ftwall.store 193.136.153.x:2684 193.170.63.y:3316 81.99.1.z:3032 # ls -l /var/log/ftwall.clients/ total 0 -rw-r--r-- 1 root root 0 Feb 20 15:14 193.206.190.b Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 14 Un esempio di filtro P2P - II INFN Security Workshop Chi è? #nmap ..... 193.206.190.a Starting nmap 3.48 .... at 2004-02-... Interesting ports on x.fi.infn.it (193.206.190.a): .... PORT STATE SERVICE 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS (??) 1214/tcp filtered fasttrack 1466/tcp filtered oceansoft-lm 3531/tcp open peerenabler 6000/tcp open X11 Device type: general purpose Running: Microsoft Windows 95/98/ME|NT/2K/XP OS details: Microsoft Windows Millennium Edition(Me)... Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 15 Un esempio di filtro P2P - II INFN Security Workshop Esempi di log - p2pmon p2pwatchdog e xmule su RH9: # p2pmon -a 1 Opening adapter in promiscuous mode. Adapter: eth0 (No description available) Monitoring P2P filesharing activity... Fri Jan 23 10:39:55 2004: eDonkey src=193.206.190.x:38739, dst=80.223.232.73:4662 file=Dido - White Flag.mp3 Si può partire da: # p2pmon -a 1 | grep src | cut -d: -f1 | cut -d= -f2 193.206.190.x e usare iptables -A ... REJECT e iptables -D .... nel crontab Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 16 Un esempio di filtro P2P - II INFN Security Workshop Progetti per il futuro se possibile, prova sotto carico di ftwall su fi.infn.it, invitando al file sharing p2p estremo, soprattutto se arriva ftwall.2. ●prove su altre reti (una a caso: rete unifi del Polo Scientifico, se verranno riaperte le porte). ●trovare qualcuno interessato all'argomento. ● Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 17 Un esempio di filtro P2P - II INFN Security Workshop Riferimenti ftwall: ●http://www.linuxjournal.com/article.php?sid=694 5 , le figure sono © di linuxjournal.com, credo. ●p2pwall.sourceforge.net ●alcune delle font che ho usato sono nel pacchetto msttcorefonts per Debian, “provided by MicroSoft, in the interest of cross-platform compatibility”. ● Ringraziamenti ● Servizio Calcolo e Reti sezione fi.infn. Leonardo Lanzi - Dipartimento di Fisica - Università di Firenze - [email protected] 18