Vsftd.conf設定說明

由 Derek 發表於 五月 14, 2011 / 5 則評論

首先,先說明一下幾個重要的設定檔案

    /etc/vsftpd/vsftpd.conf

簡單來說,整個 vsftpd 的設定檔就只有這個檔案!是用『參數=設定值』來設定的, 等號兩邊不

能有空白喔!詳細的vsftpd.conf說明可用『man 5 vsftpd.conf 』查看。

 

    /etc/pam.d/vsftpd

        這個是 vsftpd 使用 PAM 模組時的相關設定檔。主要用來作為身份認證之用,還有一些使用者

        身份的抵擋功能, 也是透過這個檔案來達成的。

 

    /etc/vsftpd.ftpusers

/etc/pam.d/vsftpd有關係,也就是PAM模組(/etc/pam.d/vsftpd_ 所指定的那個無法登入的使用

者設定檔。這個檔案的設定很簡單,只要將『不想讓他登入的帳號』寫入這個檔案就可以。一行

一個帳號。

 

   /etc/vsftpd.user_list

       這個檔案能否生效與vsftpd.conf內的兩個參數有關,分別是『userlist_enableuserlist_deny』。

       如果說/etc/vsftpd.ftpusersPAM模組的抵擋設定項目,那麼這個/etc/vsftpd.user_list 則是 vsftpd

       自訂的抵擋項目。事實上這個檔案與/etc/vsftpd.ftpusers幾乎一模一樣,在預設的情況下,你可

       以將不希望可登入vsftpd的帳號寫入這裡。不過這個檔案的功能會依據vsftpd.conf設定檔內的

       userlist_deny=(YES/NO) 而不同

 

    /etc/vsftpd.chroot_list

這個檔案預設是不存在的,所以必須要手動自行建立。這個檔案的主要功能是可以將某些帳號的

使用者chroot在家目錄下。但這個檔案要生效與vsftpd.conf內的『 chroot_list_enable,

chroot_list_file 』兩個參數有關。如果想要將某些實體用戶限制在家目錄下而不許到其他目錄去,

可以啟動這個設定項目喔

 

    /usr/sbin/vsftpd

        這是 vsftpd 的主要執行檔,vsftpd只有這一個執行檔

 

    /var/ftp/

        這是vsftpd預設匿名者登入的根目錄

  

 vsftpd.conf 設定值說明

在本身的/etc/vsftpd/vsftpd.conf就是一個詳細的設定檔。若想更加了解的可以使用【man 5 vsftpd.conf

查詢。這邊提供一些常用的參數說名。

 

Vsftpd.conf 設定值這邊分為四大區塊:

1.與主機較相關的設定值。

2.與實體用戶較相關的設定值。

3.匿名者登入的設定值。

4.關於系統安全方面的一些設定值

 

 

與主機較相關的設定值

    connect_from_port_20=YES (NO)

        主動式連線使用的FTP伺服器的埠號,這就是ftp-data的埠號。

  

    listen_port=21

     vsftpd使用的命令通道埠號,如果想要使用非正規的埠號,在這個設定項目修改。不過要

     知道,這個設定值只適合用stand alone的方式來啟動(對於super daemon無效)

 

    dirmessage_enable=YES (NO)

       當使用者進入某個目錄時,會顯示該目錄需要注意的內容,顯示的檔案預設是.message

       可以使用底下的設定項目來修訂

 

    message_file=.message

       dirmessage_enable=YES時,可以設定這個項目來讓vsftpd尋找該檔案來顯示訊息

 

    listen=YES (NO)

       若設定為YES表示vsftpd是以stand alone來啟動。若是NO就以super daemon來啟動

 

    pasv_enable=YES (NO)

       啟動被動式連線模式(passive mode),一定要設定為YES

 

    use_localtime=YES (NO)

        是否使用本地時間?vsftpd預設使用GMT(格林威治),所以比台灣晚8小時,建議設定為YES 

 

    write_enable=YES (NO)

是否允許使用者上傳資料?

 

    connect_timeout=60

以秒為單位,資料連接的主動式連線模式下,發出的連接訊號在60秒內得不到用戶端的回應,則

不等待並強制斷線

 

    accept_timeout=60

       當使用者以被動式PASV來進行資料傳輸時,如果主機啟用passive port並等待client超過60秒而 

       無回應,那麼就給他強制斷線。這個設定值與connect_timeout類似,不過一個是管理主動連線,

       一個管理被動連線

 

    data_connection_timeout=300

       如果伺服器與用戶端的資料連線已經成功建立(不論主動還是被動連線),但是可能由於線路問題導

       300秒內還是無法順利的完成資料的傳送,那用戶端的連線就會被我們的vsftpd強制剔除

 

    idle_session_timeout=300

       使用者在 300 秒內都沒有命令動作,強制離線

 

    max_clients=0

       如果是用stand alone方式啟動,這個設定項目可設定同時間,最多有多少client可以同時上vsftpd

 

    max_per_ip=0

       與上面max_clients類似,這裡是同一IP在同時間可允許多少連線

 

    pasv_min_port=0, pasv_max_port=0

       passive mode使用的port number有關,如果您想要使用654006541011 

       port來進行被動式連線模式的連接,可以這樣設定pasv_max_port=65410以及 

       pasv_min_port=65400。如果是0的話,表示隨機取用而不限制

 

    ftpd_banner=一些文字說明

       當使用者連線進入到vsftpd時,在FTP用戶端軟體上頭會顯示的說明文字。建議你可以使用底下

       的設定值來取代這個項目

 

    banner_file=/path/file

       這個項目可以指定某個純文字檔作為使用者登入vsftpd時所顯示的歡迎字

 

 

與實體用護較相關的設定值

    guest_enable=YES (NO)

       這個值設定為YES時,那麼任何非anonymous登入的帳號,均會被假設成為guest (訪客) 至於訪

       客在 vsftpd 當中,預設會取得ftp這個使用者的相關權限。但可以透過guest_username來修改

 

    guest_username=ftp

       guest_enable=YES時才會生效,指定訪客的身份而已

 

    local_enable=YES (NO)

       這個設定值必須為YES時,/etc/passwd內的帳號才能以實體用戶的方式登入我們的vsftpd主機

 

    local_max_rate=0

       實體用戶的傳輸速度限制,單位為bytes/second0為不限制

 

    chroot_local_user=YES (NO)

       將使用者限制在自己的家目錄內(chroot)。這個設定在vsftpd當中預設是NO,底下有兩個設定項

       目的輔助喔,所以不需要啟動他。

 

    chroot_list_enable=YES (NO)

       是否啟用將某些實體用戶限制在家目錄內?預設是NO,不過,如果想要讓某些使用者無法離開家

       目錄時,可以考慮將這個設定為YES,並且規劃下個設定值

 

    chroot_list_file=/etc/vsftpd.chroot_list

       如果chroot_list_enable=YES那麼就可以設定這個項目,裡面可以規定那一個實體用戶會被限制在

       家目錄內而無法離開,(chroot)一行一個帳號就可以了

 

    userlist_enable=YES (NO)

       是否藉助vsftpd的抵擋機制來處理某些不受歡迎的帳號,與底下的設定有關

 

    userlist_deny=YES (NO)

       userlist_enable=YES時才會生效的設定,若此設定值為YES時,則當使用者帳號被列入到某個檔

       案時,在該檔案內的使用者將無法登入vsftpd伺服器!該檔案檔名與下列設定項目有關。

 

    userlist_file=/etc/vsftpd.user_list

       若上面userlist_deny=YES時,則這個檔案就有用處了,在這個檔案內的帳號都無法使用vsftpd

 

 

匿名者登入的設定值 

    anonymous_enable=YES (NO)

是否允許anonymous登入我們的vsftpd主機,預設是YES,底下的所有相關設定都需要將這個設定為anonymous_enable=YES之後才會生效

 

    anon_world_readable_only=YES (NO)

只允許anonymous具有下載可讀檔案的權限,預設是YES

 

    anon_other_write_enable=YES (NO)

       是否允許anonymous具有寫入的權限?預設是NO,如果設定為YES,那麼開放給anonymous

       寫入的目錄亦需要調整權限,讓vsftpdPID擁有者可以寫入才行

 

    anon_mkdir_write_enable=YES (NO)

       是否允許anonymous具有建立目錄的權限?

 

    anon_upload_enable=YES (NO)

       是否允許anonymous具有上傳資料的功能?

 

    deny_email_enable=YES (NO)

       將某些特殊的email address抵擋住,不讓那些anonymous登入,如果以anonymous登入主機時,

       不是會要求輸入密碼嗎?密碼不是要您輸入您的email address嗎?如果你很討厭某些email

       address,就可以使用這個設定來將他取消登入的權限!需與下個設定項目配合

 

    banned_email_file=/etc/vsftpd.banned_emails

       如果deny_email_enable=YES時,可以利用這個設定項目來規定哪個email address不可登入我們的

       vsftpd ,在上面設定的檔案內,一行輸入一個email address

 

    no_anon_password=YES (NO)

       當設定為YES時,表示anonymous將會略過密碼檢驗步驟,而直接進入vsftpd伺服器內,所以一

       般預設都是NO

 

    anon_max_rate=0

       這個設定值後面接的數值單位為bytes/秒,限制anonymous的傳輸速度,如果是0則不限制(由最

       大頻寬所限制),如果您想讓anonymous僅有 30 KB/s 的速度,可以設定『anon_max_rate=30000

 

    anon_umask=077

       限制anonymous的權限,如果是077anonymous傳送過來的檔案權限會是-rw——-

 

關於系統安全方面的一些設定值

    ascii_download_enable=YES (NO)

       如果設定為YES,那麼client就可以使用ASCII格式下載檔案

 

    ascii_upload_enable=YES (NO)

和上一個設定類似的,只是這個設定針對上傳而言!預設是NO

 

    one_process_model=YES (NO)

       這個設定項目比較危險一點,當設定為YES時,表示每個建立的連線都會擁有一支process 在負責,

       可以增加vsftpd的效能。除非您的系統比較安全,而且硬體配備比較高,否則容易耗盡系統資源,

       一般建議設定為NO

 

    tcp_wrappers=YES (NO)

       當然我們都習慣支援TCP Wrappers,所以設定為YES 

 

    xferlog_enable=YES (NO)

       當設定為YES時,使用者上傳與下載檔案都會被紀錄起來。記錄的檔案與下一個設定項目有關

 

    xferlog_file=/var/log/vsftpd.log

       如果上一個xferlog_enable=YES的話,這裡就可以設定,這是登錄檔的檔名

 

    xferlog_std_format=YES (NO)

       是否設定為wu ftp相同的登錄檔格式?預設為NO,因為登錄檔會比較容易讀!不過,如果您有

       使用 wu ftp 登錄檔的分析軟體,這裡才需要設定為 YES

 

    nopriv_user=nobody

       vsftpd預設以nobody作為此服務執行者的權限。因為nobody的權限相當的低,因此即使被入侵,

       入侵者僅能取得nobody的權限

 

    pam_service_name=vsftpd

這個是pam模組的名稱,我們放置在/etc/pam.d/vsftpd 就是這個

 

 

參考文獻 :

鳥哥Linux 架站文件 vsFTPd Server

 

 

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

  1. Maya Adduci 說: 2011/05/29

    Keep posting stuff like this i really like it

  2. Rubye Iarocci 說: 2011/05/28

    nice post. thanks.

  3. Lin Duhl 說: 2011/05/28

    Thanks for some quality points there. I am kind of new to online , so I printed this off to put in my file, any better way to go about keeping track of it then printing?

  4. Jenise Steininger 說: 2011/05/28

    Pretty nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!

    • Derek 說: 2011/05/28

      I hope to help you that by my blog

發表評論至 Lin Duhl

*