Rpm –ivh vsftpd.xxx.rpmphp
Rpm –ivh db4-utils ;rpm –ivh db4;shell
一、匿名用戶形式:在默認安裝的狀況下,系統只提供匿名用戶訪問數據庫
二、本地用戶形式:以/etc/passwd中的用戶名爲認證方式vim
三、虛擬用戶形式:支持將用戶名和口令保存在數據庫文件或數據庫服務器中。相對於FTP的本地用戶形式來講,虛擬用戶只是FTP服務器的專有用戶, 虛擬用戶只能訪問FTP服務器所提供的資源,這大大加強系統自己的安全性。相對於匿名用戶而言,虛擬用戶須要用戶名和密碼才能獲取FTP服務器中的文件, 增長了對用戶和下載的可管理性。 對於須要提供下載服務,但又不但願全部人均可以匿名下載;既須要對下載用戶進行管理,又考慮到主機安全和管理方便的FTP站點來講,虛擬用戶是一種極好的 解決方案。安全
/etc/pam.d/vsftpd(用來增強vsftpd服務器用戶的認證)服務器
/etc/vsftpd/vsftpd.conf (vsftpd主配置文件)session
/etc/vsftpd/ftpusers (位於此文件內的用戶都不能訪問vsftpd服務)app
/etc/vsftpd/user_list此文件是有可能被拒絕的用戶,也多是容許的,取決於 user_list=yes或no ,等於yes列表中的用戶禁止登陸.less
/var/ftp/pub (下載目錄)tcp
/usr/sbin/vsftpd (vsftpd 程序)
/etc/rc.d/init.d/vsftpd(啓動腳本)
/etc/pam.d/vsftpd(pam認證)
#################匿名權限控制###############
anonymous_enable=YES #是否啓用匿名用戶
no_anon_password=YES #匿名用戶login時不詢問口令
下面這四個主要語句控制這文件和文件夾的上傳、下載、建立、刪除和重命名。
anon_upload_enable=(yes/no); #控制匿名用戶對文件(非目錄)上傳權限。
anon_world_readable_only=(yes/no); #控制匿名用戶對文件的下載權限(注 意:設置爲yes不能下載,設置no能下載)
anon_mkdir_write_enable=(yes/no); #控制匿名用戶對文件夾的建立權限
anon_other_write_enable=(yes/no); #控制匿名用戶對文件和文件夾的刪除和重命名
注:匿名用戶下載是使用的是nobody這個用戶,因此相應的O這個位置要有R權限才能被下載。若想讓匿名用戶能上傳和刪除權限,必需設置
write_enable=YES #全局設置,是否允許寫入(不管是匿名用戶仍是本地用戶,若要啓用上傳權限 的話,就要開啓他)
anon_root=(none) #匿名用戶主目錄
anon_umask=(077) #匿名用戶上傳文件時有掩碼(若想讓匿名用戶上傳的文件能直接被匿名下載,就這設 置這裏爲073)
chown_uploads=YES #全部匿名上傳的文件的所屬用戶將會被更改爲chown_username
chown_username=whoever #匿名上傳文件所屬用戶名
#################本地用戶權限控制###############
write_enable=YES #能夠上傳(全局控制) 刪除,重命名
local_umask=022 #本地用戶上傳文件的umask
local_root #設置一個本地用戶登陸後進入到的目錄
download_enable #限制用戶的下載權限
chown_uploads=YES #全部匿名上傳的文件的所屬用戶將會被更改爲 chown_username
chown_username=whoever #匿名上傳文件所屬用戶名
user_config_dir=/etc/vsftpd/user_conf/ #後面跟存放配置文件的目 錄,用來實現不一樣用戶不一樣權限。
vim /etc/vsftpd/user_conf/username #加入指定的目錄local_root=/data/www
chroot_list_enable=YES #若是啓動這項功能,則全部列在chroot_list_file之中的使用者不能更改根目錄 .默認值爲yes。
chroot_list_file=/etc/vsftpd/chroot_list #指出被鎖定在自家目錄中的用戶的列表文件。
vim /etc/vsftpd/chroot_list #寫入限制的用戶名
能夠經過如下三條配置文件來控制用戶切換目錄
經過與chroot_local_user=YES/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時,全部的用戶都可以切換到其餘目錄。
###################虛擬用戶設置###################
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)。
虛似用戶的實現:
格式:db_load –T –t hash –f /etc/kuangye.users /etc/vsftpd/kuangye.login.db
auth required pam_userdb.so db=/etc/vsftpd/kuangye.login
account required pam_userdb.so db=/etc/vsftpd/kuangye.login
修改配置文件,添加user_config_dir=/etc/vsftpd/local_root 條目;而後在/etc/vs ftpd目錄下,新建local_root目錄;
在local_root下新建相應的虛似用戶文件,在文件中寫入:local_root=/home/kuangye/xxx;然 後更改權限:chmod 777 xxx;
在此還能夠作虛似用戶權限的細化,實現多個虛似用戶登陸同一文件夾而具備不一樣的權限.OK
#################服務器性能選項##############
ls_recurse_enable=YES #是否能使用ls -R命令以防止浪費大量的服務器資源
one_process_model #是否使用單進程模式
use_localtime=NO #顯示目錄清單時是用本地時間仍是GMT時間,能夠經過mdtm命令來達到 同樣的效果
pam_service_name=vsftpd #定義PAM 所使用的名稱,預設爲vsftpd
pasv_promiscuous=NO #關閉安全檢查,當心呀.
nopriv_user=nobody #當服務器運行於最底層時使用的用戶名
pasv_address=(none) #使vsftpd在pasv命令 回覆時跳轉到指定的IP地址.(服務器聯接跳轉)
################用戶登陸控制###############
ftpd_banner=welcome to FTP . #login時顯示歡迎信息.若是設置了 banner_file則此設置無效
banner_file=/etc/vsftpd/banner #定義登陸信息文件的位置
cmds_allowed #設置客戶端登陸vsftpd服務器後,客戶端能夠執行的命令集合.若是設 置了該命令,則其它沒有列在其中的命令都拒絕執行.
setproctitle_enable=YES #顯示會話狀態信息,關!
兩種控制方式:一種控制主機訪問,另外一種控制用戶訪問。
tcp_wrappers=YES/NO #設置vsftpd是否與tcp wrapper相結合來進行主機的訪問控制。默認值爲YES。若是啓用,則vsftpd服務器會檢查/etc/hosts.allow 和/etc/hosts.deny 中的設置,來決定請求鏈接的主機,是否容許訪問該FTP服務器。這兩個文件能夠起到簡易的防火牆功能。
vsftpd.ftpusers #用於保存不容許進行FTP登陸的本地用戶賬號。就是vsftp用戶的黑名 單
userlist_enable=yes
userlist_deny=yes #userlist_deny設置使用vsftpd.user_list文件來控制用戶的訪問 權限,當userlist_deny設置爲"yes"時,vsftpd.user_list中的用戶都不能登陸vsftpd服務器;設置爲"NO "時,只有該文件中的用戶才能登陸訪問vsftpd服務器,固然,這些都是在userlist_enable被設置爲"YES"時才生效.
userlist_file=/etc/vsftpd/vsftpd.user_list #定義限制/容許 用戶登陸的文件
############## 日誌設置##################
xferlog_enable=YES #開啓日記功能
xferlog_std_format=YES #使用標準格式
log_ftp_protocol=NO #當 xferlog_std_format關閉且本選項開啓時,記錄全部ftp請求和回覆,當調試比較有用.
xferlog_file=/var/log/vsftpd.log #日誌文件位置
############## 目錄定義 #################
Dirlist_enable =YES #設置是否容許用戶列目錄.默認值爲"yes",即容許列目錄.
Dirmessage_enable=YES #設置當用戶切換到一個目錄時,是否顯示目錄切換信息,若是 設置爲"yes」,則顯示"message_file"指定文件中的信息(默認是顯示.message)文件信息.
Force_dot_files=YES #設置是否顯示以"."開頭的文件,默認是不顯示的.
Message_file=.mesage #用於指定目錄切換時顯示的信息所在的文件,默認值 爲".message".
Hide_ids=YES #隱藏文件的全部者和組信息,匿名用戶看到的文件全部者和組全變成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。
port_enable=yes #容許使用主動模式
pasv_enable=yes #容許使用被動模式
banned_email_file=/etc/vsftpd.banned_emails #禁止使用的匿 名用戶登錄時做爲密碼的電子郵件地址
##############安全選項#################
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)
對於參數的詳細的解釋
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
CWD – change working directory 更改目錄
DELE – delete a remote file 刪除文件
LIST – list remote files 列目錄
MKD – make a remote directory 新建文件夾
NLST – name list of remote directory
PWD – print working directory 顯示當前工做目錄
RETR – retrieve a remote file 下載文件
RMD – remove a remote directory 刪除目錄
RNFR – rename from 重命名
RNTO – rename to 重命名
STOR – store a file on the remote host 上傳文件
# ABOR – abort a file transfer 取消文件傳輸
# CWD – change working directory 更改目錄
# DELE – delete a remote file 刪除文件
# LIST – list remote files 列目錄
# MDTM – return the modification time of a file 返回文件的更新時間
# MKD – make a remote directory 新建文件夾
# NLST – name list of remote directory
# PASS – send password
# PASV – enter passive mode
# PORT – open a data port 打開一個傳輸端口
# PWD – print working directory 顯示當前工做目錄
# QUIT – terminate the connection 退出
# RETR – retrieve a remote file 下載文件
# RMD – remove a remote directory
# RNFR – rename from
# RNTO – rename to
# SITE – site-specific commands
# SIZE – return the size of a file 返回文件大小
# STOR – store a file on the remote host 上傳文件
# TYPE – set transfer type
# USER – send username
# less common commands:
# ACCT* – send account information
# APPE – append to a remote file
# CDUP – CWD to the parent of the current directory
# HELP – return help on using the server
# MODE – set transfer mode
# NOOP – do nothing
# REIN* – reinitialize the connection
# STAT – return server status
# STOU – store a file uniquely
# STRU – set file transfer structure
# SYST – return system type