荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: ykwch.bbs@bbs.cqupt.edu.cn (心蓝), 信区: Linux
标  题: 十分钟创建一个有效的防火墙
发信站: 幽幽黄桷兰 (Fri Dec 13 16:06:43 2002)
转信站: SZU!news.tiaozhan.com!news.happynet.org!CQUPT

十分钟创建一个有效的防火墙
  贴出者为 llc
作者:秋水 本文选自:开放系统世界-赛迪网 2002年12月09日
http://developer.ccidnet.com/pub/disp/Article?columnID=302&articleID=32995&p
ageNO=1
最近几个月,我生活的环境有所改变,使用的电脑也变成了两台通过DSL连接到Interne
t的笔记本电脑。
一般而言,这种情况的安全性是一个问题。不过对于我的机器来说,没有太大的问题,
因为我使用的是Linux,并且有一组设计非常好的iptables规则集。然而,我妻子使用的
是一台Windows 98的机器,我个人认为它的安全性非常差。我要为我们的局域网设置一
个适当的防火墙。
Linux下的防火墙
在每一个Linux版本中,都有着不同的防火墙软件套件。iptabels(NetFilter)应用程序
被认为是Linux中实现包过虑功能的第四代应用程序。第一代是Linux 内核1.1版本所使
用的Alan Cox从BSD Unix中移植过来的ipfw。在2.0版的内核中,Jos Vos和其它一些程
序员对ipfw进行了扩展,并且添加了ipfwadm用户工具。在2.2版内核中, Russell和Mi
chael Neuling做了一些非常重要的改进,也就是在该内核中,Russell添加了帮助用户
控制过虑规则的ipchains工具。后来,Russell又完成了名为NetFilter(http://www.ne
tfilter.org)的内核框架。这些防火墙软件套件一般都比其前任有所改进,表现越来越
出众。
NetFilter的目的是为用户提供一个专门用于包过滤的底层结构,用户和开发人员可以将
其内建在Linux内核中。iptables是一个内建在NetFilter框架中的一个模块,它可以让
用户访问内核过滤规划和命令。如果你了解ipchains就会发现,iptables和ipchains非
常相似。事实上,在2.4中,如果加载了ipchains模块,那么ipchains风格的规则也可以
被支持。iptables对网络的控制提供了非常强大的功能,它可以向不同的机器路由数据
包。在现实中,由于比较复杂,iptables经常被束之高阁。
快速构建防火墙
现在有关编写防火墙脚本以及设置防火墙的书籍有很多,不过我不想把问题复杂化,想
在十分钟里建起一个有效的防火墙。
在本例中,网络结构如图1所示。
图1 网络结构图
我们要使用一台装有两块网卡的机器作为防火墙,并且将所有的机器放在防火墙后面的
局域网中。在此假设使用的网络地址是192.168.1.0,它可以在防火墙后提供254个主机
地址。我们使用192.168.1.1作为防火墙的局域网IP地址(假设绑定的网卡为eth0),假设
Internet端的IP地址为300.3.3.3(此地址纯属虚构),绑定网卡为eth1。
我们的防火墙并不需要实现太多的功能,因此,关闭了除ssh以外的所有服务。也就是说
可以拒绝除局域网内主机以外的所有连接请求,配置内容如下:
machine$ cat /etc/hosts.allow
  sshd: 192.168.1.
  machine$ cat /etc/hosts.deny
  ALL: ALL
在防火墙上运行的惟一一个其它的服务是DHCPD服务器,用于分配IP地址给局域网内的主
机。我们需要配置iptables,使其改写所有从局域网内主机流出的数据包,并对其进行
伪装,使它看起来好象所有流出的数据都是出自防火墙本身。
这种设置适用于任何一种Internet连接,它可以是DSL连接、Modem连接等等。这里惟一
需要注意的是,必须要知道ISP商提供的IP地址。在此,这个地址是300.3.3.3,在具体
的应用中,应该将其更改以符合实际情况。
首先,通过创建一个/etc/dhcpd.conf文件来配置我们的DHCP服务器。下面是该文件的内
容:
firewall$ cat /etc/dhcpd.conf
   subnet 300.3.3.0 netmask 255.255.255.0 { }
   subnet 192.168.1.0 netmask 255.255.255.0 {
        allow bootp;
      option routers 192.168. 1.1;
       option subnet-mask 255.255.255.0;
         option broadcast-address 192.168.1.255;
        # 这些参数可根据需要调整
       option domain-name "example.com";
       option domains-name-servers A.B.C.D E.F.G.H;
       range dynamic-bootp 192.168.1.50 192.168.1.254;
        default-lease-time 18000;
        max-lease-time 18000;
        get-lease-hostnames on;
     }
  firewall# /etc/init.d/dhcp start
  Internet Software Consortium DHCP Server 2.0pl4
  Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
  All rights reserved.
  Please contribute if you find this software useful.
  For info, please visit http://www.isc.org/dhcp-contrib.html
  Listening on LPF/eth1/00:10:18:77:bd:28/192.168.1.0
  Sending on   LPF/eth1/00:10:18:77:bd:28/192.168.1.0
  Listening on LPF/eth0/00:e0:74:28:e9:e6/300.3.3.0
  Sending on   LPF/eth0/00:e0:74:28:e9:e6/300.3.3.0
  Sending on   Socket/fallback/fallback-net
  firewall#
现在,DHCP服务器已经启动,内部的机器通过DHCP服务器可以得到192.168.1.50~192.
168.1.254范围内的一个IP地址。在此,我并没有把所有的这个C类地址放在DHCP主机上
,所以192.168.1.2范围内的IP地址还可以用于其它的机器。
下面来创建防火墙规则。以下内容位于/etc/init.d中。
#!/bin/sh
   # 定义
  EXT_INTERFACE=eth1
  EXT_IP=300.3.3.3
  INT_INTERFACE=eth0
  INT_IP=192.168.1.1
   #加载一些需要的模块
     modprobe iptable_nat
    modprobe ip_conntrack_ftp ip_nat_ftp
    modprobe ip_conntrack_irc ip_nat_irc
   #设置iptables规则
     # Flush any existing tables
    iptables --flush
    iptables -t nat --flush
     for network in 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.
0.0.0/5
127.0.0.1/32
    do
      iptables -A  INPUT -i $EXT_INTERFACE -s $network -j DROP
      iptables -A OUTPUT -i $EXT_INTERFACE -s $network -j DROP
done
#告诉iptables想要改写所有连接中流出的数据包
iptables -t nat -F
iptables -t nat -A POSTROUTING -o $INT_INTERFACE -j SNAT --to-source $EXT_IP

  # 脚本结束
现在,你的机器就安全了,不但可以为内部机器提供Internet连接,而且还避免了它们
直接被外部的机器访问。
结论
有的人可能会指出这里面还有一些事情可以做。很显然,如果把防火墙脚本写得再复杂
一些,就可以保护很多此处没有提到的东西。但是我们只用了十分钟架设起来的防火墙
,已经可以提供具有相当安全性的连接了。

--


行如风
坐如钟
站如松
※ 来源:·幽幽黄桷兰 bbs.cqupt.edu.cn·[FROM: BelovedGirl]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店