Vsftpd服務器

在生產環境中,ftp服務器linux

 

關閉防火牆和selinux數據庫

systemctl stop firewalld
 setenforce 0

  

 

 

# yum -y install vsftpd*
已加載插件:fastestmirror, langpacks
base                                                                                        | 3.6 kB  00:00:00     
extras                                                                                      | 3.4 kB  00:00:00     
updates                                                                                     | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 vsftpd.x86_64.0.3.0.2-22.el7 將被 安裝
---> 軟件包 vsftpd-sysvinit.x86_64.0.3.0.2-22.el7 將被 安裝
--> 解決依賴關係完成

依賴關係解決

===================================================================================================================
 Package                         架構                   版本                            源                    大小
===================================================================================================================
正在安裝:
 vsftpd                          x86_64                 3.0.2-22.el7                    base                 169 k
 vsftpd-sysvinit                 x86_64                 3.0.2-22.el7                    base                  23 k

事務概要
===================================================================================================================
安裝  2 軟件包

總下載量:192 k
安裝大小:351 k
Downloading packages:
(1/2): vsftpd-3.0.2-22.el7.x86_64.rpm                                                       | 169 kB  00:00:00     
(2/2): vsftpd-sysvinit-3.0.2-22.el7.x86_64.rpm                                              |  23 kB  00:00:01     
-------------------------------------------------------------------------------------------------------------------
總計                                                                                95 kB/s | 192 kB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : vsftpd-3.0.2-22.el7.x86_64                                                                     1/2 
  正在安裝    : vsftpd-sysvinit-3.0.2-22.el7.x86_64                                                            2/2 
  驗證中      : vsftpd-sysvinit-3.0.2-22.el7.x86_64                                                            1/2 
  驗證中      : vsftpd-3.0.2-22.el7.x86_64                                                                     2/2 

已安裝:
  vsftpd.x86_64 0:3.0.2-22.el7                        vsftpd-sysvinit.x86_64 0:3.0.2-22.el7                       

完畢!

  

 

systemctl start vsftpd
ps -fe |grep vsftpd
root       4341      1  0 10:23 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       4351   4112  0 10:23 pts/1    00:00:00 grep --color=auto vsftpd

  

Vsftpd.conf默認配置文件詳解以下vim

anonymous_enable=YES		開啓匿名用戶訪問;
local_enable=YES	        啓用本地系統用戶訪問;
write_enable=YES                本地系統用戶寫入權限;
local_umask=022			本地用戶建立文件及目錄默認權限掩碼;
dirmessage_enable=YES		打印目錄顯示信息,一般用於用戶第一次訪問目錄時,信息提示;
xferlog_enable=YES		啓用上傳/下載日誌記錄;	
connect_from_port_20=YES	FTP使用20端口進行數據傳輸;
xferlog_std_format=YES		日誌文件將根據xferlog的標準格式寫入;
listen=NO			Vsftpd不以獨立的服務啓動,經過Xinetd服務管理,建議改爲YES;
listen_ipv6=YES			啓用IPV6監聽;
pam_service_name=vsftpd	        登陸FTP服務器,依據/etc/pam.d/vsftpd中內容進行認證;
userlist_enable=YES	        vsftpd.user_list和ftpusers配置文件裏用戶禁止訪問FTP;
tcp_wrappers=YES	        設置vsftpd與tcp wrapper結合進行主機的訪問控制,Vsftpd服務器檢查/etc/hosts.allow 和/etc/hosts.deny中的設置,來決定請求鏈接的主機,是否容許訪問該FTP服務器。

 

1,設置匿名用戶訪問。安全

啓動Vsftpd服務後,經過Windows客戶端資源管理器訪問Vsftp服務器端bash

 

匿名用戶只有查看權限,沒法建立、刪除、修改服務器

若是容許匿名用戶可以上傳、下載、刪除文件,需在/etc/vsftpd/vsftpd.conf配置文件中加入以下代碼:架構

anon_upload_enable=YES      	       容許匿名用戶上傳文件;
anon_mkdir_write_enable=YES         容許匿名用戶建立目錄;
anon_other_write_enable=YES         容許匿名用戶其餘寫入權限。

匿名用戶完整vsftpd.conf配置文件代碼以下:app

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YE 

因爲默認Vsftpd匿名用戶有兩種:anonymous、ftp,因此匿名用戶若是須要上傳文件、刪除及修改等權限,須要ftp用戶對/var/ftp/pub目錄有寫入權限,使用以下chown和chmod任意一種便可,設置命令以下:tcp

chown -R   ftp      /var/ftp/pub/

 如上Vsftpd.conf配置文件配置完畢,同時權限設置完,重啓vsftpd服務便可,經過Windows客戶端訪問,可以上傳文件、刪除文件、建立目錄等操做測試

 Vsftpd系統用戶配置

 

實現Vsftpd系統用戶方式驗證,只需在Linux系統中建立多個用戶便可,建立用戶使用useradd,同時給用戶設置密碼,便可經過用戶和密碼登陸FTP,進行文件上傳、下載、刪除等操做。Vsftpd系統用戶實現方法步驟以下:

(1)      Linux系統中建立系統用戶zhangsan、lisi,分別設置密碼爲123456:

 

useradd   zhangsan
useradd   lisi
echo 123456|passwd --stdin  jfedu1
echo 123456|passwd --stdin  jfedu2

 

(1)      修改vsftpd.conf配置文件代碼以下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

  經過Windows資源客戶端驗證,使用zhangsan、lisi用戶登陸FTP服務器,便可上傳文件、刪除文件、下載文件,zhangsan、lisi系統用戶上傳文件的家目錄在/home/zhangsan、/home/lisi下

 

# cd /home/zhangsan/
# pwd
/home/zhangsan
# ls
1234.txt  123.txt  lala

  Vsftpd虛擬用戶配置

 

Vsftpd虛擬用戶原理:虛擬用戶就是沒有實際的真實系統用戶,而是經過映射到其中一個真實用戶以及設置相應的權限來實現訪問驗證,虛擬用戶不能登陸Linux系統,從而讓系統更加的安全可靠。

 

Vsftpd虛擬用戶企業案例配置步驟以下:

 

(1)      安裝Vsftpd虛擬用戶需用到的軟件及認證模塊:

# yum  -y install  pam*  libdb-utils  libdb*  --skip-broken 

(2)建立虛擬用戶臨時文件/etc/vsftpd/ftpusers.txt,新建虛擬用戶和密碼,其中wangwu、jzhaoliu爲虛擬用戶名,123456爲密碼,若是有多個用戶,依次格式填寫便可:

# cat /etc/vsftpd/ftpuser.txt 
wangwu
123456
zhaoliu
123456

(3)      生成Vsftpd虛擬用戶數據庫認證文件,設置權限700:

db_load  -T  -t  hash  -f  /etc/vsftpd/ftpuser.txt  /etc/vsftpd/vsftpd_login.db
chmod  700  /etc/vsftpd/vsftpd_login.db

    配置PAM認證文件,/etc/pam.d/vsftpd行首加入以下兩行  

auth      required        pam_userdb.so   db=/etc/vsftpd/vsftpd_login
account   required        pam_userdb.so   db=/etc/vsftpd/vsftpd_login 

     全部Vsftpd虛擬用戶須要映射到一個系統用戶,該系統用戶不須要密碼,也不須要登陸,主要用於虛擬用戶映射使用,建立命令以下:

 

useradd    -s   /sbin/nologin    ftpuser

  

(1)      完整vsftpd.conf配置文件代碼以下:

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES
#config virtual user FTP
pam_service_name=vsftpd                        虛擬用戶啓用pam認證;
guest_enable=YES                               啓用虛擬用戶
guest_username=ftpuser                         映射虛擬用戶至系統用戶ftpuser  
user_config_dir=/etc/vsftpd/vsftpd_user_conf   設置虛擬用戶配置文件所在的目錄;
virtual_use_local_privs=YES                    虛擬用戶使用與本地用戶相同的權限。

(1)      至此,全部虛擬用戶共同基於/home/ftpuser主目錄實現文件上傳與下載,能夠在/etc/vsftpd/vsftpd_user_conf目錄建立虛擬用戶各自的配置文件,建立虛擬用戶配置文件主目錄

mkdir  -p    /etc/vsftpd/vsftpd_user_conf/

 

(1)      以下分別爲虛擬用戶wangwu、zhaoliu用戶建立配置文件:

vim /etc/vsftpd/vsftpd_user_conf/wangwu,同時建立私有的虛擬目錄,代碼以下:

local_root=/home/ftpuser/wangwu             jfedu002虛擬用戶配置文件路徑
write_enable=YES                             容許登錄用戶有寫權限;
anon_world_readable_only=YES               容許匿名用戶下載,而後讀取文件;
anon_upload_enable=YES                   容許匿名用戶上傳文件權限,只有在write_enable=YES時該參數才生效;
anon_mkdir_write_enable=YES               容許匿名用戶建立目錄,只有在write_enable=YES時該參數才生效;

anon_other_write_enable=YES 容許匿名用戶其餘權限,例如刪除、重命名等。

  

vim /etc/vsftpd/vsftpd_user_conf/zhaoliu,同時建立私有的虛擬目錄,代碼以下:

local_root=/home/ftpuser/zhaoliu
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

(1)      建立虛擬用戶各自虛擬目錄:

mkdir -p /home/ftpuser/{wangwu,zhaoliu} ;chown -R ftpuser:ftpuser /home/ftpuser

 重啓Vsftpd服務,經過Windows客戶端資源管理器登陸Vsftpd服務端,測試結果

相關文章
相關標籤/搜索