centos安裝配置vsftp
阿新 • • 發佈:2019-01-01
一、安裝vsftpd和ftp客戶端
yum install vsftpd ftp -y
二、啟動測試ftp
/etc/init.d/vsftpd start
本機登陸測試
[root@myblog ~]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.2.2)
Name (127.0.0.1:root):
如果要在別的電腦上訪問,需要關閉selinux和iptables(或新增21號埠)
/etc/init.d/iptables stop 關閉防火牆
setenforce 0 設定selinux為警告
windows下登陸測試的情況
C:\Users\Mr.Wu>ftp 192.168.17.203
連線到 192.168.17.203。
220 (vsFTPd 2.2.2)
使用者(192.168.17.203:(none)): anonymous
331 Please specify the password.
密碼:
230 Login successful.
ftp>
三、允許匿名使用者建立資料夾和上傳檔案引數
預設情況下的vsftpd的配置檔案
[[email protected] ~]# grep -Ev "^$|#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
在vsftpd.conf配置檔案中新增如下程式碼
anon_upload_enable=YES
anon_mkdir_write_enable=YES
重啟FTP服務
/etc/init.d/vsftpd reload
結果在建立資料夾的時候出現如下的問題
ftp> mkdir test
550 Create directory operation failed.
ftp>
解決辦法:
chmod 757 /var/ftp/pub/
或者
chmod o+w /var/ftp/pub/
測試結果如下
ftp> mkdir test
257 "/pub/test" created
ftp> bye
221 Goodbye.
四、禁止使用者在ftp模式下切換到/目錄下
在ftp下面是可以直接使用真實使用者來登陸的,為了安全是需要禁止其切換到/目錄下
C:\Users\Mr.Wu\Desktop>ftp 192.168.17.203
連線到 192.168.17.203。
220 (vsFTPd 2.2.2)
使用者(192.168.17.203:(none)): silence
331 Please specify the password.
密碼:
230 Login successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> ls
……省略……
226 Directory send OK.
ftp: 收到 133 位元組,用時 0.00秒 133.00千位元組/秒。
ftp>
新增如下引數
chroot_local_user=YES
chroot_list_enable=NO
結果如下所示:
C:\Users\Mr.Wu>ftp 192.168.17.203
連線到 192.168.17.203。
220 (vsFTPd 2.2.2)
使用者(192.168.17.203:(none)): test
331 Please specify the password.
密碼:
230 Login successful.
ftp> pwd
257 "/"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).
ftp>
五、禁止特定的真實使用者登陸
在user_list裡面新增你需要禁用的使用者
vim /etc/vsftpd/user_list
在vsftpd.conf配置檔案中新增如下程式碼
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
測試結果如下
C:\Users\Mr.Wu\Desktop>ftp 192.168.17.203
連線到 192.168.17.203。
220 (vsFTPd 2.2.2)
使用者(192.168.17.203:(none)): silence
530 Permission denied.
登入失敗。
ftp>
六、配置虛擬使用者
其實使用真實使用者來登陸ftp是非常不安全的一件事情,所以ftp還是採用虛擬使用者好。
安裝db4
yum install db4 -y
然後編輯虛擬使用者和密碼檔案
vim /etc/vsftpd/login.txt
將txt生成db檔案
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftp_login.db
編輯/etc/pam.d/vsftp
32位系統新增
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
64位系統新增
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
虛擬使用者的宿主使用者
useradd -d /var/ftp/file -s /sbin/nologin virftp
在vsftpd.conf配置檔案中新增如下程式碼
guest_enable=YES
guest_username=virftp
重啟ftp服務,測試結果如下
C:\Users\Mr.Wu\Desktop>ftp 192.168.17.203
連線到 192.168.17.203。
220 (vsFTPd 2.2.2)
使用者(192.168.17.203:(none)): linux
331 Please specify the password.
密碼:
230 Login successful.
ftp>
七、完成後的總配置
[[email protected] ~]# grep -Ev "^$|#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
guest_enable=YES
guest_username=virftp