一.簡介:linux
1.FTP文件傳輸協議是在TCP/IP網絡和Internet上最先使用的協議之一,它屬於網絡協議應用層的協議。FTP客戶機能夠給FTP服務器發出命令來下載文件,上載文件,建立或修改服務器上的目錄等等。 安全
2.從服務器的角度去看,FTP的傳輸模式分爲如下兩種:服務器
⑴主動FTP模式:網絡
主動模式要求客戶端和服務器端同時打開而且監聽一個端口以創建鏈接。在這種狀況下,文件的傳輸存在安全隱患,客戶端若是安裝了防火牆,在使用過程當中也有可能會產生一些問題 測試
⑵被動FTP模式:(實際生活中多采用該模式)ui
在被動方式FTP中,命令鏈接和數據鏈接都由客戶端發起,這樣就能夠解決從服務器到客戶端的數據端口的入方向鏈接被防火牆過濾掉的問題。 spa
二.搭建步驟rest
1.因爲wdos系統中並無安裝vsftpd軟件包,因此須要經過yum安裝所須要的軟件包ip
2.基於匿名的ftp服務器架設(匿名帳戶有 anoymous 和ftp 這兩個)hash
3.基於系統用戶的ftp服務器架設(在服務器中手動創建)
4.基於虛擬用戶的ftp服務器架設
4.測試
5.可能遇到的問題的解決方案
三.搭建過程
1.使用yum -y install vsftpd 安裝vsftp軟件包,以下圖所示:
2.基於匿名用戶的ftp架設
1)vi /etc/vsftpd/vsftpd.conf 進入ftp的主配置文件,默認狀況下容許匿名用戶登陸,因此只須要找到下圖兩句並把前面的#去掉,即可容許匿名用戶上傳文件和建立新目錄:
2)容許匿名用戶上傳文件的FTP服務器:
方法一:建立一個屬於ftp匿名用戶使用的目錄
方法二:建立一個屬於root用戶的目錄,但修改目錄權限爲容許其餘用戶修改目錄內容
3)重啓vsftpd服務
使用命令service vsftpd restart 重啓該服務
3.基於虛擬用戶的ftp架設
1)建立本地虛擬用戶user1和user2,設置密碼爲123456
2)修改主配置文件/etc/vsftpd/vsftpd.conf,將圖中標註的兩行前的註釋符去掉
3)在/etc/vsftpd這一目錄下,新建一個chroot_list文件用於存放新建的用戶:
4)服務重啓
使用命令service vsftpd restart 重啓該服務
4.基於虛擬用戶的搭建
1)添加虛擬用戶口令文件 /etc/vsftpd/vuser.txt;在該文件下添加虛擬用戶和密碼
2)安裝生成口令認證文件所需的軟件包db4-utils
3)使用db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db命令生成虛擬用戶口令認證文件
4)編輯vsftpd的PAM認證文件:
vi /etc/pam.d/vsftpd,將裏面的內容所有刪除或者註釋掉,另外添加下面兩句命令:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5)創建本地映射用戶並設置宿主目錄權限
全部的FTP虛擬用戶須要使用一個系統用戶,這個系統用戶不須要密碼。
useradd –d /home/vftpsite –s /sbin/nologin vsftpuser
chmod 700 /home/vftpsite
6)到主配置文件 /etc/vsftpd/vsftpd.conf 配置虛擬用戶
7)重啓該服務
四.測試
1.基於匿名用戶的測試:(這裏只測試新建立的目錄forup1)
1)使用匿名帳戶 ftp登陸,密碼爲空;
2)客戶端上傳test.txt到已經建立好的目錄forup1
3)到ftp服務器查看是否上傳成功,若是須要下載已經上傳的文件test.txt,可經過修改該文件的權限
使用命令chmod 644 test.txt修改文件的權限:
客戶端測試是否能下載:
2.基於系統用戶的測試:(這裏使用新建的帳戶user1來測試)
1)使用虛擬用戶user1登陸到ftp服務器,並建立一個新的文件
2)在服務器上查看/home/user1目錄下的文件,是否添加成功
3.基於虛擬用戶的測試:
五.可能遇到的問題解決方案
1.若是在服務重啓的過程當中提示重啓失敗,用命令 netstat -lnpt 查看各個端口的啓用狀態,確保21端口偵聽的是vsftpd的服務
P.s. 通常狀況下,wdos系統的21端口被pureftpd服務佔用了,這時能夠經過命令 service pureftpd stop 來關閉這項服務
2.若是在測試過程當中出現530登陸失敗這樣的錯誤,則經過命令vi /etc/selinux/config 進入該文件查看sellinux是否設置爲disable,同時經過命令 service iptables stop 將防火牆關閉,重啓vsftpd服務,從新測試便可。