编译安装 vsFTP 3.0.3的详细解析

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

编译安装 vsFTP 3.0.3的详细解析插图

漏洞详情

VSFTP是一套基于GPL发布的类Unix系统上使用的FTP服务器软件。该软件支持虚拟用户、支持两种认证方式(PAP或xinetd/tcp_wrappers)、支持带宽限制等。

VSFTP中存在安全漏洞,该漏洞源于程序没有正确处理‘deny_file选项。远程攻击者可利用该漏洞绕过访问限制。

以下产品及版本受到影响:VSFTP3.0.2及之前版本,opensuse13.1版本和13.2版本。

受影响的产品

Vsftpd Vsftpd 3.0.2

编译安装 vsFTP 3.0.3的详细解析插图1

FTP的登录一般有三种方式,分别是: 匿名用户形式:默认安装的情况下,系统只提供匿名用户访问,只需要输入用户anonymous/ftp,并将自己的Email作为口令即可登录。 本地用户形式:以/etc/passwd中的用户名为认证方式。 虚拟用户形式:支持将用户名和密码保存在文件或数据库中,将登录用户映射到指定的系统账号(/sbin/nologin)来访问资源,其中这些虚拟用户是FTP的用户。 实验环境: CentOS 7.5 192.168.2.3 firewalld、iptables 及 SElinux 均为关闭状态 下面实验采用基于PAM的虚拟用户,需要先用yum来安装PAM的组件: 需要使用 epel 源  yum -y install epel-release && yum -y install pam pam-devel db4-utils 在默认配置下 vsftpd 需要使用 nobody 用户 从官网上下载https://www.linuxfromscratch.org/blfs/view/svn/server/vsftpd.html wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gztar xf vsftpd-3.0.3.tar.gz cd vsftpd-3.0.3/

编译安装 vsFTP 3.0.3的详细解析插图2

编译安装 vsFTP 3.0.3的详细解析插图3

编译安装 vsFTP 3.0.3的详细解析插图4

vsftpd的源码包里并没有configure文件,直接编译安装 make clean && make -j 4 && make install  如果编译的时候报错 /usr/bin/ld: cannot find -lcap 查找该 .so 文件 find / -name “*libcap.so*” /usr/lib64/libcap.so.2.22 /usr/lib64/libcap.so.2 ln -sv /usr/lib64/libcap.so.2 /usr/lib64/libcap.so

编译安装 vsFTP 3.0.3的详细解析插图5

默认配置:  默认配置:  主程序文件:/usr/local/sbin/vsftpd 主配置文件:/etc/vsfptd.conf PAM认证文件:/etc/pam.d/vsftpd 匿名用户主目录:/var/ftp 匿名用户的下载目录:/var/ftp/pub   vsftpd的安全原则主要有两个: 只允许支持虚拟用户登录,关闭本地用户和匿名用户。 不允许使用root权限运行。   创建配置文件存放目录 mkdir /etc/vsftpd 拷贝新的配置文件到 /etc/vsftpd 目录

编译安装 vsFTP 3.0.3的详细解析插图6

创建用户以及共享目录、目录权限

编译安装 vsFTP 3.0.3的详细解析插图7

创建虚拟用户口令明文文件,使用前面安装的db4-utils组件生成口令认证文件:  vim /etc/vsftpd/access.txt

zhangsan   #用户名

123456      #密码

lisi

123456使用前面安装的db4-utils组件生成口令认证文件: db_load -T -t hash -f /etc/vsftpd/access.txt /etc/vsftpd/access.db

编译安装 vsFTP 3.0.3的详细解析插图8

编辑vsftpd的PAM认证文件: vim /etc/pam.d/vsftpd

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

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

编译安装 vsFTP 3.0.3的详细解析插图9

编辑配置主文件 /etc/vsftpd/vsftpd.conf cp /etc/vsftpd/vsftpd.conf{,.bak} vim /etc/vsftpd/vsftpd.conf #禁止匿名用户 anonymous_enable=NO local_enable=YES write_enable=YES #不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录 chroot_local_user=YES chroot_list_enable=NO #启动log xferlog_enable=YES xferlog_std_format=YES xferlog_file=/etc/vsftpd/vsftpd.log #开启虚拟用户 guest_enable=YES #FTP虚拟用户对应的系统用户 guest_username=vsftpd #PAM认证文件/etc/pam.d/vsftpd pam_service_name=vsftpd virtual_use_local_privs=YES

编译安装 vsFTP 3.0.3的详细解析插图10

编写 vsftpd 启动 脚本:/etc/init.d/vsftpd                                                                                                       

#!/bin/bash # # vsftpd This shell script takes care of starting and stopping # standalone vsftpd. # # chkconfig: – 60 50 # description: Vsftpd is a ftp daemon, which is the program # that answers incoming ftp service requests. # processname: vsftpd # config: /etc/vsftpd/vsftpd.conf # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = “no” ] && exit 0 [ -x /usr/local/sbin/vsftpd ] || exit 0 RETVAL=0 prog=”vsftpd” start() { # Start daemons. if [ -d /etc/vsftpd ] ; then for i in `ls /etc/vsftpd/*.conf`; do site=`basename $i .conf` echo -n $”Starting $prog for $site: ” /usr/local/sbin/vsftpd $i & RETVAL=$? [ $RETVAL -eq 0 ] && { touch /var/lock/subsys/$prog success $”$prog $site” } echo done else RETVAL=1 fi return $RETVAL } stop() { # Stop daemons. echo -n $”Shutting down $prog: ” killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case “$1″ in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/$prog ]; then stop start RETVAL=$? fi ;; status) status $prog RETVAL=$? ;; *) echo $”Usage: $0 {start|stop|restart|condrestart|status}” exit 1 esac exit $RETVAL

编译安装 vsFTP 3.0.3的详细解析插图11

编译安装 vsFTP 3.0.3的详细解析插图12

增加执行权限

编译安装 vsFTP 3.0.3的详细解析插图13

修改文件 /etc/xinetd.d/vsftpd ,不使用 xinetd 守护进程启动 vsftpd sed -in s/disable.*=.*/disable = yes/g /etc/xinetd.d/vsftpd sed -in s/disable.*=.*/disable = yes/g /etc/xinetd.d/vsftpdn

编译安装 vsFTP 3.0.3的详细解析插图14

启动 vsftpd servicevsftpd start

编译安装 vsFTP 3.0.3的详细解析插图15

登陆测试

编译安装 vsFTP 3.0.3的详细解析插图16

编译安装 vsFTP 3.0.3的详细解析插图17

编译安装 vsFTP 3.0.3的详细解析插图18

编译安装 vsFTP 3.0.3的详细解析插图19

编译安装 vsFTP 3.0.3的详细解析插图20

开机启动,重启测试 chkconfig vsftpd on

编译安装 vsFTP 3.0.3的详细解析插图21

编译安装 vsFTP 3.0.3的详细解析插图22

以上就是编译安装 vsFTP 3.0.3的详细内容,更多关于编译安装 vsFTP 3.0.3的资料请关注其它相关文章!

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容