CentOS vsftpd FTP Server 安裝設定

  1. 安裝 vsftpd
    yum install vsftpd
  2. 編輯 vsftpd 設定檔
    vi /etc/vsftpd/vsftpd.conf
    伺服器環境有關的設定:
    use_localtime=YES
    connect_from_port_20=YES
    listen=YES #使用 stand alone 方式啟動 vsftpd
    ftpd_banner=文字說明
    banner_file=/path/file #指定純文字檔作為使用者登入伺服器時所顯示的歡迎訊息connect_timeout=60
    data_connection_timeout=300
    idle_session_timeout=300 

    max_clients=10 #設定同一時間,最多有多少 client
    max_per_ip=3 #同一個 IP 同一時間可允許多少連線
    local_max_rate=1000000 #限制實體用戶的下載流量,單位是 bytes/second

    pasv_enable=YES
    pasv_min_port=65400
    pasv_max_port=65410
    #使用 65400 到 65410 這 11 個 port 來進行被動式連線模式的連接

    anonymous_enable=NO #不允許 anonymous 登入我們的 vsftpd 主機

    ascii_download_enable=YES #如果設定為 YES ,那麼 client 就優先 (預設) 使用 ASCII 格式下載檔案
    ascii_upload_enable=YES #與上一個設定類似,只是這個設定針對上傳

    tcp_wrappers=YES #如為 YES 可以設定 /etc/hosts.allow 與 /etc/hosts.deny
    xferlog_enable=YES #使用者上傳與下載檔案都會被紀錄起來xferlog_file=/var/log/xferlog #如果上一個 xferlog_enable=YES 的話,這裡就可以設定登錄檔的檔名
    xferlog_std_format=NO #是否設定為 wu ftp 相同的登錄檔格式

    dual_log_enable=YES,
    vsftpd_log_file=/var/log/vsftpd.log
    nopriv_user=nobody #預設以 nobody 作為此一服務執行者的權限,入侵者僅能取得 nobody 的權限

    pam_service_name=vsftpd #這個是 pam 模組的名稱,放置在 /etc/pam.d/vsftpd

    實體用戶相關的資訊:
    local_enable=YES #支援本地端的實體用戶登入
    write_enable=YES
    local_umask=002 #建立新目錄與檔案的權限

    userlist_enable=YES #藉助 vsftpd 的抵擋機制來處理某些不受歡迎的帳號
    userlist_deny=YES #當 userlist_enable=YES 時才會生效的設定
    userlist_file=/etc/vsftpd/user_list #若上面 userlist_deny=YES 時,則這個檔案就有用處了!在這個檔案內的帳號都無法使用 vsftpd

    chroot_local_user=YES #是否要將使用者限制在自己的家目錄之內
    chroot_list_enable=YES #是否啟用 chroot 寫入列表的功能
    chroot_list_file=/etc/vsftpd.chroot_list #如果 chroot_list_enable=YES 那麼就可以設定這個項目

  3. /etc/pam.d/vsftpd
    vsftpd 使用 PAM 模組時的相關設定檔
    主要用來作為身份認證之用,還有一些使用者身份的抵擋功能,也是透過這個檔案來達成的。
    vi /etc/pam.d/vsftpd
  4. /etc/vsftpd/ftpusers
    與上一個檔案有關係,也就是 PAM 模組 (/etc/pam.d/vsftpd) 所指定的那個無法登入的使用者設定檔啊! 這個檔案的設定很簡單,你只要將『不想讓他登入 FTP 的帳號』寫入這個檔案即可。
    vi /etc/vsftpd/ftpusers
  5. 建立限制系統帳號登入的檔案
    /etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 這個檔案的設定所影響的
    /etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所設定
    /etc/vsftpd/user_list
    這個檔案是否能夠生效與 vsftpd.conf 內的 『 userlist_enable, userlist_deny 參數有關
    /etc/vsftpd/chroot_list
    這個檔案要生效與 vsftpd.conf 內的『 chroot_list_enable, chroot_list_file 』參數有關,檔案預設是不存在的,必須要手動自行建立。 

    這兩個檔案的內容是一樣的哩~並且這兩個檔案必須要存在才行。請參考 /etc/passwd 設定檔, 然後將 UID 小於 500 的帳號名稱同時寫到這兩個檔案內一行一個帳號!

  6. /usr/sbin/vsftpd
    這就是 vsftpd 的主要執行檔
  7. /var/ftp/
    vsftpd 的預設匿名者登入的根目錄
  8. 啟動 vsftpd
    service vsftpd start
    netstat -tulnp| grep 21
    chkconfig vsftpd on
  9. 防火牆設定:
    vi /etc/sysconfig/iptables
    加入 iptables 的規則
    iptables -A INPUT -i eth0 -p tcp –dport 20:21 -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp –dport 65400:65410 -j ACCEPT 

    vi /etc/sysconfig/iptables-config
    IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"# 加入模組即可!兩個模組中間有空白鍵隔開!

    /etc/init.d/iptables restart #重新啟動 iptables

  10. 常見問題:
    1.如果在 Client 端上面發現無法連線成功
    iptables 防火牆的規則當中,是否開放了 client 端的 port 21
    2.如果 Client 無法上傳檔案
    vi /etc/vsftpd/vsftpd.conf 加上這個設定『write_enable=YES』
  11. 加入 /var/log/vsftpd.log 的支援
    vi /etc/vsftpd/vsftpd.conf
    加入
    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log/etc/init.d/vsftpd restart
  12. 查看Log記錄:
    vi /var/log/vsftpd.log
    vi /var/log/messages
    vi /var/log/xferlog
本篇發表於 Linux, Server。將永久鏈結加入書籤。

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>