系統:linuxhtml
vsftp版本:version 2.2.2 (yum install vsftpd)linux
FTP的登陸通常有三種方式,分別是:數據庫
從安全性考慮,對於多用戶登入、爲了方便對用戶權限進行管理,通常都是用虛擬用戶形式。vim
Vsftp安裝:瀏覽器
若是能夠連外網,能夠直接使用命令: yum install vsftpd (建議用這種方式,這個會自動把依賴搞好)安全
若是用tar包, tar –zxvf vsftpd-3.0.2.tar.gz服務器
make && make install 性能
ftp虛擬賬號優化
公司爲了宣傳最新的產品信息,計劃搭建FTP 服務器,爲客戶提供相關文檔的下載。對全部互ui
聯網開放共享目錄,容許下載產品信息,禁止上傳。公司的合做單位可以使用FTP 服務器進行上
傳和下載,但不能夠刪除數據。須要保證服務器的穩定性並作優化。
建立ftp虛擬賬號。容許客戶使用ftp賬號下載文件。 可是,大家本身的合做夥伴賬號:vip賬號能夠上傳一內部文件。
需考慮到服務器的安全性,因此關閉實體用戶登陸,使用虛擬賬號驗證機制,並對不一樣虛擬賬號設置不
同的權限。
保證服務器的性能,還須要根據用戶的等級,限制客戶端的鏈接數及下載速度。
1、建立用戶數據庫
(1)建立用戶文本文件
先創建用戶文本文件vsftpd_virtualuser.txt,添加兩個虛擬賬號,公共賬號ftp 及客戶賬號
vip
[root@xuegod63 vsftpd]# vim /etc/vsftpd/vsftpd_virtualuser.txt #寫入如下內容。格式一行用戶一行密碼。
ftp #用戶
123456 #密碼
vip
123456
(2)生成數據庫
保存虛擬賬號和密碼的文本文件沒法被系統賬號直接調用。咱們須要使用db_load 命令生成db
數據庫文件
安裝:
[root@xuegod63 vsftpd]# rpm -qf `which db_load `
db4-utils-4.7.25-16.el6.x86_64
# db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db
選項-T容許應用程序可以將文本文件轉譯載入進數據庫。
-t hash使用hash碼加密
-f 指定包含用戶名和密碼文本文件。此文件格式要示:奇數行用戶名、偶數行密碼
[root@xuegod63 vsftpd]# rm -rf /etc/vsftpd/vsftpd_virtualuser.txt #爲了安全,刪除此文件。後期再也不使用此文件。
(3)修改數據庫文件訪問權限
[root@xuegod63 vsftpd]# chmod 600 /etc/vsftpd/vsftpd_virtualuser.db
[root@xuegod63 vsftpd]# ll !$
ll /etc/vsftpd/vsftpd_virtualuser.db
-rw------- 1 root root 12288 Nov 10 21:16 /etc/vsftpd/vsftpd_virtualuser.db
2、配置PAM 文件
爲了使服務器可以使用數據庫文件,對客戶端進行身份驗證,須要調用系統的PAM 模塊.
PAM概述:
PAM(Plugable Authentication Module)爲可插拔認證模塊,沒必要從新安裝應用系統,經過修
改指定的配置文件,調整對該程序的認證方式。PAM 模塊配置文件路徑爲/etc/pam.d/目錄,此
目錄下保存着大量與認證有關的配置文件,並以服務名稱命名。
vim /etc/pam.d/vsftpd
修改vsftpd 對應的PAM 配置文件/etc/pam.d/vsftpd。將默認配置使用「#」所有註釋,下面添加兩行,pam_userdb.so能夠寫成/lib64/security/pam_userdb.so的絕對路徑。
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
3、建立虛擬賬號對應的系統用戶及ftp共享的目錄
對於公共賬號和客戶賬號,由於須要配置不一樣的權限,因此能夠將兩個賬號的目錄進行隔離,控
制用戶的文件訪問。公共賬號ftp 對應系統賬號ftpuser,並指定其主目錄爲/var/ftp/share,
而客戶賬號vip 對應系統賬號ftpvip,指定主目錄爲/var/ftp/vip。
[root@xuegod63 vsftpd]# useradd -d /var/ftp/share ftpuser
[root@xuegod63 vsftpd]# useradd -d /var/ftp/vip ftpvip
[root@xuegod63 vsftpd]# chmod -R 500 /var/ftp/share/ #修改權限
[root@xuegod63 vsftpd]# chmod -R 700 /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 主配置文件
[root@xuegod63 vsftpd]# cp vsftpd.conf.back vsftpd.conf
禁用匿名用戶登陸並啓用本地用戶登陸設置
vim vsftpd.conf
改:
#anonymous_enable=YES
爲:
#anonymous_enable=NO
local_enable=YES #確認此選項打開,容許本地用戶登陸。 Uncomment :取消註釋
chroot_local_user=YES #確認此選項打開。將全部本地用戶限制在家目錄中,NO 則不限制
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 的配置文件
[root@xuegod63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf #查看要建立的目錄名
user_config_dir=/etc/vsftpd/vuserconfig
[root@xuegod63 ~]# mkdir /etc/vsftpd/vuserconfig
[root@xuegod63 ~]# touch /etc/vsftpd/vuserconfig/ftp
[root@xuegod63 ~]# touch /etc/vsftpd/vuserconfig/vip
配置虛擬賬號配置文件,寫入如下內容:
[root@xuegod63 ~]# vim /etc/vsftpd/vuserconfig/ftp
guest_enable=yes
guest_username=ftpuser
anon_world_readable_only=no
anon_max_rate=50000
解釋:
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
[root@xuegod63 ~]# vim /etc/vsftpd/vuserconfig/vip #寫入如下內容
guest_enable=yes
guest_username=ftpvip
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_max_rate=100000
解釋:
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
附:
若是想要將虛擬帳戶限制在某個路徑,須要在該帳戶的文件中配置:
local_root=/home/lxxd/dssj/Shenzhen
容許帳戶刪除權限
anon_other_write_enable=YES
5、重啓vsftpd 使配置生效
[root@xuegod63 ~]# service vsftpd restart