服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - FTP服务器 - 编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

2021-08-21 18:05笨小孩@GF 知行合一 FTP服务器

VSFTP是一套基于GPL发布的类Unix系统上使用的FTP服务器软件。这篇文章基于源码给大家分析编译安装 vsFTP 3.0.3的相关知识,感兴趣的朋友跟随小编一起看看吧

编译安装 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的详细解析

  • 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/

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 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

编译安装 vsFTP 3.0.3的详细解析

  • 默认配置: 
  • 默认配置: 
  • 主程序文件:/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的详细解析

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

编译安装 vsFTP 3.0.3的详细解析

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

  • 编辑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的详细解析

  • 编辑配置主文件 /etc/vsftpd/vsftpd.conf
  • cp /etc/vsftpd/vsftpd.conf{,.bak}
  • vim /etc/vsftpd/vsftpd.conf
  • #禁止匿名用户
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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的详细解析

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/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的详细解析

编译安装 vsFTP 3.0.3的详细解析

增加执行权限

编译安装 vsFTP 3.0.3的详细解析

  • 修改文件 /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的详细解析

  • 启动 vsftpd
  • servicevsftpd start

编译安装 vsFTP 3.0.3的详细解析

登陆测试

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

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

编译安装 vsFTP 3.0.3的详细解析

编译安装 vsFTP 3.0.3的详细解析

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

原文链接:https://blog.csdn.net/gaofei0428/article/details/117151295

延伸 · 阅读

精彩推荐
  • FTP服务器Serv-U安装使用图文教程

    Serv-U安装使用图文教程

    Serv-U FTP Server是一种被广泛运用的FTP服务器端软件,可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备.具有非常完备...

    服务器之家12262019-05-19
  • FTP服务器个人FTP建站域名解析serv-u常见问题解决方法之完全解决方案

    个人FTP建站域名解析serv-u常见问题解决方法之完全解决方案

    本文主要为大家分享个人FTP建站域名解析serv-u常见问题解决方法之完全解决方案,有需要的朋友可以参考下...

    网络10152021-08-01
  • FTP服务器FTP只能下载,上传不了是什么问题

    FTP只能下载,上传不了是什么问题

    问:FTP密码:**********上传地址:damotianyucn.gotoftp2.com ,FTP只能下载,上传不了是什么问题 答:您好,抱歉,直接在浏览器上访问ftp地址上传效率较慢,且不稳定...

    未知2232023-05-20
  • FTP服务器网站设置了整站只读,但是FTP软件还能上传文件

    网站设置了整站只读,但是FTP软件还能上传文件

    问:网站设置了整站只读,但是FTP软件还能上传文件,网站设置了整站只读,但是FTP软件还能上传文件 答:您好, www目录还是可读写的,需要将www目录也设...

    未知1822023-05-19
  • FTP服务器云服务器怎么ftp

    云服务器怎么ftp

    标题: 云服务器 的FTP使用指南:简单、安全、高效的文件传输方式 引言: 随着云计算技术的发展,云服务器成为了现代企业和个人用户常用的资源托管平...

    未知2002023-09-02
  • FTP服务器几种流行的ftp服务器软件推荐

    几种流行的ftp服务器软件推荐

    常用的 FTP服务器软件 有Wu-ftpd、Proftpd、vsFTPd及PureFTPd等,下面分别对这些软件逐一介绍。 1.Wu-ftpd 曾经是Internet的FTP守护程序,也是最早的FTP服务器软件之一...

    服务器之家9532019-05-27
  • FTP服务器三分钟配置一个FTP服务器

    三分钟配置一个FTP服务器

    现在的网速越来快,资费也相较以前降低了很多,随着电脑配置的不断提高,如何充分利用现有的资源条件来为自己日常办公提供便利呢?有固定外网IP的网...

    百度经验5722020-04-05
  • FTP服务器怎么获取ftp账号和密码?

    怎么获取ftp账号和密码?

    问:您好,请问我这个网站的ftp账号和密码是什么?我需要在里面上传一些东西谢谢,怎么获取ftp账号和密码? 答:您好,1,非常抱歉,备案平台这边仅能...

    未知1412023-06-02