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: