更新時間:2019-03-29 19:04:11html
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱爲「文傳協議」。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不一樣的操做系統有不一樣的FTP應用程序,而全部這些應用程序都遵照同一種協議以傳輸文件。互聯網上提供文件存儲和訪問服務的計算機,他們依照的是FTP協議提供服務!支持FTP協議的服務器就是FTP服務器!FTP協議提供存儲和傳輸服務的一套協議。下載」(Download)和」上傳」(Upload)。」下載」文件就是從遠程主機拷貝文件至本身的計算機上;」上傳」文件就是將文件從本身的計算機中拷貝至遠程主機上。用Internet語言來講,用戶可經過客戶機程序向(從)遠程主機上傳(下載)文件。linux
FTP採用客戶端/服務端的工做模式(C/S結構),經過TCP協議創建客戶端和服務器之間的鏈接,但與其餘大多數應用協議不一樣,FTP協議在客戶端和服務端之間創建了兩條通訊鏈路,分別是控制鏈路和數據鏈路,其中,控制鏈路負責FTP會話過程當中FTP命令的發送和接收,數據鏈路則負責數據的傳輸。FTP會話包含了兩個通道,控制通道和數據通道,FTP的工做有兩種方式,一種是主動模式,一種是被動模式,以FTPServer爲參照物,主動模式,服務器主動鏈接客戶端傳輸,被動模式,等待客戶端的的鏈接 。(不管是主動模式仍是被動模式,首先的控制通道都是先創建起來的,只是在數據傳輸模式上的區別)。nginx
vsftpd是linux下的一款小巧輕快,安全易用的FTP服務器軟件,是一款在各個Linux發行版中最受推崇的FTP服務器軟件。api
1.安裝vsftpd,直接yum 安裝就能夠了安全
出現下圖表示安裝成功。bash
2.相關配置文件:服務器
/etc/vsftpd/vsftpd.conf
//主配置文件,核心配置文件markdown
/etc/vsftpd/ftpusers
//黑名單,這個裏面的用戶不容許訪問FTP服務器app
/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服務器,vsftpd安裝後默認開啓了匿名ftp的功能,用戶無需額外配置便可使用匿名登陸ftp服務器。
匿名ftp的配置在/etc/vsftpd/vsftpd.conf中設置。
anonymous_enable=YES
//默認即爲YES
這個時候任何用戶均可以經過匿名方式登陸ftp服務器,查看並下載匿名帳戶主目錄下的各級目錄和文件,可是不能上傳文件或者建立目錄。
爲了演示效果,咱們安裝一個lftp軟件。
利用lftp 公網ip鏈接到ftp服務器,能夠看到只能查看和下載,不能進行上傳操做
出於安全方面的考慮,vsftpd在默認狀況下不容許用戶經過匿名FTP上傳文件,建立目錄等更改操做,可是能夠修改vsftpd.conf配置文件的選項,能夠賦予匿名ftp更多的權限。
容許匿名ftp上傳文件。
修改/etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
二、更改/var/ftp/pub目錄的權限,爲ftp用戶添加寫權限,並從新加載配置文件
三、測試
本地用戶登陸就是指使用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 | 匿名上傳文件所屬用戶名 |