一、匿名開放模式(最不安全)
1、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf (主配置)
anonymous_enable=YES //允許匿名訪問模式
anon_umask=022 //匿名用戶上傳文件的的umask值
anon_upload_enable=YES //允許匿名用戶上傳文件
anon_mkdir_write_enable=YES //允許匿名用戶創建目錄
anon_other_write_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=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2、[root@localhost ~]# systemctl restart vsftpd
3、[root@localhost ~]# systemctl enable vsftpd
4、[root@localhost ~]# yum install -y ftp (命令行管理工具)
注:該模式默認用戶為anonymous,密碼為空,默認訪問目錄/var/ftp
5、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir zjz1 (創建新文件夾)
257 "/pub/zjz1" created
ftp> rename zjz1 zjz2 (改名)
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir zjz2 (刪除)
250 Remove directory operation successful.
ftp> exit (退出)
221 Goodbye.
注:第一次做時權限不夠。解決:1、[root@localhost ~]# chown -Rf ftp /var/ftp/pub
2、[root@localhost ~]# getsebool -a | grep ftp ;[root@localhost ~]# setsebool -p ftpd_full_access=on (或直接關閉selinux)
3、關閉防火牆
二、本地用戶模式
1、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁止匿名訪問
local_enable=YES //允許本地用戶模式
write_enable=YES //設置可寫權限
local_umask=022 // //本地用戶創建文件的的umask值
userlist_enable=YES //啟用“禁止用戶名單”,名單文件為ftpusers 和 user_list
userlist_deny=YES //開啟用戶作用名單文件功能
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2、[root@localhost ~]# systemctl restart vsftpd
3、[root@localhost ~]# systemctl enable vsftpd
4、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): root (被拒絕)
530 Permission denied.
Login failed.
ftp>
5、[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
注:上面兩個文件夾就是禁止名單,root被禁止對系統更安全
6、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): cui (本地用戶)
331 Please specify the password.
Password: (要密碼)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
其余同匿名模式
三、虛擬用戶模式(最安全)
1、[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# vim vuser.list (創建用戶數據庫文件)
zhagnsan
123456 (密碼)
lisi
123## (密碼)
2、[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db (哈希加密)
3、[root@localhost vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
4、[root@localhost vsftpd]# chmod 600 vuser.db
5、[root@localhost vsftpd]# rm -rf vuser.list
6、[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual (創建本地用戶,指定家目錄,禁止本地用戶登錄,這個賬戶映射到虛擬用戶)
7、[root@localhost ~]# ls -ld /var/ftproot/
drwx------ 2 virtual virtual 62 Sep 15 08:17 /var/ftproot/
8、[root@localhost ~]# chmod -Rf 755 /var/ftproot/
9、[root@localhost ~]# vim /etc/pam.d/vsftpd.vu (PAM一組安全機制模塊)
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
10、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES //開啟虛擬用戶模式
guest_username=virtual //指定虛擬用戶賬戶
allow_writeable_chroot=YES //允許被禁錮的ftp根目錄執行寫入操作,而且不拒絕用戶的登錄請求
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu //指定pam文件
userlist_enable=YES
tcp_wrappers=YES
11、[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/
[root@localhost ~]# cd /etc/vsftpd/vusers_dir/
[root@localhost vusers_dir]# touch lisi
[root@localhost vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
12、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
.....同上
user_config_dir=/etc/vsftpd/vusers_dir
13、[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl enable vsftpd
注:粘貼復制時候會有空格,注意刪除空格
