Hallo und Guten Tag,

Ich plage mich seit Tagen mit iptables masquerading und port forwarding.
Die Installation ist ein SuSE V8 Linux mit firewall2. Die Kiste dient als Router/Gateway, hat ein 192.168 Network auf eth0 und ein ppp0 (dial-up) mit fixer ip Adresse. Nennen wir diese Maschine GW. An dem 192.168 Network hängt auch eine IBM AS400 namens AS400.

Was ich möchte ist folgendes:

Vom Internet her sollen telnet Verbindungen zu GW erlaubt sein.
Vom Internet her sollen telnet verbindungen zu AS400 erlaubt sein.
Vom Intranet soll aller augehende Verkehr masqueraded werden, keine Restriktionen.

SuSE V8 stellt bereits eine vor-konfigurierte Firewall (firewall2) zur Verfügung. Es klappt auch alles, mit der Ausnahme von der telnet verbindung zu AS400.

Nach vielem Rechechieren hab ich mir folgenden script zusammengebaut:
#! /bin/bash

# Interfaces
IFACE_IN=eth0 # internal interface
IFACE=ppp0 # external interface

# IP Addresses
INT_IP=192.168.100.0/24 # IP Addresses on internal interface
HOST_IP=xx.xx.xx.xx # IP Address of external interface
AS400_IP=192.168.100.1 # IP Address of AS400

iptables -t nat -A POSTROUTING -o $IFACE -s $INT_IP -j MASQUERADE
iptables -t nat -A PREROUTING -d $HOST_IP -p tcp --dport 98 -j DNAT --to $AS400_IP:23
iptables -t nat -A POSTROUTING -s $INT_IP -j SNAT --to $HOST_IP

Wenn ich alled richtig verstehe, setzt das erste iptables ein generelles masquerading auf, das zweite mapped den Port 98 vom ppp0 auf port 23 von der AS400, und das dritte sollte die Antwort auf den telnet request von AS400 ans ppp0 weiterleiten.

Leider klappts nicht. Was mach ich falsch und wo liegt mein Überlegunsfehler?


Vielen Dank

Peter Sutter