Linux下创建FTP虚拟用户的配置过程--非系统账户登陆FTP

目录

前言        

一、检查vsftpd是否安装        

二、建立vsftpd虚拟用户

2.1、添加虚拟用户口令文件

2.2、生成虚拟用户口令认证文件

2.3、编辑vsftpd的PAM认证文件

2.4、建立本地映射用户

三、配置vsftpd

3.1、配置vsftpd.conf

3.2、创建虚拟用户权限目录

3.3、对虚拟用户设置上传下载根目录

3.4、重启vsftp服务

四、测试虚拟用户登录FTP

4.1、虚拟用户登陆FTP测试

4.2、测试上传或下载


前言        

        在日常的工作中经常会遇到这样的情况,为了ftp的用户的登录安全,需要创建一些FTP账户来连接或登录FTP服务,而又不想让用户拥有系统级别的账号。

        尽管也可以在FTP服务器设置让一些用户无法登陆系统,如果需要创建很多ftp用户的需求的话,那和创建这么多的用户也是不友好的,对系统而言也是不安全的。

        为了解决以上这种问题,在日常的工作中可以采取配置FTP的虚拟用户来连接或是登录FTP服务,这些账户还不是系统上的帐号,在维护方便的前提下,还保证了系统的安全性。

        如下是以FTP虚拟用户来连接或是登陆FTP服务的操作方法,供大家学习和使用。

一、检查vsftpd是否安装        

        先要检查要做FTP服务器的主机上有没有安装vsftpd,如果没有安装的话,需要先进行vsftpd服务的安装。

        [root@localhost ~]# yum -y install vsftpd。

        注:如果是yum安装的话,首先要把操作系统的系统盘挂载到系统中,并且配置好yum源才可以使用。挂载和配置yum的方法如下:

        [root@localhost ~]# monut /dev/sr0 /mnt

        注:sr0也可以写成cdrom,sr0是cdrom的一个连接。

        [root@localhost ~]# vi /etc/yum.repos.d/rhel.repo

        [iso]
        name=centos-iso
        baseurl=file:///mnt
        enabled=0
        gpcheck=1

二、建立vsftpd虚拟用户

2.1、添加虚拟用户口令文件

        [root@localhost ~]# vi /etc/vsftpd/vftpuser.txt

        ftpuser #用户名

        123456 #密码

        注:添加虚拟用户名和密码,一行用户名,一行密码,以此类推。

2.2、生成虚拟用户口令认证文件

        将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件,首先查看系统有没有安装生成口令认证文件所需的软件db4-utils,如果没有安装进行安装之后再生成口令认证文件。

        [root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

2.3、编辑vsftpd的PAM认证文件

        [root@localhost ~]# cd /etc/pam.d

        [root@localhost ~]# cp vsftpd vsftpd.YYYYMMDD

        YYYYMMDD代表年月日

        [root@localhost ~]# vi vsftpd

        可以把原文件里面的内容都注释掉,添加以下2行内容:

        auth required  /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

        account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

2.4、建立本地映射用户

        所有的FTP虚拟用户需要使用一个系统用户,但这个系统用户不需要密码和登录权限

        [root@localhost ~]# useradd -d /home/ftpuser -s /sbin/nologin ftpuser

三、配置vsftpd

3.1、配置vsftpd.conf

        [root@localhost ~]# cd /etc/vsftpd

        [root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.YYYYMMDD

        YYYYMMDD代表年月日

        [root@localhost ~]# vi vsftpd.conf

        找到如下内容进行修改:

        anonymous_enable=NO

        local_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

        #chroot_list_file=/etc/vsftpd/chroot_list

        listen=YES

        write_enable=YES

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        chroot_local_user=YES

        ftpd_banner=Welcome to FTP service.        #此参数可用可不用,就是一个登录ftp服务时的一句欢迎语。

        anon_world_readable_only=NO

        guest_enable=YES

        guest_username=vftpuser

        pam_service_name=vsftpd

        user_config_dir=/etc/vsftpd/userconf         #代表对虚拟用户分配不能根目录的配置目录,需要在vsftpd目录创建此目录。

3.2、创建虚拟用户权限目录

        [root@localhost ~]# cd /etc/vsftpd

        [root@localhost ~]# mkdir userconf

3.3、对虚拟用户设置上传下载根目录

        [root@localhost ~]# cd /etc/vsftpd/userconf

        [root@localhost ~]# vi ftpuser         #此文件一定要和你的虚拟用户名保持一致。

        write_enable=YES

        anon_world_readable_only=NO

        anon_upload_enable=YES

        anon_mkdir_write_enable=YES

        anon_other_write_enable=YES

        local_root=/home/ftpuser/ftpdir         #此目录是虚拟用户设置的根目录,上传下载的文件都会锁定到此目录下。

        [root@localhost ~]# chown -R ftpuser.ftpuser /home/ftpuser/ftpdir         #设置目录权限为虚拟用户,防止没有权限上传或下载。

3.4、重启vsftp服务

        [root@localhost ~]# service vsftpd restart

四、测试虚拟用户登录FTP

4.1、虚拟用户登陆FTP测试

        [root@localhost ~]# ftp 192.168.10.2

        Connected to 192.168.10.2.

        220 Welcome to FTP service.

        Name (192.168.10.2:root):ftpuser

        331 Please specify the password.

        Password:        #输入虚拟账号的密码。

        230 Login sucessful.         #代表虚拟用户已经成功的登录到了FTP服务器上。

4.2、测试上传或下载

        [root@localhost ~]# ftp 192.168.10.2

        Connected to 192.168.10.2.

        220 Welcome to FTP service.

        Name (192.168.10.2:root):ftpuser

        331 Please specify the password.

        Password:         #输入虚拟账号的密码。

        230 Login sucessful.

        Remote system type is UNIX.

        Using binary mode to transfer files.

        ftp>put 1.txt

        local:1.txt remote:1.txt

        150 Ok to send data.

        226 Transfer complete.         #上传成功。

        ftp>get 2.txt

        local:2.txt remote:2.txt

        150 Opening BINARY mode data connection for t (1140 bytes).

        226 Transfer complete.         #上传成功。

ftp--虚拟用户 Benet6.0 S2 LINUX 第十二章 实验报告 姓名: 李勰 所在班级: hb3017 日期: 2020 年 7 月 7 日 实 验 任 务 1. 搭建服务之前先关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 2.挂载并安装软件vsftpd和ftp。(服务端和客户端) mount /dev/cdrom /mnt/ (挂载) rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm (安装服务端) rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm (安装客户端) 3.构建匿名可上传的FTP服务器,操作目录为 /var/ftp/pub 注:在客户端登录后,默认情况下是可以下载的,但不能上传。 3.1配置配置文件:vim /etc/vsftpd/vsftpd.conf 添加: anon_upload_enable=YES (允许匿名上传) 3.2修改完成之后重启服务systemctl restart vsftpd 3.3 修改文件目录的w权限:chmod o+w /var/ftp/pub/ 3.4 查看并验证:ls -lhd /var/ftp/pub/ 3.5 知识扩充:anon_mkdir_write_enable=YES (允许匿名用户创建目录) anon_other_write_enable=YES (允许匿名用户可删、可覆盖) anon_umask=022 (允许匿名用户上传文件有r权限,没有r权限不可下载) vim /var/ftp/pub/.message (切换目录提示信息) dirmessage_enable=YES (开始主配置文件该功能默认开启) 4.构建本地用户验证的FTP服务器,本地用户为zhangsan lisi wangwu,并将其禁锢到宿主目录中,上传的权限掩码值为022(默认) 4.1 创建本地用户zhangsan、lisi、wangwu。并设置密码。(创建用户不需要登录操作系统,只需要登录ftp。) useradd -s /sbin/nologin zhangsan useradd -s /sbin/nologin lisi useradd -s /sbin/nologin wangwu 4.2 完成上一部操作,就可以使用本地用户访问,要禁锢需要修改只配置文件 chroot_local_user=YES (是否将用户禁锢在主目录) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) 重启服务并测试。 4.3 知识扩充:chroot_list_enable=YES (开启白名单功能,允许白名单中的用户随意切换目录) chroot_list_file=/etc/vsftpd/chroot_list(白名单所在位置,需自己创建) cd /etc/vsftpd/ vim chroot_list :(文件中填写允许切换的用户) 5.结合user_list文件限制用户,仅允许zhangsan lisi 用户访问(设置白名单或黑名单) 5.1修改user_list vim user_list, 添加zhangsan、lisi。 5.2修改主配置文件:userlist_enable=NO (不禁用user_list列表中的用户) 6.设置服务器的监听地址,并将端口修改为2121 重启服务测试 6.1.主配置文件添加:listen_port=2121 6.2.重启服务:systemctl restart vsftpd 6.3. netstat -anutp |grep "vsftpd" 进行查看 7.设置FTP虚拟用户,readuser,writeuser 1.创建用户列表 2.生成db文件(数据库) 3.权限管理 4.新建虚拟用户映射账号 (系统账号) 5.pam认证文件 6.修改配置文件 7.1.创建虚拟用户文件 cd /etc/vsftpd/ vim vusers.list (奇数为用户名,偶数为密码) readuser 666666 Writeuser 666666 7.2. 生成db文件(数据库) 1. 建立虚拟FTP用户的帐号数据库文件用到db_load工具先安装软件包 rpm -ivh libdb-utils-5.3.21-19.el7.x86_64.rpm (默认已安装) 2. db_load -T -t hash -f vusers.list vusers.db 通db_load工具创建出Berkeley DB格式的数据库文件 7.3. 配置权限 chmod 600 vusers.* (保证其安全性) 7.4. 新建虚拟用户映射账号 (系统账号) useradd -d /viruser -s /sbin/nologin virtual 7.5. pam认证文件 在vsftpd服务器中,用户认证是通过PAM(Pluggable Authentication Module,可插拔认证模块)机制来实现的,该机制包含灵活的选择认证方式。 vim /etc/pam.d/vsftpd.vu(此文件名可自定义) 加入以下两行 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers 7.6. 修改主配置文件 vim /etc/vsftpd/vsftpd.conf(:g /^#/d) guest_enable=YES 启用用户映射功能(添加) guest_username=virtual 指定映射的系统用户名称(添加) pam_service_name=vsftpd.vu 指定新的PAM认证文件(修改) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) user_config_dir=/etc/vsftpd/dir 匿名配置文件目录(添加) mkdir dir 创建目录 7.7. 为虚拟用户建立独立的配置文件,启动服务并测试。 注:虚拟用户配置文件时,将主配置文件中自定义的匿名用户相关设置注释掉。 注:给映射用户的家目录设置o+r让虚拟用户有读取权限 1.用户可以上传:(anon_umask=022) anon_upload_enable=YES 2.用户可以创建目录: anon_mkdir_write_enable=YES 3.用户可以修改文件: anon_upload_enable=YES 允许上传文件(为了覆盖开启的) anon_other_write_enable=YES 允许重名和删除文件、覆盖 4.设置权限: readuser 用户可以登录,并可以浏览、下载,但无法上传 writeuser 用户可以登录,并可以浏览、下载,只可以上传文件 5.匿名用户或其他系统用户将不能登录 vim user_list,向其中添加readuser Writeuser vim /etc/vsftpd/vsftpd.conf (修改主配置文件) userlist_enable=YES //*启用user_list用户列表文件 userlist_deny=NO //*不禁用user_list列表中的用户登录 详 细 实 验 步 骤 结 果 验 证 问 题 及 分 析
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值