FTP服务器vsftpd配置详解
vsftpd的配置文件
| /etc/vsftpd/vsftpd.conf | 主配置文件 |
| /usr/sbin/vsftpd | Vsftpd的主程序 |
| /etc/pam.d/vsftpd | PAM認證文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止訪問的用戶來自/etc/vsftpd/ftpusers文件中的用戶) |
| /etc/vsftpd/ftpusers | 禁止使用vsftpd的用戶列表文件。記錄不允許訪問FTP服務器的用戶名單,管理員可以把一些對系統安全有威脅的用戶賬號記錄在此文件中,以免用戶從FTP登錄后獲得大于上傳下載操作的權利,而對系統造成損壞。(注意:linux-4中此文件在/etc/目錄下) |
| /etc/vsftpd/user_list | 禁止或允許使用vsftpd的用戶列表文件。這個文件中指定的用戶缺省情況(即在/etc/vsftpd/vsftpd.conf中設置userlist_deny=YES)下也不能訪問FTP服務器,在設置了userlist_deny=NO時,僅允許user_list中指定的用戶訪問FTP服務器。(注意:linux-4中此文件在/etc/目錄下) |
| /var/ftp | 匿名用戶主目錄;本地用戶主目錄為:/home/用戶主目錄,即登錄后進入自己家目錄 |
| /var/ftp/pub | 匿名用戶的下載目錄,此目錄需賦權根chmod 1777 pub(1為特殊權限,使上載后無法刪除) |
| /etc/logrotate.d/vsftpd.log | Vsftpd的日志文件 |
vsftpd的主配置文件/etc/vsftpd/vsftpd.conf說明
# 是否允許匿名登錄FTP服務器,默認設置為YES允許 # 用戶可使用用戶名ftp或anonymous進行ftp登錄,口令為用戶的E-mail地址。 # 如不允許匿名訪問則設置為NO anonymous_enable=YES # 是否允許本地用戶(即linux系統中的用戶帳號)登錄FTP服務器,默認設置為YES允許 # 本地用戶登錄后會進入用戶主目錄,而匿名用戶登錄后進入匿名用戶的下載目錄/var/ftp/pub # 若只允許匿名用戶訪問,前面加上#注釋掉即可阻止本地用戶訪問FTP服務器 local_enable=YES # 是否允許本地用戶對FTP服務器文件具有寫權限,默認設置為YES允許 write_enable=YES # 掩碼,本地用戶默認掩碼為077 # 你可以設置本地用戶的文件掩碼為缺省022,也可根據個人喜好將其設置為其他值 #local_umask=022 # 是否允許匿名用戶上傳文件,須將全局的write_enable=YES。默認為YES #anon_upload_enable=YES # 是否允許匿名用戶創建新文件夾 #anon_mkdir_write_enable=YES # 是否激活目錄歡迎信息功能 # 當用戶用CMD模式首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息 # 默認情況下,歡迎信息是通過該目錄下的.message文件獲得的 # 此文件保存自定義的歡迎信息,由用戶自己建立 #dirmessage_enable=YES # 是否讓系統自動維護上傳和下載的日志文件 # 默認情況該日志文件為/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定 # 默認值為NO xferlog_enable=YES # Make sure PORT transfer connections originate from port 20 (ftp-data). # 是否設定FTP服務器將啟用FTP數據端口的連接請求 # ftp-data數據傳輸,21為連接控制端口 connect_from_port_20=YES # 設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用 # 注意,不推薦使用root用戶上傳文件 #chown_uploads=YES # 設置想要改變的上傳文件的屬主,如果需要,則輸入一個系統用戶名 # 可以把上傳的文件都改成root屬主。whoever:任何人 #chown_username=whoever # 設定系統維護記錄FTP服務器上傳和下載情況的日志文件 # /var/log/vsftpd.log是默認的,也可以另設其它 #xferlog_file=/var/log/vsftpd.log # 是否以標準xferlog的格式書寫傳輸日志文件 # 默認為/var/log/xferlog,也可以通過xferlog_file選項對其進行設定 # 默認值為NO #xferlog_std_format=YES # 以下是附加配置,添加相應的選項將啟用相應的設置 # 是否生成兩個相似的日志文件 # 默認在/var/log/xferlog和/var/log/vsftpd.log目錄下 # 前者是wu_ftpd類型的傳輸日志,可以利用標準日志工具對其進行分析;后者是vsftpd類型的日志 #dual_log_enable # 是否將原本輸出到/var/log/vsftpd.log中的日志,輸出到系統日志 #syslog_enable # 設置數據傳輸中斷間隔時間,此語句表示空閑的用戶會話中斷時間為600秒 # 即當數據傳輸結束后,用戶連接FTP服務器的時間不應超過600秒。可以根據實際情況對該值進行修改 #idle_session_timeout=600 # 設置數據連接超時時間,該語句表示數據連接超時時間為120秒,可根據實際情況對其個修改 #data_connection_timeout=120 # 運行vsftpd需要的非特權系統用戶,缺省是nobody #nopriv_user=ftpsecure # 是否識別異步ABOR請求。 # 如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啟用 # 而一般此設定并不安全,所以通常將其取消 #async_abor_enable=YES # 是否以ASCII方式傳輸數據。默認情況下,服務器會忽略ASCII方式的請求。 # 啟用此選項將允許服務器以ASCII方式傳輸數據 # 不過,這樣可能會導致由"SIZE /big/file"方式引起的DoS攻擊 #ascii_upload_enable=YES #ascii_download_enable=YES # 登錄FTP服務器時顯示的歡迎信息 # 如有需要,可在更改目錄歡迎信息的目錄下創建名為.message的文件,并寫入歡迎信息保存后 #ftpd_banner=Welcome to blah FTP service. # 黑名單設置。如果很討厭某些email address,就可以使用此設定來取消他的登錄權限 # 可以將某些特殊的email address抵擋住。 #deny_email_enable=YES # 當上面的deny_email_enable=YES時,可以利用這個設定項來規定哪些郵件地址不可登錄vsftpd服務器 # 此文件需用戶自己創建,一行一個email address即可 #banned_email_file=/etc/vsftpd/banned_emails # 用戶登錄FTP服務器后是否具有訪問自己目錄以外的其他文件的權限 # 設置為YES時,用戶被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list文件 # 必須與下面的設置項配合 #chroot_list_enable=YES # 被列入此文件的用戶,在登錄后將不能切換到自己目錄以外的其他目錄 # 從而有利于FTP服務器的安全管理和隱私保護。此文件需自己建立 #chroot_list_file=/etc/vsftpd/chroot_list # 是否允許遞歸查詢。默認為關閉,以防止遠程用戶造成過量的I/O #ls_recurse_enable=YES # 是否允許監聽。 # 如果設置為YES,則vsftpd將以獨立模式運行,由vsftpd自己監聽和處理IPv4端口的連接請求 listen=YES # 設定是否支持IPV6。如要同時監聽IPv4和IPv6端口, # 則必須運行兩套vsftpd,采用兩套配置文件 # 同時確保其中有一個監聽選項是被注釋掉的 #listen_ipv6=YES # 設置PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd文件 # 此文件中file=/etc/vsftpd/ftpusers字段,說明了PAM模塊能抵擋的帳號內容來自文件/etc/vsftpd/ftpusers中 #pam_service_name=vsftpd # 是否允許ftpusers文件中的用戶登錄FTP服務器,默認為NO # 若此項設為YES,則user_list文件中的用戶允許登錄FTP服務器 # 而如果同時設置了userlist_deny=YES,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有 #userlist_enable=YES/NO # 設置是否阻扯user_list文件中的用戶登錄FTP服務器,默認為YES #userlist_deny=YES/NO # 是否使用tcp_wrappers作為主機訪問控制方式。 # tcp_wrappers可以實現linux系統中網絡服務的基于主機地址的訪問控制 # 在/etc目錄中的hosts.allow和hosts.deny兩個文件用于設置tcp_wrappers的訪問控制 # 前者設置允許訪問記錄,后者設置拒絕訪問記錄。 # 如想限制某些主機對FTP服務器192.168.57.2的匿名訪問,編緝/etc/hosts.allow文件,如在下面增加兩行命令: # vsftpd:192.168.57.1:DENY 和vsftpd:192.168.57.9:DENY # 表明限制IP為192.168.57.1/192.168.57.9主機訪問IP為192.168.57.2的FTP服務器 # 此時FTP服務器雖可以PING通,但無法連接 tcp_wrappers=YES指定用戶的權限設置
vsftpd.user_list文件需要與vsftpd.conf文件中的配置項結合來實現對于vsftpd.user_list文件中指定用戶賬號的訪問控制:
(1)設置禁止登錄的用戶賬號
當vsftpd.conf配置文件中包括以下設置時,vsftpd.user_list文件中的用戶賬號被禁止進行FTP登錄:
userlist_enable=YES
userlist_deny=YES
userlist_enable設置項設置使用vsftpd.user_list文件,userlist_deny設置為YES表示vsftpd.user_list文件用于設置禁止的用戶賬號。
(2)設置只允許登錄的用戶賬號
當vsftpd.conf配置文件中包括以下設置時,只有vsftpd.user_list文件中的用戶賬號能夠進行FTP登錄:
userlist_enable=YES
userlist_deny=NO
userlist_enable設置項設置使用vsftpd.user_list文件,userlist _deny設置為NO表示vsftpd.usre_list文件用于設置只允許登錄的用戶賬號,文件中未包括的用戶賬號被禁止FTP登錄。
userlist_deny和userlist_enable選項限制用戶登錄FTP服務器(使用userlist_deny選項和user_list文件一起能有效阻止root,apache,www等系統用戶登錄FTP服務器,從而保證FTP服務器的分級安全性)。以下是兩個選項的具體表現形式和兩種搭配使用方式的效果:
| Userlist_enable=YES | Ftpusers中用戶允許訪問,User_list中用戶允許訪問 |
| Userlist_enable=NO | Ftpusers中用戶禁止訪問,User_list中用戶允許訪問 |
| Userlist_deny=YES | Ftpusers中用戶禁止訪問(登錄時可以看到密碼輸入提示,但仍無法訪問),user_list 中用戶禁止訪問 |
| Userlist_deny=NO | ftpusers中用戶禁止訪問,user_list中用戶允許訪問, |
| Userlist_enable=YES并且Userlist_deny=YES | Ftpusers中用戶禁止訪問,User_list中用戶禁止訪問(登錄時不會出現密碼提示,直接被服務器拒絕) |
| Userlist_enable=YES并且Userlist_deny=NO | Ftpusers中用戶禁止訪問,User_list中用戶允許訪問 |
總結
以上是生活随笔為你收集整理的FTP服务器vsftpd配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础课【2】
- 下一篇: 如何打开大型文本文件