Indhold:

  • Indledning
  • Grundlæggende
  • Aktiv FTP
  • Aktive FTP-Eksempel
  • Passiv FTP
  • Passiv FTP-Eksempel
  • Andet Noter
  • Oversigt
  • > Bilag 1: Konfiguration af Fælles FTP-Servere
  • > Bilag 2: Firewall-Konfiguration Guide

Indledning

En af de mest almindeligt spørgsmål, når der beskæftiger sig med firewalls og andre problemer med internetforbindelsen er forskellen betweenactive og passiv FTP, og hvordan du bedst støtter den ene eller begge ofthem., Forhåbentlig vil følgende tekst bidrage til at rydde op nogle af theconfusion over, hvordan man understøtter FTP i et fire .all miljø.

Dette er muligvis ikke den endelige forklaring, som titlen hævder, men jeg har hørt nok god feedback og set dette dokument linket på nok steder til at vide, at en hel del mennesker har fundet det nyttigt. Jeg leder dog altid efter måder at forbedre tingene på, og hvis du finder noget, der ikke er helt klart eller har brug for mere forklaring, så lad mig det vide!, Nylige tilføjelser til dette dokument omfatter eksempler på både aktive og passive kommandolinje FTP-sessioner. Disse sessioneksempler skal hjælpe med at gøre tingene lidt klarere. De giver også et godt billede af, hvad der foregår bag kulisserne under en FTP-session. Nu videre til informationen…

det grundlæggende

FTP er udelukkende en TCP-baseret tjeneste. Der er ingen UDP-komponent toFTP. FTP er en usædvanlig tjeneste, idet den bruger to porte, en ‘data’ – port og en ‘kommando’ – port (også kendt som kontrolporten)., Traditionelt er disse port 21 for kommandoporten og port 20 for dataporten. Forvirringen begynder dog, når vi finder det afhængigt aftilstand, dataporten er ikke altid på port 20.

Aktiv FTP

i aktiv tilstand FTP klienten forbinder fra en tilfældig unprivilegedport (n > 1023) til FTP-serverens kommandoport, port 21. Derefter begynder theclient at lytte til port N + 1 og sender FTP-kommandoen PORTN+1 til FTP-serveren., Serveren vil derefter forbinde tilbage til theclients angivne dataport fra sin lokale dataport, som er port 20.,21 for at havne > 1023 (Serveren svarer toclient ‘ s kontrol port)

  • FTP-serverens port 20 til havne > 1023 (Server indleder dataconnection til kundens data port)
  • FTP-serverens port 20 til og fra havne > 1023 (Klienten sender ACKs toserver data port)
  • Når den er trukket ud, vises forbindelsen som følger:

    I trin 1, kundens kommandoen port kontakter serveren ‘ s kommando portand sender kommandoenPORT 1027., Serveren sender derefter anACK tilbage til klientens kommandoport i trin 2. I trin 3 serverinitiates en forbindelse på sin lokale dataport til dataporten clientspecified tidligere. Endelig sender klienten en ACK tilbage som vist i step4.

    det største problem med aktiv tilstand FTP falder faktisk på klientsiden. FTP-klienten opretter ikke den faktiske forbindelse til dataporten på serveren – den fortæller blot serveren, hvilken port den lytter på, og serveren forbinder tilbage til den angivne port på klienten., Fra den kundeside fire .all ser det ud til at være et eksternt system, der starter en forbindelse til en intern klient-noget der normalt er blokeret.

    aktivt FTP-eksempel

    nedenfor er et faktisk eksempel på en aktiv FTP-session. De eneste ting, der er blevet ændret, er servernavne, IP-adresser og brugernavne. I dette eksempel på en FTP-session er startet fra testbox1.slacksite.com (192.168.150.80), et linux-box, der kører standard FTP kommando linie klienten, at testbox2.slacksite.com (192.168.150.90), et linux-box, der kører ProFTPd 1.2.2RC2., Fejlfinding (-d) flag bruges sammen med FTP-klienten til at vise, hvad der foregår bag kulisserne. Alt i rødt er debugging output, der viser de faktiske FTP-kommandoer, der sendes til serveren og svarene genereret fra disse kommandoer. Normal serverudgang vises i sort, og brugerinput er med fed skrift.

    Der er et par interessante ting at overveje om denne dialog. Bemærk, at når kommandoen PORT udstedes, specificerer den en port på klienten (192.168.150.80) i stedet for serveren., Vi vil se den modsatte adfærd, når vi bruger passiv FTP. Mens vi er om emnet, en hurtig note om formatet af kommandoen PORT. Som du kan se i eksemplet nedenfor er det formateret som en serie på seks tal adskilt af kommaer. De første fire oktetter er IP-adressen, mens de sidste to oktetter omfatter den port, der vil blive brugt til dataforbindelsen. For at finde den faktiske port skal du multiplicere den femte oktet med 256 og derefter tilføje den sjette oktet til det samlede beløb. Således i eksemplet nedenfor portnummeret er ( (14*256) + 178), is 3762., En hurtig kontrol med netstat bør bekræfte disse oplysninger.

    passiv FTP

    for at løse problemet med serveren, der starter forbindelsen tilklienten, blev der udviklet en anden metode til FTP-forbindelser. Dette var kendt som passiv tilstand, eller PASV, efter kommandoen brugt af theclient til at fortælle serveren, at den er i passiv tilstand.

    i passiv tilstand FTP klienten initierer begge forbindelser til serveren,løse problemet med fire .alls filtrering den indgående dataportforbindelse til klienten fra serveren., Når du åbner en FTP-forbindelse, åbner klienten to tilfældige upriviligerede porte lokalt (n > 1023 andN+1). Den første havn, kontakter serveren på port 21, men i stedet for at thenissuing PORT kommando og tillader serveren at connectback til sine data port, kunden vil udstede PASVkommandoen. Resultatet af dette er, at den server, derefter åbner en randomunprivileged port (P > 1023) og sender P tilbage til klienten i svar til PASV kommandoen., Klienten starter derefter forbindelsen fra portN + 1 til port P på serveren for at overføre data.,at kunden’scontrol port)

  • FTP-server porte > 1023 fra hvor som helst (Kunden indleder dataconnection en tilfældig port er angivet af serveren)
  • FTP-server porte > 1023 til eksterne porte > 1023 (Server sendsACKs (og data) til kundens data port)
  • Når den trækkes, en passiv FTP-tilstand-forbindelse ser ud som dette:

    I trin 1, kunden kontakter serveren på port kommando og issuesthePASVkommandoen., Serveren svarer derefter i trin 2 medPORT 2024og fortæller klienten, hvilken port den lytter tilFor dataforbindelsen. I trin 3 starter klienten derefter dataconnection fra sin dataport til den specificerede serverdataport. Endelig sender serveren en ACK tilbage i trin 4 til klientens dataport.mens passiv tilstand FTP løser mange af problemerne fra klientsiden, åbner den en lang række problemer på serversiden. Det største problem er behovet for at tillade enhver fjernforbindelse til høje nummererede porte på serveren., Heldigvis er mange FTP-dæmoner, herunder den populære FTU-Ftpdtillad administratoren at angive en række porte, som FTP-serverenvil bruge. Se tillæg 1 For yderligere oplysninger.

    det andet problem involverer support og fejlfinding af klienter, der understøtter (eller ikke) passiv tilstand. Som et eksempel understøtter Command line FTP-værktøjet, der leveres med Solaris, ikke passivemode, hvilket kræver en tredjeparts FTP-klient, såsom ncftp.
    BEMÆRK: Dette er ikke længere tilfældet-brug indstillingen -p med Solaris FTP-klient tånebar passiv tilstand!,

    Med den massive popularitet af Worldorld .ide .eb foretrækker mange menneskerbrug deres browebbro .ser som en FTP-klient. De fleste bro .sere understøtter kunpassiv tilstand, når du får adgang til ftp:// URL ‘ er. Dette kan enten være godt eller dårligtafhængigt af hvad serverne og fire .alls er konfigureret til at understøtte.

    passivt FTP-eksempel

    nedenfor er et faktisk eksempel på en passiv FTP-session. De eneste ting, der er blevet ændret, er servernavne, IP-adresser og brugernavne. I dette eksempel indledes en FTP-session fra testbox1.slacksite.com (192.168.150.,80), en Linu, – boks, der kører standard FTP-kommandolinjeklienten, til testbox2.slacksite.com (192.168.150.90), en Linu. – boks, der kører ProFTPd 1.2.2RC2. Fejlfinding (-d) flag bruges sammen med FTP-klienten til at vise, hvad der foregår bag kulisserne. Alt i rødt er debugging output, der viser de faktiske FTP-kommandoer, der sendes til serveren og svarene genereret fra disse kommandoer. Normal serverudgang vises i sort, og brugerinput er med fed skrift.,

    bemærk forskellen i kommandoenPORT i dette eksempel i modsætning til det aktive FTP-eksempel. Her ser vi en port, der åbnes på serveren (192.168.150.90) systemet, snarere end klienten. Se diskussionen om formatet for kommandoen PORT ovenfor, i afsnittet Aktiv FTP-eksempel.,

    Andre Noter

    En læser, Maarten Sjouw, påpegede, at aktiv FTP, kan ikke fungere, når det anvendes i forbindelse med en klient-side, NAT (Network Address Translation) udstyr, som er ikke smart nok til at ændre IP-adressen info i FTP-pakker.

    Oversigt

    følgende skema vil hjælpe admins kan huske, hvordan hver FTP-tilstand fungerer:

     Active FTP : command : client >1023 -> server 21 data : client >1023 1023 -> server 21 data : client >1024 -> server >1023

    En hurtig oversigt over fordele og ulemper ved aktiv-vs. passiv FTP er også i orden:

    Aktiv FTP, er til gavn for FTP-server admin, men til skade for klienten side admin., FTP-serveren forsøger at oprette forbindelser til tilfældige høje porte på klienten, hvilket næsten helt sikkert ville blive blokeret af en fire .all på klientsiden. Passiv FTP er gavnlig for klienten, men skadelig for FTP-serveradministratoren. Klienten opretter begge forbindelser til serveren, men en af dem vil være til en tilfældig høj port, som næsten helt sikkert ville blive blokeret af en fire .all på serversiden.

    heldigvis er der noget af et kompromis., Da administratorer, der kører FTP-servere, bliver nødt til at gøre deres servere tilgængelige for det største antal klienter, vil de næsten helt sikkert være nødt til at understøtte passiv FTP. Eksponeringen af porte på højt niveau på serveren kan minimeres ved at angive et begrænset portområde for FTP-serveren at bruge. Således kan alt undtagen denne række porte fire .alles på serversiden. Selvom dette ikke eliminerer al risiko for serveren, falder den enormt. Se tillæg 1 For yderligere oplysninger.,

    En glimrende reference til, hvordan forskellige internet-protokoller arbejde og theissues, der er involveret i brandmure dem kan findes i den O ‘ Reilly andAssociates bog, Bygning Internet Firewalls, 2nd Ed, ved BrentChapman og Elizabeth Zwicky.
    Note 2012: Denne bog er meget gammel, og oplysningerne deri kan være forældede!

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *