首先,先說明一下幾個重要的設定檔案
● /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_enable和userlist_deny』。
如果說/etc/vsftpd.ftpusers是PAM模組的抵擋設定項目,那麼這個/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預設匿名者登入的根目錄
在本身的/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有關,如果您想要使用65400到65410這11個
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/second,0為不限制
● 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
寫入的目錄亦需要調整權限,讓vsftpd的PID擁有者可以寫入才行
● 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的權限,如果是077則anonymous傳送過來的檔案權限會是-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】
Keep posting stuff like this i really like it
nice post. thanks.
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?
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!
I hope to help you that by my blog