Linux下如何使用虛擬用戶增加FTP的安全性

實驗背景:
Dreamfire公司由於業務需求,需要架設一臺FTP服務器,出於系統穩定和安全等多方面考慮,決定使用RHEL 4作爲服務器平臺,架設vsftp服務器。其次爲了最大限度地保證公司內部RHEL4服務器上“/home”下用戶的安全性,決定採用虛擬用戶的方式訪問FTP服務器。管理員爲了能夠更好的靈活管理服務器上每個用戶的訪問權限,根據貴公司的需求和當前網絡狀況制定了一套可行的方案如下:
1、 所有用戶都通過用戶名:ftpall、密碼:123登錄FTP服務器的公共目錄ftpall
2、 公共目錄ftpall是供員工下載資料所用的,只允許下載,不允許刪除、修改、重命名ftpall中的文件或目錄
3、 所有用戶都可以通過自己的用戶和密碼登錄到FTP服務器上的宿主目錄裏,且只能看到自己的文件和文件夾,而且可以添加、刪除、修改、重命名自己的文件或文件夾。
4、 匿名訪問的用戶根據實際情況開啓,默認不開啓。
5、 所有員工訪問公共目錄ftpall的下載速度最大爲100KB/s,而訪問各自的宿主目錄的下載速度最大爲300KB/s
6、 考慮到FTP服務器的承受力,每次只允許最多100個用戶連接服務器。
7、 考慮到公司內部某些員工可能會用迅雷、快車等BT下載工具下載文件,所以將同一IP地址的FTP客戶機與FTP服務器建立的最大連接數不超過3個。
注意:虛擬用戶賬戶是爲了保證FTP服務器的安全性,由vsftpd服務器提供的非系統用戶賬戶。虛擬用戶FTP登錄後將把指定的目錄作爲FTP根目錄。虛擬用戶與本地用戶具有類似的功能,由於虛擬用戶相對安全,因此正逐步替代本地用戶賬戶。

實驗步驟:
爲了更方便的測試實驗環境,本實驗採用ftpall作爲所有員工的公共用戶,xiaonuo作爲每個用戶的代表。

一、掛在第一張RHEL4安裝光盤,並安裝vsftpd軟件包。



二、建立虛擬用戶口令庫文件
建立虛擬用戶的口令庫文件,文件中奇數行設置虛擬用戶的用戶名,偶數行設置用戶的口令。爲了便於記憶可以將文件命名爲.txt文件。不過Linux下文件是不支持擴展名滴哦,只是爲了標示而已。
注意:用戶的口令庫文件中,不要存在空格和空行



三、生成vsftpd的認證文件
使用db_load命令生成認證文件,“-f”命令選項設置的值是虛擬用戶的口令庫文件,即vsftpd_login.txt,命令的參數設置爲需要生成的認證文件名vsftpd_login.db,該文件必須放在“/etc/vsftpd/”中。
注意:db_load是軟件包db4_utils帶的命令,在RHEL4是默認安裝的,在RHEL5上沒有安裝,需要安裝db4_utils這個軟件包才支持db_load命令。


由於vsftpd的認證文件vsftpd_login.db裏保存了所有虛擬用戶的用戶名和密碼,爲了增強其安全性,應當設置只有root纔可以查看。


四、建立虛擬用戶所需的PAM配置文件
修改/etc/pam.d/vsftpd文件
將默認配置全部用“#”註釋在最後添加
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:也可以另外建立一個文件,但是要在/etc/vsftpd/vsftpd.conf中將pam_service_name=vsftpd後面的值改爲新建文件的名稱。



五、建立虛擬用戶及要訪問的目錄並設置相應的權限。
建立vsftpd虛擬目錄所需的系統公共用戶賬號,賬號名爲ftpall,指定用戶的宿主目錄是“/var/ftp/ftpall”
建立vsftpd虛擬目錄所需的系統單用戶賬號,賬號名爲xiaonuo,指定用戶的宿主目錄是“/var/ftp/xiaonuo”
參數“-d”是建立用戶之後,並將自己的宿主目錄指向指定的位置。
注意:用戶名和宿主目錄名稱最好一樣,便於記憶。這些用戶都會存放在系統的/etc/passwd下,並且用戶密碼都存放在vsftpd認證文件中。所以是不能用虛擬用戶登錄系統的,安全性自然而然也加強了。



建立的虛擬用戶的宿主目錄默認都是700權限,由於ftpall是公共目錄,是不允許普通用戶修改、添加、刪除和重命名的,所以將其改成500(讀+執行)即可。
參數“-R”是修改用戶宿主目錄以及目錄裏所有子文件的屬性。


六、設置vsftpd.cong主配置文件。
在對vsftpd.conf配置文件進行修改前,應先將原有的文件進行備份,以便出現配置錯誤時可進行恢復。


在vsftpd.conf配置文件中添加虛擬用的配置項,內容如下:
anonymous_enable=NO 禁用匿名用戶登錄
local_enable=YES 啓用本地用戶登錄(本質上是爲了能夠讓虛擬用戶登錄)
chroot_local_user=YES 將所有本地用戶限制在自己的目錄中
pam_service_name=vsftpd 配置vsftpd使用的PAM模塊爲vsftpd
user_config_dir=/etc/vsftpd/users_config 設置虛擬賬戶配置文件的主目錄爲 /users_config(後面創建)
max_clients=100 設置FTP服務器最大接入客戶端數爲100個
max_per_ip=3 設置每個IP地址最大連接數爲3個
local_max_rate=300000 FTP服務器的本地用戶最大傳輸速率設置爲300KB/s
anon_max_rate=100000 FTP服務器匿名用戶最大傳輸速率設置爲100KB/s




七、設置公用用戶ftpall的配置文件
首先創建虛擬用戶配置文件的主文件夾users_config,並在此文件夾下建立虛擬用戶的文件ftpall和xiaonuo。


在/etc/vsftpd/user_config/ftpall配置文件中添加虛擬用的配置項,內容如下:
guest_enable=YES 開啓虛擬賬戶登錄
guest_username=ftpall 設置ftpall對應的系統賬戶爲ftpall
anon_world_readable_only=NO 允許用戶瀏覽FTP目錄和下載文件
anon_max_rate=100000 限制傳輸速率爲100KB/s



八、設置單用戶xiaonuo的配置文件
在/etc/vsftpd/user_config/xiaonuo配置文件中添加虛擬用的配置項,內容如下:
guest_enable=YES 開啓虛擬賬戶登錄
guest_username=xiaonuo 設置xiaonuo目錄對應的系統賬戶爲xiaonuo
anon_world_readable_only=NO 允許用戶瀏覽FTP目錄和下載文件
anon_other_write_enable=YES 允許用戶進行文件改名和刪除文件的權限
anon_mkdir_write_enable=YES 表示用戶具有建立和刪除目錄的權利
anon_upload_enable=YES 表示用戶可以上傳文件
anon_max_rate=300000 限制傳輸速度爲300KB/s



通過對以上配置項的組合設置,vsftpd可以爲每個虛擬用戶配置不同的FTP權限,用戶配置文件中沒有的配置項將按照vsftpd.conf配置文件中的內容設置。

九、重新啓動vsftpd服務,使所有配置文件的設置生效。
使用/etc/rc.d/init.d/vsftpd restart或者services vsftpd restart命令重新啓動vsftpd服務。


十、測試公共用戶ftpall的權限。
在測試之前,首先在/var/ftp/ftpall和/var/ftp/xiaonuo中創建文件和文件夾做測試用。


公共用戶ftpall使用常用的IE瀏覽器進行訪問FTP服務器,測試ftpall的權限。



將客戶機機上的文件複製到FTP服務器上提示出錯,測試成功!


重命名FTP服務器上的文件提示出錯,測試成功!


刪除FTP服務器上的文件提示出錯,測試成功!


重命名FTP服務器上的文件夾提示出錯,測試成功!


將FTP服務器上的文件拖拽的本地文件夾中,測試成功。


整個測試過程說明使用ftpall用戶登錄FTP服務器,只能下載文件,不允許增加、刪除、修改、重命名文件或文件夾。


十一、測試xiaonuo用戶
使用命令提示符窗口測試虛擬用戶xiaonuo的權限。
首先使用匿名用戶登錄,可以看到登錄失敗,原因是因爲在主配置文件vsftpd.conf的anonymous_enable=NO的緣故,如果開啓,則登錄成功,而且能夠看到所有用戶的宿主目錄名稱,雖然不能訪問,但如果惡意用戶使用用戶名猜測密碼則會造成一定的危害。


使用虛擬用戶xiaonuo登錄FTP服務器。


使用dir或者ls –l命令可以查看到xiaonuo用戶宿主目錄裏的內容,而ftpall裏的內容是看不到的,這也就實現了用戶目錄的隔離。


使用get命令下載文件到本地測試成功。


使用put命令上傳文件到FTP服務器上測試成功


使用rename命令重命名FTP服務器上的文件測試成功。


使用rename命令重命名FTP服務器上的文件夾測試成功。


使用delete刪除FTP服務器上的文件測試成功。


使用rmdir刪除FTP服務器上的空目錄測試成功。


下載速度或者上傳速度的測試,可將速度調整低一點,便可以看出效果來。
通過上面的實驗可以看出,所有員工使用公共虛擬用戶ftpall登錄FTP服務器只能查看和下載FTP服務器上共享的文件,而每個員工使用分發的虛擬用戶名登錄FTP服務器可以實現添加、刪除、修改、查詢宿主目錄裏的文件或文件夾,這也就實現了Dreanfire公司的業務需求,同時也增強了FTP服務器的安全性。
本文出自 “
【小諾的LINUX成長之路】” 博客,請務必保留此出處http://dreamfire.blog.51cto.com/418026/160521 650) this.width=650;" height=183 ?547?>650) this.width=650;" height=204 ?542?>650) this.width=650;" height=229 ?543?>650) this.width=650;" height=376 ?556?>650) this.width=650;" height=104 ?445?>650) this.width=650;" height=89 ?498?>650) this.width=650;" height=174 ?538?>650) this.width=650;" height=176 ?415?>650) this.width=650;" height=153 ?470?>650) this.width=650;" height=259 ?557?>650) this.width=650;" height=312 ?557?>650) this.width=650;" height=306 ?557?>650) this.width=650;" height=318 ?557?>650) this.width=650;" height=324 ?557?>650) this.width=650;" height=297 ?558?>650) this.width=650;" height=383 ?555?>650) this.width=650;" height=188 ?558?>650) this.width=650;" height=83 ?557?>650) this.width=650;" height=204 ?509?>650) this.width=650;" height=71 ?557?>650) this.width=650;" height=154 ?525?>650) this.width=650;" height=69 ?558?>650) this.width=650;" height=105 ?557?>650) this.width=650;" height=293 ?560?>650) this.width=650;" height=181 ?558?>650) this.width=650;" height=90 ?503?>650) this.width=650;" height=67 ?557?>650) this.width=650;" height=142 ?557?>650) this.width=650;" height=94 ?508?>650) this.width=650;" height=94 ?558?>650) this.width=650;" height=223 ?557?>650) this.width=650;" height=72 ?492?>650) this.width=650;" height=67 ?557?>650) this.width=650;" height=95 ?545?>650) this.width=650;" height=135 ?524?>650) this.width=650;" height=76 ?558?>650) this.width=650;" height=98 ?557?>650) this.width=650;" height=41 ?557?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章