类似以下更新即可
rpm -Uvh vsftpd-2.2.2-24.el6.x86_64.rpm
不懂为什么对于新版本可能只有源码包而没有rpm等包,如此只能以源码更新了。
tar -zxf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
make
make install
service vsftpd restart
vsftpd源码包内有INSTALL文件,该文件是安装的说明文档。
该文件最关键的步骤仍是make和make install其他内容是前置条件和以xinted方式启动的说明。
其实完全可以先装个rpm包这样前置条件就不用自己操心了,正常起动即可xinted不用管。
make报错:make: gcc: Command not found
解决:yum install gcc-c++
说明:直接安装gcc也是可以的;gcc-c++只是c++的编译器,gcc是包括c++在内的多种语言的编译器
make报错:/usr/bin/ld: cannot find -lcap
解决:yum install libcap-devel
说明:对于/usr/bin/ld: cannot find -lxxx类问题,只要类似地安装libxxx-devel(CentOS)或libxxx-dev(Ubuntu)即可
启动报错:Starting vsftpd for vsftpd: 500 OOPS: config file not owned by correct user, or not a file
/etc/vsftpd/vsftpd.conf文件属主不对:chown -R root:root /etc/vsftpd
最新的vsftpdvsftpd-2.2.2-24.el6.x86_64.rpm也没有解决'ls.c' 远程拒绝服务漏洞(CVE-2011-0762),而3.0版本又没有对应rpm包只能以源码安装
在实际操作发现,有些机器以源码形式升级后版本号不知何故并没有改变,为此需手动修改版本号以避免扫描器误报(由此如果只是要躲避扫描器扫描可以不用升级直接修改版本号即可)
vsftpd的banner中默认有当前版本号,可通过/etc/vsftpd/vsftpd.conf中的ftpd_banner项来自定义banner信息
但如果只是将ftpd_banner赋为随意语句,测试发现在部分操作系统上扫描器还是可以猜出大致版本号;为此我们最稳委的做法是将其值以默认banner信息的格式赋值:
sed -i 's/ftpd_banner=/#ftpd_banner=/' /etc/vsftpd/vsftpd.conf
sed -i '/ftpd_banner=/a\ftpd_banner=(vsFTPd 3.3.3)' /etc/vsftpd/vsftpd.conf
上边语句的意思是,找到ftpd_banner将其前面的#去除,然后赋值为(vsFTPd 3.3.3)。如果不习惯使用sed,可以使用编缉器打开/etc/vsftpd/vsftpd.conf编缉
最后需要重启vsftpd使配置生效,重启命令service vsftpd restart: