Bước 1: Cài vsFTPd
sudo apt-get install vsftpd
Bước 2: Cài thư viện PAM để authenticate virtual user.
sudo apt-get install libpam-pwdfile
Bước 3: Sửa file /etc/vsftpd.conf
sudo nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
virtual_use_local_privs=YES
nopriv_user=vsftpd
local_umask=022
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
guest_enable=YES
guest_username=vsftpd
user_sub_token=$USER
local_root=/var/www/$USER
Bước 4: Sửa file /etc/pam.d/vsftpd
sudo nano /etc/pam.d/vsftpd
Tham khảo nội dung sửa
auth required pam_pwdfile.so pwdfile /etc/vsftpd/passwd
account required pam_permit.so
Bước 5: Tạo user ảo và ghi vào file /etc/vsftpd/passwd
Để tạo user ảo và mã hoá mật khẩu, cần dùng lệnh htpass.
sudo apt-get install apache2-utils
Tạo user và mã hoáhtpasswd -c -d /etc/vsftpd/passwd danglee
htpasswd -d /etc/vsftpd/passwd lee
Bước 6: Tạo thư mục ứng với từng user
mkdir /var/www/dang
chmod +w /var/www/dang
mkdir /var/www/lee
chmod +w /var/www/lee
Bước 7: Kiểm tra.
Cách 1: dùng FileZilla hoặc vào terminal gõ lệnh ftp xxx.xxx.xxx.xxx //xxx.xxx.xxx.xxx là địa chỉ IP của FTP server
———————– Bổ sung đối với trường hợp cập nhật Ubuntu gần đây————
# Cài đặt db4-utils
$ sudo apt-get install db4.2-util
$ cd /etc/vsftpd
# Tạo file text chứa danh sách các virtual user và mật khẩu
$ nano virtual-users.txt
* Thêm dòng sau:
jack #username cho virtual user
123456 #password cho jack
david
123456
* Lưu lại file (Ctrl + X, gõ Y)
– Thực hiện đoạn lệnh sau để tạo file .db chứa các tài khoản virtual
$ sudo db_load -T -t hash -f virtual-users.txt /etc/vsftpd/virtual-users.db
– Cấu hình PAM
$ sudo nano /etc/pam.d/vsftpd
* Thêm dòng sau:auth required pam_userdb.so db=/etc/vsftpd/virtual-users #db=đường dẫn đến file db account required pam_userdb.so db=/etc/vsftpd/virtual-users #db=đường dẫn đến file db
* Lưu lại file (Ctrl + X, gõ Y)
– Cấu hình file /etc/vsftpd.conf
sudo nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
virtual_use_local_privs=YES
nopriv_user=vsftpd
local_umask=022
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
guest_enable=YES
guest_username=vsftpd
user_sub_token=$USER
local_root=/var/www/$USER
# Tạo thư mục với từng user
$ mkdir /var/www/jack
$ chown -R vsftpd:ftp /var/www/jack
$ mkdir /var/www/david
$ chown –R vsftpd:ftp /var/www/david
- Khởi động lại vsftpd
$ sudo service vsftpd restart