设计安全的Linux网络

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  作为一个系统,其安全性在计划网络拓扑时就应该仔细考虑,制订安全性策略。此后在网络实施和维护的每一个举措都应该严格执行安全策略。在企业的网络中,Linux现在较多地扮演防火墙/路由器或服务器等重要角色,Linux系统的安全决定了整个网络的安全与否。因此,了解相关的技术,并对Linux系统进行安全设置是至关重要的。

  使用保留IP地址

  维护网络安全性最简单的方法是保证网络中的主机不同外界接触。最基本的方法是与公共网络隔离。然而,这种通过隔离达到的安全性策略在许多情况下是不能接受的。这时,使用保留IP地址是一种简单可行的方法,它可以让用户访问Internet同时保证一定的安全性。

  RFC 1918规定了能够用于本地 TCP/IP网络使用的IP地址范围,这些IP地址不会在Internet上路由,因此不必注册这些地址。通过在该范围分配IP地址,可以有效地把网络流量限制在本地网络内。这是一种拒绝外部计算机访问而允许内部计算机互联的快速有效的方法。

  保留IP地址范围如下所示。

  10.0.0.0 – 10.255.255.255

  172.16.0.0 – 172.31.255.255

  192.168.0.0 – 192.168.255.555

  来自保留IP地址的网络交通不会经过Internet路由器,因此被赋予保留IP地址的任何计算机不能从外部网络访问。但是,这种方法同时也不允许用户访问外部网络。IP伪装可以解决这一问题。

  IP地址伪装

  保留IP地址不能在Internet上路由,因此使用保留IP地址的系统无法到达Internet。但通过建立一个IP伪装服务器(一台Linux服务器)可解决这一问题。具有IP伪装功能时,当数据包离开用户计算机时,包含有它自身的IP地址作为“源地址”,在数据包经过Linux服务器发送到外部世界时,会经过一个转换。数据包的源地址改变成服务器的IP地物料管理流程址,而经过转换的数据包可以在Internet中完整路由。服务器同时记录哪个源地址的数据包发送到Internet上的哪个目标IP地址。当数据包发送到Internet上之后,它能够到达其目标地址并获得其响应。

  这种设置有一个问题。因为数据包的源地址被设置为服务器的IP,经典短信而不是服务器后面用户计算机的IP地址,所以来自外部计算机的响应把发送到服务器。因此,为了完成数据包传输,服务器必须搜索一个表,以便确定该数据包属于哪个计算机。然后把数据包的源地址设置为内部网用户计算机的地址,并发送到该地址。这样,使用保留IP地址的系统的数据包现在能够在Internet上传输了。IP伪装也称作网络地址转换(Network Address Translation,NAT)。

  从用户角度看,他有一个能够完整路由的Internet连接。安全性由转换表来保证,服务器保存有哪个用户计算机与哪个外部Internet主机通讯的记录。如果某个黑客希望获得对用户计算机的访问,几乎是不可能的。外部世界看到的惟一的IP地址是服务器的地址,其后所有的地址都被隐藏。即使有黑客向服务器发送数据包,服务器也无法知道应该把这个数据包发送到哪个用户计算机。

  默认情况下,Linux 内核内置有IP伪装功能。但是,使用一个没有内置IP伪装功能的内核,则需要重新编译,装载一些模块,然后设置数据包过滤规则以便允许转换的进行。为了让IP伪装能够工作,需要打开服务器的IP转发功能。在RedHat 6.x系统中,用户可以通过把 /etc/sysconfig/network文件中的FORWARD_IPV4设置为yes而启用IP转发。这里的讨论假定用户正在使用的内核内置有IP伪装和转发支持,并且安装有IPchains。

  为了把内部网络连接到外部世界,需要在IP伪装服务器上有两个网络接口。一个接口用于连接到内部网络,而另一个接口用来把服务器(并通过IP伪装把内部网络)连接到外部世界。因为这种服务器具有多个接口,所以经常被称为“多宿主”服务器。可以为连接到内部网络的网卡赋予一个保留IP地址。例如:

  #/sbin/ifconfig eth1 inet 192.168.1.1 netmask 255.255.255.0

  这里,假定连接内部网络的网络 接口为eth1,并且内部网络中 的用户计算机数小于253。如果需要超过253个用户计算机,则可以增加网络掩码位数,还可建立第二台IP伪装计算机,并把内部网络划分为两个子网。

  把用户计算机的IP地址配置为192.168.1.2到192.168.1.254,并把所有用户计算机的网关设置为192.168.1.1、网络掩码为255.255.255.0,就可以从每台用户计算机上ping内部网关了(192.168.1.1)。

  这时,所有的用户计算机能够互相通信,并能够与IP转换服务器通信,但目前还不能从客户计算机上到达外部世界,这需要在IP转换服务器上定义一个过滤规则。键入如下命令即可。

  /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0

  /sbin/ipchains -P forward DENY

  第一条命令对其目标地址不是 192.168.1.0 网络的IP数据包打开了IP伪装服务。它把转发最初来自192.168.1.0网络的、经过伪装的IP数据包,并转发到另一个网络接口所连接的网络的默认路由器。第二条命令把默认的转发策略设置为拒绝所有非内部网络的数据包。这时,用户就可以从内部网计算机上浏览并与Internet通讯,就像直接连接到Internet一样可把上述命令放在/etc/rc.d/rc.local文件中,这样,在服务器开机时,就能自动启动IP伪装功能。

  什么是防火墙

  有时,用户不希望使用保留IP地址实现的“要么全有要么全无”的方法。用户可能希望能够对开放其 Web 服务,但不允许其他类型的访问。或者,对于公司的服务器,可能具有一项行政限制,雇员只能使用Internet发送E-mail。这两种情况可以用防火墙来解决问题。

  “防火墙”是一台计算机,它能够强制执行某个策略,用来限制公共网络和私有网络之间所传递的网络交通类型。大部分情况下,防火墙位于Intranet和Internet之间,可允许满足特定条件的网络交通通过,而拒绝其他的网络交通。防火墙可以非常开放,几乎允许所有的交通通过,或者非常封闭,只允许有限用户的使用有限的服务。防火墙管理员可通过规则集的配置而控制这一切。

  专门购买一台防火墙计算机是很明智的选择。如果依赖防火墙控制着对内部网络的访问,则需要确保防火墙足够安全。作为防火墙的计算机不仅仅是安全检查站,而且是内部网络到达外部世界的网关。黑客知道如果他们能够控制防火墙,他们就能够访问内部网络。正因为如此,需要紧闭门户。防火墙安全性的一些基本方针如下(具体请参考检查自己的系统一节):

  关闭所有不必要的服务。首先应考虑关闭sendmail、finger、netsat、systat、bootp和FTP。

  限制对防火墙具有shell访问能力的用户数目。如果只具有一两个用户账号,则黑客能发现这些用户账号的可能性会非常小。

  不要在防火墙上使用与其他地方一样的口令。有时,人们经常在许多不同的计算机上使用同样的口令。殊不知,这样可能会导致多米诺骨牌效应。

  考虑防火墙的物理安全性。尽管可以把桌面计算机放在开放的办公室或小卧室,但必须考虑对防火墙计算机实施严密的物理保护,比如放在上锁的机柜中。

累死累活不说,走马观花反而少了真实体验,

设计安全的Linux网络

相关文章:

你感兴趣的文章:

标签云: