iptables + ftp probléma.

Fórumok

iptables + ftp probléma.

Hozzászólások

hello,
nekem a kovetkezo a nyugom,
netrol szeretnek forwardolni ftp kerest belso halo fele
(a sima 21es portot meghagynam a szerver ftp eleresenek, ezert valasztottam a kulon 212es portot a redirecthez, remelem ez igy OK)
az iptables kodban ezek vannak, megsem megy, tudtok segiteni?

$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
> $IPT -A FORWARD -i $ext_if -o $local_if -m state --state NEW -p tcp -d
> 192.168.1.6 --dport 212 -j ACCEPT
>
> $IPT -t nat -A PREROUTING -p tcp --destination-port 212 -i $ext_if -j
> DNAT --to-destination 192.168.1.6:21

iptables -A INPUT -p TCP -d "server_ip" --dport 20 -s "ahonnan engedni akarod" -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p TCP -d "server_ip" --dport 21 -s "ahonnan engedni akarod" -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Ezzel a beállítással elméletileg minden általad engedélyezett host tud csatlakozni az ftp szerverre, feltéve ha az ip_conntrack és ip_conntrack_ftp modul be van töltve.

A 20 (ftp_data) porthoz így csak akkor lehet csatlakozni, ha az már egy korábban megnyitott kapcsolat része vagy következménye.

Üdv.

Duggy

[quote:c909b4d84f="Dr_Mac"]Szerintem meg pont fordítva van a dolog. Passzív módban csak a 21-es portot használja, aktív módban pedig nyit egy másik csatornát az adatátvitelhez.

szerintem is így van :wink:

[quote:3cf513a6c1="Duggy"]iptables -A INPUT -p TCP -d "server_ip" --dport 20 -s "ahonnan engedni akarod" -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -p TCP -d "server_ip" --dport 21 -s "ahonnan engedni akarod" -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Ezzel a beállítással elméletileg minden általad engedélyezett host tud csatlakozni az ftp szerverre, feltéve ha az ip_conntrack és ip_conntrack_ftp modul be van töltve.

A 20 (ftp_data) porthoz így csak akkor lehet csatlakozni, ha az már egy korábban megnyitott kapcsolat része vagy következménye.

Üdv.

Duggy

Oké, de ez egy szűkítése az eredeti megoldásnak. Akkor azzal is mennie kellene!

[quote:e5c9f70e67="vmiklos"][quote:e5c9f70e67="Dr_Mac"]Szerintem meg pont fordítva van a dolog. Passzív módban csak a 21-es portot használja, aktív módban pedig nyit egy másik csatornát az adatátvitelhez.

szerintem is így van :wink:

szerintem nem igy van. aktiv modban a kliens nyit adatcsatornat egy elore megbeszelt, >1024 porton a STOR, RECV, LIST, etc szamara, passziv modban pedig a kiszolgalo.

Aktív FTP-nél a kliens egy 1024 feletti porton csatlakozik a szerver 21-es portjához, ami aztán a választott kliens port+1-en visszaválaszol, majd a 20-as portól adja az adatot a kliensnek.
Passzív módban egy csatorna van erre kijelölve, lényegében a tűzfalak miatt találták ki, hogy szűrni lehessen a szervertől a kliensnek küldött adatokat. A kliens itt két 1024 feletti random portot választ és egyikkel a 21-es portra csatlakozik a szerveren, a másikkal a szerver egy random portjára.

Az abrabol latszik, hogy elore nem tudhatod, hogy milyen port-rol jon az kliens kerese.
Tehat forras portot bejovo kereseknel nem adhatsz meg es
kimeno valaszoknal celportot szinten nem adhatsz meg...

az 1026, 1027 es 2024 csak pelda, es a 3-as es 4-es nyilak iranya a lenyeg

[quote:ee70129cfa="snq-"]az 1026, 1027 es 2024 csak pelda, es a 3-as es 4-es nyilak iranya a lenyeg

Igen, passzív ftp-nél mindig a kliens kezdeményez :P

[quote:3003b54eeb="snq-"]az 1026, 1027 es 2024 csak pelda, es a 3-as es 4-es nyilak iranya a lenyeg

De a lenyeg, hogy 1024 feletti "veletlen" (elore nem meghatarozott / nem tudhato) portrol jon a kliens...

[code:1:3003b54eeb]
iptables -A INPUT -p tcp --sport ftp -j ACCEPT
...
iptables -A INPUT -p tcp --sport ftp-data -j ACCEPT
...
[/code:1:3003b54eeb]

Ez igy nem jo mert csak azokat a kereseket engedi be amik az FTP (21) es FTP-DATA (20) portokrol jonnek...

[quote:0f04522094="norcrys"]Igen, passzív ftp-nél mindig a kliens kezdeményez :P

amennyiben a kezdemenyezes alatt egy PASV kuldest es varakozast PORT <akarmi>-re ertesz, igen :)

[quote:8d710322a0="maszili"][quote:8d710322a0="snq-"]az 1026, 1027 es 2024 csak pelda, es a 3-as es 4-es nyilak iranya a lenyeg

De a lenyeg, hogy 1024 feletti "veletlen" (elore nem meghatarozott / nem tudhato) portrol jon a kliens...

[code:1:8d710322a0]
iptables -A INPUT -p tcp --sport ftp -j ACCEPT
...
iptables -A INPUT -p tcp --sport ftp-data -j ACCEPT
...
[/code:1:8d710322a0]

Ez igy nem jo mert csak azokat a kereseket engedi be amik az FTP (21) es FTP-DATA (20) portokrol jonnek...

Igen, az 1024 feletti portokat engedélyezni kell...

Esetleg megprobalhatod igy::

[code:1:7972cb34e3]
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

...

# aktiv ftp
iptables -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT
# ha passziv ftp (ftp szerverben be kell allitani hogy ide jojjon)
iptables -A INPUT -p tcp --dport 60000:60010 -j ACCEPT
...

iptables -A OUTPUT -j ACCEPT

...

[/code:1:7972cb34e3]

Üdv!

a gondom a következő,

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --sport ftp -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -A INPUT -p tcp --sport ftp-data -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT

ugyanezek be vannak állítva az OUTPUT láncon is, de mégsem megy az ftp mi kell még hol lehet a hiba ???

a rendszer debian woody kizárólag ftp szerverként kellene üzemelnie egy lanon.

[quote:6afbad4452="Anonymous"]Üdv!

a gondom a következő,

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --sport ftp -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -A INPUT -p tcp --sport ftp-data -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT

ugyanezek be vannak állítva az OUTPUT láncon is, de mégsem megy az ftp mi kell még hol lehet a hiba ???

a rendszer debian woody kizárólag ftp szerverként kellene üzemelnie egy lanon.

Az ip_conntrack és ip_conntrack_ftp kernel modul használatát már próbáltad?

Gus

Annyit kérdeznék, hogy nem próbáltad az OUTPUT láncot nem korlátozni?

Active FTP

Server Kliens

ftp-cmd
21 <----------> port < 1024

ftp-data
20 <-----------> port <1024

Ha ez így van, akkor az eredetileg leírt és az általam leírt módszerek működni fognak,ha az OUTPUT láncon nincs korlátozás. Vagy az OUTPUT láncon engedélyezni kell a 20 és 21-es portról kifelé menő csomagokat.

Itt nincsen más megoldás. Egyrészt mert így logikus, másrészt mert ha megnézed a neten az ilyen jellegű témákat, ott is ezeket írják. És nem utolsó sorban, nálam is így működik. Egyelőre hiba nélkül.
Ami még gázos lehet, ha az FTP szerver progi úgy van konfigolva, hogy DNS-lookup-oljon a kapcsolódó kliens tekintetében és a DNS kérések és/vagy a válaszok blokkolva vannak. Márpedig ha OUTPUT policy DROP, akkor, ez is lehet a probléma.

Duggy

Jaj!

Mégegyszer átfutottam a témán (egy kis pihenés után). Az alap beállításnál felesleges --sport ftp és --sport ftp-data sorok, hiszen a forrás portok sohasem lesznek 20 vagy 21.

Megnéztem az általam leírt részletet isés továbbra is azt mondom, hogy az jó, annyi kiegészítéssel, hogy az OUTPUT láncot nem kellene korlátozni, vagy ha igen, akkor így:

iptables -A OUTPUT -p tcp -s "szerver_ip_cím" --sport 20:21 -j ACCEPT

Így elméletileg engedélyezett minden olyan kifelé menő forgalom, amely a 20 és 21-es portokról indul.

Végül a DNS lookup-os dologra is oda kellene figyelni.

Duggy

[quote:cf999ecc97="Anonymous"]Üdv!

a gondom a következő,

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp --sport ftp -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -A INPUT -p tcp --sport ftp-data -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT

ugyanezek be vannak állítva az OUTPUT láncon is, de mégsem megy az ftp mi kell még hol lehet a hiba ???

a rendszer debian woody kizárólag ftp szerverként kellene üzemelnie egy lanon.

Ha be tudnád másolni ide az 'iptables -L' parancs kimenetét, könnyebb volna. Egyébként a conntrack-ftp modul használata tényleg nem hülyeség.

Haho!

Szerintem az lehet a gond, hogy az ftp server, amikor passziv adatatvitelt
folytat, akkor nem csak a 21es portot hasznalja, hanem nyitogat masik
portokat is. Ezeket ha nem nyitod ki, akkor csak aktiv modban fog menni az
ftpzes. Pure ftpd alatt pl megadhato, hogy hanyas portokon menjen a passziv
uzemmod, azokat pedig kulon ki kell nyitni a tuzfalon.

Bye,
onyx

[quote:e2fbe4a953="onyx"]Haho!

Szerintem az lehet a gond, hogy az ftp server, amikor passziv adatatvitelt
folytat, akkor nem csak a 21es portot hasznalja, hanem nyitogat masik
portokat is. Ezeket ha nem nyitod ki, akkor csak aktiv modban fog menni az
ftpzes. Pure ftpd alatt pl megadhato, hogy hanyas portokon menjen a passziv
uzemmod, azokat pedig kulon ki kell nyitni a tuzfalon.

Bye,
onyx

Szerintem meg pont fordítva van a dolog. Passzív módban csak a 21-es portot használja, aktív módban pedig nyit egy másik csatornát az adatátvitelhez.