优化后的ipfilter想卸载时还需要还原
前几天学校的网络一直时断时续,一直以为是新架设的网关服务器的问题,所以几天前对它进行过一次优化(主要是优化/etc/sysctl.conf和ip_state.h文件),但查到最后,发现原来是内网机器的病毒加上网络流量的增大(没有限制流量)所造成的,和网关服务器没关系,所以最后还是决定使用放弃ipfilter而使用squid,事情越简单越好,这话一点没错,这次用ipfilter本来是想让客户端使用方便,可没想到一些负面对服务器影响这么大(主要为病毒冲击内网网卡加上使用p2p软件进行无限制下载网络资源),今天准备从内核中将ipfilter撤走:
# cd /usr/src/sys/i386/conf
# cp funpower2 funpower3 //通过复制来新建一个新内核文件
# ee funpower3将以下三行注释(加#号):
#options IPFILTER
#options IPFILTER_LOG
#options IPFILTER_DEFAULT_BLOCK# /usr/sbin/config funpower3
# cd ../compile/funpower3
# make cleandepend
# make depend
# make
# make install
当编译到make命令时,竟然出现了以下错误:
In file included from /usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/mlfk_ipl.c:26:
/usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/ip_state.h:24: error: syntax error before "IPSTATE_SIZE"
*** Error code 1Stop in /usr/src/sys/modules/ipfilter.
*** Error code 1Stop in /usr/src/sys/modules.
*** Error code 1Stop in /usr/src/sys/i386/compile/funpower2.
看到错误信息中有我优化时更改的ip_state.h文件,就知道一定和优化有关,马上恢复原来设置,将优化的内容:
#ifndef IPSTATE_SIZE
define IPSTATE_SIZE 64997
#endif
#ifndef IPSTATE_MAX
define IPSTATE_MAX 45497 /* Maximum number of states held */
#endif
改成(加两#号):
#ifndef IPSTATE_SIZE
#define IPSTATE_SIZE 5737
#endif
#ifndef IPSTATE_MAX
#define IPSTATE_MAX 4013 /* Maximum number of states held */
#endif
重新进入配置文件进行配置(刚前几步完成的操作不用重复,直接make):
# cd /usr/src/sys/i386/compile/funpower2
# make //刚前几步make cleandependmake depen等完成的操作不用重复,直接make
# make install
然后编辑/etc/rc.conf,去除启动选项:
# cd /etc
# ee rc.conf
去除以下四行(加#号):
#ipfilter_enable="YES"
#ipfilter_rules="/etc/ipf.conf"
#ipnat_enable="YES"
#ipnat_rules="/etc/ipnat.conf"
重启服务器,完成去除ipfilter工作。


