歡迎您光臨本站 註冊首頁

RHEL5企業級Linux Vstpd服務全攻略之高級配置

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

RHEL5企業級Linux Vstpd服務全攻略之高級配置

企業環境

公司為了宣傳最新的產品信息,計劃搭建FTP伺服器,為客戶提供相關文檔的下載。對所有權互聯網開放共享目錄,允許下載產品信息,禁止上傳。公司的合作單位能夠使用FTP伺服器進行上傳和下載,但不可以刪除數據。並且保證伺服器的穩定性,進行適當優化設置哈~
需求分析
根據企業的需求,對於不同用戶進行不同的許可權限制,FTP伺服器需要實現用戶的審核。需考慮到伺服器的安全性,所以關閉實體用戶登錄,使用虛擬帳號驗證機制,並對不同虛擬帳號設置不同的許可權。為了保證伺服器的性能,還需要根據用戶的等級,限制客戶端的連接數及下載速度。
解決方案
1、創建用戶資料庫
(1)創建用戶文本文件
先建立用戶文本文件vsftpd_virtualuser.txt,添加兩個虛擬帳號,公共帳號ftp及客戶帳號vip
touch /etc/vsftpd/vsftpd_virtualuser.txt
vim /etc/vsftpd/vsftpd_virtualuser.txt
格式:
虛擬帳號1
密碼
虛擬帳號2
密碼
保存退出哈~
(2)生成資料庫
保存虛擬帳號和密碼的文本文件無法被系統帳號直接調用哈~我們需要使用db_load命令生成db資料庫文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db
注意:
rhel5默認只安裝db4-4.3.29-9.fc6.i386.rpm和db4-devel-4.3.29-9.fc6.i386.rpm,
要使用db_load需要將db4-utils-4.3.29-9.fc6.i386.rpm包安裝上哈~否則會出現下圖的錯誤:找不到db_load命令。
(3)修改資料庫文件訪問許可權
資料庫文件中保存著虛擬帳號的密碼信息,為了防止非法用戶盜取哈,我們可以修改該文件的訪問許可權。生成的認證文件的許可權應設置為只對root用戶可讀可寫,即600
chmod 600 /etc/vsftpd/vsftpd_virtualuser
2、配置PAM文件
為了使伺服器能夠使用資料庫文件,對客戶端進行身份驗證,需要調用系統的PAM模塊.PAM(Plugable Authentication Module)為可插拔認證模塊,不必重新安裝應用系統,通過修改指定的配置文件,調整對該程序的認證方式。PAM模塊配置文件路徑為/etc /pam.d/目錄,此目錄下保存著大量與認證有關的配置文件,並以服務名稱命名。
修改vsftpd對應的PAM配置文件/etc/pam.d/vsftpd,將默認配置使用「#」全部註釋,添加相應欄位。
修改成下圖效果:
3、創建虛擬帳號對應的系統用戶
對於公共帳號和客戶帳號,因為需要配置不同的許可權,所以可以將兩個帳號的目錄進行隔離,控制用戶的文件訪問。公共帳號ftp對應系統帳號ftpuser,並指定其主目錄為/var/ftp/share,而客戶帳號vip對應系統帳號ftpvip,指定主目錄為 /var/ftp/vip
chmod -R 500 /var/ftp/share/ :公共帳號ftp只允許下載,修改share目錄其他用戶許可權為rx可讀可執行。
chmod -R 700 /var/ftp/vip/ :客戶帳號vip允許上傳和下載,所以對vip目錄許可權設置為rwx,可讀可寫可執行。
如果不設置可執行用戶登錄會出不能更改目錄錯誤。
4、建立配置文件
設置多個虛擬帳號的不同許可權,若使用一個配置文件無法實現此功能,需要為每個虛擬帳號建立獨立的配置文件,並根據需要進行相應的設置。
(1)修改vsftpd.conf主配置文件
配置主配置文件/etc/vsftpd/vsftpd.conf添加虛擬帳號的共同設置並添加user_config_dir欄位,定義虛擬帳號的配置文件目錄
禁用匿名用戶登錄並啟用本地用戶登錄設置
anonymous_enable=NO
local_enable=YES
將所有本地用戶限制在家目錄中,NO則不限制
chroot_local_user=YES
pam_service_name=vsftpd:配置vsftpd使用的PAM模塊為vsftpd
user_config_dir=/etc/vsftpd/vuserconfig:設置虛擬帳號的主目錄為/vuserconfig
max_clients=300:設置FTP伺服器最大接入客戶端數為300個
max_per_ip=10:設置每個IP地址最大連接數為10個
(2)建立虛擬帳號配置文件
在user_config_dir指定路徑下,建立與虛擬帳號同名的配置文件並添加相應的配置欄位哈~
首先建立公共帳號ftp的配置文件
guest_enable=yes:開啟虛擬帳號登錄
guest_username=ftpuser:設置ftp對應的系統帳號為ftpuser
anon_world_readable_only=no:允許匿名用戶瀏覽器整個伺服器的文件系統anon_max_rate=50000:限定傳輸速率為50KB/s
注意:
vsftpd對於文件傳輸速度限制並不是絕對鎖定在一個數值上哈,而是在80%~120%之間變化哈~比如設置100KB/s則實際是速度在80KB/s~120KB/s之間變化哈~
下面是客戶帳號的配置文件vip
guest_enable=yes:開啟虛擬帳號登錄
guest_username=ftpvip:設置ftp對應的系統帳號為ftpvip
anon_world_readable_only=no:允許匿名用戶瀏覽器整個伺服器的文件系統
write_enable=yes:允許在文件系統寫入許可權
anon_mkdir_write_enable=yes:允許創建文件夾
anon_upload_enable=yes:開啟匿名帳號的上傳功能
anon_max_rate=100000:限定傳輸速度為100KB/s
--------------------------歡迎大家來訪:bbs.linuxteam.com.cn Linuxteam歡迎你們大家的加入~-----------------------------------
5、重啟vsftpd使配置生效
6、測試
(1)公共帳號ftp測試
在公共帳號測試前,我們先建立個產品信息文件哈~
公共帳號登錄ftp伺服器哈~
登錄成功
測試下載,ok,成功
測試上傳文件及文件夾,ok,不成功哈~
最後測試限速50KB/s
達成目標~
(2)客戶帳號vip測試
客戶帳號vip登錄
登錄成功
測試上傳,ok,成功
測試下載,ok,成功
測試刪除,ok,不成功
測試限速下載100KB/s
達成目標需求,OK~~~
《解決方案》

嗯,寫的很詳細啊!
《解決方案》

回復 #1 henin1220 的帖子

這種配置是很靈活的,不過每次ftp帳戶信息的變更都是需要維護dbload的資料庫信息的 每次都是需要重新生成的
使用mysql管理應該是更加的靈活,不過就是配置的過程會相對比較的繁瑣

[火星人 ] RHEL5企業級Linux Vstpd服務全攻略之高級配置已經有550次圍觀

http://coctec.com/docs/service/show-post-20589.html