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

Server/Router übers Internet nicht erreichbar?

holti

Newbie
Guten Morgen Forum,

Ich habe folgendes Problem:

Ich habe Suse 9.0 neu installiert. Die Firewall (SuSEfirewall2) habe ich soweit angepasst. Ich habe die Ports manuell für HTTP, HTTPS, FTP,WWW und SSH freigeben.

Ich komme zwar problemlos ins Internet, alles was vom Internen Netz raus geht funktioniert einwandfrei, nur komme ich nicht von außen auf meinen Rechner, weder per SSH noch auf den Apache.

Die Namensauflösung funktioniert auch. Ich habe eine dynamische IP-Adresse, die mit dem noip2 - updater aktualisiert wird. Wenn ich einen Ping auf den no-ip Host mache funktioniert das ebenfalls.

Ich habe schon alles abgegrast aber ich finde keine passende Lösung.

Ihr seid meine letzte Hoffnung

Gruß
 

nny

Member
hi

du musst dem router auch noch sagen wohin er das ssh und http weiterleiten soll.
nennt sich portforwarding. Geht von Router zu Router unterschiedlich, aber die meissten haben ein webinterface womit du die konfig ändern kannst.
normalerweise wird die ip des rechners angegeben, falls du dhcp hast muß du das über die MAC Adresse regeln

nny
 
OP
H

holti

Newbie
Sorry, ich habe mich falsch ausgedrückt.

Ich habe einen PC mit Suse 9 Prof. Dieser ermöglicht 2 Windows PCs den Zugang zum Internet. Desweiteren soll der Suse Pc noch Dienste wie Apache, Shoutcast, SSH und FTP zu Verfügung stellen. Ich habe die Susefirewall2 sogut wie ich konnte angepasst und das Routing von den Windows-PCs über die Suse-Kiste ins Internet funktioniert auch wunderbar.

Das Problem folgendens: Sobald ich aus dem Internet heraus auf einen der Services zurückgreigen will, sprich über den no-ip host, ist das nicht möglich. Weder Apache, proftp geschweige SSH kann ich erreichen, obwohl ich den no-ip-host korrekt pingen kann.

Ich vermute das irgendwas mit der Firewall nicht ok ist. Aber ich weiss beim besten willen nicht was....

Ich werde später noch das Firewallscript posten.

Vielleicht noch hier den no-ip.org host: holterhoff.no-ip.org

Danke für die Unterstützung

Gruß Markus
 

moenk

Administrator
Teammitglied
Für mich liegt erstmal nahe, das die IP bei no-ip.com gar nicht Deine eigene ist und Du versuchst auf einen fremden Rechner zu kommen und das zufällig nicht klappt. Bist Du sicher dass die Namensauflösung funktioniert? Wenn es an der Firewall liegen sollte, müsste es ja sofort klappen wenn Du die Firewall mal kurz stoppst. Probier das doch mal aus um das Problem weiter einzukreisen.
 

nny

Member
hmmm für iptabels is der wenf zuständig ;)
aber du kannst ja mal einen nmap über deine ip laufen lassen, wenn die ports richtig offen sind, dann muß der das anzeigen.
Das ganze erstmal ohne FW zu testen halt ich auch für ne gute Idee

nny
 
OP
H

holti

Newbie
Ich glaub moenk hat schon das richtige Stichwort gegeben. Ich bin mir wirklich nicht sicher ob die Namensauflösung funktioniert ?

Wenn die Firewall gestartet wird, merkert mir Suse auch an, dass kein nameserver in /etc/resolv vorhanden ist.

Könnte das irgendwie damit zusammenhängen ?

Aber ich werde das später noch testen, indem ich die Firewall mal runterfahre und dann nochmal teste. Bin leider zur Zeit noch im Büro :p
 
OP
H

holti

Newbie
So Männers, holti hat ein Ergebnis !

Ihr hattet Recht! Sobald ich die Firewall ausschalte, hab ich den erwünschten Zugriff. :D

Natürlich funktioniert nun mein Routing für die Windows clients nicht mehr. Also, ich denke wir sollten uns die Firewall mal genauer anschauen !

Hier noch schnell vorweg ein paar Infos:

ppp0: Fritz DSL SL USB (Als ISDN Adapter installiert)
eth0:192.168.0.1
WINPC1: 192.168.0.2
WINPC2:192.168.0.3

Wie gesagt, ich will vom Internet her nur den Linuxrechner erreichen.

Code:
FW_QUICKMODE="no"
FW_DEV_EXT="ppp0"
FW_DEV_INT="eth0"
FW_ROUTE to yes.
FW_DEV_DMZ=""
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_DEV="$FW_DEV_EXT"
FW_MASQ_NETS="192.168.0.0/24"
FW_PROTECT_FROM_INTERNAL="no"		

FW_AUTOPROTECT_SERVICES="no"
FW_SERVICES_EXT_TCP="20 21 22 80"
FW_SERVICES_EXT_UDP="20 21 22 80"
FW_SERVICES_EXT_IP=""	

FW_SERVICES_DMZ_TCP="20 21 22 80"
FW_SERVICES_DMZ_UDP="20 21 22 80"
FW_SERVICES_DMZ_IP=""	

FW_SERVICES_INT_TCP="20 21 22 80"
FW_SERVICES_INT_UDP="20 21 22 80"
FW_SERVICES_INT_IP=""	


FW_TRUSTED_NETS=""
FW_ALLOW_INCOMING_HIGHPORTS_TCP="yes"	
FW_ALLOW_INCOMING_HIGHPORTS_UDP="yes"	

FW_SERVICE_AUTODETECT="yes"
FW_SERVICE_DNS="no"	 
FW_SERVICE_DHCLIENT="no"
FW_SERVICE_DHCPD="no"	
FW_SERVICE_SQUID="no" 
FW_SERVICE_SAMBA="no"	 FW_SERVICES_{EXT,DMZ,INT}_TCP="139"

FW_FORWARD=""	
FW_FORWARD_MASQ="0/0,192.168.0.1,tcp,20 21 22 80"

FW_REDIRECT=""
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"

FW_KERNEL_SECURITY="yes"

FW_STOP_KEEP_ROUTING_STATE="yes"

FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_PING_EXT="yes"
 

moenk

Administrator
Teammitglied
Ich habe genau das was Du da willst mal mit dem Yast2 konfiguriert und das hat auch funktioniert. Die Datei sieht irgendwie selbst gemacht aus, bei dem Masq sind Ports angegeben, das hab ich nicht so.
Für ssh wird auch noch 1023 gebraucht wenn ich mich recht erinnere. Wirf das Ding mal weg und lass eine Datei von Yast2 erstellen, der bietet doch an welche Dienste aus dem Internet erreichbar sein sollen, einfach zu anklicken:
snapshot2.jpg
 

Martin Breidenbach

Ultimate Guru
Noch ein Tip:

Um zu testen ob denn jetzt ein Port in der Firewall freigeschaltet ist/von außen ansprechbar ist kann man sich von verschiedenen Servern im Internet portscannen lassen (mal abgesehen vcn denen die das tun ohne daß man das will). Da gibt es verschiedene Security-Seiten die sowas anbieten.

Ich nehme da gerne die grc.com (auf 'shields up' klicken).

Wenn man einen zweiten Rechner mit separatem Internetzugang hat kann man das natürlich auch darüber testen.

Ich gehe über externen DSL-Router ins Internet; SuSEFirewall hab ich deswegen nicht konfiguriert.
 
OP
H

holti

Newbie
Erstmal Danke für die Tips !

Ich habe einfach mal alle Ports ein der SF2 freigegeben und anschließend einen Port Scan mit Shield up! ausgetestet.

Das Ergebnis war, das alle Ports im Stealth-modus sind.

Ist das denn richtig ? Ich denke nicht. Am liebesten wäre mir erstmal alle Ports freizugeben und anschließend abstriche zu machen.

Kann mir vielleicht jemand ein passendes Firewall script posten ?

Gruß

Holti
 

Martin Breidenbach

Ultimate Guru
Die Ports können open, closed und stealth sein.

open = nimmt Verbindungen an
closed = lehnt Verbindungen ab (antwortet also mit 'du kommst hier net rein')
stealth = reagiert überhaupt nicht, keine antwort, nix, keiner zuhause

Damit ein Port vom Internet ansprechbar ist muß er 'open' sein.
 
OP
H

holti

Newbie
Hallo Martin,

bei mir sind die meisten Ports alle Stealth !

Weisst du wie ich die Firewall konfigurieren muss um die Ports offen zu schalten. Ich habe bereits alles versucht. Ich schaffe es nicht sie 'open' zu schalten.

Was mir jedoch gelingt sind sie 'closen'

Ich weiss einfach nicht weiter. Schau dir mal bitte mal das Firewall script an, vielleicht findest du ja einen Hinweis.

Wie gesagt, sobald ich die Firewall ausschalte, habe ich zugriff auf Apache und SSH. Jedoch Services wie Shoutcast oder Teamspeak futzen einfach nicht.
Was ich auch nicht verstehe, die Ports 80 und 22 sind immer offen, wobei ich sie in der Firewall nicht deklariert habe.

Danke
 

Martin Breidenbach

Ultimate Guru
Ich seh jetzt im Firewall-Skript keinen unmittelbaren Fehler aber das dürfte an mir liegen :)

Mit SuSEFirewall2 habe ich zum letzten Mal vor zwei Jahren was gebastelt. Und damals mir dann ein eigenes Firewallskript gebaut daß direkt IPTABLES verwendet weil ich ziemlich viele Ports hin und her verbiegen mußte für die DMZ hier im Büro (Mail, Proxy, 3 Webserver...).

Zuhause hab ich DSL Router; der kann zwar nicht viel Firewall aber er läßt nur die Verbindungen von außen rein (momentan nur Teamspeak) die ich explizit freischalte und dafür reicht mir das.
 
OP
H

holti

Newbie
Ja, Teamspeak hab ich auch als Service am laufen...

Könntest du mir das script mal zeigen ?
 

Martin Breidenbach

Ultimate Guru
Ich habe den Teamspeak unter einem eigenen Account installiert und ein über google gefundenes Startscript um 'su' Befehle erweitert damit er es auch als Benutzer Teamspeak ausführt. Das Skript dann nach /etc/init.d kopiert und mit insserv installiert.

Hier das Startscript:

Code:
#!/bin/sh
### BEGIN INIT INFO
# Provides: teamspeak
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Description: Teamspeak
### END INIT INFO

case "$1" in
'start')
	cd /home/teamspeak/tss2_rc2
	su teamspeak -c "./teamspeak2-server_startscript start"
	;;
'stop')
	cd /home/teamspeak/tss2_rc2
	su teamspeak -c "./teamspeak2-server_startscript stop"
	;;
*)
	echo "Usage: $0 { start | stop }"
	;;
esac
exit 0
 
OP
H

holti

Newbie
Danke für das Script, aber das bringt mich alles nicht weiter...

Ich suche ein Firewallscript, welches alle Ports auf dem Rechner (der auch mit dem Internet verbunden ist) zulässt und alle Ports in lokale Netz weiterleitet.
 
OP
H

holti

Newbie
Hi Martin,

vielen dank für die Links !

Ich werde mich erstmal da durchwurschteln :p

Vielleicht kann ich ja was nützliches finden
 
Oben