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
|
2、查看vsftpd版本
1
|
vsftpd -
v
|
3、测试
本文转自Mr大表哥jianlong1990 博客,原文链接: http://blog.51cto.com/jiangjianlong/1971742 如需转载请自行联系原作者