用 IPFW 为 FreeBSD 操作系统建立防火墙
2009-05-13 13:39:06来源:未知 阅读 ()
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 IPFWoptions IPFIREWALL_DEFAULT_TO_ACCEPT #default allow all
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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:FreeBSD Mysql 安装
下一篇:BSD 备忘录
- 内核编译 修改了操作系统名称,改如何改回来? 2009-05-13
- FreeBSD 内建的防火墙指令ipfw英译汉 2009-05-13
- OpenBSD 3.x 防火墙 PF配置新手指南 2009-05-13
- 求《4.4BSD操作系统设计与实现》英文版影印版 2009-05-13
- 通过pf防火墙来封堵恶意猜测登陆ssh的IP 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash