rhel5.5安装vsftpd并配置虚拟用户及开放防火墙和selinux
一,下載并安裝
1, 至rpm.pbone.net或rpmfind.net搜索并下載: vsftpd-2.2.2-2.el5.i386.rpm
2, 安裝
# rpm -ivh vsftpd-2.2.2-2.el5.i386.rpm
3, 備份配置文件:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
4, vsftpd文件說明
/etc/vsftpd/vsftpd.conf???? 主配置文件
/usr/sbin/vsftpd??????????? Vsftpd的主程序
/etc/rc.d/init.d/vsftpd???? 啟動(dòng)腳本
/etc/pam.d/vsftpd?????????? PAM認(rèn)證文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止訪問的用戶來自/etc/vsftpd/ftpusers文件中的用戶)
/etc/vsftpd/ftpusers??????? 禁止使用vsftpd的用戶列表文件。記錄不允許訪問FTP服務(wù)器的用戶名單,管理員可以把一些對(duì)系統(tǒng)安全有威脅的用戶賬號(hào)記錄在此文件中,以免用戶從FTP登錄后獲得大于上傳下載操作的權(quán)利,而對(duì)系統(tǒng)造成損壞。(注意:linux-4中此文件在/etc/目錄下)
/etc/vsftpd/user_list?????? 禁止或允許使用vsftpd的用戶列表文件。這個(gè)文件中指定的用戶缺省情況(即在/etc/vsftpd/vsftpd.conf中設(shè)置userlist_deny=YES)下也不能訪問FTP服務(wù)器,在設(shè)置了userlist_deny=NO時(shí),僅允許user_list中指定的用戶訪問FTP服務(wù)器。(注意:linux-4中此文件在/etc/目錄下)
/var/ftp??????????????????? 匿名用戶主目錄;本地用戶主目錄為:/home/用戶主目錄,即登錄后進(jìn)入自己家目錄
/var/ftp/pub??????????????? 匿名用戶的下載目錄,此目錄需賦權(quán)根chmod 1777 pub(1為特殊權(quán)限,使上載后無法刪除)
/etc/logrotate.d/vsftpd.log 日志文件
二, 安裝db4包,使能db_load
# yum install db4.i386
# yum install db4-utils.i386
三, 關(guān)閉防火墻
# service iptables stop
四、關(guān)閉SELinux
方法有多個(gè)
1、暫時(shí)關(guān)閉
# setenforce 0 (關(guān)閉)
# setenforce 1 (啟用)
# getenforce?? (查看狀態(tài))
2、編輯配置文件
# vi /etc/selinux/config
將SELINUX=enforcing改為:SELINUX=disabled
五, 配置匿名用戶訪問
1, vsftpd安裝后,其配置文件所在目錄為:/etc/vsftpd/;匿名用戶的主目錄為:/var/ftp
2, 配置vsftpd.conf主配置文件(服務(wù)器配置支持上傳)
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES??????? (允許匿名用戶訪問)
anon_upload_enable=YES????? (允許匿名用戶上傳文件)
anon_mkdir_write_enable=YES (允許匿名用戶創(chuàng)建目錄)
3, 創(chuàng)建上傳目錄及配置目錄權(quán)限(注意:匿名用戶的主目錄/var/ftp權(quán)限是755,這個(gè)權(quán)限不能隨意改變,否則客戶端無法連接)
# mkdir /var/ftp/homework/
# chown ftp /var/ftp/homework/
# ls -Zd /var/ftp/homework/???????????? (查看上下文)
drwxrwxr-x? ftp ftp user_u:object_r:public_content_t /var/ftp/homework/
# chcon -t public_content_rw_t /var/ftp/homework/?? (修改上下文,使可寫)
# ls -Zd /var/ftp/homework/???????????? (查看確認(rèn)上下文)
drwxrwxr-x? ftp ftp user_u:object_r:public_content_rw_t /var/ftp/homework/
(若未關(guān)閉SELinux,還需以下步驟)
# getsebool -a | grep ftp?????????????? (查找與ftp相關(guān)的 SELinux bool值)
# setsebool -P allow_ftpd_anon_write 1? (設(shè)置SELinux bool值, 允許ftpd寫, -P選項(xiàng)表示寫入配置文件并永久生效)
4, 重啟服務(wù)
# service vsftpd restart
5, 客戶端連接測(cè)試
(1) 客戶端匿名用戶可從pub下載文件
(2) 客戶端匿名用戶上傳文件至homework, 上傳文件的默認(rèn)權(quán)限屬性為600(配置文件中anon_umask=077),無法下載、刪除或覆蓋的。
六, 配置虛擬用戶訪問
1, 建立虛擬用戶口令庫文件, 文件中奇數(shù)行設(shè)置虛擬用戶的用戶名,偶數(shù)行設(shè)置用戶的口令。
# vi /etc/vsftpd/vuser.txt
teacher????? (奇數(shù)行設(shè)置虛擬用戶名)
123456????? (偶數(shù)行設(shè)置用戶口令)
student
123456
2, 生成vsftpd 的認(rèn)證文件
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db?? (生成認(rèn)證文件)
# file? /etc/vsftpd/vuser.db???????? (查看文件類型)
/etc/vsftpd/vuser.db:Berkeley DB (Hash,version? 8 , native byte-order)
# chmod 600 /etc/vsftpd/vuser.db???? (生成的認(rèn)證文件的權(quán)限應(yīng)設(shè)置為只對(duì)root用戶可讀可寫)
3, 建立虛擬用戶所需的PAM配置文件
# vi /etc/pam.d/vsftpd
auth??? required??????? /lib/security/pam_userdb.so???? db=/etc/vsftpd/vuser??? (注:無須后綴.db)
account required??????? /lib/security/pam_userdb.so???? db=/etc/vsftpd/vuser
4, 建立vsftpd虛擬用戶所需的系統(tǒng)用戶賬號(hào)并設(shè)置相應(yīng)的權(quán)限, 所有虛擬用戶賬號(hào)登錄后都將在/var/ftp目錄
# useradd -s /sbin/nologin -d /var/ftp/ vuser
# chmod u-w /var/ftp/
5, 設(shè)置vsftpd.conf主配置文件
# vi /etc/vsftpd/vsftpd.conf
local_enable=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd (vsftpd意指:/etc/pam.d/目錄下的vsftpd文件)
(以下為可選項(xiàng))
local_umask=022???????? (虛擬用戶上傳文件的掩碼)
anon_umask=077????????? (匿名用戶上傳文件的掩碼)
chown_uploads=YES?????? (允許改變上傳文件的屬主)
chown_username=vuser??? (改變上傳文件的屬主為vuser)
6, 重啟vsftpd服務(wù)
# service vsftpd restart
7, 測(cè)試vsftpd中的虛擬用戶賬號(hào)teacher
#ftp 127.0.0.1
name (localhost:root):teacher
password:
ftp>
8, 對(duì)不同的虛擬用戶設(shè)置不同的權(quán)限
(1).設(shè)置主配置文件
# mkdir /etc/vsftpd/vuser_conf????????? (建立用戶配置文件的保存目錄)
# vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vuser_conf? (設(shè)置用戶配置文件的保存目錄)
(2). 為虛擬用戶建立單獨(dú)的配置文件,配置文件名稱和用戶名相同。用戶配置文件中沒有的配置項(xiàng)將按照vsftpd.conf配置文件中的內(nèi)容設(shè)置。
# vi /etc/vsftpd/vuser_conf/teacher
anon_world_readable_only=NO?? (表示用戶可以瀏覽FTP目錄和下載文件)
anon_upload_enable=YES??????? (表示用戶可以上傳文件)
anon_mkdir_write_enable=YES?? (表示用戶具有建立和刪除目錄的權(quán)利)
anon_other_write_enable=YES?? (表示用戶具有文件改名和刪除文件的權(quán)限)
(3) 重啟服務(wù)
# service vsftpd restart
七,配置并啟動(dòng)防火墻
1, 設(shè)置被動(dòng)模式及使用的端口號(hào)
# vi /etc/vsftpd/vsftpd.con
pasv_enable=YES
pasv_min_port=65300
pasv_max_port=65360
2, 添加允許的端口
# iptables -I RH-Firewall-1-INPUT -p tcp --dport 21 -j ACCEPT
# iptables -I RH-Firewall-1-INPUT -p tcp --dport 65300:65360 -j ACCEPT
# service iptables save???? (保存配置)
3, 重啟服務(wù)
# service vsftpd restart
# service iptables start
?
八,排錯(cuò)
1, vsftpd: refusing to run with writable root inside chroot()
-> 原因:vsftpd升級(jí)了安全性驗(yàn)證, 即如果開啟了chroot來控制用戶路徑,則用戶不能再具有根目錄的寫權(quán)限。
-> 解決:# chmod u-w /var/ftp/
2, cannot change directory:/var/ftp
-> 原因:SELinux阻止訪問
-> 解決:
# setsebool -P ftpd_disable_trans 1
# service vsftpd restart
3, 上傳文件的中文文件名亂碼
-> 原因:字符集問題
-> 解決:
(1) # vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030"
(2) 客戶端軟件設(shè)置字體為中文字體,連接字符集為GBxxx或cp936
4, 提示只允許匿名用戶登錄
-> 解決:在vsftpd.conf中設(shè)置
local_enable=YES
九,參考http://bbs.51cto.com/thread-717151-1.html 《RHEL5中配置vsftpd搭建FTP服務(wù)器》
總結(jié)
以上是生活随笔為你收集整理的rhel5.5安装vsftpd并配置虚拟用户及开放防火墙和selinux的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flex4.6 保留自动产生的actio
- 下一篇: rhel5.5_Apache配置open