1、系統環境、安裝包
centOS 5.4
db4
vsftpd
需要RPM包
db4-tcl-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-java-4.3.29-10.el5_5.2
db4-utils-4.3.29-10.el5_5.2
db4-devel-4.3.29-10.el5_5.2
vsftpd-2.0.5-16.el5_5.1
2、安裝vsftp
yum install vsftpd*
yum install db4
3、添加虛拟使用者密碼
vi /etc/login.txt
test
111111
test2
222222
test3
333333
4、生成虛拟使用者密碼認證檔案
db_load -T -t hash -f /etc/login.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
5、編輯vsftpd的PAM認證檔案
vi /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
6、建立本地映射使用者并設定宿主目錄權限
useradd -d /home/ftpsite -s /sbin/nologin virtual
chmod 700 /home/ftpsite
7、配置vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
listen=YES #設定VSFTP伺服器啟動方式為獨立啟動
#virtual_use_local_privs=YES #将此配置注釋掉,否則虛拟使用者的權限無法細分
user_config_dir=/etc/vsftpd/vsftpd_user_conf #建立此目錄,此目錄為使用者的權限檔案配置目錄
chroot_local_user=YES #設定目錄不可以更改主目錄
listen_port=21
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30999
guest_enable=YES #開啟虛拟使用者
guest_username=virtual #FTP虛拟使用者對于的系統使用者
pam_service_name=vsftpd #PAM認證檔案
為test使用者配置權限(上傳、下載下傳、建目錄、删除檔案、修改檔案名)
mkdir /etc/vsftpd/vsftpd_user_conf
vi /etc/vsftpd/vsftpd_user_conf/test
local_root=/home/ftpsite/public
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
為test1使用者配置權限(隻有上傳權限)
vi /etc/vsftpd/vsftpd_user_conf/test1
為test2使用者配置權限
vi /etc/vsftpd/vsftpd_user_conf/test2 (上傳和下載下傳權限)
8、配置防火牆
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT
以上配置好後驗證下VSFTP是否可以登入,通過用戶端登入伺服器驗證下
本地 yum install ftp
然後:ftp 127.0.0.1 根據實際的賬戶驗證是否登入,都沒有問題 就可以操作以下步驟
9、安裝openssl
yum install openssl*
9.1 确認一下安裝的vsftpd是否支援ssl加密
[root@localhost public]# ldd /usr/sbin/vsftpd | grep libssl
libssl.so.6 => /lib/libssl.so.6 (0x00502000)
9.2 利用OpenSSL生成證書
[root@localhost] openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
其中"-days 365"聲明證書的有效期是一年。
接下來的過程需要你輸入一些相關的國家,地區,位置,組織名稱,common name等資訊。
回答這些資訊以後系統會将生成完的證書vsftpd.pem檔案儲存在/etc/vsftpd目錄下。
9.3 修改/etc/vsftpd/vsftpd.conf檔案
增加下面這些内容,這些參數是與ssl有關的。
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
如果設定force_local_logins_ssl=YES,那麼會強制使用者登入時采用支援TLS/SSL認證的ftp用戶端。如果設定為NO的話,則使用者可以選擇使用ssl加密或者不加密。
9.4 重新啟動vsftpd服務
[root@localhost] /etc/rc.d/init.d/vsftpd restart
10、下載下傳flash用戶端測試
flashfxp等ftp用戶端設定ssl選項,如下圖:
<a target="_blank" href="http://img1.51cto.com/attachment/201103/134155521.gif"></a>
通過FlashFXP連接配接成功~
本文轉自 holy2009 51CTO部落格,原文連結:http://blog.51cto.com/holy2010/514376