PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portforwarding bei SuSE 8.1 als DSL-Router



Unimatrix1
25.05.03, 16:25
Hallo zusammen!

Ich habe jetzt meinem Linuxserver eine 2. Netzwerkkarte verpasst und möchte diesen jetzt als Router fürs Heimnetzwerk einsetzen.
Nur habe ich da noch ein paar kleinere Probleme mit dem Portforwarding.....

Zur Info vorweg:
eth0 (192.168.0.1)
eth1 (192.168.1.1) ---> ppp0 (dyn. IP)
LAN-Clients: 192.168.0.2 ..... 192.168.0.4

Ich benutze die "normale" DSL-Freigabe von SuSE mit der SuSE-Firewall2 so wie es im Handbuch beschrieben ist. Nur leider hört das Handbuch genau da auf wo es spannend wird......
Die Dienste die auf dem Router laufen und vom Web aus erreichbar sein sollen, sind es auch soweit.
Die LAN-Clients kommen alle problemlos ins Internet, nur wie kann ich jetzt speziell einen / mehrere Port(s) für einen Client im LAN forwarden?

Angenommen, ich möchte für den Rechner mit der IP 192.168.0.2 den Port 12345 forwarden, was muß ich da tun damit der Port vom Web aus erreichbar ist?
Bzw. was muss ich machen um einen ganzen Portbereich z.b. (12345 - 12355) zu öffnen?

Ich habe schonmal was von iptabeles gelesen nur scheint das irgendwie nicht zu klappen, weil die Firewall irgendwie nicht darauf reagiert...... :(

Meine /etc/sysconfig/SuSEfirewall2:


FW_QUICKMODE="no"
FW_DEV_EXT="ppp0"
FW_DEV_INT="eth0"
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="ssh"
FW_SERVICES_EXT_UDP=""
FW_SERVICES_EXT_IP=""
FW_SERVICES_DMZ_TCP=""
FW_SERVICES_DMZ_UDP=""
FW_SERVICES_DMZ_IP=""
FW_SERVICES_INT_TCP=""
FW_SERVICES_INT_UDP=""
FW_SERVICES_INT_IP=""
FW_SERVICES_QUICK_TCP=""
FW_SERVICES_QUICK_UDP=""
FW_SERVICES_QUICK_IP=""
FW_TRUSTED_NETS=""
FW_ALLOW_INCOMING_HIGHPORTS_TCP="yes"
FW_ALLOW_INCOMING_HIGHPORTS_UDP="DNS"
FW_SERVICE_AUTODETECT="yes"
FW_SERVICE_DNS="no"
FW_SERVICE_DHCLIENT="no"
FW_SERVICE_DHCPD="no"
FW_SERVICE_SQUID="no"
FW_SERVICE_SAMBA="yes"
FW_FORWARD=""
FW_REDIRECT=""
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"
FW_LOG="--log-level warning --log-tcp-options --log-ip-option --log-prefix SuSE-FW"
FW_KERNEL_SECURITY="yes"
FW_STOP_KEEP_ROUTING_STATE="no"
FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_PING_EXT="no"
FW_ALLOW_FW_TRACEROUTE="yes"
FW_ALLOW_FW_SOURCEQUENCH="yes"
FW_ALLOW_FW_BROADCAST="no"
FW_IGNORE_FW_BROADCAST="yes"
FW_ALLOW_CLASS_ROUTING="no"
FW_CUSTOMRULES="/etc/sysconfig/SuSEfirewall2-custom"
FW_REJECT="no"


Und zu guter letzt /etc/sysconfig/SuSEfirewall2-custom:


FW_FORWARD_MASQ="0/0,192.168.0.2,tcp,12345:12355"
FW_FORWARD_MASQ="0/0,192.168.0.2,udp,12366"


Hab ich in meiner Konfiguration was falsch oder vielleicht was vergessen?
Wäre schön wenn mir da jemand weiterhelfen könnte.....

zipo
25.05.03, 20:02
Das sieht alles schon ganz gut aus, hast du unter /etc/sysct1 die Zeile ... IP_Forward="yes" editiert ???

Unimatrix1
26.05.03, 08:42
Original geschrieben von zipo
Das sieht alles schon ganz gut aus, hast du unter /etc/sysct1 die Zeile ... IP_Forward="yes" editiert ???
Hmm, die Datei /etc/sysct1 existiert bei mir garnicht....:confused:
Ich bin davon ausgegangen das es reicht, wenn man bei der Netzwerkkartenkonfiguration die Option "IP Forwarding aktivieren" mit ankreuzt.......
Die Datei sollte doch eigentlich automatisch mit installiert werden wenn man die Firewall aktiviert, oder?

zipo
26.05.03, 09:18
Sorry, habe mich auch vertan.

Liegt unter /etc/sysconfig/sysct1 !!!

Versuch es mal damit und sonst vielleicht noch die Ports in der DMZ freigeben. Musst Du mal schauen welche Du da benötigst (UDP und TCP).

FW_Service_DMZ_TCP=
FW_Service_DMZ_UDP=

Und die Ports für extern freigeben, udp und tcp ...

FW_Service_Ext_TCP= xx xx xx
FW_Service_Ext_UDP= xx xx xx

Das sollte Dir weiterhelfen !!!

Unimatrix1
26.05.03, 14:47
Also die Einträge bei "FW_Service_Ext_TCP=" und "FW_Service_Ext_UDP=" bewirken nur eine Meldung, das der Port schon belegt ist.
Dort hat Yast auch nur die Services eingetragen die auf dem Router laufen (bei mir ssh).
Trage ich die Ports bei "FW_Service_DMZ_TCP=" und "FW_Service_DMZ_UDP=" ein sind die Ports im LAN vom Internet immer noch nicht erreichbar...... :(

zipo
27.05.03, 08:25
Welche Ports willst du denn genau freigeben und forwarden ???

Hast du übehaupt die Zeile : FW_FORWARD_MASQ="" editiert

Und wo sagt er dir das die Ports bereits belegt sind, du musst die Ports für extern auf der Firewall freigeben. Da er die ja durch die Firewall routen muss.

Wenn sie nicht direkt auf der firewall freigegeben sind, kann er die auch nicht durchrouten. Falls du das nicht gemacht hast.

Eigentlich geht das ohne Probleme, welches Sys hast de als Workstation ???

Ansonsten Poste noch mal deine gesamte Conf oder schick se per Mail.

Unimatrix1
27.05.03, 14:32
Ob ich FW_FORWARD_MASQ="" editiert habe?
Ich denke schon...... :D

Original geschrieben von Unimatrix1

....
Und zu guter letzt /etc/sysconfig/SuSEfirewall2-custom:


FW_FORWARD_MASQ="0/0,192.168.0.2,tcp,12345:12355"
FW_FORWARD_MASQ="0/0,192.168.0.2,udp,12366"
....


Das Programm das ich auf der Workstation starte, sagt mir das der Port bereits anderweitig belegt ist und deshalb nicht benutzt werden kann.
Wenn du es genau wissen möchtest:
Oracle 9i Enterprise-Server JAVA-Release 9.2.1 für W2k/XP/NT.

Als Clientsystem Habe ich Win2000 (Client), SuSE 7.3 pro (lokaler IMAP-Server) und Win98SE (Client) im Einsatz.

P.S.: Das erste Posting ist die gesamte Config, mehr steht da nicht drin.
Ich habe nur die Komentare weggelassen.

Gast_99
28.05.03, 07:51
Ich kann dir nur sagen wie du Ports direkt im ip-up.local Script forwardest:

Für jeden Port und jedes Protokoll jeweils diese beiden Zeilen:


iptables -t nat -A PREROUTING -j DNAT -p tcp -s 0/0 --dport 4661[:4665] --to-destination 192.168.1.2 -i ppp0

iptables -A FORWARD -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -p tcp -s 0/0 -d 192.168.1.2:4661[-4665] -i ppp0


Das in den [] erklärt wie du einen Portbereich auf einen rechner forwardest.
192.168.1.2 ist die IP des Rechners, auf den du forwarden willst.

Häng das einfach an deine /etc/ppp/ip-up.local
Wenns die nicht gibt, erzeug sie "touch ip-up.local" und mach sie ausführbar "chmod 755 ip-up.local"


Hoffe das hilft dir. :)