Strona 1 z 1

[+] Iptables - dostęp do FTP za dwoma NAT

: 03 marca 2010, 18:55
autor: Finarfin
Hej.
Mam taki nietypowy problem z iptables i mnie on nieco przerósł. Otóż nie mogę się dostać do FTP-a ze swojego komputera lokalnego. Gdy łączę się w trybie aktywnym przez klienta FTP to FileZilla kończy się na:

Kod: Zaznacz cały

Polecenie:	USER XXX
Odpowiedź	331 Please specify the password.
Polecenie:	PASS ********
Odpowiedź	230 Login successful.
Status:	Połączono
Status:	Uzyskiwanie listy katalogów...
Polecenie:	PWD
Odpowiedź	257 "/"
Polecenie:	TYPE I
Odpowiedź	200 Switching to Binary mode.
Polecenie:	PORT 192,168,0,30,213,43
Odpowiedź	200 PORT command successful. Consider using PASV.
Polecenie:	LIST
Błąd:	Przekroczony czas oczekiwania na połączenie
Błąd:	Nie można otrzymać listy katalogów
I nic. A moja sieć wygląda w ten sposób - mam jeden ruter z netii, który jest połączony bezpośrednio z drugim ruterem, na którym jest podpięty Debian. A więc za pomocą rutera z netii mam NAT na ruter z Debianem, a sieć, która jest za Debianem jest za PAT-em - i myślę, że tu pojawia się problem z tym ftp, że tak kończę jak kończę.
Niestety linijki w stylu:

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0/0 --sport 20:21 -j ACCEPT 
iptables -A INPUT -p tcp -s 0/0 --dport 20:21 -j ACCEPT 
Nie załatwiają sprawy, gdyż nadal się odbijam. Może jakiś tunel między interfejsami należy zrobić?

Jak podepnę komputer bezpośrednio do rutera netii to tam FTP działa w trybie ,,active'', w ,,passive'' też nie chce działać. Czy w związku z tym jest szansa, aby to działało za ruterem debianowym? Jakie magiczne reguły w iptables muszę wpisać?

Będę wdzięczny z każdej mądrej rady.

: 03 marca 2010, 19:15
autor: grzesiek
FTP po nawiązaniu połączenia przesyła dane po portach >1024. Przepuszczasz ESTABLISHED? Masz moduł do śledzenia tych połączeń ftp_conntrack.

: 03 marca 2010, 19:57
autor: Finarfin
grzesiek, tak, wydawałem jeszcze polecenie:

Kod: Zaznacz cały

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Niemniej martwi mnie kwestia odnośnie ftp_conntrack, bo:

Kod: Zaznacz cały

$ modprobe ftp_conntrack
FATAL: Module ftp_conntrack not found.
Czy w związku z tym nie da się nic zrobić?


EDYTKA:
Już wiem, wystarczyło wydać 3 magiczne polecenia:

Kod: Zaznacz cały

modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp 
Zabrakło mi wcześniej tego słowa ip_ - teraz już wszystko działa.

Dzięki.