Titel: login vom außen nicht möglich Beitrag von: wrongspot am 12. Juli 2006, 23:58:45 Hallo ,
Nun muß ich ich wohl doch an dieses Forum schreiben. Versuche seit einiger Zeit meinen Proftp Server mit mod_tls zum laufen zu bringen. Das funktioniert auch schon soweit so, daß ich mich im lokalen Netzwerk einloggen kann. Das klappt auch schon alles wunderbar. Nur bekomme ich übers Netz von außen keinen Zugang. Ich habe meines erachtens, durchs durchfortsten des Forums, die Standart-Fehlerquellen ausgeschlossen. Code: DefaultServer on ServerType standalone RequireValidShell off In meiner Config steht folgendes: Code: # (C) www.proftpd.de # updated 2003-05-12 # by Stonki ServerName "X-Files-Server" ServerType standalone DefaultServer on # Port 21 is the standard FTP port. Port 21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022 # Note that this ONLY works in standalone mode MaxInstances 30 #Homer Bild anzeigen DisplayLogin Homer.txt DelayEngine off RequireValidShell off #für schnelle Login UseReverseDNS off IdentLookups off # Set the user and group under which the server will run. User nobody Group nogroup # To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. DefaultRoot ~ # Normally, we want files to be overwriteable. AllowOverwrite on TransferLog /var/log/proftpd/proftpd.xferlog ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth #Hide all Files with .blabla <Directory /> PathDenyFilter "(^|/)[-.]" ListOptions "+a" HideFiles "((^|/)[-.]|(profile)$|Homer.txt|Events)" <Limit All> IgnoreHidden On </Limit> </Directory> # TLS <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/proftpd_tls.log TLSProtocol TLSv1 TLSRequired off TLSVerifyClient off TLSRSACertificateFile /usr/local/etc/ftpcert/host.cert TLSRSACertificateKeyFile /usr/local/etc/ftpcert/host.key </IfModule> und hier auch mein Debugmodus: Code: root@0[root]# proftpd -d9 -n - mod_tls/2.0.7: using OpenSSL 0.9.7e 25 Oct 2004 - parsing '/etc/proftpd.conf' configuration - FS: using system open() - FS: using system read() - dispatching directive 'ServerName' to module mod_core - dispatching directive 'ServerType' to module mod_core - dispatching directive 'DefaultServer' to module mod_core - dispatching directive 'Port' to module mod_core - dispatching directive 'Umask' to module mod_core - dispatching directive 'MaxInstances' to module mod_core - dispatching directive 'DisplayLogin' to module mod_core - dispatching directive 'DelayEngine' to module mod_delay - dispatching directive 'RequireValidShell' to module mod_auth - dispatching directive 'UseReverseDNS' to module mod_core - dispatching directive 'IdentLookups' to module mod_core - dispatching directive 'User' to module mod_core - dispatching auth request "getpwnam" to module mod_radius - dispatching auth request "getpwnam" to module mod_auth_file - dispatching auth request "getpwnam" to module mod_auth_unix - dispatching directive 'Group' to module mod_core - dispatching auth request "getgrnam" to module mod_radius - dispatching auth request "getgrnam" to module mod_auth_file - dispatching auth request "getgrnam" to module mod_auth_unix - dispatching directive 'DefaultRoot' to module mod_auth - dispatching directive 'AllowOverwrite' to module mod_xfer - dispatching directive 'TransferLog' to module mod_core - dispatching directive 'ExtendedLog' to module mod_log - dispatching directive '<Directory>' to module mod_core - <Directory />: adding section for resolved path '/' - dispatching directive 'PathDenyFilter' to module mod_core - Compiling deny regex '(^|/)[-.]'. - Allocated deny regex at location 0x8129050. - dispatching directive 'ListOptions' to module mod_ls - FS: using system read() - dispatching directive 'HideFiles' to module mod_core - dispatching directive '<Limit>' to module mod_core - dispatching directive 'IgnoreHidden' to module mod_core - dispatching directive '</Limit>' to module mod_core - dispatching directive '</Directory>' to module mod_core - dispatching directive '<IfModule>' to module mod_core - <IfModule>: found 'mod_tls.c' module - dispatching directive 'TLSEngine' to module mod_tls - dispatching directive 'TLSLog' to module mod_tls - dispatching directive 'TLSProtocol' to module mod_tls - dispatching directive 'TLSRequired' to module mod_tls - dispatching directive 'TLSVerifyClient' to module mod_tls - dispatching directive 'TLSRSACertificateFile' to module mod_tls - FS: using system lstat() - dispatching directive 'TLSRSACertificateKeyFile' to module mod_tls - FS: using system lstat() - dispatching directive '</IfModule>' to module mod_core - FS: using system read() - FS: using system close() box - box - Config for X-Files-Server: box - / box - Limit box - IgnoreHidden box - PathDenyFilter box - ListOptions box - HideFiles box - Umask box - DisplayLogin box - RequireValidShell box - AllowOverwrite box - TransferLog box - TLSRequired box - DefaultServer box - Umask box - DisplayLogin box - DelayEngine box - RequireValidShell box - IdentLookups box - UserID box - UserName box - GroupID box - GroupName box - DefaultRoot box - AllowOverwrite box - TransferLog box - ExtendedLog box - TLSEngine box - TLSLog box - TLSRequired box - TLSVerifyClient box - TLSRSACertificateFile box - TLSRSACertificateKeyFile box - ROOT PRIVS at ../../../modules/mod_tls.c:584 box - RELINQUISH PRIVS at ../../../modules/mod_tls.c:586 box - ROOT PRIVS at ../../../modules/mod_tls.c:632 box - mod_tls/2.0.7: passphrase locked into memory box - RELINQUISH PRIVS at ../../../modules/mod_tls.c:638 box - dispatching auth request "getgroups" to module mod_radius box - dispatching auth request "getgroups" to module mod_auth_file box - dispatching auth request "getgroups" to module mod_auth_unix box - SETUP PRIVS at ../../../src/main.c:2736 box - ROOT PRIVS at ../../../src/main.c:1970 box - RELINQUISH PRIVS at ../../../src/main.c:1977 box - ROOT PRIVS at ../../../src/main.c:2325 box - opening scoreboard '/var/run/proftpd/proftpd.scoreboard' box - RELINQUISH PRIVS at ../../../src/main.c:2351 box - ROOT PRIVS at ../../../src/inet.c:322 box - RELINQUISH PRIVS at ../../../src/inet.c:380 box - ProFTPD 1.2.10 (stable) (built do mrt 22 18:28:32 CET 2001) standalone mode STARTUP box - ROOT PRIVS at ../../../src/main.c:2188 box - RELINQUISH PRIVS at ../../../src/main.c:2190 box - FS: using system lstat() box - scrubbing scoreboard box - ROOT PRIVS at ../../../modules/mod_core.c:130 box - RELINQUISH PRIVS at ../../../modules/mod_core.c:132 box - ROOT PRIVS at ../../../modules/mod_core.c:160 box - RELINQUISH PRIVS at ../../../modules/mod_core.c:189 box - FS: using system lstat() Das sieht mir sehr nach einem Fehler aus. Ich kann mir auch vorstellen, da der Server als User und Group nobody läuft und Rootrechte braucht, da es an dieser Stelle Probleme klemmt?????? Ich bin nun nicht der große Linux Guru, aber wenn mir da jemand weiterhelfen könnte, dann wäre ich da schon sehr dankbar. dann wünsche ich noch eine angenehme Nachtruhe ::) da Björn Titel: Re: login vom außen nicht möglich Beitrag von: VolGas am 13. Juli 2006, 06:32:56 Hallo!
Deine proftpd.conf sieht eigentlich gut aus, mir ist nach kurzem Überfliegen nichts aufgefallen. Was mich etwas stutzig gemacht hat, ist Deine Bemerkung "bekomme ich übers Netz von außen". Wenn Dein Server hinter einem Router mit NAT erreichbar sein soll, siehe Direktive ->MasqueradeAddress (http://www.proftpd.de/Direktiven.54.0.html#97) Damit wäre ebenfalls die Problematik der TLS-Zertifikate zu beachten: sie sind auf eine IP "fixiert". Generell würde ich TLS zunächst ausschalten "TLSEngine off", bis alles getestet ist und funktioniert. Zu Deinem Debug-Output: leider kann man damit nichts anfangen, da dieser nicht von einem Login stammt. Diesen Teil des Output kannst Du jeweils verwerfen. Was interessant ist, ist die Ausgabe ab dem Zeitpunkt, an dem versucht wird, sich einzuloggen. Zu dem Thema Root-Rechte: normalerweise wird der ProFTPD als "root" gestartet und schaltet sich dann aus Sicherheitsgründen auf einen angegebenen User um. Beim Einloggen wird ein neuer Prozess gestartet, der dann kurzfristig auf die Root-Rechte zurückschaltet, um die Identität (UID/GID) des Users anzunehmen. Damit verliert dieser abgespaltete Prozess engültig alle Root-Rechte und erst dann ist der Login komplett (so oder so ähnlich, man möge mir Fehler im Detail nachsehen). Wenn die FTP-Session beendet wird, wird auch der dem User zugeteile Prozess beendet. Du must Dir darüber nicht wirklich Gedanken machen, das funktioniert normalerweise sehr zuverlässig. Deaktiviere also zunächst noch einmal TLS und poste hier ein Debug-Ouput eines Loginversuchs, dann sehen wir weiter. mfg. VolGas Titel: Re: login vom außen nicht möglich Beitrag von: wrongspot am 13. Juli 2006, 09:50:21 die TLSEngine habe ich vorerst deaktiviert. Und bei MasqueradeAddress habe ich meine DynDNS.org Adresse angegeben. Komischerweise tritt im Debugmodus kein logging auf, wenn ich mich von außen einwähle. Ich nehme stark an, daß ich wohl nicht bis zum FTP Server in meinem Netzwerk vor dringe. Wobei mir das logging vom FTP Client suggeriert das ich da eigentlich am FTP-Server geklopft habe?????
Mein FTP Client zeigt mir folgendes an: Code: [L] Verbinde zu xxxxxx.xxxxxxxxxxxx.xx -> DNS=xxxxxx.xxxxxxxxxxxx.xx IP=88.73.236.82 PORT=21 [L] Verbunden mit xxxxxx.xxxxxxxxxxxx.xx [L] 220 P660HW-T7 FTP version 1.0 ready at Mon Jan 03 23:26:13 2000 [L] USER ftpdownloader [L] 331 Enter PASS command [L] PASS (hidden) [L] 530 User ftpdownloader cannot log in. [L] Verbindung fehlgeschlagen [L] Verzögere um 120 Sekunden bis zum Versuch einer erneuten Verbindung Nr.1 da Björn Titel: Re: login vom außen nicht möglich Beitrag von: VolGas am 13. Juli 2006, 19:45:22 Da scheint etwas nicht zu stimmen - das war wohl nicht Deine Maschine.
Ich gehe nun für das weitere Vorgehen davon aus, daß Dein ProFTPD lokal funktioniert. Für die Benutzung hinter einem NAT-Router reicht die Verwendung von "MasqueradeAddress" alleine noch nicht aus. Du mußt noch eine Lücke für die sog. "high ports" in Deine Firewall "schlagen", d.h. Du benötigst ein Portforwarding in Deinem Router für den "passive mode". (Dein FTP-Client sollte immer nur den "passive mode" nutzen!) Richte im Router einen Portforwarder für z.B. die Ports 50000 bis 52000 ein. In der proftpd.conf muß dann analog dazu noch "PassivePorts 50000 52000" stehen. Den ProFTPD neu starten, hoffen, und versuchen diesmal die richtige Maschine zu treffen. Es kann aber durchaus sein, daß es Dir wirklich nur von außerhalb gelingt, auf Deine Maschine zu kommen - das hängt von dem IP-Resolving Deines Arbeitsplatzrechners ab. Versuche es einfach und poste ggf. den Debug-Output wie schon beschrieben. Viel Erfolg! mfg. VolGas Titel: Re: login vom außen nicht möglich Beitrag von: wrongspot am 13. Juli 2006, 23:45:37 Besten Dank für die ausführliche Beschreibung. Habe alles nach Deinen Anregungen eingerichtet, doch leider kommt noch immer nix am Proftpd Server an. Könnte man mit irgendwelchen Tools versuchen zum Server durchzupingen? Ich habe so die Befürchtung das mein Arcor WLAN Router nicht korrekt durchroutet.....mhhh.
Ich werde den Kopf noch nicht in den Sand stecken. bis dahin, der Björn Titel: Re: login vom außen nicht möglich Beitrag von: wrongspot am 14. Juli 2006, 00:23:17 was mir da gerade einfällt, meinen Router kann ich auch per FTP administrieren. Es wird wohl wahrscheinlich sein, daß wenn ich mich auf meiner DynDNS Adresse einlogge, ich jedesmal bei meinem Router lande. Das könnte das Problem sein. Ich werde das gleich morgen mal testen.
Gute Nacht Titel: Re: login vom außen nicht möglich Beitrag von: wrongspot am 16. September 2006, 10:45:14 nur zur Verfollständigung, habe den Fehler nun gefunden. Im Router war nicht der Loopback aktiviert. Das heißt wenn ich aus meinem lokalen Netz über die DYNDNS Adresse gegangen bin, dann bin ich nie auf den Server gekommen. Von wirklich "draußen" gehts ohne Probleme.
Titel: Re: login vom außen nicht möglich Beitrag von: VolGas am 18. September 2006, 05:28:24 Eine Lösung, damit beide Netze (LAN & WAN) gleichzeitig funktionieren, wären zwei IP's
auf einer Maschine und in ProFTPD ein zusätzlicher, virtueller Host. Als Grundlage siehe diese ->Beispiel-Konfiguration (http://www.proftpd.de/Standard_Deluxe.57.0.html) In diesem Beispiel ist die IP 192.168.1.100 für den zu maskierenden FTP-Zugang (WAN) und die IP 192.168.1.101 für den lokalen Server (LAN). Jeder Server nutzt dann sauber getrennt seine eigene IP und damit sollte dann ein Zugriff aus beiden Netzen gleichzeitig funktionieren. Probier' mal... mfg. VolGas |