CentOS 7搭建基於虛擬用戶的FTP服務

1、ftp文件傳輸服務

一、FTP鏈接的端口號

  • 21:傳輸控制使用,進行身份驗證受權訪問數據庫

  • 20:傳輸數據使用

二、FTP鏈接模式

  • 主動模式:服務器端經過20號端口給客戶端傳輸數據,POST指令表示主動鏈接,默認工做在主動模式vim

  • 被動模式:服務器端開放指定範圍的端口號等待客戶端創建數據鏈接,pasv指令表示被動模式

三、FTP傳輸模式

  • 文本 模式:文本模式不支持傳輸流媒體數據,支持文本文件centos

  • 二進制模式:使用普遍支持傳輸文本文件流媒體數據

四、FTP身份驗證的方式

  • 匿名:使用ftp用戶或者anonymous帳戶驗證不須要密碼安全

  • 本地身份驗證:須要使用帳戶密碼進行身份驗證後訪問數據服務器

  • 虛擬帳戶驗證:將多個用戶映射到一個系統帳戶進行驗證

2、安裝vsftpd服務

一、安裝vsftpd服務

[root@centos01 ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm  <!--安裝ftp服務器端-->
[root@centos01 ~]# rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm      <!--安裝ftp客戶端-->

二、配置虛擬用戶

1) 建立虛擬帳戶數據庫文件

[root@centos01 ~]# vim /etc/vsftpd/vusers.list 
            <!--奇數行是用戶名,偶數行是密碼-->
bob
pwd@123
tom
pwd@123
alice
pwd@123

2)生成虛擬帳戶數據庫文件,數據庫文件vusers.db

[root@centos01 ~]# db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db

3)添加虛擬帳戶映射建立ftp根目錄

[root@centos01 ~]# mkdir /benet
[root@centos01 ~]# useradd -d /benet/ftproot -s /sbin/nologin virtual

4)設置ftp根目錄的權限

[root@centos01 ~]# chmod 755 /benet/ftproot/

三、配置pam身份驗證和建立虛擬帳戶權限目錄

1) 配置PAM身份驗證

[root@centos01 ~]# vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth    required        pam_userdb.so db=/etc/vsftpd/vusers
account required        pam_userdb.so db=/etc/vsftpd/vusers

2)建立虛擬機帳戶權限目錄

[root@centos01 ~]# mkdir /etc/vsftpd/vusers_dir

四、修改vsftp主配置文件配置虛擬帳戶ftp

1)修改主配置文件

[root@centos01 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO       <!--是否容許匿名訪問-->
local_enable=YES         <!--是否容許本地系統用戶訪問-->
write_enable=YES           <!--啓用任何形式的寫入權限(如上傳、刪除文件等)-->
local_umask=022  <!--設置本地用戶所上傳文件的默認權限掩碼值-->
anon_umask=022 <!--設置匿名用戶所上傳文件的默認權限掩碼值-->
dirmessage_enable=YES<!--用戶切換進入目錄時顯示.message文件(若是存在)的內容-->
xferlog_enable=YES       <!--啓用xferlog日誌,默認記錄到/var/log/xferlog-->
connect_from_port_20=YES <!--容許服務器主動模式(從20端口創建數據鏈接)-->
xferlog_std_format=YES <!--啓用標準的xferlog日誌格式,
若禁用此項,將使用vsftp本身的日誌格式-->
listen=NO            <!--是否以獨立運行的方式監聽服務-->
listen_ipv6=YES 

chroot_local_user=YES<!--是否將FTP本地用戶禁錮在宿主目錄中-->
allow_writeable_chroot=YES<!--容許被限制用戶的主目錄具備寫權限-->
guest_enable=YES 
guest_username=virtual       <!--指定映射的系統用戶名稱-->
user_config_dir=/etc/vsftpd/vusers_dir/    
        <!--位不一樣的虛擬用戶創建獨立的配置文件-->
pam_service_name=vsftpd.vu     <!--指定新的PAM認證文件-->
userlist_enable=YES    <!--是否啓用user_list用戶列表文件-->
tcp_wrappers=YES           <!--是否啓用TCP_Wrappers主機訪問控制-->

2)主配置文件常見選項

CentOS 7搭建基於虛擬用戶的FTP服務
CentOS 7搭建基於虛擬用戶的FTP服務

3)建立虛擬帳戶權限文件

[root@centos01 ~]# touch /etc/vsftpd/vusers_dir/bob
[root@centos01 ~]# touch /etc/vsftpd/vusers_dir/tom
[root@centos01 ~]# touch /etc/vsftpd/vusers_dir/alice

4)給bob用戶設置訪問ftp徹底控制權限

[root@centos01 ~]# vim /etc/vsftpd/vusers_dir/bob 
anon_upload_enable=YES           <!--容許上傳數據-->
anon_mkdir_write_enable=YES    <!--容許建立目錄或文件-->
anon_other_write_enable=YES  <!--容許刪除或覆蓋文件目錄-->

5)設置tom帳戶擁有上傳權限

[root@centos01 ~]# vim /etc/vsftpd/vusers_dir/tom
anon_upload_enable=YES       <!--容許上傳數據-->

6)修改ftp根目錄的全部者

[root@centos01 ~]# chown virtual:virtual /benet/ftproot/

7)啓動ftp服務,設置開機自動啓動

[root@centos01 ~]# systemctl start vsftpd     <!--啓動服務-->
[root@centos01 ~]# systemctl enable vsftpd   <!--設置開機自動啓動-->

8)客戶端驗證bob權限

CentOS 7搭建基於虛擬用戶的FTP服務

CentOS 7搭建基於虛擬用戶的FTP服務

9)客戶端驗證tom權限

CentOS 7搭建基於虛擬用戶的FTP服務

CentOS 7搭建基於虛擬用戶的FTP服務

10)客戶端驗證alice權限

CentOS 7搭建基於虛擬用戶的FTP服務

CentOS 7搭建基於虛擬用戶的FTP服務

3、總結

一、全局配置項字段詳解

  • listen=NO: 是否以獨立運行的方式監聽服務;app

  • listen_address=IP地址:設置監聽f t p服務的ip地址,默認監聽全部IP地址;tcp

  • listen_port=21:設置監聽ftp服務的端口號;ide

  • write_enable=YES:開啓寫入權限;ui

  • download_enable=YES:容許下載權限;日誌

  • dirmessage_enable=YES:用戶切換進入目錄時顯示 「.message」文件(若是已存在)的內容;

  • xferlog_enable=YES:啓用xferlog日誌,默認記錄到 /var/log/xferlog;

  • xferlog_std_format=YES:ftp日誌格式;

  • connect_from_port_20=YES:數據鏈接端口號默認20;

  • pasv_enable=NO:禁止被動模式鏈接;默認容許被動模式鏈接;

  • pasv_max_port=21600:起始端口號;

  • pasv_min_port=21700:結束端口號;

  • pam_service_name=vsftpd:開啓PAM驗證;

  • userlist_enable=YES:容許user_list列表用戶登陸ftp;

  • userlist_deny=YES:不容許user_list列表用戶登陸ftp;

  • max_clients=0:限制多個客戶端同時鏈接(0爲無限制);

  • max_per_ip=0:容許相同IP地址訪問ftp鏈接次數(0爲無限制);

  • tcp_wrappers=YES:ftp的訪問控制列表提高安全性使用
    匿名配置項字段詳解;

  • anonymous_enable=YES:是否容許匿名訪問;

  • anon_umask=022:設置匿名用戶所上傳文件的默認權限掩碼值(反掩碼);

  • anon_root=/var/ftp:設置匿名用戶的FTP根目錄;

  • anon_upload_enable=YES;是否容許匿名用戶上傳文件;

  • anon_mkdir_write_enable=YES:是否容許匿名用戶由建立目錄的寫入權限;

  • anon_other_write_enable=YES:是否容許匿名用戶有其餘寫入權限,如對文件更名、覆蓋及刪除文件等;

二、本地用戶配置項

  • local_enable=YES:是否容許本地用戶訪問;

  • local_umask=022:設置本地用戶所上傳文件的默認權限掩碼值(反掩碼);

  • local_root=/var/ftp:設置本地用戶的FTP根目錄(默認爲用戶的宿主目錄);

  • chroot_local_user=YES:是否將FTP本地用戶禁錮在宿主目錄中;

  • allow_writeable_chroot=YES:容許被限制用戶的主目錄具備寫權限;

  • local_max_rate=0:限制本地用戶的最大傳輸速率(0爲無限制),單位爲字節/秒(B/s);

三、虛擬用戶配置項

  • guest_username=test:指定映射的系統用戶名稱;

  • guest_enable=YES:是否啓用虛擬用戶;

  • allow_writeable_chroot=容許被限制用戶的主目錄具備寫權限(此項必須寫入,不然可能會報錯);

  • anon_world_readable_only=NO:容許用戶下載目錄內容;

  • anon_other_write_enable=YES:容許匿名用戶有其餘寫入權限,如重命名、覆蓋及刪除文件等;

  • user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬用戶獨立的配置文件目錄;

———————— 本文至此結束,感謝閱讀 ————————

相關文章
相關標籤/搜索