vsftpd开启、管理、脚本创建虚拟用户

vsftpd服务是Linux系统中非常安全和推崇的FTP服务器程序。这次主要讲解如何开启、管理用户等一些列vsftpd常用操作。

一、vsftpd的配置文件

一般情况下ftp的配置文件在**/etc/vsftpd/vsftpd.conf中,其中还有一个用户列表也在/etc/vsftpd**之中。图1.1 配置文件默认情况下有以下几个功能是开启的。图1.2 正常情况下安装好vsftpd后正常开启,关闭防火墙就可以正常使用ftp功能了,并且默认为匿名用户登陆。图1.3
图1.1
在这里插入图片描述
图1.2
在这里插入图片描述
图1.3
在这里插入图片描述

二、vsftpd下载使用

服务开启后我们应该怎么从站点中下载文件呢?那么首先我要在站点中放一些文件进去。图2.1**/var/ftp为vsftpd服务的站点路径。创一个名为test.txt**的文件。用一台win10作为客户机去接收ftp文件。图2.2
图2.1在这里插入图片描述
图2.2
在这里插入图片描述
在这里插入图片描述

三、vsftpd上传

在使用了下载之后就需要有上传的操作,上一步操作时在匿名用户模式下操作的,这次是在已有用户的模式下上传文件的。图3.1
图3.1
在这里插入图片描述
在这里插入图片描述

四、vsftp用户管理

刚才上一步中,lisi将文件上传到服务端上,但是这存在一个非常严重的安全隐患。图4.1lisi用户可以随意进出系统目录。那我们该如何限制lisi用户呢?进入vsftpd.conf配置文件查找chroot_local_user=YES这段文字并且开启这项功能就可以限制lisi用户的行动了。图4.2
图4.1
在这里插入图片描述
图4.2
在这里插入图片描述
在这里插入图片描述
我们也可以管理user_list来管理用户的登录。图4.3
图4.3
在这里插入图片描述
在这里插入图片描述

五、vsftpd虚拟用户创建

有时我们需要使用虚拟用户登录vsftpd服务,而不需要使用系统内存在的用户登陆。这样也可以增加ftp的安全性能。

  1. 在**/etc/vsftpd**路径下创建vuser文件。这一步是为了存放虚拟用户的用户名和密码。也是为了下一步做准备。
  2. 将用户名和密码输入到vsuser中去,其中奇数行为用户名,偶数行为密码。为了不让其他用户能够看见其中的密码,于是将权限设置为600.
  3. 创建vuser用户在shell上无法登陆,并且开启pam认证功能。在**/etc/pam.d**中创建vsftpd.vu文件用于开启pam。
  4. 修改vsftpd.conf主配置文件。echo “guest_enable=YES” >> /etc/vsftpd/vsftpd.conf
    echo “guest_username=vuser” >> /etc/vsftpd/vsftpd.conf
    echo "allow_writeable_chroot=YES
    这里我用脚本进行自动化创建。
#!/bin/bash

#关闭防火墙
systemctl stop firewalld
setenforce 0

#判断是否安装了vsftpd服务
while true
do
rpm -q vsftpd &> /dev/null
  if [ $? -eq 0 ];then
  echo "已安装了vsftpd服务"
  break
else
  echo "正在安装vsftpd"
  yum install vsftpd -y &> /dev/null
rpm -q vsftpd &> /dev/null
 if [ $? -eq 0 ];then
  echo "安装成功"
  break
else
  echo "安装失败"
  read -p "是否再次安装?(y/n)" a
if [ $a = "y" ];then
  continue
else
  echo "退出脚本"
  exit 1
  fi
  fi
fi
done

#创建虚拟用户
touch /etc/vsftpd/vuser
while true
do
    read -p "请输入一个用户名:" yhm
    echo "$yhm" >> /etc/vsftpd/vuser
    read -p "请输入密码:" mima
    echo "$mima" >> /etc/vsftpd/vuser
    read -p "还要再添加虚拟用户吗?(y/n)" xz
    if [ $xz = "y" ];then
        continue
     else
     echo "用户添加完毕。"
    break
   fi
done

#将vuser转换成数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db

#修改vuser的权限为600
chmod 600 /etc/vsftpd/vuser*

#创建vuser用户shell无法登陆
useradd -d /opt/vuser -s /sbin/nologin vuser

#编辑pam认证
touch /etc/pam.d/vsftpd.vu
echo "auth required pam_userdb.so db=/etc/vsftpd/vuser" > /etc/pam.d/vsftpd.vu
echo "account required pam_userdb.so db=/etc/vsftpd/vuser" >> /etc/pam.d/vsftpd.vu


#修改主配置文件
sed -i '/pam_service_name/s/vsftpd/vsftpd.vu/' /etc/vsftpd/vsftpd.conf 
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf 
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf 
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
#修改权限
sed -i '/anon_upload_enable/s/#/ /' /etc/vsftpd/vsftpd.conf 
sed -i '/anon_mkdir_write_enable/s/#/ /' /etc/vsftpd/vsftpd.conf


#开启vsftpd服务
echo "开启vsftpd服务"
systemctl restart vsftpd

总结

vsftp服务在修改配置文件时要注意开启的权限和用户列表是否开启。在添加虚拟用户时需要注意将vuser文件的权限设置成600。这里有亲自测试的结果。
在这里插入图片描述
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐