Problem bei Ftp-Weiterleitung+Iptables

Gemeinsam ins Internet mit Firewall und Proxy.
Antworten
Benutzeravatar
ViperRT-10
Beiträge: 3
Registriert: 29.03.2004 14:35:10
Wohnort: Stuttgart
Kontaktdaten:

Problem bei Ftp-Weiterleitung+Iptables

Beitrag von ViperRT-10 » 12.04.2004 18:50:40

Hallo Jungs und Mädels,

bitte helft mir, sonst drehe ich noch durch.

Ich hab ein IPtables-script geschrieben, soweit ist auch alles okay. Nur diese blöden FTP-weiterleitungen tun nicht, woran liegt es?

Anbei der Code:

Code: Alles auswählen


 #/bin/bash

echo "executing script"

DNS="145.253.2.11 145.253.2.75"
FTPS="192.168.1.3"

SERVER2NET="ftp ftp-data http https"
NET2SERVER="http https"

LAN2SERVER="ssh domain http https sunrpc hostname rpc2portmap webcache ipp mysql 10000 32768"
SERVER2LAN="ssh domain hostname rpc2portmap ipp 32768"

NET2LAN="ftp ftp-data"
LAN2NET="ftp ftp-data http https pop3s cvspserver 5190 8000 8030 8032 8400 8780"

PORT2REJECT="auth 4661 4662 4663 4664 4665 4666"
allowedICMP="echo-request destination-unreachable source-quench time-exceeded"

IFACE_INT="eth1"
IFACE_EXT="ppp0"

##### Module Laden #########
############################
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

##### Kernelparameter ######
############################
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

##### Regeln zuruecksetzen #####
################################
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "all rules deleted"

#### neue Regeln definieren ####
################################
iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "input state defined !!!"

iptables -A OUTPUT -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "output state defined !!!"

#### SERVER <--> NET ####
#########################
for port in $SERVER2NET; do
	iptables -A OUTPUT -p tcp --sport $port -j ACCEPT
	iptables -A OUTPUT -p udp --sport $port -j ACCEPT
	echo "srv2net: Port $port allowed"
done

for port in $NET2SERVER; do
	iptables -A INPUT -p tcp --dport $port -j ACCEPT
	iptables -A INPUT -p udp --dport $port -j ACCEPT
	echo "net2srv: Port $port allowed"
done

#### SERVER <--> LAN ####
#########################
for port in $SERVER2LAN; do
	iptables -A OUTPUT -o $IFACE_INT -p tcp --sport $port -j ACCEPT
	iptables -A OUTPUT -o $IFACE_INT -p udp --sport $port -j ACCEPT
	echo "srv2lan: Port $port on $IFACE_INT allowed"
done

for port in $LAN2SERVER; do
	iptables -I INPUT -i $IFACE_INT -p tcp --dport $port -j ACCEPT
	iptables -I INPUT -i $IFACE_INT -p udp --dport $port -j ACCEPT
	echo "lan2srv: Port $port on $IFACE_INT allowed"
done


######################
#### LAN <--> NET ####
######################

iptables -A FORWARD -o $IFACE_EXT -p ALL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -o $IFACE_INT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "nic2lan: $IFACE_INT opened"

iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 20 -j DNAT --to-destination $FTPS:20
iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 21 -j DNAT --to-destination $FTPS:21
iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 80 -j DNAT --to-destination $FTPS:80

#### LAN --> NET ####
#####################

for port in $LAN2NET; do
	iptables -A FORWARD -o $IFACE_EXT -p tcp --sport $port -j ACCEPT
	iptables -A FORWARD -o $IFACE_EXT -p udp --sport $port -j ACCEPT
	echo "lan2net: Port $port on $IFACE_EXT allowed"
done

for port in $NET2LAN; do
	iptables -A FORWARD -o $IFACE_INT -p tcp --sport $port -j ACCEPT
	iptables -A FORWARD -o $IFACE_INT -p udp --sport $port -j ACCEPT
	echo "net2lan: Port $port on $IFACE_INT allowed"
done


#############
#### NAT ####
#############

#### MASQUERADE-ing ####
########################

iptables -t nat -A POSTROUTING -o $IFACE_EXT -j MASQUERADE

### DNS ###
###########
iptables -A OUTPUT -p udp --sport 1024: --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 53 -j ACCEPT

for dns in $DNS; do
	iptables -A INPUT -p udp -s $dns --sport 53 -j ACCEPT
	iptables -A INPUT -p tcp -s $dns --sport 53 -j ACCEPT
	echo "DNS $DNS opened"
done

#### ICMP (z.b. PING) ####
##########################
for type in $allowedICMP; do
	iptables -A INPUT -i $IFACE_INT -p icmp --icmp-type $type -j ACCEPT
	iptables -A OUTPUT -o $IFACE_INT -p icmp --icmp-type $type -j ACCEPT
	echo "ICMP: $type on $IFACE_INT allowed"
done

#### LOGGING ####
#################

for PORT in $PORTS2REJECT; do
	iptables -A INPUT  -p tcp --dport $PORT -j REJECT --reject-with tcp-reset
	iptables -A FORWARD -i $IFACE_EXT -p tcp --dport $PORT -j REJECT --reject-with tcp-reset
	echo "$PORT will be rejected"
done

### ppp0 hochfahren ###
#######################
/sbin/ifup ppp0

### DynDNS ###
##############
ez-ipupdate -c /usr/bin/ez-ipupdate.conf

echo "FINISHED"
Danke Euch im Voraus.

'Viper
Finger weg von harten Drogen, da liegt kein Segen drauf...

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 12.04.2004 19:49:14

Bitte aussagekräftige Toppics verwenden. Hab das mal hier gefixt.

cu

Benutzeravatar
ViperRT-10
Beiträge: 3
Registriert: 29.03.2004 14:35:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von ViperRT-10 » 12.04.2004 20:10:43

Danke schön.

Nur bei meinem Problem hilft es mir nicht wirklich weiter... :roll:

'Viper
Finger weg von harten Drogen, da liegt kein Segen drauf...

fte213
Beiträge: 70
Registriert: 11.01.2004 12:31:28
Wohnort: 74889 Sinsheim

Beitrag von fte213 » 08.05.2004 00:37:20

7. Spezielle Protokolle
Manche Protokolle werden nicht gern geNATted. Fuer jedes dieser Protokolle muessen zwei Erweiterungen geschrieben werden; eine fuer das Connection-Tracking des Protokolls, und eine fuer das eigentliche NAT.

In der netfilter-Distibution gibt es zur Zeit Module fuer FTP: ip_conntrack_ftp.o und ip_nat_ftp.o. Wenn Du diese Module mit insmod in den Kernel laedst (oder sie permanent hineinkompilierst), sollte NAT auf FTP-Verbindungen funktionieren. Wenn Du das nicht tust, kannst Du nur passives FTP verwenden, und sogar das koennte nicht zuverlaessig funktionieren, wenn Du mehr als einfaches Source-NAT machst.


http://www.netfilter.org/documentation/ ... WTO-7.html

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 08.05.2004 09:22:32

Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Antworten