• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Portforwarding von Linux Router zu WinXP Clients...

boevent

Newbie
Hallo,
also ich hoffe wie wahrscheinlich jeder das es hier das richtige Forum ist und hoffe ebenso das mir jemand helfen mag ;)

Vor einiger Zeit habe ich mir einen Linux Server eingerichtet, der direkt an das Internet angeschlossen ist und die anderen WinXP Clients routet. Hoffe das sagt man so :)
Das mit dem internet usw. funktioniert auch alles.

Jetzt ist es aber so, dass ich auf diesen Windows Clients Programme nutzen möchte, welche direkt aus dem Internet her angesprochen werden müssen.
Ich möchte mit dem WinXP Rechner über ICQ Dateien empfangen können (Glaube: Standart Port 5190)
dann möchte ich WINVNC für den WINXP Rechner nutzen können (ist so ein Programm um sich von einen anderen Rechner mittels remote denke ich mal? Zugriff auf den Computer mit Fernsteuerung, also Mit kompletten Monitor, Tastatur und Maus)
Ich möchte einen RUNUO Server laufen lassen, welcher über Port 2593 angesprochen wird.

Ich habe zwei Netzwerkkarten

edit: genau andersrum.. jetzt stimmt es. Hatte eth0 beid er 1.1 stehen. das war falsch

1.) eth1: 192.168.1.1 --> ist an das DSL Modem angeschlossen
2.) eth0: 192.168.0.1 --> ist an das switch angeschlossen, wo die WinXP Rechner dranhängen.

Ich nutze Die SuSEfirewall2

Ich habe heute ein Online Update gemacht, falls Fragen zum Kernel kommen. Wie gesagt habe mir den Server mal eingerichtet um mich weiter damit zu beschäftigen. Wie man die Kernel Version anzeigt, habe ich mich jetzt nicht drum gekümmert. Aber denke ich auch nicht so wichtig :)

Mein Internet Provider ist Congster

Mein Linux ist SuSE Linux 9.2.

Ich habe schon viel im www gesucht und auch mal die Suchfunktion dieses Forums genutzt und finde imemr nur die Antwort auf mein problem ohne erläuterung. Die Antwort müsste iptables sein.
Habe in der Richtung schon einiges ausprobiert und in der SuSEfirewall2-custom etwas ergänzt, doch kann man in den Server von außen immernoch nicht connecten (ping geht).

Habe so etwas eingefügt:
iptables -I PREROUTING -t nat -p tcp -i ppp0 --dport 2593 -j DNAT --to 192.168.0.2:2593

da ich mich mit der Materie jedoch noch nicht ausreichend eher gar nicht auskenne, weiß ich damit jedoch nicht viel anzufangen und es ist verständlich, das es nicht funktioniert. Ich weiß ja nichtmals wo ich es in meine SuSEfirewall2-custom Datei einfügen muss. Am Ende oder in eine der vorgefertigten Klassen oder wie das heißt.

Zu Begin hatte ich diese Zeile da oben in die SuSEfirewall2 Datei hineingeschrieben und dann ist es nach dem Neustart der Firewall einfach verschwunden? Hat er es gelöscht weil es dort nicht hingehört oder hat er es in die entsprechende datei eingefügt?

Achja, die entsprechenden Ports sind unter der SuSEfirewall2 unter den Experten Einstellungen freigegeben.

ich bin eingeloggt als root.

edit: Acha, ich mache alles über Console. Alles über das lokale Netz mittels putty.

edit2:Gruß Thomas

Ich hoffe ich habe nichts an nötigen Infos vergessen und jemand ist bereit mir zu helfen. Vielen Dank schonmal im vorraus.

Ich poste hier nochmal meine SuSEfirewall Datei, damit kennt ihr die Einstellungen zu IP Weiterleiten etc.
Das ganze auskommentierte habe ich weggelassen, sonst wäre es ja eine Überflutung hier ;)

-----------SuSEfirewall2-------------------------------------------------------

# Copyright (c) 2000-2002 SuSE GmbH Nuernberg, Germany. All rights reserved.
# Copyright (c) 2003,2004 SuSE Linux AG Nuernberg, Germany. All rights reserved.
#
# Author: Marc Heuse, 2002
#
# If you have problems getting this tool configures, please read this file
# carefuly and take also a look into
# -> /usr/share/doc/packages/SuSEfirewall2/EXAMPLES !
# -> /usr/share/doc/packages/SuSEfirewall2/FAQ !
#
# /etc/sysconfig/SuSEfirewall2
#
# for use with /sbin/SuSEfirewall2 version 3.2
#
# ------------------------------------------------------------------------ #

FW_QUICKMODE="no"
FW_DEV_EXT="dsl0"
FW_DEV_INT="eth-id-00:0e:2e:36:66:62"
FW_DEV_DMZ=""
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_DEV="$FW_DEV_EXT"
FW_MASQ_NETS="0/0"
FW_PROTECT_FROM_INTERNAL="no"
FW_AUTOPROTECT_SERVICES="yes"
FW_SERVICES_EXT_TCP="{entfernt}"
FW_SERVICES_EXT_UDP="{entfernt}"
FW_SERVICES_EXT_IP=""
FW_SERVICES_EXT_RPC=""
FW_SERVICES_DMZ_TCP=""
FW_SERVICES_DMZ_UDP=""
FW_SERVICES_DMZ_IP=""
FW_SERVICES_DMZ_RPC=""
FW_SERVICES_INT_TCP=""
FW_SERVICES_INT_UDP=""
FW_SERVICES_INT_IP=""
FW_SERVICES_INT_RPC=""
FW_SERVICES_DROP_EXT=""
FW_SERVICES_REJECT_EXT="0/0,tcp,113"
FW_SERVICES_QUICK_TCP=""
FW_SERVICES_QUICK_UDP=""
FW_SERVICES_QUICK_IP=""
FW_TRUSTED_NETS=""
FW_ALLOW_INCOMING_HIGHPORTS_TCP=""
FW_ALLOW_INCOMING_HIGHPORTS_UDP=""
FW_FORWARD=""
FW_FORWARD_MASQ=""
FW_REDIRECT=""
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"
FW_LOG_LIMIT=""
FW_LOG=""
FW_KERNEL_SECURITY="yes"
FW_ANTISPOOF="no"
FW_STOP_KEEP_ROUTING_STATE="no"
FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_PING_EXT="no"

##
# END of /etc/sysconfig/SuSEfirewall2
##
# #
#-------------------------------------------------------------------------#
# #
# EXPERT OPTIONS - all others please don't change these! #
# #
#-------------------------------------------------------------------------#
# #
FW_ALLOW_FW_TRACEROUTE="yes"
FW_ALLOW_FW_SOURCEQUENCH="yes"
FW_ALLOW_FW_BROADCAST="int"
FW_IGNORE_FW_BROADCAST="no"
FW_ALLOW_CLASS_ROUTING="no"
FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"
FW_REJECT="no"
FW_HTB_TUNE_DEV=""
FW_IPv6=""
FW_IPv6_REJECT_OUTGOING="yes"
FW_IPSEC_TRUST="no"
 

Martin Breidenbach

Ultimate Guru
Das müßte in der SuSEFirewall2 über FW_FORWARD gemacht werden wenn ich mich nicht irre.

Wenn man dafür Firewallregeln von Hand strickt dann braucht man zwei:

die erste macht NAT, die zweite ist eine FORWARD Regel die diese geNATteten Pakete auch durchläßt. NAT alleine verbiegt zwar Quelle oder Ziel aber läßt noch nichts durch.
 
OP
B

boevent

Newbie
So etwas ähnliches habe ich glaube ich auch schon gelsen mit den zwei.
Eine iptables dings und eine mit Accept hinten war das glaube ich. Weiter reicht mein Wissenstand noch nicht :(

Hat vielleicht jemand ähnliche Einstellungen und kann mir da Tips geben?

Mit diesem FW_FORWARD habe ich irgendwie gelsen, dass es Probleme birgt und man es deshalb wie schon erwähnt "von Hand strickt".

Ich will nicht das dies jemand für mich macht, ist ja logisch, aber falls wer schon so etwas ind er Art hätte wäre ich dankbar.

Eine weitere Frage zu diesem Thema: Wenn ich jetzt so ein iptables eingerichtet habe und dieses in die SuSEfirewall schreibe.

a.) woher weiß ich ob sie anschlägt? Kann ich das irgendwie überprüfen was da nun passiert, wenn etwas über diesen Port kommt?

b.) Wo muss ich das in die SuSEfirewall2-custom schreiben?
Denn es steht da ja schon folgendes drinnen:

--------------------------------------------------------------
# /etc/sysconfig/scripts/SuSEfirewall2-custom
fw_custom_before_antispoofing() {
true
}
fw_custom_after_antispoofing() {
# could also be named "before_port_splitting()"
true
}
fw_custom_before_port_handling() {
true
}
fw_custom_before_masq() {
# could also be named "after_port_handling()"
true
}
fw_custom_before_denyall() {
# could also be named "after_forwardmasq()"
true
}
--------------------------------------------------------------
Füge ich nun da einfach am Ende ein? Werde aus der englischen Erklärung nicht ganz schlau, was wohl auch an dem mangeldem wissen über Netzwerke bei mir liegen könnte ;)

Vielen Dank für jede Antwort
Thomas
 
OP
B

boevent

Newbie
von einem freund habe ich jetztd as hier bekommen:

FW_FORWARD="<ausgangsip>/<netflag>,<zielip>,<proto>,<port> "

Die Platzhalter haben hierbei folgende Bedeutung:
<ausgangsip> = IP-Adresse des Ausgangsrechners / Ausgangsnetzes, von dem der Zugriff ausgeht
<netflag> = Flag zur Festlegung des Subnetzes
<zielip> = IP-Adresse zu der die Anforderung weitergeleitet werden soll
<proto> = Verwendetes Protokoll
<port> = Weiterzuleitender Port

reicht das? Ist es über iptables besser stabiler sicherer etc.?
Konnte es noch nicht testen, werde es aber bei Gelegenheit machen
 

framp

Moderator
Teammitglied
boevent schrieb:
Habe so etwas eingefügt:
iptables -I PREROUTING -t nat -p tcp -i ppp0 --dport 2593 -j DNAT --to 192.168.0.2:2593
Schon sehr gut. Dann noch
Code:
iptables -I FORWARD -p tcp -i eth1 -o ppp0 -d 0.0.0.0/0 --sport 2593 -s 192.168.0.2 -j ACCEPT
und 
iptables -I FORWARD -p tcp -i ppp0 -o eth1 -s 0.0.0.0/0 --dport 2593 -d 192.168.0.2 -j ACCEPT
in
Code:
w_custom_before_denyall() {
# could also be named "after_forwardmasq()"
iptables ...
iptables ...
iptables ...
true
}
Das natuerlich fuer alle Ports, die Du von aussen erreichbar haben moechtest.

ABER: Achte darauf, dass Du Deine XP Server sicher gegen Angriffe machst :!: Ansonsten kannst Du sehr unangenehme Ueberraschungen erleben. U.U. kommt dann jemand aus dem Internet an all Deine lokalen Clients und treibt da Unfug. Normalerweise setzt man fuer Server eine dedizierte FW Zone (DMZ) auf und stellt da die Server rein.
 

framp

Moderator
Teammitglied
boevent schrieb:
a.) woher weiß ich ob sie anschlägt? Kann ich das irgendwie überprüfen was da nun passiert, wenn etwas über diesen Port kommt?
tcpdump -i eth1 port 2593 auf dem Router zeigt Dir saemtlichen Traffic auf dem Port 2593 an. Wenn Du and host 192.168.02 zufuegst siehst Du nur den Traffic auf Port 2593 von und zu Client 192.168.0.2
=> man tcpdump
Falls Du sehen willst was vom Internet auf dem Port kommt musst Du eth1 durch ppp0 ersetzen.
In /var/log/firewall siehst Du ob Traffic von der FW geblocked wird.
 
OP
B

boevent

Newbie
Also schon mal vielen vielen Dank für die Antwort.

Habe jetzt das hier eingefügt:

####################
# ICQ ##############
####################
iptables -I PREROUTING -t nat -p tcp -i eth1 --dport 5190 -j DNAT --to 192.168.0.2:5190
iptables -I FORWARD -p tcp -i eth1 -o ppp0 -d 0.0.0.0/0 --sport 5190 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD -p tcp -i ppp0 -o eth1 -s 0.0.0.0/0 --dport 5190 -d 192.168.0.2 -j ACCEPT

Und dann die firewall neugesteratet. es steht auch da das die Regeln übernommen werden.
Nebenbei habe ich nochmal zur Sicherheit eine Personal Firewall installiert (Buhl Data Pc Firewall 2005 Pro)
Problem ist nur das wenn mir jemand eine datei sendet es nicht funktioniert. Kann sein das das mit ICQ was eigenes ist, denn es kann ja imemr sein, das wer seine ICQ Dateien über nen anderen Port sendet. Bei Miranda (was ich habe) in trillian kann man die Ports ja auch frei wählen. Jedoch ist 510ß eigentlich der standartport und normale icq nutzer müssten diesen nutzen.

Lässt sich das evtl. mit einem Proxy lösen, da ICQ bzw Miranda dieses ja anbietet? SOCKS4, SOCKS4, HTTP und HTTPS Proxy.

Werde es, mit dem RunUO Server auch nochmal testen. Das konnte ich bisher jedoch leider nicht, da jiemand on wa den ich fragen wollte ob er es prbiert und man dieses Spiel installiert haben muss.

ABER: Achte darauf, dass Du Deine XP Server sicher gegen Angriffe machst Exclamation Ansonsten kannst Du sehr unangenehme Ueberraschungen erleben. U.U. kommt dann jemand aus dem Internet an all Deine lokalen Clients und treibt da Unfug. Normalerweise setzt man fuer Server eine dedizierte FW Zone (DMZ) auf und stellt da die Server rein.

Das intzeressiert mich mehr, da ich ja auch vorhabe, mich mehr mit der Materie zu beschäftigen. Was genau ist eine dedizierte FW Zone (DMZ). DMZ habe ich damals bei meinen alten Router genutzt um alles an meine lokale IP weiterzuleiten. Habe damals DMZ?192.168.0.2 eingerichtet wo ich keinen Linux Server hatte und somit vollen netzwerkzugang hatte von diesem PC aus.
Aber bei dir klingt es irgendwioe nach einem Schutz wo es doch bei mir genau das Gegenteil von Schutz bietet ;)
Und wie meinst du das das ich dort die Server reinstelle?

heißt das jetzt für die entsprechenden Ports die ich weiterleite, dass ich über dieses ohne Einschränkung angreifbar bin? Geht dieses Problem auch zu lösen, dass ich die Ports weiterleite und trotzdem relativ sicher bin. Mit relativ meine ich auch nur so gut wie möglich. Klar das ich 100% Sicherheit icht hinbekommen kann ;)

Habe mich nochmal etwas informiert und auch etwas ind er Art wie du es bereits geschrieben hast framp: "Wenn Du wirklich sicher gehen willst, brauchst Du ne DMZ, ne Security-Suite für dein "Heim-Netzwerk", dann liegt der Schutz - auch wenn Du MS verwendest - bei 99,8%"

Gibt es eigentlich Software Firewall die besonders zu empfehlen sind. Auf attraktivität lege ich keinen Wert, sondern nur darauf das man viel einstellen kann. Habe öfters Checkpoint FW gelesen..?

Sorry nochmal für die vielen Fragen.
Bin dankebar für jede Hilfe

Thomas


Vielen Dank
Thomas
 

framp

Moderator
Teammitglied
boevent schrieb:
Und wie meinst du das das ich dort die Server reinstelle?
Kurz und knapp hast Du drei Zonen:
Die externe/unsichere Zone (internet), die interne/sichere Zone (Local LAN) und eine Zone, in die Leute vom Internet kommen (DMZ). Von dort kommt aber keiner in die interne Zone falls irgendwie ein Server kompromitiert wurde.
Dazu brauchst Du allerdings 3 NICS und entsprechende FW rules.

Suche nach DMZ bei Google. Da findest Du eine Menge.
 
OP
B

boevent

Newbie
Entschuldigung ich schweife ab. Wieder zum Thema. Und danke für deine Erklärung framp.

Habe den Spiele Server gestartet. Ich kann lokal auf ihn conncten mit 127.0.0.1:2593
jedoch sobald jemand von außerhalb versucht darauf zu connecten geht es nicht?
er versucht es dann natürlich mit [externe-ip]:2593

Angelegt habe ich die Regel:

iptables -I PREROUTING -t nat -p tcp -i eth1 --dport 2593 -j DNAT --to 192.168.0.2:2593
iptables -I FORWARD -p tcp -i eth1 -o ppp0 -d 0.0.0.0/0 --sport 2593 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD -p tcp -i ppp0 -o eth1 -s 0.0.0.0/0 --dport 2593 -d 192.168.0.2 -j ACCEPT

in der SuSEfirewall2-custom unter "w_custom_before_denyall()"

Weiß wer woran es liegen könnte? Stimmen die Einstellungen nicht? Oder müsste es so klappen und es liegt an dem Server irgendwie?

Bin für jeden Tip dankbar
Thomas
 
OP
B

boevent

Newbie
Habe es jetzt etwas abgeändert, da mein Internet dsl0 anstatt pppo ist und ich mich mit dem etho/eth1 geirrt habe. Also:

iptables -I PREROUTING -t nat -p tcp -i eth0 --dport 2593 -j DNAT --to 192.168.0.2:2593
iptables -I FORWARD -p tcp -i eth0 -o dsl0 -d 0.0.0.0/0 --sport 2593 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD -p tcp -i dsl0 -o eth0 -s 0.0.0.0/0 --dport 2593 -d 192.168.0.2 -j ACCEPT

Eine Fehlermeldung bekomme ich nicht, aber funktionieren tut es leider auch nicht. Noch wer eine Idee?

MfG
Thomas
 
OP
B

boevent

Newbie
Also klingt natürlich logisch da -i sicher input bedeutet!?

habe es jetzt mal so geändert das ich es so habe:

iptables -I PREROUTING -t nat -p tcp -i dsl0 --dport 2593 -j DNAT --to 192.168.0.2:2593
iptables -I FORWARD -p tcp -i eth0 -o dsl0 -d 0.0.0.0/0 --sport 2593 -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD -p tcp -i dsl0 -o eth0 -s 0.0.0.0/0 --dport 2593 -d 192.168.0.2 -j ACCEPT

Aber es funktioniert leider immer noch nicht :(
Stimmt das überhaupt das es in w_custom_before_denyall() in der SuSEfirewall2-custom eingetragen wird?
Da steht das:
fw_custom_before_denyall() { # could also be named "after_forwardmasq()"
# these are the rules to be loaded after IP forwarding and masquerading
# but before the logging and deny all section is set by SuSEfirewall2.
# You can use this hook to prevent the logging of annoying packets.

Hier nochmal mein netzwerk:
1.) eth1: 192.168.1.1 --> ist an das DSL Modem angeschlossen
2.) eth0: 192.168.0.1 --> ist an das switch angeschlossen, wo die WinXP Rechner dranhängen.
 

framp

Moderator
Teammitglied
Aendere mal in der SuSEFW2 FW_LOG_DROP_ALL="no" in FW_LOG_DROP_ALL="yes", FW restart und lass mal tail -f /var/log/firewall laufen wenn Du Deine Zugriffsversuche startest.

Dort wirst Du Meldungen sehen, die Dir sagen was geblocked wurde und hilft beim Loesen des Problems. :roll:
 
OP
B

boevent

Newbie
Danke nochmal an euch zwei. Habe es jetzt. Musste wirklich -i dsl0 heißen ;)
Aber so funktioniert es jetzt ;)
Doppeldanke an framp, der mir nicht nur hier geholfen hat ;)

iptables -I PREROUTING -t nat -p tcp -i dsl0 --dport xxxx -j DNAT --to 192.168.0.2:xxxx
iptables -I FORWARD -p tcp -i eth0 -o dsl0 -d 0.0.0.0/0 --sport xxxx -s 192.168.0.2 -j ACCEPT
iptables -I FORWARD -p tcp -i dsl0 -o eth0 -s 0.0.0.0/0 --dport xxxx -d 192.168.0.2 -j ACCEPT
 

fackelno1

Newbie
Hi @ all,

das Problem kenn ich zu gut, aber habe es trotz dem super genialen Thread nicht hinbekommen.
Also ich hab eine Linuxserver (squid, firewall, apache, ddclient), 2 Netzwerkkarten...
Ich möchte, dass ich egal wo ich bin von einem XP-Client aus, über Internet, durch den Linuxserver, über remote auf meinen XP-Client zu Haus komme.
Ich habe dies in (w_custom_before_denyall() geschrieben):
Code:
iptables -I PREROUTING -t nat -p tcp -i dsl0 --dport 3389 -j DNAT --to 192.168.1.1:3389
iptables -I FORWARD -p tcp -i eth0 -o dsl0 -d 0.0.0.0/0 --sport 3389 -s 192.168.1.1 -j ACCEPT
iptables -I FORWARD -p tcp -i dsl0 -o eth0 -s 0.0.0.0/0 --dport 3389 -d 192.168.1.1 -j ACCEPT

Meine Netzwerkkartenconfig:
eth1 = 192.168.1.1
dsl0 = DHCP

Kann mir da vielleicht jemand helfen. Weiß da jemand weiter.
Danke euch schonmal.

Lg,
fackelno1
 
OP
B

boevent

Newbie
also es kommt drauf an mit was du auf deinen xp server zugreifen willst. denn das ich die lösung habe war nur halb richtig. Es klappt nur für den besagten Server.

Für ICQ oder vnc klappt es noch nicht so ganz, aber bin noch dabei und habe auch schon von jemand einen vorschlag bekommen, den ich sobald wie möglich versuche zu testen.
Für ICQ iste s wohl etwas komplexer als einfach nur "normales" portforwarding ;)

mfg
 

framp

Moderator
Teammitglied
fackelno1 schrieb:
Ich möchte, dass ich egal wo ich bin von einem XP-Client aus, über Internet, durch den Linuxserver, über remote auf meinen XP-Client zu Haus komme.
Du musst schon sagen in welche Tuer Du reinwillst 8) Welches Protokoll/Port willst Du erreichen?

Port 3389 hast Du freigegeben. Lt /etc/services ist das
Code:
ms-wbt-server   3389/tcp   # MS WBT Server
ms-wbt-server   3389/udp   # MS WBT Server
Nie gehoert :roll:
 

fackelno1

Newbie
achso, ich glaub dann haben wir uns falsch verstanden. ich will von einem x-beliebigen rechner mit internetanschluss auf meinen XP-Client (der hinter einem linuxserver hängt) über eine remotedesktopverbindung zugreifen.
weißt du dazu mehr?
 

framp

Moderator
Teammitglied
Ich habe keine Ahnung welche Ports da benoetigt werden. Ich wuerde einfach 'tcpdump -i dsl0 -n' starten und dann von aussen mit der Applikation versuchen zuzugreifen. Dann sieht man welche Ports benoetigt werden.
 
Oben