vsftpd配置文件詳解

vsftpd做爲一個主打安全的FTP服務器,有不少的選項設置。下面介紹了vsftpd的配置文件列表,而全部的配置都是基於vsftpd.conf這個配置文件的。本文將提供完整的vsftpd.conf的中文說明。學習本文的內容將有助於你初步瞭解vsftpd的配置文件,但針對具體狀況還須要制定具體的配置方法。php

vsftpd的配置文件linux

 

 

/etc/vsftpd/vsftpd.confshell

主配置文件apache

/usr/sbin/vsftpd安全

Vsftpd的主程序服務器

/etc/rc.d/init.d/vsftpd網絡

啓動腳本session

/etc/pam.d/vsftpdapp

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說明(修改前先備份)

和Linux系統中的大多數配置文件同樣,vsftpd的配置文件中以#開始註釋。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# 是否容許匿名登陸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.conf文件中添加更多的安全選項。其中幾個經常使用的以下:

限制最大鏈接數和傳輸速率

在FTP服務器的管理中,不管對本地用戶仍是匿名用戶,對於FTP服務器資源的使用都須要進行控控制,避免因爲負擔過大形成FTP服務器運行異常,能夠添加如下配置項對FTP客戶機使用FTP服務器資源進行控制:

max_client設置項 用於設置FTP服務器所容許的最大客戶端鏈接數,值爲0時表示不限制。例如max_client=100表示FTP服務器的全部客戶端最大鏈接數不超過100個。
max_per_ip設置項 用於設置對於同一IP地址容許的最大客戶端鏈接數,值爲0時表示不限制。例如max_per_ip=5表示同一IP地址的FTP客戶機與FTP服務器創建的最大鏈接數不超過5個。
local_max_rate設置項 用於設置本地用戶的最大傳輸速率,單位爲B/s,值爲0時表示不限制。例如local_max_rate=500000表示FTP服務器的本地用戶最大傳輸速率設置爲500KB/s.
anon_max_rate設置項 用於設置匿名用戶的最大傳輸速率,單位爲B/s,值爲0表示不限制。例如ano_max_rate=200000,表示FTP服務器的匿名用戶最大傳輸速率設置爲200KB/s.
指定用戶的權限設置

vsftpd.user_list文件須要與vsftpd.conf文件中的配置項結合來實現對於vsftpd.user_list文件中指定用戶帳號的訪問控制:

(1)設置禁止登陸的用戶帳號

當vsftpd.conf配置文件中包括如下設置時,vsftpd.user_list文件中的用戶帳號被禁止進行FTP登陸:

?
1
2
userlist_enable=YES
userlist_deny=YES

userlist_enable設置項設置使用vsftpd.user_list文件,userlist_deny設置爲YES表示vsftpd.user_list文件用於設置禁止的用戶帳號。

(2)設置只容許登陸的用戶帳號

當vsftpd.conf配置文件中包括如下設置時,只有vsftpd.user_list文件中的用戶帳號可以進行FTP登陸:

?
1
2
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服務器端口號是21,出於安全目的,有時需修改默認端口號,修改/etc/vsftpd/vsftpd.conf,添加語句(例):

listen_port=4449

語句指定了修改後FTP服務器的端口號,應儘可能大於4000。修改後訪問

#ftp 192.168.57.2 4449
注意這裏需加上正確的端口號了,不然不能正常鏈接。

設置用戶組

有關FTP用戶和用戶組的重要性,咱們在以前介紹vsftpd的時候便已經提到過。這裏主要是簡單的說明用戶組的技術實現,至於具體如何應用,仍是具體需求具體對待。

?
1
2
3
4
5
6
7
8
9
10
11
#mkdir -p /home/try 遞歸建立新目錄
#groupadd try    新建組
#useradd -g try -d /home/try try1 新建用戶try1並指定家目錄和屬組
#useradd -g try -d /home/try try2 新建用戶try2並指定家目錄和屬組
#useradd -g try -d /home/try try3 新建用戶try3並指定家目錄和屬組
#passwd try1 爲新用戶設密碼
#passwd try2 爲新用戶設密碼
#passwd try3 爲新用戶設密碼
#chown try1 /home/try 設置目錄屬主爲用戶try1
#chown .try /home/try 設置目錄屬組爲組try
#chmod 750 /home/try 設置目錄訪問權限try1爲讀,寫,執行;try2,try3爲讀,執行

因爲本地用戶登陸FTP服務器後進入本身主目錄,而try1,try2 try3對主目錄/home/try分配的權限不一樣,因此經過FTP訪問的權限也不一樣,try1訪問權限爲:上傳,下載,建目錄;try2,try3訪問權限爲下載,瀏覽,不能建目錄和上傳。實現了羣組中用戶不一樣訪問級別,增強了對FTP服務器的分級安全管理。

鏈接超時(本部份內容由李洋提供)

配置空閒的用戶會話的中斷時間:以下配置將在用戶會話空閒5分鐘後被中斷,以釋放服務器的資源

Idle_session_timeout=300
配置空閒的數據鏈接的中斷時間:以下配置將在數據空閒鏈接1分鐘後被中斷,一樣也是爲了釋放服務器的資源

Data_connection_timeout=60
配置客戶端空閒時的自動中斷和激活鏈接的時間:以下配置將使客戶端空閒1分鐘後自動中斷鏈接,並在30秒後自動激活鏈接

?
1
2
Accept_timeout=60
Connect_timeout=30

接下來,咱們將對vsftpd的日誌進行介紹。

常見的vsftpd日誌解決方案

在vsftpd.conf中有以下內容定義了日誌的記錄方式:

?
1
2
3
4
5
6
7
8
9
# 代表FTP服務器記錄上傳下載的狀況
xferlog_enable=YES
# 代表將記錄的上傳下載狀況寫在xferlog_file所指定的文件中,即xferlog_file選項指定的文件中
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 啓用雙份日誌。在用xferlog文件記錄服務器上傳下載狀況的同時,
# vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也將用來記錄服務器的傳輸狀況
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

vsftpd的兩個日誌文件分析以下:

/var/log/xferlog

記錄內容舉例

Tue Sep 11 14:59:03 2007 [pid 3460]    CONNECT: Client "127.0.0.1"
Tue Sep 11 14:59:24 2007 [pid 3459] [ftp] OK LOGIN;Client "127.0.0.1" ,anon password 」?"

/var/log/xferlog日誌文件中數據的分析和參數說明

 

 

記錄數據
 
參數名稱
 
參數說明
 
Thu Sep 6 09:07:48 2007
 
當前時間
 
當前服務器本地時間,格式爲: 
DDD MMM dd hh:mm:ss YYY
 
7
 
傳輸時間
 
傳送文件所用時間,單位爲秒
 
192.168.57.1
 
遠程主機名稱/IP
 
遠程主機名稱/IP
 
4323279
 
文件大小
 
傳送文件的大小,單位爲byte
 
/home/student/phpMyadmin-
2.11.0-all-languages.tar.gz
 
文件名
 
傳輸文件名,包括路徑
 
b
 
傳輸類型
 
傳輸方式的類型,包括兩種:
a以ASCII傳輸 b以二進制文件傳輸
 

 
特殊處理標誌
 
特殊處理的標誌位,可能的值包括:
_ 不作任何特殊處理
C 文件是壓縮格式
U 文件是非壓縮格式
T 文件是tar格式
 
i
 
傳輸方向
 
文件傳輸方向,包括兩種:
o 從FTP服務器向客戶端傳輸
i 從客戶端向FTP服務器傳輸
 
r
 
訪問模式
 
用戶訪問模式,包括:
a 匿名用戶
g 來賓用戶
r 真實用戶,即系統中的用戶
 
student
 
用戶名
 
用戶名稱
 
ftp
 
服務名
 
所使用的服務名稱,通常爲FTP
 
0
 
認證方式
 
認證方式,包括:
0 無
1 RFC931認證
 
*
 
認證用戶id
 
認證用戶的id,若是使用*,則表示沒法得到該id
 
c
 
完成狀態
 
傳輸的狀態:
c 表示傳輸已完成
i 表示傳輸示完成

 

最後,介紹常見的FTP命令,以及FTP數字代碼的意義。

常見FTP命令及其功能

 

FTP命令
 
功能
 
FTP命令
 
功能
 

ls

顯示服務器上的目錄
 
ls [remote-dir][local-file]
 
顯示遠程目錄remote-dir,並存入本地文件local-file
 

get remote-file [local-file]

從服務器下載指定文件到客戶端 
 
mget remote-files
 
下載多個遠程文件(mget命令容許用通配符下載多個文件)
 

put local-file [remote-file]

從客戶端上傳指定文件到服務器
 
mput local-file
 
將多個文件上傳至遠程主機(mput命令容許用通配符上傳多個文件)
 

open

鏈接FTP服務器
 
mdelete [remote-file]
 
刪除遠程主機文件
 

close

中斷與遠程服務器的ftp會話(與open對應)
 
mkdir dir-name
 
在遠程主機中建立目錄
 

open host[port]

創建指定的ftp服務器鏈接,可指定鏈接端口
 
newer file-name
 
若是遠程主機中file-name的修改時間比本地硬盤同名文件的時間更近,則重傳該文件
 

cd directory

改變服務器的工做目錄
 
rename [from][to]
 
更改遠程主機的文件名
 

lcd directory

在客戶端上(本地)改變工做目錄
 
pwd
 
顯示遠程主機的當前工做目錄
 

bye

退出FTP命令狀態
 
quit
 
同bye,退出ftp會話
 

ascii

設置文件傳輸方式爲ASCII模式
 
reget remote-file [local-file]
 
相似於get,但若local-file存在,則從上次傳輸中斷處續傳
 

binary

設置文件傳輸方式爲二進制模式
 
rhelp [cmd-name]
 
請求得到遠程主機的幫助
 

![cmd [args]]

在本地主機中交互shell後退回到ftp環境,如:!ls *.zip
 
rstatus [file-name]
 
若未指定文件名,則顯示遠程主機的狀態,不然顯示文件狀態
 

accout [password]

提供登陸遠程系統成功後訪問系統資源所需的密碼
 
hash
 
每傳輸1024字節,顯示一個hash符號(#)
 

append local-file [remote-file]

將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名
 
restart marker
 
從指定的標誌marker處,從新開始get或put,如restart 130
 

bye

退出ftp會話過程
 
rmdir dir-name
 
刪除遠程主機目錄
 

case

在使用mget命令時,將遠程主機文件名中的大寫轉爲小寫字母
 
size file-name
 
顯示遠程主機文件大小,如:
size idle 7200
 

cd remote-dir

進入遠程主機目錄
 
status
 
顯示當前ftp狀態
 

cdup

進入遠程主機目錄的父目錄
 
system
 
顯示遠程主機的操做系統
 

delete remote-file

刪除遠程主機文件
 
user user-name [password][account]
 
向遠程主機代表本身的身份,須要密碼時,必須輸入密碼,如:user anonymous my@email
 

dir [remote-dir][local-file]

顯示遠程主機目錄,並將結果存入本地文件
 
help [cmd]
 
顯示ftp內部命令cmd的幫助信息,如help get

 

FTP數字代碼的意義

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
110 從新啓動標記應答。
120 服務在多久時間內ready。
125 數據鏈路端口開啓,準備傳送。
150 文件狀態正常,開啓數據鏈接端口。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務ready。
221 服務的控制鏈接端口關閉,能夠註銷。
225 數據連結開啓,但無傳輸動做。
226 關閉數據鏈接端口,請求的文件操做成功。
227 進入passive mode。
230 使用者登入。
250 請求的文件操做完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,須要密碼。
332 登入時須要帳號信息。
350 請求的操做須要進一部的命令。
421 沒法提供服務,關閉控制連結。
425 沒法開啓數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操做未執行。
451 命令終止:有本地的錯誤。
452 未執行命令:磁盤空間不足。
500 格式錯誤,沒法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。
532 儲存文件須要帳戶登入。
550 未執行請求的操做。
551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出。
553 未執行請求的的命令,名稱不正確。

 

1.默認配置: 
1>容許匿名用戶和本地用戶登錄。 
anonymous_enable=YES 
local_enable=YES 
2>匿名用戶使用的登錄名爲ftp或anonymous,口令爲空;匿名用戶不能離開匿名 用戶家目錄/var/ftp,且只能下載不能上傳。 
3>本地用戶的登陸名爲本地用戶名,口令爲此本地用戶的口令;本地用戶能夠在本身家目錄中進行讀寫操做;本地用戶能夠離開自家目錄切換至有權限訪問的其餘目錄,並在權限容許的狀況下進行上傳/下載。 
write_enable=YES 
4>寫在文件/etc/vsftpd.ftpusers中的本地用戶禁止登錄。

2.配置文件格式: 
vsftpd.conf 的內容很是單純,每一行即爲一項設定。如果空白行或是開頭爲#的一行,將會被忽略。內容的格式只有一種,以下所示 
option=value 
要注意的是,等號兩邊不能加空白。

3.匿名用戶(anonymous)設置 
anonymous_enable=YES/NO(YES) 
控制是否容許匿名用戶登入,YES 爲容許匿名登入,NO 爲不容許。默認值爲YES。 
write_enable=YES/NO(YES) 
是否容許登錄用戶有寫權限。屬於全局設置,默認值爲YES。 
no_anon_password=YES/NO(NO) 
如果啓動這項功能,則使用匿名登入時,不會詢問密碼。默認值爲NO。 
ftp_username=ftp 
定義匿名登入的使用者名稱。默認值爲ftp。 
anon_root=/var/ftp 
使用匿名登入時,所登入的目錄。默認值爲/var/ftp。注意ftp目錄不能是777的權限屬性,即匿名用戶的家目錄不能有777的權限。 
anon_upload_enable=YES/NO(NO) 
若是設爲YES,則容許匿名登入者有上傳文件(非目錄)的權限,只有在write_enable=YES時,此項纔有效。固然,匿名用戶必需要有對上層目錄的寫入權。默認值爲NO。 
anon_world_readable_only=YES/NO(YES) 
若是設爲YES,則容許匿名登入者下載可閱讀的檔案(能夠下載到本機閱讀,不能直接在FTP服務器中打開閱讀)。默認值爲YES。 
anon_mkdir_write_enable=YES/NO(NO) 
若是設爲YES,則容許匿名登入者有新增目錄的權限,只有在write_enable=YES時,此項纔有效。固然,匿名用戶必需要有對上層目錄的寫入權。默認值爲NO。 
anon_other_write_enable=YES/NO(NO) 
如 果設爲YES,則容許匿名登入者更多於上傳或者創建目錄以外的權限,譬如刪除或者重命名。(若是anon_upload_enable=NO,則匿名用戶 不能上傳文件,但能夠刪除或者重命名已經存在的文件;若是anon_mkdir_write_enable=NO,則匿名用戶不能上傳或者新建文件夾,但 能夠刪除或者重命名已經存在的文件夾。)默認值爲NO。 
chown_uploads=YES/NO(NO) 
設置是否改變匿名用戶上傳文件(非目錄)的屬主。默認值爲NO。 
chown_username=username 
設置匿名用戶上傳文件(非目錄)的屬主名。建議不要設置爲root。 
anon_umask=077 
設置匿名登入者新增或上傳檔案時的umask 值。默認值爲077,則新建檔案的對應權限爲700。 
deny_email_enable=YES/NO(NO) 
如果啓動這項功能,則必須提供一個檔案/etc/vsftpd/banner_emails,內容爲email address。如果使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不容許進入。默認值爲NO。 
banned_email_file=/etc/vsftpd/banner_emails 
此文件用來輸入email address,只有在deny_email_enable=YES時,纔會使用到此檔案。如果使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不容許進入。

4.本地用戶設置 
local_enable=YES/NO(YES) 
控制是否容許本地用戶登入,YES 爲容許本地用戶登入,NO爲不容許。默認值爲YES。 
local_root=/home/username 
當本地用戶登入時,將被更換到定義的目錄下。默認值爲各用戶的家目錄。 
write_enable=YES/NO(YES) 
是否容許登錄用戶有寫權限。屬於全局設置,默認值爲YES。 
local_umask=022 
本地用戶新增檔案時的umask 值。默認值爲077。 
file_open_mode=0755 
本地用戶上傳檔案後的檔案權限,與chmod 所使用的數值相同。默認值爲0666。

5.歡迎語設置 
dirmessage_enable=YES/NO(YES) 
若是啓動這個選項,那麼使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,若是有,則會出現此檔案的內容,一般這個檔案會放置歡迎話語,或是對該目錄的說明。默認值爲開啓。 
message_file=.message 
設置目錄消息文件,可將要顯示的信息寫入該文件。默認值爲.message。 
banner_file=/etc/vsftpd/banner 
當使用者登入時,會顯示此設定所在的檔案內容,一般爲歡迎話語或是說明。默認值爲無。若是歡迎信息較多,則使用該配置項。 
ftpd_banner=Welcome to BOB’s FTP server 
這裏用來定義歡迎話語的字符串,banner_file是檔案的形式,而ftpd_banner 則是字符串的形式。預設爲無。

6.控制用戶是否容許切換到上級目錄 
在默認配置下,本地用戶登入FTP後可使用cd命令切換到其餘目錄,這樣會對系統帶來安全隱患。能夠經過如下三條配置文件來控制用戶切換目錄。 
chroot_list_enable=YES/NO(NO) 
設置是否啓用chroot_list_file配置項指定的用戶列表文件。默認值爲NO。 
chroot_list_file=/etc/vsftpd.chroot_list 
用於指定用戶列表文件,該文件用於控制哪些用戶能夠切換到用戶家目錄的上級目錄。 
chroot_local_user=YES/NO(NO) 
用於指定用戶列表文件中的用戶是否容許切換到上級目錄。默認值爲NO。 
經過搭配能實現如下幾種效果: 
①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,能夠切換到其餘目錄;未在文件中列出的用戶,不能切換到其餘目錄。 
②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其餘目錄;未在文件中列出的用戶,能夠切換到其餘目錄。 
③當chroot_list_enable=NO,chroot_local_user=YES時,全部的用戶均不能切換到其餘目錄。 
④當chroot_list_enable=NO,chroot_local_user=NO時,全部的用戶都可以切換到其餘目錄。

7.數據傳輸模式設置 
FTP在傳輸數據時,可使用二進制方式,也可使用ASCII模式來上傳或下載數據。 
ascii_upload_enable=YES/NO(NO) 
設置是否啓用ASCII 模式上傳數據。默認值爲NO。 
ascii_download_enable=YES/NO(NO) 
設置是否啓用ASCII 模式下載數據。默認值爲NO。

8.訪問控制設置 
兩種控制方式:一種控制主機訪問,另外一種控制用戶訪問。 
①控制主機訪問: 
tcp_wrappers=YES/NO(YES) 
設 置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值爲YES。若是啓用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求鏈接的主機,是否容許訪問該FTP服務器。這兩個文件能夠起到簡易的防火牆功能。 
好比:若要僅容許192.168.0.1—192.168.0.254的用戶能夠鏈接FTP服務器,則在/etc/hosts.allow文件中添加如下內容: 
vsftpd:192.168.0. :allow 
all:all :deny 
②控制用戶訪問: 
對於用戶的訪問控制能夠經過/etc目錄下的vsftpd.user_list和ftpusers文件來實現。 
userlist_file=/etc/vsftpd.user_list 
控制用戶訪問FTP的文件,裏面寫着用戶名稱。一個用戶名稱一行。 
userlist_enable=YES/NO(NO) 
是否啓用vsftpd.user_list文件。 
userlist_deny=YES/NO(YES) 
決定vsftpd.user_list文件中的用戶是否可以訪問FTP服務器。若設置爲YES,則vsftpd.user_list文件中的用戶不容許訪問FTP,若設置爲NO,則只有vsftpd.user_list文件中的用戶才能訪問FTP。 
/etc /vsftpd/ftpusers文件專門用於定義不容許訪問FTP服務器的用戶列表(注意:若是 userlist_enable=YES,userlist_deny=NO,此時若是在vsftpd.user_list和ftpusers中都有某個 用戶時,那麼這個用戶是不可以訪問FTP的,即ftpusers的優先級要高)。默認狀況下vsftpd.user_list和ftpusers,這兩個 文件已經預設置了一些不容許訪問FTP服務器的系統內部帳戶。若是系統沒有這兩個文件,那麼新建這兩個文件,將用戶添加進去便可。

9.訪問速率設置 
anon_max_rate=0 
設置匿名登入者使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。默認值爲0。 
local_max_rate=0 
本地用戶使用的最大傳輸速度,單位爲B/s,0 表示不限制速度。預設值爲0。

10.超時時間設置 
accept_timeout=60 
設置創建FTP鏈接的超時時間,單位爲秒。默認值爲60。 
connect_timeout=60 
PORT 方式下創建數據鏈接的超時時間,單位爲秒。默認值爲60。 
data_connection_timeout=120 
設置創建FTP數據鏈接的超時時間,單位爲秒。默認值爲120。 
idle_session_timeout=300 
設置多長時間不對FTP服務器進行任何操做,則斷開該FTP鏈接,單位爲秒。默認值爲300 。

11.日誌文件設置 
xferlog_enable= YES/NO(YES) 
是否啓用上傳/下載日誌記錄。若是啓用,則上傳與下載的信息將被完整紀錄在xferlog_file 所定義的檔案中。預設爲開啓。 
xferlog_file=/var/log/vsftpd.log 
設置日誌文件名和路徑,默認值爲/var/log/vsftpd.log。 
xferlog_std_format=YES/NO(NO) 
若是啓用,則日誌文件將會寫成xferlog的標準格式,如同wu-ftpd 通常。默認值爲關閉。 
log_ftp_protocol=YES|NO(NO) 
若是啓用此選項,全部的FTP請求和響應都會被記錄到日誌中,默認日誌文件在/var/log/vsftpd.log。啓用此選項時,xferlog_std_format不能被激活。這個選項有助於調試。默認值爲NO。

12.定義用戶配置文件 
在vsftpd中,能夠經過定義用戶配置文件來實現不一樣的用戶使用不一樣的配置。 
user_config_dir=/etc/vsftpd/userconf 
設置用戶配置文件所在的目錄。當設置了該配置項後,用戶登錄服務器後,系統就會到/etc/vsftpd/userconf目錄下,讀取與當前用戶名相同的文件,並根據文件中的配置命令,對當前用戶進行更進一步的配置。 
例 如:定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用者 test1,test2,那麼咱們就在user_config_dir 的目錄新增文件名爲test1和test2兩個文件。如果test1 登入,則會讀取user_config_dir 下的test1 這個檔案內的設定。默認值爲無。利用用戶配置文件,能夠實現對不一樣用戶進行訪問速度的控制,在各用戶配置文件中定義local_max_rate=XX, 便可。

13.FTP的工做方式與端口設置 
FTP有兩種工做方式:PORT FTP(主動模式)和PASV FTP(被動模式) 
listen_port=21 
設置FTP服務器創建鏈接所監聽的端口,默認值爲21。 
connect_from_port_20=YES/NO 
指定FTP使用20端口進行數據傳輸,默認值爲YES。 
ftp_data_port=20 
設置在PORT方式下,FTP數據鏈接使用的端口,默認值爲20。 
pasv_enable=YES/NO(YES) 
若設置爲YES,則使用PASV工做模式;若設置爲NO,則使用PORT模式。默認值爲YES,即便用PASV工做模式。 
pasv_max_port=0 
在PASV工做模式下,數據鏈接可使用的端口範圍的最大端口,0 表示任意端口。默認值爲0。 
pasv_min_port=0 
在PASV工做模式下,數據鏈接可使用的端口範圍的最小端口,0 表示任意端口。默認值爲0。

14.與鏈接相關的設置 
listen=YES/NO(YES) 
設 置vsftpd服務器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置爲YES,此爲默 認值。建議不要更改,有不少與服務器運行相關的配置命令,須要在此模式下才有效。若設置爲NO,則vsftpd不是以獨立的服務運行,要受到xinetd 服務的管控,功能上會受到限制。 
max_clients=0 
設置vsftpd容許的最大鏈接數,默認值爲0,表示不受限制。若設置爲100時,則同時容許有100個鏈接,超出的將被拒絕。只有在standalone模式運行纔有效。 
max_per_ip=0 
設置每一個IP容許與FTP服務器同時創建鏈接的數目。默認值爲0,表示不受限制。只有在standalone模式運行纔有效。 
listen_address=IP地址 
設置FTP服務器在指定的IP地址上偵聽用戶的FTP請求。若不設置,則對服務器綁定的全部IP地址進行偵聽。只有在standalone模式運行纔有效。 
setproctitle_enable=YES/NO(NO) 
設置每一個與FTP服務器的鏈接,是否以不一樣的進程表現出來。默認值爲NO,此時使用ps aux |grep ftp只會有一個vsftpd的進程。若設置爲YES,則每一個鏈接都會有一個vsftpd的進程。

15.虛擬用戶設置 
虛擬用戶使用PAM認證方式。 
pam_service_name=vsftpd 
設置PAM使用的名稱,默認值爲/etc/pam.d/vsftpd。 
guest_enable= YES/NO(NO) 
啓用虛擬用戶。默認值爲NO。 
guest_username=ftp 
這裏用來映射虛擬用戶。默認值爲ftp。 
virtual_use_local_privs=YES/NO(NO) 
當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認狀況下此參數是關閉的(NO)。

16.其餘設置 text_userdb_names= YES/NO(NO) 設置在執行ls –la之類的命令時,是顯示UID、GID仍是顯示出具體的用戶名和組名。默認值爲NO,即以UID和GID方式顯示。若但願顯示用戶名和組名,則設置爲YES。 ls_recurse_enable=YES/NO(NO) 如果啓用此功能,則容許登入者使用ls –R(能夠查看當前目錄下子目錄中的文件)這個指令。默認值爲NO。 hide_ids=YES/NO(NO) 若是啓用此功能,全部檔案的擁有者與羣組都爲ftp,也就是使用者登入使用ls -al之類的指令,所看到的檔案擁有者跟羣組均爲ftp。默認值爲關閉。 download_enable=YES/NO(YES) 若是設置爲NO,全部的文件都不能下載到本地,文件夾不受影響。默認值爲YES。

相關文章
相關標籤/搜索