FTP的搭建和使用
更新時間:2019-03-29 19:04:11
簡介
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。互聯網上提供文件存儲和訪問服務的計算機,他們依照的是FTP協議提供服務!支持FTP協議的服務器就是FTP服務器!FTP協議提供存儲和傳輸服務的一套協議。下載”(Download)和”上傳”(Upload)。”下載”文件就是從遠程主機拷貝文件至自己的計算機上;”上傳”文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
工作原理
FTP采用客戶端/服務端的工作模式(C/S結構),通過TCP協議建立客戶端和服務器之間的連接,但與其他大多數應用協議不同,FTP協議在客戶端和服務端之間建立了兩條通信鏈路,分別是控制鏈路和數據鏈路,其中,控制鏈路負責FTP會話過程中FTP命令的發送和接收,數據鏈路則負責數據的傳輸。FTP會話包含了兩個通道,控制通道和數據通道,FTP的工作有兩種方式,一種是主動模式,一種是被動模式,以FTPServer為參照物,主動模式,服務器主動連接客戶端傳輸,被動模式,等待客戶端的的連接 。(無論是主動模式還是被動模式,首先的控制通道都是先建立起來的,只是在數據傳輸模式上的區別)。
FTP的安裝與配置
安裝前准備
vsftpd是linux下的一款小巧輕快,安全易用的FTP服務器軟件,是一款在各個Linux發行版中最受推崇的FTP服務器軟件。
1.安裝vsftpd,直接yum 安裝就可以了
出現下圖表示安裝成功。
2.相關配置文件:
/etc/vsftpd/vsftpd.conf
//主配置文件,核心配置文件
/etc/vsftpd/ftpusers
//黑名單,這個里面的用戶不允許訪問FTP服務器
/etc/vsftpd/user_list
//白名單,允許訪問FTP服務器的用戶列表
3.啟動服務
systemctl enable vsftpd.service
//設置開機自啟動
systemctl start vsftpd.service
//啟動ftp服務
netstat -antup | grep ftp
//查看ftp服務端口
開通FTP服務對應的防火牆端口:21后,登錄FTP服務器。
匿名ftp的基本配置
使用匿名FTP,用戶無需輸入用戶名密碼即可登錄FTP服務器,vsftpd安裝后默認開啟了匿名ftp的功能,用戶無需額外配置即可使用匿名登錄ftp服務器。
匿名ftp的配置在/etc/vsftpd/vsftpd.conf中設置。
anonymous_enable=YES
//默認即為YES
這個時候任何用戶都可以通過匿名方式登錄ftp服務器,查看並下載匿名賬戶主目錄下的各級目錄和文件,但是不能上傳文件或者創建目錄。
為了演示效果,我們安裝一個lftp軟件。
利用lftp 公網ip連接到ftp服務器,可以看到只能查看和下載,不能進行上傳操作
匿名ftp的其他設置
出於安全方面的考慮,vsftpd在默認情況下不允許用戶通過匿名FTP上傳文件,創建目錄等更改操作,但是可以修改vsftpd.conf配置文件的選項,可以賦予匿名ftp更多的權限。
允許匿名ftp上傳文件。
修改/etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
2、更改/var/ftp/pub目錄的權限,為ftp用戶添加寫權限,並重新加載配置文件
3、測試
配置本地用戶登錄
本地用戶登錄就是指使用Linux操作系統中的用戶賬號和密碼登錄ftp服務器,vsftp安裝后默只支持匿名ftp登錄,用戶如果試圖使用Linux操作系統中的賬號登錄服務器,將會被vsftpd拒絕
1.創建ftptest用戶
2.修改/etc/vsftpd/vsftpd.conf
anonymous enable=NO
local_enable=YES
3.還是通過lftp連接到ftp服務器
另外簡單介紹下vsftpd.conf的配置文件參數說明。
用戶登陸控制
參數 | 說明 |
---|---|
anonymous_enable=YES | 接受匿名用戶 |
no_anon_password=YES | 匿名用戶login時不詢問口令 |
anon_root=(none) | 匿名用戶主目錄 |
local_enable=YES | 接受本地用戶 |
local_root=(none) | 本地用戶主目錄 |
用戶權限控制
參數 | 說明 | |
---|---|---|
write_enable=YES | 可以上傳(全局控制) | |
local_umask=022 | 本地用戶上傳文件的umask | |
file_open_mode=0666 | 上傳文件的權限配合umask使用 | |
anon_upload_enable=NO | 匿名用戶可以上傳 | |
anon_mkdir_write_enable=NO | 匿名用戶可以建目錄 | |
anon_other_write_enable=NO | 匿名用戶修改刪除 | |
chown_username=lightwiter | 匿名上傳文件所屬用戶名 |