vsftpd安裝與配置
展開
簡介
vsftpd(very secure FTP daemon)是 UNIX 操作系統中的一個開源的、免費的 FTP 服務軟件。它具有以下特點:
安全性高,輕小易用
支持系統用戶、匿名用戶和虛擬用戶的權限驗證和相關操作,但無論哪種用戶,最終都會映射為一個對應的 系統用戶
用戶認證是基於 PAM 實現的
安裝
yum 安裝 vsftpd,並開啟程序
# 安裝
[root@instance-36dg06w0 ~]# yum install vsftpd
# 開啟
[root@instance-36dg06w0 ~]# systemctl start vsftpd
配置詳解
vsftpd 的配置文件在為 vsftpd.conf,一般在 /etc/vsftpd/ 目錄下。
屬性 屬性值 含義 anonymous_enable YES/NO 是否允許匿名用戶(anonymous)登錄 FTP,如果該設置被注釋,則默認允許 local_enable YES/NO 是否允許本地系統用戶登錄 write_enable YES/NO 是否開啟任何形式的 FTP 寫入命令,上傳文件 local_umask xxx 本地用戶的 umask 設置,如果注釋該設置則默認為 077,但一般都設置成 022 anon_upload_enable YES/NO 是否允許匿名用戶上傳文件,如果要設置為允許,則需要先開啟 write_enable,否則無效,此外對應目錄還要具有寫權限 anon_mkdir_write_enable YES/NO 是否允許匿名用戶創建新目錄 dirmessage_enable YES/NO 當進入某個目錄時,發送信息提示給遠程用戶 xferlog_enable YES/NO 是否開啟 上傳/下載 的日志記錄 connect_from_port_20 YES/NO 是否使用 20 端口來連接 FTP chown_uploads YES/NO 匿名上傳的文件是否由某一指定用戶 chown_username 所有 chown_username 有效用戶名 匿名上傳的文件由該設定用戶所有 xferlog_file 有效路徑 設置日志文件的保存位置,默認為 /var/log/xferlog xferlog_std_format YES/NO 是否使用標准的 ftpd xferlog日志格式,該格式日志默認保存在 /var/log/xferlog idle_session_timeout 數值 設置空閑連接的超時時間,單位 秒 data_connection_timeout 數值 設置等待數據傳輸的最大時間,單位 秒(data_connection_timeout 與 idle_session_timeout 在同一時間只有一個有效) nopriv_user 有效用戶名 指定一個非特權用戶,用於運行 vsftpd async_abor_enable YES/NO 是否支持異步 ABOR 請求 ascii_upload_enable YES/NO 是否開啟 ASCII 模式進行文件上傳,一般不開啟 ascii_download_enable YES/NO 是否開啟 ASCII 模式進行文件下載,一般不開啟 ftpd_banner … 自定義登錄標語 deny_email_enable YES/NO 如果匿名登錄,則會要求輸入 email 地址,如果不希望一些 email 地址具有登錄權限,則可以開啟此項,並在 banned_email_file 指定的文件中寫入對應的 email 地址 banned_email_file 有效文件 當開啟 deny_email_enable 時,需要通過此項指定一個保存登錄無效 email 的文件 chroot_local_user YES/NO 是否將所有用戶限制在主目錄,當為 NO 時, FTP 用戶可以切換到其他目錄 chroot_list_enable YES/NO 是否啟用限制用戶的名單列表 chroot_list_file 有效文件 用戶列表,其作用與 chroot_local_user 和 chroot_local_user 的組合有關,詳見下表 allow_writeable_chroot YES/NO 是否允許用戶對 ftp 根目錄具有寫權限,如果設置成不允許而目錄實際上卻具備寫權限,則會報錯 ls_recurse_enable YES/NO 是否允許 ls -R 指令來遞歸查詢,遞歸查詢比較耗資源 listen YES/NO 如果為 YES,vsftpd 將以獨立模式運行並監聽 IPv4 的套接字,處理相關連接請求(該指令不能與 listen_ipv6 一起使用) listen_ipv6 YES/NO 是否允許監聽 IPv6 套接字 pam_service_name … 設置 PAM 外掛模塊提供的認證服務所使用的配置文件名 ,即 /etc/pam.d/vsftpd 文件,此文件中 file=/etc/vsftpd/ftpusers 字段,說明了 PAM 模塊能抵擋的帳號內容來自文件 /etc/vsftpd/ftpusers 中 userlist_enable YES/NO 是否啟用 user_list 文件來控制用戶登錄 userlist_deny YES/NO 是否拒絕 user_list 中的用戶登錄,此屬性設置需在 userlist_enable = YES 時才有效 tcp_wrappers YES/NO 是否使用 tcp_wrappers 作為主機訪問控制方式 max_clients 數值 同一時間允許的最大連接數 max_per_ip 數值 同一個IP客戶端連接的最大值 local_root 有效目錄 系統用戶登錄后的根目錄 anon_root 有效目錄 匿名用戶登錄后的根目錄 user_config_dir 有效目錄 用戶單獨配置文件存放目錄,該目錄下用戶的文件名就是對應用戶名 chroot_local_user 和 chroot_local_user 組合功能如下: chroot_local_user=YES chroot_local_user=NO chroot_list_enable=YES 1.所有用戶都被限制在其主目錄下
2.使用 chroot_list_file 指定的用戶列表 /etc/vsftpd/chroot_list,這些用戶作為“例外”,不受限制 1.所有用戶都不被限制其主目錄下
2.使用 chroot_list_file 指定的用戶列表 /etc/vsftpd/chroot_list,這些用戶作為“例外”,受到限制
chroot_list_enable=NO 1.所有用戶都被限制在其主目錄下
2.不使用 chroot_list_file 指定的用戶列表 /etc/vsftpd/chroot_list,沒有任何“例外”用戶 1.所有用戶都不被限制其主目錄下
2.不使用 chroot_list_file 指定的用戶列表 /etc/vsftpd/chroot_list,沒有任何“例外”用戶
為每個系統用戶配置各自的 ftp 根目錄
在 /etc/vsftpd/vsftpd.conf 文件末尾添加如下指令:
# 系統用戶登錄后的根目錄
local_root=/var/test/
# 匿名用戶登錄后的根目錄
anon_root=/var/test/
# 設置用戶獨立配置文件保存目錄
user_config_dir=/etc/vsftpd/userconfig/
1
2
3
4
5
6
此外,還要將 chroot_local_user 設置為 YES,使 FTP 用戶登錄后直接被鎖定在自己的根目錄上。
通過以上設定,系統用戶和匿名用戶都會將 /var/test/ 當做根目錄,並且登錄后直接被鎖定在該目錄。
但是以上的設置是針對所有系統用戶和匿名用戶的,如果想要給每個 FTP 用戶指定根目錄,我們可以給每個用戶創建一個對應的配置文件。具體操作如下:
根據 user_config_dir 的設置,我們先在 /etc/vsftpd/ 目錄下創建一個名為 userconfig 的目錄
假設想要給用戶 aaa 單獨指定一個 FTP 根目錄 /var/test/1,我們需要進入 userconfig 目錄,在該目錄下創建一個名為 aaa 的配置文件,編輯文件 aaa,配置內容如下:
local_root=/var/test1/
————————————————
原文鏈接:https://blog.csdn.net/fang_a_kai/article/details/91045617