Salve a tutti, forse dirò cose ovvie, ma vedo che in altre mailing list sono molto richieste. Il contenuto di questo messaggio è su come far funzionare FTP in active mode da un PC che sta su rete privata dietro un firewall Linux controllato via iptables. Il presupposto è che il firewall permetta qualsiasi connessione dall'interno verso l'esterno e droppi tutte le nuove connessioni provenienti da fuori. Detto in altre parole, supponendo eth1 sia l'interfaccia verso internet: iptables -A FORWARD -i eth1 -m state --state establish,related -j ACCEPT iptables -A FORWARD -i eth1 -m state --state new,invalid -j DROP cioè sulla catena forward se il pacchetto arriva dall'interfaccia internet e lo stato è nuovo o invalido buttalo via, se invece appartiene ad una sessione già aperta o a una nuova sessione "related" ad una già aperta accettalo. (I puristi non se la prendano, dato che mancano alcune regole per chiudere bene le cose dall'esterno, ma per i fini di questo messaggio sono sufficienti le due regole indicate). Con queste due regole si chiudono di fatto tutte le porte da fuori verso dentro. Nel caso dell'active ftp, quindi il server non potrà mai contattare il client dato che la data connection viene vista come una nuova sessione. Inoltre se il PC sta su una rete privata il server non potrà contattare il client così come indicato dal comando PORT. Esistono due moduli di netfilter che risolvono il problema. ip_conntrack_ftp = tiene traccia delle sessioni ftp e collega la control session con la data session. Con questo modulo la data session non è più vista come una nuova sessione, ma come una sessione "related" cioè collegata ad una già aperta e quindi ora il server è in grado di passare dal firewall. ip_nat_ftp = permette di nattare il contenuto del comando port, pemettendo quindi al server di aprire la sessione con il client. Per utilizzarli è sufficiente mettere la modprobe dei moduli in uno script al boot. Solo per completezza ricordo che il passive mode non necessita di questi moduli dato che il client dopo aver aperto la control sesssion per aprire la data session invia il comando PASV e il server gli ritorna l'IP e la porta da chiamare per aprire la data connection. L'utilizzo di ip_conntrack_ftp permette anche in questo caso di avere la data connection "related" alla control e questo può essere interessante nell'analisi del traffico sul firewall. -- Gelpi ing. Andrea -------------------------------------------------------------- It took the computing power of three C-64s to fly to the Moon. It takes a 486 to run Windows 95. Something is wrong here. -------------------------------------------------------------- -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx