Ipfilter心得集

原创 2004年07月27日 22:09:00
首先,编译内核,添加如下两行:

options IPFILTER
options IPFILTER_LOG

##另外有:options IPFILTER_DEFAULT_BLOCK,但是我个人认为没有什么用处。

然后,修改你的/etc/rc.conf文件,添加:

####################################
gateway_enable="YES"
ipfilter_enable="YES"
ipfilter_program="/sbin/ipf"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
##起动包过滤功能
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags="CF"
##起动地址翻译功能
ipmon_enable="YES"
ipmon_program="/sbin/ipmon"
ipmon_flags="-Ds"
##起动日志记录功能
######################################

然后在/etc目录下建立ipf.rules ipnat.rules两个文件
在/etc下面建立的两个文件就是ipfilter的规则文件现在开始修改规则文件
先说 :我的外网卡:rl0 *.*.*.45/24
我的内网卡:dc0 192.168.0.1/24
先是 ipf.rules:
block in quick all with short #丢弃短小的包
block in quick all with ipopts #丢弃自身带有路由功能的包
pass in quick on lo0
pass out quick on lo0 all #在本地回环上面,一律通过

###############
#然后给自己的网卡分组#
###############
block in quick on dc0 all head 100 #如果分组100没有允许,则BLOCK
block out quick on dc0 all head 150 #如果分组150没有允许,则BLOCK
block in quick on rl0 all head 200 #如果分组200没有允许,则BLOCK
block out quick on rl0 all head 250 #如果分组250没有允许,则BLOCK
#在内网卡的IN为分组100
#在内网卡的OUT为分组150
#在外网卡的IN为分组200
#在外网卡的OUT为分组250

####################
#首先编辑内网卡的IN规则
####################
pass in quick proto tcp from 192.168.0.0/24 to any keep state group 100
pass in quick proto udp from 192.168.0.0/24 to any keep state group 100
pass in quick proto icmp from 192.168.0.0/24 to any keep state group 100
psss in quick proto esp from 192.168.0.0/24 to any keep state keep flags group 100
pass in quick proto gre from 192.168.0.0/24 to any keep state group 100
#分别允许tcp,udp,icmp,esp(ipsec),gre(pptp)协议通过.

#################################################
.
.
.
按照类似规则,编辑其他分组
.
.
.
#################################################

#最后,应有阻止10.0.0.0/8 127.0.0.0/8 172.16.0.0/12 192.168.0.0/16的规则
block in quick from 10.0.0.0/8 to any group 200
block in quick from 127.0.0.0/8 to any group 200
block in quick from 172.16.0.0/12 to any group 200
block in quick from 192.168.0.0/16 to any group 200

#################################################
#最终明确阻止
blocl in quick all
block out quick all
#################################################

然后,看ipnat.rules规则

#############
map rl0 192.168.0.0/24 -> *.*.*.45/32 proxy port ftp ftp/tcp
#作用是对有写需要主动端口的ftp的代理
map rl0 192.168.0.0/24 -> *.*.*.45/32 portmap tcp/udp 10000:65000
map rl0 192.168.0.0/24 -> *.*.*.45/32 #对icmp协议的转换
rdr rl0 *.*.*.45 port -> 192.168.0.2 port 80
#对于内网提供web服务的端口映射,其他比如ftp,dns抗议参照这个来设定
###########################################

到此,利用ipfilter来完成防火墙的设定完成。
我觉得,首先 ,要规划好自己的网络 ,一般拥有两个if(或许你有第三个DMZ),但是原理是一样的 ,首先,分组自己的IF,在没个分组里面,设置自己的规则,这样,就不是那样的混乱,先通过,最后,一切阻止,这是一般的作法,可是有的时候,你要这样作,先阻止,然后通过一切,但最终的目的都是一样的 。
然后规划自己要向外提供的服务,这就需要ipnat.rules规则来详细的划分,如果你有第三块网卡,那么可以为自己提供非军事区口,可是到最终的原理还是一样的 ,一个map,一个rdr,这个文件其实没有太多可以控制的东西。

防火墙最大的作用就是访问控制,简单点说,就是ipf.rules中的规则你设置的如何。在pass,block里面,象flags s/safp 等的参数,可是我现在还没有用到,所以,他的具体用法我还不太清楚,用实践的话,在给大家提供。

############

最终还有几条命令:ipnat ,ipf ,他们的具体使用可以看man,可是如果你要看当前的状态表的话,那么 #ipfstat -t 一定回满足你的要求的。

图算法小结(并查集)

一:起因 (1)关于图的算法一般是比较复杂的,自己在这方面也是比较弱的,首先是图的存储问题 和 遍历问题: 存储分为两种,邻接矩阵 和 临街表;遍历分为DFS 和 BFS两种,非常类似于二叉树的先跟遍...
  • u010700335
  • u010700335
  • 2015年04月08日 15:57
  • 1220

HDU 5326(并查集小心得)

Work Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su...
  • fenghoumilin
  • fenghoumilin
  • 2016年08月02日 08:54
  • 116

一次失败的kaggle比赛Santander Customer Satisfaction:赛题简介与初次尝试

题目描述:https://www.kaggle.com/c/santander-customer-satisfaction 简单总结:一堆匿名属性;label是0/1;目标是最大化AUC(ROC...
  • xiaopihaierletian
  • xiaopihaierletian
  • 2017年04月17日 09:03
  • 438

安装软件的一点心得

这几天因为工作的原因要接收别人的代码,
  • u012043458
  • u012043458
  • 2014年04月15日 21:25
  • 782

暑假一个月学习心得(Arduino硬件)

不知不觉,暑假已经过去了一大半,马上就
  • Two_dogs
  • Two_dogs
  • 2014年08月20日 15:55
  • 1987

关于多线程的学习心得

1.web应用中,要对某一个任务用多线程实现,最简单的代码格式是不是必须把要执行的代码放在run方法中? WEB服务器会帮你把每个访问请求开辟一个线程,你只要按照你所开发的框架,比如tomcat会让...
  • u012079766
  • u012079766
  • 2016年03月14日 19:30
  • 488

一点论文写作心得

论文对于硕士,尤其博士,是必须的一种技能,也是一道难关。所谓大道无形,小道可走。下面给出一些博士期间的写作心得,希望能有所裨益。论文可以有三个境界:毕业、科研、贡献。 现在只说第一个,为了毕业。...
  • u012116229
  • u012116229
  • 2015年02月28日 17:32
  • 367

C#学习心得与自我反思

今天都学了什么知识呢,想知道么,也不卖关子了,今天呢学习了变量与分支语句、循环、数组、枚举(enum),结构(struct)等知识,这些知识跟java差不多,没什么区别,枚举呢,本来就不是很好,所以就...
  • MaBackspace
  • MaBackspace
  • 2016年06月28日 19:25
  • 578

jquery使用心得

1,普通获取某个控件 ${'#id'}  赋值 ${'#id'}.val('new value') 或 ${'#id'}.attr('val','new value')   id = “pojo.na...
  • z3636081
  • z3636081
  • 2015年09月11日 14:50
  • 126

并查集的一些个人观点 以及克鲁斯卡尔算法的详解

先抛出个问题,什么是并查集,它有什么用? 看我这篇Blog的人想必就为了弄明白,下面写出我个人的一些观点。 1 什么是并查集,以及并查集要完成的目标。 举个例子,通火车要修路,已经修了一...
  • w1085541827
  • w1085541827
  • 2016年07月31日 03:11
  • 2375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ipfilter心得集
举报原因:
原因补充:

(最多只允许输入30个字)