Port auf andere IP mit iptables forwarden

Ich stehe gerade irgendwie auf dem Schlauch, weswegen ich hoffe, dass mir jemand da wieder runter hilft.

Mein Ziel ist es alle eingehenden Verbindungen auf Port 8955 zu einer anderen IP (10.0.0.3) auf Port 22 umzubiegen. Die Regeln dafür setze ich so:
Code:
echo ""
echo "Firewall konfigurieren"
echo "----------------------"

echo "alle Regeln loeschen"
iptables --flush
iptables -t nat --flush

echo "IP-Forwarding aktivieren"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "auf Broadcast-Pings nicht antworten"
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "eigenartige Pings ignorieren"
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "vor IP-Spoofing schuetzen"
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

echo "default-policies setzen"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

echo "NAT aktivieren"
iptables -t nat -A POSTROUTING -j MASQUERADE

echo "bereits bestehende Verbindungen werden erlaubt"
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

echo "im Loopback wird alles erlaubt"
iptables -A INPUT -i lo -j ACCEPT

echo "im LAN wird alles erlaubt"
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT

echo "pings erlauben"
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

echo "SSH erlauben"
iptables -A INPUT -m state --state NEW -p tcp --dport 8954 -j ACCEPT
echo "SSH zu 123meins durchreichen"
iptables -A INPUT -m state --state NEW -p tcp --dport 8955 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 8955 -j DNAT --to-destination 10.0.0.3:22
echo "HTTP erlauben"
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
echo "HTTPS erlauben"
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
echo "IMAP erlauben"
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
echo "IMAPS erlauben"
iptables -A INPUT -m state --state NEW -p tcp --dport 993 -j ACCEPT

echo "restliche Verbindungsversuche loggen"
iptables -A INPUT -i eth1 -j LOG --log-level 4 --log-prefix 'INPUT: '

echo ""
echo "Konfiguration abgeschlossen"
echo ""

Bei einem Portscan mit nmap bekomme ich nur filtered angezeigt, der Zielrechner läuft dabei und ich kann von der Maschine, auf der ich die Regeln einrichte, mich auf 10.0.0.3:22 einloggen.

Was mache ich denn falsch?

mfg benediktibk
 
Das übliche Spiel, bin inzwischen selber drauf gekommen: Ich war zu restriktiv und habe ja für FORWARD die default policy DROP. Dementsprechend ist noch eine weitere Regel nötig:

Code:
iptables -A FORWARD -p tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Jetzt flutschts.

Danke fürs Mitlesen,
Benedikt
 
Zurück
Oben