百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

centos 中vsftpd 虚拟用户的搭建(centos7搭建vsftp)

nanshan 2024-11-04 13:07 27 浏览 0 评论

虚拟用户模式是一种相比较来说最为安全的验证方式,需要为FTP传输服务单独建立用户数据库文件,虚拟出用来口令验证的帐户信息,这些帐号是在服务器系统中不存在的,仅供FTP传输服务做验证使用,因此这样即便骇客破解出了帐号口令密码后也无法登录到服务器主机上面,有效的降低了破坏范围和影响。所以只要在配置妥当合理的情况下,虚拟用户模式要比匿名登录和本地登录更加的安全,同时配置的流程也稍微会复杂一些。

下面我给大家来讲解 !!

第一步: 创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码

我这里演示的是 例如分别创建出1和xieguan两个用户,密码为1和xieguan

[root@bogon ~]# vi /etc/vsftpd/vuser.list

1

1

xieguan

xieguan

第二步: 转化数据库,删除原明文信息文件

由于明文信息既不安全,也不能让vsftpd服务程序直接读取,因此需要使用db_load命令用HASH算法将这个原始的明文信息文件转换成数据库文件,并且再把数据库文件权限调小一些(避免其他人能看到数据库文件的内容),然后再把原始的明文信息文件删除掉。

[root@bogon ~]# db_load -T -t hash -f vuser.list vuser.db

选项-T允许应用程序能够将文本文件转译载入进数据库。 指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。

-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码 hash就是使用hash码加密 ,前提就是在linux下配置好Vsftp环境确保db_load命令可以使用就是将用户文本信息文件转换为db数据库并使用hash加密。

[root@bogon ~]# chmod 600 vuser.db 修改权限

[root@bogon ~]# rm -f vuser.list 删除原文件

第三步: 新建虚拟用户 ,指定主目录

建用于FTP服务存储文件的根目录以及虚拟用户映射的系统本地用户,FTP服务存储文件的根目录指的是当虚拟用户登陆后默认所在的位置,但在Linux系统中的每一个文件都是有所有者和所有组属性的,例如用1帐户创建了一个新文件,但是1这个用户在系统中是找不到的,就会导致Linux系统中这个文件权限出现错误。因此还需要再创建一个用来让虚拟用户映射的系统本地用户,简单来说就是让虚拟用户默认登陆到这个本地用户的主目录中,创建的文件属性也都归属于这个本地用户,避免本地Linux系统无法处理这种虚拟用户创建的文件属性权限。为了方便管理FTP资料,可以把这个用于虚拟用户映射的系统本地用户的家目录设置到/var目录中(因为该目录是用来存放经常发生改变的数据),并且为了安全起见把这个系统本地用户的终端设置成不允许登陆,这不会影响虚拟用户的使用,还可以有效避免骇客通过该用户登陆到服务器主机上面。

[root@bogon ~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@bogon ~]# ls -ld /var/ftproot 查看文件权限

[root@bogon ~]# chmod -Rf 755 /var/ftproot

第四步:建立用于支持虚拟用户的PAM认证文件

PAM 是什么 ,简单说 他就是linux 上的安全认证

[root@bogon ~]# vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vuser

account required pam_userdb.so db=/etc/vsftpd/vuser

第五步:为虚拟用户设置不同的权限

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

[root@bogon ~]# cd /etc/vsftpd/vusers_dir/

[root@bogon ~]# touch 1 ( 这里1用户 我们不做任何权限设置)

[root@bogon ~]# vi xieguan

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

第六步:修改下vsftpd主配置文件,添加user_config_dir

定义这两个虚拟用户不同权限的配置文件所存放的路径即可,为了让刚刚配置的服务程序新参数立即生效,咱们需要把vsftpd再来重新启动一下,并加入到开机启动项中

[root@bogon ~]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=virtual

allow_writeable_chroot=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.vu

userlist_enable=YES

tcp_wrappers=YES

user_config_dir=/etc/vsftpd/vusers_dir

重启vsftpd

第七步:设置SELinux域允许策略

[root@bogon ~]# getsebool -a | grep ftp 查看 SElinux 策略

[root@bogon ~]# setsebool -P ftpd_full_access=on 把ftpd_full_access 开启 -P 表示为永久生效

这样 我们的vsftpd 虚拟用户 就配置好了 !!!!接下来 我们来测试权限

[root@bogon ~]# ftp 192.168.56.93

我们用xieguan这个用户测试

我们再用 1用户登录,测试:

很显然 我们1用户没有设置任何权限 ,所以1用户也就无法访问 ftp

对于 虚拟用户 的主目录 ,我是映射在virtual本地用户的 /var/ftproot目录中的 这样 更 安全。

最后我们来看看 刚刚用 xieguan 用户创建的123 文件是否 在/var/ftproot目录中

结果表明 123文件在/var/ftproot目录中

这样我们的 vsftpd就搭建成功了 谢谢大家 如果小编有什么写的 不对的地方 欢迎大家在下方评论区 留言!!

相关推荐

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...

教你如何在Linux中删除分区(CLI篇)

文接上篇,继续以Ubuntu系统为例。删除分区前,急得重要数据备份!备份!备份用命令操作分区,用的最多的莫过于fdisk了,几乎所有的Linux发行版都默认带有fdisk。首先要知道的是,你想删除的分...

敲完就让你提桶跑路的Linux命令(敲完就让你提桶跑路的linux命令是什么)

不谨慎可能就会让你提桶的Linux命令!!!删除文件rm-rf该命令是删除文件或文件夹等最快的方式之一。删除后的内容很难恢复,如果删除系统文件可能会导致系统崩坏。>rm-rf/#强制...

Log文件可以删除吗(taxukeylog文件可以删除吗)

Log文件(日志文件)是否可以删除取决于具体场景和文件类型。以下是详细分析和建议:一、哪些Log文件可以删除?非关键应用日志用户级应用日志:如浏览器缓存日志、游戏临时日志等,通常不影响系统运行,可定期...

Linux 删除空目录(linux直接删除目录)

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或...

在 Windows 11 或 10 上删除、创建和格式化分区

在Windows11或10上删除、创建和格式化分区假设您的现有电脑使用的是传统硬盘,但现在您想再添加一个硬盘或SSD。当然,后者将用于启动操作系统,而前者将作为纯数据存储。在成功将操作系统...

如何使用 Apt Clean 命令清除 APT 缓存?

APT(AdvancedPackageTool)是Debian系Linux发行版的包管理工具,用于处理软件包的安装、升级和依赖管理。在使用apt命令(如aptinstall、apt...

Linux 磁盘空间不够用?5 招快速清理文件,释放 10GB 空间不是梦!

刚收到服务器警告:磁盘空间不足90%!装软件提示Nospaceleftondevice!连日志都写不进去,系统卡到崩溃?别慌!今天教你5个超实用的磁盘清理大招,从临时文件到无用软件一键搞定...

Linux清空日志方法(linux怎么清理日志)

方法1:使用>重定向>/path/to/logfile或(需要权限时):sudosh-c'>/var/log/logfile'方法2:使用trun...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Linux操作系统之常用命令(linux操作系统之常用命令有哪些)

Linux操作系统一、常用命令1.系统(1)系统信息arch显示机器的处理器架构uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系...

理解linux内核的vmlinuz和initrd(linux内核原理及分析)

Originaladdress:http://www.chenjunlu.com/2010/11/understanding-of-vmlinuz-initrd-and-system-map/1....

Linux纯干货知识总结|面试专用(linux面试宝典)

学习Linux的重要性相信不用我多说大家也明白,以下是小编总结的常用Linux基础知识以及面试常问的Linux命令,希望能帮助大家更规范地理解和使用~绝对路径和相对路径绝对路径以正斜杠开始完整的文件的...

Linux基础知识之启动流程分析(简述linux启动流程)

Linux系统启动原理:1.poweron开机。2.开机自检:电脑开机后首先加载BIOS(BasicInput/OutputSystem基本输入输出系统)。BIOS程序首先检查计算机能否满足运...

Java程序员必备——Linux的面试常见问题及面试题!你知道多少?

一.常用命令1.编辑相关①.awkNF:字段总数NR:第几行数据FS:分隔字符②.sed-n-i直接修改4a:在第四行后添加4i:在第四行前插入1,5csting:用sting替换1到5行...

取消回复欢迎 发表评论: