虚拟用户模式

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

操作方法

  • 01

    创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码,例如咱们分别创建出张三和李四两个用户,密码均为redhat: [root@linuxprobe ~]# cd /etc/vsftpd/ [root@linuxprobe vsftpd]# vim vuser.list zhangsan redhat lisi redhat 但明文信息既不安全,也不能让vsftpd服务程序直接读取,咱们还需要使用db_load命令用HASH算法将这个原始的明文信息文件转换成数据库文件,并且出于安全起见,咱们再把数据库文件权限调小一些,然后再把原始的明文信息文件删除掉。 [root@linuxprobe vsftpd]# db_load -T -t hash -f vuser.list vuser.db [root@linuxprobe vsftpd]# file vuser.db vuser.db: Berkeley DB (Hash, version 9, native byte-order) [root@linuxprobe vsftpd]# chmod 600 vuser.db [root@linuxprobe vsftpd]# rm -f vuser.list

  • 02

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

  • 03

    建立用于支持虚拟用户的PAM认证文件,PAM可插拔认证模块(Pluggable Authentication Modules)是一种认证机制,通过一些动态链接库和统一的API将系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活的调整服务程序的不同认证方式。要想把PAM功能和作用讲透至少要一个章节的篇幅才可以,所以有兴趣的同学们可以看一下《Linux就该这么学》的进阶篇书籍,里面会给大家详细的讲解到,通俗来讲PAM是一组安全机制的模块(插件),让系统管理员可以轻易的调整服务程序的认证方式,而可以不必对应用程序做任何的修改,易用性很强。PAM采取了分层设计的思想——应用程序层、应用接口层、鉴别模块层,如图11-2所示: 新建一个用于虚拟用户验证的PAM文件替换掉原始的PAM文件,其中PAM文件内的db=参数为刚刚用db_load生成出的账户密码数据库文件的路径,但不用写后缀: [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu auth             required           pam_userdb.so db=/etc/vsftpd/vuser account       required           pam_userdb.so db=/etc/vsftpd/vuser

  • 04

    在vsftpd服务程序主配置文件中修改PAM支持文件,PAM API作为应用程序层与鉴别模块层的连接纽带,让应用程序可以根据需求灵活的在其中插入所需的鉴别功能模块,当应用程序需要PAM认证时,一般在应用程序中定义负责其认证的PAM配置文件,真正灵活的实现了认证功能。例如在vsftpd服务程序主配置文件中默认就写有参数pam_service_name=vsftpd,表示登录FTP服务器时是根据/etc/pam.d/vsftpd的文件内容进行安全认证的,咱们现在需要做的就是把vsftpd主配置文件中原先的PAM认证文件vsftpd修改成咱们自建的vsftpd.vu即可。 [root@linuxprobe ~]# vim /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

  • 05

    为虚拟用户设置不同的权限,虽然张三和李四两个帐户都是咱们用于FTP服务验证的虚拟帐户,但也想在他们之间区别对待,比如只允许张三用户能够上传、创建、修改、查看、删除文件,而李四只能查看文件,这其实也是可以让vsftpd服务程序实现的,咱们只需要新建一个目录,在里面分别创建两个以张三和李四命名的文件,其中在张三命名的文件中写入相关允许的权限(使用匿名用户的参数): [root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/ [root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/ [root@linuxprobe vusers_dir]# touch lisi [root@linuxprobe vusers_dir]# vim zhangsan anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 然后再次修改下vsftpd主配置文件,添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径即可,为了让刚刚配置的服务程序新参数立即生效,咱们需要将vsftpd再来重新启动一下,并加入到开机启动项中: [root@linuxprobe ~]# vim /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 [root@linuxprobe ~]# systemctl restart vsftpd [root@linuxprobe ~]# systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service

  • 06

    设置SELinux域允许策略后尝试使用虚拟用户模式登陆FTP服务器,同学们有了刚刚两个验证模式的配置经验后一定能猜到SELinux会继续来“捣乱”,所以先按照刚刚的步骤开启SELinux域的允许策略吧,以免再次出现类似创建目录的操作失败的操作: [root@linuxprobe ~]# getsebool -a | grep ftp ftp_home_dir –> off ftpd_anon_write –> off ftpd_connect_all_unreserved –> off ftpd_connect_db –> off ftpd_full_access –> off ftpd_use_cifs –> off ftpd_use_fusefs –> off ftpd_use_nfs –> off ftpd_use_passive_mode –> off httpd_can_connect_ftp –> off httpd_enable_ftp_server –> off sftpd_anon_write –> off sftpd_enable_homedirs –> off sftpd_full_access –> off sftpd_write_ssh_home –> off tftp_anon_write –> off tftp_home_dir –> off [root@linuxprobe ~]# setsebool -P ftpd_full_access=on 此处咱们不仅能够使用虚拟用户模式登陆到FTP服务器中了,还可以分别使用张三和李四用户检验下他们不同的权限,有没有特别好玩呢~当然读者们在工作中要学会灵活的搭配参数,不要完全按照实验操作而脱离客户需求。 [root@linuxprobe ~]# ftp 192.168.10.10 Connected to 192.168.10.10 (192.168.10.10). 220 (vsFTPd 3.0.2) Name (192.168.10.10:root): lisi 331 Please specify the password. Password:此处输入虚拟用户的密码 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> mkdir files 550 Permission denied. ftp> exit 221 Goodbye. [root@linuxprobe ~]# ftp 192.168.10.10 Connected to 192.168.10.10 (192.168.10.10). 220 (vsFTPd 3.0.2) Name (192.168.10.10:root): zhangsan 331 Please specify the password. Password:此处输入虚拟用户的密码 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> mkdir files 257 "/files" created ftp> rename files database 350 Ready for RNTO. 250 Rename successful. ftp> rmdir database 250 Remove directory operation successful. ftp> exit 221 Goodbye.

(0)

相关推荐

  • CentOS 6.4 下安装vsftpd并配置虚拟用户

    一:安装vsftpd 查看是否已经安装vsftpd 复制代码 代码如下: rpm -qa | grep vsftpd 如果没有,就安装,并设置开机启动 复制代码 代码如下: yum -y instal ...

  • Windows7的虚拟XP模式对硬件要求怎么样

    微软在下一代操作系统Windows 7中支持“虚拟XP模式”,XP模式可以满足 Windows 7用户运行虚拟XP环境下的软件的要求。但如果用户希望顺利使用这一服务,需首先确定自己机器硬件 配置是否达 ...

  • Linux搭建高效FTP虚拟用户全过程

    VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。 以下全过程是在Centos 5 下操作 ...

  • win7中虚拟xp模式存在缺陷

    如果装了win7系统的人还是很想念xp系统,或者只是稍微有点想念,或或者有的人根本没用过xp系统就用win7系统了,那么你可以用下win7虚拟xp模式来体验一下xp系统 ,当然是有缺陷的。 1 虚拟工 ...

  • Vsftpd服务器虚拟用户配置

    系统环境是: CentOS 5.5 x86_64 vsftpd有三种用户模式:匿名用户、本地用户、虚拟用户。本次我们来讲解虚拟用户,它的优点是安全性高,便于管理。 代码如下 # 通过yum直接在线装v ...

  • Ubuntu无法进入系统该怎么进入单用户模式?

    最近在vbox虚拟机上的Ubuntu搭建一个新的开发环境,由于一时操作失误,无法再进入系统,这时想起还用个单用户模式可以进入,然后恢复原来的配置.下面就简单介绍一下进入单用户模式的方式,仅供参考哦. ...

  • 分享Linux搭建高效FTP虚拟用户全过程

    VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 步骤/方法 01 VSFTP是一个基于 ...

  • win7下的虚拟XP模式可能存在6大问题

    操作方法 01 02 win7下的虚拟XP模式可能存在6大问题: 1.虚拟工具的欠缺 如果你用过VMware工作站这样的商业产品,你会感觉xp模式的功能非常基本.XP模式无法复制虚拟操作系统或创建快照 ...

  • CentOS 6.2 快速配置vsftpd虚拟用户的步骤分享

    比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 之前就有弄过vsftpd,就不再介绍了! 安装: 复制代码 代码如下: [root@linuxde ~]# ...