一、FTP服務簡介
1、FTP(File Transfer Protocol,文件傳輸協議)是典型C/S結構的應用層協議,需要由服務端軟件,客戶端軟件兩個部分共同實現文件傳輸功能。
2、FTP服務器默認使用TCP協議的20、21端口與客戶端進行通信。20端口用於建立數據連接,並傳輸文件數據;21端口用於建立控制連接,並傳輸FTP控制命令。
3、Windows中常見的FTP服務器軟件包括FileZilla Sener、Server-U等,而Linux系統中,vsftp是目前應用十分廣泛的一款FTP服務軟件。
二、Linux中配置FTP服務器
1、匿名訪問FTP服務
1)安裝ftp服務器rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
2)備份vsftp主配置文件
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.back
注:該操作是爲了防止主配置文件被改亂了能及時恢復
3)重啓服務器並在cmd或者文件瀏覽器中訪問(/var/ftp/爲默認工作目錄)systemctl start vsftp
注:此時FTP服務器可讀、可下載,無法上傳
4)修改主配置文件實現匿名用戶上傳文件vi /etc/vsftp/vsftpd.conf
注:chmod 777 /var/vsftpd/pub 更改pub目錄權限
5)重啓FTP服務並測試效果(可讀,可下載,可刪,可改)systemctl restart vsftpd
2、本地(系統用戶)訪問FTP服務
1)修改主配置文件
2)新建系統用戶jsh
3)重啓FTP服務並測試效果systemc restart vsftpd
4)常用的配置項
listen=YES:是否以獨立運行的方式監聽服務
listen_address=192.168.4.1:設置監聽的 IP 地址
listen_port=21:設置監聽 FTP 服務的端口號
write_enable=YES:是否啓用寫入權限(影響整個服務器)
download_enable=YES:是否允許下載文件
userlist_enable=YES:是否啓用 user_list 列表文件
userlist_deny=YES:是否禁用 user_list 中的用戶
max_clients=0:限制併發客戶端連接數,就是最多允許多少用戶同時登錄
max_per_ip=0:限制同一IP地址的併發連接數,就是一個IP最多同時下載幾個文件
3、虛擬用戶訪問FTP服務
1)建立虛擬用戶的賬戶名、密碼列表
cd /etc/vsftpd
vi vusers.txt(奇數行爲用戶名,偶數行爲密碼)
db_load -T -t hash -f vusers.txt vusers.db 列表轉換(將用戶加入到db庫中)
chmod 600 vusers.*
更改權限
2)創建FTP根目錄及虛擬用戶映射的系統用戶useradd -d /opt/vuser -s /sbin/nologin vuser
建立系統賬號,指定家目錄,指定shell環境
3)建立支持虛擬用戶的PAM認證文件vi /etc/pam.d/vsftpd.vu*
4)配置FTP主配置文件vsftpd.conf
5)重啓FTP服務器並測試訪問(zhangsan和lisi都能訪問)systemctl restart vsftpd
6)爲虛擬賬號配置單獨的配置文件目錄
vi /etc/vsftpd/vsftpd.conf
在配置文件末尾添加
新建配置文件目錄
mkdir /etc/vsftpd/vdir
vi zhangsan
在/opt/vuser下面新建zhangsan目錄
mkdir /opt/vuser/zhangsan
在zhangsan目錄下面新建pub目錄並更改權限
mkdir /opt/vuser/zhangsan/pub
chmod 777 /opt/vuser/zhangsan/pub
重啓FTP服務並且測試訪問
systemctl restart vsftpd