三、防火墙配置实现
用touch命令在/etc/rc.d/目录下建立firewall脚本文件,然后更改文件属性执行chomd u+x firewall,最后为确保设备启动后自动执行该脚本,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall。
根据以上访问控制策略,利用Iptables设定防火墙过滤规则[8],主要代码如下:
#!/bin/sh
echo “starting from iptables……”
# 开启内核转发功能
echo “1” >/proc/sys/net/ipv4/ip_forward
# 可以定义几个变量
IPT=/sbin/iptables
WWW-SERVER=198.168.1.254
IP_RANGE=“198.168.1.0/24”
# 刷新所有的链的规则
$IPT –F
# 首先禁止任何数据包策略,然后针对各网络间访问策略逐一实现。
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
#####web服务端口为80。设置访问防火墙和内网的www服务器,内网FTP等。####
# 对于防火墙本身,有自己的web服务器,设置访问规则
$IPT –A INPUT –P tcp –dport 80 –j ACCEPT
$IPT –A OUTPUT –P tcp –dport 80 –j ACCEPT
# 规则为:eth0=>允许目的为内部网WWW服务器的包
$IPT –A FORWORD –p tcp –d $WWW-SERVER –dport www –i eth0 –j ACCEPT
# 允许外网用户访问内网的 FTP 服务器
$IPT -A FORWARD -p tcp -d 198.168.80.13 –dport ftp -i eth0 -j ACCEPT
# 允许内网用户采用消极模式访问 Internet 的 FTP 服务器
$IPT -A FORWARD -p tcp -s 0/0 \ --sport ftp-data -d 192.168.0.0/24 -i eth0 \ -j ACCEPT
###### 通过NAT进行源地址转换实现内网通过防火墙访问外网。#####
# 首先配置本地回送接口loopback
ifconfig lo 127.0.0.1
route add –net 127.0.0.0 netmask 255.255.255.0 lo
# 配置网卡ip和路由
ifconfig eth0 192.168.0.17 netmask 255.255.255.0
route add –net 192.168.0.0 eth1 netmask 255.255.255.0
route add default gw 192.168.0.1
# 该命令确定接收并转发所有来自内部网络端口eth1的数据包。
$IPT –A FORWARD –i eth1 –j ACCEPT
# 把来自源地址为192.168.10.0/24的内部子网通过eth0出去的访问请求做NAT,实现IP
# 伪装,把发送到外部数据包的源地址修改为192.168.0.17(eth0)。
$IPT –t nat –A POSTROUTING -o eth0 -j MASQUERADE
######下面设置针对Intranet客户的过滤规则##########
# 对于Internet对Intranet客户的返回包,定义如下规则
# ①接受来自Internet的非连接请求tcp包
$IPT –A FORWORD –p tcp –d 198.168.80.0/24 ! –syn –i eth0 –j ACCEPT
# ②接受所有udp包,主要是针对oicq等使用udp的服务
$IPT –A FORWORD –p utp –d 198.168.80.0/24 –i eth0 –j ACCEPT
# ③然后接受来自整个Intranet的数据包过滤,定义如下规则
$IPT –A FORWORD –s 198.168.80.0/24 –i eth0 –j ACCEPT
$IPT -A FORWORD –P udp –dport 53 –j ACCEPT
# 处理IP碎片接受所有的IP碎片,但采用limit匹配扩展对其单位时间可以通过的IP碎# 片数量进行限制,以防止IP碎片攻击
$IPT –A FORWORD –f –m limit --limit 100/s --limit –burst 100 –j ACCEPT
# 说明:对不管来自哪里的IP碎片都进行限制,允许每秒通过100个IP碎片该限制触发
# 的条件是100个IP碎片
以上步骤实现了一个具有包过滤网络地址转换等功能的防火墙。
四、结语
防火墙技术是网络安全中的一大关键技术,在 Internet发展中,防火墙技术的发展起到了举足轻重的作用。本文基于ARM9-Ks8695实现了简易的防火墙,分析了防火墙的原理与配置过程。Linux防火墙具有结构清晰、开发成本低、配置Netfilter灵活、功能强大等特点,加上 本身所具备的较高的安全性,适合于中小型规模网络应用。
|