vsftpd 配置詳解

来源:http://www.cnblogs.com/app-lin/archive/2016/02/14/5189762.html
-Advertisement-
Play Games

1.預設配置: 1>允許匿名用戶和本地用戶登陸。 anonymous_enable=YES local_enable=YES 2>匿名用戶使用的登陸名為ftp或anonymous,口令為空;匿名用戶不能離開匿名用戶家目錄/var/ftp,且只能下載不能上傳。 3>本地用戶的登錄名為本地用戶名,口令為...


1.預設配置:

1>允許匿名用戶和本地用戶登陸。

     anonymous_enable=YES

     local_enable=YES

2>匿名用戶使用的登陸名為ftp或anonymous,口令為空;匿名用戶不能離開匿名用戶家目錄/var/ftp,且只能下載不能上傳。

3>本地用戶的登錄名為本地用戶名,口令為此本地用戶的口令;本地用戶可以在自 己家目錄中進行讀寫操作;本地用戶可以離開自家目錄切換至有許可權訪問的其他目錄,併在許可權允許的情況下進行上傳/下載。

    write_enable=YES

4>寫在文件/etc/vsftpd.ftpusers中的本地用戶禁止登陸。

2.配置文件格式: 

vsftpd.conf 的內容非常單純,每一行即為一項設定。若是空白行或是開頭為#的一行,將會被忽略。內容的格式只有一種,如下所示

option=value

要註意的是,等號兩邊不能加空白。

3.匿名用戶(anonymous)設置

anonymous_enable=YES/NO(YES)

控制是否允許匿名用戶登入,YES 為允許匿名登入,NO 為不允許。預設值為YES。

write_enable=YES/NO(YES)

是否允許登陸用戶有寫許可權。屬於全局設置,預設值為YES。

no_anon_password=YES/NO(NO)

若是啟動這項功能,則使用匿名登入時,不會詢問密碼。預設值為NO。

ftp_username=ftp

定義匿名登入的使用者名稱。預設值為ftp。

anon_root=/var/ftp

使用匿名登入時,所登入的目錄。預設值為/var/ftp。註意ftp目錄不能是777的許可權屬性,即匿名用戶的家目錄不能有777的許可權。

anon_upload_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者有上傳文件(非目錄)的許可權,只有在write_enable=YES時,此項才有效。當然,匿名用戶必須要有對上層目錄的寫入權。預設值為NO。

anon_world_readable_only=YES/NO(YES)

如果設為YES,則允許匿名登入者下載可閱讀的檔案(可以下載到本機閱讀,不能直接在FTP伺服器中打開閱讀)。預設值為YES。

anon_mkdir_write_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者有新增目錄的許可權,只有在write_enable=YES時,此項才有效。當然,匿名用戶必須要有對上層目錄的寫入權。預設值為NO。

anon_other_write_enable=YES/NO(NO)

如果設為YES,則允許匿名登入者更多於上傳或者建立目錄之外的許可權,譬如刪除或者重命名。(如果 anon_upload_enable=NO,則匿名用戶不能上傳文件,但可以刪除或者重命名已經存在的文件;如果 anon_mkdir_write_enable=NO,則匿名用戶不能上傳或者新建文件夾,但可以刪除或者重命名已經存在的文件夾。)預設值為NO。

chown_uploads=YES/NO(NO)

設置是否改變匿名用戶上傳文件(非目錄)的屬主。預設值為NO。

chown_username=username

設置匿名用戶上傳文件(非目錄)的屬主名。建議不要設置為root。

anon_umask=077

設置匿名登入者新增或上傳檔案時的umask 值。預設值為077,則新建檔案的對應許可權為700。

deny_email_enable=YES/NO(NO)

若是啟動這項功能,則必須提供一個檔案/etc/vsftpd/banner_emails,內容為email address。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。預設值為NO。

banned_email_file=/etc/vsftpd/banner_emails

此文件用來輸入email address,只有在deny_email_enable=YES時,才會使用到此檔案。若是使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不允許進入。

4.本地用戶設置

local_enable=YES/NO(YES)

控制是否允許本地用戶登入,YES 為允許本地用戶登入,NO為不允許。預設值為YES。

local_root=/home/username

當本地用戶登入時,將被更換到定義的目錄下。預設值為各用戶的家目錄。

write_enable=YES/NO(YES)

是否允許登陸用戶有寫許可權。屬於全局設置,預設值為YES。

local_umask=022

本地用戶新增檔案時的umask 值。預設值為077。

file_open_mode=0755

本地用戶上傳檔案後的檔案許可權,與chmod 所使用的數值相同。預設值為0666。

5.歡迎語設置

dirmessage_enable=YES/NO(YES)

如果啟動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,通常這個檔案會放置歡迎話語,或是對該目錄的說明。預設值為開啟。

message_file=.message

設置目錄消息文件,可將要顯示的信息寫入該文件。預設值為.message。

banner_file=/etc/vsftpd/banner

當使用者登入時,會顯示此設定所在的檔案內容,通常為歡迎話語或是說明。預設值為無。如果歡迎信息較多,則使用該配置項。

ftpd_banner=Welcome to BOB's FTP server

這裡用來定義歡迎話語的字元串,banner_file是檔案的形式,而ftpd_banner 則是字元串的形式。預設為無。

6.控制用戶是否允許切換到上級目錄

在預設配置下,本地用戶登入FTP後可以使用cd命令切換到其他目錄,這樣會對系統帶來安全隱患。可以通過以下三條配置文件來控制用戶切換目錄。

chroot_list_enable=YES/NO(NO)

設置是否啟用chroot_list_file配置項指定的用戶列表文件。預設值為NO。

chroot_list_file=/etc/vsftpd.chroot_list

用於指定用戶列表文件,該文件用於控制哪些用戶可以切換到用戶家目錄的上級目錄。

chroot_local_user=YES/NO(NO)

用於指定用戶列表文件中的用戶是否允許切換到上級目錄。預設值為NO。

通過搭配能實現以下幾種效果:

當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。

當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。

當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。

當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。

7.數據傳輸模式設置

FTP在傳輸數據時,可以使用二進位方式,也可以使用ASCII模式來上傳或下載數據。

ascii_upload_enable=YES/NO(NO)

設置是否啟用ASCII 模式上傳數據。預設值為NO。

ascii_download_enable=YES/NO(NO)

設置是否啟用ASCII 模式下載數據。預設值為NO。

8.訪問控制設置

兩種控制方式:一種控制主機訪問,另一種控制用戶訪問。

①控制主機訪問:

tcp_wrappers=YES/NO(YES)

設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。預設值為YES。如果啟用,則vsftpd伺服器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該FTP伺服器。這兩個文件可以起到簡易的防火牆功能。

比如:若要僅允許192.168.0.1—192.168.0.254的用戶可以連接FTP伺服器,則在/etc/hosts.allow文件中添加以下內容:

vsftpd:192.168.0. :allow

all:all :deny

②控制用戶訪問:

對於用戶的訪問控制可以通過/etc目錄下的vsftpd.user_list和ftpusers文件來實現。

userlist_file=/etc/vsftpd.user_list

控制用戶訪問FTP的文件,裡面寫著用戶名稱。一個用戶名稱一行。

userlist_enable=YES/NO(NO)

是否啟用vsftpd.user_list文件。

userlist_deny=YES/NO(YES)

決定vsftpd.user_list文件中的用戶是否能夠訪問FTP伺服器。若設置為YES,則vsftpd.user_list文件中的用戶不允許訪問FTP,若設置為NO,則只有vsftpd.user_list文件中的用戶才能訪問FTP。

/etc/vsftpd/ftpusers文件專門用於定義不允許訪問FTP伺服器的用戶列表(註意: 如果userlist_enable=YES,userlist_deny=NO,此時如果在vsftpd.user_list和ftpusers中都有 某個用戶時,那麼這個用戶是不能夠訪問FTP的,即ftpusers的優先順序要高)。預設情況下vsftpd.user_list和ftpusers,這 兩個文件已經預設置了一些不允許訪問FTP伺服器的系統內部賬戶。如果系統沒有這兩個文件,那麼新建這兩個文件,將用戶添加進去即可。

9.訪問速率設置

anon_max_rate=0

設置匿名登入者使用的最大傳輸速度,單位為B/s,0 表示不限制速度。預設值為0。

local_max_rate=0

本地用戶使用的最大傳輸速度,單位為B/s,0 表示不限制速度。預設值為0。

10.超時時間設置

accept_timeout=60

設置建立FTP連接的超時時間,單位為秒。預設值為60。

connect_timeout=60

PORT 方式下建立數據連接的超時時間,單位為秒。預設值為60。

data_connection_timeout=120

設置建立FTP數據連接的超時時間,單位為秒。預設值為120。

idle_session_timeout=300

設置多長時間不對FTP伺服器進行任何操作,則斷開該FTP連接,單位為秒。預設值為300 。

11.日誌文件設置

xferlog_enable= YES/NO(YES)

是否啟用上傳/下載日誌記錄。如果啟用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設為開啟。

xferlog_file=/var/log/vsftpd.log

設置日誌文件名和路徑,預設值為/var/log/vsftpd.log。

xferlog_std_format=YES/NO(NO)

如果啟用,則日誌文件將會寫成xferlog的標準格式,如同wu-ftpd 一般。預設值為關閉。

log_ftp_protocol=YES|NO(NO)
如果啟用此選項,所有的FTP請求和響應都會被記錄到日誌中,預設日誌文件在/var/log/vsftpd.log。啟用此選項時,xferlog_std_format不能被激活。這個選項有助於調試。預設值為NO。

12.定義用戶配置文件

在vsftpd中,可以通過定義用戶配置文件來實現不同的用戶使用不同的配置。

user_config_dir=/etc/vsftpd/userconf

設置用戶配置文件所在的目錄。當設置了該配置項後,用戶登陸伺服器後,系統就會到/etc/vsftpd/userconf目錄下,讀取與當前用戶名相同的文件,並根據文件中的配置命令,對當前用戶進行更進一步的配置。

例如:定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用 者 test1,test2,那麼我們就在user_config_dir 的目錄新增文件名為test1和test2兩個文件。若是test1 登入,則會讀取user_config_dir 下的test1 這個檔案內的設定。預設值為無。利用用戶配置文件,可以實現對不同用戶進行訪問速度的控制,在各用戶配置文件中定義local_max_rate=XX, 即可。

13.FTP的工作方式與埠設置

FTP有兩種工作方式:PORT FTP(主動模式)和PASV FTP(被動模式)

listen_port=21

設置FTP伺服器建立連接所監聽的埠,預設值為21。

connect_from_port_20=YES/NO

指定FTP使用20埠進行數據傳輸,預設值為YES。

ftp_data_port=20

設置在PORT方式下,FTP數據連接使用的埠,預設值為20。

pasv_enable=YES/NO(YES)

若設置為YES,則使用PASV工作模式;若設置為NO,則使用PORT模式。預設值為YES,即使用PASV工作模式。

pasv_max_port=0

在PASV工作模式下,數據連接可以使用的埠範圍的最大埠,0 表示任意埠。預設值為0。

pasv_min_port=0

在PASV工作模式下,數據連接可以使用的埠範圍的最小埠,0 表示任意埠。預設值為0。

14.與連接相關的設置

listen=YES/NO(YES)

設置vsftpd伺服器是否以standalone模式運行。以standalone模式運行是一種較好 的方式,此時listen必須設置為YES,此為預設值。建議不要更改,有很多與伺服器運行相關的配置命令,需要在此模式下才有效。若設置為NO,則 vsftpd不是以獨立的服務運行,要受到xinetd服務的管控,功能上會受到限制。

max_clients=0

設置vsftpd允許的最大連接數,預設值為0,表示不受限制。若設置為100時,則同時允許有100個連接,超出的將被拒絕。只有在standalone模式運行才有效。

max_per_ip=0

設置每個IP允許與FTP伺服器同時建立連接的數目。預設值為0,表示不受限制。只有在standalone模式運行才有效。

listen_address=IP地址

設置FTP伺服器在指定的IP地址上偵聽用戶的FTP請求。若不設置,則對伺服器綁定的所有IP地址進行偵聽。只有在standalone模式運行才有效。

setproctitle_enable=YES/NO(NO)

設置每個與FTP伺服器的連接,是否以不同的進程表現出來。預設值為NO,此時使用ps aux |grep ftp只會有一個vsftpd的進程。若設置為YES,則每個連接都會有一個vsftpd的進程。

15.虛擬用戶設置

虛擬用戶使用PAM認證方式。

pam_service_name=vsftpd

設置PAM使用的名稱,預設值為/etc/pam.d/vsftpd。

guest_enable= YES/NO(NO)

啟用虛擬用戶。預設值為NO。

guest_username=ftp

這裡用來映射虛擬用戶。預設值為ftp。

virtual_use_local_privs=YES/NO(NO)

當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的許可權。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的許可權。預設情況下此參數是關閉的(NO)。

16.其他設置

text_userdb_names= YES/NO(NO)

設置在執行ls –la之類的命令時,是顯示UID、GID還是顯示出具體的用戶名和組名。預設值為NO,即以UID和GID方式顯示。若希望顯示用戶名和組名,則設置為YES。

ls_recurse_enable=YES/NO(NO)

若是啟用此功能,則允許登入者使用ls –R(可以查看當前目錄下子目錄中的文件)這個指令。預設值為NO。

hide_ids=YES/NO(NO)

如果啟用此功能,所有檔案的擁有者與群組都為ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟群組均為ftp。預設值為關閉。

download_enable=YES/NO(YES)

如果設置為NO,所有的文件都不能下載到本地,文件夾不受影響。預設值為YES。

 

轉自:

http://yuanbin.blog.51cto.com/363003/108262/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 查看oracle狀態的SQL語句 select status from v$instance; 查看oracle控制文件的SQL語句 select name from v$controlfile; 查看oracle數據文件的SQL語句 select name from v$datafile; 查看o
  • 看論壇上還許多人問及ACCESS被註入的安全問題許多人解決的方法仍然是用Replace替換特殊字元,然而這樣做也並沒有起到太大做用今天我就把我用ACCESS參數化查詢的一些方法和經驗和大家分享希望對大家有所啟發,有寫的不對的地方希望高手們多多指教 ASP.NET 用OleDbCommand的new
  • 當管理SQL Server內在的帳戶和密碼時,我們很容易認為這一切都相當的安全。但實際上並非如此。在這裡,我們列出了一些對於SQL Server密碼來說非常危險的判斷。 當管理SQL Server內在的帳戶和密碼時,我們很容易認為這一切都相當的安全。畢竟,你的SQL Server系統被保護在防火牆裡
  • 一.概述 netfilter是自2.4內核的一個數據包過濾框架。可以過濾數據包,網路地址和埠轉換(nat和napt技術),以及其他操作數據包的功能。主要工作原理是在內核模塊註冊回調函數(hook函數)到內核,內核執行到相關點時會觸發這個回調函數,然後根據回調函數里的邏輯,對包含網路協議棧的sk_b
  • 使用了VIM這麼久,卻一直無法牢記一些基本的操作指令。今天查找一個關鍵字時,想不起來怎麼查找“下一個”,於是google之並解決,順便把有用的都貼過來罷。查找指令:/xxx 往下查找?xxx 往上 n 下一個:set hls 打開高亮:set nohls 關閉高亮下麵是查找替換,雖然我至今沒使用過這
  • 下載 http://pan.baidu.com/s/1eRkEegM 解壓 終端中切換到下載文件的目錄下,執行以下命令: sudo tar -jxvf sublime_text_3_build_3083_x64.tar.bz2 sudo mkdir /opt/sublime_text_3 sudo
  • Linux系統中的wget是一個下載文件的工具,它用在命令行下。對於Linux用戶是必不可少的工具,我們經常要下載一些軟體或從遠程伺服器恢復備份到本地伺服器。wget支持HTTP,HTTPS和FTP協議,可以使用HTTP代理。所謂的自動下載是指,wget可以在用戶退出系統的之後在後臺執行。這意味這你...
  • 系統安裝 安裝準備 系統:fedora 、Win 10 硬體:U盤一枚、PC一臺 軟體:UltraISO 安裝步驟 使用UltraISO將鏡像寫入U盤 window10使用磁碟管理,空出一個未分配的區域留給fedora安裝系統,一般20G以上 重起電腦,bios中修改啟動項至usb啟動 出現三個選擇
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...