Opravte prístup FTP z klientskeho počítača so systémom Linux s povolenou bránou firewall
Dnes by som sa rád podelil o svoju osobnú skúsenosť s FTP prístupom v Linuxe. Vďaka novým operačným systémom od Microsoftu, ktoré sa mi nezdajú vhodné na každodenné používanie, som pred pár rokmi prešiel na Linux. Vo svojej domácej sieti používam FTP server a nepodarilo sa mi k nemu získať prístup zo spusteného klientskeho počítača Linux, ktorý má pravidlá brány firewall na blokovanie prichádzajúcich pripojení, t. j. politika VSTUPU je nastavená na ODMIETNUTIE iptables. Tu je návod, ako som problém vyriešil.
Predpokladám, že politika OUTPUT je AKCEPTOVANÁ na klientskych aj serverových počítačoch.
Riešenie #1. Použite modul jadra nf_conntrack_ftp
Modul jadra nf_conntrack_ftp vám umožňuje automaticky odblokovať prístup k požadovanému portu pre FTP server pri každom pripojení. Jedinou požiadavkou pre tento modul je nasledujúci riadok vo vašich pravidlách iptables (zvyčajne je to /etc/iptables/iptables.rules) na klientskom počítači:
$IPT -A INPUT -i eth0 -m stav --stav SÚVISIACE, ZRIADENÉ -j PRIJAŤ
Existuje eth0 je názov vášho sieťového zariadenia.
Ďalej musíte načítať súbor nf_conntrack_ftp, ak nie je načítaný. Spustite nasledujúci príkaz ako root na klientskom PC
# modprobe nf_conntrack_ftp
Ak váš server používa nejaký iný ako predvolený port (iný ako port 21), použite nasledujúci príkaz:
# modprobe nf_conntrack_ftp ports=váš_port
Tým sa zabezpečí automatické spojenie so všetkými požadovanými portami medzi serverom FTP a vaším klientskym softvérom. Toto funguje, kým nereštartujete počítač.
Aby bola táto zmena trvalá, musíte vytvoriť nový textový súbor /etc/modules-load.d/conntrack_ftp.conf a pridať do tohto súboru nasledujúci riadok:
nf_conntrack_ftp
V prípade, že port servera nie je predvolený, musíte vytvoriť ďalší súbor /etc/modprobe.d/conntrack_ftp.conf s nasledujúcim obsahom:
možnosti nf_conntrack_ftp ports=
Toto by malo stačiť.
Riešenie #2. Použite pevný rozsah pasívnych portov
Ak nemôžete použiť modul nf_conntrack_ftp, môžete nastaviť pevný rozsah portov pre softvér FTP servera a otvoriť ho na klientskom PC. Napríklad tu je návod, ako to možno urobiť pre aplikáciu vsftpd.
- Do konfiguračného súboru vsftpd, ktorý je zvyčajne /etc/vsftpd.conf, pridajte nasledujúce riadky:
pasv_min_port=5500. pasv_max_port=6500
Toto by sa malo vykonať na strane servera. Potom by ste mali reštartovať vsftpd.
- Vo svojich pravidlách iptables (zvyčajne je to /etc/iptables/iptables.rules) na klientskom počítači pridajte nasledujúce pravidlo:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j PRIJAŤ - Aplikujte pravidlá iptables takto:
# iptables-restore < /etc/iptables/iptables.rules
To je všetko.