環(huán)境:
CentOS 6.8 64位
或者
CentOS 7 64位刪除:
yum remove vsftpd安裝
yum -y install vsftpd步驟:
創(chuàng)建ftp文件夾
mkdir ftpfile
- 添加匿名用戶
useradd qinxianyun-d /ftpfile -s /sbin/nologin
- 修改ftpfile權限
chown -R qinxianyun.qinxianyun /ftpfile
-查看ftp權限
ll | grep ftp
- 重設ftpuser密碼
passwd qinxianyun
配置ftp服務器
sudo vim /etc/vsftpd/vsftpd.conf找到banner節(jié)點:
ftpd_banner=-----
這個是登錄時候的歡迎信息在banner節(jié)點下面增加,local_root=/ftpfile堡距,將文件目錄指向新創(chuàng)建的目錄
增加anon_root=/ftpfile扎唾,匿名登錄的訪問目錄(由于我們禁掉了匿名訪問咳榜,可以注釋掉)
增加use_localtime=yes 荣月,使用本地時間
anonymous_enable=NO取具,關閉匿名訪問
chroot_list_enable=YES打開這個節(jié)點
chroot_list_file=/etc/vsftpd/chroot_list 這個節(jié)點指向了安裝目錄中的chroot_list文件绒疗,要把新建的用戶加入到這個文件中(打開這個節(jié)點)
保存/etc/vsftpd/vsftpd.conf這個文件
進入目錄帝美,cd /etc/vsftpd/中,創(chuàng)建文件瘾英,vim chroot_list枣接,把新創(chuàng)建的用戶qinxianyun加入其中(直接寫就可以了)
再次編輯進入sudo vim /etc/vsftpd/vsftpd.conf,在文件末尾加入被動傳輸端口范圍
pasv_min_port=61001
pasv_max_port=62000
- 編輯防火墻sudo vim /etc/sysconfig/iptables
-A INPUT -p TCP --dport 61001:62000 -j ACCEPT
-A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT
-A INPUT -p TCP --dport 20 -j ACCEPT
-A OUTPUT -p TCP --dport 20 -j ACCEPT
-A INTPUT -p TCP --dport 21 -j ACCEPT
-A OUTPUT -p TCP --dport 21 -j ACCEPT
#mysql
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
- 重啟防火墻
sudo service iptables restart - 重啟ftp
systemctl restart vsftpd.service
打開防火墻(centos6不需要)
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
再編輯下 /etc/vsftpd/vsftpd.conf 這個文件
vi /etc/vsftpd/vsftpd.conf
在 chroot_local_user=YES 后追加下面一行代碼(centos6不需要)
allow_writeable_chroot=YES
修改文件缺谴,sudo vim /etc/selinux/config,修改為SELINUX=disabled
不修改的話會造成ftp無法保存文件。
sudo setenforce 0使其生效如果驗證的時候碰到550拒絕訪問耳鸯,執(zhí)行
sudo setsebool -P ftp_home_dir 1
然后重啟服務器啟動ftp
centos 6:sudo service vsftpd restart
centos 7:systemctl restart vsftpd.service
配置項詳解:
1)local_root=/ftpfile(當本地用戶登入時湿蛔,將被更換到定義的目錄下,默認值為各用戶的家目錄)
2)anon_root=/ftpfile(使用匿名登入時县爬,所登入的目錄)
3)use_localtime=YES(默認是GMT時間阳啥,改成使用本機系統(tǒng)時間)
4)anonymous_enable=NO(不允許匿名用戶登錄)
5)local_enable=YES(允許本地用戶登錄)
6)write_enable=YES(本地用戶可以在自己家目錄中進行讀寫操作)
7)local_umask=022(本地用戶新增檔案時的umask值)
8)dirmessage_enable=YES(如果啟動這個選項,那么使用者第一次進入一個目錄時财喳,會檢查該目錄下是否有.message這個檔案察迟,如果有,則會出現此檔案的內容耳高,通常這個檔案會放置歡迎話語扎瓶,或是對該目錄的說明。默認值為開啟)
9)xferlog_enable=YES(是否啟用上傳/下載日志記錄泌枪。如果啟用概荷,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟碌燕。)
10)connect_from_port_20=YES(指定FTP使用20端口進行數據傳輸误证,默認值為YES)
11)xferlog_std_format=YES(如果啟用继薛,則日志文件將會寫成xferlog的標準格式)
12)ftpd_banner=Welcome to mmall FTP Server(這里用來定義歡迎話語的字符串)
13)chroot_local_user=NO(用于指定用戶列表文件中的用戶是否允許切換到上級目錄)
14)chroot_list_enable=YES(設置是否啟用chroot_list_file配置項指定的用戶列表文件)
15)chroot_list_file=/etc/vsftpd/chroot_list(用于指定用戶列表文件)
16)listen=YES(設置vsftpd服務器是否以standalone模式運行,以standalone模式運行是一種較好的方式愈捅,此時listen必須設置為YES遏考,此為默認值。建議不要更改蓝谨,有很多與服務器運行相關的配置命令灌具,需要在此模式下才有效,若設置為NO像棘,則vsftpd不是以獨立的服務運行稽亏,要受到xinetd服務的管控,功能上會受到限制)
17)pam_service_name=vsftpd(虛擬用戶使用PAM認證方式缕题,這里是設置PAM使用的名稱截歉,默認即可,與/etc/pam.d/vsftpd對應) userlist_enable=YES(是否啟用vsftpd.user_list文件烟零,黑名單,白名單都可以
18)pasv_min_port=61001(被動模式使用端口范圍最小值)
19)pasv_max_port=62000(被動模式使用端口范圍最大值)
20)pasv_enable=YES(pasv_enable=YES/NO(YES)
若設置為YES瘪松,則使用PASV工作模式;若設置為NO锨阿,則使用PORT模式宵睦。默認值為YES,即使用PASV工作模式墅诡。
FTP協(xié)議有兩種工作方式:PORT方式和PASV方式壳嚎,中文意思為主動式和被動式。
一末早、PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發(fā)送連接請求烟馅,服務器接受連接,建立一條命令鏈路然磷。
當需要傳送數據時郑趁,客戶端在命令鏈路上用 PORT命令告訴服務器:“我打開了****端口,你過來連接我”姿搜。于是服務器從20端口向客戶端的****端口發(fā)送連接請求寡润,建立一條數據鏈路來傳送數據。
二舅柜、PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發(fā)送連接請求梭纹,服務器接受連接,建立一條命令鏈路栗柒。
當需要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:“我打開了****端口,你過來連接我”瞬沦。于是客戶端向服務器的****端口發(fā)送連接請求太伊,建立一條數據鏈路來傳送數據。
從上面可以看出逛钻,兩種方式的命令鏈路連接方法是一樣的僚焦,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在于此曙痘。
)