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 自己再去研究下. 注意:通過以上操作,原來的用戶賬號就不能使用了
|