it-swarm.com.de

Beschränken Sie den FTP-Zugriff nur auf / var / www mit vsftpd

Ich verwende vsftpd als FTP-Server unter meinem Linux (Rasbian) und melde mich als Root-Benutzer am Computer an.

Ich möchte weiterhin nur/var/www verwenden. Wie kann ich vsftpd conf konfigurieren, um dies zu erreichen?

41
Badr Hari

Methode 1: Ändern des Home-Verzeichnisses des Benutzers

Stellen Sie sicher, dass die folgende Zeile vorhanden ist

chroot_local_user=YES

Setzen Sie das Benutzer-HOME-Verzeichnis auf /var/www/, wenn Sie für einen vorhandenen Benutzer ändern möchten, können Sie Folgendes verwenden:

usermod --home /var/www/ username

setzen Sie dann die erforderliche Berechtigung auf /var/www/

Methode 2: Verwenden Sie user_sub_token

Wenn Sie das Home-Verzeichnis des Benutzers nicht ändern möchten, können Sie Folgendes verwenden:

chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER

Über user_sub_token:

Generieren Sie automatisch ein Basisverzeichnis für jeden virtuellen Benutzer basierend auf einer Vorlage. Wenn beispielsweise das über guest_username angegebene Basisverzeichnis des realen Benutzers/ftphome/$ USER ist und user_sub_token auf $ USER festgelegt ist, wird er beim Anmelden des virtuellen Benutzers angemeldet (normalerweise chroot () 'ed) das Verzeichnis/ftphome/test. Diese Option wird auch wirksam, wenn local_root user_sub_token enthält.

Verzeichnis erstellen und Berechtigungen einrichten:

mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test

Starten Sie vsftpd neu und testen Sie Ihr Setup.

Beispiel für eine Erfolgsausgabe:

[[email protected] tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts? 
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r--    1 787      787            24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
65
Rahul Patil

Du kannst das:

usermod --home /var/www/ username
4
Zeev Cohen

Ich habe den obigen Vorschlag von Rahul Patil verwendet:

chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER

Aber ich konnte nicht verstehen, warum ich mich nur mit einem Benutzer anmelden konnte. Dann stellte ich fest, dass wir nicht in ein Stammverzeichnis chrooten konnten (in diesem Fall /home/$USER/www-data) die einen Schreibzugriff haben. Also entferne ich den Schreibzugriff mit:

# chmod a-w /home/$USER/www-data

HINWEIS : change $USER mit Ihrem Benutzer.

2
Rizal Rahman

Überprüfen Sie die chrootOptionen in vsftpd.conf Und erstellen Sie einen separaten Benutzer dafür, dessen Homedir auf /var/www Gesetzt ist.

1
jirib