一、CentOS 7 非匿名vsftpd搭建(主動模式/PORT)
- 檢查是否安裝了vsftp,輸入命令:
rpm -qa | grep vsftpd
返回版本信息則已安裝,沒有,則未安裝。
-
啓動vsftpd
systemctl start vsftpd
- 配置vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
開啓行數
:set number
把第12行改成
anonymous_enable=NO
含義:不允許匿名訪問
把第100行改成
chroot_local_user=YSE
含義:是否允許用戶跳出用戶目錄(YES表示不允許,NO表示允許)
把第101行改成
chroot_list_enable=YES
含義:是否啓用chroot_list_file文件,使文件中的用戶可以跳出用戶目錄
把第103行改成
chroot_list_file=/etc/vsftpd/chroot_list
含義:chroot_list_file文件的路徑,需要自行創建該文件
把第114行改成
listen=YES
含義:vsftpd運行在ipv4上
把第123行改成
#listen_vip6=YES
把第126行改成
userlist_enable=YES
含義:是否啓用/etc/vsftpd路徑下的user_list文件
在文件末尾添加
userlist_deny=NO
含義:當且僅當userlist_enable=YES時:userlist_deny項的配置纔有效,user_list文件纔會被使用;當其爲NO時,無論userlist_deny項爲何值都是無效的,本地全體用戶(除去ftpusers中的用戶)都可以登入FTP。
當userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:所有出現在名單中的用戶都會被拒絕登入;
當userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:只有出現在名單中的用戶纔會被准許登入(user_list之外的用戶都被拒絕登入);另外需要特別提醒的是:使用白名單後,匿名用戶將無法登入!除非顯式在user_list中加入一行:anonymous
allow_writeable_chroot=YES
含義:允許不可跳出用戶目錄的用戶“寫”文件。
保存並退出
:wq
- 創建chroot_list文件
vi /etc/vsftpd/chroot_list
:wq
- 創建ftp用戶
創建用戶:
useradd -d /ftp_data -g ftp -s /sbin/nologin ftp_user1
含 義: -d 指定用戶登入時的啓始目錄 -g 指定用戶所屬的羣組
-s 指定用戶登入後所使用的shell(/sbin/nologin表示:無法登陸系統,但可以登陸ftp等一些服務)
最後是用戶名
設置密碼:
passwd ftp_user1
按系統提示輸入密碼
- 在user_list文件中添加創建的ftp用戶
vi /etc/vsftpd/user_list
在文件末尾添加ftp用戶名
ftp_user1
:wq
開啓21端口
firewall-cmd --zone=public --permanent --add-port=21/tcp
- 重啓firewalld
systemctl restart firewalld
- 重啓vsftpd
systemctl restart vsftpd
- 如果使用windows的資源管理器訪問ftp服務器,則需要進行如下操作:
設置IE瀏覽器>>Internet選項>>高級>>將“使用被動FTP(用於防火牆和DSL調制解調器的兼容)”選項去掉>>確定即可
- 使用FileZilla這類ftp軟件則需要把 ftp的傳輸模式改爲主動。如:FileZilla軟件
編輯->設置->連接->ftp,傳輸模式選擇“主動”