• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    编译安装 vsFTP 3.0.3的详细解析

    发布者: 娅水9213 | 发布时间: 2025-8-15 18:12| 查看数: 57| 评论数: 0|帖子模式


    漏洞详情
    VSFTP是一套基于GPL发布的类Unix系统上使用的FTP服务器软件。该软件支持虚拟用户、支持两种认证方式(PAP或xinetd/tcp_wrappers)、支持带宽限制等。
    VSFTP中存在安全漏洞,该漏洞源于程序没有正确处理‘deny_file'选项。远程攻击者可利用该漏洞绕过访问限制。
    以下产品及版本受到影响:VSFTP3.0.2及之前版本,opensuse13.1版本和13.2版本。
    受影响的产品
    Vsftpd Vsftpd 3.0.2

         
    • 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.gz   
    • tar xf vsftpd-3.0.3.tar.gz   
    • cd vsftpd-3.0.3/



         
    • 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

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

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

         
    • 创建虚拟用户口令明文文件,使用前面安装的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

         
    • 编辑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

         
    • 编辑配置主文件 /etc/vsftpd/vsftpd.conf   
    • cp /etc/vsftpd/vsftpd.conf{,.bak}   
    • vim /etc/vsftpd/vsftpd.conf   
    • #禁止匿名用户
    1. anonymous_enable=NO
    2. local_enable=YES
    3. write_enable=YES

    4. #不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录
    5. chroot_local_user=YES
    6. chroot_list_enable=NO

    7. #启动log
    8. xferlog_enable=YES
    9. xferlog_std_format=YES
    10. xferlog_file=/etc/vsftpd/vsftpd.log

    11. #开启虚拟用户
    12. guest_enable=YES
    13. #FTP虚拟用户对应的系统用户
    14. guest_username=vsftpd
    15. #PAM认证文件/etc/pam.d/vsftpd
    16. pam_service_name=vsftpd

    17. virtual_use_local_privs=YES
    复制代码

    编写 vsftpd 启动 脚本:/etc/init.d/vsftpd                                                                                                      
    1. #!/bin/bash
    2. #
    3. # vsftpd      This shell script takes care of starting and stopping
    4. #             standalone vsftpd.
    5. #
    6. # chkconfig: - 60 50
    7. # description: Vsftpd is a ftp daemon, which is the program
    8. #              that answers incoming ftp service requests.
    9. # processname: vsftpd
    10. # config: /etc/vsftpd/vsftpd.conf
    11. # Source function library.
    12. . /etc/rc.d/init.d/functions
    13. # Source networking configuration.
    14. . /etc/sysconfig/network
    15. # Check that networking is up.
    16. [ ${NETWORKING} = "no" ] && exit 0
    17. [ -x /usr/local/sbin/vsftpd ] || exit 0
    18. RETVAL=0
    19. prog="vsftpd"
    20. start() {
    21.         # Start daemons.
    22.         if [ -d /etc/vsftpd ] ; then
    23.                 for i in `ls /etc/vsftpd/*.conf`; do
    24.                         site=`basename $i .conf`
    25.                         echo -n $"Starting $prog for $site: "
    26.                         /usr/local/sbin/vsftpd $i &
    27.                         RETVAL=$?
    28.                         [ $RETVAL -eq 0 ] && {
    29.                            touch /var/lock/subsys/$prog
    30.                            success $"$prog $site"
    31.                         }
    32.                         echo
    33.                 done
    34.         else
    35.                 RETVAL=1
    36.         fi
    37.         return $RETVAL
    38. }
    39. stop() {
    40.         # Stop daemons.
    41.         echo -n $"Shutting down $prog: "
    42.         killproc $prog
    43.         RETVAL=$?
    44.         echo
    45.         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    46.         return $RETVAL
    47. }
    48. # See how we were called.
    49. case "$1" in
    50.   start)
    51.         start
    52.         ;;
    53.   stop)
    54.         stop
    55.         ;;
    56.   restart|reload)
    57.         stop
    58.         start
    59.         RETVAL=$?
    60.         ;;
    61.   condrestart)
    62.         if [ -f /var/lock/subsys/$prog ]; then
    63.             stop
    64.             start
    65.             RETVAL=$?
    66.         fi
    67.         ;;
    68.   status)
    69.         status $prog
    70.         RETVAL=$?
    71.         ;;
    72.   *)
    73.         echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    74.         exit 1
    75. esac
    76. exit $RETVAL
    复制代码


    增加执行权限

         
    • 修改文件 /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

         
    • 启动 vsftpd   
    • servicevsftpd start

    登陆测试





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


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

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表