Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

21.02.2008, 16:31

IPTables und PortForwarding

Hallo zusammen,

ich habe ein Problem mit iptables: Es handelt sich bei dem verwendeten PC um einen VPN Server, der mit einer festen IP-Adresse (eth0) mit dem Internet verbunden ist. An einer zweiten Netzwerkkarte (eth1) hängt das lokale Netz. Die VPN-Benutzer wählen sich über l2tp und solchen ppp Interfaces ein. Auf diesem Rechner ist iptables installiert. Er soll nicht als Router dienen, sondern lediglich eine Port Forwardning-Regel beinhalten. Ich habe versucht, Port 80 auf einen PC im internen Netz weiterzuleiten, mit diesem Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done

iptables -F
iptables -t nat -F
iptables -X

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.57:80


Leider funktioniert das Ganze so nicht. Habe ich irgendetwas vergessen? Was muss ich noch machen, um diesen einen Port weiterzuleiten? Iptables funktioniert jedenfalls grundsätzlich, sämtliche Ports sperren kann ich ohne Probleme.

MfG
flyceo

2

21.02.2008, 23:00

Hi

Also eine entscheidende Regel fehlt dir schon mal ;)
Und zwar:

Quellcode

1
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.57 -j SNAT --to-source $IP_ETH0

($IP_ETH0 mit der IP Adresse von eth0 austauschen)
Auf gut deutsch. Du brauchst auch eine Regel die die Pakete auch wieder hinausleitet ;)

2tens:
Hängt der PC an eth0 wirklich direkt am Internet? Oder ist da noch ein Router dazwischen? Wenn ja, musst du auch schauen das auch beim Router der Port weitergeleitet wird..

3tens:
Wie testest du eigentlich ob man auf Port 80 zugriff auf deinen internen Rechner hat? Hast du dort einen Webserver (Port 80) laufen?

3tens:
Solltest du auf eth0 wirklich direkt am Internet hängen, ist es meiner meinung nach doch etwas riskant alle default policies (zb iptables -P INPUT ACCEPT) auf ACCEPT zu stellen. Somit könnte man vom Internet aus über allen Ports wo ein Dienst läuft (ssh zb) auf deinen PC zugreifen.. ;)

Oder 4tens:
Versuchst du einfach das Internet für das interne Netzwerk zur Verfügung zu stellen?

greetz
To mess up a Linux box, you need to work at it; to mess up your Windows box, you just need to work on it.

3

25.02.2008, 09:17

Danke devion, für deine schnelle Antwort. Ich werde diese Regel heute noch hinzufügen und sehen, was passiert.


2tens:
Hängt der PC an eth0 wirklich direkt am Internet? Oder ist da noch ein Router dazwischen? Wenn ja, musst du auch schauen das auch beim Router der Port weitergeleitet wird..

Ja, der PC ist über eine feste IP-Adresse direkt mit der Ausenwelt verbunden.

Zitat


3tens:
Wie testest du eigentlich ob man auf Port 80 zugriff auf deinen internen Rechner hat? Hast du dort einen Webserver (Port 80) laufen?

Genau, auf dem internen Rechner läuft ein Webserver, auf dem eine Apache-Testseite zu sehen ist.

Zitat


3tens:
Solltest du auf eth0 wirklich direkt am Internet hängen, ist es meiner meinung nach doch etwas riskant alle default policies (zb iptables -P INPUT ACCEPT) auf ACCEPT zu stellen. Somit könnte man vom Internet aus über allen Ports wo ein Dienst läuft (ssh zb) auf deinen PC zugreifen.. ;)

Das ist schon klar, allerdings ist dieser PC durch besonders starke Passwörter gesichert. Ein SSH-Zugriff von außen ist nämlich unbedingt notwendig.

Zitat


Oder 4tens:
Versuchst du einfach das Internet für das interne Netzwerk zur Verfügung zu stellen?

Nein, das versuche ich nicht. Es gibt noch einen anderen PC im Netz, der den Gateway darstellt. Dieser hat eine weitere Verbindung ins Internet, allerdings mit einer dynamischen IP-Adresse. Dieser Rechner regelt den gesamten Verkehr der Clients nach außen. Nur eben einer hat seine eigene Verbindung mittels fester IP.

MfG
flyceo

4

25.02.2008, 09:35

Also eine entscheidende Regel fehlt dir schon mal ;)
Und zwar:

Quellcode
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.57 -j SNAT --to-source $IP_ETH0

($IP_ETH0 mit der IP Adresse von eth0 austauschen)
Auf gut deutsch. Du brauchst auch eine Regel die die Pakete auch wieder hinausleitet ;)

Ich habe diese Regel hinzugefügt, leider funktioniert das Port-Forwarding trotzdem noch nicht.

5

25.02.2008, 22:21

Hmm, also von denn Regeln her bräuchte man eigentlich nicht mehr schreiben.
Aber wenn du einen anderen Server fürs inet hast, vlt versucht der server dann die Pakete über die andere Leitung hinauszuschicken.
Vlt musst du als Gateway denn Server mit der fixen IP angeben.

greetz
To mess up a Linux box, you need to work at it; to mess up your Windows box, you just need to work on it.