Windows Tips & News

Correggi l'accesso FTP da PC client Linux con firewall abilitato

Oggi vorrei condividere la mia esperienza personale con l'accesso FTP in Linux. Grazie ai nuovi sistemi operativi di Microsoft, che non trovo adatti all'uso quotidiano, sono passato a Linux qualche anno fa. Sto eseguendo un server FTP nella mia rete domestica e non sono stato in grado di accedervi dal mio PC client in esecuzione Linux che ha regole del firewall per bloccare le connessioni in entrata, ovvero la politica INPUT è impostata su REJECT in iptables. Ecco come ho risolto il problema.

Presumo che la politica OUTPUT sia ACCEPT su entrambe le macchine client e server.

Il software del server FTP deve disporre di porte aperte sul PC client per stabilire una connessione passiva. Nel mio caso, tutte le porte sono state chiuse tranne quelle che sono state aperte esplicitamente per il software che necessita di connessioni in entrata come il mio client torrent, il server multimediale UPnP e così via. Il problema è che non è possibile prevedere quale porta verrà utilizzata esattamente per connettersi al computer client. È una porta casuale ogni volta che si esegue la connessione. Ho scoperto due soluzioni.

Soluzione n. 1. Usa il modulo del kernel nf_conntrack_ftp
Il modulo del kernel nf_conntrack_ftp consente di sbloccare automaticamente l'accesso alla porta richiesta per il server FTP ogni volta che si effettua una connessione. L'unico requisito per questo modulo è la seguente riga nelle regole di iptables (di solito è /etc/iptables/iptables.rules) sul PC client:

$IPT -A INPUT -i eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

C'è eth0 è il nome del tuo dispositivo di rete.

Successivamente, è necessario caricare nf_conntrack_ftp se non è caricato. Esegui il seguente comando come root sul PC client

# modprobe nf_conntrack_ftp

Se il tuo server utilizza una porta non predefinita (diversa dalla porta 21), usa il seguente comando:

# modprobe nf_conntrack_ftp ports=your_port

Ciò fornirà una connessione automatica con tutte le porte richieste tra il server FTP e il software client. Funziona fino al riavvio del PC.

Per rendere permanente questa modifica, devi creare un nuovo file di testo, /etc/modules-load.d/conntrack_ftp.conf, e aggiungere la seguente riga a questo file:

nf_conntrack_ftp

In caso di porta del server non predefinita, è necessario creare un file aggiuntivo, /etc/modprobe.d/conntrack_ftp.conf con il seguente contenuto:

opzioni nf_conntrack_ftp porte=

Questo dovrebbe essere sufficiente.

Soluzione n. 2. Utilizzare un intervallo di porte passive fisse
Se non è possibile utilizzare il modulo nf_conntrack_ftp, è possibile impostare un intervallo di porte fisso per il software del server FTP e aprirlo sul PC client. Ad esempio, ecco come può essere fatto per l'app vsftpd.

  1. Nel file di configurazione di vsftpd, che di solito è /etc/vsftpd.conf, aggiungi le seguenti righe:
    pasv_min_port=5500. pasv_max_port=6500

    Questo dovrebbe essere fatto sul lato server. Dopodiché dovresti riavviare vsftpd.

  2. Nelle tue regole iptables (di solito è /etc/iptables/iptables.rules) sul PC client, aggiungi la seguente regola:
     $IPT -A INPUT -p tcp -s  --dport 5500:6500 -j ACCETTA
  3. Applica le regole di iptables come segue:
    # iptables-restore < /etc/iptables/iptables.rules

Questo è tutto.

Ottieni quantità di parole, caratteri e linee in un file usando PowerShell

Ottieni quantità di parole, caratteri e linee in un file usando PowerShell

A volte è utile raccogliere alcune statistiche su un file di testo che hai. Se stai utilizzando u...

Leggi di più

Linux Mint 18.2

Linux Mint 18.2

Linux Mint 18.2 è la prossima versione della popolare distribuzione. I suoi sviluppatori oggi han...

Leggi di più

Come creare un punto di ripristino in Windows 10

Come creare un punto di ripristino in Windows 10

Ripristino configurazione di sistema non è una nuova funzionalità di Windows 10. Questa tecnologi...

Leggi di più