• CentOS Stream 9 vsftpd虚拟用户安装配置


    1、安装工具包

    使用yum指令进行安装软件包

    yum -y install vsftpd pam-devel libdb-utils
    

    在这里插入图片描述
    查看软件包安装了哪些指令

    [root@localhost~]# rpm -ql libdb-utils | grep bin
    /usr/bin/db_archive
    /usr/bin/db_checkpoint
    /usr/bin/db_deadlock
    /usr/bin/db_dump
    /usr/bin/db_dump185
    /usr/bin/db_hotbackup
    /usr/bin/db_load
    /usr/bin/db_log_verify
    /usr/bin/db_printlog
    /usr/bin/db_recover
    /usr/bin/db_replicate
    /usr/bin/db_stat
    /usr/bin/db_tuner
    /usr/bin/db_upgrade
    /usr/bin/db_verify
    

    2、创建虚拟用户

    创建一个不能登录的用户,用作ftp服务的虚拟用户,由于这个ftp用户将来都是用来 向网站上传文件的,所以创建用户的时候将这个用户的家目录设置在web服务器的根目录

    useradd -d /data/web/ -c"vsftpd虚拟用户" -s /sbin/nologin vuser_ftp
    

    在这里插入图片描述
    -d /data/web/表示指定用户的家目录。
    /data/web/指定web服务器的根目录。
    -s/sbin/nologin 指令指定用户的Shell,/sbin/nologin表示此用户不能登录到当前系统。
    使用vuser_ftp作为虚拟用户的映射对象

    3、新建虚拟用户配置文件

    创建一个记录ftp虚拟用户的用户名和密码文件(文件名随便指定这里用login.txt)
    此文件的格式为:
    一行用户名,换一行密码。
    多个用户分行写入。
    如创建/etc/vsftpd/login.txt文件,并设定用户名和密码,指令如下

    [root@localhost ~]# cat >/etc/vsftpd/login.txt<
    user1
    user1passwd
    user2
    user2passwd
    > EOF
    [root@localhost ~]# cat /etc/vsftpd/login.txt 
    user1
    user1passwd
    user2
    user2passwd
    

    在这里插入图片描述
    **

    注意:用户名和密码要分开书写。

    **

    4、生成虚拟用户认证文件

    使用 db_load 命令生成虚拟用户认证文件,如下代码所示

    db_load-T-t hash-f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
    

    在这里插入图片描述
    把/etc/vsftpd/vsftpd_login.db 文件修改为 600 权限

    chmod 600 /etc/vsftpd/vsftpd_login.db
    

    在这里插入图片描述

    • login.txt 文件是刚刚新建的用户名和密码文件。
    • vsftpd_login.db 文件是 db_load
    • 命令生成的虚拟用户认证文件,这个文件用 vi 打开 是看不到的,而且这个 db 文件的权限是 600。
    • -db_load 命令是由libdb-utils 软件包提供的,如果没有这个命令就需要安装 libdb-utils 安装包。

    - 注意:

    • 目前login.txt 内容是实验环境,如果需要增加用户就把用户名和密码按照规定的格式
    • 写入 login.txt 文件。
    • 每次增加完虚拟用户之后都用使用 db_load 执行过那条命令来更新 vsftpd_login.db
    • 这个虚拟用户认证文件。
    • 虚拟用户名单文件中用户的用户名和口令信息格式:“奇数行用户名,偶数行口令”

    5、修改主配置文件

    修改 ftp 服务配置文件/etc/vsftpd/vsftpd.conf,可以把/etc/vsftpd/vsftpd.conf
    备份一下然后修改 vsftpd.conf 或者备份之后,重写一个 vsftpd.conf 文件。
    本次实验的 vsftpd.conf 内容如下:
    cd /etc/vsftpd/
    \cp -av vsftpd.conf vsftpd.conf_bak_localuser
    cat >/etc/vsftpd/vsftpd.conf<

    ###### $(date +%F-%T)--- wcg -begin ######
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    listen=YES
    userlist_enable=YES
    allow_writeable_chroot=YES
    #tcp_wrappers=YES
    max_per_ip=5
    max_clients=100
    ###### 下面是关于虚拟用户的配置-begin ######
    #打开虚拟用户功能
    guest_enable=YES
    #将所有虚拟用户映射成handuoduo这个本地用户,此用户是之前新建的用户
    guest_username=vuser_ftp
    #ftp用户的pam验证方式,默认是vsftpd,必须改掉
    pam_service_name=ftp.vu
    #这里放置每个虚拟用户的配置文件
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    #####特别注意:vsftpd.conf 这个配置文件中每行的两端都不能有空格######
    ###### 下面是关于虚拟用户的配置-end ######
    ###### $(date +%F-%T)--- wcg -end
    EOF
    

    在这里插入图片描述

    6、创建 vsftpd 服务验证文件

    (1)使用rpm -ql vsftpd 命令查找验证模块的例文
    (2)拷贝到vsftpd.conf文件中配置的路径中并改变文件名

    cp -av `rpm -ql vsftpd  |grep vsftpd.pam` /etc/pam.d/ftp.vu
    

    在这里插入图片描述
    (3)修改配置文件

    [ -f /usr/lib64/security/pam_userdb.so ] && [ -f /etc/vsftpd/vsftpd_login.db ] && \
    cat >/etc/pam.d/ftp.vu<<EOF
    auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account required /usr/lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_login
    EOF
    

    在这里插入图片描述
    注意(1)操作系统是64位的,库文件位置在/usr/lib64目录下,使用find指令查找即可。
    注意(2)db= 定义的是验证数据文件存放的位置,这个文件是以.db结尾的。但是在/etc/pam.d/ftp.vu 中配置的时候不要加上.db

    确认当前操作系统是否为64位

    
    [root@wcg ~]# uname -r
    5.14.0-444.el9.x86_64
    [root@wcg~]# file /usr/bin/ls
    /usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter/lib64/ld-linux-x86-64.so.2,BuildID[sha1]=0a2f3573580b1143e3efe56186d85849ca713ce7, for GNU/Linux 3.2.0, stripped
    

    7、自定义虚拟用户文件的存放目录

    1)创建每个用户的权限配置文件,存放在/etc/vsftpd/vsftpd_user_conf目录下。

    mkdir -pv /etc/vsftpd/vsftpd_user_conf
    

    在这里插入图片描述

    (2)创建虚拟用户配置文件-user1用户。

    cat >/etc/vsftpd/vsftpd_user_conf/user1<<EOF
    anon_world_readable_only=no
    write_enable=yes
    anon_upload_enable=yes
    anon_mkdir_write_enable=yes
    anon_other_write_enable=yes
    local_root=/data/web/html
    EOF
    ######这里需要注意的是配置语句的两端都不能有空格
    

    (3)创建虚拟用户配置文件-user2用户。

    cat >/etc/vsftpd/vsftpd_user_conf/user1<<EOF
    anon_world_readable_only=no
    write_enable=yes
    anon_upload_enable=yes
    anon_mkdir_write_enable=yes
    anon_other_write_enable=yes
    local_root=/data/web/vsftp_data
    EOF
    

    在这里插入图片描述
    (4)创建虚拟用户家目录
    mkdir -pv /data/web/{html,vsftp_data}
    (5)修改权限
    chown -R vuser_ftp. /data/web/
    在这里插入图片描述

    8、重启vsftpd服务,使用filezilla客户端验证

    [root@localhost vsftpd]# systemctl restart vsftpd
    [root@localhost vsftpd]# ss -tulnap |grep vsftpd
    tcp   LISTEN 0      32           0.0.0.0:21          0.0.0.0:*     users:(("vsftpd",pid=2731,fd=3))                     
    [root@localhost vsftpd]# ps aux |grep vsftpd
    root        2731  0.0  0.0   9132  1056 ?        Ss   17:46   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    root        2735  0.0  0.0   6636  2176 pts/3    S+   17:46   0:00 grep --color=auto vsftpd
    

    在这里插入图片描述

    测试完成可将vsftpd虚拟用户完整配置文件备份

    [root@wcg ~]# zip -r vsftpd-virtualuser-allconfig.zip  /etc/pam.d/ftp.vu /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_user_conf/ /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db 
      adding: etc/pam.d/ftp.vu (deflated 47%)
      adding: etc/vsftpd/vsftpd.conf (deflated 40%)
      adding: etc/vsftpd/vsftpd_user_conf/ (stored 0%)
      adding: etc/vsftpd/vsftpd_user_conf/user1 (deflated 42%)
      adding: etc/vsftpd/vsftpd_user_conf/user2 (deflated 41%)
      adding: etc/vsftpd/login.txt (deflated 36%)
      adding: etc/vsftpd/vsftpd_login.db (deflated 99%)
    [root@hanyw-bjidc01-nginx201 ~]# unzip -l vsftpd-virtualuser-allconfig.zip 
    Archive:  vsftpd-virtualuser-allconfig.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
          156  05-18-2024 14:48   etc/pam.d/ftp.vu
          911  05-18-2024 15:23   etc/vsftpd/vsftpd.conf
            0  05-18-2024 15:29   etc/vsftpd/vsftpd_user_conf/
          177  05-18-2024 15:28   etc/vsftpd/vsftpd_user_conf/user1
          183  05-18-2024 15:29   etc/vsftpd/vsftpd_user_conf/user2
           36  05-18-2024 14:33   etc/vsftpd/login.txt
        12288  05-18-2024 15:09   etc/vsftpd/vsftpd_login.db
    ---------                     -------
        13751                     7 files
    

    在这里插入图片描述
    备份完后,vsftpd本地用户的配置基本完成,其他内容待续……

  • 相关阅读:
    驱动点灯
    createNodeIterator使用+元素替换
    NPS:使用 Windows NPS Server 部署 802.1X 无线认证(4)
    mybatis注解方式使用增删改查
    Dynamics 365应用程序开发 - 6. 使用Microsoft Flow自动化业务流程
    linux内核中听过就能记住的概念
    【python】读取.dat格式文件
    物联网?快来看 Arduino 上云啦
    设计模式-迭代器模式(Iterator)
    电影影院购票管理系统
  • 原文地址:https://blog.csdn.net/2402_83480790/article/details/139032844