|
| Hvordan identificeres ftp-strømme? Fra : Steen Suder |
Dato : 25-08-02 23:52 |
|
Jeg vil lave trafikkontrol af ftp-trafik igennem en router (Linux).
Hvordan identicerer jeg generelt ftp-trafik?
Er der nogle felter i ftp-pakker man kan kende ftp på?
Jeg skal bruge ovenstående til at lave et filter så jeg kan få begrænset
ftp-trafik.
--
Mvh. / Best regards,
Steen Suder < http://www.suder.dk/>
ICQ UIN 4133803
| |
Rasmus Bøg Hansen (26-08-2002)
| Kommentar Fra : Rasmus Bøg Hansen |
Dato : 26-08-02 01:15 |
|
Steen Suder wrote:
> Jeg vil lave trafikkontrol af ftp-trafik igennem en router (Linux).
>
> Hvordan identicerer jeg generelt ftp-trafik?
Som regel på at det kører på port 21 - gør det ikke det er du nødt til at
analysere trafikken på alle porte lidt nærmere.
> Er der nogle felter i ftp-pakker man kan kende ftp på?
En FTP-server starter normalt altid med at sende '220 velkommen' (hvor
velkommen naturligvis afhænger af den enkelte server) til klienten - måske
man med iptables' string-match modul kan få markeret pakken med
MARK-target. Ellers skal man nok ud at kigge nærmere på
protokolspecifikationen. Hvis det er datastrømmen og ikke
kontrolforbindelsen, du er ude efter, tror jeg du får et problem, da denne
vist er en binær datastrøm uden særlige kendetegn.
> Jeg skal bruge ovenstående til at lave et filter så jeg kan få begrænset
> ftp-trafik.
Du kan sandsynligvis bruge 'Helper match support' modulet
(CONFIG_IP_NF_MATCH_HELPER) til at matche og markere (med MARK el. lign.)
pakker fra en ftp-datastrøm. Herefter kan du muligvis begrænse de markerede
pakker med iproute2.
Jeg er ikke helt sikker, men jeg tror du selv skal patche det ind fra
iptables' patch-o-matic (eller også nåede det lige netop med i 2.4.19).
Jeg har dog ikke prøvet ovenstående, så jeg har reelt ingen anelse om,
hvorvidt det kan bringes til at fungere.
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
It may be the only innovation in Windows (CTRL-ALT-DELETE was
not invented by MS).
- Hans Reiser
----------------------------------[ moffe at amagerkollegiet dot dk ] --
| |
Asbjorn Hojmark (26-08-2002)
| Kommentar Fra : Asbjorn Hojmark |
Dato : 26-08-02 06:17 |
|
On Mon, 26 Aug 2002 02:14:30 +0200, Rasmus Bøg Hansen
<moffe47@hotmail.com> wrote:
> En FTP-server starter normalt altid med at sende '220 velkommen'
Ja, men det er usmart at matche på det, for det gør en SMTP-
server også. Og det vil, som du selv af inde på, ikke hjælpe
meget, hvis man endelig kunne identificere kontrolsessionerne
(klient->21/tcp), for det er overvejende datasessionerne, der
bruger båndbredde.
-A
--
Heroes: Vint Cerf & Bob Kahn, Leonard Kleinrock, Robert Metcalfe, Jon Postel
Links : http://www.hojmark.org/networking/
FAQ : http://www.net-faq.dk/
| |
Rasmus Bøg Hansen (26-08-2002)
| Kommentar Fra : Rasmus Bøg Hansen |
Dato : 26-08-02 09:10 |
|
Asbjorn Hojmark wrote:
> On Mon, 26 Aug 2002 02:14:30 +0200, Rasmus Bøg Hansen
> <moffe47@hotmail.com> wrote:
>
>> En FTP-server starter normalt altid med at sende '220 velkommen'
>
> Ja, men det er usmart at matche på det, for det gør en SMTP-
> server også. Og det vil, som du selv af inde på, ikke hjælpe
Ja, det er egentlig fuldstændig korrekt. Man er nok nødt til at udtænke en
noget mere snedig måde at genkende den på, og så tvivler jeg på, det er let
at gøre med iptables.
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
"Nothing would please me more than being able to hire ten programmers
and deluge the hobby market with good software."
-- Bill Gates 1976
We are still waiting ....
----------------------------------[ moffe at amagerkollegiet dot dk ] --
| |
Steen Suder (26-08-2002)
| Kommentar Fra : Steen Suder |
Dato : 26-08-02 19:28 |
|
Rasmus Bøg Hansen wrote:
> Asbjorn Hojmark wrote:
>
>
>>On Mon, 26 Aug 2002 02:14:30 +0200, Rasmus Bøg Hansen
>><moffe47@hotmail.com> wrote:
>>
>>
>>>En FTP-server starter normalt altid med at sende '220 velkommen'
>>
>>Ja, men det er usmart at matche på det, for det gør en SMTP-
>>server også. Og det vil, som du selv af inde på, ikke hjælpe
>
>
> Ja, det er egentlig fuldstændig korrekt. Man er nok nødt til at udtænke en
> noget mere snedig måde at genkende den på, og så tvivler jeg på, det er let
> at gøre med iptables.
Jeg havde håbet på noget i retning af:
match offset 0x16 i en pakke med værdien 0x6f og du har en ftp-pakke,
men jeg tvivlede allerede inden at det kunne lade sig gøre.
--
Mvh. / Best regards,
Steen Suder < http://www.suder.dk/>
ICQ UIN 4133803
| |
Asbjorn Hojmark (26-08-2002)
| Kommentar Fra : Asbjorn Hojmark |
Dato : 26-08-02 06:22 |
|
On Mon, 26 Aug 2002 00:52:09 +0200, Steen Suder
<sfs_news@suder.dk> wrote:
> Hvordan identicerer jeg generelt ftp-trafik?
Typisk på destination portnummer 21/tcp og source portnummer
20/tcp.
> Er der nogle felter i ftp-pakker man kan kende ftp på?
Jeg kan ikke umiddelbart kommer i tanker om nogen, og det vil kun
hjælpe for kontrolsessionen (kommandoer fra klienten til serve-
ren). Selve dataoverførslerne vil du ikke kunne identificere på
den måde.
> Jeg skal bruge ovenstående til at lave et filter så jeg kan få
> begrænset ftp-trafik.
Hvad mener du med "begrænset"? Ønsker du at mindske det samlede
forbrug af båndbredde brugt af FTP, eller ønsker du at forhindre
nogle sessioner?
Hvis det er et QoS issue, er det min erfaring, at det er meget
lettere at prioritere noget bestemt trafik op, end at forsøge at
identificere alt det andet, der kunne finde på at bruge bånd-
bredden.
-A
--
Heroes: Vint Cerf & Bob Kahn, Leonard Kleinrock, Robert Metcalfe, Jon Postel
Links : http://www.hojmark.org/networking/
FAQ : http://www.net-faq.dk/
| |
Rasmus Bøg Hansen (26-08-2002)
| Kommentar Fra : Rasmus Bøg Hansen |
Dato : 26-08-02 09:17 |
|
Asbjorn Hojmark wrote:
>> Hvordan identicerer jeg generelt ftp-trafik?
>
> Typisk på destination portnummer 21/tcp og source portnummer
> 20/tcp.
sourceport 20 er da kun til aktive dataforbindelser - og så får man ikke de
passive med.
>> Er der nogle felter i ftp-pakker man kan kende ftp på?
>
> Jeg kan ikke umiddelbart kommer i tanker om nogen, og det vil kun
> hjælpe for kontrolsessionen (kommandoer fra klienten til serve-
> ren). Selve dataoverførslerne vil du ikke kunne identificere på
> den måde.
Hvis kontrolsessionen bliver styret af iptables' connection-tracking kan
dataforbindelserne som sagt identificeres vha. helper-modulet. Ellers ser
jeg heller ingen måde at identificere datasessionen.
Alternativt kunne man sætte en proxy op til ftp og begrænse denne.
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
Computers are like airconditioners:
They stop working properly if you open windows.
----------------------------------[ moffe at amagerkollegiet dot dk ] --
| |
Asbjorn Hojmark (26-08-2002)
| Kommentar Fra : Asbjorn Hojmark |
Dato : 26-08-02 09:45 |
|
On Mon, 26 Aug 2002 10:17:15 +0200, Rasmus Bøg Hansen
<moffe47@hotmail.com> wrote:
>> Typisk på destination portnummer 21/tcp og source portnummer
>> 20/tcp.
> sourceport 20 er da kun til aktive dataforbindelser
Det er rigtigt. Jeg skrev 'typisk' ud fra en forudsætning om, at
de fleste FTP-sessioner nok er aktive. Men det er da muligt, folk
efterhånden FTP'er så meget fra deres browsere, at passive mode
er mere almindeligt.
> - og så får man ikke de passive med.
Nej. Der siger klienten 'PASV' til serveren, og så fortæller
serveren klienten, hvilken port den har tænkt sig at lytte på
("227 Entering passive (IP-adresse, port)" eller noget der
ligner.
> Hvis kontrolsessionen bliver styret af iptables' connection-
> tracking kan dataforbindelserne som sagt identificeres vha.
> helper-modulet.
Ja?
Kan den læse en vilkårlig TCP-session, og identificere det som
FTP, uden at det er standard portnumre? Og kan den derefter læse
kontrolsessionen og finde TCP-sessionen, der bærer data? Det er
godt nok smart.
(Der var en hel del forbehold, da du sagde det).
> Alternativt kunne man sætte en proxy op til ftp og begrænse denne.
Som sagt: Hvis det er ud fra et QoS-synspunkt, giver det oftest
mere mening at prioritere bestemte typer God(TM) trafik op, end
det at forsøge at prioritere bestemte typer Ond(TM) trafik ned.
-A
| |
Rasmus Bøg Hansen (26-08-2002)
| Kommentar Fra : Rasmus Bøg Hansen |
Dato : 26-08-02 10:16 |
|
Asbjorn Hojmark wrote:
>> sourceport 20 er da kun til aktive dataforbindelser
>
> Det er rigtigt. Jeg skrev 'typisk' ud fra en forudsætning om, at
> de fleste FTP-sessioner nok er aktive. Men det er da muligt, folk
Ah, på den vis - så er vi enige.
> efterhånden FTP'er så meget fra deres browsere, at passive mode
> er mere almindeligt.
Internet Explorer benytter vist normalt aktiv FTP mens f. eks. Netscape
bruger passiv, så aktiv - som du skriver - nok det mest benyttede.
>> Hvis kontrolsessionen bliver styret af iptables' connection-
>> tracking kan dataforbindelserne som sagt identificeres vha.
>> helper-modulet.
>
> Ja?
>
> Kan den læse en vilkårlig TCP-session, og identificere det som
> FTP, uden at det er standard portnumre? Og kan den derefter læse
> kontrolsessionen og finde TCP-sessionen, der bærer data? Det er
> godt nok smart.
Nej, den skal vide at ftp-connection-tracking modulet skal inspicere
trafikken på den pågældende port. Som standard inspicerer den kun port 21.
Det kan man vist fortælle den med en parameter til modprobe eller til
kernen ved boot - men jeg kan ikke huske hvilken.
> (Der var en hel del forbehold, da du sagde det).
Ja, for jeg har aldrig afprøvet det. Men med iptables 1.2.7 og kerne 2.4.19
(jeg er ikke helt sikker på, om man skal patche det ind selv eller op i
2.4.20-pre for at få dette helper-modul med) skulle man kunne gøre noget i
stil med:
/sbin/iptables -m helper --helper ftp -j MARK --set-mark 42
Herefter vil alle ftp-dataforbindelser, hvor kontrolsessionen inspiceres af
ip_conntrack_ftp, blive markeret - herefter skulle man kunne lave noget QoS
på MARK-værdien. Men som sagt er det ikke afprøvet.
> Som sagt: Hvis det er ud fra et QoS-synspunkt, giver det oftest
> mere mening at prioritere bestemte typer God(TM) trafik op, end
> det at forsøge at prioritere bestemte typer Ond(TM) trafik ned.
Enig.
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
[...] Note that 120 sec is defined in the protocol as the maximum
possible RTT. I guess we'll have to use something other than TCP
to talk to the University of Mars.
----------------------------------[ moffe at amagerkollegiet dot dk ] --
| |
Jesper Dybdal (26-08-2002)
| Kommentar Fra : Jesper Dybdal |
Dato : 26-08-02 10:24 |
|
Asbjorn Hojmark <Asbjorn@Hojmark.ORG> wrote:
>On Mon, 26 Aug 2002 10:17:15 +0200, Rasmus Bøg Hansen
><moffe47@hotmail.com> wrote:
>
>> Hvis kontrolsessionen bliver styret af iptables' connection-
>> tracking kan dataforbindelserne som sagt identificeres vha.
>> helper-modulet.
>
>Ja?
>
>Kan den læse en vilkårlig TCP-session, og identificere det som
>FTP, uden at det er standard portnumre? Og kan den derefter læse
>kontrolsessionen og finde TCP-sessionen, der bærer data?
Nej.
Den kan identificere en pakke som værende "related" til en eller anden
ikke yderligere identificeret anden "forbindelse".
I praksis er det måske meget bedre end ingenting, da man naturligvis også
kan teste på protokollen, og man bruger med lidt held ikke andre
protokoller end ftp der har den egenskab at den opretter en ny
tcp-forbindelse som er "related" til en eksisterende forbindelse.
Det er i øvrigt sikkert ikke særlig svært at udvikle en
netfilter-udvidelse som specifikt kan identificere ftp-data-forbindelser -
alle de fornødne data er formodentlig tilgængelige i de eksisterende
datastrukturer i kernen.
--
Jesper Dybdal, Denmark.
http://www.dybdal.dk (in Danish).
| |
Jesper Dybdal (26-08-2002)
| Kommentar Fra : Jesper Dybdal |
Dato : 26-08-02 10:27 |
|
Jeg skrev:
>Asbjorn Hojmark <Asbjorn@Hojmark.ORG> wrote:
>
>>On Mon, 26 Aug 2002 10:17:15 +0200, Rasmus Bøg Hansen
>><moffe47@hotmail.com> wrote:
>>
>>> Hvis kontrolsessionen bliver styret af iptables' connection-
>>> tracking kan dataforbindelserne som sagt identificeres vha.
>>> helper-modulet.
>>
>>Ja?
>>
>>Kan den læse en vilkårlig TCP-session, og identificere det som
>>FTP, uden at det er standard portnumre? Og kan den derefter læse
>>kontrolsessionen og finde TCP-sessionen, der bærer data?
>
>Nej.
>
>Den kan identificere en pakke som værende "related" til en eller anden
>ikke yderligere identificeret anden "forbindelse".
Men Rasmus har netop skrevet noget andet, og han har sikkert ret - jeg er
åbenbart lidt bagud med min netfilter-viden. Så ovenstående er nok langt
fra den fulde sandhed - beklager, ignorer det venligst.
--
Jesper Dybdal, Denmark.
http://www.dybdal.dk (in Danish).
| |
Rasmus Bøg Hansen (26-08-2002)
| Kommentar Fra : Rasmus Bøg Hansen |
Dato : 26-08-02 11:01 |
|
Jesper Dybdal wrote:
>>>Kan den læse en vilkårlig TCP-session, og identificere det som
>>>FTP, uden at det er standard portnumre? Og kan den derefter læse
>>>kontrolsessionen og finde TCP-sessionen, der bærer data?
>>
>>Nej.
>>
>>Den kan identificere en pakke som værende "related" til en eller anden
>>ikke yderligere identificeret anden "forbindelse".
>
> Men Rasmus har netop skrevet noget andet, og han har sikkert ret - jeg er
> åbenbart lidt bagud med min netfilter-viden. Så ovenstående er nok langt
> fra den fulde sandhed - beklager, ignorer det venligst.
Jeg har lige kontrolleret. Funktionen er ikke med i 2.4.19 (den blev
tilsyneladende inkluderet i 2.4.20-pre1) og man skal op på iptables 1.2.7
for også at have userspace-support.
Sagt med andre ord skal man have leget med patch-o-matic eller pre-kerner
for at kende til det - det er ret nyt
/Rasmus
--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
Vampires are not visible in mirrors, which explains why they are often
backed over in parking lots.
----------------------------------[ moffe at amagerkollegiet dot dk ] --
| |
Steen Suder (26-08-2002)
| Kommentar Fra : Steen Suder |
Dato : 26-08-02 19:33 |
|
Asbjorn Hojmark wrote:
> On Mon, 26 Aug 2002 00:52:09 +0200, Steen Suder
> <sfs_news@suder.dk> wrote:
>
>
>>Hvordan identicerer jeg generelt ftp-trafik?
>
>
> Typisk på destination portnummer 21/tcp og source portnummer
> 20/tcp.
>
>
>>Er der nogle felter i ftp-pakker man kan kende ftp på?
>
>
> Jeg kan ikke umiddelbart kommer i tanker om nogen, og det vil kun
> hjælpe for kontrolsessionen (kommandoer fra klienten til serve-
> ren). Selve dataoverførslerne vil du ikke kunne identificere på
> den måde.
Jeg havde, som før anført, håbet på at der var nogle felter i pakkerne
hvor der stod "ftp" i
Det lader dog ikke til at være tilfældet.
>>Jeg skal bruge ovenstående til at lave et filter så jeg kan få
>>begrænset ftp-trafik.
>
>
> Hvad mener du med "begrænset"? Ønsker du at mindske det samlede
> forbrug af båndbredde brugt af FTP, eller ønsker du at forhindre
> nogle sessioner?
Førstnævnte: båndbreddeandel.
> Hvis det er et QoS issue, er det min erfaring, at det er meget
> lettere at prioritere noget bestemt trafik op, end at forsøge at
> identificere alt det andet, der kunne finde på at bruge bånd-
> bredden.
Det ved jeg og sådan gør jeg allerede, men det er ligesom ikke den mest
"rigtige" løsning. Det svarer lidt til Windows-folk, der "formatterer"
deres maskiner med jævne mellemrum istedet for at finde ud af hvad
problemet består i
--
Mvh. / Best regards,
Steen Suder < http://www.suder.dk/>
ICQ UIN 4133803
| |
Asbjorn Hojmark (26-08-2002)
| Kommentar Fra : Asbjorn Hojmark |
Dato : 26-08-02 20:15 |
|
On Mon, 26 Aug 2002 20:32:32 +0200, Steen Suder
<sfs_news@suder.dk> wrote:
>> Hvis det er et QoS issue, er det min erfaring, at det er meget
>> lettere at prioritere noget bestemt trafik op, end at forsøge at
>> identificere alt det andet, der kunne finde på at bruge bånd-
>> bredden.
> Det ved jeg og sådan gør jeg allerede, men det er ligesom ikke den
> mest "rigtige" løsning.
Jo, det synes jeg. Hvis symptomet er, at 'Trafiktype A kører ad
helvede til', og undersøgelser viser, det er fordi der (tidvis)
ikke er båndbredde nok, så er det da fuldstændig logisk, at prio-
ritere den trafiktype op.
Faktisk er det stort set sådan man gør i hele branchen; identifi-
cerer bestemte trafiktyper (fx. voice, CRM or whatever) som vig-
tige, og så giver dem højere prioritet.
Det er uvigtigt, om det der giver belastningen er Kazaa, Real-
Audio, FTP, news or whatever. Og det kan jo være noget andet i
næste uge.
> Det svarer lidt til Windows-folk, der "formatterer" deres maski-
> ner med jævne mellemrum istedet for at finde ud af hvad proble-
> met består i
Det er da en dårlig sammenligning. Du ved jo godt, hvad problemet
er, nemlig for lidt båndbredde.
-A
--
Heroes: Vint Cerf & Bob Kahn, Leonard Kleinrock, Robert Metcalfe, Jon Postel
Links : http://www.hojmark.org/networking/
FAQ : http://www.net-faq.dk/
| |
|
|