更改vsftpd默認目錄
下圖是本地文件的鏡像
一、安裝FTP配置yum源
1、安裝FTP軟件
#yum install -y vsftpd* 安裝FTP軟件
#service vsftpd start 啟動FTP服務
#chkconfig --add vsftpd
#chkconfig vsftpd on
2. 把centos6.5的光盤掛載到服務器上,之後拷貝DVD中所有文件到本機ftp目錄下
#mount /dev/cdrom /mnt
#mkdir -p /opt/ftp/centos6.5
#cp -r /mnt/* /opt/ftp/centos6.5
3、編輯yum配置文件
#vi /etc/yum.repos.d/yum.repo
[Packages]
name=Packages
baseurl=ftp://你yum服務器IP地址/centos6.5 ftp訪問的的目錄是/opt/ftp,所以後面要加上底下目錄centos6.5
enable=1
gpgcheck=0
二、修改匿名用戶默認用戶登錄訪問根目錄
1、修改默認目錄
例如修改為/opt/ftp,直接在/opt目錄下創建:
mkdir -p /opt/ftp/centos6.5
默認權限是:755
註意改完配置後重啟一下ftp服務
service vsftpd restart
2、測試步驟如下:
vi /etc/vsftpd/vsftpd.conf 直接在配置文件中添加如下: anon_root=/opt/ftp anon_upload_enable=NO
服務重啟
通過ftp://ip訪問到/opt/ftp這個目錄(證明已經將默認目錄更改)。
進入到Packages目錄下安裝createrepo包
#rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh createrepo-0.9.9-18.el6.noarch.rpm
在createrepo -v /opt/ftp/centos6.5/repodata目錄下生成一些文件
createrepo -v /opt/ftp/centos6.5/
三、VSFTP 工作模式
FTP一般有2個通道分別為:
控制通道:管理用戶登錄等,常用端口號:TCP的21;客戶端主動與服務器建立連接
數據通道:用戶傳輸數據時所要用到的,如,瀏覽目錄,上傳、下載等;這個端口要分2種情況了,一種當FTP工作在主動模式(默認為主動模式)時開放20端口,服務器主動用20端口去連接客戶端的動態端口;另一種情況是當FTP工作在被動模式時,客戶端會用自己的動態端口去連接到FTP服務器的動態端口(服務器開放動態端口被客戶端連接)。
1、我們知道VSFTP這個軟件,安全性很好,但是設置時候我們發現vsftp在開放防火墻時煩人得很,因為VSFTP的控制端口是21,數據端口在被動模式下是動態的,這一點很頭痛,如果防火墻只開放21端口的話,client便無法瀏覽、下載等建立數據通道;此時可以這樣設置,方法如下 :
vim /etc/vsftpd/vsftpd.conf
#connect_from_port_20=YES #設置數據端口為20,此行註釋!
pasv_enable=YES #啟用被動模式
pasv_min_port=9000 #設置被動模式最小端口
pasv_max_port=9010 #設置被動模式最大端口
我們再設置防火墻規則:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 9000:9010 -j ACCEPT #放行9000:9010端口
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp" #讓kenel加載FTP模塊
或modprobe ip_nat_ftp ip_conntrack_ftp
然後重啟vsftpd服務即可!
好處:ftp客戶端無需關心防火墻的設置,只要在服務器端開放21及數據端口就OK!
2、當FTP服務器工作在主動模式下時,Linux防火墻要開放21端口及ip_nat_ftp,ip_conntrack_ftp模塊;
如:vim /etc/sysconfig/iptables-config在最後加上下面2行
IPTABLES_MODULES="ip_nat_ftp"
IPTABLES_MODULES="ip_conntrack_ftp"
再開防火墻策略,如下:
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
另一點要註意的是,客戶端默認狀態是被動模式,一定要記得改為主動模式,否則你在客戶端登錄後提示你權限不足,是因為數據端口的原因!
註意:FTP客戶端的防火墻要開通20數據端口!
cat /etc/sysconfig/iptables
#Generated by iptables-save v1.4.7 on Tue May 16 10:56:54 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [43:3768]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -s 168.1.5.132/32 -p tcp -m tcp --dport 7001 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
*nat
:PREROUTING ACCEPT [1972:167817]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [446:29864]
-A PREROUTING -p tcp -m tcp --dport 7001 -j DNAT --to-destination 168.1.5.132:7001
-A PREROUTING -d 218.90.136.90/32 -p tcp -m tcp --dport 7001 -j DNAT --to-destination 168.1.2.138:7001
-A POSTROUTING -j MASQUERADE
COMMIT
#Completed on Tue May 16 10:56:54 2017
更改vsftpd默認目錄