vsftpd服務常見配置

目錄
  • 1、更改命令埠
  • 2、主動模式埠
  • 3、被動模式埠範圍
  • 4、使用當地時間
  • 5、匿名使用者登入
  • 6、匿名使用者上傳
  • 7、指定匿名使用者的上傳檔案的預設的所有者和許可權
  • 8、Linux系統使用者
  • 9、將系統使用者對映為指定的guest使用者
  • 10、禁錮所有系統在家目錄中
  • 11、禁錮或不禁錮特定的系統使用者在家目錄中,與上面設定功能相反
  • 12、日誌
  • 13、登入提示資訊
  • 14、目錄訪問提示資訊
  • 15、PAM模組實現使用者訪問控制
  • 16、是否啟用控制使用者登入的列表檔案
  • 17、vsftpd服務指定使用者身份執行
  • 18、連線數限制
  • 19、傳輸速率,單位:位元組/秒
  • 20、連線時間:秒為單位
  • 21、優先以文字方式傳輸

1、更改命令埠

更改配置檔案

listen_port=2121 預設值為21

客戶端連線

$ lftp 10.4.7.1 -p 2121
$ ftp 10.4.7.1 2121

2、主動模式埠

connect_from_port_20=YES # 主動模式埠為20
ftp_data_port=20 # (預設)指定主動模式的埠

3、被動模式埠範圍

linux ftp # 客戶端預設使用被動模式
windows ftp # 客戶端預設使用主動模式
pasv_min_port=6000 # 0為隨機分配,埠範圍會影響客戶端的併發數
pasv_max_port=6010

4、使用當地時間

use_localtime=YES # 使用當地時間(預設為NO,使用GMT)

5、匿名使用者登入

anonymous_enable=YES # 支援匿名使用者,CentOS8 預設不允許匿名
no_anon_password=YES # 匿名使用者略過口令檢查 , 預設NO

6、匿名使用者上傳

anon_upload_enable=YES # 匿名上傳,注意:檔案系統許可權
anon_mkdir_write_enable=YES # 匿名建目錄

注意:還需要開啟檔案系統訪問的許可權,不能給FTP根目錄寫許可權,只能級子目錄寫許可權,否則報如下錯誤:

$ ftp 10.4.7.1
Connected to 10.4.7.1 (10.4.7.1).
220 (vsFTPd 3.0.3)
Name (10.4.7.1:root): ftp
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection

anon_world_readable_only # 只能下載全部讀的檔案, 預設YES
anon_umask=0333 # 指定匿名上傳檔案的umask,預設077,注意:0333中的0不能省略
anon_other_write_enable=YES # 可刪除和修改上傳的檔案, ,預設NO

7、指定匿名使用者的上傳檔案的預設的所有者和許可權

chown_uploads=YES # 預設NO
chown_username=lzj # 使用者事先建立
chown_upload_mode=0644

8、Linux系統使用者

local_enable=YES # 是否允許linux使用者登入
write_enable=YES # 允許linux使用者上傳檔案
local_umask=022 # 指定系統使用者上傳檔案的預設許可權

9、將系統使用者對映為指定的guest使用者

guest_enable=YES # 所有系統使用者都對映成guest使用者
guest_username=ftp # 配合上面選項才生效,指定guest使用者
local_root=/ftproot # guest使用者登入所在目錄

10、禁錮所有系統在家目錄中

chroot_local_user=YES # 禁錮系統使用者,預設NO,即不禁錮

11、禁錮或不禁錮特定的系統使用者在家目錄中,與上面設定功能相反

chroot_list_enable=YES # 預設是NO
chroot_list_file=/etc/vsftpd/chroot_list # 預設值

  • chroot_local_user=YESchroot_list_enable=YES時,則chroot_list中使用者不禁錮,即白名單
  • chroot_local_user=NOchroot_list_enable=YES時,則chroot_list中使用者禁錮,即黑名單

12、日誌

wu-ftp 日誌:預設啟用
xferlog_enable=YES # 啟用記錄上傳下載日誌,此為預設值
xferlog_std_format=YES # 使用wu-ftp日誌格式,此為預設值
xferlog_file=/var/log/xferlog # 可自動生成, 此為預設值
vsftpd日誌:預設不啟用
dual_log_enable=YES # 使用vsftpd日誌格式,預設不啟用
vsftpd_log_file=/var/log/vsftpd.log # 可自動生成, 此為預設值

13、登入提示資訊

ftpd_banner="welcome to mage ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt

14、目錄訪問提示資訊

dirmessage_enable=YES # 此為預設值
message_file=.message # 資訊存放在指定目錄下.message ,此為預設值

15、PAM模組實現使用者訪問控制

pam_service_name=vsftpd
# pam配置檔案:/etc/pam.d/vsftpd
# /etc/vsftpd/ftpusers 預設檔案中使用者拒絕登入,預設是黑名單,但也可以是白名單

示例:

$ ldd /usr/sbin/vsftpd |grep pam
libpam.so.0 => /lib64/libpam.so.0 (0x00007fb286c34000)
# 修改PAM配置,使ftpusers成為白名單
$ vim /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
# 將sense=deny 修改為 sense=allow
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth

16、是否啟用控制使用者登入的列表檔案

userlist_enable=YES # 此為預設值
userlist_deny=YES # (預設值) 黑名單,不提示口令,NO為白名單
userlist_file=/etc/vsftpd/users_list # 此為預設值

17、vsftpd服務指定使用者身份執行

nopriv_user=nobody # 此為預設值

示例:

$ pstree -p |grep vsftpd
`-vsftpd(82694)-+-vsftpd(83268)---vsftpd(83270)
`-vsftpd(83610)---vsftpd(83612)
$ ps auxf|grep vsftpd
root 84248 0.0 0.1 12108 1088 pts/1 S+ 15:04 0:00 | \_ grep --color=auto vsftpd
root 82694 0.0 0.0 26980 408 ? Ss 15:00 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
nobody 83268 0.0 0.5 61756 4104 ? Ss 15:01 0:00 \_ /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
wang 83270 0.0 0.4 74336 3800 ? S 15:02 0:00 | \_ /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
nobody 83610 0.0 0.3 37276 2616 ? Ss 15:03 0:00 \_ /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
ftp 83612 0.0 0.4 67868 3760 ? S 15:03 0:00 \_ /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

18、連線數限制

max_clients=0 # 最大併發連線數

如果超出連線,會報如下提示:

max_per_ip=0 # 每個IP同時發起的最大連線數

如果超出連線,會報如下提示:

19、傳輸速率,單位:位元組/秒

anon_max_rate=0 # 匿名使用者的最大傳輸速率
local_max_rate=0 # 本地使用者的最大傳輸速率

20、連線時間:秒為單位

connect_timeout=60 # 主動模式資料連線超時時長
accept_timeout=60 # 被動模式資料連線超時時長
data_connection_timeout=300 # 資料連線無資料輸超時時長
idle_session_timeout=60 # 無命令操作超時時長

21、優先以文字方式傳輸

ascii_upload_enable=YES
ascii_download_enable=YES

說明:不建議使用文字方式,因為可能導致二進位制檔案內容被破壞
連結:https://www.cnblogs.com/lvzhenjiang/p/14405780.html
(版權歸原作者所有,侵刪)


相關文章