標籤:centos
---備忘:下面整理的比較亂..
安裝vsftpd
1、以管理員(root)身份執行以下命令
yum install vsftpd
2、設定開機啟動vsftpd ftp服務
chkconfig vsftpd on
3、啟動vsftpd服務
---------------這個時候就可以使用匿名訪問ftp了----------------
service vsftpd start
管理vsftpd相關命令:
停止vsftpd: service vsftpd stop
重啟vsftpd: service vsftpd restart
配置防火牆
開啟/etc/sysconfig/iptables檔案
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代碼
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
儲存和關閉檔案,重啟防火牆
service iptables start
-------------------上面代碼應該是為了開放 21連接埠,我這裡沒有用到-----------------
4、配置vsftpd伺服器
預設的設定檔是/etc/vsftpd/vsftpd.conf,你可以用文字編輯器開啟。
vi /etc/vsftpd/vsftpd.conf
添加ftp使用者
下面是添加ftpuser使用者,設定根目錄為/home/wwwroot/ftpuser,禁止此使用者登入SSH的許可權,並限制其訪問其它目錄。
1、修改/etc/vsftpd/vsftpd.conf
將底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
改為 (去掉了注釋)
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
禁止匿名使用者存取:
anonymous_enable=YES,將YES改為NO
在檔案末尾加如下的設定:
pasv_enable=YES ;允許被動模式
pasv_min_port=10000 ;被動模式使用連接埠範圍
pasv_max_port=10010
local_max_rate=200000 ;使用者寬頻限制 (未測試)
chroot_local_user=YES ;禁使用者離開主目錄(未測試)
注意:設定pasv連接埠後,需要修改防火牆,如在centOs裡,修改如下:
iptables -A RH-Firewall-1-INPUT -p tcp --dport 10000:10010 -j ACCEPT
5、增加使用者ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登入SSH許可權。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
6、設定使用者口令
passwd ftpuser (ftpuser)
7、編輯檔案chroot_list:
vi /etc/vsftpd/chroot_list
內容為ftp使用者名稱,每個使用者佔一行,如:
jlins
john
6、重新啟動vsftpd
service vsftpd restart
------------------------------------------
這個時候 使用 vsftpd vsftpd報錯:
錯誤: 已經從伺服器斷開
錯誤: 串連失敗
狀態: 正在等待重試... (還將重試 20 次)
錯誤: 串連失敗
錯誤: 被使用者中斷!
狀態: 正在串連 10.187.216.28 ...
狀態: 已經串連到 10.187.216.28:0。正在等待歡迎資訊...
響應: 220 (vsFTPd 2.2.2)
命令: USER ftpuser
響應: 331 Please specify the password.
命令: PASS *******
響應: 500 OOPS: cannot change directory:/home/wwwroot/ftpuser
錯誤: 串連失敗
----------------------------
但用戶端訪問提示如下錯誤:
500 OOPS: cannot change directory:/home/ftp
原因是他的CentOS系統安裝了SELinux,因為預設下是沒有開啟FTP的支援,所以訪問時都被阻止了。
------------------------下面是另外一種解決方式--------------------
到網上查了下,是selinux的配置問題,兩種方法解決:
1、setsebool -P ftp_home_dir on 之後再運service vsftpd restart
或 setsebool -P ftpd_disable_trans on 之後再運service vsftpd restart 也行
2、關閉selinux
修改/etc/selinux/config檔案或/etc/syscofnig/selinux設定SELINUX= disabled ,然後重啟
具體運行命令
[[email protected] wwwroot]# setsebool -P ftp_home_dir on
[[email protected] wwwroot]# service vsftpd restart
------------配置完全上面的之後再次出現 550 Create directory operation failed. (在修改的過程中失誤關閉了 service iptables stop 如果需要可以重新啟動)
解決方案如下
第一步、給目錄配置 777許可權
第二步、關閉SELinux方法
# vi /etc/selinux/config
將 SELINUX=XXX -->XXX 代表層級
改為
SELINUX=disabled
重啟就OK了! (注意;這裡的重新啟動是重新啟動伺服器!!!!!)
如果不想重新啟動伺服器可以使用如下命令:
setenforce 0
然後在重新啟動 vsftpd
原文地址:http://www.itmmd.com/201410/72.html
該文章由 android開發 整理髮布,轉載須標明出處。。
centos 6 下安裝vsFtp詳細步驟,centos 6 vsFtp問題匯總