用FreeBSD+IPFW配置防火墙

类别:软件工程 点击:0 评论:0 推荐:
        FreeBSD操作系统本身带有二种内置的IP信息包检查机制:ipfw和ipfilter。在创建决定允许哪些信息包进入系统、哪些信息包会被拒之系统门外的规则集方面,二种机制各有自己独特的语法。而在这里我们将使用ipfw配置FreeBSD系统的防火墙。  
        IPFW本身是FreeBSD内置的,要使用IPFW设置防火墙需要重新编译FreeBSD内核。注意,因为在编译后IPFW默认拒绝所有网络服务,包括对系统本身都会拒绝,所以在配置过程中一定要小心谨慎。

        Step 1,对IPFW的一些基本参数进行配置:
            #cd /sys/i386/conf
            //如果没有这个目录,说明你的系统没有安装Ports服务,要记得装上。
           #cp GENERIC ./kernel_IPFW
           用 vi 打开kernel_IPFW文件,在文件未尾加入以下个行:
           options IPFIREWALL                                //将包过滤部分代码编译进内核。
           options IPFIREWALL_VERBOSE
           //启用通过Syslogd记录日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。
               options IPFIREWALL_VERBOSE_LIMIT=10
              //限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录将你淹没,那么这个选项将会很有用。当使用了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录下来。
               options IPFIREWALL_DEFAULT_TO_ACCEPT
                //注意,关键地方了,本句把默认的规则动作从“deny”改成“allow”了,作用是在默认状态下IPFW将会接受任何的数据。
               输入完成后,保存,并退出。

        Step 2,编译系统内核:
        #/usr/sbin/config kernel_IPFW
        #cd ../compile/kernel_IPFW
        //注意,FreeBSD 4.X版本是../../compile/kernel_IPFW,而FreeBSD 5.X版本却是../compile/kernel_IPFW。
         #make
         #make install    //开始编译内核。

          Step 3,编辑/etc/rc.conf
           加入如下参数:
               firewall_enable=“YES“
              //激活Firewall防火墙
               firewall_script=“/etc/rc.firewall“
              //Firewall防火墙的默认脚本
               firewall_type=“/etc/ipfw.conf“
              //Firewall 自定义脚本
              firewall_quiet=“NO“
              //启用脚本时是否显示规则信息;假如你不再修改防火墙脚本,那么可以把这里设成“YES“。
             firewall_logging_enable“YES“

              编辑/etc/syslog.conf 文件,在文件最后加入:
              !ipfw
               *.* /var/log/ipfw.log
              //这行的作用是将IPFW的日志写到/var/log/ipfw.log/文件里。你可以为日志文件指定其它路径。
             最后,重启服务器。
重启之后,你就可以用SSH登录你的服务器了,之后你可以在/etc/ipfw.conf中添加过滤规则来防止入侵了。
        
              
         

        
       
             

本文地址:http://com.8s8s.com/it/it32456.htm