vsftpd 配置用戶及根目錄及其參數詳解

vsftpd 經常使用功能參數配置及參數詳解

1 配置超級服務

vi /etc/xinetd.d/vsftpd
service ftp
{
    disable           = no
    socket_type       = stream
    wait              = no
    user              = root server            = /usr/sbin/vsftpd
    server_args       = /etc/vsftpd/vsftpd.conf
# 上面這個 server 的設定請依照您的主機環境來設定!
# 至於 server_args 則請寫入您的 vsftpd 的配置文件完整名稱便可!
    per_source        = 5     <==與同一 IP 的聯機數目有關
    instances         = 200   <==同一時間最多的聯機數目
    no_access         = 192.168.1.3
    banner_fail       = /etc/vsftpd/vsftpd.busy_banner
# 上面這個文件就是當主機忙碌中,則在 Client 端顯示的內容!
    log_on_success    += PID HOST DURATION
    log_on_failure    += HOST
}

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
listen=NO

2 配置匿名用戶

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
Table 1: 匿名用戶配置
參數 說明
anonymous_enable=YES 是否容許匿名登陸 yes=容許 no= 不容許
ftp_username=ftp 設置ftp匿名登陸時的用戶名,默認 ftp
no_anon_password=YES 匿名用戶登陸不須要輸入密碼 默認 YES
deny_email_enable=YES 以banned_email_file裏面的電子郵件爲密碼的匿名用戶不能登陸
anon_root 匿名用戶登陸後的默認目錄,不設置,默認爲/var/ftp
anon_upload_enable=YES 容許匿名登陸用戶上傳文件 默認NO
anon_mkdir_write_enable=YES 容許匿名登陸用戶建立目錄 默認NO
anon_other_write_enable=NO 容許匿名用戶有較高的寫權限包括 刪除目錄和重命名等 默認NO
anon_world_readable_only=YES 容許匿名用戶下載可讀文件 默認YES , 設置爲yes時只能下載不能直接在Ftp中閱讀。
chown_uploads=YES 設置是否改變匿名用戶上傳文件(非目錄)的屬主。默認值爲NO。

3 配置本地用戶登陸

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#下面是容許某些用戶登入的項目  存在user_list文件中的用戶不容許登入
userlist_enable=YES
userlist_deny=YES #若是這裏改成NO  反過來只能存在user_list文件中的用戶容許登入
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO

#下面是限制用戶只能訪問本身的主目錄  存在chroot_list文件中的用戶只能訪問本身的主目錄
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

4 配置虛擬用戶登陸

#建立虛擬用戶的專用目錄
[root@localhost ~]# mkdir /home/vsftpd/admin


[root@localhost ~]# vi /etc/vsftpd/loginuser.txt
#加入兩個用戶  奇數行表明用戶名 偶數行表明密碼
admin
admin123

#執行命令 生成虛擬數據庫
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
#設置數據庫文件的訪問權限
[root@localhost ~]# chmod 600 /etc/vsftpd/login.db
[root@localhost ~]# vi /etc/pam.d/vsftpd
#將如下內容增長的原文件前面兩行:
auth    required        pam_userdb.so db=/etc/vsftpd/login
account required        pam_userdb.so db=/etc/vsftpd/login
auth    sufficient      pam_userdb.so db=/etc/vsftpd/login
account sufficient      pam_userdb.so db=/etc/vsftpd/login
#咱們創建的虛擬用戶將採用PAM進行驗證,這是經過/etc/vsftpd.conf文件中的 語句pam_service_name=vsftpd 來啓用的。

#auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
#auth       required     pam_stack.so service=system-auth
#auth       required     pam_shells.so
#account    required     pam_stack.so service=system-auth
#session    required     pam_stack.so service=system-auth

能夠看出前面兩行是對虛擬用戶的驗證,後面是對系統用戶的驗證。 爲了安全我通常把系統用戶的登入關閉  使用虛擬帳號登入ftp
對虛擬用戶的驗證使用了sufficient這個控制標誌。
這個標誌的含義是若是這個模塊驗證經過,就沒必要使用後面的層疊模塊進行驗證了;但若是失敗了,
就繼續後面的認證,也就是使用系統真實用戶的驗證。
虛擬用戶建立本地系統用戶

#新建一個系統用戶vsftpd, 用戶登陸終端設爲/bin/false(即便之不能登陸系統)
[root@localhost ~]# useradd vsftpd -d /home/vsftpd -s /bin/false
[root@localhost ~]# chown vsftpd:vsftpd /home/vsftpd #改變目錄所屬用戶組

根據須要建立/etc/vsftpd/vsftpd.conf,如下設置:
listen=YES                             #監聽爲專用模式
anonymous_enable=NO                    #禁用匿名登入
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log       #記錄ftp操做日誌
xferlog_std_format=YES
chroot_local_user=YES                  #對用戶訪問只限制在主目錄 不能訪問其餘目錄
guest_enable=YES                       #啓用guest
guest_username=vsftpd                  #使用虛擬帳號形式
user_config_dir=/etc/vsftpd/user_conf  #虛擬帳號配置目錄
pam_service_name=vsftpd                #對vsftpd的用戶使用pam認證
local_enable=YES

#執行如下命令
[root@localhost ~]# mkdir /etc/vsftpd/user_conf
[root@localhost ~]# cd /etc/vsftpd/user_conf
[root@localhost ~]# vi /etc/vsftpd/user_conf/admin
#加入如下內容 擁有全部權限
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/admin

#若是不能讀寫操做 多是目錄權限不夠須要設置權限 試試看
[root@localhost ~]# chmod 777 /home/vsftpd/admin

5 使用SSL登入

[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
[root@localhost ~]#vi /usr/local/etc/vsftpd.conf
ssl_enable=YES(開啓vsftpd對ssl協議的支持)
ssl_sslv2=YES(支持SSL v2 protocol)
ssl_sslv3=YES(支持SSL v3 protocol)
ssl_tlsv1=YES(支持TSL v1)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(證書的路徑)

ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES

這樣重啓vsftpd 就能夠用客戶端來嘗試進行SSL加密鏈接了 。css

相關參數說明:html

Table 2: ssl 加密協議配置
參數 說明
allow_anon_ssl=NO 是否容許SSL鏈接,啓用SSL後纔可使用此參數,默認NO
ssl_enable=NO 是否啓用ssl 安全鏈接 默認NO 若是設置爲yes,vsftpd。
  將啓用openSSL,經過SSL支持安全鏈接和數據傳輸
force_local_logins_ssl=YES 是否對非匿名用戶登陸加密 默認yes
force_local_data_ssl=YES 是否對非匿名用戶傳輸加密 默認yes
force_anon_logins_ssl=NO 匿名用戶登陸時是否加密 默認爲no
force_anon_data_ssl=NO 匿名用戶數據傳輸時是否加密 默認爲no
ssl_sslv2=NO 是否開戶sslv2協議。 默認NO ,若是設置爲yes,
  前提爲ssl_enable=YES
ssl_sslv3=NO 是否開戶sslv3協議。 默認NO ,若是設置爲yes,
  前提爲ssl_enable=YES
dsa_cert_file 爲ssl加密鏈接指定dsa證書位置 默認 無
ssl_ciphers 是否指定加密方式 默認 DES-CBC3-SHA

6 日誌文件


參數 說明
dual_log_enable=NO # 是否啓用雙日誌,默認NO 若是設置爲yes,則分別在/var/log/xferlog、
  var/log/vsftpd.log裏記錄日誌。前一個爲wu-ftpd格式,可被通用工具
  分析,後一個爲vsftpd的專用格式
xferlog_enable=YES # 激活上傳和下傳的日誌 依賴 參數xferlog_std_format的設置
xferlog_std_format=YES # 使用標準格式記錄上傳、下傳日誌
syslog_enable=NO # 是否關閉vsftpd的日誌並記錄系統日誌 默認NO ,若是設置爲YES,系
  統日誌會記錄到/var/log/vsftpd.log,而VSFTPD的日誌進程將中止。

7 傳輸模式


參數 說明
ascii_download_enable=YES 是否啓用ascii模式下載文件 默認 NO
ascii_upload_enable=YES 是否啓用ascii模式上傳文件 默認 NO
async_abor_enable=NO 是否啓用強制停止傳輸文件 默認 NO 啓用此參數是爲了
  免停止傳輸時的客戶端掛死。只有特殊狀況下才使用。
background=NO 是否後臺啓動vsftpd監聽 默認 NO 啓用後,VSFTPD將
  監聽進程置於後臺,當訪問vsftpd服務時,console 會返
  回到shell 模式
check_shell=YES 檢測是否有可用的shell環境 默認 YES
userlist_enable=YES 啓用user_list 文件的檢查 默認 NO 爲YES時檢查
  user_list文件中的用戶列表,爲NO 時不檢測該文件
userlist_deny=NO 只有在userlist_enable 啓用時有效,默認YES .
  YES: 表示user_list文件中的用戶不容許登陸ftp
  NO: 表示只容許user_list文件中的用戶登陸FTP

8 傳輸速率設置


參數 說明 默認值
anon_max_rate 匿名用戶容許的最大傳輸速率 0秒
local_max_rate 本地認證用戶的最大傳輸速率 0秒

9 超時設置


參數 說明 默認值
accept_timeout 嘗試鏈接時間 60s
data_connection_timeout 數據傳輸延遲的最大時間,超過限制,會話將被終止 300s
idle_session_timeout 鏈接創建後,兩次ftp命令之間的時間間隔,超時會話將被終止 300s

10 用戶建立的文件的權限


參數 說明 默認值
anon_umask 匿名用戶建立的文件的默認權限 022
local_umas 本地用戶建立的文件的默認權限 022

11 鏈接數設置


參數 說明 默認值
max_clients 容許的最大鏈接數 0
max_per_ip 單個IP容許的最大鏈接數 0

12 端口設置


參數 說明 默認值
listen_port=21 FTP服務器創建鏈接所偵聽的端口 21
ftp_data_port 數據傳輸所使用的默認端口 20
connect_from_port_20=YES 指定FTP數據傳輸鏈接使用20端口,設置爲NO時,則進 NO
  行數據鏈接時,所使用的端口由ftp_data_port指定  
pasv_max_port=0 passive 模式下數據傳輸使用的端口上限 0
pasv_mim_port=0 passive 模式下數據傳輸使用的端口下限 0

13 用戶訪問權限

參數 說明
chroot_list_enable=YES 是否改變用戶的根目錄, 默認 NO。 當設置爲YES時,須要以root
  用戶作以下操做:
  mkdir /etc/vsftpd/userconf;
  cat >>$username<<eof
  local_root=$path
  EOF
  說明 "$username" 是須要改變默認根目錄的用戶好比用戶aaa
  ,$path 爲你想要用戶aaa默認訪問的路徑 ,好比/data/aaa
chroot_list_enable=YES 設置是否啓用chroot_list_file配置項指定的用戶列表文件。
  默認值爲NO
chroot_list_file=/etc/vsftpd/chroot_list 用於指定存儲用戶列表文件,該文件用於控制哪些用戶只能夠
  訪問本身的根目錄,不能夠訪問根路徑的上級路徑目錄
chroot_local_user=YES 用於指定用戶列表文件中的用戶是否容許切換到上級目錄。默認值爲NO。
  經過搭配能實現如下多種效果。見表格下方。

①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd/chroot_list文件中列出的用戶,能夠切換到根路徑的上級路徑;未在文件中列出的用戶,則不能切換。java

②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd/chroot_list文件中列出的用戶,不能切換到根路徑的上級路徑;未在文件中列出的用戶,則能夠切換。node

③當chroot_list_enable=NO,chroot_local_user=YES時,全部的用戶均不能切換到用戶根路徑的上級路徑python

④當chroot_list_enable=NO,chroot_local_user=NO時,全部的用戶都可以切換到用戶根路徑的上級路徑sql

Author: halberd.leeshell

Created: 2019-10-24 Thu 19:34數據庫

Validatesass

相關文章
相關標籤/搜索