Windows Tips & News

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.

FTP-serverprogramvaren må ha porter åpnet på klient-PCen for å etablere en passiv tilkobling. I mitt tilfelle ble alle porter stengt bortsett fra de portene som eksplisitt ble åpnet for programvare som trenger innkommende tilkoblinger som min torrent-klient, UPnP-medieserver og så videre. Problemet er at du ikke kan forutsi nøyaktig hvilken port som skal brukes til å koble til klientmaskinen din. Det er en tilfeldig port hver gang du utfører tilkoblingen. Jeg oppdaget to løsninger.

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.

  1. 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.

  2. 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
  3. Bruk iptables-regler som følger:
    # iptables-restore < /etc/iptables/iptables.rules

Det er det.

Windows 10 oppgavelinje klokke sekunder Arkiver

Denne nettsiden bruker informasjonskapsler for å forbedre opplevelsen din mens du navigerer gjenn...

Les mer

Last ned oppgavelinjen Clock Show Seconds i Windows 10

Denne nettsiden bruker informasjonskapsler for å forbedre opplevelsen din mens du navigerer gjenn...

Les mer

Klokkevisning sekunder i Windows 10-arkiver

Denne nettsiden bruker informasjonskapsler for å forbedre opplevelsen din mens du navigerer gjenn...

Les mer