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

 
Linux下如何使用虛擬用戶增長FTP的安全性
 
實驗背景:
Dreamfire公司因爲業務需求,須要架設一臺FTP服務器,出於系統穩定和安全等多方面考慮,決定使用RHEL 4做爲服務器平臺,架設vsftp服務器。其次爲了最大限度地保證公司內部RHEL4服務器上「/home」下用戶的安全性,決定採用虛擬用戶的方式訪問FTP服務器。管理員爲了可以更好的靈活管理服務器上每一個用戶的訪問權限,根據貴公司的需求和當前網絡情況制定了一套可行的方案以下:
一、 全部用戶都經過用戶名:ftpall、密碼:123登陸FTP服務器的公共目錄ftpall
二、 公共目錄ftpall是供員工下載資料所用的,只容許下載,不容許刪除、修改、重命名ftpall中的文件或目錄
三、 全部用戶均可以經過本身的用戶和密碼登陸到FTP服務器上的宿主目錄裏,且只能看到本身的文件和文件夾,並且能夠添加、刪除、修改、重命名本身的文件或文件夾。
四、 匿名訪問的用戶根據實際狀況開啓,默認不開啓。
五、 全部員工訪問公共目錄ftpall的下載速度最大爲100KB/s,而訪問各自的宿主目錄的下載速度最大爲300KB/s
六、 考慮到FTP服務器的承受力,每次只容許最多100個用戶鏈接服務器。
七、 考慮到公司內部某些員工可能會用迅雷、快車等BT下載工具下載文件,因此將同一IP地址的FTP客戶機與FTP服務器創建的最大鏈接數不超過3個。
注意:虛擬用戶帳戶是爲了保證FTP服務器的安全性,由vsftpd服務器提供的非系統用戶帳戶。虛擬用戶FTP登陸後將把指定的目錄做爲FTP根目錄。虛擬用戶與本地用戶具備相似的功能,因爲虛擬用戶相對安全,所以正逐步替代本地用戶帳戶。
 
實驗步驟:
爲了更方便的測試實驗環境,本實驗採用ftpall做爲全部員工的公共用戶,xiaonuo做爲每一個用戶的表明。
 
1、掛在第一張RHEL4安裝光盤,並安裝vsftpd軟件包。
clip_p_w_picpath002
clip_p_w_picpath004
 
2、創建虛擬用戶口令庫文件
創建虛擬用戶的口令庫文件,文件中奇數行設置虛擬用戶的用戶名,偶數行設置用戶的口令。爲了便於記憶能夠將文件命名爲.txt文件。不過Linux下文件是不支持擴展名滴哦,只是爲了標示而已。
注意:用戶的口令庫文件中,不要存在空格和空行
clip_p_w_picpath006
clip_p_w_picpath008
 
3、生成vsftpd的認證文件
使用db_load命令生成認證文件,「-f」命令選項設置的值是虛擬用戶的口令庫文件,即vsftpd_login.txt,命令的參數設置爲須要生成的認證文件名vsftpd_login.db,該文件必須放在「/etc/vsftpd/」中。
注意:db_load是軟件包db4_utils帶的命令,在RHEL4是默認安裝的,在RHEL5上沒有安裝,須要安裝db4_utils這個軟件包才支持db_load命令。
clip_p_w_picpath010
 
因爲vsftpd的認證文件vsftpd_login.db裏保存了全部虛擬用戶的用戶名和密碼,爲了加強其安全性,應當設置只有root才能夠查看。
clip_p_w_picpath012
 
4、創建虛擬用戶所需的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後面的值改成新建文件的名稱。
clip_p_w_picpath014
clip_p_w_picpath016
 
5、創建虛擬用戶及要訪問的目錄並設置相應的權限。
創建vsftpd虛擬目錄所需的系統公共用戶帳號,帳號名爲ftpall,指定用戶的宿主目錄是「/var/ftp/ftpall」
創建vsftpd虛擬目錄所需的系統單用戶帳號,帳號名爲xiaonuo,指定用戶的宿主目錄是「/var/ftp/xiaonuo」
參數「-d」是創建用戶以後,並將本身的宿主目錄指向指定的位置。
注意:用戶名和宿主目錄名稱最好同樣,便於記憶。這些用戶都會存放在系統的/etc/passwd下,而且用戶密碼都存放在vsftpd認證文件中。因此是不能用虛擬用戶登陸系統的,安全性天然而然也增強了。
clip_p_w_picpath018
clip_p_w_picpath020
 
創建的虛擬用戶的宿主目錄默認都是700權限,因爲ftpall是公共目錄,是不容許普通用戶修改、添加、刪除和重命名的,因此將其改爲500(讀+執行)便可。
參數「-R」是修改用戶宿主目錄以及目錄裏全部子文件的屬性。
clip_p_w_picpath022
 
6、設置vsftpd.cong主配置文件。
在對vsftpd.conf配置文件進行修改前,應先將原有的文件進行備份,以便出現配置錯誤時可進行恢復。
clip_p_w_picpath024
 
在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
clip_p_w_picpath026
clip_p_w_picpath028
clip_p_w_picpath030
 
7、設置公用用戶ftpall的配置文件
首先建立虛擬用戶配置文件的主文件夾users_config,並在此文件夾下創建虛擬用戶的文件ftpall和xiaonuo。
clip_p_w_picpath032
 
在/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
clip_p_w_picpath034
clip_p_w_picpath036
 
8、設置單用戶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
clip_p_w_picpath038
clip_p_w_picpath040
 
經過對以上配置項的組合設置,vsftpd能夠爲每一個虛擬用戶配置不一樣的FTP權限,用戶配置文件中沒有的配置項將按照vsftpd.conf配置文件中的內容設置。
 
9、從新啓動vsftpd服務,使全部配置文件的設置生效。
使用/etc/rc.d/init.d/vsftpd restart或者services vsftpd restart命令從新啓動vsftpd服務。
clip_p_w_picpath042
 
10、測試公共用戶ftpall的權限。
在測試以前,首先在/var/ftp/ftpall和/var/ftp/xiaonuo中建立文件和文件夾作測試用。
clip_p_w_picpath044
 
公共用戶ftpall使用經常使用的IE瀏覽器進行訪問FTP服務器,測試ftpall的權限。
clip_p_w_picpath046
clip_p_w_picpath048
 
將客戶機機上的文件複製到FTP服務器上提示出錯,測試成功!
clip_p_w_picpath050
 
重命名FTP服務器上的文件提示出錯,測試成功!
clip_p_w_picpath052
 
刪除FTP服務器上的文件提示出錯,測試成功!
clip_p_w_picpath054
 
重命名FTP服務器上的文件夾提示出錯,測試成功!
clip_p_w_picpath056
 
將FTP服務器上的文件拖拽的本地文件夾中,測試成功。
clip_p_w_picpath058
 
整個測試過程說明使用ftpall用戶登陸FTP服務器,只能下載文件,不容許增長、刪除、修改、重命名文件或文件夾。
 
11、測試xiaonuo用戶
使用命令提示符窗口測試虛擬用戶xiaonuo的權限。
首先使用匿名用戶登陸,能夠看到登陸失敗,緣由是由於在主配置文件vsftpd.conf的anonymous_enable=NO的緣故,若是開啓,則登陸成功,並且可以看到全部用戶的宿主目錄名稱,雖然不能訪問,但若是惡意用戶使用用戶名猜想密碼則會形成必定的危害。
clip_p_w_picpath060
 
使用虛擬用戶xiaonuo登陸FTP服務器。
clip_p_w_picpath062
 
使用dir或者ls –l命令能夠查看到xiaonuo用戶宿主目錄裏的內容,而ftpall裏的內容是看不到的,這也就實現了用戶目錄的隔離。
clip_p_w_picpath064
 
使用get命令下載文件到本地測試成功。
clip_p_w_picpath066
 
使用put命令上傳文件到FTP服務器上測試成功
clip_p_w_picpath068
 
使用rename命令重命名FTP服務器上的文件測試成功。
clip_p_w_picpath070
 
使用rename命令重命名FTP服務器上的文件夾測試成功。
clip_p_w_picpath072
 
使用delete刪除FTP服務器上的文件測試成功。
clip_p_w_picpath074
 
使用rmdir刪除FTP服務器上的空目錄測試成功。
clip_p_w_picpath076
 
下載速度或者上傳速度的測試,可將速度調整低一點,即可以看出效果來。
經過上面的實驗能夠看出,全部員工使用公共虛擬用戶ftpall登陸FTP服務器只能查看和下載FTP服務器上共享的文件,而每一個員工使用分發的虛擬用戶名登陸FTP服務器能夠實現添加、刪除、修改、查詢宿主目錄裏的文件或文件夾,這也就實現了Dreanfire公司的業務需求,同時也加強了FTP服務器的安全性。
相關文章
相關標籤/搜索