Hướng dẫn cài đặt FTP server với virtual user.
Ở bài FTP trước, mình đã hướng dẫn các bạn cách thiết lập một FTP server với user của hệ thống, hôm nay mình sẽ hướng dẫn các bạn thiết lập một FTP server mà không sử dụng user của hệ thống. Những user này chỉ được ftp hiểu và sử dụng, chúng được gọi là những user ảo (virtual users)
– Giả sử trên hệ thống của bạn đã cài đặt sẵn và thiết lập một FTP server sử dụng user của hệ thống (xem bài trước).
– Chúng ta tiến hành tải gói Berkeley DB, đây là nơi lưu trữ virtual user với password của chúng.
[code lang=”js”]#yum install db4-utils db4 -y[/code]
– Sau đó tạo một file text chứa user và password cho virtual user.
[code lang=”js”]#vi /home/virtual_users.txt[/code]
– Thêm vào nội dung file này như sau: (giả sử ở đây tạo 2 user ảo test và test1, cứ dòng 1 là user, dòng 2 password, dòng 3 là user tiếp theo, dòng 4 là password,…)
[code lang=”js”]
test
testpw
test1
test1pw
[/code]
– Dựa vào file virtual_users đã tạo ở trên, ta tiến hành tạo DB thật sự để chứa những users ảo này.
[code lang=”js”]
#db_load -T -t hash -f /home/virtual_users.txt /etc/vsftpd/virtual_users.db
[/code]
– Tiếp theo tạo một PAM file để liên kết với DB virtual_users.db vừa tạo.
[code lang=”js”]
#vi /etc/pam.d/vsftpd_virtual
[/code]
– Thêm những dòng như sau vào:
[code lang=”js”]
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
session required pam_loginuid.so
[/code]
– Sau đó vào chỉnh sửa một số cầu hình trong vi /etc/vsftpd/vsftpd.conf
[code lang=”js”]
anonymous_enable=NO # không cho phép anony truy cập vào FTP server
local_enable=YES
guest_enable=YES # bật virtual user mode, quan trọng nếu không có, sẽ không login = virtual user được
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd_virtual
# Thư mục home mặc định của các virtual users
user_sub_token=$USER</p>
local_root=/home/ftp/virtual/$USER
user_config_dir=/etc/vsftpd/vsftpd_user_conf # Để cấu hình mỗi user một thư mục riêng, nếu cần thiết, mặc định vẫn là /home/ftp/virtual/$USER</p>
[/code]
– Ví dụ user test1 ở thư mục /home/otherdir/test1
[code lang=”js”]
#mkdir /etc/vsftpd/vsftpd_user_conf/
#vi /etc/vsftpd/vsftpd_user_conf/test1
[/code]
– Thêm nội dung như sau vào:
[code lang=”js”]
local_root=/home/otherdir/test1
[/code]
– Còn user test thì ở thư mục mặc định nên ta không cần cấu hình gì thêm.
– Nhớ tạo thư mục home cho các user (nếu chưa tồn tại) và gán quyền sở hữu các thư mục trên cho ftp user.
[code lang=”js”]
#mkdir -p /home/ftp/virtual/test
#chown -R ftp:ftp /home/ftp/virtual/test
#mkdir -p /home/otherdir/test1
#chown -R ftp:ftp /home/otherdir/test1
[/code]
Vậy là giờ user test sẽ ở thư mục mặc định là /home/ftp/virtual/test, còn user test1 sẽ ở thư mục /home/otherdir/test1
– Bây giờ bạn restart dịch vụ và thử login với các user ảo trên nhé!.
[code lang=”js”]
#service vsftpd restart
[/code]