昨天我們寫了一篇《linux下配置web+ftp服務器全教程(一) 》說完了Web服務器的安裝全過程,今天我們繼續說下在apahce服務器上集成vsftp,以及apache和vsftp虛擬賬戶的權限配置。
三、web服務器下的ftp安裝配置
linux下的ftp開源軟件很多,我們這里選擇的是vsftp,它的信息你可以去問度娘,不解釋,直接進入安裝配置,同樣我們使用yum命令。
yum install vsftpd pam db4 【安裝vsftpd主程序/pam驗證/db4工具】
chkconfig vsftpd on 【設置vsftpd開機啟動】
service vsftpd start 【啟動vsftpd服務】
1、配置vsftpd配置文件:
vsftpd的配置文件默認位置在:/etc/vsftpd/vsftpd.conf,通常情況下我們選擇先備份一份原始的配置文件,然后編輯,具體步驟如下:
mv vsftpd.conf vsftpd.conf-old 【將vsftpd.conf文件改名為vsftpd.conf-old 備份】
vi /etc/vsftpd/vsftpd.conf 【新建并編輯vsftpd.conf文件】
我的習慣是直接更名原始配置文件然后新建一個文件寫入需要的配置信息,你同樣可以復制一份原始文件,然后修改。
接上打開新建vsftpd.conf文件,按照如下配置寫入:
anonymous_enable=NO
//禁止匿名用戶登錄,通常我們web服務器上的ftp都不允許匿名登錄
local_enable=NO
//禁止(或允許)本地用戶登錄
write_enable=YES
//賦予可寫入權限
chroot_local_user=YES
//鎖定用戶目錄,ftp用戶登錄ftp只能在自己的目錄下操作
anon_upload_enable=NO
anon_mkdir_write_enable=NO
//禁止匿名用戶的上傳、新建目錄權限
dirmessage_enable=YES
//允許ftp用戶列出文件目錄
xferlog_enable=YES
//寫入日志
connect_from_port_20=YES
listen=YES
//使用端口20,通常這幾項是默認的
pam_service_name=vsftpdpamconf
userlist_enable=YES
tcp_wrappers=YES
//第一行比較重要,指定了pam驗證的配置文件
guest_enable=YES
//開啟虛擬用戶
guest_username=apache
//指定虛擬用戶使用本地用戶apache的權限*這項特別重要,web服務器上面的ftp虛擬用戶一定要設置成apache權限,否則ftp上傳的文件不能被正常訪問,也無法修改網站生成的文件。
user_config_dir=/etc/vsftpd/vuser_conf
//虛擬用戶的配置文件存放位置
virtual_use_local_privs=YES
//虛擬用戶使用本地用戶權限,這項要有,否則ftp用戶無法更改文件權限
然后保存并退出vi編輯器,這一步我們的vsftp.conf就配置好了,執行:service vsftpd restart 重啟vsftpd服務測試配置文件書寫是否正確。
2、添加vsftpd虛擬賬戶:
上面我們配置了虛擬用戶的驗證文件類型是pam,文件名是vsftpdpamconf,下面步驟我們要進入目錄/etc/vsftpd 中建立虛擬用戶db庫:
vi vuservsftpd.txt 【新建并編輯文件vuservsftpd.txt】
寫入你要建立的虛擬用戶和密碼,單行為用戶名雙行為密碼,注意此不能有空格,示例:
vuser1
password1
vuser2
password2
………………
建立完成后保存退出,然后通過db命令來生成vsftpd驗證需要使用的虛擬用戶庫文件:
db -T -t hash -f vuservsftpd.txt vsftpdpamconf.db
//注意db文件名要與vsftpd.conf中設置的pam認證名相同
組后我們為了安全可以刪掉剛剛新建的vuservsftpd.txt,下次需要添加用戶名的時候再新建即可,還可以將vsftpdpamconf.db文件權限設置為644。
3、添加vsftpd虛擬賬戶配置文件:
只新建了賬戶驗證還是不夠的,因為虛擬賬戶沒有對應的配置文件并不會生效,1步里面我們在vsftpd.conf文件中確定了虛擬賬戶的配置文件目錄為:/etc/vsftpd/vuser_conf,下面我們進入這個目錄工作:
配置文件的命名必須是與虛擬賬戶名相同,所以我們新建了兩個文件:vuser1、vuser2,并根據需要寫入如下配置信息:
local_root=/var/www/html/demo
//設定虛擬用戶的更目錄,因為我們需要實現每一個網站一個ftp帳號管理,所以他的根目錄就是我們需要管理的網站虛擬目錄。
write_enable=YES
download_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
//賦予虛擬用戶寫入、下載上傳、新建目錄等其它權限
anon_world_readable_only=no
//目前不明白這個的意義,但是必須存在
上面是我的配置文件,你可根據需要添加或者注銷部分權限,注銷只需要在語句前面加上“#”號,當然你也可以直接刪掉。
到這里我們的linux下web+ftp就可以配置成功了,你也可以使用ftp軟件登錄上傳程序并安裝你的網站。
上面都配置完成網站還是無法訪問也無法登錄ftp怎么辦?
在做了如上配置,并且保證你所做的配置都沒有問題的情況下,你就要考慮下防火墻和linux的默認安全機制,有些系統默認是開啟SElinux和iptable防火墻的,這時我們需要將其關閉來檢驗是否配置成功:
setenforce 0
service iptables stop
//臨時關閉selinux和iptables防火墻,重啟后恢復
上面是臨時關閉安全機制selinux和防火墻iptables的方法,通常筆者不建議永久關閉,因為我們的服務需要保護,如果關閉后測試以上web和vsftp都可以正常訪問那我們再來慢慢配置防火墻規則,有關88iptables的配置我們下篇文章繼續討論。
本文作者:馮志強,原文出自:http://www.crazyer.org 轉載注明。
新聞熱點
疑難解答