centos6下的vsftpd配置
文章允許轉載,請注明來源:https://blog.csdn.net/feiniao8651/article/details/96039205
背景
ftp是大家常用的一個文件傳輸工具,自己有過多次搭建ftp的經歷,但是每次環境都多少有些區別,搭建的時候往往還是會遇到不同的問題,不能做到得心應手。網上的資料也是參差不齊,大多數都是一個操作的步驟,但是有的關鍵步驟,為什么這么做的原因卻沒有說清楚,這里做一個總結,也便于自己以后處理類似的問題。
這里的應用場景是在nginx目錄下配置的php工程,因為有其他人需要通過ftp訪問修改php文件,所以需要有一個ftp服務能提供對應目錄下的文件下載及上傳,同時也不能影響到ngnix對工程的訪問。
環境:CentOS 6.9
安裝vsftp
安裝很簡單,就是通過yum來安裝
$sudo yum install vsftpd安裝完成后,接下來就需要進行相應的配置了。主要是對用戶及對應訪問路徑的配置。
配置vsftp
用戶配置
ftp支持配置的用戶分為三種,分別是:
本地用戶(local):用戶在FTP服務器擁有賬號,且該賬號為本地用戶的賬號,可以通過自己的賬號和口令進行授權登錄,登錄目錄為自己的home目錄$HOME
虛擬用戶(guest):用戶在FTP服務器上擁有賬號,但該賬號只能用于文件傳輸服務。登錄目錄為某一特定的目錄,通常可以上傳和下載
匿名用戶(anonymous):用戶在FTP服務器上沒有賬號,登錄目錄為/var/ftp
(數據來自https://blog.csdn.net/kxwinxp/article/details/78595044)
我們是要訪問特定的目錄,所以可以配置虛擬用戶。
1. 安裝虛擬用戶驗證所需要的依賴包
2. 創建虛擬用戶賬號及密碼
$sudo vim /etc/vsftpd/virtualusers按以下格式添加內容(奇數行為賬號,賬號后的偶數行為密碼)
testuser 1234563. 生成虛擬用戶認證的db文件
$sudo db_load -T -t hash -f /etc/vsftpd/virtualusers /etc/vsftpd/virtualusers_passwd.db $sudo chmod 600 /etc/vsftpd/virtualusers_passwd.db4. 配置PAM信息
PAM(Pluggable Authentication Modules)即可插拔式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,它也是當前Linux服務器普遍使用的認證方式。
PAM 是關注如何為服務驗證用戶的API,通過提供一些動態鏈接庫和一套統一的API,將系統提供的服務和該服務的認證方式分離,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程序,同時,PAM是一種認證框架,自身不做認證。
配置過程就是修改原有vsftp的PAM配置文件
$sudo vim /etc/pam.d/vsftpd注釋掉文件中原有的規則,添加以下兩條規則
auth required pam_userdb.so db=/etc/vsftpd/virtualusers_passwd account required pam_userdb.so db=/etc/vsftpd/virtualusers_passwd注意:這里的db=后面其實就是對應我們剛才在第3步生成的db文件,但是這里不能帶文件后綴名,否則系統會報錯
pam_userdb(vsftpd:auth): user_lookup: could not open database `/etc/vsftpd/virtualusers_passwd.db': No such file or directory原因是這里使用的pam_userdb.so庫會自動在文件后面加.db的后綴,所以我們如果路徑里寫了.db,反而就是冗余了。有一篇文章提到了這個問題。
5. 配置vsftpd.conf
這個文件是vsftpd的核心配置文件,基本上大多數常用的設置都在這里面。
我這里設置的主要是以下幾點:
guest_username這里特別強調一下,這里填寫用戶需要有對我們要訪問的資源的讀寫權限,比如我這里nginx下的資源,所有者都是www用戶,所以我綁定的用戶名是www。同時要設置virtual_use_local_privs為yes,即虛擬用戶享有和綁定用戶同樣的權限。
6. 創建虛擬用戶對應的配置文件
為了對不同的虛擬用戶做權限劃分,每個虛擬用戶都有一個單獨的配置文件,接下來我們就為剛才創建的testuser用戶添加配置文件。所有的虛擬用戶配置文件都是在上面配置的user_config_dir目錄下,文件名稱即為用戶名。
文件中添加以下內容
#local_root即為想讓虛擬用戶訪問的目錄 local_root=/home/aaa/php write_enable=yes download_enable=yes這里為每一個虛擬用戶創建單獨的文件,主要目的就是為了能夠靈活配置不同虛擬用戶的權限。比如可以在vsftpd.conf里將write_enable都設置為NO,然后在需要有寫權限的虛擬用戶配置文件中配置write_enable為YES即可。
配置完之后重啟vsftpd即可。
ps:一定要在創建完對應用戶配置文件后再去訪問ftp。如果在創建用戶配置文件前就去登錄,會導致該用戶訪問到綁定用戶的用戶目錄下,而且這個初始路徑即使再增加單用戶配置文件也無法修改,只能將該用戶刪除。
虛擬用戶的增加和刪除
添加新的虛擬用戶賬號和密碼到/etc/vsftpd/virtualusers,在/etc/vsftpd/virtualusers_conf目錄下添加對應賬號名的配置文件。使用以下命令重新生成驗證用的db文件
刪除/etc/vsftpd/virtualusers中的賬號和密碼,刪除/etc/vsftpd/virtualusers_conf下對應用戶的配置文件,使用命令重新生成驗證用的db文件即可。
后記
通過虛擬用戶配置文件,既能保證一定的系統安全性,實現靈活的用戶權限控制,可謂一舉兩得。但是配置過程中,容易出現一些配置上的問題,導致ftp訪問異常。在查資料的過程中,網上大部分解決問題的方式都是簡單粗暴的chmod 777,但是卻沒有想一下為什么會出現權限的問題。其實vsftp已經提供了很完善的權限配置支持,我們只需要稍微花費點時間了解和配置一下,就能體會到他的靈活性和便利性。
參考:
linux下WEB服務器安裝、配置VSFTP
vsftp日志xferlog格式分析
vsftpd setup – the missing information
Centos6.9安裝vsftpd并配置虛擬多用戶
centos 7基于虛擬用戶配置vsftpd
CentOS 7 安裝FTP服務器(vsftpd)
總結
以上是生活随笔為你收集整理的centos6下的vsftpd配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Latex符号总结
- 下一篇: Tomcat启动出现乱码