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"
'Viper