BY XUNDI
FREEBSD中可以使用IPFW来停止PING的响应,即可以调制内核和使用IPFW来拒绝
ICMP服务,这样别人用PING就看不到任何信息了。
先介绍下IPFW:在专用DOS下常用网络相关命令解释IIS排错什么是sniffer和如何防止sniffer的监听UNIX防止非法用户注册的技术网络攻击与路由器的NAT功能防火墙软件Netfilter之NAT技术 IP地址从头说 关注内网安全:网络卫士LANguard详解tcp/ip基础知识管理信息系统安全方案详解相关链接共 52 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"路由器系统开始流行之前,Internet上的路由器大部分
是基于NetXray使用说明总汇如何阅读源代码--工具篇整理的关于网络欺骗攻击的内容 Unix网络的两个安全问题攻击CISCO路由器简评黑客的终极武器-DDoS教学文件(感谢网友提供!)管理信息系统安全方案详解日本及台湾IP分布情况perl脚本中的一些安全问题相关链接共 75 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"Unix的软件路由器,其中多数是BSD Unix。显然这是由于BSD Unix在
Internet上占据的重要地位决定的,即便是在专用硬件路由器流行的今天,
当由于价格等因素不能考虑硬件路由器时,BSD系统仍然是用作软件路由器的
首选系统。
由于路由器处于网络之间,所有网络间需要交换的数据包都要通过它转发,
因此就可以进行一定的限制,即按照预定义的一定规则处理每个数据包,符合
要求的允许通过,不符合要求的就进行丢弃。这样路由器就能用作一个简单的
简评黑客的终极武器-DDoS特洛依防范八招(网站成员大海提供!)Nmap网络安全扫描器说明(1)已公布的信息技术安全标准防止IE读出本地文件如何关闭你的NetBIOS 端口,让黑客无法入侵你!如何用nc建立反向通道UNIX IP Stack 调整指南输入法漏洞之完全心得如何防止Windows远程共享漏洞 相关链接共 103 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"防火墙系统,保护内部计算机。BSD系统中最早使用ipfw过滤器来定义不同的
过滤规则,随后ipfw也被移植到其他平台上,并根据开发者的理解不同而独立
发展。当前不同系统上的ipfw已经大不相同了,并出现了具备相同功能的其他过
滤器, FreeBSD下的ipfw也经过了不断发展,具备了更强的过滤能力,尤其是
它能和natd守护进程相结合,提供网络地址转换能力,具备更完善的防火墙能力。
FreeBSD的包过滤能力是在内核中实现的,这样才具备最高的效率和性能。因此
为了在FreeBSD上使用这个防火墙功能,需要在编译内核时打开下面选项重新定
制内核。
这文章里需要你在内核编制中打开下面的选项:
IPFIREWALL
IPFIREWALL_VERBOSE
\"IPFIREWALL_VERBOSE_LIMIT=100\"
options IPFIREWALL_DEFAULT_TO_ACCEPT
IPFILTER
IPFILTER_LOG
其中第一项设置IPFIREWALL是用于打开基本的包过滤支持的,只有使用它才能在
内核中支持包过滤。IPFIREWALL_VERBOSE 和IPFIREWALL_VERBOSE_LIMIT设置记
录过滤Linux下的代理服务器设置从小榕之流光谈口令安全系统管理员如何防范黑客攻击关于NT LOG记录 帐号安全FREEBSD中使用IPFW来过滤ICMP服务 后门,隐藏通道及HTTP(S)OpenBSD可加载内核模块编程完全指南 UNICODE编码漏洞全攻略-4网络安全方面的专业词汇相关链接共 81 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"日志,及日志记录的限制。IPFIREWALL_DEFAULT_TO_ACCEPT是设置
IPFIREWALL的缺省行为,在数据包不符合所有的过滤规则的情况下进行转发,
显然这是一种宽松的限制,此时系统主要用于屏蔽特定地址和特定服务,而提
供其他的缺省网络能力。如果没有定义这个选项,系统就只能允许符合已定义
规则的数据包通过,而屏蔽其他任何数据包,这样在没有定义过滤规则的情况
下,系统不能和其他计算机相互通信。而IPFILTER是通知内核支持ipfilter,
IPFILTER_LOG是进行ipfilter LOG记录。
OK,再经过内核重新编译(内核编译请参看其他文章),还需要设置内核具备
数据包的转发能力。需要在rc.conf中设置gateway_enable 的值为YES,这样
就能在系统启动时自动打开包转发能力。也可以直接执行下面命令来打开内
核包转发能力。
好了,下面主要描述我们来拒绝ICMP的服务规则,因为测试所用,所以你可以建立
一个文件如(myfile)并增加下面的条目:
ip=\"你的IP地址\"
ipfw -f flush #Forces your current firewall to be flushed!
ipfw add pass log icmp from $ip to any icmp 8
ipfw add pass log icmp from not $ip to $ip icmp 0
把文件保存后,并使用chmod +x myfile设置文件属性,并运行文件。
其中第一条是设置你的IP为一变量;
第二条是flush表示强制清楚你当前防火墙的所有规则;
对于第三,第四条,我们先来看看具体指令的意义:
add是增加规则,而pass指令是这条规则的处理指令,类似allow,而log
是记录指令,这个指令和其他指令不同,其他指令是对数据包进行处理的
指令,而log只是记录这个数据包,而数据包本身还将继续受到其他过滤
规则的处理,而icmp栏本身是过滤规则中规定数据包的协议类型,指定规
则是用于处理哪种数据包的,FreeBSD可以处理NETBUS2.0说明ASP漏洞及安全建议(safefan)路由器基础构造特殊的UDP数据包能造成SQL Server服务器CPU负荷加重漏洞 整理的关于网络欺骗攻击的内容 几种流行的入侵工具与讲解[转]DOS下常用网络相关命令解释网络配置文件快速解读使用xinetd对于SSH crc32 compensation attack detector exploit 的分析相关链接共 162 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"TCP,UCP,ICMP 类型的数据,
以及在/etc/protocols文件中定义的其他数据包的类型,上例中指定类型
是ICMP,因为我们要对ICMP进行处理,而from $ip to any是规定过滤规则
适用的地址范围,这可以通过指定源和目的计算机的IP地址范围或数据包
通过的网络界面来进行指定:
--用from规定数据包的来源地址,可以是主机地址或网络;
--用to规定数据包的目的地址,可以是主机地址或网络;
--用in或out规定数据包是流向本机,还是向外发送的;
所以第三条的规则意思是允许你使用到任何地址使用icmptype 8,echo-request,
而第四条是你获得icmptype 0,echo-reponse信息,但阻止你发送echo-reponse.
这上面的示例能比较好的阻止一些个人电脑防御黑客绝招Windows2000安全检查清单利用处理程序错误攻击(上)帐号安全Nmap网络安全扫描器说明(1)Nmap网络安全扫描器说明(2)服务器伪装信息修改法一些FreeBSD相关的安全问题 nmap的D.o.S攻击IP端口对照表(中文注释)相关链接共 35 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"端口扫描器的扫描,因为多数端口一般开始使用
ping来查看是否主机在线,但上面我们的traceroute就不能工作了,traceroute
先发送Backdoor and Linux LKM Rootkit - smashing the kernel at your own risk学习Linux网络编程(4)IP端口对照表(中文注释)FolkQQ专业黑软回顾常见IP碎片攻击详解攻破天网的几种办法一个访问NTFS磁盘权限的方法10个针对分布式拒绝服务攻击有关的快速补救措施Win2000 Server入侵监测嗅探原理与反嗅探技术详解相关链接共 77 篇','相关的链接')" href="http://www.safechina.net/article/showarticle.php?id=1003599338#"UDP信息包并等待icmp包返回,因此下面的规则是阻止入站的icmp type 8,
但允许所需要的icmp类型入站来进行traceroute的tracing(追踪):
参照下面的列表:
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic. (目标主机不可达)
5 redirect routing if not running routing daemon (如没有有运行routing
守护程序重定向routing)
8 echo-request ping
11 time-exceeded traceroute (traceroute超时)
当然icmp还有其他类型,请参看Request for Comments: 792
1, ipfw add pass log udp from $ip to any
2, ipfw add pass log icmp from $ip to any icmp 8
3, ipfw add pass log icmp from not $ip to any icmp 0
4, ipfw add pass log icmp from not $ip to any icmp 11
5, ipfw add pass log icmp from not $ip to any icmp 3
上面的规则4是接受icmp type 11但拒绝你发送,规则5是接受icmp type 3,但
拒绝你发送icmp type 3的信息。
按照上面的规则并进行测试,你可以traceroutes和ping目标主机防火墙规则能
接受它们的回应,而你可以让你朋友traceroute/ping你的目标主机,但他讲不会
得到任何回应或者出现超时错。
总结:icmp和其他协议不同之处是icmp过滤使用类型而不使用端口,一般应用程序
可以使用端口来增加过滤功能,但icmp是用类型类规定进出站的信息,如\"echo-request\"
是入站信息而\"echo-response\"是出站信息,这样就可以对信息进行过滤。
具体一般协议的规则使用方法是在目标和源地址后面进行端口规定,如:
ipfw add pass tcp from any [要规则处理的端口] to $ip [要规则处理的端口]
而ICMP是定义要规则处理的协议,如:
ipfw add pass icmp from any to $ip [要规则处理的协议]
最后如果你有其他规则加入此文件增加过滤能力,你如果要在FREEBSD启动时候
加入这些规则,FREEBSD有rc.firewall文件进行启动处理,只要把这些规则加入
rc.firewall后就能自动进行处理。
参考文章:
http://www.freebsdrocks.com/show.php3?ThisArticleID=6197&start=1&s
Return=25&search_category=8&search_criteria=&search_field=
http://freebsd.online.ha.cn/focus/FreeBSD/index.shtml
Request for Comments: 792
xundi@xfocus.org 2000-06-17
http://focus.silversand.net