Opravte přístup FTP z klientského počítače se systémem Linux s povoleným firewallem
Dnes bych se rád podělil o svou osobní zkušenost s FTP přístupem v Linuxu. Díky novým operačním systémům od Microsoftu, které mi nepřijdou vhodné pro každodenní používání, jsem před pár lety přešel na Linux. Provozuji FTP server ve své domácí síti a nebyl jsem schopen k němu přistupovat ze spuštěného klientského počítače Linux, který má pravidla brány firewall pro blokování příchozích připojení, tj. zásada INPUT je nastavena na REJECT in iptables. Zde je návod, jak jsem problém vyřešil.
Předpokládám, že OUTPUT policy je ACCEPT na klientských i serverových počítačích.
Řešení #1. Použijte modul jádra nf_conntrack_ftp
Modul jádra nf_conntrack_ftp umožňuje automaticky odblokovat přístup k požadovanému portu pro FTP server při každém připojení. Jediným požadavkem pro tento modul je následující řádek ve vašich pravidlech iptables (obvykle je to /etc/iptables/iptables.rules) na klientském počítači:
$IPT -A INPUT -i eth0 -m stav --stav SOUVISEJÍCÍ, STANOVENÝ -j PŘIJÍMÁM
Existuje eth0 je název vašeho síťového zařízení.
Dále musíte načíst soubor nf_conntrack_ftp, pokud není načten. Spusťte následující příkaz jako root na klientském počítači
# modprobe nf_conntrack_ftp
Pokud váš server používá nějaký jiný než výchozí port (jiný než port 21), použijte následující příkaz:
# modprobe nf_conntrack_ftp ports=váš_port
To zajistí automatické spojení se všemi požadovanými porty mezi FTP serverem a vaším klientským softwarem. Toto funguje, dokud nerestartujete PC.
Aby byla tato změna trvalá, musíte vytvořit nový textový soubor /etc/modules-load.d/conntrack_ftp.conf a přidat do tohoto souboru následující řádek:
nf_conntrack_ftp
V případě jiného než výchozího portu serveru musíte vytvořit další soubor /etc/modprobe.d/conntrack_ftp.conf s následujícím obsahem:
možnosti nf_conntrack_ftp ports=
Tohle by mělo stačit.
Řešení #2. Použijte pevný rozsah pasivních portů
Pokud nemůžete použít modul nf_conntrack_ftp, můžete nastavit pevný rozsah portů pro software FTP serveru a otevřít jej na klientském PC. Zde je například uvedeno, jak to lze provést pro aplikaci vsftpd.
- Do konfiguračního souboru vsftpd, který je obvykle /etc/vsftpd.conf, přidejte následující řádky:
pasv_min_port=5500. pasv_max_port=6500
To by mělo být provedeno na straně serveru. Poté byste měli restartovat vsftpd.
- Do vašich pravidel iptables (obvykle je to /etc/iptables/iptables.rules) na klientském počítači přidejte následující pravidlo:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j PŘIJMOUT - Pravidla iptables použijte následovně:
# iptables-restore < /etc/iptables/iptables.rules
A je to.