联系我们

4000 555 018
(7×24)
正睿服务器  >  新闻中心  >  技术文章
新闻中心

经验谈:安全应用vsftpd服务器(下)

间隙填充
正睿科技  发布时间:2007-06-10 14:07:01  浏览数:2262

vsftpd服务器的安全策略

    1. 为vsftpd服务器配置SSL

    在VSFTPD-2.0.1以后的版本里提供了对SSL套接层的支持,这使得vsftpd变的更加安全了。要实现ftp的安全连接有几个必须的前提是OPENSSL版本必须大于0.9.6,你可以用openssl加密你的vsftpd服务器登录及传输过程。方法是修改builddefs.h文件中的:
    #undef VSF_BUILD_TCPWRAPPERS
    #define VSF_BUILD_PAM
    #undef VSF_BUILD_SSL
    为:
    #define VSF_BUILD_TCPWRAPPERS
    #undef VSF_BUILD_PAM
    #define VSF_BUILD_SSL
    然后编译即可。

    2. 启用tcp_wrappers进行访问控制

    tcp_wrapper是这样一套基本系统,它可以用来禁止(或者显式的允许)特定的主机对某些服务的访问。简单的说,它的工作原理是这样的:inetd或xinetd运行很多的服务,其中很多都是由tcpd包装好的。换句话说,tcpd是真正运行这些服务的程序,但是xinetd不知道这些(其实它根本不关心)。tcpd根据/etc/hosts.allow和/etc/hosts.deny来判断是否允许传来的连接请求。tcp_wrapper工作原理见图5。
 
    

图5 tcp_wrapper工作原理

    这里tcp_wrappers的应用思路是“先阻止、后放行”。因此策略是首先禁止所有主机访问FTP服务器(在/etc/hosts.deny文件中设定),然后在/etc/hosts.allow中加入允许访问的主机或IP地址列表,这是最安全的访问策略。使用这项功能需要在安装编译之前构建包含tcp_wrappers的vsftpd。可通过编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项“tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。tcp_wrapper位于Vsftpd和iptables防火墙之间。如图6 。
 

图6 tcp_wrapper位于Vsftpd和iptables防火墙之间

    以下是一个例子:
    vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
    vsftpd: 192.168.1.4: DENY
    其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。tcp_wrappers对别有用心的连接者很有用。

    给连接服务的客户发送一幅警戒性横幅是掩盖运行服务的系统的好办法,同时,它也让潜在的攻击者知道系统管理员是相当警惕的。要为某服务实现 TCP 会绕程序横幅,请使用 banner 选项。 这个例子为 vsftpd 实现了一个横幅。首先,创建一个横幅文件。它可以位于系统上的任何地方,但是它的名称必须和守护进程相同。在这个例子中,该文件叫做 /etc/banners/vsftpd。该文件的内容如下所示:
    220-Hello, %c
    220-All activity on ftp.example.com is logged.
    220-Act up and you will be banned.
    %c 代符提供了各类客户信息,如用户名和主机名,或用户名和 IP 地址,从而使连接更令人生畏。要把这个横幅展示给每个进入连接,把以下行添加到 /etc/hosts.allow 文件中:
vsftpd : ALL : banners /etc/banners/

vsftpd服务器的安全策略

    1. 为vsftpd服务器配置SSL

    在VSFTPD-2.0.1以后的版本里提供了对SSL套接层的支持,这使得vsftpd变的更加安全了。要实现ftp的安全连接有几个必须的前提是OPENSSL版本必须大于0.9.6,你可以用openssl加密你的vsftpd服务器登录及传输过程。方法是修改builddefs.h文件中的:
    #undef VSF_BUILD_TCPWRAPPERS
    #define VSF_BUILD_PAM
    #undef VSF_BUILD_SSL
    为:
    #define VSF_BUILD_TCPWRAPPERS
    #undef VSF_BUILD_PAM
    #define VSF_BUILD_SSL
    然后编译即可。

    2. 启用tcp_wrappers进行访问控制

    tcp_wrapper是这样一套基本系统,它可以用来禁止(或者显式的允许)特定的主机对某些服务的访问。简单的说,它的工作原理是这样的:inetd或xinetd运行很多的服务,其中很多都是由tcpd包装好的。换句话说,tcpd是真正运行这些服务的程序,但是xinetd不知道这些(其实它根本不关心)。tcpd根据/etc/hosts.allow和/etc/hosts.deny来判断是否允许传来的连接请求。tcp_wrapper工作原理见图5。
 
    

图5 tcp_wrapper工作原理

    这里tcp_wrappers的应用思路是“先阻止、后放行”。因此策略是首先禁止所有主机访问FTP服务器(在/etc/hosts.deny文件中设定),然后在/etc/hosts.allow中加入允许访问的主机或IP地址列表,这是最安全的访问策略。使用这项功能需要在安装编译之前构建包含tcp_wrappers的vsftpd。可通过编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项“tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。tcp_wrapper位于Vsftpd和iptables防火墙之间。如图6 。
 

图6 tcp_wrapper位于Vsftpd和iptables防火墙之间

    以下是一个例子:
    vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
    vsftpd: 192.168.1.4: DENY
    其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。tcp_wrappers对别有用心的连接者很有用。

    给连接服务的客户发送一幅警戒性横幅是掩盖运行服务的系统的好办法,同时,它也让潜在的攻击者知道系统管理员是相当警惕的。要为某服务实现 TCP 会绕程序横幅,请使用 banner 选项。 这个例子为 vsftpd 实现了一个横幅。首先,创建一个横幅文件。它可以位于系统上的任何地方,但是它的名称必须和守护进程相同。在这个例子中,该文件叫做 /etc/banners/vsftpd。该文件的内容如下所示:
    220-Hello, %c
    220-All activity on ftp.example.com is logged.
    220-Act up and you will be banned.
    %c 代符提供了各类客户信息,如用户名和主机名,或用户名和 IP 地址,从而使连接更令人生畏。要把这个横幅展示给每个进入连接,把以下行添加到 /etc/hosts.allow 文件中:
vsftpd : ALL : banners /etc/banners/

vsftpd服务器的安全策略

    1. 为vsftpd服务器配置SSL

    在VSFTPD-2.0.1以后的版本里提供了对SSL套接层的支持,这使得vsftpd变的更加安全了。要实现ftp的安全连接有几个必须的前提是OPENSSL版本必须大于0.9.6,你可以用openssl加密你的vsftpd服务器登录及传输过程。方法是修改builddefs.h文件中的:
    #undef VSF_BUILD_TCPWRAPPERS
    #define VSF_BUILD_PAM
    #undef VSF_BUILD_SSL
    为:
    #define VSF_BUILD_TCPWRAPPERS
    #undef VSF_BUILD_PAM
    #define VSF_BUILD_SSL
    然后编译即可。

    2. 启用tcp_wrappers进行访问控制

    tcp_wrapper是这样一套基本系统,它可以用来禁止(或者显式的允许)特定的主机对某些服务的访问。简单的说,它的工作原理是这样的:inetd或xinetd运行很多的服务,其中很多都是由tcpd包装好的。换句话说,tcpd是真正运行这些服务的程序,但是xinetd不知道这些(其实它根本不关心)。tcpd根据/etc/hosts.allow和/etc/hosts.deny来判断是否允许传来的连接请求。tcp_wrapper工作原理见图5。
 
    

图5 tcp_wrapper工作原理

    这里tcp_wrappers的应用思路是“先阻止、后放行”。因此策略是首先禁止所有主机访问FTP服务器(在/etc/hosts.deny文件中设定),然后在/etc/hosts.allow中加入允许访问的主机或IP地址列表,这是最安全的访问策略。使用这项功能需要在安装编译之前构建包含tcp_wrappers的vsftpd。可通过编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项“tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。tcp_wrapper位于Vsftpd和iptables防火墙之间。如图6 。
 

图6 tcp_wrapper位于Vsftpd和iptables防火墙之间

    以下是一个例子:
    vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
    vsftpd: 192.168.1.4: DENY
    其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。tcp_wrappers对别有用心的连接者很有用。

    给连接服务的客户发送一幅警戒性横幅是掩盖运行服务的系统的好办法,同时,它也让潜在的攻击者知道系统管理员是相当警惕的。要为某服务实现 TCP 会绕程序横幅,请使用 banner 选项。 这个例子为 vsftpd 实现了一个横幅。首先,创建一个横幅文件。它可以位于系统上的任何地方,但是它的名称必须和守护进程相同。在这个例子中,该文件叫做 /etc/banners/vsftpd。该文件的内容如下所示:
    220-Hello, %c
    220-All activity on ftp.example.com is logged.
    220-Act up and you will be banned.
    %c 代符提供了各类客户信息,如用户名和主机名,或用户名和 IP 地址,从而使连接更令人生畏。要把这个横幅展示给每个进入连接,把以下行添加到 /etc/hosts.allow 文件中:
vsftpd : ALL : banners /etc/banners/

    7. 安全使用客户端工具

    服务器加固后要考虑防范网络嗅探,即客户端向服务器传输数据过程。防范网络嗅探的关键的文件传输过程,使用OpenSSH上传数据到服务器可以把所有传输的数据进行加密,这样即使网络中的黑客能够劫持用户所传输的数据,如果不能解密的话,也不能对数据传输构成真正的威胁。

    如果使用Windows的话推荐使用Filezilla ,它是客户端使用SFTP的一款不错的开源软件。最新版本2.2.16,官方网址:http://filezilla.sourceforge.net/  。Filezilla是一款非常值得推荐的FTP客户端,尽管它的功能丰富,但却非常方便好用。它的界面采用了多窗格设计,可以同时显示本地硬盘的内容和远端服务器上的目录,此外还列出了常用的ftp命令。Filezilla支持断点续传(下载和上传均支持),同时也支持SSL加密传输方式。你可以通过编辑它的传输任务队列来选择所要传输的文件或安排传输顺序。在站点管理器(Site Manager)中选择好一个服务器之后就可以开始上传或下载文件了。使用它可以安全方便的向服务器上传下载数据。对中文支持很好,配置界面如图9所示。
 

图9 Filezilla配置界面

总结:

    在众多网络应用中,FTP(文件传输协议)有着非常重要的地位。互联网一个十分重要的资源就是软件资源,而各种各样的软件资源大多数都放在FTP服务器中。在网站的建设中,FTP是一项重要的服务,利用它可以更容易分享有限的软件资源。以上实例均在RHEL 4.0系统上试验通过,如遇到问题请仔细检查每个细节的正确性。上面的内容可以根据具体环境进行增减、修改。相信通过自己的努力可以打造出一个高效、安全的FTP服务器。

  • 正睿合作伙伴
  • 社区
首页 | 注册 | 网站地图 | 通告 | 联系我们
CopyRight(C)2004-2022 Chongqing Zhengrui Technology Co.,Ltd. All rights reserved.
重庆正睿科技有限公司(C)版权所有 未经书面授权 不得转载、复制或建立镜像
渝ICP备11002339号-1  渝公网安备 50010702500475号