vsftpd 虛擬賬號管理 (2)

vsftpd 虛擬賬號管理

vsftpd雖然英文全稱叫Very Secure FTP ,也就是非常安全的ftp.但是我們平時如果用本地系統賬號來開放下載,上傳權限時還是容易被一些不懷好意的Hacker竊取我們的用戶名密碼進入系統.一定層面上也給系統帶來的不安全的隱患.那麼解決這種問題建立虛擬賬號來管理我的ftp不失爲一個好辦法.下面就來討論下vsftpd的虛擬賬號配置.
我們的要達到的目的是,建立三個虛擬賬號.分別是tom,tony,admin. 其中tom具有瀏覽文件,目錄和下載的權限.tony具有下載,瀏覽,和建立目錄的權限.admin具有下載,上傳,瀏覽,建立並刪除目錄的權限.3個賬號密碼統一爲123.(測試方便)
首先:我們進入到/etc/vsftpd/ 下,打開一個文本vuser.txt,在裏面添加如下內容:
tom
123
tony
123
admin
123

:wq (保存退出)
以上就是一行爲用戶名,下一行跟密碼.這樣添加3個用戶名,密碼分別都是123.
ok,然後我們需要生成hash加密的數據庫文件以便讓後續的pam.userdb 這個模塊來讀取我們的用戶名密碼進行驗證.我們需要確認系統已經安裝了db4_utils的rpm包,接下來執行:
db_load -T -t hash -f   vuser.txt    vuser.db
生成數據庫文件後,vsftpd要啓用虛擬賬號需要跟PAM認證模塊配合.我們用rpm安裝好vsftp套件後.在/etc/pam.d/下就會有一個vsftpd的文件,這個是vsftpd利用pam這個認證模塊來認證用戶登陸的,默認的配置有點像這樣:
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
爲了虛擬用戶不跟系統賬號的登錄認證產生分歧,所以我們把上面的5行話全部註釋掉加入以下兩行:
auth required   pam_userdb.so  db=/etc/vsftpd/vuser
account required  pam_userdb.so  db=/etc/vsftpd/vuser

這裏的db=後面指的就是我們生成好的hash數據文件.文件後綴的.db是不需要打的,pam_userdb.so這個模塊會自動幫我們識別.還有就記住/etc/pam.d/vsftpd 文件裏面原先的內容一定要註釋掉.只留新添加的兩行即可.因爲虛擬賬號要登陸系統必須要影射到我們系統的真實用戶上.不可能一個無緣無故的用戶跑到我們系統上來.所以需要建立一個虛擬用戶影射的系統賬號:useradd benetcisco   不需要給這個用戶密碼,那麼他也永遠不能登陸系統.
接下來就是配置我們vsftpd的主配置文件了.vi /etc/vsftpd/vsftpd.conf ,關閉所有與anonymous有關的配置,打開guest賬號.設置用戶個性化配置目錄.一些貼出我的vsftpd.conf的配置:
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=yes
guest_username=benetcisco (guest賬號影射爲benetcisco)
user_config_dir=/etc/vsftpd/vuser_conf (用戶個性化配置目錄)

:wq (保存退出)
然後我們在/etc/vsftpd/下
mkdir vuser_conf ;cd vuser_conf
分別建立tom,tony,admin 這三個文件,文件名必須跟虛擬用戶名一致,然後我們就可以在這些文件裏面添加用戶所對應的權限嘍.....
在tom裏添加 anon_world_readable_only=NO (這個選項是說用戶只可以讀取自己有權限讀取的文件,這項爲YES的話那麼其他用戶的文件就看不到了,這裏我們設置爲NO)
然後是tony的配置文件:
anon_world_readable_only=NO
download_enable=YES
write_enbale=YES
anon_write_mkdir_enable=YES
anon_max_rate=200000 (限速爲200K)
admin的配置
anon_world_readable_only=NO
download_enable=YES
write_enbale=YES
anon_write_mkdir_enable=YES
anon_other_write_enabel=YES
local_root=/db/ftp (默認虛擬用戶會登陸到自己影射的系統用戶主目錄,如果你希望他登陸到其它目錄就用這個選項)
OK 到現在我們的配置就完成了,service vsftpd restart 重啓服務就可以用我們建好的虛擬賬號來登錄了.當然vsftpd還有很多牛X的配置,大家有興趣可以man vsftpd.conf 自己再去研究下.
 
注意:通過以上操作,原來的用戶賬號就不能使用了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章