科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道用 IPFW 为 FreeBSD 操作系统建立防火墙

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Ipfirewall(即IPFW)是一个FreeBSD操作系统下的IP数据包过滤和通信记录工具。IPFW作为一个独立的运行时刻可装载模块,就包含在基本的FreeBSD安装包中。

作者:freedom 译 来源:赛迪网 2008年4月24日

关键字: 防火墙 卡巴斯基防火墙

  • 评论
  • 分享微博
  • 分享邮件

  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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章