环境:Redhat Enterprise Linux AS 4.0 update2(i386)php
不提示,均表示以root权限执行。html
[注:]//为注释符,如“// 创建MySQL组”,即为一句注释。mysql
我有一块硬盘160 G ,内存1G ,分区以下:linux
/ 文件格式:Ext3 容量大小:8Gnginx
(交换分区,无) 文件格式:Swap 容量大小:2 G (2G=2048M,约为内存值的2倍)c++
/home1 文件格式:Ext3 容量大小:剩余全部空间,约150Gweb
所需软件:sql
vsftpd-2.0.4.tar.gz数据库
系统环境:apache
linux as4操做系统(注意!我这个是32位的操做系统!!!):不安装自带的apache和mysql,要安装编辑器(不少地方要用到),Windows文件服务器和DNS服务器,开发那一组就装个开发工具,其他全不安装。
建议你把软件包选择.tar.gz的,而且统一放到/usr/local/src目录下。
另外,我准备把全部软件安装到/home1/opt/下,ftp的存储目录在/home1/var/ftp下。
编译参数(即./configure 。。。)能够设置屡次,以最后一次的为准。
.tar.gz的包,用tar -zxvf xxxx.tar.gz 方式解压;
.tar.bz或者.tar.bz2的包,用tar –xjvf xxxx.tar.bz2方式解压.
<!--[if !supportLists]-->1、 <!--[endif]-->安装:
最高权限的系统用户不能用root为用户名,由于vsftpd从安全角度考虑,拒绝root。
创建的系统用户均属已有的ftp组。其权限各异。
咱们安装的vsftpd版本是2.0.4 ,能够在官方网站http://vsftpd.beasts.org/下载到这个版本的源码包vsftpd-2.0.4.tar.gz。
编译安装vsftpd须要root权限。
默认配置下,vsftpd须要使用nobody用户和目录/usr/share/empty 。默认安装Redhat Enterprise Linux 4.0时会自动建立nobody用户。
<!--[if !supportLists]-->1. <!--[endif]-->使用如下命令验证nobody用户是否已经存在:
# useradd nobody
若是用户已经存在,系统会出现“useradd:user nobody exists”的提示,若是用户不存在,以上命令将建立nobody用户。
<!--[if !supportLists]-->2. <!--[endif]-->使用如下命令验证/usr/share/empty目录是否存在或建立它:
# mkdir /usr/share/empty
<!--[if !supportLists]-->3. <!--[endif]-->编译安装
# cd /usr/local/src //进入此放软件包的目录
# tar –zxvf vsftpd-2.0.4.tar.gz //解压
# cd vsftpd-2.0.4 //进入解开包的目录
(解压后,没有configure这个东西,貌似不能指定安装路径……)
# make //编译
# make install //安装
# cp vsftpd.conf /etc/ //复制vsftpd配置文件到/etc下
# cp RedHat/vsftpd.pam /etc/pam.d/ftp //容许本地用户登录服务器,这个cp是为了ftp认证用的,即用户登陆的时候是须要经过pm.d 这个认证的
安装结束!看看安装了些什么。下面是make install命令的精简输出:
/usr/local/sbin/vsftpd //这是vsftpd的主程序,就是它提供了FTP服务
/usr/share/man/man8/vsftpd.8 //这是vsftpd的man手册
/usr/share/man/man5/vsftpd.conf.5 //这是vsftpd的man手册
/etc/xinetd.d/vsftpd //这是vsftpd的xinetd方式的启动配置文件
# vi /etc/vsftpd.conf //咱们须要在最后加入一句listen=YES ,这样作的缘由是让服务器独立的运行,让服务器本身监听,按Esc,:wq 保存并退出.
# vsftpd & //使vsftpd之后台方式运行
如今,基本安装就完成了。
测试一下:
# ftp localhost //链接本地服务器
提示输入用户名的时候,输入:anonymous
提示输入密码,由于匿名用户密码默认为空,咱们直接回车
发现不行,找不到/var/ftp目录,为何?由于匿名用户默认登入时的启始目录是/var/ftp ,而咱们如今尚未创建/var/ftp这个目录!并且我也不打算ftp的目录默认为/var/ftp ,我准备设置ftp的目录位置为/home1/var/ftp .这个问题没关系,我也没打算让匿名用户可以访问。
若是你要容许虚拟用户访问的话,能够在主配置文件vsftpd.conf中指定“anon_root=目录”。
Ok,既然不行,那么,接着,在ftp提示符下
ftp>bye //退出
<!--[if !supportLists]-->2、 <!--[endif]-->配置
1.创建ftp主目录
我要把ftp主目录设在/home1/var/ftp
# mkdir /home1/var //建立var目录
# mkdir /home1/var/ftp //建立ftp主目录
# chown root.root /home1/var/ftp //将目录全部者改成root,组也改成root
# chmod og-w /home1/var/ftp //权限设定为其余用户和root组的人不能写入,只能读和进入
2.配置自动启动
默认状况下,编译安装vsftpd会生成vsftpd的xinetd启动方式的配置脚本/etc/xinetd.d/vsftpd(xinetd是inetd(一般称为Internet超级服务程序,提供被动式的伺服服务)的一个扩展)。这个脚本会使vsftpd在开机时自动启动,关机时自动关闭。可是xinetd方式不能应付FTP负载压力很大的状况,因此咱们须要独立地控制vsftpd的运行。下面,咱们要设置vsftpd为独立方式启动,即单独方式(Standalone方式)。
# vi /etc/vsftpd.conf
在文件末尾添加:listen=YES //这步咱们安装的时候已经作过了,这句话的意思是让vsftpd以单独方式独立地运行并监听(在规定的端口提供服务。若是没有这句话或者设置了“listen=NO”,那么vsftpd只能以xinetd的方式来启动,强行以单独方式启动会出现:“500 oops:vsftpd:not configured for standalone,must be started from inetd”的错误信息)。
# vi /etc/xinetd.d/vsftpd
把“disable=no”改为“disable=yes”,让xinetd服务再也不负责vsftpd的启动。否则以单独方式启动时会出现“500 OOPS:could not bind listening IPv4 socket”的提示。
# service xinetd restart //重启xinetd服务以使上面的修改生效
接下来,咱们偷个懒,借用一下RPM包中的文件做为咱们启动、中止vsftpd的脚本。
将第1张安装光盘放入光驱,
# mount /dev/cdrom /media/cdrom //挂载光驱
# cd /media/cdrom/RedHat/RPMS
# cp vsftpd-2.0.1-5.EL4.3.i386.rpm /tmp //复制rpm文件到tmp目录中
而后,直接在文件管理器中浏览/tmp目录,在rpm文件上右击,在弹出的菜单中选择“用“归档管理器”打开”命令,将RPM包中的文件/./etc/rc.d/init.d/vsftpd解压缩到/etc/rc.d/init.d目录中。注意,归档管理器中的文件路径是“/./etc/…”。
咱们借用的这个文件就是RedHat提供的控制脚本文件。因为编译安装和RPM包安装的文件路径不一样,因此还须要作一点辅助工做:
# cd / //回到/提示符下
# mkdir /etc/vsftpd //建立/etc/vsftpd目录
# ln -s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf //vsftpd主配置文件的软链接
# ln -s /usr/local/sbin/vsftpd /usr/sbin/vsftpd //vsftpd主程序的软链接
如今测试一下这个脚本:
# /etc/rc.d/init.d/vsftpd start //开始
# /etc/rc.d/init.d/vsftpd restart //重启
# /etc/rc.d/init.d/vsftpd stop //中止
# /etc/rc.d/init.d/vsftpd status //状态查询
都看到绿色的[肯定]就能够了。
下面,设置服务的自动开停:
# chkconfig --level 3 vsftpd on //配置/etc/rc.d/init.d/vsftpd在运行级别为3的时候(3:表明彻底多用户模式)由系统来控制启动。这个命令会在/etc/rc3.d目录中建立一个链接文件S60vsftpd 。其中“S”是“start”,表示系统在启动时运行此链接。
# chkconfig --level 5 vsftpd on //同上理,(5:表明X11)
# ll /etc/rc3.d/ | grep vsftpd //查看是否已建立链接文件
# ll /etc/rc5.d/ | grep vsftpd //查看是否已建立链接文件
3.日志文件的配置
查看一下日志,日志文件vsftpd.log应该已经存在了:
# cat /var/log/vsftpd.log
<!--[if !supportLists]-->4. <!--[endif]-->配置用户访问权限(我使用虚拟用户)
个人FTP的目录结构以下:
/home1/var/ftp
|--pub //管理员目录
|--incoming //收入,杂项
|--www //网站目录
|--pub1 //公司目录
|--pub2 //员工目录
建立目录:
# mkdir /home1/var/ftp/pub //建立管理员目录
# mkdir /home1/var/ftp/incoming //建立收入目录
# mkdir /home1/var/ftp/www //建立网站目录
# mkdir /home1/var/ftp/pub1 //建立公司目录
# mkdir /home1/var/ftp/pub2 //建立员工目录
建立真实用户vsftpdVU,之后的虚拟用户就用这个用户来映射(好比:vsftpdVU是咱们建立的真实用户,而zhangsan是为ftp建立的虚拟用户,当用zhangsan访问ftp时,ftp服务器会把该用户映射成vsftpdVU用户):
//建立真实的系统用户vsftpdVU,-s /sbin/nologin是让其不能登录系统,-g ftp将其加入ftp组,-d /home1/var/ftp指定用户登入时的启始目录为/home1/var/ftp ,-M不自动创建用户的登入目录
# useradd -s /sbin/nologin -g ftp -d /home1/var/ftp -M vsftpdVU
//设定密码(这个密码好像无论设不设置,之后直接用这个用户登陆ftp都不行…)
# passwd vsftpdVU //输完敲回车,而后输入两次密码,再回车即设定
//设置/home1/var/ftp目录及其子目录的属主为vsftpdVU,参数-R别忘记,循环设定子目录属主的
# chown vsftpdVU.ftp /home1/var/ftp/ -R
//设置/home1/var/ftp目录及其子目录的读写权限为仅全部者可读、写、执行
# chmod 700 /home1/var/ftp –R
-------------------------------------------------------------------------------
//下面这两句要设一下权限,否则你的PHP网站无法运行,会显示一个空白背景的页面,告诉你“Forbidden”,就是禁止访问
# chmod 755 /home1/var/ftp //更改ftp目录权限为全部者可读、写、执行,同组用户可读和执行
# chmod 755 /home1/var/ftp/www //更改网站目录权限为全部者可读、写、执行,同组用户和其余用户可读和执行
-------------------------------------------------------------------------------
# finger vsftpdVU //确认一下该用户
<!--[if !supportLists]-->5. <!--[endif]-->使用虚拟用户
# vi /etc/vsftpd/vsftpd.conf //修改主配置文件
设置以下:
anonymous_enable=NO //禁止匿名用户访问
local_enable=YES //容许本地用户访问
write_enable=NO //禁止写权限
anon_upload_enable=NO //禁止匿名用户上传文件
anon_mkdir_write_enable=NO //禁止匿名用户建立目录
新添加如下几句:
anon_other_write_enable=NO //禁止匿名用户除上传和建立目录外其余权限,好比删除和重命名
chroot_local_user=YES //本地用户登陆后将被限制在其家目录中
guest_enable=YES //容许虚拟用户(即:全部非匿名用户都以guest身份登陆,guest经过guest_username设定,来映射到一个指定用户)
guest_username=vsftpdVU //把虚拟用户映射成系统用户vsftpdVU
按Esc,键入:wq保存退出。
//建立虚拟用户的用户账号文件,这是一个格式文件:奇数行是用户名,偶数行是用户密码
# cd /home1/var/ftp //进入ftp目录,就在此目录下生成账号文件login.txt
# cat <<! >login.txt
>webdesman
>用户密码
>download
>用户密码
>webadmin
>用户密码
>upload1
>用户密码
>upload2
>用户密码
>!
#
//下面进行哈希加密一下,生成口令库文件
# db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
//修改口令库权限
# chmod 600 /etc/vsftpd/vsftpd_login.db
为防万一,把login.txt文件copy到u盘一份,而后删除本机的login.txt
//接下来,要修改一些vsftpd的PAM设置,好让咱们新建的虚拟账号生效
# vi /etc/pam.d/ftp
//把auth打头的全都用#号注释掉,以account打头的那句也注释掉,而后插入以下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
按Esc,键入:wq保存退出。
# service vsftpd restart //重启vsftpd
随便用一个虚拟用户名测试登录ftp:
# ftp 127.0.0.1
应该没问题的。
<!--[if !supportLists]-->6. <!--[endif]-->对不一样的虚拟用户进行不一样的权限的配置
5个虚拟用户,计划配置以下:
/home1/var/ftp
|--/ //超级管理员目录(虚拟用户:ftproot)
|--pub //管理员目录(虚拟用户:webdesman)
|--incoming //收入,杂项(虚拟用户:download)
|--www //网站目录(虚拟用户:webadmin)
|--pub1 //公司目录(虚拟用户:upload1)
|--pub2 //员工目录(虚拟用户:upload2)
各自登录后只能看到本身的目录,同时权限分配以下:
ftproot 具备浏览所有ftp目录、上传、下载、文件更名和删除文件、建立目录、删除目录的权限
webdesman 具备浏览自家目录、上传、下载、文件更名和删除文件、建立目录、删除目录的权限
download 具备浏览自家目录和下载的权限
webadmin 具备浏览自家目录、上传、下载、文件更名和删除文件、建立目录、删除目录的权限
upload1 具备浏览自家目录、上传和下载的权限
upload2 具备浏览自家目录、上传和下载的权限
//首先,编辑主配置文件/etc/vsftpd.conf
//激活对不一样的虚拟用户进行不一样权限配置的配置语句
# vi /etc/vsftpd.conf
//在文件中添加以下的配置行
user_config_dir=/etc/vsftpd_user_conf //指定虚拟用户的配置文件的存放路径
按Esc,键入:wq保存退出。
//接下来建立此目录
# mkdir /etc/vsftpd_user_conf
//每一个虚拟用户都有一个以用户名为文件名的配置文件
//建立虚拟用户ftproot的配置文件,指定其登录后的起始目录,并开放ftproot的读写权限、其余权限(如文件更名和删除文件的权限)
# cat <<! >/etc/vsftpd_user_conf/ftproot
>local_root=/home1/var/ftp
>anon_world_readable_only=NO
>write_enable=YES
>anon_upload_enable=YES
>anon_mkdir_write_enable=YES
>anon_other_write_enable=YES
>virtual_use_local_privs=YES
//建立虚拟用户webdesman的配置文件,指定其登录后的起始目录,并开放webdesman的读写权限、其余权限(如文件更名和删除文件的权限)
# cat <<! >/etc/vsftpd_user_conf/webdesman
>local_root=/home1/var/ftp/pub
>anon_world_readable_only=NO
>write_enable=YES
>anon_upload_enable=YES
>anon_mkdir_write_enable=YES
>anon_other_write_enable=YES
>virtual_use_local_privs=YES //(虚拟用户拥有同本地用户同样的权限)这句重要啊!否则你用webdesman新建一个目录无法改权限!好比,你本来设置的www目录权限是700,那你的php程序就运行不了,这个时候你要是没有这句,你用webdesman这个账号登录ftp服务器以后,新建一个目录就仍是700的权限!就算你已经用root在本地更改了网站目录www及其子目录的权限为755,你用这个虚拟用户webdesman登陆ftp服务器后在www下新建一个子目录,其权限仍是700!!!这个是管理员我用的,固然权限要高啊,连目录权限都不能改,那哪行啊!固然这是特殊,要都这样搞,那设置虚拟用户就没有什么意义了,都设成本地用户不就好了!还有,没有这一句,这个虚拟用户无法删除非空目录(能够删除空目录)!!加了这一句,就能够在客户端用cuteftp之类的第三方软件删除非空目录了!可是我在服务器端字符界面登录ftp上去,仍是删不了非空目录,奇怪中…
>! //执行
//建立虚拟用户download的配置文件,指定其登录后的起始目录,并开放download的读权限
# cat <<! >/etc/vsftpd_user_conf/download
>local_root=/home1/var/ftp/incoming
>anon_world_readable_only=NO
>!
//建立虚拟用户webadmin的配置文件,指定其登录后的起始目录,并开放webadmin的读写权限、其余权限(如文件更名和删除文件的权限)
# cat <<! >/etc/vsftpd_user_conf/webadmin
>local_root=/home1/var/ftp/www
>anon_world_readable_only=NO
>write_enable=YES
>anon_upload_enable=YES
>anon_mkdir_write_enable=YES
>anon_other_write_enable=YES
>virtual_use_local_privs=YES //同webdesman账号意义,有时会更改网站目录结构,若是无法改目录权限,那php程序就运行不了,甚至htm页面都看不了!
>!
//建立虚拟用户upload1和upload2的配置文件,指定其登录后的起始目录,开放upload1和upload2的读写权限
# cat <<! >/etc/vsftpd_user_conf/upload1
>local_root=/home1/var/ftp/pub1
>anon_world_readable_only=NO
>write_enable=YES
>anon_upload_enable=YES
>!
# cat <<! >/etc/vsftpd_user_conf/upload2
>local_root=/home1/var/ftp/pub2
>anon_world_readable_only=NO
>write_enable=YES
>anon_upload_enable=YES
>!
//从新启动vsftpd
# service vsftpd restart
//配置结束
测试,略。
<!--[if !supportLists]-->7. <!--[endif]-->限制用户的访问
如今,咱们已经能提供不错的FTP服务了。不过有些用户常常要传送一些较大却不重要的文件,他们使用网络快车、网络蚂蚁之类的工具,创建了大量的链接,占用了大量的服务资源,形成了其余用户的访问困难。看来咱们须要对FTP服务作一些限制,让一个用户最多只能创建4个链接,并且每一个用户的下载带宽不能超过500 KB。为了安全起见,咱们再修改默认端口号21为2121
//修改主配置文件/etc/vsftpd.conf
# vi /etc/vsftpd.conf
在文件末尾添加以下语句:
max_clients=100 //限制同时最多用户链接数为100
max_per_ip=4 //限制一个用户最多链接数为4
local_max_rate=512000 //限制下载带宽不能超过500KB
按Esc,键入:wq保存退出。
# service vsftpd restart //从新启动vsftpd
<!--[if !supportLists]-->8. <!--[endif]-->开启PASV模式(被动模式)
先了解一下相关知识:
-------------------------------------------------------------------------------
FTP服务器PASV和PORT模式不一样
1、什么是PASV和PORT方式
(1)PORT实际上是Standard模式的另外一个名字,又称为Active模式。中文意思是“主动模式”。
(2)PASV也就是Passive的简写。中文就是“被动模式”。
2、二者不一样
不一样之处是因为PORT(主动)这个方式须要在接上TCP 21端口后,服务器经过本身的TCP 20来发出数据。而且须要创建一个新的链接来传送档案。而PORT的命令包含一些客户端没用的资料,因此有了PASv的出现。而PASV模式拥有PORT 模式的优势,并去掉一些PORT的缺点。PASV运行方式就是当服务器接收到客户端链接请求时,就会自动从端口1024到5000中随机选择一个和客户端创建链接传递数据。因为被动且自动创建链接,容易受到攻击,因此安全性差。
3、常见的FTP客户端软件PORT方式与PASV方式的切换方法
大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。由于FTP的登陆方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
(1)IE:工具 -> Internet选项 -> 高级 -> “使用被动FTP”(须要IE6.0以上才支持)。
(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode” 。
(3)FlashGet:工具 -> 选项 -> 代理服务器 -> 直接链接 -> 编辑 -> “PASV模式”。
(4)FlashFXP:选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”或快速链接-> 切换 -> “使用被动模式”。
Linux防火墙的关闭和开启
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
须要说明的是对于Linux下的其它服务均可以用以上命令执行开启和关闭操做。
在开启了防火墙时,作以下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加如下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-------------------------------------------------------------------------------
我配置完后,ftp默认是主动模式的(port),有些用户是经过路由什么的访问外网的ftp服务器的,并且还有防火墙什么的,这个时候,使用主动模式就不行!就必需要用被动模式(PASV),固然,主动模式比被动模式要好,要安全一些。如今,咱们编辑主配置文件/etc/vsftpd.conf
# vi /etc/vsftpd.conf
在文件末尾添加以下语句:
pasv_enable=YES //容许使用pasv模式,虽说默认是YES,但我在配置文件里没有找到这一句,仍是添上吧,当心无大错
//为安全性考虑,咱们设置PASV模式端口范围为63000 - 63100
pasv_min_port=63000 //为PASV方式数据链接指派的最小端口
pasv_max_port=63100 //为PASV方式数据链接指派的最大端口
port_enable=YES //容许使用端口模式获取数据链接。这句我在配制文件里也没找到,添上吧。若是你要在数据链接时取消主动模式(PORT模式)时,设此选项为NO。默认值为YES。
accept_timeout=60 //超时,以秒计,用于远程客户端以PASV模式创建数据链接
connect_timeout=60 //超时,以秒计,用于远程客户端以PORT模式创建数据链接
hide_ids=YES //全部目录中的用户和组信息在列取时都将显示“ftp”
若是你的服务器linux系统启用了防火墙iptables,还须要添加容许开放的端口,也就是咱们上面添加的PASV模式的端口范围63000 – 63100
# vi /etc/sysconfig/iptables
添加以下:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 63000:63100 -j ACCEPT
按Esc,键入:wq保存退出,就生效了,不用重启防火墙或者系统。
好了,如今咱们在客户端使用PASV模式就能够连上ftp服务器了,而且使用的是63000到63100之间的端口号。
===============================================================================
如下是为Ftp添加新的用户的步骤
1.在lognis.txt中添加用户名和密码(注意logins.txt是自定义的,要是有这个文件而且直接用该文件,该文件中之前的内容能够去掉不要。通过我试验,我发现你就是把这个login.txt删掉了,在添加用户的时候你再建一个login.txt,加新的用户和密码,再哈希生成vsftpd_login.db,结果是不影响以前建的用户访问的。)
2.运行以下命令,将用户名和密码添加到数据库中
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
3.在/home/ftpsite中新建一个文件夹,与用户名相同
4.在/etc/vsftpd_user_conf目录下新建和用户名(咱们下面用xxx表示)相同的文件,并在其中加入
vi /etc/vsftp_user_conf/xxx
local_root=/home/ftpsite/xxx
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
5,直接用ftp工具访问便可,不用重启ftp服务器.
===============================================================================
到此,基本上就彻底配置结束了。
来自:http://www.cnblogs.com/lsdb/p/6706386.html?utm_source=itdadao&utm_medium=referral
1.rpm包更新
相似如下更新便可
rpm -Uvh vsftpd-2.2.2-24.el6.x86_64.rpm
2.源码更新
不懂为何对于新版本可能只有源码包而没有rpm等包,如此只能以源码更新了。
tar -zxf nginx-1.10.3.tar.gz cd vsftpd-3.0.3 make make install service vsftpd restart
3.INSTALL文件说明
vsftpd源码包内有INSTALL文件,该文件是安装的说明文档。
该文件最关键的步骤还是make和make install其余内容是前置条件和以xinted方式启动的说明。
其实彻底能够先装个rpm包这样前置条件就不用本身操心了,正常起动便可xinted不用管。
4.出现的错误
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
5.修改banner信息(隐藏版本号)
最新的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