FTP是什么?對于那些在服務器領域“久經沙場”的人來說,這是個簡單的東西,但是對于一些新手來說,FPT是個晦澀的英文縮寫,FTP是File Transfer Protocol的縮寫,這是一種文件傳輸協議,用于Internet上的控制文件的雙向傳輸。大多數人注意的也只是多數的FTP站點的使用率較高,需要多次重連才能連接上。FTP地址和HTTP地址相似,只是FTP地址使用ftp://前綴而不是http://。
FTP的傳輸方式有很多種,當然主要是主動(Port模式)和被動(PASV模式)兩種。通過FTP在計算機賬戶間進行文件傳輸,也可以在賬戶和桌面計算機之間傳輸文件,或者訪問在線軟件歸檔。從賬戶類別上來看,FTP用戶也分為Real帳戶、Guest用戶和Anonymous(匿名)用戶三種。需要注意的是在默認情況下,服務器會把建立的所有帳戶都歸屬為Real用戶。但這并不符合企業安全需求,所以,在建立FTP服務器時要根據實際情況,修改用戶所在的類別。
有了對FTP服務的了解之后,FTP服務器又是什么?即用于接收FTP連接請求的計算機、服務器或FTP站點。
如果以VSFTPD(自稱為最安全的FTP服務端軟件)作為ftp服務通過搭建一個用于文件共享。那么我們應該怎么找到一種更安全的方法進行文件管理和傳輸,如SFTP(使用OpenSSH)。
具體做法如下:
使用rpm安裝VSFTPD,可以使用如下命令在命令行界面中快捷的安裝VSFTPD:
dnf -y install vsftpd
使用deb安裝VSFTPD,可以使用如下命令在命令行界面中快捷的安裝VSFTPD:
sudo apt-get install vsftpd
在Arch中安裝VSFTPD,可以使用如下命令在命令行界面中快捷的安裝VSFTPD:
sudo pacman -S vsftpd
配置FTP服務
多數的VSFTPD配置項在/etc/vsftpd.conf配置文件中,本身已經有“read”文檔說明,這里只介紹一些可能進行修改的重要選項。使用man頁面查看所有可用的選項和基本的文檔說明:
man vsftpd.conf
根據文件系統層級標準,FTP共享文件默認位于/srv/ftp目錄中。
允許上傳:為了允許ftp用戶可以修改文件系統的內容,如上傳文件等,“write_enable”標志必須設置為YES。
write_enable=YES
允許本地(系統)用戶登錄,為了允許文件/etc/passwd中記錄的用戶可以登錄ftp服務,“local_enable”標記必須設置為YES。
local_enable=YES
下面配置內容控制匿名用戶是否允許登錄:
# 允許匿名用戶登錄 | anonymous_enable=YES |
# 匿名登錄不需要密碼(可選) | no_anon_password=YES |
# 匿名登錄的最大傳輸速率,Bytes/second(可選) | anon_max_rate=30000 |
# 匿名登錄的目錄(可選) | anon_root=/example/directory/ |
根目錄限制(Chroot Jail)
有時我們需要設置根目錄(chroot)環境來禁止用戶離開他們的家(home)目錄。在配置文件中增加/修改下面配置開啟根目錄限制(Chroot Jail):
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list“chroot_list_file”變量指定根目錄限制所包含的文件/目錄( LCTT 譯注:即用戶只能訪問這些文件/目錄)
做完上面這些步驟,你只需要重啟ftp服務就可以了,即在命令行中輸入以下命令:sudo systemctl restart vsftpd。
如此,ftp服務已經搭建完成并且啟動,你,學會了嗎?