靠譜的vsftpd配置 功能描述: 1. 伺服器上存在多個網站目錄 禁止匿名使用者存取 2. 系統帳號禁止訪問FTP服務 3. 每個帳號被限制在指定主目錄中,多個帳號被映射到系統帳號FTP上,這些帳號都不能用來登入系統 4. 上傳檔案的所有者為ftp, 許可權為644, 新建立目錄許可權為 655 5. 使用被動模式,以保證用戶端處於NAT環境中能正常傳輸檔案 6.伺服器開啟iptables防火牆,被動模式資料傳送連接埠範圍限定在 5000--5100 一些預先處理 A. 關閉selinux功能, 編輯檔案 /etc/selinux/config, 修改SELINUX=disabled B. 安裝vsftpdyum install vsftpd 好了,接下來進行以下配置 1. 編輯配置/etc/vsftpd/vsftpd.conf 輸出以下內容 anonymous_enable=NOlocal_enable=NOwrite_enable=YESlocal_umask=022async_abor_enable=NOascii_upload_enable=NOascii_download_enable=NOchmod_enable=YESchroot_local_user=YESdual_log_enable=YESlocal_enable=NOlog_ftp_protocol=YES listen=YESpasv_enable=YESport_enable=NOreverse_lookup_enable=NOuse_localtime=YESpam_service_name=vsftpdtcp_wrappers=YESguest_enable=YESguest_username=ftpuser_config_dir=/etc/vsftpd/users/virtual_use_local_privs=YES 2. 產生使用者帳號檔案建立檔案 /etc/vsftpd/logins.txt, 格式如下 username1password1psername2password2 奇數行為使用者名稱,偶數行為對應的密碼 安裝一個軟體包,用於將上述檔案轉成資料庫資訊 yum install db4* 產生帳號資料庫 db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/logins.db 這將組建檔案/etc/vsftpd/logins.db 3. 編輯檔案 /etc/pam.d/vsftpd, 刪除其它內容 輸入以下內容 auth required pam_userdb.so db=/etc/vsftpd/logins account required pam_userdb.so db=/etc/vsftpd/logins 注意指定的db檔案不能帶尾碼名 4. 建立每個使用者的設定檔 編輯檔案/etc/vsftpd/users/username1, 輸入以下內容 local_root=/data/wwwroot/ anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 提示:請確保/data/wwwroot/目錄的所有者為ftp帳號 因為我們開啟了iptables防火牆,需要開放相應連接埠 21 5000-5100 , 增加iptables規則為 iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 5000:5100 -j ACCEPT 提示:為了保證安全,請確保只有授權IP可訪問ftp伺服器 添加新帳號的步驟是: A. 編輯檔案/etc/vsftpd/logins.txt, 加入帳號密碼B. 更新資料庫檔案 db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/logins.dbC.為使用者建立設定檔,檔案名稱與使用者名稱一致 /etc/vsftpd/users/username, 內容大致如下: local_root=/data/wwwroot/ anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES