Virtuelles ProFTPD-Benutzerverzeichnis

Virtuelles ProFTPD-Benutzerverzeichnis

Okay, ich versuche hier, das grundlegende Setup eines Webhosting-Unternehmens zu replizieren, indem ich virtuelle Benutzer über SQL authentifiziere und sie in ihr Verzeichnis umleite/einsperre. Ich habe die meisten Ziele hier erreicht,mit Ausnahme der Umleitung/Sperre in ihr Verzeichnis.

Die Verzeichnisse werden in gespeichert /home/ftpund das DefaultRootist die Einstellung. Ich möchte, dass jeder einzelne Benutzer sein eigenes Verzeichnis hat und in diesem gesperrt wird. Es scheint, dass diese Einstellung homedirin SQL keine Auswirkungen hat. Wenn Sie sich mit einem beliebigen Benutzer bei FTP anmelden, erfolgt die Anmeldung DefaultRootohne Verzeichnissperrung oder Umleitung.

Wie erledige ich diese letzte Aufgabe?

Antwort1

Versuchen Sie, DefaultRoot auszukommentieren. Ich glaube, dass dies die aus dem Datenbank-Backend gelesenen Werte überschreiben könnte.

BEARBEITEN:

Wenn DefaultRoot und irgendetwas anderes als ~ festgelegt ist, wird der Benutzer in einem Baum gefangen gehalten, dessen Wurzel bei DefaultRoot liegt.

Wenn DefaultRoot ~ ist, wird der Benutzer in einem Baum gefangen gehalten, dessen Wurzel sein Home-Verzeichnis ist.

Antwort2

Wie sieht Ihre SQL-Konfiguration zusätzlich zur erwähnten Festlegung von DefaultRoot ~ aus – extrahieren Sie sie tatsächlich aus der Datenbank?

DefaultRoot ~

<IfModule mod_dso.c>
  LoadModule mod_sql.c
  LoadModule mod_sql_mysql.c
</IfModule>

SQLLogFile          /var/log/proftpd/mod_sql.log
PersistentPasswd    off
AuthPAM             off
AuthUserFile        /some/path/to/dummy/passwd.ftp
AuthGroupFile       /some/path/to/dummy/group.ftp
AuthOrder           mod_sql.c mod_auth_file.c

SQLConnectInfo      proftpd@localhost:3306 userdatabase password
SQLAuthTypes        Backend Crypt Plaintext OpenSSL
SQLUserInfo         user user_id password NULL NULL ftp_homedir NULL
SQLAuthenticate     users
SQLDefaultUID       14
SQLDefaultGID       50
SQLMinUserUID       13
SQLMinUserGID       49

Dies ist ein mehr oder weniger prägnantes Beispiel für eine 100%ige Authentifizierung aus der Datenbank und die Sperrung der Benutzer in ihrem in der Datenbank aufgeführten Home-Verzeichnis. Wenn Sie bei der Anmeldung auch ihr Home-Verzeichnis dynamisch erstellen möchten (nützlich, wenn Sie sie zu einer Datenbank hinzufügen und sich dafür nicht bei einem Server anmelden möchten), können Sie Folgendes hinzufügen:

CreateHome on dirmode 0755

...zur Konfiguration. Die beiden anderen oben aufgeführten Dummy-Dateien entsprechen Ihrer ProFTPd-Installation, die auf einem Red Hat/Centos-Server läuft:

passwd.ftp

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

gruppe.ftp

ftp:x:50:
nobody:x:99:

Dies führt dazu, dass Ihre virtuellen Benutzer unabhängig von ihrem Anmeldebenutzernamen eine UID/GID von 14:50 auf der Festplatte haben.

verwandte Informationen