linux搭建FTP服務(wù)器:
背景信息
FTP支持以下三種認證模式:
- 匿名用戶模式:任何人無需密碼驗證就可以直接登入到FTP服務(wù)器,但這種模式很不安全,一般只保存不重要的公開文件,不推薦生產(chǎn)環(huán)境使用。
- 本地用戶模式:通過Linux系統(tǒng)本地賬號進行驗證的模式,相較于匿名用戶模式更安全。
- 虛擬用戶模式:FTP服務(wù)器的專有用戶。虛擬用戶只能訪問Linux為其提供的的FTP服務(wù),而不能訪問Linux系統(tǒng)的其他資源,進一步增強FTP服務(wù)器的安全性。
安裝vsftpd
1..運行以下命令安裝vsftpd
yum -y install vsftpd
2.啟動FTP服務(wù)
systemctl start vsftpd
3.設(shè)置FTP服務(wù)自啟動
systemctl enable vsftpd
4.查看服務(wù)是否啟動,監(jiān)聽端口號21
LISTEN 0 32 0.0.0.0:21 0.0.0.0:* users:(("vsftpd",pid=1863149,fd=3))
配置vsftpd
為保證數(shù)據(jù)安全,設(shè)置在被動模式下,使用本地用戶訪問FTP服務(wù)器
- 為FTP服務(wù)器創(chuàng)建一個Linux的本地用戶并設(shè)置密碼
adduser ftptest
passwd ftptest
2. 創(chuàng)建一個供FTP使用的文件目錄
mkdir /var/ftp/test
- 修改 /var/ftp/test 目錄的擁有者為ftptest
chown -R ftptest:ftptest /var/ftp/test
4.修改/etc/vsftpd/vsftpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
#除下面提及的參數(shù),其他參數(shù)保持默認值即可。
#修改下列參數(shù)的值:
#禁止匿名登錄FTP服務(wù)器。
anonymous_enable=NO
#允許本地用戶登錄FTP服務(wù)器。
local_enable=YES
#監(jiān)聽IPv4 sockets。
listen=YES
#在行首添加#注釋掉以下參數(shù):
#關(guān)閉監(jiān)聽IPv6 sockets。
#listen_ipv6=YES
#在配置文件的末尾添加下列參數(shù):
#設(shè)置本地用戶登錄后所在目錄。
local_root=/var/ftp/test
#全部用戶被限制在主目錄。
chroot_local_user=YES
#啟用例外用戶名單,如無特殊情況不建議配置
chroot_list_enable=YES #建議略過
#指定例外用戶列表文件,列表中用戶不被鎖定在主目錄,如無特殊情況不建議配置
chroot_list_file=/etc/vsftpd/chroot_list #建議略過
#開啟被動模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中為Linux實例的公網(wǎng)IP。
pasv_address=<FTP服務(wù)器公網(wǎng)IP地址>
#設(shè)置被動模式下,建立數(shù)據(jù)傳輸可使用的端口范圍的最小值。
#建議您把端口范圍設(shè)置在一段比較高的范圍內(nèi),例如50010~50020,有助于提高訪問FTP服務(wù)器的安全性。
pasv_min_port=<port number>
#設(shè)置被動模式下,建立數(shù)據(jù)傳輸可使用的端口范圍的最大值。
pasv_max_port=<port number>
5.重啟vsftp服務(wù)
systemctl restart vsftpd
設(shè)置安全組
搭建好FTP站點后,在控制臺安全組中開發(fā)端口
阿里云添加安全組規(guī)則:
被動模式需要開放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中參數(shù)pasv_min_port和pasv_max_port之間的所有端口。
| 規(guī)則方向 | 授權(quán)策略 | 協(xié)議類型 | 端口范圍 | 授權(quán)對象 |
|---|---|---|---|---|
| 入方向 | 允許 | 自定義TCP | 21/21 | 所有要訪問FTP服務(wù)器的客戶端公網(wǎng)IP地址,多個地址之間用逗號隔開。允許所有客戶端訪問時,授權(quán)對象為0.0.0.0/0。 |
| 入方向 | 允許 | 自定義TCP | pasv_min_port/pasv_max_port。例如:50000/50010 | 所有要訪問FTP服務(wù)器的客戶端公網(wǎng)IP地址,多個地址之間用逗號隔開。允許所有客戶端訪問時,授權(quán)對象為0.0.0.0/0。 |
vsftp配置文件及參數(shù)說明
配置文件vsftpd.conf參數(shù)說明如下:
-
用戶登錄控制參數(shù)說明如下表所示。
參數(shù) 說明 anonymous_enable=YES 接受匿名用戶 no_anon_password=YES 匿名用戶login時不詢問口令 anon_root=(none) 匿名用戶主目錄 local_enable=YES 接受本地用戶 local_root=(none) 本地用戶主目錄 -
用戶權(quán)限控制參數(shù)說明如下表所示。
參數(shù) 說明 write_enable=YES 可以上傳文件(全局控制) local_umask=022 本地用戶上傳的文件權(quán)限 file_open_mode=0666 上傳文件的權(quán)限配合umask使用 anon_upload_enable=NO 匿名用戶可以上傳文件 anon_mkdir_write_enable=NO 匿名用戶可以建目錄 anon_other_write_enable=NO 匿名用戶修改刪除 chown_username=lightwiter 匿名上傳文件所屬用戶名
客戶端測試
在linux環(huán)境下ftp ip,即可進行上傳下載,更多操作請參考文檔:
https://help.aliyun.com/document_detail/182263.html?spm=a2c4g.11186623.6.1326.6cff5ce26jqUbB(阿里云)
https://help.aliyun.com/document_detail/92044.html?spm=a2c4g.11186623.3.5.69415ce20cB7zs