#################匿名權限控制###############
anonymous_enable=YES #是否啟用匿名用戶
no_anon_password=YES #匿名用戶login時不詢問口令
下面這四個主要語句控制這文件和文件夾的上傳、下載、創建、刪除和重命名。
anon_upload_enable=(yes/no); #控制匿名用戶對文件(非目錄)上傳權限。
anon_world_readable_only=(yes/no); #控制匿名用戶對文件的下載權限
anon_mkdir_write_enable=(yes/no); #控制匿名用戶對文件夾的創建權限
anon_other_write_enable=(yes/no); #控制匿名用戶對文件和文件夾的刪除和重命名
注:匿名用戶下載是使用的是nobody這個用戶,所以相應的O這個位置要有R權限才能被下載。若想讓匿名用戶能上傳和刪除權限,必需設置
write_enable=YES #全局設置,是否容許寫入(無論是匿名用戶還是本地用戶,若要啟用上傳權限的話,就要開啟他)
anon_root=(none) #匿名用戶主目錄
anon_max_rate=(0) #匿名用戶速度限制
anon_umask=(077) #匿名用戶上傳文件時有掩碼(若想讓匿名用戶上傳的文件能直接被匿名下載,就這設置這里為073)
chown_uploads=YES #所有匿名上傳的文件的所屬用戶將會被更改成chown_username
chown_username=whoever #匿名上傳文件所屬用戶名
#################本地用戶權限控制###############
參數 | 參數解釋 |
write_enable=YES | #可以上傳(全局控制) 刪除,重命名 |
local_umask | 為本地用戶設置文件創建的umask值。Default: 077 |
userlist_enable=YES | 限制了這里的用戶不能訪問。如果啟用,vsftpd將從userlist文件給出的文件名中加載一個userlist_file,如果用戶試圖使用該文件中的名稱登錄,則在請求密碼之前將被拒絕。 |
local_root | 設置一個本地用戶登錄后進入到的目錄 |
user_config_dir | 設置用戶的單獨配置文件,用哪個帳戶登陸就用哪個帳戶命名 |
download_enable | 限制用戶的下載權限。 Default: YES,如果設置NO,所有的下載請求都會被拒絕。 |
chroot_list_enable=YES | 如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改主目錄。如果激活,可能會提供一個本地用戶的列表(chroot_list_file),這些用戶在登錄時被放置在他們的主目錄的chroot()監獄中。如果將chroot_local_user設置為YES,則含義略有不同。在這種情況下,列表變成了不被放置在chroot()監獄中的用戶列表。默認情況下,包含此列表的文件是/etc/vsftpd/chroot_list,但您可以使用chroot_list_file設置覆蓋它。Default: NO |
chroot_local_user | 如果設置為YES,本地用戶將(默認情況下)在登錄后在其主目錄中放入chroot()監獄。警告:此選項具有安全含義,特別是當用戶有上載權限或shell訪問時。只有當你知道自己在做什么時,才會去做。請注意,這些安全含義不是vsftpd特有的。它們適用於所有的FTP守護進程,它們可以將本地用戶放在chroot() jails中。 Default: NO |
chroot_list_file=/etc/vsftpd/chroot_list | 指定限制的用戶文件 |
user_config_dir= | 后面跟存放配置文件的目錄。用來實現不同用戶不同權限。#在vsftpd.conf文件中加入這一句, #在相應的目錄里面,為每個用戶創建自己的配置文件,用來實現不同的權限 |
可以通過以下三條配置文件來控制用戶切換目錄。
chroot_list_enable=YES/NO #設置是否啟用chroot_list_file配置項指定的用戶列表文件。
#如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改根目錄 .默認值為yes。
chroot_list_file=/etc/vsftpd/chroot_list #指出被鎖定在自家目錄中的用戶的列表文件。
chroot_list_enable=YES
通過與chroot_local_user=YES/NO搭配能實現以下幾種效果:
1、當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd/chroot_list文件中列出的用戶,可以切換到其他目錄;未在文件中列出的用戶,不能切換到其他目錄。
2、當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd/chroot_list文件中列出的用戶,不能切換到其他目錄;未在文件中列出的用戶,可以切換到其他目錄。
3、當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。
4、當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。
舉個例子:
假設有ftp1, ftp2兩個ftp用戶, 計划讓ftp1用戶鎖定在主目錄下,不允許切換到其他目錄, 但是允許ftp2用戶自由切換目錄,則可以分如下兩種方式實現:
方式一:
令:
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list名單列表為:
ftp2
更新一個情況: 如遇到這個錯誤:500 OOPS: vsftpd: refusing to run with writable root inside chroot() 原因:是由於vsftpd從2.3.5版本之后,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了!如果檢查發現還有寫權限,就會報該錯誤。 解決方法有以下兩個: 1.在配置文件中增加一行:(推薦使用) #vim /etc/vsftpd/vsftpd.conf allow_writeable_chroot=YES 2.更改根目錄的權限:(此方法會讓遠程目錄沒有寫的權限,不推薦使用) 假設根目錄為/var/ftproot #chwon a-w /var/ftproot
解釋:chroot_local_user=YES將所有用戶限定在主目錄內,chroot_list_enable=YES表示要啟用chroot_list_file, 因為chroot_local_user=YES,即全體用戶都被“限定在主目錄內”,所以總是作為“例外列表”的chroot_list_file這時列出的是那些“不會被限制在主目錄下”的用戶。
方式二:
令:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名單列表為:
ftp1
解釋:chroot_local_user=NO則所有用戶不被限定在主目錄內,chroot_list_enable=YES表示要啟用chroot_list_file, 因為chroot_local_user=NO,即全體用戶都“不被限定在主目錄內”,所以總是作為“例外列表”的chroot_list_file這時列出的是那些“會被限制在主目錄下”的用戶。
其他情況:
對於chroot_local_user和chroot_list_enable的組合還有這樣兩種情況:
chroot_local_user=YES
chroot_list_enable=NO
和
chroot_local_user=NO
chroot_list_enable=NO
當chroot_list_enable=NO時,就不再啟用chroot_list_file,此時就是單純的把全部用戶限定或不限定在主目錄下了!
#################虛擬用戶設置#################
虛擬用戶使用PAM認證方式。
pam_service_name=vsftpd | #設置PAM使用的名稱,默認值為/etc/pam.d/vsftpd。 |
check_shell=YES | #(注意:僅在沒有pam驗證版本時有用,是否檢查用戶有一個有效的shell來登錄 ) |
guest_enable= YES/NO | #啟用虛擬用戶。默認值為NO。 |
guest_username=ftp | #這里用來映射虛擬用戶。默認值為ftp。 |
virtual_use_local_privs=YES/NO | #當該參數激活(YES)時,虛擬用戶使用與本地用戶相同的權限。 #當此參數關閉(NO)時,虛擬用戶使用與匿名用戶相同的權限。默認情況下此參數是關閉的(NO)。 |
#################訪問控制設置#################
兩種控制方式:一種控制主機訪問,另一種控制用戶訪問。
1、控制主機訪問:
tcp_wrappers=YES/NO
設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值為YES。如果啟用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求連接的主機,是否允許訪問該FTP服務器。這兩個文件可以起到簡易的防火牆功能。
比如:若要僅允許192.168.10.1—192.168.10.254的用戶可以連接FTP服務器,
則在
/etc/hosts.allow
/etc/hosts.deny
文件中添加以下內容:
其格式如下:
限制的服務:ip(網段)
vsftpd:192.168.1.
vsftpd:192.168.1.12
vsftpd:192.168.1.0/255.255.255.0這里不能寫成192.168.1.0/24
2、控制用戶訪問:
vsftpd.ftpusers #用於保存不允許進行FTP登錄的本地用戶帳號。就是vsftp用戶的黑名單
vsftpd.user_list
(1)設置禁止vsftpd.user_list文件中的用戶登錄:要在主配置文件vsftpd.conf中修改如下兩項,
userlist_enable=yes
userlist_deny=yes
說明:配置完以后,除了vsftpd.ftpusers文件和vsftpd.user_list文件中記錄的ftp用戶不能登錄vsftp服務以外,其他的ftp用戶都可以登錄。
(2)設置只允許vsftpd.user_list文件中的用戶登錄;同樣的道理要把主配置文件vsftpd.conf 中的語句修改如下兩項:
userlist_enable=yes
userlist_deny=no
說明:配置完以后,只允許vsftpd.user_list文件中記錄的ftp用戶能登錄vsftp服務,其他的ftp用戶都不可以登錄。
###################超時設置##################
idle_session_timeout=600 | #空閑連接超時 |
data_connection_timeout=120 | #數據傳輸超時 |
ACCEPT_TIMEOUT=60 | #PAVS請求超時 |
connect_timeout=60 | #PROT模式連接超時 |
################服務器功能選項###############
xferlog_enable=YES | #開啟日記功能 |
xferlog_std_format=YES | #使用標准格式 |
log_ftp_protocol=NO | #當xferlog_std_format關閉且本選項開啟時,記錄所有ftp請求和回復,當調試比較有用. |
pasv_enable=YES | #允許使用pasv模式 |
pasv_promiscuous=NO | #關閉安全檢查,小心呀. |
port_enable=YES | #允許使用port模式 |
tcp_wrappers=YES | #開啟tcp_wrappers支持 |
pam_service_name=vsftpd | #定義PAM 所使用的名稱,預設為vsftpd。 |
nopriv_user=nobody | #當服務器運行於最底層時使用的用戶名 |
pasv_address=(none) | #使vsftpd在pasv命令回復時跳轉到指定的IP地址.(服務器聯接跳轉) |
ls_recurse_enable=YES | #是否能使用ls -R命令以防止浪費大量的服務器資源 |
one_process_model | #是否使用單進程模式 |
listen=YES | 綁定到listen_port指定的端口,既然都綁定了也就是每時都開着的,就是那個什么standalone模式 |
text_userdb_names=NO | #當使用者登入后使用ls -al 之類的指令查詢該檔案的管理權時,預設會出現擁有者的UID,而不是該檔案擁有者的名稱。若是希望出現擁有者的名稱,則將此功能開啟 |
use_localtime=NO | #顯示目錄清單時是用本地時間還是GMT時間,可以通過mdtm命令來達到一樣的效果 |
use_sendfile=YES | #測試平台優化 |
################信息類設置################
ftpd_banner=welcome to FTP | #login時顯示歡迎信息.如果設置了banner_file則此設置無效 |
dirmessage_enable=YES | #允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容 |
setproctitle_enable=YES | #顯示會話狀態信息,關! |
############## 文件定義 ##################
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list | #定義不能更改用戶主目錄的文件 |
userlist_file=/etc/vsftpd/vsftpd.user_list | #定義限制/允許用戶登錄的文件 |
banner_file=/etc/vsftpd/banner | #定義登錄信息文件的位置 |
banned_email_file=/etc/vsftpd.banned_emails | #禁止使用的匿名用戶登陸時作為密碼的電子郵件地址 |
xferlog_file=/var/log/vsftpd.log | #日志文件位置 |
message_file=.message | #目錄信息文件 |
############## 目錄定義 #################
user_config_dir=/etc/vsftpd/userconf | #定義用戶配置文件的目錄 |
local_root=webdisk | #此項設置每個用戶登陸后其根目錄為/home/username/webdisk.#定義本地用戶登陸的根目錄,注意定義根目錄可以是相對路徑也可以是絕對路徑.相對路徑是針對用戶家目錄來說的. |
anon_root=/var/ftp | #匿名用戶登陸后的根目錄 |
#############用戶連接選項#################
max_clients=100 | #可接受的最大client數目 |
max_per_ip=5 | #每個ip的最大client數目 |
connect_from_port_20=YES | #使用標准的20端口來連接ftp |
listen_address=192.168.0.2 | #綁定到某個IP,其它IP不能訪問 |
listen_port=2121 | #綁定到某個端口 |
ftp_data_port=2020 | #數據傳輸端口 |
pasv_max_port=0 | #pasv連接模式時可以使用port 范圍的上界,0 表示任意。默認值為0。 |
pasv_min_port=0 | #pasv連接模式時可以使用port 范圍的下界,0 表示任意。默認值為0。 |
#############數據傳輸選項#################
anon_max_rate=51200 | #匿名用戶的傳輸比率(b/s) |
local_max_rate=5120000 | #本地用戶的傳輸比率(b/s) |
#############安全選項####################
Idle_session_timeout=600 | #(用戶會話空閑后10分鍾) |
Data_connection_timeout=120 | #(將數據連接空閑2分鍾斷) |
Accept_timeout=60 | #(將客戶端空閑1分鍾后斷) |
Connect_timeout=60 | #(中斷1分鍾后又重新連接) |
Local_max_rate=50000 | #(本地用戶傳輸率50K) |
Anon_max_rate=30000 | # (匿名用戶傳輸率30K) |
Pasv_min_port=50000 | #將客戶端的數據連接端口最小為50000 |
Pasv_max_port=60000 | #將客戶端的數據連接端口最小大為60000 |
Max_clients=200 | #(FTP的最大連接數) |
Max_per_ip=4 | #(每IP的最大連接數) |
Listen_port=5555 | #(從5555端口進行數據連接) |
有什么錯誤請各位讀者指出,謝謝!!