RedHat 6自带的vsftpd是2.2.2版本,存在'ls.c' 远程拒绝服务漏洞(CVE-2011-0762),为了安全起见,通过编译源码包的方式将其升级到3.0.3版本。本文将介绍升级配置过程。

一、准备工作

1、系统环境:Redhat 6.5 x86_64

2、源码包:vsftpd-3.0.3.tar.gz

3、xinetd包:xinetd-2.3.14-39.el6_4.x86_64.rpm

4、卸载系统自带的vsftpd:rpm -e vsftpd-2.2.2-11.el6_4.1.x86_64


二、升级过程

1、安装xinetd,源码安装的vsftpd将使用xinetd来控制服务的启停

1
rpm -ivh /tmp/xinetd-2.3.14-39.el6_4.x86_64.rpm


2、解压vsftpd的源码包

1
tar zxf /tmp/vsftpd-3.0.3.tar.gz -C /tmp


3、编译安装vsftpd

1
2
3
cd /tmp/vsftpd-3.0.3
make
make install

如果make的时候出现关于/lib/libpam.so.0和/lib/libcap.so.1的报错,可以使用以下方法解决:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd /lib
mv libpam.so.0 libpam.so.0.bak
ln -s /lib64/libpam.so.0.82.2 /lib/libpam.so.0
mv libcap.so.1 libcap.so.1.bak
ln -s /lib64/libcap.so.1.10 /lib/libcap.so.1
 
cd /tmp/vsftpd-3.0.3
make clean
make
make install
 
cd /lib
rm -f libpam.so.0
mv libpam.so.0.bak libpam.so.0
rm -f libcap.so.1
mv libcap.so.1.bak libcap.so.1


四、配置vsftpd

主要是设置禁止匿名登录、允许上传、禁止切换目录、禁止root用户登录、使用xinetd管理vsftpd服务

1
2
3
4
5
6
7
8
9
10
11
12
cp /tmp/vsftpd-3.0.3/RedHat/vsftpd.pam /etc/pam.d/ftp
sed -i 's/lib/lib64/g' /etc/pam.d/ftp
cp /tmp/vsftpd-3.0.3/vsftpd.conf  /etc
sed -i 's/anonymous_enable=YES/#anonymous_enable=YES/' /etc/vsftpd.conf
sed -i 's/#local_enable=YES/local_enable=YES/' /etc/vsftpd.conf
sed -i 's/#write_enable=YES/write_enable=YES/' /etc/vsftpd.conf
sed -i 's/#local_umask=022/local_umask=002/' /etc/vsftpd.conf
sed -i 's/listen=YES/listen=NO/' /etc/vsftpd.conf
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd.conf
echo "allow_writeable_chroot=YES" >>/etc/vsftpd.conf
echo "userlist_deny=YES" >>/etc/vsftpd.conf
echo "root" >/etc/ftpusers


五、验证与测试

1、重启服务和设置服务开机启动

1
2
service xinetd restart
chkconfig xinetd on

RedHat 6编译升级vsftpd

2、查看vsftpd版本

1
vsftpd -v

RedHat 6编译升级vsftpd

3、测试

RedHat 6编译升级vsftpd

本文转自Mr大表哥jianlong1990 博客,原文链接:    http://blog.51cto.com/jiangjianlong/1971742   如需转载请自行联系原作者



相关文章: