Pataisykite FTP prieigą iš „Linux“ kliento kompiuterio su įjungta ugniasienė
Šiandien norėčiau pasidalinti savo asmenine patirtimi, susijusia su FTP prieiga Linux sistemoje. Dėl naujų Microsoft operacinių sistemų, kurios man atrodo netinkamos kasdieniam naudojimui, prieš keletą metų perėjau prie Linux. Naudoju FTP serverį savo namų tinkle ir negalėjau jo pasiekti iš veikiančio kliento kompiuterio „Linux“, kuri turi ugniasienės taisykles, blokuojančias įeinančius ryšius, t. y. INPUT politika nustatyta kaip ATLEISTI iptables. Štai kaip išsprendžiau problemą.
Darau prielaidą, kad OUTPUT politika yra ACCEPT tiek kliento, tiek serverio įrenginiuose.
1 sprendimas. Naudokite branduolio modulį nf_conntrack_ftp
Branduolio modulis nf_conntrack_ftp leidžia automatiškai atblokuoti prieigą prie reikiamo FTP serverio prievado kiekvieną kartą, kai užmezgate ryšį. Vienintelis šio modulio reikalavimas yra ši eilutė jūsų iptables taisyklėse (paprastai tai yra /etc/iptables/iptables.rules) kliento kompiuteryje:
$IPT -A ĮVESTIS -i eth0 -m būsena -būsena SUSIJĘS, NUSTATYTA -j PRIIMTI
Yra eth0 yra jūsų tinklo įrenginio pavadinimas.
Tada turite įkelti nf_conntrack_ftp, jei jis neįkeltas. Paleiskite šią komandą kaip root kliento kompiuteryje
# modprobe nf_conntrack_ftp
Jei jūsų serveris naudoja kokį nors nenumatytąjį prievadą (išskyrus 21 prievadą), naudokite šią komandą:
# modprobe nf_conntrack_ftp ports=jūsų_prievadas
Tai užtikrins automatinį ryšį su visais reikalingais prievadais tarp FTP serverio ir kliento programinės įrangos. Tai veikia tol, kol iš naujo paleisite kompiuterį.
Kad šis pakeitimas būtų nuolatinis, turite sukurti naują tekstinį failą /etc/modules-load.d/conntrack_ftp.conf ir prie šio failo pridėti šią eilutę:
nf_conntrack_ftp
Jei serverio prievadas nėra numatytasis, turite sukurti papildomą failą /etc/modprobe.d/conntrack_ftp.conf su tokiu turiniu:
parinktys nf_conntrack_ftp ports=
Šito turėtų pakakti.
2 sprendimas. Naudokite fiksuotą pasyviųjų prievadų diapazoną
Jei negalite naudoti modulio nf_conntrack_ftp, galite nustatyti fiksuotą prievadų diapazoną FTP serverio programinei įrangai ir atidaryti jį kliento kompiuteryje. Pavyzdžiui, štai kaip tai galima padaryti naudojant vsftpd programą.
- Į vsftpd konfigūracijos failą, kuris paprastai yra /etc/vsftpd.conf, pridėkite šias eilutes:
pasv_min_port=5500. pasv_max_port=6500
Tai turėtų būti padaryta serverio pusėje. Po to turėtumėte iš naujo paleisti vsftpd.
- Savo iptables taisyklėse (paprastai tai yra /etc/iptables/iptables.rules) kliento kompiuteryje pridėkite šią taisyklę:
$IPT -A ĮVESTIS -p tcp -s
--dport 5500:6500 -j PRIIMTI - Taikykite iptables taisykles taip:
# iptables-restore < /etc/iptables/iptables.rules
Viskas.