快速搭建vsftp 服務器並配置指定目錄


1  搭建vsftp 服務器

前期准備:

1、用root 進入系統

2、使用命令 rpm  -qa|grep vsftpd 查看系統是否安裝了ftp,若安裝了vsftp,使用這個命令會在屏幕上顯示vsftpd的版本 

3、使用命令rpm -e vsftpd 即可卸載ftp

4、再使用rpm  -qa|grep vsftpd 查看系統是否已刪除ftp,若刪除成功,屏幕上顯示vsftpd的版本

一:安裝vsftpd

查看是否已經安裝vsftpd
rpm -qa | grep vsftpd

如果沒有,就安裝,並設置開機啟動
yum -y install vsftpd
chkconfig vsftpd on

二、配置防火牆

打開/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables

在REJECT行之前添加如下代碼
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和關閉文件,重啟防火牆
service iptables start

三、配置vsftpd服務器

1.默認的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本編輯器打開。
vi /etc/vsftpd/vsftpd.conf

2.修改配置信息

#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

改為
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

3.增加用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登錄SSH權限。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

4.設置用戶口令
passwd ftpuser

5、編輯文件chroot_list:
vi /etc/vsftpd/chroot_list

內容為ftp用戶名,每個用戶占一行,如:

peter
john

6、重新啟動vsftpd
service vsftpd restart

另外,如果覺得以后管理ftp用戶名嫌麻煩,可以使用centos官方發布的腳本管理。地址如下:(未用過)

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

 

出現的錯誤【這個還沒試過,有試過的老鐵留言通知下,謝謝!】

1、500 OOPS: cannot change directory
解決方法:

在終端輸入命令:

1.setsebool -P ftpd_disable_trans 1

2.service vsftpd restart

就OK了!
原因:這是因為服務器開啟了selinux,這限制了FTP的登錄。

 

上傳人員權限控制:

file_open_mode上傳檔案的權限,與chmod 所使用的數值相同。如果希望上傳的文件可以執行,設此值為0777。

local_umask=022         這是指定本地用戶上傳后的文件權限設置
umask是unix操作系統的概念,umask決定目錄和文件被創建時得到的初始權限
umask = 022 時,新建的目錄 權限是755,文件的權限是 644
umask = 077 時,新建的目錄 權限是700,文件的權限時 600
vsftpd的local_umask和anon_umask借鑒了它
默認情況下vsftp上傳之后文件的權限是600,目錄權限是700
想要修改上傳之后文件的權限,有兩種情況
如果使用vsftp的是本地用戶
則要修改配置文件中的 local_umask 的值
如果使用vsftp的是虛擬用戶
則要修改配置文件中的 anon_umask 的值

 

保持svftp 鏈接狀態:

配置  data_connection_timeout 參數值

 

注:本人遇到連接后無任何東西,解決方案:

getsebool -a|grep ftp
allow_ftpd_anon_write --> on   
allow_ftpd_full_access --> on //創建文件及文件夾  
allow_ftpd_use_cifs --> off  
allow_ftpd_use_nfs --> off  
ftp_home_dir --> on //顯示文件夾及文件  
ftpd_connect_db --> off  
ftpd_use_passive_mode --> off  
httpd_enable_ftp_server --> off  
tftp_anon_write --> on  

用如下命令把以上信息設為ON

setsebool allow_ftpd_full_access=1  

 

參考:

http://www.linuxidc.com/Linux/2015-10/123848.htm

http://blog.csdn.net/tomyjohn/article/details/23250779

 

配置文件說明:

Local_enable=yes               允許使用本地用戶來登陸ftp
在/etc/vsftpd.ftpuser中可以增加想要阻止登陸ftp的用戶
下面有關linux中ftp的設置項:
限制用戶只能在自己的目錄中
Chroot_list_enable=yes                           文件中的名單可以調用 
Chroot_list_file=/etc/vsftpd.chroot_list      前提是chroot_local_user=no,在文件中加入用戶名vsftpd.conf的參數
程序代碼:Anonymous_enable=yes                        允許匿名登陸 
Dirmessage_enable=yes                         切換目錄時,顯示目錄下.message的內容 
Local_umask=022                                  FTP上本地的文件權限,默認是077 
Connect_form_port_20=yes                   啟用FTP數據端口的數據連接  
Xferlog_enable=yes                               激活上傳和下傳的日志 
Xferlog_std_format=yes                         使用標准的日志格式 
Ftpd_banner=XXXXX                              顯示歡迎信息 
Pam_service_name=vsftpd                      驗證方式
Listen=yes                                            獨立的VSFTPD服務器 
Anon_upload_enable=yes                       匿名用戶上傳權限 
Anon_mkdir_write_enable=yes                創建目錄的同時可以在此目錄中上傳文件 
Write_enable=yes                                  本地用戶寫的權限 
Anon_other_write_enable=yes                匿名帳號可以有刪除的權限 
Anon_world_readable_only=no                匿名用戶瀏覽權限 
Ascii_upload_enable=yes                         啟用上傳的ASCII傳輸方式 
Ascii_download_enable=yes                     啟用下載的ASCII傳輸方式 
Banner_file=/var/vsftpd_banner_file          用戶連接后歡迎信息使用的是此文件中的相關信息 
Idle_session_timeout=600(秒)              用戶會話空閑后10分鍾 
Data_connection_timeout=120(秒)       將數據連接空閑2分鍾斷 
Accept_timeout=60(秒)                      將客戶端空閑1分鍾后斷 
Connect_timeout=60(秒)                    中斷1分鍾后又重新連接 
Local_max_rate=50000(bite)                本地用戶傳輸率50K 
Anon_max_rate=30000(bite)               匿名用戶傳輸率30K 
Pasv_min_port=5000                             將客戶端的數據連接端口改在 
Pasv_max_port=6000                             5000—6000之間 
Max_clients=200                                    FTP的最大連接數 
Max_per_ip=4                                       每IP的最大連接數 
Listen_port=5555                                  從5555端口進行數據連接 
Local_enble=yes                                    本地帳戶能夠登陸 
Write_enable=no                                   本地帳戶登陸后無權刪除和修改文件 
Chroot_local_user=yes                            本地所有帳戶都只能在自家目錄 
Chroot_list_enable=yes                           文件中的名單可以調用 
Chroot_list_file=/etc/vsftpd.chroot_list      前提是chroot_local_user=no 
Userlist_enable=yes                                在指定的文件中的用戶不可以訪問 
Userlist_deny=yes 
Userlist_file=/etc/vsftpd.user_list 
Banner_fail=/路徑/文件名                         連接失敗時顯示文件中的內容 
Ls_recurse_enable=no 
Async_abor_enable=yes 
one_process_model=yes 
Listen_address=10.2.2.2                          將虛擬服務綁定到某端口 
Guest_enable=yes                                   虛擬用戶可以登陸 
Guest_username
user_config_dir                    設置虛擬用戶的主配置文件

  #添加讀取用戶配置目錄(注:本行配置默認沒有需要手動輸入)

  user_config_dir=/etc/vsftpd/userconf  [用於配置用戶主目錄]

 

設置用戶主目錄:https://www.cnblogs.com/alex-blog/articles/2652337.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM