1、vsftpd安裝
通常,裝好RHCE AS3/4以后,vsftpd服務都已經安裝完成。
如果安裝RHCE AS3/4時未選擇安裝vsftpd,你也可以使用rpm –ivh vsftp…rpm使用手動安裝,或者直接去vsftpd網站(http://vsftpd.beasts.org/)下載最新的tar.gz格式源碼包,解包后使用make/make install即可
2、vsftpd配置
Vsftpd默認使用linux系統賬號登錄,維護管理不太方便,也容易引發安全問題。因此,建議采用pam_userdb或是pam_mysql進行虛擬用戶配置。
(1)使用PAM_USERDB保存ftp登錄賬號
A、創建一個臨時文件,如/root/a.txt,按下面的格式在此文件中添加虛擬的用戶:
用戶名1
密碼1
用戶名2
密碼2
B、然后用db_load命令生成pam_userdb認證所需的賬號文件
db_load -T -t hash -f a.txt /etc/vsftpd/vsftpd.login
C、PAM配置信息
在/etc/pam.d/下創建一個文件,如/etc/pam.d/ftp.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
D、編輯/etc/vsftpd.conf
Vsftpd默認的配置文件為/etc/vsftpd.conf,你也可以在啟動vsftpd時使用“vsftpd /path/configfile”的命令使用別的配置文件。
通常, /etc/vsftpd.conf中只放置一些基本的配置信息(所有用戶公共性的配置),然后針對具體用戶做更詳細的配置,下面是一個簡單的vsftpd配置示例。
listen=YES
listen_port=21
#禁止匿名登錄
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
#所有虛擬用戶等同于ftp這個系統賬號的權限
guest_username=ftp
#允許匿名下載
anon_world_readable_only=NO
max_clients=100
max_per_ip=10
#與pam部分配置的文件名應匹配,這里是ftpd.vsftpd
pam_service_name=ftp.vsftpd
#指定每個虛擬用戶賬號配置目錄,這里是/etc/vsftpd/virtual
#如果需要對wuyu這個賬號進行詳細配置,你需要創一個
#/etc/vsftpd/virtual/wuyu的文件
user_config_dir=/etc/vsftpd/virtaul/
#指定默認的ftp目錄,如果不設置,則默認的ftp目錄為ftp這個系統賬號的默認目錄(見/etc/passwd文件內容)
local_root=/www/ftp
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
按照上面這個配置文件,虛擬用戶可以正常的登錄ftp,在ftp上下載數據,但是不能創建目錄,不能上傳數據,用戶的根目錄指向/www/ftp。如果需要允許個別用戶上傳,或是更改用戶的ftp根目錄指向,我們需要在/etc/vsftpd/virtual目錄下根據用戶名創建相應的配置文件。以wuyu這個用戶賬號為例,其配置文件/etc/vsftpd/virtaul/wuyu的內容如下:
local_root=/home/wuyu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
(2)使用mysql數據庫保存ftp登錄賬號
由于vsftpd使用PAM做為身份認證,因此,配置vsftpd使用mysql保存登錄賬號信息就非常方便,只要安裝PAM_MYSQL,然后修改vsftpd的配置文件即可。
A、安裝mysql。
Mysql編譯,安裝文檔參見mysql安裝文檔。完成mysql安裝,啟動mysql服務后,針對vsftpd服務,做如下操作:
a、添加一個用戶賬號,如vsftpd(密碼為1234567)。
b、創建vsftpd使用的數據庫(如vsftpd)
c、建表(字段名稱可任意定義)
CREATE TABLE `users` (
`name` varchar(50),
`passwd` varchar(50)
)
B、安裝pam_mysql
至http://pam-mysql.sourceforge.net/下載pam_mysql的源碼包(tar.gz格式),使用tar xvfz命令解包。然后執行以下三步命令完成安裝。
./configure --with-mysql=mysql安裝目錄 --prefix=安裝目的目錄,默認為/usr/local
make
make install
C、配置pam_mysql
將vsftpd由pam_userdb改為pam_mysql,僅僅需要修改與使用pam_userdb相類似,在/etc/pam.d/下創建一個文件,如/etc/pam.d/ftp.vsftpd,文件內容如下
auth required /usr/lib/security/pam_mysql.so user=vsftpd passwd=1234567 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2
account required /usr/lib/security/pam_mysql.so user=vsftpd passwd=1234567 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2
這里需要說明的是crypt參數。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在數據庫中;crypt=1, 口令使用UNIX系統的DES加密方式加密后保存在數據庫中;crypt=2,口令經過MySQL的password()函數加密后保存。
(3)在使用iptables的情況下允許被動模式。
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp