天天看點

[RHEL5企業級Linux服務攻略]--第6季 Vsftpd服務全攻略之進階配置

企業環境

公司為了宣傳最新的産品資訊,計劃搭建FTP伺服器,為客戶提供相關文檔的下載下傳。對所有權網際網路開放共享目錄,允許下載下傳産品資訊,禁止上傳。公司的合作機關能夠使用FTP伺服器進行上傳和下載下傳,但不可以删除資料。并且保證伺服器的穩定性,進行适當優化設定哈~

需求分析

根據企業的需求,對于不同使用者進行不同的權限限制,FTP伺服器需要實作使用者的稽核。需考慮到伺服器的安全性,是以關閉實體使用者登入,使用虛拟帳号驗證機制,并對不同虛拟帳号設定不同的權限。為了保證伺服器的性能,還需要根據使用者的等級,限制用戶端的連接配接數及下載下傳速度。

解決方案

1、建立使用者資料庫

(1)建立使用者文本檔案

先建立使用者文本檔案vsftpd_virtualuser.txt,添加兩個虛拟帳号,公共帳号ftp及客戶帳号vip

touch /etc/vsftpd/vsftpd_virtualuser.txt

vim /etc/vsftpd/vsftpd_virtualuser.txt

格式:

虛拟帳号1

密碼

虛拟帳号2

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193933eMsV.png"></a>

儲存退出哈~

(2)生成資料庫

儲存虛拟帳号和密碼的文本檔案無法被系統帳号直接調用哈~我們需要使用db_load指令生成db資料庫檔案

db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193945ng0K.png"></a>

注意:

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指令。

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_123719395274LI.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193954qq8e.png"></a>

(3)修改資料庫檔案通路權限

資料庫檔案中儲存着虛拟帳号的密碼資訊,為了防止非法使用者盜取哈,我們可以修改該檔案的通路權限。生成的認證檔案的權限應設定為隻對root使用者可讀可寫,即600

chmod 600 /etc/vsftpd/vsftpd_virtualuser

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_12371939570M4Z.png"></a>

2、配置PAM檔案

為了使伺服器能夠使用資料庫檔案,對用戶端進行身份驗證,需要調用系統的PAM子產品.PAM(Plugable Authentication Module)為可插拔認證子產品,不必重新安裝應用系統,通過修改指定的配置檔案,調整對該程式的認證方式。PAM子產品配置檔案路徑為/etc/pam.d/目錄,此目錄下儲存着大量與認證有關的配置檔案,并以服務名稱命名。

修改vsftpd對應的PAM配置檔案/etc/pam.d/vsftpd,将預設配置使用“#”全部注釋,添加相應字段。

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193966axdK.png"></a>

修改成下圖效果:

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193976pFQs.png"></a>

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

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193979JoUH.png"></a>

将所有本地使用者限制在家目錄中,NO則不限制

chroot_local_user=YES

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193985UYht.png"></a>

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個

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193994m0O0.png"></a>

(2)建立虛拟帳号配置檔案

在user_config_dir指定路徑下,建立與虛拟帳号同名的配置檔案并添加相應的配置字段哈~

首先建立公共帳号ftp的配置檔案

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193997HLCC.png"></a>

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之間變化哈~

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237193998DNWm.png"></a>

下面是客戶帳号的配置檔案vip

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

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194003t3Ku.png"></a>

5、重新開機vsftpd使配置生效

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194004Ny2j.png"></a>

6、測試

(1)公共帳号ftp測試

在公共帳号測試前,我們先建立個産品資訊檔案哈~

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194006MBRb.png"></a>

公共帳号登入ftp伺服器哈~

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_12371940138sFe.png"></a>

登入成功

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194016dlvX.png"></a>

測試下載下傳,ok,成功

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194020zP6l.png"></a>

測試上傳檔案及檔案夾,ok,不成功哈~

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194046LPHj.png"></a>

最後測試限速50KB/s

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194050Vv2r.png"></a>

達成目标~

(2)客戶帳号vip測試

客戶帳号vip登入

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194055HYck.png"></a>

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194062xUK0.png"></a>

測試上傳,ok,成功

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194071LlVO.png"></a>

測試下載下傳,ok,成功

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_12371940849r0F.png"></a>

測試删除,ok,不成功

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194092Rl9e.png"></a>

測試限速下載下傳100KB/s

<a href="http://redking.blog.51cto.com/attachment/200903/16/27212_1237194098VmZf.png"></a>

達成目标需求,OK~~~

##########################Michael分割線#########################

本文轉自redking51CTO部落格,原文連結:http://blog.51cto.com/redking/139371,如需轉載請自行聯系原作者