centos5.6 (64bit)編譯安裝vsftpd-2.3.4的配置(兩種使用者登入)
作者:Jimmy Li
關鍵詞:電子商務,系統架構,vsftpd,本地使用者登入,虛拟使用者登入
------[連載之電子商務系統架構]通路量超過100萬的電子商務網站技術架構
上一篇中首先分享一份:通路量超過100萬的電子商務網站技術架構.PNG圖,架構中的伺服器,都必須遠端傳輸檔案,最佳方案當然是用FTP了。那麼伺服器搭建FTP當然是首要的任務了。虛拟使用者登入比本地使用者登入安全系數高。因為vsftpd虛拟使用者,并不是系統的賬号,也就僅用來支援Vsftpd服務用,是以沒有許可他登陸系統的必要,比直接設定本地使用者登入賬号為登陸系統的使用者安全性高。
一、文章要點:
1.64位系統下使用了PAM資料方式的虛拟使用者配置
2.修改關鍵腳本,是編譯成功通過。必要步驟,詳細安裝配置說明過程。
3.完全配置執行個體,Centos5.6編譯安裝vsftpd-2.3.4(配置本地使用者登入、虛拟使用者登入)
下載下傳
tar xzvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
關鍵步驟:由于64位系統的SO檔案路徑有變化,必須更改vsf_findlibs.sh腳本的将lib換成lib64
可以手工修改,也可以執行批量修改。
sed -i 's/lib\//lib64\//g' vsf_findlibs.sh 這裡不執行,在64位系統是無法make成功的
mkdir /var/ftp/
useradd -d /var/ftp ftp
chown root.root /var/ftp/
chmod og-w /var/ftp/
make
make install
cd /etc/
cp /etc/vsftpd/vsftpd.conf.rpmsave vsftpd.conf
二、詳細安裝配置說明過程:
1、首先是安裝PAM
yum install pam-devel db4-utils
2、安裝vsftpd
yum install vsftpd*
3、檢視vsftpd是否加載 pam
ldd /usr/sbin/vsftpd
若輸出中出現ibpam.so.0 => /lib/libpam.so.0,表示加載成功
4、生成使用者驗證資料庫檔案
1)建立loguser.txt,格式如下(使用者、密碼、使用者、密碼.....)
userid
pass
2)儲存後,使用db_load -T -t hash -f loguser.txt /etc/vsftpd/vsftpd_login.db,檢視該目錄下檔案是否生成
設定通路權限 chmod 600 /etc/vsftpd_login.db
5、vim /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
注意,若為64位作業系統,此處的路徑應該修改為
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
否則,啟動vsftpd後,會報530錯誤,這個錯誤我也是找了好久才明白的,之前其他網站上同類說明檔案,均沒有說明此問題
将其它的内容注釋掉
6、vim /etc/vsftpd/vsftpd.conf,確定含有一下設定:
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual //---這裡為映射的本地使用者
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
7、啟動vsftpd
三、完全配置執行個體
Centos5.6編譯安裝vsftpd-2.3.4(配置本地使用者登入)
tar zxvf vsftpd-2.3.4.tar.gz
mkdir -p /usr/local/man/man8
mkdir -p /usr/local/man/man5
make && make install
cd ../
vim /etc/vsftpd.conf
mkdir /etc/vsftpd
touch /etc/vsftpd/chroot_list
echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local
mkdir /var/ftp
touch /etc/vsftpd/userlist.chroot
touch /etc/vsftpd/userlist_deny.chroot
touch /var/log/vsftpd.log
mkdir -p /usr/share/empty
#防火牆 selinux設定
/usr/local/sbin/vsftpd &
setsebool -P ftpd_disable_trans on
/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
useradd -d /home/wwwroot -s /sbin/nologin adminftp
pkill vsftpd
最後記得設定adminftp密碼
指令:passwd adminftp然後輸入兩次新密碼
請關注連載續篇,歡迎朋友一起交流,讨論。扣扣:柒⑥柒陸叁⑤叁伍。
本文轉自jimmy_lixw 51CTO部落格,原文連結:http://blog.51cto.com/jimmyli/683599,如需轉載請自行聯系原作者