编译安装vsFTP3.0.3的详细解析
漏洞详情
10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有苏仙免费网站建设让你可以放心的选择与我们合作。
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 用户 从官网上下载 wget 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.txtzhangsan #用户名
123456 #密码
lisi
123456使用
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/access
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/access
编写 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 0RETVAL=0prog="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 1esacexit $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的资料请关注脚本之家其它相关文章!
文章标题:编译安装vsFTP3.0.3的详细解析
分享地址:http://scyanting.com/article/cgeshj.html