Korjaa FTP-yhteys Linux-asiakastietokoneelta, jossa palomuuri on käytössä
Tänään haluaisin jakaa henkilökohtaisen kokemukseni FTP-käytöstä Linuxissa. Microsoftin uusien käyttöjärjestelmien ansiosta, jotka eivät mielestäni sovellu päivittäiseen käyttöön, vaihdoin Linuxiin muutama vuosi sitten. Käytän FTP-palvelinta kotiverkossani, enkä voinut käyttää sitä käynnissä olevasta asiakastietokoneestani Linux, jossa on palomuurisäännöt saapuvien yhteyksien estämiseksi, eli INPUT-käytäntö on asetettu hylkäämään iptables. Näin korjasin ongelman.
Oletan, että OUTPUT-käytäntö on ACCEPT sekä asiakas- että palvelinkoneissa.
Ratkaisu #1. Käytä ydinmoduulia nf_conntrack_ftp
Ydinmoduulin nf_conntrack_ftp avulla voit poistaa FTP-palvelimen vaaditun portin eston automaattisesti aina, kun muodostat yhteyden. Ainoa vaatimus tälle moduulille on seuraava rivi iptables-säännöissäsi (yleensä se on /etc/iptables/iptables.rules) asiakastietokoneessa:
$IPT -A INPUT -i eth0 -m tila --tila LIITTYVÄ, PERUSTETTU -j HYVÄKSY
On eth0 on verkkolaitteen nimi.
Seuraavaksi sinun on ladattava nf_conntrack_ftp, jos sitä ei ole ladattu. Suorita seuraava komento pääkäyttäjänä asiakastietokoneessa
# modprobe nf_conntrack_ftp
Jos palvelimesi käyttää jotain muuta kuin oletusporttia (muuta kuin porttia 21), käytä seuraavaa komentoa:
# modprobe nf_conntrack_ftp ports=porttisi
Tämä tarjoaa automaattisen yhteyden kaikkiin tarvittaviin portteihin FTP-palvelimen ja asiakasohjelmiston välillä. Tämä toimii, kunnes käynnistät tietokoneen uudelleen.
Jos haluat tehdä tästä muutoksesta pysyvän, sinun on luotava uusi tekstitiedosto /etc/modules-load.d/conntrack_ftp.conf ja lisättävä seuraava rivi tähän tiedostoon:
nf_conntrack_ftp
Jos palvelinportti ei ole oletusarvoinen, sinun on luotava lisätiedosto /etc/modprobe.d/conntrack_ftp.conf, jossa on seuraava sisältö:
asetukset nf_conntrack_ftp ports=
Tämän pitäisi riittää.
Ratkaisu #2. Käytä kiinteää passiiviporttialuetta
Jos et voi käyttää nf_conntrack_ftp-moduulia, voit asettaa kiinteän porttialueen FTP-palvelinohjelmistolle ja avata sen asiakastietokoneessa. Esimerkiksi tässä on, kuinka se voidaan tehdä vsftpd-sovellukselle.
- Lisää seuraavat rivit vsftpd-määritystiedostoon, joka on yleensä /etc/vsftpd.conf:
pasv_min_port=5500. pasv_max_port=6500
Tämä tulisi tehdä palvelinpuolella. Tämän jälkeen sinun tulee käynnistää vsftpd uudelleen.
- Lisää seuraava sääntö asiakastietokoneen iptables-sääntöihin (yleensä se on /etc/iptables/iptables.rules):
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j HYVÄKSY - Käytä iptables-sääntöjä seuraavasti:
# iptables-restore < /etc/iptables/iptables.rules
Se siitä.