vsftpd安裝與配置


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM