1. 程式人生 > >centos6.9下yum安裝vsftpd

centos6.9下yum安裝vsftpd

文章參考地址點選開啟連結

略有改動,添加了為每個使用者設定不同訪問目錄的配置方法

一、安裝vsftpd

安裝 vsftpd  
#yum -y install vsftpd  
設定開機啟動  
#chkconfig vsftpd on  
檢視服務狀態  
#service vsftpd status 

二、新增ftp使用者

#cat /etc/group		//可以看到有ftp組
建立使用者組目錄  
#mkdir /home/vsftpd  
新增使用者ftptest(你的專案檔案屬於root使用者組就將使用者新增到root使用者組下)
#useradd -c "FTP USER" -d /home/vsftpd/ftptest -g ftp ftptest -s /sbin/nologin
為使用者ftptest設定密碼  
#passwd ftptest

三、修改配置檔案

備份原檔案  
#mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.txt  
生成新的配置檔案  
#touch /etc/vsftpd/vsftpd.conf  
編輯配置檔案  
#vi /etc/vsftpd/vsftpd.conf  

貼上下面這些配置進去 ( local_root 這一項修改成自己的專案目錄路徑)

# Example config file /etc/vsftpd/vsftpd.conf
#
# 如果vsftpd處於獨立模式,則這是它將偵聽傳入FTP連線的埠。
listen_port=21
#
# 登入目錄
local_root=/var/www/html
#
# 是否允許匿名使用者登入
anonymous_enable=NO
#
# 設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問
local_enable=YES
#
# 設定允許進行寫操作(上傳、刪除),預設為YES
write_enable=YES
#
# 是否使用本地時間
#use_localtime=YES
#
# 此引數在VSFTPD使用單獨(standalone)模式下有效。此引數定義了FTP伺服器最大的併發連線數,當超過此連線數時,伺服器拒絕客戶端連線。預設值:0(無限制)。
#max_clients=5
#
# 此引數在VSFTPD使用單獨(standalone)模式下有效。此引數定義每個IP地址最大的併發連線數目。超過這個數目將會拒絕連線。此選項的設定將影響到象網際快車這類的多程序下載軟體。預設值為0,表示不限制。
#max_per_ip=3
#
# 掩飾碼
local_umask=002
#
# 是否允許匿名FTP使用者上傳檔案。
#anon_upload_enable=NO
#
# 是否允許匿名FTP使用者能夠建立新目錄
#anon_mkdir_write_enable=NO
#
# 啟用目錄訊息 - 當遠端使用者進入某個目錄時傳送的訊息。
dirmessage_enable=YES
#
# 設定為yes時,使用者上傳和下載檔案都會被記錄下來,記錄檔案位置與xferlog_file=/var/log/vsftpd/xferlog
xferlog_enable=YES
#
# 在vsftpd_log_file和xferlog_file檔案之間切換登入檔案資訊,NO 寫入 vsftpd_log_file, YES 寫入 xferlog_file
xferlog_std_format=YES
#
# 設定另外一個vsftpd的日記檔案,也可以不設定
dual_log_enable=YES
xferlog_file=/var/log/vsftpd/xferlog
#
# 設定日誌目錄
vsftpd_log_file=/var/log/vsftpd/vsftpd.log
#
# 埠樣式連線始發的埠(只要名稱不正確的 connect_from_port_20 啟用),預設值:20
connect_from_port_20=YES
#
# 是否修改匿名使用者所上傳檔案的所有權。YES,匿名使用者所上傳的檔案的所有權將改為另外一個不同的使用者所有,使用者由chown_username引數指定。此選項預設值為NO。 
#chown_uploads=YES
#
# 指定擁有匿名使用者上傳檔案所有權的使用者
#chown_username=whoever
#
# 遠端客戶端建立與PASV樣式資料連線的連線的超時(以秒為單位),預設值:60。
#accept_timeout=60
#
# 遠端客戶端響應我們的埠樣式資料連線的超時時間(秒)。預設值:60。
#connect_timeout=60
#
# 遠端客戶端可能在FTP命令之間花費的最長時間(以秒為單位)。如果超時觸發,遠端客戶端將被啟動。預設值:300
#idle_session_timeout=300
#
# 超時時間(以秒為單位),大概是允許資料傳輸停止而無進度的最大時間。如果超時觸發,遠端客戶端將被啟動。預設值:300
#data_connection_timeout=300
#
# 建立上傳檔案的許可權。Umasks應用於此值的頂部。如果要上傳的檔案可執行,您可能希望更改為0777。預設值:0666
#file_open_mode=002
#
# 本地認證使用者允許的最大資料傳輸速率(以位元組為單位)。預設值:0(無限制)
#local_max_rate=0
#
# 建議您在系統上定義一個唯一的使用者,ftp伺服器可以用作完全獨立且無特權的使用者。
#nopriv_user=ftpsecure
#
# 是否啟動非同步傳輸功能
#async_abor_enable=YES
#
# 是否啟用ASCII功能
ascii_upload_enable=YES
ascii_download_enable=YES
#
# 自定義登入顯示的字串
#ftpd_banner=Welcome to blah FTP service.
#
# 指定某個純文字作為使用者登入時顯示的歡迎字眼,也可以放置一些讓使用者知道本FTP伺服器的目錄架構
#banner_file=/etc/vsftpd/welcome.txt
#
# 您可以指定一個不允許的匿名電子郵件地址的檔案。 顯然有助於打擊某些DoS攻擊。
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# 鎖定某些使用者在自家目錄中。即當這些使用者登入後,不可以轉到系統的其他目錄,只能在自家目錄(及其子目錄)下。
# 當chroot_local_user=YES,chroot_list_enable=YES時,chroot_list_file目錄裡面的使用者不被chroot在主目錄中。
# 當chroot_local_user=YES,chroot_list_enable=NO時,chroot_list_file目錄裡面的使用者全部給被chroot在主目錄中
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# 此選項預設值為NO , 此時ftpusers 檔案中的使用者禁止登入FTP 伺服器;若此項設為YES ,則 user_list 檔案中的使用者允許登入 FTP 伺服器,而如果同時設定了 userlist_deny=YES ,則 user_list 檔案中的使用者將不允許登入FTP 伺服器,甚至連輸入密碼提示資訊都沒有,直接被FTP伺服器拒絕
userlist_enable=YES
#
# 此項預設為YES ,設定是否阻扯user_list 檔案中的使用者登入FTP 伺服器,設定為NO時只允許user_list 當中的使用者使用ftp,對於後新建的使用者起到遮蔽作用,如果想要使用ftp則必須加入這個列表檔案中
userlist_deny=NO
#
# 當userlist_enable=YES,當userlist_deny=YES,這裡面的使用者不能登入,當userlist_deny=NO時,只有這裡面的使用者才能登入ftp 。
userlist_file=/etc/vsftpd/user_list
#
# 當啟用“listen”指令時,vsftpd以獨立模式執行,並在IPv4套接字上偵聽。 該指令不能與listen_ipv6指令一起使用。
listen=YES
#
# 此指令允許偵聽IPv6套接字。 要監聽IPv4和IPv6套接字,您必須執行兩個vsftpd副本和兩個配置檔案。請確保其中一個listen選項被註釋!
#listen_ipv6=YES
#
# 設定 PAM 外掛模組提供的認證服務所使用的配置檔名 ,即/etc/pam.d/vsftpd 檔案
pam_service_name=vsftpd
#
# 是否開啟用虛擬使用者功能
#guest_enable=YES
#
# 指定虛擬使用者的宿主使用者,CentOS中已經有內建的ftp使用者了
#guest_username=ftp
#
# 匿名客戶端允許的最大資料傳輸速率(以位元組為單位)。預設值:0(無限制)
#anon_max_rate=0
#
# 為匿名使用者設定檔案建立的umask的值。注意!如果要指定八進位制值,請記住“0”字首,否則該值將被視為基數10整數!預設值:077
#anon_umask=002
#
# 設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(配置檔名=虛擬使用者名稱)
#user_config_dir=/etc/vsftpd/virtual_conf
#
# 如果要禁止PASV方法獲取資料連線,請設定為NO。
pasv_enable=YES
#
# 設定在PASV模式下,建立資料傳輸所可以使用port範圍的下界和上界,0 表示任意。預設值為0。把埠範圍設在比較高的一段範圍內
pasv_min_port=20000
pasv_max_port=30000
#
# 預設值為NO。為YES時,將關閉PASV模式的安全檢查。該檢查確保資料連線和控制連線是來自同一個IP地址。小心開啟此選項。此選項唯一合理的用法是存在於由安全隧道方案構成的組織中。
#pasv_promiscuous=YES
#
# 如果您不想使用PORT方法獲取資料連線,則設定為NO。
#port_enable=YES
#
# 預設值為NO。如果要禁用PORT安全檢查,確保傳出資料連線只能連線到客戶端,請設定為YES。
#port_promiscuous=YES
#
# 表明伺服器使用 tcp_wrappers 作為主機訪問控制方式,tcp_wrappers 可以實現linux 系統中網路服務的基於主機地址的訪問控制,在/etc 目錄中的hosts.allow 和hosts.deny 兩個檔案用於設定tcp_wrappers 的訪問控制,前者設定允許訪問記錄,後者設定拒絕訪問記錄。例如想限制某些主機對FTP 伺服器12.36.126.141 的匿名訪問,編緝/etc/hosts.allow 檔案,如在下面增加兩行命令:vsftpd:192.168.2.1:DENY 和vsftpd:192.168.2.20:DENY 表明限制IP 為192.168.2.1/192.168.2.20 主機訪問IP 為12.36.126.141 的FTP 伺服器,此時FTP 伺服器雖可以PING 通,但無法連線
#tcp_wrappers=YES

四、設定FTP使用者資訊

建立限制使用者訪問目錄的空檔案。該檔案配置方法可以參考點選開啟連結

#touch /etc/vsftpd/chroot_list
新增ftp使用者
#vi /etc/vsftpd/user_list
註釋掉上面的使用者,在後面加上ftptest
#建立日誌檔案
mkdir -p /var/log/vsftpd
touch /var/log/vsftpd/xferlog
touch /var/log/vsftpd/vsftpd.log

五、設定防火牆

#vi /etc/sysconfig/iptables//如果21和20000-30000已經開啟就退出不管,未開啟則新增
#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 20000:30000 -j ACCEPT
#/etc/sysconfig/iptables save //儲存防火牆股則
#service iptables restart //重啟防火牆

六、重啟vsftpd服務

#service vsftpd stop //停止vsftpd 服務
#service vsftpd start //啟動vsftpd 服務
#service vsftpd restart //重啟vsftpd 服務

七、為不同使用者設定不同根目錄

#vi /etc/vsftpd/vsftpd.conf
配置user_config_dir=/etc/vsftpd/virtual_conf
#mkdir/etc/vsftpd/virtual_conf
#vi /etc/vsftpd/virtual_conf/ftptest 
寫入以下內容,注意配置前後都不能有空格否則會報錯
write_enable=YES			//寫入許可權
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES			//上傳許可權
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes			//下載許可權
local_root=/var/www/html		//根目錄

如果要讓root 使用者登入

vi /etc/vsftpd/ftpusers		//在root前加上#
vi /etc/vsftpd/user_list   //新增root