CentOS6源码安装VSFTPD3

本文详细介绍了在CentOS6系统中如何从官方支持的VSFTPD V2.2.2版本升级到V3.0.3,包括关闭服务、卸载旧版、安装依赖、编译安装新版本、配置文件修改、启动脚本创建、验证等步骤,解决了因安全漏洞无法限制访问而需升级的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还是碰到老问题:安全扫描,由于CentOS6上VSFTPD最高支持到V2.2.2,目前已经是官方支持的最新版本(发布了几年...)
但有安全漏洞,又没法通过限制访问进行控制,只能想办法升级到最新版本了。

关闭服务 service vsftpd stop service iptables stop sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;
检查旧版vsftpd版本 vsftpd -v
卸载旧版vsftpd yum remove -y vsftpd

安装依赖包: yum install -y libcap libcap-devel tcp_wrappers tcp_wrappers-devel
编译安装源码包 tar -xzvf vsftpd-3.0.3.tar.gz cd vsftpd-3.0.3
修改显示 sed -i 's/UTF8 ON/DISABLE UTF8 ON/g' opts.c
编译安装

make &;&; make install`
mkdir /etc/vsftpd/ 
cp vsftpd.conf /etc/vsftpd/
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd #PAM认证文件 
sed -i 's/lib///lib64///g' /etc/pam.d/vsftpd 
如果不成功,手动修改/etc/pam.d/vsftpd中的lib为lib64

启动并查看

vsftpd /usr/local/sbin/vsftpd &
netstat -tunlp | grep 21 
/usr/local/sbin/vsftpd -v 
cp /usr/local/sbin/vsftpd /usr/sbin/vsftpd 

制作启动脚本 vim /etc/xinetd.d/vsftpd disable = yes
重启xinetd服务service xinetd restart

修改启动脚本:

vim  /etc/init.d/vsftpd 
    #!/bin/bash
    #
    # vsftpd      This shell script takes care of starting and stopping
    #             standalone vsftpd. Customized to be used with CentOS 5.4
    #             and Monit by creating PID files for each process
    #
    # 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

    RETVAL=0
    prog="vsftpd"
    site="$prog"
    sbin="/usr/sbin/vsftpd"
    conf="/etc/vsftpd/vsftpd.conf"
    pidfile="/var/run/vsftpd/vsftpd.pid"

    [ -d /var/run/$prog ] || mkdir -p /var/run/$prog

    start() {

        [ -x $sbin ] || exit 1
        [ -r $conf ] || exit 1

        if [ -f $pidfile ]; then
            pid=`cat $pidfile`
            ps -ef | grep -v grep | grep $pid | grep $sbin > /dev/null
            if [ $? -eq 0 ]; then
                echo "$prog already running!"
                exit 1
            else
                rm -f $pidfile
            fi
        fi

        echo -n $"Starting $prog: "
        $sbin $conf &
        [ $? -eq 0 ] && success || failure
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
        pidcmd=`ps -ef | grep -v grep | grep $sbin | awk '{print $2}'`
        echo $pidcmd > $pidfile
        echo
        return $RETVAL
    }


    stop() {

        echo -n $"Shutting down $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
        rm -f $pidfile
        return $RETVAL

    }

    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 2
    esac

    exit $RETVAL

授权755

chmod  755  /etc/init.d/vsftpd 
chkconfig vsftpd on 

修改配置文件

vim /etc/vsftpd/vsftpd.conf
---

验证

service vsftpd restart 
vsftpd -v

贴一个主要配置:

local_root=/home
chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES

chroot_list文件不包含要使用的FTP用户名!

解决报错500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

另,和以前版本不一样配置(估计没用):

cat /etc/vsftpd/user_config/ftpuser
write_enable=YES

转载于:https://www.cnblogs.com/music378/p/9712729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值