如何在 linux 中搭建 FTP 服務
在本教程中,我將會介紹如何搭建你自己的FTP服務。但是,首先我們應該來的學習一下FTP是什麼。
FTP是什麼?
FTP 是 文件傳輸協議 的縮寫。顧名思義,FTP用於計算機之間通過網路進行文件傳輸。你可以通過FTP在計算機賬戶間進行文件傳輸,也可以在賬戶和桌面計算機之間傳輸文件,或者訪問在線軟體歸檔。但是,需要注意的是多數的FTP站點的使用率非常高,可能需要多次重連才能連接上。
FTP地址和HTTP地址(即網頁地址)非常相似,只是FTP地址使用ftp://前綴而不是http://
FTP伺服器是什麼?
通常,擁有FTP地址的計算機是專用於接收FTP連接請求的。一台專用於接收FTP連接請求的計算機即為FTP伺服器或者FTP站點。
現在,我們來開始一個特別的冒險,我們將會搭建一個FTP服務用於和家人、朋友進行文件共享。在本教程,我們將以vsftpd作為ftp服務。
VSFTPD是一個自稱為最安全的FTP服務端軟體。事實上VSFTPD的前兩個字母表示「 非常安全的 」。該軟體的構建繞開了FTP協議的漏洞。
儘管如此,你應該知道還有更安全的方法進行文件管理和傳輸,如:SFTP(使用OpenSSH)。FTP協議對於共享非敏感數據是非常有用和可靠的。
使用 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配置文件中。這個文件本身已經有非常良好的文檔說明了,因此,在本節中,我只強調一些你可能進行修改的重要選項。使用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)
( LCTT 譯註:chroot jail是類unix系統中的一種安全機制,用於修改進程運行的根目錄環境,限制該線程不能感知到其根目錄樹以外的其他目錄結構和文件的存在。詳情參看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服務已經搭建完成並且啟動了。
via: http://itsfoss.com/set-ftp-server-linux/
作者:alimiracle 譯者:cvsher 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive