Ubuntu16 FTP的安裝,基本配置與權限控制


1.ftp與sftp

大致了解下:

ftp是一個文件傳輸協議,linux環境需要它才能支持文件的傳輸與查看,它的默認端口是21。

sftp是加密/解密的文件傳輸協議,因為它每次傳輸都有加密解密的步驟,所以效率比ftp低的多但是安全。

2.ftp服務的安裝

使用命令行從軟件庫下載安裝:apt-get install vsftp ftp

3.ftp服務的匿名訪問測試

安裝完成后我們可以進行測試,首先測試一下匿名登錄

修改vsftpd的配置文件:vim /etc/vsftpd.conf(配置文件的位置可能不同)

將anonymous_enable設置為YES,意思是允許匿名登錄;

再添加一行匿名登錄的默認目錄:anon_root=/home/annoDir;

最后啟動vsftpd服務:/etc/init.d/vsftpd start

用瀏覽器匿名訪問目錄:

可以看到,無需輸入賬號密碼就可以訪問annoDir這個目錄:

4.ftp服務的配置詳解

參考(https://www.linuxidc.com/Linux/2017-04/142493.htm

anonymous_enable=NO             # 關閉匿名登錄 默認為NO
local_enable=YES            # 允許本地用戶登錄
write_enable=YES            # 啟用可以修改文件的 FTP 命令
local_umask=022               #設置本地用戶新增文檔的umask,默認為022,
這里的022ftp服務會把它解析成2進制的000 010 010 再取反,即755,代表了文件的權限,即 對新增的目錄有讀寫執行權

dirmessage_enable=YES           # 當用戶第一次進入新目錄時顯示提示消息(按照默認就好) xferlog_enable=YES          # 一個存有詳細的上傳和下載信息的日志文件(啟用日志文件) connect_from_port_20=YES        # 在服務器上針對 PORT 類型的連接使用端口 20(FTP 數據) xferlog_std_format=YES          # 保持標准日志文件格式(默認不動) listen=NO                 # 阻止 vsftpd 在獨立模式下運行,默認為NO,但是據說設置為NO的話,有些配置功能會被限制(找不到相關資料) listen_ipv6=YES             # vsftpd 將監聽 ipv6 而不是 IPv4,你可以根據你的網絡情況設置,如果需要同時支持ipv4和ipv6的話,需要配置2套 pam_service_name=vsftpd         # vsftpd 將使用的 PAM 驗證設備的名字(默認就好) userlist_enable=YES             # 允許 vsftpd 加載用戶名字列表,
注意,默認vsftp是基於/etc/vsftpd.userlist來作為禁止訪問ftp的名單的,比如其中就包含root用戶
我們也可以通過配置 userlist_deny=NO 這個選項來反轉配置,即只有該名單內的用戶可以訪問該目錄。
chroot_local_user=YES
allow_writeable_chroot=YES

 #選項chroot_local_user=YES 表示本地用戶將進入 chroot 環境,當登錄以后默認情況下是其 home 目錄

 並且我們要知道,默認情況下,出於安全原因,VSFTPD 不允許 chroot 目錄具有可寫權限。然而,我們可以通過選項 allow_writeable_chroot=YES 來允許。

 

   chroot_list_enable=YES #限制只訪問自身目錄

   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #限制訪問自身目錄的用戶列表

 

5.新增ftp用戶

正常使用ftp服務,很少會用匿名登錄,我們需要一個專門的用戶去做ftp操作。

1.新建用戶(xjxftp)並設置主目錄和密碼:

2.在ftp的配置文件中限制用戶的訪問路徑:

編輯vsftpd.conf文件,設置chroot_local_user=YES 

同時,新建一個chroot_list文件,將受限制的用戶加入:一個用戶名占一行,直接加入就好。

重啟服務:root@instance-7k2jqcks:/etc# ./init.d/vsftpd restart

 

注:如果我們設置了chroot_local_user=YES,又設置了chroot_list_enable=YES限制訪問自身目錄,則擁有寫權限的用戶將無法登錄

這是由於ftp新版本的安全機制導致的(https://www.cnblogs.com/zhjh256/p/9155281.html

我們當然不能沒有寫的權限,這里我們可以設置 allow_writeable_chroot=YES 來允許(如果white_enable=YES這行被注釋掉的話也把它放開)

 

這樣,我們使用xftp就可以新建文件,並且所有的操作也被限制在該用戶主目錄下:

 

 

 

6.ftp用戶無法新建文件夾和403

這里稍微說一點點遇到的小問題,一個是提到的限制用戶訪問主目錄后的無法寫的問題,上面的已經有方案了。

403的問題:

1.如果我們使用阿里雲服務器,它進入的協議和端口默認是有限制的,我們需要自己做安全組配置打開20和21端口,如果服務器自帶防火牆也一樣。

2.還有就是你ftp登錄的用戶有沒有對主目錄應有的訪問讀寫權限。

3.默認ftp是對ftpusers這個文件里的用戶禁止訪問的。它里面就包含root,如果我們的用戶在/etc/ftpusers這個文件夾里,登錄驗證也將失敗。

無法新建文件夾的問題:注意有的版本配置文件中write_enable=YES 這個是被注釋掉的,這樣我們無法寫,需要把它打開。

 

7.vsftpd配置必須需要賬號密碼訪問

把user_list文件作為允許訪問的用戶列表

配置文件中 配置 userlist_enable=YES和 userlist_deny=NO

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM