利用FreeBSD内核支持BRIDGE、IPFIREWALL以及DUMMYNET选项可以建立基于FreeBSD透明流量控制防火墙(桥接模式)起到限制流量和包过滤功能
准备
可以在任何FreeBSD兼容硬件上构建流量控制防火墙但是基于性能和管理上考虑建议:
使用Intel PII450以上处理器
使用至少128MB RAM
使用高性能10/100Mbps自适应网络适配器
如果多于组桥接设备建议使用双处理器系统
另外准备块单独网络适配器用于管理
--------------------------------------------------------------------------------
例子
联想万全1300 PC服务器具有颗Intel PII300处理器配置有128MB RAM主板集成Intel 82557网络适配器另外安装了4块3Com 3C905B 10/100Mbps自适应PCI网络适配器
--------------------------------------------------------------------------------
安装
安装最新版本FreeBSD可以从www.FreeBSD.org获取当前FreeBSD版?..请使用FreeBSD 4.3 RELEASE或者更高版本
必须安装操作系统源代码中"sys"部分安装完成以后需要重新编译系统内核以支持必要流量控制防火墙选项
--------------------------------------------------------------------------------
例子
安装FreeBSD-4.3-20010818-STABLE版本从
ftp://releng4.freebsd.org/pub/FreeBSD/snapshots/i386/
获得使用FTP安装方式安装选项为:
[X] bin
[X] crypto
[X] man
[X] src->sys
--------------------------------------------------------------------------------
配置
完成操作系统安装以后必须重新编译系统内核使其支持桥接流量控制防火墙选项必须在系统内核编译配置文件中添加以下内容:
options BRIDGE
options DUMMYNET
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
重新编译完系统内核以后必须重新启动计算机
--------------------------------------------------------------------------------
例子
# cd /usr/src/sys/i386/conf
# cp GENERIC BRGFW
# echo "options BRIDGE" >> BRGFW
# echo "options DUMMYNET" >> BRGFW
# echo "options IPFIREWALL" >> BRGFW
# echo "options IPFIREWALL_DEFAULT_TO_ACCEPT" >> BRGFW
# config
# cd ../../compile/BRGFW
# make depend all
# reboot
--------------------------------------------------------------------------------
重新启动计算机以后使用以下命令激活桥接流量控制防火墙选项:
sysctl -w net.link.ether.bridge_ipfw=1
sysctl -w net.link.ether.bridge_cfg=""
sysctl -w net.link.ether.bridge=1
其中bridge_cfg参数用于设置多组桥接设备如果仅考虑单组桥接可以忽略例子使用集成Intel 82557网络适配器作为管理网络其他3Com 3C905B网络适配器分为两组网桥使用
--------------------------------------------------------------------------------
例子
# sysctl -w net.link.ether.bridge_ipfw=1
# sysctl -w net.link.ether.bridge_cfg="xl0:0,xl1:0,xl2:1,xl3:1"
# sysctl -w net.link.ether.bridge=1
--------------------------------------------------------------------------------
使用
使用ipfw命令来控制流量和防火墙策略其中流量控制是作为条防火墙策略实现因此ipfw是唯管理界面通过例子来介绍说明ipfw使用
在例子中网段192.168.254.0/24经过第组网桥网段192.168.250.0/24经过第 2组网桥并建立以下策略:
允许所有ICMP连接限制总流量为10Kbit/s
允许所有UDP链接限制总流量为100Kbit/s
允许TCP到网段192.168.254.0/24所有连接限制流量为5Mbit/s
允许TCP到主机192.168.250.222HTTP连接限制流量为2Mbit/s
允许TCP到主机192.168.250.0/24所有其他连接限制流量为1Mbit/s
禁止其他所有连接
--------------------------------------------------------------------------------
例子
# ipfw -flush
# ipfw add 100 pipe 1 icmp from any to any
# ipfw pipe 1 config bw 10Kbit/s
# ipfw add 200 pipe 2 udp from any to any
# ipfw pipe 2 config bw 100Kbit/s
# ipfw add 300 pipe 3 tcp from 192.168.254.0/24 to any
# ipfw pipe 3 config bw 5Mbit/s
# ipfw add 400 pipe 4 tcp from any to 192.168.254.0/24
# ipfw pipe 4 config bw 5Mbit/s
# ipfw add 500 pipe 5 tcp from any to 192.168.250.222 80
# ipfw pipe 5 config bw 2Mbit/s
# ipfw add 600 pipe 6 tcp from 192.168.250.222 80 to any
# ipfw pipe 6 config bw 2Mbit/s
# ipfw add 700 pipe 7 tcp from 192.168.250.0/24 to any
# ipfw pipe 7 config bw 1Mbit/s
# ipfw add 800 pipe 8 tcp from any to 192.168.250.0/24
# ipfw pipe 8 config bw 1Mbit/s
# ipfw add 60000 deny ip from any to any
# ipfw -a l
最新评论