频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

如何设定freebsd防火墙IP Firewall(ipfw)

来源: 作者: 出处:巧巧读书 2006-06-07 进入讨论组

 BBS水木清华站 (2001-04-16 14:19:47)
IP Firewall 可以有效的增进系统的安全,但是除非你对 IP Firewall 有
相当的了解,否则你可能把你的机器弄的无法上网路。

警告 !! 绝对不要从远端连线设定 IPFW,一定要从 console !!
不然设定错误,你的连线可能会被中断 !!

你必须在 kernel config file 中加入 options IPFIREWALL 及 options IPFIREWALL_VERBOSE,再重新编译 kernel。

在你开始以前,请先 man ipfw。

1. 编辑 /etc/sysconfig,把 firewall=NO 改成 firewall=YES
2. 修改 /etc/rc.firewall
你可以参照里面的□例,如果看不懂的话,请 man ipfw
以下是一个简单的例子:

echo "IP Firewall Rules ...."
# true to enable, false to disable

if true; then
# basic information
net="140.113.139.0"
mask="255.255.255.0"
mask_b="255.255.0.0"
myip="140.113.139.1"

# flush all rules
# FreeBSD-2.2 1996/Sep 以後的版本,请使用 ipfw -f flush (见後 PS)
/sbin/ipfw flush

# Allow all connections at last
# IPFW default rule : "65535 deny all from any to any"
/sbin/ipfw add 65000 pass all from any to any

# Allow all connections (the latest match 65000) 本行最後才 match !
/sbin/ipfw add 65000 pass all from any to any

# Allow all localhost connections (first match) 本行最先 match !
/sbin/ipfw add 1000 pass all from 127.0.0.1 to 127.0.0.1
/sbin/ipfw add 1010 pass all from ${myip} to a

# Friendly sites (fully access rights)
# 这些 host 最好用 IP,或是要纪录在 /etc/hosts 中
/sbin/ipfw add 1100 pass all from Friend1 to any
/sbin/ipfw add 1120 pass all from Server to any
/sbin/ipfw add 1130 pass all from FreeBSD.csie.nctu.edu.tw to any

# deny everything (asshole host)
/sbin/ipfw add 2000 deny all from 123.123.123.123:${mask} to any

# deny remote syslogging to get ride of security problem
/sbin/ipfw add 3000 deny udp from any to any 514

# deny users out of campus from doing "rusers", "rwall"
/sbin/ipfw add 4000 pass udp from ${net}:${mask_b} to any 1034,1035
/sbin/ipfw add 4010 deny udp from any to any 1034,1035

# deny most hosts from tcpspray me
/sbin/ipfw add 5000 deny tcp from any to any 9
/sbin/ipfw add 5010 deny udp from any to any 9
fi

3. 执行 sh /etc/rc.firewall,然後测试各种网路连线看看

後记:
IPFW 一启动後,内定是『拒绝所有连线』!!!
(IPFW 内定 rule : 65535 deny all from any to any)
这点要特别注意,因此如果你下了 ipfw flush 指令,你立刻跟网路隔绝,连 localhost 也无法连接。
因此通常我们会在最後一个 rule (如 65534) 允许所有连线,然後把 deny 的 rules 都放在前面。

如果你在系统启动之後修改了 /etc/rc.firewall,只要用sh /etc/rc.firewall 就可以载入新的 rules。
如果你在远端控制,要注意新加的 rule 不要把自己给 ban 掉了啊。

PS. 在 1996/Sep 以後的 ipfw 在执行 ipfw flush 时会询问使用者以求确认 (因为 ipfw flush 会导致连线中断),因此你在撰写 /etc/rc.firewall 时请使用 ipfw -f flush。你可以打 ipfw -h 看看你的 ipfw 有没有支援 -f 的选项。

 

http://www.qqread.com/linux/2006/06/s211123061.html 更多文章 更多内容请看防火墙软件应用Cisco防火墙专题Linux防火墙专题,或进入讨论组讨论。

收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章