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

Win 2k Server hinter Linux Router als HTTP und FTP Server!

bigblue

Newbie
Also ich habe folgende Frage:
Wir haben einen Router mit SuSE 9.0 wo wir über SuSEFirewall2 schon einige ports weitergeleitet und das Masquerading für das DSL Routing gesetzt haben.
Jetzt will ich dahinter einen Rechner mit W2K und einem XAMMP Server (HTTP und FTP) schalten. Dieser soll über einen DynDNS Clienten immer die aktuelle Internet IP des Routers an DynDNS schicken. Meine Frage: Welche Ports muss ich am Router wie an welchen Rechner durchgeben, mit das mit dem webserver funktioniert und woher weis der Router, das er Anfragen für HTML Seiten (HTTP Anfragen) an meinen W2K Server weiterleiten muss?
Danke & grüße, Alex
 

Martin Breidenbach

Ultimate Guru
bigblue schrieb:
Welche Ports muss ich am Router wie an welchen Rechner durchgeben, mit das mit dem webserver funktioniert...

Der Webserver soll HTTP und FTP können... also die Ports für HTTP (80) und FTP (20/21 aber das ist bei FTP etwas komplizierter) ...

bigblue schrieb:
... und woher weis der Router, das er Anfragen für HTML Seiten (HTTP Anfragen) an meinen W2K Server weiterleiten muss?

Das weiß er weil es in der Firewallkonfiguration von Dir so festgelegt wurde !?!

SuSEFirewall2 ist ja auch 'nur' ein Frontend für iptables/netfilter. Du solltest Dich vielleicht noch etwas mehr damit beschäftigen wie so eine Paketfilter-Firewall mit iptables eigentlich funktioniert. Hier im Forum sollten unter 'wichtige Links' oder so ähnlich Quellen gepostet sein. Ansonsten würde ich mir mal die iptables Howtos durchlesen. Ohne zumindest ein Grundverständnis von iptables zu haben ist es schwer zu erklären wie das alles funktioniert.
 

gaw

Hacker
Ports werden sowieso nicht durchgegeben. *schüttel* Weitergereicht werden im Filter Datenpakete in Form von IP-Datagrammen. Ports sind einfach nur im TCP/IP Stack gespeicherte Identifikationsnummern um TCP/UDP Multiplexverbindungen zu ermöglichen und so mehrere verschiedene Dienste zwischen Kommunikationspartnern quasi gleichzeitig zu erlauben.

Umgangssprachlich ausgedrückt, ist ein Port also eine Art Tor oder Tür, das auf oder zu sein kann (bestimmt der Paketfilter einer Firewall) , hinter denen Programme auf ankommende Daten lauschen und diese verarbeiten können oder hinter denen eben nichts passiert (stummer Port). Weitergereicht oder durchgegeben werden sie jedenfalls nicht.

mfG
gaw
 
OP
B

bigblue

Newbie
Ich danke euch erstmal! Wenn ich dann die ports 80 und 20/21 für die angenommene IP-Adresse 192.168.1.111 öffne, muss ich das mit tcp oder udp tun? was ist der unterschied?

Ihr sollt das so verstehen: Wenn ich jetzt den HTTP (80) auf meinen Rechner 192.168.1.111 öffne/weiterleite sollen die anderen danach trotzdem noch surfen können, das gleiche mit FTP, nicht das es passiert das ich dann ALLE HTTP Sachen auf meinen Rechner kriege, weil ich den port zu mir geleitet habe. Es sollen nur die Anfragen für die z.B. dort gelagerte homepage auch tatsächlich dorthin geleitet werden...
 

gaw

Hacker
Beide sind Protokolle der 4.OSI-Schicht und sie dienen dem Datentransport.

tcp steht für Transfer Control Protocol und ist ein verbindungsorientiertes Protokoll mit Flußkontrolle, dass selbstständig dafür sorgt, dass tcp-Segmente, die verloren gehen, vom Sender wiederholt verschickt werden und in der richtigen Reihenfolge beim Empfänger ankommen. Es baut erst Verbindungen auf (Drei-Wege-Handschlag) bevor die im tcp-Segmenten eingepackten Daten höherer Protokolle versendet werden können. Abschließend werden diese Verbindungen wieder abgebaut.

udp ist das User Datagram Protocol. Es ist verbindungslos, ohne Flusskontrolle und sorgt eben nicht dafür das verlorene udp-Datagramme noch einmal gesendet werden. Eine diesbezügliche Fehlerkontrolle überlässt es übergeordneten Protokollen.

Große Datemengen via http (surfen im WEB) oder ftp werden gewöhnlich in tcp eingepackt, weil hier die Flussgröße (automatisierte Anpassung an die Güte und die Verabeitunggeschwindigkeit einer Verbindung über regelbare Segmentgrößen) und die Fehlerkorrektur zum Zuge kommen.

Kurze Nachrichten mit wenigen Datenmengen werden meistens über udp verschickt zum Beispiel dns. Für eine Anfrage die in einem Paket Platz hat wäre ein Verbindungsaufbau ala tcp der schon 3 Pakete kostet, Verbindungsabau der zwischen 2 und 4 Pakte benötigt zu aufwendig, hier kommt es auf kurze Antwortzeiten an (ping-zeiten).

Daher werden manche Spiele auch eher über UDP gespielt weil die Ping-Zeiten zwischen Client und Server wichtiger sein können als die Datentransferrate - das ist im Übrigen auch ein Grund warum manche gamer auf ISDN schwören. Dort sind die Datentransferraten wesentlich höher, die Ping-Zeiten aber manchmal deutlich niedriger.

mfG
gaw
 

gaw

Hacker
Ihr sollt das so verstehen: Wenn ich jetzt den HTTP (80) auf meinen Rechner 192.168.1.111 öffne/weiterleite sollen die anderen danach trotzdem noch surfen können, das gleiche mit FTP, nicht das es passiert das ich dann ALLE HTTP Sachen auf meinen Rechner kriege, weil ich den port zu mir geleitet habe.

Wenn alle Teilnehmer im web surfen wollen wird das über Masquerading eingeschaltet. Wenn ein einzelner Rechner im Netz als Webserver fungieren soll, erfolgt der tcp-Verbindungaufbau aus dem Netz durch D-NAT auf dem Rechner. Der Unterschied liegt im Socketpaar.
Jedes Paket im Internet ist durch vier Werte genau bestimmt, 2 IP-Adressen und 2 Portnummern : Zieladresse, Zielport, Quelladresse und Quellport.
Bei einem Verbindungsaufbau eines Browser zu einem Webserver haben die Pakete vom Browser den Zielport 80 und einen Quellport > 1024.
Bei rücklaufenden Paketen die aus dem Netz kommen und zu den Verbindungen der surfenden Kollegen zurückwollen ist der Quellport 80 und der Zielport irgendein Wert > 1024.

Ein Webserver in deinem Lan hingegen wird vom Internet aus angewählt. Der Verbindungsaufbau erfolgt aus dem Internet heraus. Dabei ist der Zielport der hereinkommenden Pakete http, also 80 und der Quellport liegt über 1024. Die Pakete, die zu den Browser im Internet wollen, der die Verbindung angefordert hat tragen im TCP-Header den Quellport 80. Im Prinzip also genau umgekehrt wie bei den Clients die am surfen sind.

Im Falle des Masqueradings werden nun alle IP-Datagramme. die mit privaten Adressen aus dem LAN ins Internet gehen umgeschrieben, dass bedeutet sie erhalten eine gültige IP-Quelladresse.
Das ist zwingend notwendig weil private Adressen im Internet nicht geroutet werden, sie haben da nichts zu suchen. Iptables merkt sich die Verbindungen und leitet die rücklaufenden Pakete automatisch an die richtigen Rechner im LAN.

Beim D-NAT hingegen werden ankommende Pakete mit dem Zielport 80 im tcp-Header aufgehalten und im IP-Header wird die Ziel-Adresse des Webservers eingetragen.

Beides geschieht also völlig unabhängig voneinander.

mfG
gaw
 
OP
B

bigblue

Newbie
Vielen Dank für deine umfassenden Antwort! Zum Verständnis: Da das nicht miteinander zutun hat leite ich einfach den Port 80 über TCP auf meinen Webserver, hier jetzt mal 192.168.1.111. Vorsichtshalber werde ich das gleiche auch mit UDP machen. Hinzukommen dann noch Port 20 und 21 nach dem gleichen Prinzip. Dann sollte der Webserver laufen oder?
 

gaw

Hacker
http und ftp werden eigentlich überhaupt nicht über udp geleitet. Das ist absolut nicht notwendig.
Was dagegen notwendig sein wird, ist die Anpassung der Firewall. Grundsätzlich müssen beim D-NAT http-Anfragen aus dem Netz auf dem Router (INPUT) erlaubt werden. Ohne Webserver und D-NAT ist das nicht notwendig und bei den meisten Firewall defaultmäßig abgeschaltet.

ftp ist nun leider noch etwas komplizierter und schlägt etwas aus der Art, das ganze läuft über vier Portnummern, zwei dienen der Kontrolle und funktionieren wie oben beschrieben zwei weitere undefinierte Portnummern sorgen für den Datenverkehr. Mittels iptables sollte man das über statefull inspection inklusive eines spezielles ftp-contracking Modul realisieren, sonst wird es zum Alptraum jedes Paketfilterings.- Das ganze wird im Grunde noch verwirrender, weil es zwei verschiedene Arten von ftp, das aktive und das passive ftp gibt und nicht jeder FTP-Server unterstützt beide.

Vielleicht solltest du zunächst den Zugriff auf deinen Webserver vernünftig einrichten. Wenn das dann funktioniert kannst du mit ftp beginnen sonst drohst du dich zu verzetteln. Und lies im Internet noch mal ein paar Informationen über tcp, udp, drei-wege-handschlag, stateful inspection, sockets sowie active und passive ftp damit du das hier gelesene auch verstehst. Ohne dem kommst du nicht wirklich weiter.

mfG
gaw
 
OP
B

bigblue

Newbie
Ich route über die SuSEFirewall2, werde dann für TCP den Port 80 auf den Webserver leiten. Müsste dann ja gehen. Oder muss ich da noch irgendwo eintragen das http Anfragen akzeptiert werden? Wenn ja, wo?
 
OP
B

bigblue

Newbie
Der Webserver läuft!

Die Testseite zu bestaunen unter: www.bigbluealex.de.vu

Noch eine Frage: Habe jetzt für die MySQL Datenbank ein Passwort vergeben, leider kommt jetzt aber wenn ich sie über die xamp seite myphpadmin aufrufe: Fehler

MySQL meldet:
Die Verbindung konnte aufgrund von ungültigen Einstellungen nicht hergestellt werden.

Wie kann ich das wieder rückgängig machen?

Grüße Alex
 

gaw

Hacker
Die Entwickler der Mysql haben ein wunderbares Handbuch. Davon gibt es sogar eine deustche Übersetzung von Stefan Hinz im HTML-Format.
http://dev.mysql.com/get/Downloads/Manual/manual.de.tar.gz/from/pick
Das solltest du dir einmal herunterladen. Ein Passwort solltest du schon vergeben, und zwar ein Passwort als Mysql-Administrator. Das wird in die Datenbank mysql eingetragen und zwar in die Tabelle User im Feld Passwort. In anderen Tabellen lassen sich Datenbanken, einzelne Tabellen, ja selbst einzelne Spalten mit Passwörtern absichern. Und als Administrator lässt sich das jeder Zeit wieder ändern, SQL voruasgesetzt.

mit freundlichen Grüssen
gaw
 
OP
B

bigblue

Newbie
Das dumme ist bloß, ich komme an die DB nicht mehr ran! Habe schon was von ner config datei gelesen, nur wenn ich die aufmache steht da soviel da find ich mich nicht zurecht. Wie kann ich denn das pw wieder löschen?
 
Oben