下載vsftpd
apt-get install vsftpd配置vsftpd,在配置之前最後先備份一下vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
所有配置信息如下:(讀者可以直接copy,然後覆蓋自己的vsftpd.conf內容)
# allow anonmy user login
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
# local user setting
local_enable=YES
local_root=/home/ftp/public
local_umask=022
write_enable=YES
# allow ip to or not to connect this ftp(depends on the /etc/hosts.allow and /etc/hosts.deny)
tcp_wrappers=YES
chroot_local_user=YES
anon_root=/home/ftp/public
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=/tmp/banner
listen=YES
pam_service_name=vsftpd
max_clients=5000
max_per_ip=5000
# set virtual users
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/user_conf
#other settings
reverse_lookup_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
chroot_local_user=YES
3 . 劃分vsftp工作目錄
/home/ftp
4 . 創建虛擬用戶用戶名和密碼文件
vi /etc/vsftpd/login.txt
username #奇數行是用戶名
pwd #偶數行是密碼
5 . 生成PAM認證的db文件
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login
6 . 修改權限
chmod 600 /etc/vsftpd/vsftpd_login.db
7 . 修改PAM文件
vi /etc/pam.d/vsftpd
//註釋掉所有配置信息,然後添加以下兩行配置信息
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
//注意,網上有些配置在pam_userdb.so前面加上了/lib..的路徑,本人開始也是這樣做始終都登錄不上,原因是各個機器路徑也許不一樣,讀者需要看該文件之前的以pam開始的.so文件是否帶路徑(即已經被我們註釋了的部分),如果那部分.so都帶路徑了則pam_userdb.so前面也要帶相同的路徑,否則不需要帶路徑
8 . 建立一個本地用戶,虛擬用戶通過映射到這個本地用戶才能訪問ftp文件服務器
useradd -d /home/ftp -s /sbin/nologin virtual
-d 指定ftp工作目錄 -s指定該用戶不能登錄本機shell
9 . 修改ftp工作目錄權限
chown virtual /home/ftp
10 . 修改vsftpd配置信息
添加一下信息:
local_enable=YES #由於虛擬用戶是通過映射到本地用戶virtual才能訪問ftp服務器的,這個值必須爲YES才能使得虛擬用戶能夠訪問
pam_service_name=vsftpd
guest_enable=YES
guest_username=virtual #虛擬用戶映射的本地用戶
user_config_dir=/etc/vsftpd/user_conf #指定虛擬用戶的配置文件夾
11 . 創建虛擬用戶的配置文件
cd /etc/vsftpd/user_conf #進入user_conf文件夾內
vi username
#各種權限的配置大家看英文名應該都能懂什麼意思,想給用戶配什麼權限就讓該權限YES即可,下面給出的配置是給虛擬用戶賦全部權限
local_root=/home/ftp/username
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
12 . 重啓vsftpd
service vsftpd restart