CentOS FTP服务(vsftpd)配置
1.安裝
一般在CentOS上都自動安裝了vsftd,若沒有安裝則可以使用以下步驟進行安裝
yum -y install vsftpd
touch /var/log/vsftpd.log # 創建vsftp的日志文件
在CentOS中,這樣就可以完成了一個簡單的匿名FTP的搭建。你可以通過訪問ftp://yourip來進行,不過這個FTP沒有任何權限。
2.基于匿名的FTP架設
參考其他關于Vsftpd的CentOS FTP服務配置文章。
3.基于虛擬用戶的FTP架設
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過某種手段達到映射帳戶和設置權限的目的。
1)我們在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服務配置:
anonymous_enable=NO 設定不允許匿名訪問
chroot_list_enable=YES 使用戶不能離開主目錄
xferlog_file=/var/log/vsftpd.log 設定vsftpd的服務日志保存路徑。注意,該文件默認不存在。必須要手動touch出來
ascii_upload_enable=YES
ascii_download_enable=YES 設定支持ASCII模式的上傳和下載功能。
local_enable=YES 設定本地用戶可以訪問。注:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問。
pam_service_name=vsftpd PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關于Vsftpd虛擬用戶支持的重要CentOS FTP服務配置項目。默認vsftpd.conf中不包含這些設定項目,需要自己手動添加CentOS FTP服務配置。
guest_enable=YES 設定啟用虛擬用戶功能。
guest_username=ftp 指定虛擬用戶的宿主用戶。-CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf 設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名)
2)創建chroot list,將用戶ftp加入其中:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3)進行認證:
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然后,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
ftpuser1
ftppass1
ftpuser2
ftppass2
接著,.生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨后,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句
再增加以下兩句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,創建虛擬用戶個性CentOS FTP服務文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
內容如下:
local_root=/opt/var/ftp1 虛擬用戶的根目錄(根據實際修改)
write_enable=YES 可寫
anon_umask=022 掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
4.啟動vsftp服務器
mkdir /opt/var/ftp/ftpuser1
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd start
常見錯誤:
1.553 Could not create file
一般都是SELinux的問題,設置SELinux的一個值,重啟服務器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
2.500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服務文件中保證每一行最后沒有任何空格,一般出錯就是在多余的空格上。
?
更改端口號:listen_port=端口號 (需要自己添加)
歡迎信息:ftpd_banner=歡迎信息
?
====================================================================
權限問題:
當virtual_use_local_privs=YES時,虛擬用戶和本地用戶有相同的權限; 當virtual_use_local_privs=NO時,虛擬用戶和匿名用戶有相同的權限,默認是NO。 當virtual_use_local_privs=YES,write_enable=YES時,虛擬用戶具有寫權限(上傳、下載、刪除、重命名)。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES, anon_upload_enable=YES時,虛擬用戶不能瀏覽目錄,只能上傳文件,無其他權限。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO, anon_upload_enable=NO時,虛擬用戶只能下載文件,無其他權限。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO, anon_upload_enable=YES時,虛擬用戶只能上傳和下載文件,無其他權限。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO, anon_mkdir_write_enable=YES時,虛擬用戶只能下載文件和創建文件夾,無其他權限。 當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO, anon_other_write_enable=YES時,虛擬用戶只能下載、刪除和重命名文件,無其他權限。?
一些RadHat版本是默認打開SeLinux的。這個東西有加強安全性的同時很討厭,比如讓配置好的vsftpd無法正常登錄。
#setsebool -P ftpd_disable_trans 1
重啟FTP服務~
?
IP限制的方法
vsftpd中的配置需要 tcp_wrappers=YES
/etc/hosts.allow 中加入允許的IP
vsftpd :?IP1 IP2?: allow
/etc/hosts.deny 中屏蔽所有IP
vsftpd : ALL : deny
重啟服務 service xinetd restart (此服務應該開機啟動!)
?
轉載于:https://blog.51cto.com/cyhow/489819
總結
以上是生活随笔為你收集整理的CentOS FTP服务(vsftpd)配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 艾伟:WPF简介
- 下一篇: 如何在Linux kernel Make