iptables przepuszczanie FTP

Masz problemy z siecią bądź internetem? Zapytaj tu
kyo
Posty: 7
Rejestracja: 20 czerwca 2009, 23:31

iptables przepuszczanie FTP

Post autor: kyo »

Witam,

Potrzebuje skonfigurować mały router. Router ma przepuszczać VOIPa, WWW i FTP (w tym FTP pasywny), jednak nie wiem gdzie robię błąd, ale passiv mode mi nie działa.... widzę, że jest rozwiązywanie nazw, negocjacja ale dane są blokowane... wyczytałem gdzieś że trzeba uaktywnić jakiś zakres portów >1024 ale nie wiem czego mi brakuje w konfiguracji poniżej:

Kod: Zaznacz cały

IPTABLES=/sbin/iptables #ścieżka do iptables

#czyszczenie starych wpisow
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle


#deklaracja domyslnej polityki na DROP dla ruchu przychodzacego i forwardowanego, dla OUTPUT jest domyslnie, ACCEPT 

$IPTABLES -P FORWARD DROP
$IPTABLES -P INPUT DROP

## ustawienie przekazywania pakietow
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -A POSTROUTING -t nat -o eth2 -s 192.168.1.0/24 -j MASQUERADE



# przepusc pakiety przekazywane z VOIP
$IPTABLES -A FORWARD -p tcp --dport 10000:20000 -j LOG
$IPTABLES -A FORWARD -p tcp --dport 10000:20000 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 10000:20000 -j LOG
$IPTABLES -A FORWARD -p tcp --sport 10000:20000 -j ACCEPT

#przepuść ftp 
$IPTABLES -A FORWARD -p tcp --dport 20:21 -j LOG
$IPTABLES -A FORWARD -p tcp --dport 20:21 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 20:21 -j LOG
$IPTABLES -A FORWARD -p tcp --sport 20:21 -j ACCEPT


#ftp niezbedne do trybu pasywnego
#$IPTABLES -A FORWARD -p tcp --dport 47000:54000 -j LOG
#$IPTABLES -A FORWARD -p tcp --dport 47000:54000 -j ACCEPT


#WWW
$IPTABLES -A FORWARD -p tcp --dport 80 -j ACCEPT


#DNS
$IPTABLES -A FORWARD -p udp --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp --sport 53 -j ACCEPT

##kontakt z routerem via SSH
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

#WWW lokalnego komputera
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

#DNS lokalnego komputera
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT

Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

1. jakie porty pasywne masz skonfigurowane na ftp
2. gdzie jest uruchomiona usługa ftp - na tym routerze ?
kyo
Posty: 7
Rejestracja: 20 czerwca 2009, 23:31

Post autor: kyo »

Jestem w następującej sytuacji: ja już jestem za natem i tworzę podsieci za swoim routerem.

Ja nie uruchamiałem tego serwera FTP (więc nie wiem jak on jest skonfigurowany), ale wiem, że klient (który będzie się łączył zza mojego rutera) zawsze łączy się w trybie pasywnym. Chodzi o to aby umożliwić łączenie się użytkownikowi w trybie pasywnym (ang. passive). I teraz tak: dla testów biorę np. jakieś FTP z obrazem Debiana i mam np. port 35700, wiadomo, że na innym FTP konfiguracja będzie inna. Czytałem gdzieś, że port ten jest negocjowany. Więc, miałem nadzieję, że podczas negocjacji wpadnie w mój zakres, ale obserwując pakiety nie widzę by miała miejsce jakaś dalsza negocjacja. Przeleci tylko po jednym pakiecie: propozycja portu 35700 i akceptacja i tyle.

Edycja:

W
iem, że pewnie problem rozwiązałaby reguła typu:

Kod: Zaznacz cały

$IPTABLES -A FORWARD -p tcp -sport 1024: -dport:1024: -j ACCEPT
ponieważ z tego co gdzieś znalazłem z obu stron jest otwierany port losowy. Ale taka reguła pozwoli na zbyt dużo w mojej sieci (i np. połączenia z VOIP też się w nią złapią, a chcę je później oznaczać inaczej aby pobawić się QoSem).
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

W konfiguracji ftp zawęź zakres portów transportu.
Awatar użytkownika
bbmti
Posty: 39
Rejestracja: 17 lipca 2007, 11:03
Lokalizacja: Kraków

Post autor: bbmti »

Mnie w Twoim skrypcie brakuje jeszcze jednej reguły:

Kod: Zaznacz cały

iptables -A FORWARD -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Najlepiej dodaj gdzieś na początku konfiga łańcucha FORWARD i daj znać czy pomogło.
ODPOWIEDZ