快速业务通道

iptables实战系列:公共网络服务防火墙

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-28

原文请见:http://os.51cto.com/art/201108/284722.htm

本文将介绍一个使用iptables保障网络服务安全的例子,需要保护的企业网络提供对外的公共网络服务,包括WWW、FTP、SMTP、DNS等.

1、应用场景和网络拓扑

在这个应用中,我们将需要使用iptables防火墙保护企业网络提供的对外的公共Internet服务,这些服务包括WWW服务、FTP服务、SMTP服务以及DNS服务(具体的网络拓扑请参见图1).因此,这些服务起都具有有效的Internet地址.

为了将内部网段210.10.18.0/24与Internet隔离,在内部网络和Internet之间使用了包过滤防火墙.具体的IP地址设置如下:

  • 防火墙的内网接口是eth0(IP地址为:210.10.18.88),防火墙对外的Internet接口是eth1(IP地址为:210.10.19.188);
  • WWW服务器:IP地址为210.10.18.89;
  • FTP服务器:IP地址为210.10.18.90;
  • DNS服务器:IP地址为210.10.18.91;
  • SMTP服务器:IP地址为210.10.18.92.



图1 防火墙部署实例示意图

2、防火墙具体配置

本应用的主要目的是对企业网提供各种服务的服务器提供保护,以使他们免受来自于外网Internet恶意用户和流量的攻击和危害.

(1)建立有关的脚本文件:在/etc/rc.d/目录下用touch命令建立空的脚本文件,执行chmod命令添加可执行权限.


# touch /etc/rc.d/firewall-for-networkservice

# chmod u x /etc/rc.d/firewall-for-networkservice

(2)编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall-for-networkservice 以确保开机时能自动执行该脚本,运行如下命令:


# echo “/etc/rc.d/firewall-for-networkservice” >>/etc/rc.d/rc.local
Empire CMS,phome.net

(3)使用vi或者gedit等编辑器编辑/etc/rc.d/firewall-for-networkservice文件,插入如下内容:

1)添加相关脚本信息,注意:脚本中的注释是采用“#”表示,而不是通常用的“//”


# 添加脚本编写头部

# !/bin/bash

# 在屏幕上显示信息

echo “Starting iptables rules…”

# 开启内核转发功能

echo “1” >/proc/sys/net/ipv4/ip_forward

2)定义规则重要使用的相关变量


# 定义变量

IPT=/sbin/iptables

WEB_SERVER=210.10.18.89

FTP_SERVER=210.10.18.90

DNS_SERVER=210.10.18.91

SMTP_SERVER=210.10.18.92

PROTECT_DOMAIN=“210.10.18.0/24”

3)刷新基本的链规则,并禁止转发任意包


$IPT_LIST -F

$IPT_LIST -P FORWARD DROP

4)设置有关保护服务器的包过滤规则,并且注意服务器/客户机交互是双向的,不仅仅要设置数据包出去的规则,还要设置数据包返回的规则,如下所示:


#保护WWW服务:服务端口为80,采用tcp或udp协议

#规则为:eth1=>允许目的为内部网WWW服务器的包

$IPT_LIST -A FORWORD -p tcp udp -d $WEB_SERVER -dport www -i eth1 -j ACCEPT

#保护FTP服务:服务端口为:命令端口21,数据端口20.FTP服务采用tcp协议.

# 规则为:eth1=>允许目的为内部网FTP服务器的包

$IPT_LIST -A FORWORD -p tcp -d $FTP_SERVER -dport ftp -i eth1 -j ACCEPT

#保护DNS服务:DNS端口53,采用tcp协议或者udp协议

#规则为:eth1=>允许目的为内部网DNS服务器的查询请求

$IPT_LIST -A FORWORD -p tcp udp -d $ DNS_SERVER -dport dns -i eth1 -j ACCEPT

#保护SMTP服务:smtp端口25,采用tcp协议

#规则为:eth1=>允许目的为内部网SMTP服务器的smtp请求

$IPT_LIST -A FORWORD -p tcp -d $ SMTP_SERVER -dport smtp -i eth1 -j ACCEPT

(4)执行脚本,使配置规则立刻生效

Empire CMS,phome.net


# /etc/rc.d/firewall-for-networkservice

到现在为止,有关使用防火墙保障网络服务的配置就完成了.通过执行上面的脚本,我们建立了一个相对完整的防火墙.该防火墙只对外开放了有限的几个端口,因此能够有效地限制除这几个服务之外的流量进入,从而达到保证安全的目的.当然,这个例子还非常简单,用户还可以在实际中通过针对具体服务的细化防火墙配置,比如限制外部网络并发连接WWW服务的TCP请求个数、限制外网访问FTP服务器的IP地址列表等来进行.这里只是给出一个简要的示例,以达到抛砖引玉的目的.

本文出自 “卓越始于足下” 博客,谢绝转载!

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号