网络安全 频道

如何建立安全防火墙 系统实例讲解

随着网络应用的不断发展和深入,我们对于那些沟通信息的纽带也越来越依赖,如何保证网络安全、稳定、畅通地运行也就成为紧迫而且重要的问题。

    鉴于目前防火墙已经成为最普遍的网络安全解决方案,在这里我们就主要讨论如何建立一个安全的防火墙系统。

    防火墙是什么东西呢?它相当于一个阀门,一个过滤器或者说国家的海关、边防检查站,负责审查经过的数据和信息,根据设定的规则处理不同的情况。由此可见,建立一个安全的防火墙系统并不仅仅取决于购买了什么牌子的设备,更重要的是在于使用者是否了解本企业网络的情况、掌握用户的实际需求并正确地付诸实施。

    目前防火墙主要有三类:建立在通用操作系统上的软件防火墙、具有安全操作系统的软硬件结合的防火墙和基于专用安全操作系统的硬件防火墙。代表产品有Check Point、东大阿派Neteye、Linux下的IPChains、Cisco的PIX等等。

    目前的防火墙从结构上讲,可分为两种:

    1.应用网关结构

    内部网络<—>代理网关(Proxy Gateway)<—>Internet.

    2.路由器加过滤器结构

    内部网络<—>过滤器(Filter)<—>路由器(Router)<—>Internet.

    总的来讲,应用网关结构的防火墙系统在安全控制的粒度上更加细致,多数基于软件系统,用户界面更加友好,管理控制较为方便;路由器加过滤器结构的防火墙系统多数基于硬件或软硬件结合,速度比较快,但是一般仅控制到第三层和第四层协议,不能细致区分各种不同业务;有一部分防火墙结合了包过滤和应用网关两种功能,形成复合型防火墙。具体使用防火墙则应该根据本企业实际情况加以选择。

    下面我就用一个实际例子讲解建立安全防火墙系统的过程。

    所有的内部网络用户通过两个路由器连接防火墙,防火墙作为本网络的唯一出口连接到Internet.内部网络有两个网段:192.168.1.0 /255.255.255.0和192.168.2.0 /255.255.255.0.

    在本例中,我使用的是基于Linux 的软件防火墙 IPChains .它运行在系统内核,采用路由器加过滤器结构,但也可以与SQUID等软件组成复合型应用网关防火墙。IPChains在系统内核层运行,可以保证更高的速度和稳定性,性能远高于运行在应用程序层的防火墙软件。根据我个人经验,一台运行在PII 300计算机上的双网卡防火墙,其包转发速度就可以达到45~60M/S,满足300个用户使用。作为防火墙的主机两端地址分别为 192.168.233.1/255.255.255.248(内部端口)和202.102.184.1/255.255.255.252(外部端口)。


    首先,我们应该确定用户的需求,再根据需求进行实现。

    经调研,用户需求如下:

    1、保障内部网络安全,禁止外部用户连接到内部网络。

    2、保护作为防火墙的主机安全,禁止外部用户使用防火墙的主机Telnet、FTP等项基本服务,同时要保证处于内部网络的管理员可以使用Telnet管理防火墙。

    3、隐蔽内部网络结构,保证内部用户可以通过仅有的一个合法IP地址202.102.184.1连接Internet.同时要求许可内部用户使用包括E-Mail、WWW浏览、News、FTP等所有Internet上的服务。

    4、要求对可以访问Internet的用户进行限制,仅允许特定用户的IP地址可以访问外部网络。

    5、要求具备防止IP地址盗用功能,保证特权用户的IP不受侵害。

    6、要求具备防IP地址欺骗能力。

    其次,根据用户需求设计解决方案。

    方案设计如下:

    1、安装一台Linux服务器,配置双网卡,两端地址分别为192.168.233.1 /255.255.255.252(内部端口ETH 0)和202.102.184.1/255.255.255.248(外部端口ETH 1)。在IPChains中去除诸如 HTTPD、Finger、DNS、DHCP、NFS、SendMail之类所有不需要的服务,仅保留Telnet和FTP服务,以保证系统运行稳定,提高网络安全性。

    2、启动IPChains后,为保证安全性,首先将Forward Chains的策略设置为DENY,禁止所有的未许可包转发,保障内部网安全性,以满足需求1.

    eg:# ipchains-P forward DENY

    3、为满足需求2,必须禁止所有来自外部网段对防火墙发起的低于1024端口号的连接请求。在此,我做了如下设定来阻止对ETH1端口请求连接小于1024端口号的TCP协议的数据报(请求连接数据报带有SYN标记,IPChains中使用参数-y表示)

    eg:#ipchains -A input -p tcp -d 202.102.184.1 0:1024 -y -i eth1 -j DENY

    之所以不是简单的拒绝所有小于1024端口号的数据报在于,某些情况下服务器会回复一个小于1024接口的数据报。比如某些搜索引擎就可能在回复查询中使用一个不常用的小于1024的端口号。此外,当使用DNS查询域名时,如果服务器回复的数据超过512字节,客户机使用TCP连接从53端口获得数据。

    4、为满足需求3,必须使用IP地址翻译功能。来自内部保留地址的用户数据包在经过防火墙时被重写,使包看起来象防火墙自身发出的。然后防火墙重写返回的包,使它们看起来象发往原来的申请者。采用这种方法,用户就可以透明地使用因特网上的各种服务,同时又不会泄露自身的网络情况。注意,对于FTP服务,需要加载FTP伪装模块。命令如下:

0
相关文章