Titel: Probleme mit VirtualHost's per Port-Anweisung (WAN, DNS, LIST, PASV) Beitrag von: MailMan am 01. Februar 2007, 18:08:42 Hi Forum,
ich bekomme es nicht hin, zwei unterschiedliche DynDNS-Adressen auf zwei virtuelle FTP-Host's umzuleiten. Eine Verwaltung auf User-/Directory-Ebene ist in meinem Fall nicht möglich, da unterschiedliche AuthUserFile's nötig sind, welche täglich aktualisiert werden, d.h., dass sich die User oder Passwörter ändern können. Problembeschreibung Ein FTP-Zugriff aus dem LAN funktioniert immer! Von extern bleibt der Client bei "LIST" hängen. Fehlermeldungen "AllowForeignAddress off": Externer Zugriff (unbekannter FTP-Client) = Refused PORT 192,168,101,70,4,42 (address mismatch) Lokal über DNS (Filezilla) = SECURITY VIOLATION: Passive connection from ::ffff:192.168.0.21 rejected. "AllowForeignAddress on": Externer Zugriff (unbekannter FTP-Client) = keine Fehlermeldung, bleibt beim LIST-Command stehen Lokal über DNS (Filezilla) = funktioniert einwandfrei Umgebung Router: DrayTek Vigor 2800 (Loopback aktiviert) O/S: Linux Ubuntu Edgy ProFTPD: 1.3.0 Client: Filezilla (Win32) Settings Server-IP: 192.168.0.254 Router Open Ports => 192.168.0.254: 60100-60227 (auch 1024-65535 getestet); 2121 (VHost1); 2131 (VHost2) Ich hoffe es liegt nicht am Router, bei dem auch keinerlei Firewall-Einstellungen gesetzt sind. Merci für alle Tipps & Tricks :) Folgend natürlich noch die zuletzt getestete proftpd.conf. Code: # Includes DSO modules Include /etc/proftpd/modules.conf ServerName "FTP" ServerType standalone DeferWelcome off DefaultAddress 192.168.0.254 #tcpNoDelay off UseReverseDNS off AuthUserFile /var/shares/ftp_user MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 600 TimeoutSession 0 DisplayLogin welcome.msg DisplayConnect /etc/proftpd/welcome.msg DisplayFirstChdir .message DenyFilter \*.*/ Port 0 MaxInstances 30 # Set the user and group that the server normally runs at. #User proftpd #Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 003 # Normally, we want files to be overwriteable. AllowOverwrite on # Uncomment this if you are using NIS or LDAP to retrieve passwords: # PersistentPasswd off # Be warned: use of this directive impacts CPU average load! # # Uncomment this if you like to see progress and transfer rate with ftpwho # in downloads. That is not needed for uploads rates. # UseSendFile off LogFormat default "%h %u %t \"%r\" %s %b" ExtendedLog /var/log/proftpd.access_log AUTH,WRITE,READ # ExtendedLog /var/log/proftpd.access_log ALL #TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd.log # DebugLevel 5 <IfModule mod_tls.c> TLSEngine off </IfModule> <IfModule mod_quota.c> QuotaEngine on </IfModule> <IfModule mod_ratio.c> Ratios on </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine on ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine on </IfModule> <Global> IdentLookups off ListOptions "-l" RequireValidShell off AllowRetrieveRestart on AllowForeignAddress on AllowStoreRestart on AllowLogSymlinks off MaxClients 20 MaxClientsPerHost 5 MaxLoginAttempts 2 DefaultChdir /var/shares/ftp DefaultRoot /var/shares/ftp DeleteAbortedStores on RootLogin off UseFtpUsers off # Group ftpuser PassivePorts 60100 60227 ExtendedLog /var/log/proftpd.access_log AUTH,WRITE,READ </Global> # VHOSts *************************************************** # FTP1 ***************************************************** <VirtualHost 192.168.0.254> ServerName "VHost1" MasqueradeAddress ftp1.dyndns.org Port 2121 DefaultChdir /var/shares/ftp DefaultRoot /var/shares/ftp AuthUserFile /var/shares/ftp_user DisplayConnect /etc/proftpd/welcome.msg <Directory /var/shares/ftp> <Limit MKD RTFR RNTO DELE RMD STOR> DenyAll AllowUser mich </Limit> </Directory> <Directory /var/shares/ftp/ftp2> <Limit ALL> DenyAll AllowUser mich </Limit> </Directory> <Directory /var/shares/ftp/upload/*> <Limit MKD RTFR RNTO DELE RMD STOR WRITE> AllowAll </Limit> </Directory> <Directory /var/shares/ftp/audio> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> </Directory> <Directory /var/shares/ftp/video> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> </Directory> <Directory /var/shares/ftp/xbox> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD WRITE> DenyAll </Limit> </Directory> </VirtualHost> # FTP2 ***************************************************** <VirtualHost 192.168.0.254> ServerName "VHost2" Port 2131 MasqueradeAddress ftp2.dyndns.org DefaultChdir /var/shares/ftp/ftp2 DefaultRoot /var/shares/ftp/ftp2 AuthUserFile /var/shares/ftp_pf_user DisplayConnect /etc/proftpd/welcome_pf.msg <Directory /var/shares/ftp/ftp2> <Limit MKD RTFR RNTO DELE RMD STOR> DenyAll AllowUser mich dich uns </Limit> </Directory> </VirtualHost> Titel: Re: Probleme mit VirtualHost's per Port-Anweisung (WAN, DNS, LIST, PASV) Beitrag von: stonki am 05. Februar 2007, 09:02:41 1) FTP (also nicht nur ProFTPD, sondern dass Protokoll) unterstützt keine virtuellen Hosts auf Namenbasis wie HTTP (1.1) das tut. Sprich: Du brauchst für jeden virtuellen Server zwingend eine eigene IP !
2) Du verwechselst IMHO MasqueradAdress und AllowForeign<wasauchimmer>: AllowForeign<wasauchimmer> wird für FXP Transfer benötigt, wenn die Daten Verbindung von einer anderen Adresse als die Kontrollverbindung aufgebaut wird. <b>Hinter</b> einem Router benötigst Du jedoch MasqueradAdress (bitte in der Direktiven Liste nach der richtigen Schreibweise schauen), damit die IP richtig verwendet wird. Titel: Re: Probleme mit VirtualHost's per Port-Anweisung (WAN, DNS, LIST, PASV) Beitrag von: MailMan am 06. Februar 2007, 18:50:09 erstmal Merci für die Antwort, stonki.
Zu 1): In der ProFTPD-HowTo ist notiert, dass entweder unterschiedliche IPs nötig sind, oder dass man verschiedene Ports nutzt, wie in meinem Fall. http://www.proftpd.de/HowTo-Server-Config.42.0.html Zitat Bei der Verwendung von <VirtualHost> Bereichen muss auf zwei Sachen geachtet werden. Zum einen muss sichergestellt werden, das bei Verwendung von DNS Namen, der DNS Name auf eine andere IP als der Defaultserver verweist. Oft wird angenommen, dass virtuelle Server unter ProFTPD ähnlich der von Apache sind. Das ist leider nicht da Fall, da das FTP Protokoll keine Namen basierenden virtuellen Server unterstützt. Daher sind Virtuelle Server nur bei unterschiedlichen IPs möglich oder wenn man unterschiedliche Ports verwendet. Zu 2): MasqueradeAddress habe ich in den virtuellen Host entsprechend angegeben, s. Config. Des Weiteren können ja Verbindungen zu beiden VHost's hergestellt werden, nur funktioniert das Auflisten der Verzeichnisse nicht (ausgenommen mit aktivierten FXP und dann anscheinend nur von bestimmten FTP-Clients, oder Clients, bei denen der Port für FXP >= 1024 ist). Titel: Re: Probleme mit VirtualHost's per Port-Anweisung (WAN, DNS, LIST, PASV) Beitrag von: VolGas am 07. Februar 2007, 14:41:35 Hi,
ich habe mich lange vor einer Antwort gedrückt, denn am liebsten hätte ich mit "vergiß es" geantwortet, da ich zu dem Thema einen seitenweisen Vortrag halten könnte. Was Stonki schreibt, stimmt prinzipiell, doch willst Du ja nicht unterschiedliche IP-Adressen im Internet propagieren, sondern unterschiedliche Portadressen. Das geht. Nur: "MasqueradeAddress" kann tatsächlich nur einmal "greifen", da Du ja auch zum Internet hin über Deinen Router nur eine einzelne IP-Adresse hast. Also sind zwei dyndns-Adressen unnütz, die IP-Adressen wären immer identisch. Damit jeweils ein interner und ein ("übersetzter") externer Zugriff möglich ist, brauchst Du für Deine Server- maschine zwei interne IP-Adressen: einmal für FTP-intern (LAN) und einmal für FTP-extern (WAN). Weiterhin ist für jeweils jeden Port ein (virtueller) Server einzurichten, für jede IP einmal extra. Damit hätten wir schon einmal vier (ein default, drei virtuelle) Server, aber warum nicht... Dann solltest Du mit Deinem FTP-Client nur passiv auf den FTP-Server zugreifen, entsprechend viele Ports sind offen und zu Deinem Server durchzulassen - und zwar ausschließlich 1:1, ohne Portforwarding, Porttranslation oder wie es sich sonst so schön in solchen Routern konfigurieren läßt !!! Bevor wir jetzt anfangen, an Deiner proftpd.conf herumzubasteln, möchte Dir vorschlagen, daß Du Dir das Konfigurationsbeispiel ->hier (http://www.proftpd.de/uploads/media/proftpd.conf) einmal ansiehst und dieses entsprechend erweiterst und anpasst. Das erspart einigen Ärger - und wahrscheinlich auch einiges an Erklärungen. Es ist höchst problematisch und schwierig (wenn nicht sogar unmöglich), einen Server über einen heimischen DSL-Anschluß mit dynamsicher IP auch nur einigermaßen verläßlich betreiben zu wollen: ich halte es -Entschuldigung- schlicht für eine blöde Idee. Zum verläßlichen Betrieb eines Servers gehört nun zumindest einmal eine feste IP-Adresse. Günstige V-Server findet man quasi an jeder Ecke. Jetzt willst Du zu allem Verdruß auch noch FXP auf der wackeligen IP einsetzten - Wahnsinn... Achte darauf, daß hier der ProFTPD den passiven Part übernimmt, dann könnte es vielleicht sogar funktionieren. Viel Spaß beim basteln und viel Erfolg! mfg. VolGas |