匿名用戶
FTP協議佔用兩個端口號:
21端口:命令控制,用於接收客戶端執行的FTP命令。html
20端口:數據傳輸,用於上傳、下載文件數據。 linux
實驗:匿名訪問,服務器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
550 Permission denied.
第5步:
服務器端,
chown ftp /var/ftp/pub
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
第6步:
客戶端進行驗證。
本地用戶
本地用戶即服務器端(除root外)的普通用戶。
第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/abcweb
虛擬用戶
http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html權限設置參考
http://blog.chinaunix.net/uid-324202-id-144759.html 數據庫MySQL算法
虛擬用戶不是系統中存在的,所以比本地用戶安全,步驟
第1步:創建虛擬FTP用戶數據庫文件。數據庫
第2步:建立FTP根目錄及虛擬用戶映射的系統用戶。vim
第3步:創建支持虛擬用戶的PAM認證文件。安全
第4步:在vsftpd.conf文件中添加支持配置。服務器
第5步:爲虛擬用戶設置不一樣的權限。session
第6步:重啓vsftpd服務,驗證明驗效果。
第1步:創建虛擬FTP用戶數據庫文件。
服務器端,切換目錄cd /etc/vsftpd/
[root@linuxprobe vsftpd]# vim vuser.listapp
//單數行爲賬號,雙數行爲密碼。
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
-------------------------------------
添加後的配置文件,已測試,可直接複製
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
allow_writeable_chroot=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
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
第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用戶能夠建立文件夾
-----------------------------------------------------------------------------------實際應用例子-------------------
ftp服務器匿名用戶設置
匿名用戶在服務器端映射到ftp用戶下
/一、主配置文件:/etc/vsftpd/vsftpd.conf 刪除默認配置增長如下內容:
客戶端只能下載~:
anonymous_enable=YES
no_anon_password=YES 匿名登陸系統不檢測密碼,一般是email
anon_max_rate=1000000 最大帶寬10M
data_connection_timeout=60 超時60s
idle_session_timeout=600 發呆超過10分鐘斷線
max_clients=50 最大鏈接數及每一個IP可用鏈接
max_per_ip=5
local_enable=NO
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
tcp_wrappers=YES
banner_file=/etc/vsftpd/anon_welcome.txt 歡迎信息
----------------------------------------------------------------------------------
二、讓匿名用戶能夠上傳/下載資料(權限開放最大)上一個配置文件後面增長:
write_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
改文件夾權限:
mkdir /var/ftp/uploads
chown ftp /var/ftp/uploads
還要修改seLinux:
setsebool -P ftpd_anon_write=on
setsebool -P ftpd_full_access=on
--------------------------------------------------------------------------/
三、讓匿名用戶具備上傳權限,不能下載(實際應用案例:經審覈才能下載),上傳以後就在客戶端看不見了
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
chown_uploads=YES
chown_username=daemon 將上傳文件全部者改成daemon因此沒法下載