[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

problem z iptables + pasywny ftp



Witam wszystkich,

Wiem że problem jest znany i uwierzcie walczę już z tym długo ale już mi się siwe włosy pokazały i nie mogę zajarzyć gdzie jest błąd.

Sytuacja wygląda tak, jest router na debianie, ma dwa interfejsy EXT_IF i INT_IF, za routerem jest inna maszyna z której chcę wystawić w trybie passive, ftp na zewnątrz (na IIS). Autentykacja z zewnątrz, przebiega ok ale przy próbie listowania katalogu otrzymuję albo can't open data port..albo connection closed transfer aborted w zależności jak zmieniam firewalla..przesyłam cały skrypt iptables ...być może gdzieś wcześniej robię głupi błąd którego nie widzę, będę bardzo wdzięczny za pomoc.

Pozdrawiam serdecznie
Maciej Kóska


########################################################
# Konfiguracja zmiennych #
########################################################

IPTABLES="iptables"

EXT_IF="pvc0"
EXT_IP="1.2.3.4"

INT_IF="eth0"
INT_IP="10.0.0.1"


########################################################
# Ładowanie modułów i konfiguracja #
########################################################

echo "Ładowanie modułów...";

for module in ip_tables ip_conntrack ip_conntrack_ftp
do modprobe $module
done

##### FORWARD IP między interfejsami #####
echo "1" > /proc/sys/net/ipv4/ip_forward

##### Ochorna przed SPOOFED adresami IP #####
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

##### Blokowanie ICMP ECHO do routera i ICMP ECHO broadcastów #####
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

##### Wył±czenie routingu Ľródłowego pakietu #####
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

##### Logowanie pakietów Ľródłowych bez znanego routingu tych pakietów ####
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians


########################################################
# Czyszczenie wszystkich łańcuchów #
########################################################

$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -F -t filter
$IPTABLES -X -t filter
$IPTABLES -F -t mangle
$IPTABLES -X -t mangle


########################################################
# Ustawienie domy¶lne dla INPUT, FORWARD i DROP #
########################################################

$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -i $INT_IF -o $EXT_IF -d 0/0 -j ACCEPT
$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -m state --state RELATED,ESTABLISHED -j ACCEPT

$IPTABLES -P INPUT DROP
$IPTABLES -A INPUT -i $INT_IF -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

$IPTABLES -P OUTPUT ACCEPT


########################################################
# Internet dla sieci wewnętrznej #
########################################################

###### NATOWANIE adresów wewnętrznych #####

##### Opcja 1 - przy stałym publicznym IP #####
$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP

###### Opcja 2 - przy dynamicznym publicznym IP #####
# $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -d 0/0 -j MASQUERADE



########################################################
# Transparentny proxy #
########################################################

#$IPTABLES -t nat -A PREROUTING -i $INT_IF -p tcp --dport 80 -j DNAT --to-destination 192.168.1.4:8080


########################################################
# Wystawianie zasobów na zewn±trz #
# (SSH, WWW, FTP, RDP) #
########################################################

###### Zmieniony port SSH na 7777 #####
$IPTABLES -A INPUT -i $EXT_IF -p tcp --dport 7777 -j ACCEPT
#$IPTABLES -A INPUT -i $EXT_IF -p tcp --dport 22 -j ACCEPT


##### Usługi terminalowe (3389) #####

##### Firma x #####

$IPTABLES -t nat -A PREROUTING -p tcp -s blah1 --dport 3389 -j DNAT --to-destination 10.0.0.5:3389 $IPTABLES -t nat -A PREROUTING -p tcp -s blah2 --dport 3389 -j DNAT --to-destination 10.0.0.5:3389 $IPTABLES -t nat -A PREROUTING -p tcp -s blah3 --dport 3389 -j DNAT --to-destination 10.0.0.5:3389

$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -p tcp --dport 3389 -j ACCEPT


##### Serwer WWW (80) #####
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXT_IF --dport 80 -j DNAT --to-destination 10.0.0.4:80
$IPTABLES -A FORWARD -i $EXT_IF -p tcp --dport 80 -j ACCEPT


##### Serwer FTP na innej maszynie w sieci #####
##### Port kontrolny 21 wykorzystywany zarówno przy aktywnym jak i pasywnym trybie pracy ######

$IPTABLES -t nat -A PREROUTING -p tcp -i $EXT_IF --dport 21 -j DNAT --to-destination 10.0.0.4:21
$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -p tcp --dport 21 -j ACCEPT


##### Opcja 1 - aktywny FTP #####
##### Aktywny serwer FTP na innej maszynie w sieci #####

$IPTABLES -t nat -A PREROUTING -p tcp -i $EXT_IF --dport 20 -j DNAT --to-destination 10.0.0.4:20
$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -p tcp --dport 20 -j ACCEPT


##### Opcja 2 - pasywny FTP #####
##### Pasywny serwer FTP na innej maszynie w sieci #####

$IPTABLES -t nat -A PREROUTING -p tcp -i $EXT_IF --dport 7500:7525 -j DNAT --to-destination 10.0.0.4 $IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -p tcp --dport 7500:7525 --sport 7500:7525 -j ACCEPT


########################################################
# Przekierowania na bramki VOIP #
########################################################


$IPTABLES -t nat -A PREROUTING -s blah4 -p tcp --dport 6001 -j DNAT --to 10.0.0.253:80 $IPTABLES -t nat -A PREROUTING -s blah4 -p tcp --dport 6002 -j DNAT --to 10.0.0.222:80 $IPTABLES -t nat -A PREROUTING -s blah4 -p tcp --dport 6003 -j DNAT --to 10.0.0.223:80


$IPTABLES -t nat -A PREROUTING -s blah5 -p tcp --dport 6001 -j DNAT --to 10.0.0.253:80 $IPTABLES -t nat -A PREROUTING -s blah5 -p tcp --dport 6002 -j DNAT --to 10.0.0.222:80 $IPTABLES -t nat -A PREROUTING -s blah5 -p tcp --dport 6003 -j DNAT --to 10.0.0.223:80


$IPTABLES -t nat -A PREROUTING -s blah6 -p tcp --dport 6001 -j DNAT --to 10.0.0.253:80 $IPTABLES -t nat -A PREROUTING -s blah6 -p tcp --dport 6002 -j DNAT --to 10.0.0.222:80 $IPTABLES -t nat -A PREROUTING -s blah6 -p tcp --dport 6003 -j DNAT --to 10.0.0.223:80


$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -p tcp -m multiport --sport 6001,6002,6003 -j ACCEPT


########################################################
# Ustawienie dla OPENVPNa #
########################################################

$IPTABLES -A INPUT -i $EXT_IF -p udp --dport 1194 -j ACCEPT
$IPTABLES -A INPUT -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -o tun+ -j ACCEPT



Reply to: