Fiks FTP-tilgang fra Linux-klient-PC med brannmur aktivert
I dag vil jeg dele min personlige erfaring med FTP-tilgang i Linux. Takket være de nye operativsystemene fra Microsoft, som jeg ikke finner egnet til daglig bruk, gikk jeg over til Linux for noen år siden. Jeg kjører en FTP-server i hjemmenettverket mitt, og jeg fikk ikke tilgang til den fra klient-PC-en min som kjører Linux som har brannmurregler for å blokkere innkommende tilkoblinger, dvs. INPUT-policyen er satt til REJECT i iptables. Her er hvordan jeg løste problemet.
Jeg antar at OUTPUT-policyen er AKSEPT på både klient- og servermaskiner.
Løsning #1. Bruk kjernemodulen nf_conntrack_ftp
Kjernemodulen nf_conntrack_ftp lar deg oppheve blokkeringen av tilgang til den nødvendige porten for FTP-serveren automatisk hver gang du oppretter en tilkobling. Det eneste kravet for denne modulen er følgende linje i iptables-reglene dine (vanligvis er det /etc/iptables/iptables.rules) på klient-PCen:
$IPT -A INPUT -i eth0 -m state --state RELATED, ETABLISHED -j ACCEPT
Det er eth0 er navnet på nettverksenheten din.
Deretter må du laste inn nf_conntrack_ftp hvis den ikke er lastet. Kjør følgende kommando som root på klient-PCen
# modprobe nf_conntrack_ftp
Hvis serveren din bruker en ikke-standardport (annet enn port 21), bruk følgende kommando:
# modprobe nf_conntrack_ftp ports=din_port
Dette vil gi en automatisk forbindelse med alle nødvendige porter mellom FTP-serveren og klientprogramvaren. Dette fungerer til du starter PC-en på nytt.
For å gjøre denne endringen permanent, må du opprette en ny tekstfil, /etc/modules-load.d/conntrack_ftp.conf, og legge til følgende linje i denne filen:
nf_conntrack_ftp
I tilfelle av ikke-standard serverport, må du opprette en ekstra fil, /etc/modprobe.d/conntrack_ftp.conf med følgende innhold:
alternativer nf_conntrack_ftp ports=
Dette burde være nok.
Løsning #2. Bruk en fast rekkevidde for passive porter
Hvis du ikke kan bruke modulen nf_conntrack_ftp, kan du angi et fast portområde for FTP-serverprogramvare og åpne det på klient-PCen. For eksempel, her er hvordan det kan gjøres for vsftpd-appen.
- I konfigurasjonsfilen til vsftpd, som vanligvis er /etc/vsftpd.conf, legg til følgende linjer:
pasv_min_port=5500. pasv_max_port=6500
Dette bør gjøres på serversiden. Etter det bør du starte vsftpd på nytt.
- I iptables-reglene dine (vanligvis er det /etc/iptables/iptables.rules) på klient-PCen, legg til følgende regel:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j GODTAR - Bruk iptables-regler som følger:
# iptables-restore < /etc/iptables/iptables.rules
Det er det.