FTP Server öffentlich machen

moin moin

benutze BulletProof FTP Server v2.3.1 für die Verwaltung vom FTP Server

nun, im moment scheint es so dass man nur von intern (dh 192.168.x.x -Bereich) auf den ftp server zugreiffen kann.

hab noch was versucht: mit dem DNS2Go Client hab ich dem ftp server einen namen gegeben. nun SOLLTE er so erreichbar sein: ftp://wunschname.dns2go.com aber das geht nicht, nicht mal interne können jetzt drauf zugreiffen. aber via ip gehts noch…

wie mach ich das er auch öffentlich wird, dass ich kollegen den link geben kann und sie da sachen rauf bzw. runterladen können?

gruss g-style gamer

Internet-Verbindung?
Wie gehtst du ins Internet, bzw. wie ist deine Verbindung zum Internet.

Wenn du z.B. einen aktuellen DSL-Router hast ist das klar - Verbindungsversuche von „außen“ werden ignoriert - integrierte Firewall-Funktion.

In diesem Fall: Handbuch des Routers lesen. Bei Meinem steht drin wie’s geht.

Gruß

Stefan

Wie gehtst du ins Internet, bzw. wie ist deine Verbindung zum
Internet.

vom modem über nen router und dann über nen switch

Wenn du z.B. einen aktuellen DSL-Router hast ist das klar -
Verbindungsversuche von „außen“ werden ignoriert - integrierte
Firewall-Funktion.

also integrierte firewall vom router abschalten, falls möglich?

mein router: http://www.stegcomputer.ch/details.asp?prodid=usr-84…

gruss g-style gamer

Wenn du z.B. einen aktuellen DSL-Router hast ist das klar -
Verbindungsversuche von „außen“ werden ignoriert - integrierte
Firewall-Funktion.

also integrierte firewall vom router abschalten, falls
möglich?

Nein.

mein router:
http://www.stegcomputer.ch/details.asp?prodid=usr-84…

Ja, der kann das. Steht sogar im Handbuch.

Gruss vom Frank.

also integrierte firewall vom router abschalten, falls
möglich?

Nein.

Da keiner gewillt zu sein scheint, dir zusagen, worüber du dich informieren sollst…

Wenn die Verbindung aus dem Internet bei deinem Router ankommt, dann weiß der erstmal nicht, was er damit machen soll und sofern auf dem Router selber kein FTP-Server läuft wird da auch nix zu erreichen sein.
Deshalb kann man sogenannte Portforwardings einstellen. (u.U unter Portweiterleitung, NAT , oder sowas im Routermenü zu finden).
Grob gesagt musst du dem Router sagen, dass er Verbindungen die auf Port 21 ankommen, an deine IP weiterleiten soll.

1 „Gefällt mir“

Hallo!

Also erstens musst du für DNS2Go (und jeden anderen Dynamic-DNS-Provider auch) eine Software haben, der deinen Rechner bei jeder Verbindung mit dem Internet neu dort anmeldet.

Denn bei jeder neuen Verbindung bekommst du ja eine neue IP-Adresse, und die muss man dem DNS-Server mitteilen, sonst kann die Namensauflösung gar nicht klappen.
Wenn du Glück hast, kann das dein Router übernehmen, da musst du mal im Menü bzw. im Handbuch schauen. Meiner kann das. Ansonsten bei deinem DynDNS-Provider die entsprechende Software absaugen.

Als zweites musst du ein Port-Forwarding einrichten. Wenn irgendein PC aus dem Web auf deine IP zugreift, redet er ja zuerst mal mit dem Router. Und der hat keine Ahnung, was man von ihm erwartet. Du musst dem Router sagen, das eingehende Anrufe auf dem Port 21 (das ist der Standard-Port für FTP) an den lokalen Rechner 192.168.0.31 (oder wo immer auch dein FTP-Server legt) durchgereicht werden sollen.
Auch hierzu durchs Menü stöbern oder das Handbuch des Routers wälzen.

Und zu guter Letzt musst du deinen FTP-Server auf Passive-Betrieb konfigurieren:

FTP-Server hinter einem Router

Wenn man die gängigen Webseiten befragt, wird man erfahren, das ein FTP-Server die Ports 20 und 21 benutzt. Und das es bei einem Router bzw. einer Firewall genüge, den Port 21 freizugeben und auf den Rechner, auf dem der FTP-Server laufen soll, zu forwarden.

Ich will nicht sagen, das das völliger Schwachsinn ist - aber es ist leider nur ein ganz kleiner Teil der Wahrheit. Denn wie jeder weiß, der dies einmal getestet hat: funktionieren wird’s so eher selten.

Um das Warum verstehen, und was man dagegen tun kann, benötigt man einen etwas tiefergehenden Einblick in die Abläufe eines FTP-Transfers.

Im ersten Schritt nimmt der Client mit dem Server auf Port 21 (oder welchen Port man auch immer im FTP-Server eingestellt hat) Kontakt auf. Dazu gehören neben der Anmeldung mit Usernamen/Passwort und der Überprüfung/Bestätigung, das der Server Resume-fähig ist, auch das Auskungeln der eigentlichen Datenverbindung. Der Port 21 ist nämlich ausschließlich für Kommandos da, der eigentliche Datentransfer läuft über einen anderen Port. Und da beginnen die Schwierigkeiten:

Es gibt zwei Möglichkeiten:

Beim aktiven FTP sagt der Client dem Server: Ich möchte die Daten auf dem Port x bekommen. x ist dabei ein ausgewürfelter Port zwischen 1024 und 65535. Daraufhin fängt der Server auf seinem Port 20 an, Daten (zuerst mal das Dirctory) an den gewünschten Port des Clients zu senden.
Sofern nun der Client hinter einem Router, einer Firewall oder einem Proxy-Server sitzt oder auch nur eine Software-Firewall installiert hat, werden die Daten davon abprallen, weil es von diesen Geräten/Programmen als unerwünschte/unerwartete Verbindungsaufnahme aus dem Web gewertet werden wird. Sprich: es wird keine Verbindung zustande kommen.

Beim passiven FTP dagegen kündigt der Server dem Client an, auf welchen Port er die Daten zu senden wünscht. Der Client bestätigt die Empfangsbereitschaft durch das Senden einer kurzen Nachricht auf eben diesem vorgeschriebenen Port - womit er der Firewall/dem Router oder Proxy gleichzeitig klar macht, das Daten auf diesem Port in den kommenden Minuten erwünscht sind und zu ihm weitergeleitet werden sollen.
Normalerweise sind auch dafür die Ports 1024-65535 vorgesehen, aber jede gute FTP-Server-Software lässt hier eine selber zu definierende Port-Range zu.

Ausdrücklich, weil es da jede Menge Missinformation im Internet gibt:
Passives oder Aktives FTP hat nichts mit dem Datentransfer zu tun, es beeinflusst weder die Geschwindigkeit noch die Anmeldung. Es geht ausschließlich darum, welcher der beiden Rechner den Port für die Datenübertragung festlegt!
Dem Client ist das egal, der probiert im Normalfall erst mal aus, ob es mit passivem FTP klappt und benutzt aktives nur, wenn passiv vom Server abgelehnt wird.

Im Klartext: Aktives FTP ist für den Betreiber des Servers zwar sehr einfach einzurichten (Server installieren und Port 21 auf dem Router freigeben), aber für den Client wird dann kompliziert: Er müsste die entsprechenden Ports auf seinem Router freigeben, um zu einer Verbindung zu kommen.
Mal ganz davon abgesehen, das 90% aller User Deppen sind, denen ich das Einrichten eines Port-Forwardings gar nicht zumuten möchte, bleibt die Tatsache, das der Client einen beliebigen Port zwischen 1024 und 65535 auswürfelt. Wenn man die alle forwarden würde (und das müsste man!), könnte man auf seinen Router/seine Firewall auch gleich ganz verzichten - denn damit würde ja auch die ganzen Ports, über die sich Würmer und Trojaner fortpflanzen, auch mit seinem Rechner verbinden. Aleine aus Sicherheitsgründen (nicht des Serverbetreibers, aber denen seiner Besucher) verbietet sich aktives FTP damit.

Passives FTP dagegen erfordert erst mal ein bischen Arbeit des Server-Betreibers: Man braucht zuallererst mal eine Server-Software, die sich auf passives FTP einstellen lässt - das kann bei weitem nicht jede! Definitiv funktionieren tut’s mit BulletProofFTP in der Version 2.3.1 - ältere Versionen können es nicht (alle)!
Im Server muss man dann unter Einstellungen/Passive Mode den Passive Mode einschalten. Außerdem muss man dort die IP-Adresse des Servers angeben. Nicht die IP-Adresse im lokalen Netz, sondern die, unter der das gesammte Netz von Internet aus erreichbar ist. Sofern man von seinem Provider eine dynamische IP bekommt, die bei jeder Einwahl wechselt, muss man sich daher bei einem DynDNS-Provider wie no-ip.com oder dnydns.org eine entsprechende Adresse besorgen, also etwas wie: ich.no-ip.com oder ich.dyndns.org.
Nun, das muss man so oder so, da ja auch der Server als solcher unter ständig wechselnden IP-Adressen im Web steht. Erreichbar ist er dann unter ftp://ich.no-ip.com.
Diesen Namen muss man in der Dialogbox des Servers unter „Dynamic IP“ eintragen. Außerdem sollte man in dieser Dialogbox auch noch die Port-Range vorgeben. Dabei empfieht es sich, eher sparsam zu sein. Bei einem „normalen“ Home-FTP-Server braucht man nicht mehr Ports als sich User gleichzeitig anmelden dürfen (kann man normalerweise auch irgendwo einstellen). 5-10 Ports dürften für jeden normalen DSL-Anschluß mehr als genug sein. Also stellt man z.B die Ports 41000-41010 ein. Wer seinen FTP-Server tarnen möchte, kann unter „General“ auch noch den Kommando-Port umstellen, also von 21 z.B. auf 40000 umstellen, um es Script-Kiddies, die nur nach FTP-Servern suchen, möglichst schwer zu machen.
Nachdem man dies alles auf seinem FTP-Server eingestellt hat, muss man noch die entsprechenden Ports (im Beispiel also 40000 und 41000-41010) in seinem Router auf den FTP-Server forwarden.

Und das war’s. Ab jetzt ist euer Server weltweit erreichbar, egal, ob der User hinter einer Firewall/einem Router sitzt, oder nicht. Vorraussetzung ist natürlich, das man im Server die entsprechenden User anlegt und die DynDNS-Adresse sowie den Kommando-Port seines Servers den entsprechenden Leuten zukommen lässt.

vielen dank für diese „kleine“ einführung in die FTP welt! *sterngeb*

bis ich das zum laufen bringe… naja… also ich hab um die domäne bei dns2go.com erstellt… wie gesagt eigentlich heisst sie jetzt ftp://meine_domäne.dns2go.com

leider ist mein ftp client (bulletproof) nur eine trial version gewesen und ich möcht etwas das freeware ist (alles ausser filezilla - bin gerade am teten) hoffe das geht tortzdem noch mit dem dns2go.com domäne, oder nicht?

schönes Schlussowrt:

Und das war’s. Ab jetzt ist euer Server weltweit erreichbar,
egal, ob der User hinter einer Firewall/einem Router sitzt,
oder nicht. Vorraussetzung ist natürlich, das man im Server
die entsprechenden User anlegt und die DynDNS-Adresse sowie
den Kommando-Port seines Servers den entsprechenden Leuten
zukommen lässt.

Wenn die Verbindung aus dem Internet bei deinem Router
ankommt, dann weiß der erstmal nicht, was er damit machen soll
und sofern auf dem Router selber kein FTP-Server läuft wird da
auch nix zu erreichen sein.
Deshalb kann man sogenannte Portforwardings einstellen. (u.U
unter Portweiterleitung, NAT , oder sowas im Routermenü zu
finden).
Grob gesagt musst du dem Router sagen, dass er Verbindungen
die auf Port 21 ankommen, an deine IP weiterleiten soll.

aaah supi! =) danke! :wink: du hast genau geschrieben was ich wissen wollte (wie? wo? warum?)… aber die anderen infos waren natürlich auch zu gebrauchen…$

grrus g-styl gamer

Hallo,

vielen dank für diese „kleine“ einführung in die FTP welt!
*sterngeb*

Diese Einführung war aber alles andere als vollständig. Gerade bei FTP gibt es ein paar Besonderheiten. Port 21 ist z.B. nur der benötigte control port. Für die eigentliche Datenübertragung wird eine weitere TCP Verbindung aufgebaut. Im „active mode“ zwischen Port 20 des Servers auf einen Port > 1023 des Zielrechners – das wird genau dann schwierig, wenn der Zielrechner seinerseits hinter einer Firewall oder sogar hinter einem NAT Router steht – und im „passive mode“ zwischen irgend einem Port > 1023 des Client auf irgend einen Port > 1023 des Servers. Das ist zwar schön für den Client, wenn er hinter einem NAT Router steht, aber ganz schlecht, wenn der Server hinter eben einem solchen steht. Oder willst Du pauschal alle Ports >1023 an Deinen Server weiterleiten? Keine besonders sichere Angelegenheit.

Dazu kommt dann noch die Eigenart des FTP, alle Daten (Login, Passwort, etc.) im Klartext zu übertragen. FTP ist also nicht gerade eine gute Lösung, wenn es um Datenaustausch zwischen Privatanwendern hinter NAT Routern geht.

Wie wäre es mit SSH/SFTP? Da brauchst Du nur Port 22 weiterleiten und gut ist.

Gruß

Fritze

Diese Einführung war aber alles andere als vollständig.

Maulst du eigentlich aus Prinzip immer rum? :wink:

Eine Einführung ist niemals Vollständig, denn sonst würde sie nicht „Einführung“ sondern „Kompendium“ oder „Definitves Handbuch“ heissen. Und dafür hab ich echt weder Zeit noch Nerven.

Diese Einführung ist insofern vollständig, als das es genauso funktioniert.
Ich hab das nämlich genauso in mühsamer Kleinarbeit vor einigen Wochen ausgearbeitet und ans Arbeiten bekommen.

Das ist zwar schön für den
Client, wenn er hinter einem NAT Router steht, aber ganz
schlecht, wenn der Server hinter eben einem solchen steht.
Oder willst Du pauschal alle Ports >1023 an Deinen Server
weiterleiten? Keine besonders sichere Angelegenheit.

Ich würde vorschlagen, das du die „unvollständige“ Einführung nochmal aufmerksam durchliest.

Da steht klipp und klar, das man dem Server vorschreiben kann (und sollte! Eben aus dem von dir genannten Grund - der auch genauso in der „unvollständigen“ Einführung steht), welche Ports zu benutzen sind (im Beispiel 40100 bis 40110), nur diese werden benutzt, und nur diese müssen auch geforwarded werden (geforwarded - was’n blödes Wort. Sagt man das in Neusprech so?).

Und mit diesen müden 10 Port (plus Kommandoport) läuft mein FTP-Server einwandfrei. Ein Sicherheitsloch kann ich da eigentlich nur erkennen, wenn man dabei ungeschickterweise einen Port freigibt, der zu einem bekannten Trojaner oder anderem Sicherheitsloch gehört. Aber dafür gibt’s ja entsprechende Listen und Übersichten im Web.

Dazu kommt dann noch die Eigenart des FTP, alle Daten (Login, Passwort, etc.)
im Klartext zu übertragen. FTP ist also nicht gerade eine gute Lösung, wenn
es um Datenaustausch zwischen Privatanwendern hinter NAT Routern geht.

Hach Gott - benutzt du email?
Man kann’s wirklich auch übertreiben . . .
Zieh den Stecker und deine Daten sind wirklich sicher.

leider ist mein ftp client (bulletproof) nur eine trial
version gewesen und ich möcht etwas das freeware ist (alles
ausser filezilla - bin gerade am teten) hoffe das geht
tortzdem noch mit dem dns2go.com domäne, oder nicht?

Wie gesagt, der FTP-Server muss passives FTP unterstützen. Das tun bei weitem nicht alle.
Mit BulletProofFTP geht’s bei mir seit etwa fünf Wochen definitiv.

Welchen DNS-Dienst du benutzt sollte im Prinzip völlig schnuppe sein.
Ich hab DynDNS genommen, weil mein Router das unterstützt, wieder eine Sache, um die sich der Rechner nicht selber kümmern muss.

Hallo,

Maulst du eigentlich aus Prinzip immer rum? :wink:

Da ist eine Entschuldigung meinerseits fällig, ich habe den zweiten Teil Deiner Ausführungen übersehen. Ungünstige Fensteraufteilung gepaart mit „self fullfilling prophecy“ :smile:

(geforwarded - was’n blödes Wort. Sagt man das in
Neusprech so?).

Ich benutze das Wort „weiterleiten“. Das mag uncool sein, vermeidet aber die sprachlichen Verrenkungen, die bei der Verwendung des Englischen auftreten :smile:

Und mit diesen müden 10 Port (plus Kommandoport) läuft mein
FTP-Server einwandfrei.

Naja, dann nutzt ihn aber auch höchstens ein User zur Zeit und der ist brav und baut nicht mehr als 10 Verbindungen auf, um das Runterladen zu beschleunigen. Bedenke auch, dass eine Verbindung nicht wieder freigegeben wird, bevor die TIME_WAIT abgelaufen ist. Das können auch mal ein paar Minuten sein.

Und nur damit Du Dir nicht abgewöhnen musst, dass ich immer was zu meckern habe: Deine Portrange ist zwar aus einem „unassigned“ Bereich, aber die sog. „ephemeral Ports“ fangen laut IANA erst bei 49152 an (bis 65535).

Ein Sicherheitsloch kann ich da
eigentlich nur erkennen, wenn man dabei ungeschickterweise
einen Port freigibt, der zu einem bekannten Trojaner oder
anderem Sicherheitsloch gehört.

Das ist unnötig. Trojaner sind durchaus NAT fähig, dazu brauchst Du also genau Null Ports freischalten. Im übrigen sind Trojaner äußerst flexibel sind in der Regel nicht bei IANA unter den Well Known Ports registriert :smile:

Dazu kommt dann noch die Eigenart des FTP, alle Daten (Login, Passwort, etc.)
im Klartext zu übertragen. FTP ist also nicht gerade eine gute Lösung, wenn
es um Datenaustausch zwischen Privatanwendern hinter NAT Routern geht.

Hach Gott - benutzt du email?

Ja. Aber meine Passworte übertrage ich auch da niemals im Klartext. Wozu gibts TLS?

Man kann’s wirklich auch übertreiben . . .

Wenn Du meinst.

Gruß

Fritze

Ich benutze das Wort „weiterleiten“. Das mag uncool sein,
vermeidet aber die sprachlichen Verrenkungen, die bei der
Verwendung des Englischen auftreten :smile:

Hmm ja. Da hast du recht.
Nur lehrt die Erfahrung, das man danach dann dem User noch mal extra erklären muss, wo er hin muss . . . weil er „Weiterleitung“ nicht im Menü des Routers findet.

Ganz unter uns: Ich kann einfach nicht fassen, wieviele Leute nicht in der Lage sind, irgendwas auf Englisch zu machen. Ich meine, das ist seit - wievielen Jahren? 50? - Standardfach in den Schulen. 80% vom Internet sind auf Englisch.
Ich hab in der Schule auch immer ne fünf gehabt, dennoch hab ich irgendwann die Kurve gekriegt. Naja, muss man wohl einfach so akzeptieren . . .

Naja, dann nutzt ihn aber auch höchstens ein User zur Zeit und
der ist brav und baut nicht mehr als 10 Verbindungen auf, um
das Runterladen zu beschleunigen. Bedenke auch, dass eine
Verbindung nicht wieder freigegeben wird, bevor die TIME_WAIT
abgelaufen ist. Das können auch mal ein paar Minuten sein.

Sicher - aber wir reden hier von einem Hobby-Server an einem DSL-Anschluß.
Bei mir gibt’s ne Begrenzung auf fünf User und nur eine Verbindung pro User. Wer mehr versucht, wird gekickt.
Ich mein, was willst du bei einem Upload von 640 kbps noch großartig beschleunigen?

Und nur damit Du Dir nicht abgewöhnen musst, dass ich immer
was zu meckern habe:

:smiley:

Deine Portrange ist zwar aus einem „unassigned“ Bereich, aber die sog.
„ephemeral Ports“ fangen laut IANA erst bei 49152 an (bis 65535).

Da hast du recht.
Tatsächlich liegen meine persönlichen Ports auch höher.
Ich bring nur Beispiele, will den Leuten aber nicht das Denken abnehmen :wink:

Das ist unnötig. Trojaner sind durchaus NAT fähig, dazu
brauchst Du also genau Null Ports freischalten. Im übrigen
sind Trojaner äußerst flexibel sind in der Regel nicht bei
IANA unter den Well Known Ports registriert :smile:

Ähm.
Ich meinte, Trojaner, die auf bekannte Sicherheitslücken von außen zugreifen. Halt Blaster, Sasser und Co.
Auch andere wie „Administrationshilfen“ wie Sub7 oder BackOrifice warten auf Kommandos auf einem bestimmten Port. Das prallt alles vom Router ab.

Wenn man erst mal einen Trojaner auf seinem Rechner hat, dann hilft ein Router natürlich gar nicht mehr und eine Firewall nur noch in wenigen Fällen. Aber das wollen wir ja alle tunlichst verhindern . . .

Ja. Aber meine Passworte übertrage ich auch da niemals im Klartext. Wozu gibts TLS?

Na gut - ich benutze kein email-Programm mehr.
Für mich tut’s auch ein Web-Account.