Windows Tips & News

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.

De FTP-serversoftware moet poorten hebben geopend op de client-pc om een ​​passieve verbinding tot stand te brengen. In mijn geval waren alle poorten gesloten, behalve die poorten die expliciet waren geopend voor software die inkomende verbindingen nodig heeft, zoals mijn torrent-client, UPnP-mediaserver enzovoort. Het probleem is dat u niet kunt voorspellen welke poort precies zal worden gebruikt om verbinding te maken met uw clientcomputer. Het is een willekeurige poort elke keer dat u de verbinding uitvoert. Ik ontdekte twee oplossingen.

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.

  1. 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.

  2. 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
  3. Pas de iptables-regels als volgt toe:
    # iptables-restore < /etc/iptables/iptables.rules

Dat is het.

Synchroniseer elke map met OneDrive in Windows 10

Synchroniseer elke map met OneDrive in Windows 10

4 antwoordenOneDrive is de online oplossing voor documentopslag gemaakt door Microsoft en wordt g...

Lees verder

Genereer SSH-sleutel in Windows 10

Genereer SSH-sleutel in Windows 10

Een SSH-sleutel genereren in Windows 10Zoals je misschien al weet, bevat Windows 10 ingebouwde SS...

Lees verder

Vind uw Windows-upgradegeschiedenis met PowerShell

Vind uw Windows-upgradegeschiedenis met PowerShell

Elke keer dat u een build-upgrade uitvoert in Windows 10, slaat het besturingssysteem enkele stuk...

Lees verder