Innhold:

  • Innledning
  • Det Grunnleggende
  • Aktiv FTP
  • Aktiv FTP-Eksempel
  • Passiv FTP
  • Passiv FTP-Eksempel
  • Andre Notater
  • Oppsummering
  • Vedlegg 1: Konfigurasjon av Vanlig FTP-Servere
  • Vedlegg 2: Firewall Configuration Guide

Innledning

En av de vanligste sett spørsmål når du arbeider med brannmurer andother problemer med Internett-tilkobling er forskjellen betweenactive og passiv FTP og hvordan man best kan støtte den ene eller begge ofthem., Forhåpentligvis følgende tekst vil bidra til å oppklare noen av theconfusion over hvordan du støtter FTP i en stoppet av miljøet.

Dette kan ikke være den endelige forklaring, som tittelen krav, men jeg har hørt nok gode tilbakemeldinger og sett dette dokumentet knyttet i nok steder å vite at ganske mange mennesker har funnet det å være nyttig. Jeg er alltid på utkikk etter måter å gjøre ting selv, og hvis du finner noe som ikke er helt klar eller trenger mer forklaring, vennligst gi meg beskjed!, Nylig lagt til dette dokumentet omfatter eksempler på både aktiv og passiv kommandolinjen FTP økter. Disse økt eksempler skal bidra til å gjøre ting litt klarere. De gir også et fint bilde inn i hva som foregår bak kulissene under en FTP-økt. Nå, på til informasjon…

De Grunnleggende

FTP er en TCP-basert tjeneste utelukkende. Det er ingen UDP-komponent toFTP. FTP er en uvanlig service i at det benytter to porter, en ‘data’ – port og en «kommando» port (også kjent som kontroll-port)., Traditionallythese er port 21 for kommando-port og port 20 for dataport. Forvirringen begynner imidlertid, når vi finner at avhengig themode, data port er ikke alltid på port 20.

Aktiv FTP

I aktiv modus FTP-klienten kobler seg fra en tilfeldig unprivilegedport (N > 1023) til FTP-serveren er kommando-port, port 21. Så, theclient begynner å lytte til port N+1, og sender FTP-kommando PORTN+1 FTP-server., Serveren vil da koble tilbake til theclient er angitt data port fra sin lokale data port, som er porten 20.,21 og porter > 1023 (Server svarer toclient ‘ s kontroll-port)

  • FTP-server port 20 og porter > 1023 (Server starter dataconnection til kundens data port)
  • FTP-server port 20 fra havner > 1023 (Klient sender ACKs toserver data port)
  • Når du blir trukket ut, den forbindelse vises som følger:

    I trinn 1, kundens kommando-port, kontakter serveren er kommandoen portand sender kommandoenPORT 1027., Serveren sender deretter anACK tilbake til klienten ‘ kommando-port i trinn 2. I trinn 3 serverinitiates en tilkobling på sin lokale data port til data port clientspecified tidligere. Til slutt, sender klienten en ACK tilbake som vist i trinn 4.

    Den viktigste problemet med aktiv modus FTP faktisk faller på clientside. FTP-klienten gjør ikke selve forbindelsen til data portof server–det rett og slett forteller server hvilken port det er å lytte på andthe serveren kobles tilbake til den angitte port på klienten., Fra theclient side brannmur dette ser ut til å være en utenfor systemet starter aconnection til en intern klient-noe som vanligvis er blokkert.

    Aktiv FTP-Eksempel

    Nedenfor er et faktisk eksempel på en aktiv FTP-økt. Den eneste ting som har blitt endret, server navn, IP-adresser og brukernavn. I dette eksempel en FTP-økt er initiert fra testbox1.slacksite.com (192.168.150.80), en linux-boksen kjører standard FTP-kommando linje klienten, for å testbox2.slacksite.com (192.168.150.90), en linux-boksen kjører ProFTPd 1.2.2RC2., Debugging (-d) flagget brukes med FTP-klient for å vise hva som skjer bak kulissene. Alt i rødt er debugging utgang som viser den faktiske FTP-kommandoer som sendes til serveren og svarene som genereres fra disse kommandoene. Normal server utgang vises i svart, og bruker-input er markert i fet skrift.

    Det er et par interessante ting å vurdere om denne dialogboksen. Legg merke til at når PORT – kommandoen er utstedt, det angir en port på klienten (192.168.150.80) system, i stedet for server., Vi vil se det motsatte problemet når vi bruker passiv FTP. Mens vi er inne på temaet, en rask notat om formatet på PORT – kommandoen. Som du kan se i eksempelet under er formatert som en serie av seks tall atskilt med komma. De fire første oktettene er IP-adressen, mens de to siste oktettene består av port som skal brukes for datatilkoblingen. For å finne den faktiske port, må du multiplisere den femte oktett med 256 og deretter legge den sjette octet til total. Dermed i eksemplet nedenfor portnummeret er ( (14*256) + 178), eller 3762., En rask sjekk med netstat bør bekrefte denne informasjonen.

    Passiv FTP

    for å løse problemet på serveren starte tilkoblingen til klienten, en annen metode for FTP-tilkoblinger ble utviklet. Dette wasknown som passiv modus, eller PASV, etter kommandoen brukes av theclient å fortelle serveren det er i passiv modus.

    I passiv modus FTP-klienten starter både tilkoblinger til serveren,til å løse problemet med brannmurer filtrering av innkommende data portconnection til klienten fra serveren., Når du åpner en FTP-tilkobling,klienten åpnes to tilfeldige svakstilte porter lokalt (N > 1023 i+1). Den første port kontakter serveren på port 21, men i stedet for å thenissuing en PORT kommando og slik at serveren til connectback til sine data port, vil kunden problem PASV – kommandoen. Resultatet av dette er at serveren og deretter åpner en randomunprivileged port (P > 1023) og sender P tilbake til klienten i respons til PASV – kommandoen., Klienten deretter starter du tilkoblingen fra portN+1 til port S på server for å overføre data.,til klienten’scontrol port)

  • FTP-server-porter > 1023 fra hvor som helst (Klient starter dataconnection til tilfeldig port er angitt av server)
  • FTP-server-porter > 1023 til eksterne porter > 1023 (Server sendsACKs (og data) til kundens data port)
  • Når trukket, vil en passiv modus FTP-tilkobling ser ut som dette:

    I trinn 1, kontakter klienten til serveren på kommando-port og issuesthePASV– kommandoen., Serveren svarer da i trinn 2 medPORT 2024, forteller klienten hvilken port det er å lytte tofor datatilkoblingen. I trinn 3 klienten deretter starter dataconnection fra sin data-port til den angitte serveren data port. Til slutt,den tjeneren sender tilbake en ACK i trinn 4 til kundens data port.

    Mens FTP passiv modus løser mange av problemene fra klientens side,det åpner opp en hel rekke problemer på serveren side. Den biggestissue er behov for å tillate ekstern tilkobling til høy nummerert porter onthe server., Heldigvis, mange FTP daemons, inkludert den populære WU-FTPDallow administrator for å angi en rekke porter som FTP serverwill bruk. Se Vedlegg 1 for mer informasjon.

    Det andre problemet gjelder støtte og feilsøking kunder som gjør (eller ikke) støtte passiv modus. Som et eksempel, thecommand linje FTP-verktøyet som følger med Solaris støtter ikke passivemode, nødvendiggjør en tredjepart, FTP-klient, for eksempel ncftp.
    MERK: Dette er ikke lenger tilfelle-bruk -p alternativet med Solaris FTP-klient toenable passiv modus!,

    Med den massive populariteten av World Wide Web, mange mennesker foretrekker touse sin nettleser som en FTP-klient. De fleste nettlesere bare supportpassive-modus når du bruker ftp:// – url-er. Dette kan være enten gode eller baddepending på hva servere og brannmurer er konfigurert til å støtte.

    Passiv FTP-Eksempel

    Nedenfor er et faktisk eksempel på en passiv FTP-økt. Den eneste ting som har blitt endret, server navn, IP-adresser og brukernavn. I dette eksempel en FTP-økt er initiert fra testbox1.slacksite.com (192.168.150.,80), en linux-boksen kjører standard FTP-kommando linje klienten, for å testbox2.slacksite.com (192.168.150.90), en linux-boksen kjører ProFTPd 1.2.2RC2. Debugging (-d) flagget brukes med FTP-klient for å vise hva som skjer bak kulissene. Alt i rødt er debugging utgang som viser den faktiske FTP-kommandoer som sendes til serveren og svarene som genereres fra disse kommandoene. Normal server utgang vises i svart, og bruker-input er markert i fet skrift.,

    Merke forskjellen i PORT – kommandoen i dette eksempelet, i motsetning til aktiv FTP eksempel. Her ser vi en port som åpnet på serveren (192.168.150.90) system, snarere enn klienten. Se diskusjonen om formatet på PORT – kommandoen ovenfor, i den Aktive Eksempel FTP-delen.,

    Andre Notater

    En leser, Maarten Sjouw, påpekte at aktiv FTP, vil ikke fungere når den brukes sammen med en klient-side-NAT (Network Address Translation) enhet som ikke er smart nok til å endre IP-adressen info i FTP-pakker.

    Oppsummering

    følgende diagram bør hjelpe administratorer å huske hvordan hver FTP-modus fungerer:

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

    En rask oppsummering av fordeler og ulemper med aktiv vs. passiv FTP er også i orden:

    Aktiv FTP er gunstig for FTP-server admin, men skadelig for klientsiden admin., FTP-serveren forsøk på å opprette tilkoblinger til tilfeldig høye porter på klienten, som ville nesten helt sikkert være blokkert av en brannmur på klientsiden. Passiv FTP er fordelaktig for klienten, men skadelig for FTP-server admin. Klienten vil gjøre både tilkoblinger til serveren, men en av dem vil være til en tilfeldig høy port, noe som ville nesten helt sikkert være blokkert av en brannmur på server siden.

    Heldigvis, det er litt av et kompromiss., Siden admins kjører FTP-servere trenger å gjøre sine servere tilgjengelig for det største antall klienter, og de vil nesten helt sikkert behov for å støtte passiv FTP. Eksponering av høye nivå porter på serveren kan minimeres ved å angi en begrenset portområde for FTP-serveren til å bruke. Dermed, alt bortsett fra for dette rekke porter kan bli stoppet på server siden. Mens dette ikke eliminere all risiko til serveren, det reduserer det enormt. Se Vedlegg 1 for mer informasjon.,

    En god referanse på hvordan ulike internett-protokoller fungerer og theissues som er involvert i brannmur dem kan bli funnet i den O ‘ Reilly andAssociates bok, Bygge Internett-Brannmurer, 2. Utg, ved BrentChapman og Elizabeth Zwicky.
    Merk 2012:Denne boken er MEGET gammel og den informasjon som finnes der, kan være utdatert!

    Legg igjen en kommentar

    Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *