Fix FTP-toegang vanaf Linux-client-pc met firewall ingeschakeld
Vandaag wil ik mijn persoonlijke ervaring met FTP-toegang in Linux delen. Dankzij de nieuwe besturingssystemen van Microsoft, die ik niet geschikt vind voor dagelijks gebruik, ben ik een paar jaar geleden overgestapt op Linux. Ik gebruik een FTP-server in mijn thuisnetwerk en ik had er geen toegang toe vanaf mijn client-pc die actief was Linux die firewallregels heeft om inkomende verbindingen te blokkeren, d.w.z. het INPUT-beleid is ingesteld op REJECT in iptabellen. Hier is hoe ik het probleem heb opgelost.
Ik ga ervan uit dat het OUTPUT-beleid ACCEPT is op zowel client- als servermachines.
Oplossing #1. Gebruik de kernelmodule nf_conntrack_ftp
Met de kernelmodule nf_conntrack_ftp kunt u de toegang tot de vereiste poort voor de FTP-server automatisch deblokkeren elke keer dat u een verbinding maakt. De enige vereiste voor deze module is de volgende regel in uw iptables-regels (meestal is dit /etc/iptables/iptables.rules) op de client-pc:
$IPT -A INPUT -i eth0 -m state --state GERELATEERD, VASTGESTELD -j ACCEPT
Er is eth0 is de naam van uw netwerkapparaat.
Vervolgens moet u de nf_conntrack_ftp laden als deze niet is geladen. Voer de volgende opdracht uit als root op de client-pc:
# modprobe nf_conntrack_ftp
Als uw server een niet-standaardpoort gebruikt (anders dan poort 21), gebruik dan de volgende opdracht:
# modprobe nf_conntrack_ftp ports=uw_poort
Dit zorgt voor een automatische verbinding met alle benodigde poorten tussen de FTP-server en uw clientsoftware. Dit werkt totdat u uw pc opnieuw opstart.
Om deze wijziging permanent te maken, moet u een nieuw tekstbestand maken, /etc/modules-load.d/conntrack_ftp.conf, en de volgende regel aan dit bestand toevoegen:
nf_conntrack_ftp
In het geval van een niet-standaard serverpoort, moet u een extra bestand maken, /etc/modprobe.d/conntrack_ftp.conf met de volgende inhoud:
opties nf_conntrack_ftp ports=
Dit zou genoeg moeten zijn.
Oplossing #2. Gebruik een vast passief poortbereik
Als u de nf_conntrack_ftp-module niet kunt gebruiken, kunt u een vast poortbereik instellen voor FTP-serversoftware en deze openen op de client-pc. Hier is bijvoorbeeld hoe het kan worden gedaan voor de vsftpd-app.
- Voeg in het configuratiebestand van vsftpd, dat meestal /etc/vsftpd.conf is, de volgende regels toe:
pasv_min_port=5500. pasv_max_port=6500
Dit moet aan de serverkant gebeuren. Daarna moet u vsftpd opnieuw opstarten.
- Voeg in uw iptables-regels (meestal is dit /etc/iptables/iptables.rules) op de client-pc de volgende regel toe:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j ACCEPTEREN - Pas de iptables-regels als volgt toe:
# iptables-restore < /etc/iptables/iptables.rules
Dat is het.