www.ProFTPD.de
13. März 2007, 21:43:50 *
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: Kein Login an Virtualhost möglich  (Gelesen 202 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
nasi_be
ProFTPD
*
Offline Offline

Beiträge: 5


Profil anzeigen
« am: 26. Februar 2006, 19:09:21 »

Hallo zusammen!

Ich habe ein Problem mit einem Virtualhost.
Bei der Anmeldung kommt bei mir auf dem Client immer die Fehlermeldung, daß das Kennwort falsch ist.
In der Log-Datei steht, daß eine LIMIT-Anweisung den Zugriff verweigert.
Aber ich sehe meinen Fehler einfach nicht...

Hier meine Config:
Code:

ServerName "Debian"
ServerType                      standalone
DeferWelcome off
DefaultAddress                  192.168.2.3
Port                            621
SocketBindTight                 on
DefaultServer                   off

MultilineRFC2228 on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                 "-l"

DenyFilter \*.*/

UseReverseDNS off
IdentLookups off

RequireValidShell               off

MaxInstances 30
MaxClientsPerHost 3
MaxClientsPerUser 3
MaxHostsPerUser 1

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 027  027

# Normally, we want files to be overwriteable.
AllowOverwrite on
AllowRetrieveRestart            on
AllowStoreRestart               on

# Some logging formats
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"

<Global>

  # Set the user and group that the server normally runs at.
  User nobody
  Group nogroup

  # Log file/dir access
  ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write
  # Record all logins
  ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth
  # Paranoia logging level....
  ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default
  # Normale Log-Datei anstatt Syslog
  ServerLog /var/log/proftpd/proftpd.log

  DefaultChdir /home/ftpdaten
  DefaultRoot /home/ftpdaten

  # Login-Berechtigungen setzen
  <Limit LOGIN PASV PORT>
    DenyAll
    AllowGroup ftpuser
  </Limit>

  # Verzeichnis /home/ftpdaten und Unterverzeichnisse
  <Directory /home/ftpdaten>
    # Dateien ausblenden, auf die der Benutzer keine
    # Berechtigungen hat
    HideNoAccess on
    # Alles verbieten
    <Limit ALL>
      DenyAll
    </Limit>
    # Gruppe ftpuser Lese-Zugriff geben
    <Limit READ>
      AllowGroup ftpuser
    </Limit>
    # Gruppe ftpuser Dir-Zugriff geben
    <Limit DIRS>
      AllowGroup ftpuser
    </Limit>
  </Directory>

  # Verzeichnis /home/ftpdaten/upload und Unterverzeichnisse
  <Directory /home/ftpdaten/upload>
    # Gruppe ftpuser Schreib-Zugriff geben
    # (ohne Loesch-Rechte)
    <Limit MKD STOR STOU>
      AllowGroup ftpuser
    </Limit>
  </Directory>
</Global>


  # TLS
  <IfModule mod_tls.c>
  TLSEngine on
  TLSLog /var/log/proftpd/proftpd_tls.log
  TLSProtocol TLSv1
  TLSRequired on
  TLSVerifyClient off
  TLSRSACertificateFile /etc/ftpcert/ftphost.cert
  TLSRSACertificateKeyFile /etc/ftpcert/ftphost.key
  </IfModule>

<VirtualHost 192.168.2.4>
  ServerName "Debian-Local"
  Bind 192.168.2.4
  Port 21

  # Set the user and group that the server normally runs at.
  User nobody
  Group nogroup

  # Log file/dir access
  ExtendedLog /var/log/proftpd/local-proftpd.access_log WRITE,READ write
  # Record all logins
  ExtendedLog /var/log/proftpd/local-proftpd.auth_log AUTH auth
  # Record all paranoid...
  ExtendedLog /var/log/proftpd/local-proftpd.paranoid_log ALL default
  # Normale Log-Datei anstatt Syslog
  ServerLog /var/log/proftpd/local-proftpd.log


  DefaultChdir /home/backuplw
  DefaultRoot /home/backuplw
 
  <Limit LOGIN PASV PORT>
    DenyAll
    AllowGroup imageftp
  </Limit>


</VirtualHost>


Geht das eigentlich so wie ich mir das vorgestellt habe?
Ich will TLS nur auf Global und nicht auf dem Virtualhost aktiviert haben, da der globale für externen Zugriff sein soll und der andere für internen (LAN) für Programme, die mit TLS nicht umgehen können.
Wenn ich die TLS-Befehle aber in den Gobal-Teil aufnehme, dann kommt eine Fehlermeldung, aber anscheinend scheint es im Moment auf dem Virtualhost weder mit noch ohne TLS zu funktionieren.

Die Fehlermeldung in der Datei /var/log/proftpd/local-proftpd.log sieht folgendermaßen aus:

Code:

Feb 26 18:51:32 debsrv proftpd[3256] 192.168.2.4 (192.168.2.121[192.168.2.121]): FTP session opened.
Feb 26 18:51:32 debsrv proftpd[3256] 192.168.2.4 (192.168.2.121[192.168.2.121]): USER imageftp (Login failed): Limit access denies login
Feb 26 18:51:32 debsrv proftpd[3256] 192.168.2.4 (192.168.2.121[192.168.2.121]): FTP session closed.


Was habe ich denn falsch gemacht?

Gruß
Thomas
Gespeichert
VolGas
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 771



Profil anzeigen
« Antwort #1 am: 27. Februar 2006, 00:17:48 »

Hi!

Wow, Da hat sich jemand aber ganz schön Mühe gegeben!
Jetzt im Detail darauf einzugehen wird mir -ehrlich gesagt- zu viel und warum das Login
nicht klappt, ist mir auch nicht ganz klar.

Ich versuche nun auf die Punkte einzugehen, die mir aufgefallen sind:
    [*]Fasse zuerst alle möglichen Anweisungen im <Global>-Block zusammen.
    [*]Prima: DefaultAddress, SocketBindTight, DefaultServer, <VirtualHost ...>
    Weglassen: Bind (unnötig und "depricated")
    [*]<Limit LOGIN PASV PORT>: Login ist klar, aber warum den "passive mode"
    verbieten - dieser ist doch normalerweise ausdrücklich erwünscht?!
    [*]DefaultChdir /home/ftpdaten entfernen
    [*]Du machst Dir mit deinen "Limits" das Leben ganz schön schwer.
    Drehe die Logik um und es wird wesentlich einfacher (und kürzer):

    Code:
    <Limit LOGIN>
      DenyGroup !ftpuser
      </Limit>

    <Directory /home/ftpdaten>
     <Limit WRITE>
        DenyAll
      </Limit>
    </Directory>
    ...

    Das dürfte das selbe bewirken wie das, was Du erreichen wolltest.
    [*]Daran denken: die System-Zugriffsrechte können nicht "ausgehebelt" werden![/list]Ich habe mir erlaubt und -auch nur ausnahmsweise(!!!)- die Mühe gemacht,
    Deine .conf-Datei entsprechend umzugestalten (nicht getestet und natürlich
    alles ohne Gewährleistung!):

    Code:

    ServerType          standalone
    SocketBindTight     on
    DefaultServer       off

    DeferWelcome        off
    MultilineRFC2228    on

    MaxInstances 30
    MaxClientsPerHost 3
    MaxClientsPerUser 3
    MaxHostsPerUser 1

    UseReverseDNS off
    IdentLookups off

    # Some logging formats
    LogFormat default "%h %l %u %t \"%r\" %s %b"
    LogFormat auth "%v [%P] %h %t \"%r\" %s"
    LogFormat write "%h %l %u %t \"%r\" %s %b"

    <Global>

        # Set the user and group that the server normally runs at.
        User    nobody
        Group   nogroup

        RequireValidShell    off
       
        TimeoutNoTransfer   600
        TimeoutStalled      600
        TimeoutIdle         1200
       
        DisplayLogin        welcome.msg
        DisplayFirstChdir   .message
        DenyFilter          \*.*/
        ListOptions         "-l"
        ShowSymlinks        on

        # Normally, we want files to be overwriteable.
        AllowOverwrite          on
        AllowRetrieveRestart    on
        AllowStoreRestart       on

        # Umask 022 is a good standard umask to prevent new files and dirs
        # (second parm) from being group and world writable.
        Umask   027  027
       
       
        # Log file/dir access
        ExtendedLog /var/log/proftpd/proftpd.access_log WRITE,READ write
        # Record all logins
        ExtendedLog /var/log/proftpd/proftpd.auth_log AUTH auth
        # Paranoia logging level....
        ExtendedLog /var/log/proftpd/proftpd.paranoid_log ALL default
        # Normale Log-Datei anstatt Syslog
        ServerLog /var/log/proftpd/proftpd.log
       
        DefaultRoot /home/ftpdaten

        # Login-Berechtigungen setzen
        <Limit LOGIN>
            DenyGroup !ftpuser
        </Limit>
       
        <Directory /home/ftpdaten>
            HideNoAccess on
            <Limit WRITE>
                DenyAll
            </Limit>
        </Directory>
       
        # Verzeichnis /home/ftpdaten/upload und Unterverzeichnisse
        <Directory /home/ftpdaten/upload>
            # Gruppe ftpuser Schreib-Zugriff geben
            # (ohne Loesch-Rechte)
            <Limit MKD STOR STOU>
                AllowGroup ftpuser
            </Limit>
        </Directory>
    </Global>

    # --------------------------------------------
    # Standard-Server
    # --------------------------------------------

    ServerName      "Debian"
    DefaultAddress  192.168.2.3
    Port            621

    # TLS
    <IfModule mod_tls.c>
        TLSEngine on
        TLSProtocol TLSv1
        TLSLog /var/log/proftpd/proftpd_tls.log
        TLSRequired on
        TLSVerifyClient off
        TLSRSACertificateFile /etc/ftpcert/ftphost.cert
        TLSRSACertificateKeyFile /etc/ftpcert/ftphost.key
    </IfModule>


    # --------------------------------------------
    # Lokaler Server
    # --------------------------------------------

    <VirtualHost 192.168.2.4>
        ServerName "Debian-Local"
        Port 21
       
        # Log file/dir access
        ExtendedLog /var/log/proftpd/local-proftpd.access_log WRITE,READ write
        # Record all logins
        ExtendedLog /var/log/proftpd/local-proftpd.auth_log AUTH auth
        # Record all paranoid...
        ExtendedLog /var/log/proftpd/local-proftpd.paranoid_log ALL default
        # Normale Log-Datei anstatt Syslog
        ServerLog /var/log/proftpd/local-proftpd.log

        DefaultRoot /home/backuplw

        <Limit LOGIN>
            DenyGroup !imageftp
        </Limit>
    </VirtualHost>


    Ich hoffe, daß das alles so funktioniert...
    Zum Testen schaltest Du vielleicht zuerst einmal TLS aus ("TLSEngine off").
    Wenn das mit TLS so nicht funktionieren sollte, dann überprüfe noch einmal
    Deine Zertifikate und die Zugriffsrechte darauf.

    Gruß
      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.06 Sekunden mit 19 Zugriffen.