匿名用戶
21端口:命令控制,用於接收客戶端執行的FTP命令。
20端口:數據傳輸,用於上傳、下載文件數據。


實驗:匿名訪問,服務器192.168.10.10 客戶端192.168.10.20 匿名訪問模式的FTP根目錄為/var/ftp:
第1步:
服務器端,安裝vsftpd服務, yum install vsftpd -y
第2步:
服務器端,編輯配置文件: vim /etc/vsftpd/vsftpd.conf 在配置文件中追加:第一項原配置文件中已存在
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第3步:
客戶端,安裝ftp服務, yum install ftp -y
第4步:
客戶端,使用命令: ftp 192.168.10.10 用戶名Name: anonymous 密碼空密碼。
創建文件夾時,權限被拒絕。是SELinux的限制,和/var/ftp的所有者的限制
ftp> mkdir file
第5步:
服務器端,
chown ftp /var/ftp/pub
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
第6步:
客戶端進行驗證。
本地用戶
第1步:
服務器端編輯配置文件: vim /etc/vsftpd/vsftpd.conf 追加:已經有的項目不添加
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
userlist_deny=YES
userlist_enable=YES
第2步:
/etc/vsftpd/ftpusers /etc/vsftpd/user_list 禁止列表
服務器端vsftpd服務為了讓FTP服務更加的安全,默認禁止以root身份登入,那么創建個普通用戶abc 並添加密碼:
useradd abc
passwd abc
第3步:
服務器端設置SELinux: setsebool -P ftpd_full_access=on
第4步:
客戶端登錄ftp192.168.10.10 並驗證 ,創建的文件位於abc賬戶家目錄:/home/abc
虛擬用戶
http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html權限設置參考
http://blog.chinaunix.net/uid-324202-id-144759.html 數據庫MySQL
虛擬用戶不是系統中存在的,因此比本地用戶安全,步驟
第1步:建立虛擬FTP用戶數據庫文件。
第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。
第3步:建立支持虛擬用戶的PAM認證文件。
第4步:在vsftpd.conf文件中添加支持配置。
第5步:為虛擬用戶設置不同的權限。
第6步:重啟vsftpd服務,驗證實驗效果。
第1步:建立虛擬FTP用戶數據庫文件。
服務器端,切換目錄cd /etc/vsftpd/
[root@linuxprobe vsftpd]# vim vuser.list
linuxprobe
pa33w0rd
blackshield
pa22w1rd
使用db_load命令用HASH算法生成FTP用戶數據庫文件vuser.db: db_load -T -t hash -f vuser.list vuser.db
查看文件:file vuser.db
FTP用戶數據庫內容很敏感,所以權限給小一些:chmod 600 vuser.db
第2步:創建FTP根目錄及虛擬用戶映射的系統用戶。
創建用戶virtual並設置為不允許登陸系統並定義該用戶的家目錄:useradd -d /var/ftproot -s /sbin/nologin virtual為保證其他用戶可以訪問,給予rwxr-xr-x權限:chmod -Rf 755 /var/ftproot/
第3步:建立支持虛擬用戶的PAM認證文件。
[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu
//參數db用於指向剛剛生成的vuser.db文件,但不要寫后綴。
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
第4步:在vsftpd.conf文件中添加支持配置。
vim /etc/vsftpd/vsftpd.conf
----------------------------------
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=YES
-------------------------------------
添加后的配置文件,已測試,可直接復制
第5步:為虛擬用戶設置不同的權限。
現在不論是linuxprobe還是blackshield帳戶,他們的權限都是相同的——默認不能上傳、創建、修改文件,
如果希望用戶blackshield能夠完全的管理FTP內的資料,就需要讓FTP程序支持獨立的用戶權限配置文件了:
指定用戶獨立的權限配置文件存放的目錄:vim /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vusers_dir)
創建用戶獨立的權限配置文件存放的目錄:mkdir /etc/vsftpd/vusers_dir/
切換進入到該目錄中:cd /etc/vsftpd/vusers_dir/
創建空白的linuxprobe的配置文件:touch linuxprobe
指定blackshield用戶的具體權限:vim blackshield 下面一段直接復制會報錯。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
第6步:重啟vsftpd服務,驗證實驗效果。
setsebool -P ftpd_full_access=on
在客戶端驗證以上兩個用戶的權限。
linuxprobe用戶不能創建文件夾, blackshield用戶可以創建文件夾
-----------------------------------------------------------------------------------實際應用例子-------------------
/1、主配置文件:/etc/vsftpd/vsftpd.conf 刪除默認配置增加以下內容:
客戶端只能下載~:
anonymous_enable=YES
----------------------------------------------------------------------------------
2、讓匿名用戶可以上傳/下載資料(權限開放最大)上一個配置文件后面增加:
改文件夾權限:
mkdir /var/ftp/uploads
chown ftp /var/ftp/uploads
還要修改seLinux:
setsebool -P ftpd_full_access=on
--------------------------------------------------------------------------/
3、讓匿名用戶具有上傳權限,不能下載(實際應用案例:經審核才能下載),上傳之后就在客戶端看不見了
write_enable=YES