從別人處轉載一篇文章:http://my.oschina.net/idiotsky/blog/303545
這個文章講的很好,因為告訴了我怎么去查看ftp有關的SElinux的bool變量值以及設定。雖然最后也沒能夠搞定我的ftp服務器,但是我覺得先不搞了。謝謝這個仁兄。
1.安裝vsftpd組件,安裝完后,有/etc/vsftpd/vsftpd.conf 文件,用來配置,還有新建了一個ftp用戶和ftp的組,指向home目錄為/var/ftp,默認是nologin(不能登錄系統)
?
1
yum -y
install
vsftpd
可以用下面命令查看用戶
?
1
cat
/etc/passwd
默認ftp服務是沒有啟動的,用下面命令啟動
?
1
service vsftpd start
2.安裝ftp客戶端組件(用來驗證是否vsftpd)
?
1
yum -y
install
ftp
執行命令嘗試登錄
?
1
ftp
localhost
輸入用戶名ftp,密碼隨便(因為默認是允許匿名的)
登錄成功,就代表ftp服務可用了。
但是,外網是訪問不了的,所以還要繼續配置。
3.取消匿名登陸
?
1
vi
/etc/vsftpd/vsftpd
.conf
把第一行的 anonymous_enable=YES ,改為NO
重啟
?
1
service vsftpd restart
4.新建一個用戶(ftpuser為用戶名,隨便就可以)
?
1
useradd
ftpuser
修改密碼(輸入兩次)
?
1
passwd
ftpuser
這樣一個用戶建完,可以用這個登錄,記得用普通登錄不要用匿名了。登錄后默認的路徑為 /home/ftpuser.
5.開放21端口
因為ftp默認的端口為21,而centos默認是沒有開啟的,所以要修改iptables文件
?
1
vi
/etc/sysconfig/iptables
在行上面有22 -j ACCEPT 下面另起一行輸入跟那行差不多的,只是把22換成21,然后:wq保存。
還要運行下,重啟iptables
?
1
service iptables restart
外網是可以訪問上去了,可是發現沒法返回目錄,也上傳不了,因為selinux作怪了。
6.修改selinux
?
1
getsebool -a |
grep
ftp
執行上面命令,再返回的結果看到兩行都是off,代表,沒有開啟外網的訪問
?
1
2
3
4
5
....
allow_ftpd_full_access off
....
....
ftp_home_dir off
只要把上面都變成on就行
執行
?
1
2
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir off 1
再重啟一下vsftpd
?
1
service vsftpd restart
這樣應該沒問題了(如果,還是不行,看看是不是用了ftp客戶端工具用了passive模式訪問了,如提示Entering Passive mode,就代表是passive模式,默認是不行的,因為ftp passive模式被iptables擋住了,下面會講怎么開啟,如果懶得開的話,就看看你客戶端ftp是否有port模式的選項,或者把passive模式的選項去掉。如果客戶端還是不行,看看客戶端上的主機的電腦是否開了防火墻,關吧)
7.開啟passive模式
默認是開啟的,但是要指定一個端口范圍,打開vsftpd.conf文件,在后面加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范圍為30000~30999,這個可以隨意改。
改完重啟一下vsftpd
由于指定這段端口范圍,iptables也要相應的開啟這個范圍,所以像上面那樣打開iptables文件
也是在21上下面另起一行,更那行差不多,只是把21 改為30000:30999,然后:wq保存,重啟下iptables。這樣就搞定了。
新聞熱點
疑難解答