1. 程式人生 > >centos安裝配置vsftp

centos安裝配置vsftp

一、安裝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.203220 (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.203220 (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.00133.00千位元組/秒。
ftp>

新增如下引數

chroot_local_user=YES
chroot_list_enable=NO

結果如下所示:

C:\Users\Mr.Wu>ftp 192.168.17.203
連線到 192.168.17.203220 (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.203220 (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