vsftpd 编译安装 及 隐藏版本号

环境:Redhat Enterprise Linux AS 4.0 update2(i386)

不提示,均表示以root权限执行。

[注:]//为注释符,如“// 建立MySQL组”,即为一句注释。

我有一块硬盘160 G ,内存1G ,分区如下:

/                   文件格式:Ext3           容量大小:8G

(交换分区,无)      文件格式:Swap           容量大小:2 G (2G=2048M,约为内存值的2倍)

/home1              文件格式:Ext3           容量大小:剩余所有空间,约150G

所需软件:

vsftpd-2.0.4.tar.gz

系统环境:

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]-->一、             <!--[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]-->二、             <!--[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模式不同

一、什么是PASV和PORT方式

(1)PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式”。

(2)PASV也就是Passive的简写。中文就是“被动模式”。

二、两者不同

不同之处是由于PORT(主动)这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。而PASV模式拥有PORT 模式的优点,并去掉一些PORT的缺点。PASV运行方式就是当服务器接收到客户端连接请求时,就会自动从端口1024到5000中随机选择一个和客户端建立连接传递数据。由于被动且自动建立连接,容易受到攻击,所以安全性差。

三、常见的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

时间: 2024-11-06 08:46:08

vsftpd 编译安装 及 隐藏版本号的相关文章

vsFTPD编译安装使用实用手册

实验环境:系统 CENTOS5.5,用户 root,软件 vsftpd-2.3.4实验以自行编安装为基础,与通过yum方式安装存在一些差异. (lykyl原创,转载请注明出处) 一.编译安装1.获取并解压缩源码wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz /usr/local/src/tar -xvzf /usr/local/src/vsftpd-2.3.4.tar.gz 2.系统环境设置添加vsftpd的服务启动用户

nginx优化,隐藏版本号,修改用户和组,网页缓存时间,更改进程数,以及防盗链

设置nginx优化隐藏版本号,修改用户和组,网页缓存时间,更改进程数, 以及防盗链的代码内容 ========================隐藏版本号,修改用户和组 方法一: cd /opt/nginx-1.12.0/src/core vim nginx.h #define NGINX_VERSION "1.12.0" //在编译安装前去篡改版本号达到隐藏的效果 方法二: vim /usr/local/nginx/conf/nginx.conf server_tokens off;

Nginx优化---隐藏版本号与网页缓存时间

配置Nginx隐藏版本号 在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏 查看方法●使用fiddler I具在Windows客户端查看Nginx版本号在CentOS系统中使用"curl -I 网址"命令查看 Nginx隐藏版本号的方法●修改配置文件法●修改源码法 修改配置文件法 1.Nginx的配置文件中的server_ tokens 选项的值设置为off [[email protected] conf]# vim nginx.conf ..... server_ to

Nginx安装配置实现用户认证、反向代理、隐藏版本号

一.Nginx安装 1.检查并且安装依赖组件           检查安装nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel.pcre.pcre-devel如果没有,则全部装上          # rpm -qa | grep pcre  ##没有任何信息则没安装 2.安装pcre,pcre-devel # tar -zxvf pcre-6.6.9.tar.gz          # cd pcre-6.6.9/ 

linux下编译安装的Apache安全优化方案

上节我们学习了Linux的系统优化解决方案,我个人总结为18项,当然还有别的,例如系统内核裁剪这些我没讲到,为什么呢?大家不用太关心了,要记得我们学习的目的是能够胜任工作即可.我们对一个知识点不要讲的太深,避免钻进死胡同了,那就不好啦. 今天我们讲解下lamp架构安全优化中的Apache服务的安全优化.在讲这节内容之前我说下,静态web请求的流程: 当客户端访问一个静态网站的时候,网站上的Apache服务就会给他发送html文档给客户端浏览器,客户端浏览器会进行解析,然后就是我们看到的内容了.

nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)

Nginx配置和优化 1.隐藏版本号 默认情况下,使用curl命令会把nginx的版本信息等获取到,如: [[email protected]_machine ~]# curl -I -H"www.beyond.com" "http://172.16.254.5/index.php"  HTTP/1.1 200 OK Server:nginx/1.6.3 Date: Wed, 24 Jun 2015 02:50:59 GMT Content-Type: text/h

httpd-2.4.9编译安装与配置(CGI、虚拟主机、https、deflate压缩)

1.准备好软件: pcre及pcre-devel pcre是一个perl库,包含perl所兼容的正则表达式库.由于httpd服务具有CGI功能,而大多数的CGI都是基于perl的,所以需要安装这个库. apr-1.5.1 apr是Apache可移植运行库,此库可以使httpd跨平台使用.是Apache必须依赖的库.httpd-2.4的event模块apr必须是1.5.x以上的 apr-util-1.5.3 基于apr的更高级的库,名字类似是apr的工具 httpd-2.4.9 今天要编译配置的主

Nginx隐藏版本号,Nginx隐藏软件名称

Nginx作为一款非常强大的Web应用服务器以及我们可以使用它来做基于应用层的负载均衡而得到了广大群众的认可,随之而来的问题也体现了,很多的朋友希望对Nginx有一个非常好的隐藏,希望隐藏版本,甚至希望隐藏好软件名称,那么今天就来说一下这两个内容的隐藏方法! 如下图,我们可以轻而易举知道对方使用的是什么服务器,当然如果你尊重开源,留下名字也是好的,如果你要修改,也是没有问题的! 提示一下:使用yum版本安装的话,你是不能来隐藏我们的软件名称的,但是版本号是可以隐藏的! 隐藏Nginx版本号 [[

Apache调优之隐藏版本号

用curl -I 域名 ,会发现如果没有设置隐藏版本号的话,服务器版本及Openssl信息会全都显示出来,这样容易暴露web服务器版本,进而通过版本号查找漏洞入侵web服务器. 例如: HTTP/1.1 302 FoundDate: Wed, 11 Apr 2018 08:03:25 GMTServer: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.32X-Powered-By: PHP/5.6.32Set-Cookie: PHPSESSI