三、 Linux防火墙的配置实例
我们该如何利用Linux操作系统自带的防火墙来提高网络的管理控制功能呢?具体的来说,我们可以分三步走。一是先在Linux服务器上开一个后门,这个后门是专门给我们网络管理员管理服务器用的。二是把所有的进站、出站、转发站接口都关闭,此时,只有通过我们上面开的后门,管理员才能够远程连接到服务器上,企图任何渠道都不能连接到这台主机上。三是根据我们服务器的用途,把一些需要用到的接口开放出去。
下面笔者就以一个WEB服务器为例,谈谈如何设置防火墙,才能够提高这台服务器的安全性,并且,在提高安全性的同时,也不影响我们网络管理员对其的访问控制。
第一步:开后门
网络管理员一般是通过SSH方式来管理Linux操作系统。所以,我们首先需要开一个后门,允许网络管理员通过SSH方式远程登录到服务器,对这台服务器进行必要的维护与管理。
为了达到这个目的,我们可以利用两条语句来实现。我们这里假设我们WEB服务器的IP地址为192.168.0.2。
Iptables –A INPUT –P tcp –d 192.168.0.2 –dport 22 –j ACCEPT
Iptables –A OUTPUT –P tcp –S 192.168.0.2 –dport 22 –j ACCEPT
第一条语句的意思是,在进站接口上,允许网络管理员通过TCP协议与22号端口,访问主机。一般SSH方式采用的就是22号端口与TCP协议。这条语句的作用就是让网络管理员可以连接到WEB服务器上去。但是,这还不够,我们若想要远程管理WEB服务器的话,则就需要实现相互交互的功能。也就是说,我们还需要WEB服务器能够给我们回应一些消息。此时,我们就还需要配置第二条语句。
上面第二条语句的意识就是允许WEB服务器通过22号端口与TCP协议,发送一些数据出去。如此的话,我们网络管理员就可以受到WEB服务器的一些回应信息。
第二步:关闭所有接口
Iptables –P INPUT –j DROP
Iptables –P OUTPUT –j DROP
Iptables –P FORWARD –j DROP
以上三条命令的作用就是把WEB服务器上的三个接口全部关闭。但是,此时因为我们在第一步开了一个后门,所以,事后网络管理员仍然可以通过SSH这个方式登录到服务器上去,对其进行远程访问。采用这些命令把各个接口关闭后,我们就无法通过HTTP、FTP等方式访问服务器。
第三步:分析服务器的用途并添加允许条件
把各个接口关不后,我们还需要为其添加一些必要的条件,允许某些特定类型的数据包通过。否则的话,其他人不是不能通过网络访问WEB服务器,那不是白搭了吗?
所以,接下去的任务,我们就是需要分析服务器的类型。我们现在配置的是一台WEB服务器,而WEB服务器一般是通过HTTP方式与80端口进行访问的。默认情况下,其用到的就是TCP协议与80端口。所以,我们只需要在进口与出口上,允许协议是TCP、端口号是80的数据包通过,就可以实现我们的目标了。
Iptables –A INPUT –P tcp –d 192.168.0.2 –dport 80 –j ACCEPT
Iptables –A OUTPUT –P tcp –S 192.168.0.2 –dport 80 –j ACCEPT
通过如上的配置,就可以实现我们的需求
四、 Linux防火墙的配置需要注意的地方
在使用Linux防火墙来管理企业网络的时候,笔者给大家提一些建议。
一是根据最小权限的安全与控制设计原则,我们在防火墙设计的时候,需要先把所有的接口先全部禁用掉。然后,再根据服务器的类型,添加一些允许数据包通过的语句。如此的目的,是为了保障服务器上只允许一些特定的协议与数据包通过。如此做的话,就可以最大限度的保障服务器与企业网络的安全。如通过上面如此配置的服务器,无法使用FTP协议访问服务器,也就杜绝了非法访问者企图利用FTP漏洞来攻击WEB服务器。同时,也禁止了ICMP协议,如此的话,就可以有效的防止DDOS攻击等等。
二是有时候会碰到应用程序与防火墙无法协作的问题。如在Linux服务器上部署一个ERP服务器,若同时打开了防火墙的话,则可能就无法连接上服务器。其实,这不是防火墙或者ERP服务器产生了什么冲突,而是我们没有配置好防火墙而已。一般情况下,笔者建议先把防火墙禁用掉,把ERP服务器先配置成功、其他用户可以连接上服务器后,再启用防火墙。在启用防火墙的时候,我们需要清楚,这个ERP服务器到底采用了哪些协议与端口来进行数据包的传递,然后再配置防火墙。大部分的时候,都是因为我们不熟悉某个服务器到底在采用哪些协议与端口,才造成客户端连接的错误。