www.ProFTPD.de
13. März 2007, 18:23:45 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Neu installiert!
 
   Übersicht   Hilfe Suche Login Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Probleme mit VirtualHost's per Port-Anweisung (WAN, DNS, LIST, PASV)  (Gelesen 104 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
MailMan
ProFTPD
*
Offline Offline

Beiträge: 2


Profil anzeigen
« 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 Smiley

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>
Gespeichert
stonki
Administrator
ProFTPD
*****
Offline Offline

Beiträge: 1853


15318939
Profil anzeigen WWW E-Mail
« Antwort #1 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.
Gespeichert

www.stonki.de:    the more I see, the more I know.......
www.proftpd.de:   Deutsche ProFTPD Dokumentation
www.krename.net:  Der Batch Renamer für KDE
www.kbarcode.net: Die Barcode Solution für KDE
MailMan
ProFTPD
*
Offline Offline

Beiträge: 2


Profil anzeigen
« Antwort #2 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).
Gespeichert
VolGas
Moderator
ProFTPD
*****
Online Online

Beiträge: 770



Profil anzeigen
« Antwort #3 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 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
« Letzte Änderung: 15. Februar 2007, 15:51:26 von VolGas » Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.064 Sekunden mit 18 Zugriffen.