热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux服务器架设 » 用 IPFW 为 FreeBSD 操作系统建立防火墙

用 IPFW 为 FreeBSD 操作系统建立防火墙

论坛链接
  • 用 IPFW 为 FreeBSD 操作系统建立防火墙
  • 发布时间:2007-09-16 14:53:21    浏览数:7497    发布者:lusspan    设置字体【   
Ipfirewall(即IPFW)是一个FreeBSD操作系统下的IP数据包过滤和通信记录工具。IPFW作为一个独立的运行时刻可装载模块,就包含在基本的FreeBSD安装包中。在rc.conf中含有语句“firewall_enable=YES”时,系统会动态地装载内核模块。

第一步:为IPFW而编译FreeBSD内核

这一步是可选的。如果你不想启用NAT功能,你就没有必要将IPFW编译到FreeBSD内核中。然而一些老的版本可能没有编译IPFW。下面我们介绍将IPFW编译进入内核中去的方法。

如果你得到如下的一个错误消息:“ipfw: getsockopt(IP_FW_GET): Protocol not available ”,即协议不可使用,那你就必须编译内核的源代码。

另一个可选项是打开默认的内核配置文件/usr/src/sys/i386/conf,并找到IPFIREWALL选项:


# grep IPFIREWALL /usr/src/sys/i386/conf

第二步:编译并安装带有IPFW的定制内核

首先是复制默认的内核文件:


# cd /usr/src/sys/i386/conf
# cp GENERIC IPFWKERNEL

然后增加IPFW支持:


# vi IPFWKERNEL

添加下面的指令:


options IPFIREWALL # required for IPFW
options IPFIREWALL_VERBOSE # optional; logging
options IPFIREWALL_VERBOSE_LIMIT=10 # optional; don't get too many log entries
options IPDIVERT # needed for natd


保存并关闭文件。编译内核,键入如下的命令:

# cd /usr/src
# make buildkernel KERNCONF=IPFWKERNEL

安装新的内核:


# make installkernel KERNCONF=IPFWKERNEL

现在重新启动系统:


# reboot

第三步:启用IPFW

首先打开/etc/rc.conf文件:


# vi /etc/rc.conf

然后,添加如下的设置:


firewall_enable="YES"
firewall_script="YES"
firewall_script="/usr/local/etc/ipfw.rules"


保存并关闭文件。
第四步:编写防火墙规则脚本

你需要将防火墙规则放到一个被称为/usr/local/etc/ipfw.rule的脚本中:


# vi /usr/local/etc/ipfw.rule

添加如下的代码:


IPF="ipfw -q add"
ipfw -q -f flush

#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag

# statefull
$IPF 50 check-state
$IPF 60 allow tcp from any to any established
$IPF 70 allow all from any to any out keep-state
$IPF 80 allow icmp from any to any

# open port ftp (21,22), ssh (22), mail (25)
# http (80), dns (53) etc
$IPF 110 allow tcp from any to any 21 in
$IPF 120 allow tcp from any to any 21 out
$IPF 130 allow tcp from any to any 22 in
$IPF 140 allow tcp from any to any 22 out
$IPF 150 allow tcp from any to any 25 in
$IPF 160 allow tcp from any to any 25 out
$IPF 170 allow udp from any to any 53 in
$IPF 175 allow tcp from any to any 53 in
$IPF 180 allow udp from any to any 53 out
$IPF 185 allow tcp from any to any 53 out
$IPF 200 allow tcp from any to any 80 in
$IPF 210 allow tcp from any to any 80 out

# deny and log everything
$IPF 500 deny log all from any to any


保存并关闭文件。
第五步:启动防火墙

你可以重新启动服务器,或者通过在命令行输入如下的命令,可以重新加载这些规则:


# sh /usr/local/etc/ipfw.rules

如果要依次列示所有的规则,需要键入下面的命令:


# ipfw list
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理