vsftpd配置文件詳解


yum安裝的vsftpd配置文件如下:

vim /etc/vsftpd/vsftpd.conf

1)以“#”字符開始的行是注釋行。每一行為一個選項設置,格式為“option=value”,注意“=”號兩邊不能留空白符。
2)除了這個主配置文件外,還可以給特定用戶設定個人配置文件

1.與建立FTP鏈接相關的選項

1.1.監聽地址與控制端口

listen_address=[IP]        # 提供ftp服務的主機IP,單IP主機,不需要使用,多IP主機默認監聽所有IP地址。在VSFTPD使用單獨(standalone)模式下有效。
listen_port=[port]         # 提供ftp服務的控制端口號,默認值為21。此選項在standalone模式下生效。
port_enable=YES            # 是否啟用ftp主動模式,默認為YES。如果要在數據連接時取消PORT主動模式時,改為NO
connetc_from_port_20=NO    # 以port主動模式進行數據傳輸時是否使用20端口,默認為NO不使用。但RHEL自帶的vsftpd.conf文件中此參數設為YES。
ftp_data_port=[port]       # 指定ftp數據傳輸端口值,默認為20。此參數用於主動模式。
port_promiscuous=NO        # 取消PORT安全檢查,默認為NO不取消檢查。該檢查確保外出的數據只能連接到客戶端上。不建議打開
pasv_enable=YES            # 允許數據傳輸時使用PASV被動模式。默認為YES允許被動模式
pasv_min_port=[minport]
pasv_max_port=[maxport]    # 設定在PASV被動模式下,建立數據傳輸所可以使用port范圍的下界和上界,默認為0不限制。
                 # 把端口范圍設在比較高的一段范圍內,比如50000-60000,將有助於安全性的提高。
pasv_promiscuous=NO        # 是否關閉PASV模式的安全檢查,默認值為NO不關閉。該檢查確保數據連接和控制連接是來自同一個IP地址。不建議打開,此選項唯一合理的用法是存在於由安全隧道方案構成的組織中。
pasv_address=[IP]          # 此選項為一個數字IP地址,作為PASV命令的響應。默認值為none,即地址是從呼入的連接套接字(incomingconnectdsocket)中獲取。

1.2.關於ftp服務的ASCII模式

默認情況下,VSFTPD使用二進制傳輸數據,禁止使用ASCII傳輸模式。
如果FTP客戶端使用ascii命令,指明要使用ASCII模式,VSFTPD表面上接受了ascii命令,但在實際傳輸文件時,還是使用二進制方式,就會出現亂碼文件

ascii_upload_enable=NO     #控制是否允許使用ascii模式上傳文件,默認為NO不允許。
ascii_download_enable=NO   # 控制是否允許使用ascii模式下載文件,默認為NO不允許。

2.關於性能與負載控制

idle_session_timeout=60      # 設置用戶會話的空閑中斷時間,單位為秒,默認值為300。
data_connection_timeout=120  # 設置空閑的數據連接的中斷時間。默認值為300秒。
accept_timeout=60            # 接受建立聯機的超時設定,單位為秒。默認值為60。
connect_timeout=60           # 響應PORT方式的數據聯機的超時設定,單位為秒。默認值為60。
                 # 以上兩個選項針對客戶端的,將使客戶端空閑1分鍾后自動中斷連接,並在中斷1分鍾后自動激活連接。
max_clients=200              # 指明服務器總的客戶並發連接數為200,默認值為0,表示不限最大連接數。此參數在使用standalone模式下有效
max_per_ip=3                 # 指明每個IP地址的並發連接數,默認值為0不限制。該設置會影響到象網際快車這類的多進程下載軟件。此參數在使用standalone模式下有效
local_max_rate=50000         # 設置本地用戶的最大傳輸速率限制(50kbytes/sec),以Bytes/s為單位。默認0不限制。此選項可以為指定用戶單獨設置
anon_max_rate=30000          # 設定匿名用戶的最大數據傳輸速度value,以Bytes/s為單位。默認0不限制
pasv_min_port=50000          # 設置被動模式客戶端連接時的端口范圍,默認為0不限制
pasv_max_port=60000

3.用戶選項

VSFTPD的用戶分為三類:匿名用戶、本地用戶(localuser)以及虛擬用戶

3.1.匿名用戶

anonymous_enable=YES|NO      # 控制是否允許匿名用戶登錄,默認值為YES允許匿名用戶登錄。
ftp_username=                # 匿名用戶所使用的系統用戶名。默認此參數在配置文件中不出現,值為ftp。
no_anon_password=NO          # 控制匿名用戶登入時是否需要密碼,默認值為NO需要密碼。
deny_email_enable=NO         # 拒絕在banned_email_file指定的文件中所列出的email地址進行登錄的匿名用戶。默認值為NO關閉。這對於阻擊某些Dos攻擊有效。如果開啟需要追加以下配置
banned_email_file=/etc/banned_emails.conf    # 當匿名用戶使用banned_email_file文件中所列出的e-mail進行登錄時,被拒絕
指定包含被拒絕的e-mail地址的文件,默認文件為/etc/vsftpd.banned_emails。
anon_root=                   # 匿名用戶的根目錄,默認為/var/ftp/,主配置文件中默認無此項。
anon_world_readable_only=YES # 默認值為YES只允許匿名用戶下載可閱讀的文件。NO允許匿名用戶瀏覽整個服務器的文件
anon_upload_enable=NO        # 是否允許匿名用戶上傳文件,默認NO不允許。

# 除了anon_upload_enable這個參數外,匿名用戶要能上傳文件,還需要兩個條件:

1)write_enable參數為YES;
2)在文件系統上,FTP匿名用戶對某個目錄有寫權限
anon_mkdir_write_enable=NO   # 是否允許匿名用戶創建新目錄,默認為NO不允許,同時FTP匿名用戶必需對新目錄的上層目錄擁有寫權限。
anon_other_write_enable=NO   # 匿名用戶是否擁有除了上傳和新建目錄之外的其他權限,如刪除、更名等。默認為NO不擁有
chown_uploads=NO             # 是否修改匿名用戶所上傳文件的所有權。默認值為NO不修改。如果改為YES匿名用戶所上傳的文件的所有權將改為另外一個不同的用戶所有
chown_username=whoever       # 指定擁有匿名用戶上傳文件所有權的用戶。此參數與chown_uploads聯用。不推薦使用root用戶。

3.2.本地用戶

在使用FTP服務的用戶中,除了匿名用戶外,還有一類在FTP服務器所屬主機上擁有賬號的用戶。VSFTPD中稱此類用戶為本地用戶(localuser),等同於其他FTP服務器中的real用戶。

local_enable=YES             # 本地系統用戶是否可以登陸,默認值為YES。
local_root=                  # 定義所有本地用戶的根目錄。默認為空,本地用戶登錄到自己的宿主目錄
user_config_dir=/etc/vsftpd/user.d    # 定義用戶個人配置文件所在的目錄,配置文件名為用戶名,配置格式與vsftpd.conf相同。默認為無不單獨設置用戶權限,虛擬用戶也用這個

3.3.虛擬用戶

guest_enable=NO            # 若是啟動這項功能,所有的非匿名登入者都視為guest,默認值為NO關閉。如果要使用ftp虛擬用戶需要啟用
guest_username=            # 定義VSFTPD的guest用戶在系統中的用戶名。默認值為ftp,在使用ftp虛擬用戶時建議自定義,例如ftpvuser

4.安全措施

4.1.用戶登錄控制

/etc/vsftpd/ftpusers         # 改配置文件中的用戶禁止登錄FTP服務器。這個機制是在/etc/pam.d/vsftpd中默認設置的。
pam_service_name=vsftpd      # 指定vsftpd進行PAM認證時所使用的PAM配置文件名,默認值是vsftpd,默認PAM配置文件是/etc/pam.d/vsftpd,使用ftp虛擬用戶時需要更改
userlist_enable=NO           # 是否通過userlist_file列表控制可登陸的用戶,默認為NO不啟用,如果啟用,列表中的用戶默認拒絕登錄FTP服務器,在輸入用戶名后,不提示輸入密碼
userlist_deny=YES            # 決定禁止還是允許userlist_file指定文件中的用戶登錄FTP服務器,默認為YES禁止文件中的用戶登錄,此選項在userlist_enable選項啟動后才生效,如果要允許在文件中的用戶登錄FTP服務器需要改為NO
userlist_file=/etc/vsftpd/user_list    # userlist_enable選項指定的用戶列表的文件。默認為/etc/vsftpd/user_list。
tcp_wrappers=YES             # 在vsftpd中使用TCP_Wrappers封裝數據,默認值為YES。

4.2.目錄訪問控制

chroot_list_enable=NO        # 是否鎖定用戶在其宿主目錄中,默認值為NO不鎖定。具體的用戶在chroot_list_file參數所指定的文件中列出。
chroot_list_file=/etc/vsftpd/chroot_list    # 指定要鎖定在宿主目錄中的用戶,默認不設置。一行一用戶,通常為/etc/vsftpd/chroot_list
chroot_local_users=NO        # 將本地用戶鎖定在其宿主目錄中,默認值為NO不鎖定。

注意:

當chroot_local_users被激活時,chroot_list_enable和chroot_local_users參數的作用將發生變化,chroot_list_file所指定文件中的用戶將不被鎖定在自家目錄。
可能帶來安全上的沖突,特別是當用戶擁有上傳、shell訪問等權限時。

passwd_chroot_enable=NO      # 當此選項需與chroot_local_user配合,chroot()容器的位置可以在每個用戶的基礎上指定。每個用戶的容器來源於/etc/passwd中每個用戶的自家目錄字段。默認值為NO。

4.3.文件操作控制

hide_ids=YES|NO              # 是否隱藏文件的所有者和組信息。默認值為NO不隱藏,如果為YES,當用戶使用"ls -al"之類的指令時,在目錄列表中所有文件的擁有者和組信息都顯示為ftp
ls_recurse_enable=YES|NO     # 是否允許使用"ls-R"指令,默認值為NO不允許。如果在一個大型FTP站點的根目錄下使用"ls-R"會消耗大量系統資源。
write_enable=YES|NO          # 是否允許使用修改文件系統的FTP的指令,默認為NO不允許,比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE
secure_chroot_dir=           # 安全沙箱目錄,指向一個ftp用戶無寫權限的空目錄,默認為/usr/share/empty。當vsftpd不需要訪問文件系統時,這個目錄將被作為一個安全的容器,用戶將被限制在此目錄中。
anon_umask=                  # 匿名用戶新增文件的umask數值。默認值為077。
file_open_mode=              # 上傳文件的權限,默認值為0666。與chmod所使用的數值相同。如果希望上傳的文件可以執行,設此值為0777。
local_umask=                 # 本地用戶新增文件時的umask數值,默認值為077。如果希望新增的文件他人可以訪問的話,修改為022

5.提示信息

ftpd_banner=welcome          # 此參數定義了登錄歡迎語,預設值為無,可修改
banner_file=/etc/vsftpd/banner_file    # 當用戶登錄時會顯示此文件中的內容,通常為歡迎話語或是說明。默認值為無。
                 # 與ftpd_banner相比,banner_file是文本文件的形式,而ftpd_banner是字串格式。banner_file選項將取代ftpd_banner選項。
dirmessage_enable=YES        # 特定目錄的提示信息,默認為YES啟用。當用戶進入指定目錄,如果該目錄下存在message_file指定的文件,則顯示出現此文檔的內容,通常這個文檔會放置歡迎話語,或是對該目錄的說明。
message_file=                # dirmessage_enable選項啟用時生效,指定提示內容的文檔。默認為.message,以該擴展名結尾的文件

6.日志設置

xferlog_enable=NO            # 是否啟用一個日志文件,記錄上傳和下載,默認為NO不啟用,該日志文件由xferlog_file選項指定
xferlog_file=/var/log/vsftpd.log    # 記錄ftp日志。默認為/var/log/vsftpd.log
xferlog_std_format=NO        # 日志文件格式是否使用xferlog的標准格式,默認為NO不使用。默認的日志格式更為可讀性,使用xferlog格式可以使用已經存在的傳輸統計生成器。
log_ftp_protocol=NO          # 是否記錄所有的FTP請求和響應到日志中,這個選項一般用於調試,默認為NO不記錄。使用此選項時xferlog_std_format不能被激活

7.其他設置

setproctitle_enable=NO       # 是否在系統進程列表中顯示每個會話(session)的狀態,默認為NO不顯示。包括掛起、下載等
text_userdb_names=No         # 用戶使用ls -al命令時,列表信息是否顯示擁有者名稱而不是UID,默認為NO不顯示
use_localtime=NO             # vsftpd顯示目錄列表時是否使用服務器本地時區的時間。默認為NO顯示GMT時間,建議修改為YES。由ftp命令“MDTM”返回的時間值也受此選項影響。
check_shell=YES              # 本地用戶登錄時vsftpd是否檢查/etc/shells文件以尋找一個有效的用戶shell。默認為YES。此選項僅對不使用PAM方式的VSFTPD生效。
nopriv_user=nobody           # 指定一個專用的除nobody以外的用戶,當VSFTPD不想要什么權限時,使用此用戶身份。默認值為nobody,如果使用建議修改,因為在大多數的機器上,nobody用戶被用於大量重要的事情
pam_service_name=            # 指明vsftpd使用用PAM驗證服務時的PAM配置文件名。默認值為ftp。

====== 完畢,呵呵呵呵 =======


免責聲明!

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



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