动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > FreeBSD教程
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ FreeBSD教程 ]的信息



本月文章推荐
.在FREEBSD 5.2中使用Pureftpd + .
.初学者入门:FreeBSD系统的安装与.
.FreeBSD下有关设备名,分区和moun.
.把Linux的密码->FreeBSD data.
.FreeBSD下PPPoE的设置.
.FreeBSD handbook中文版 3 Unix .
.sysctl命令.
.FreeBSD 简介.
.FreeBSD基础点滴.
.idled 介绍 (一).
.在FreeBSD5.0上配置DNS服务手记.
.要 ftp 不要 telnet 如何设?.
.利用 portupgrade快速更新通过po.
.FreeBSD kernel 编译大法(一).
.FreeBSD中Telnet最大连接用户数的.
.Ports & Package.
.FreeBSD handbook中文版 11 打印.
.在FreeBSD 4.0下安装USB鼠标支持.
.在FreeBSD4.3 release上使用IP F.
.打 last 显示 IP 而不是 hostnam.

FreeBSD SNP 3.Client端--连线实作

发表日期:2005-3-28 |


FREEBSD中可以使用IPFW来停止PING的响应,即可以调制内核和使用IPFW来拒绝 
ICMP服务,这样别人用PING就看不到任何信息了。 

先介绍下IPFW:在专用路由器系统开始流行之前,Internet上的路由器大部分 
是基于Unix的软件路由器,其中多数是BSD Unix。显然这是由于BSD Unix在 
Internet上占据的重要地位决定的,即便是在专用硬件路由器流行的今天, 
当由于价格等因素不能考虑硬件路由器时,BSD系统仍然是用作软件路由器的 
首选系统。 

  由于路由器处于网络之间,所有网络间需要交换的数据包都要通过它转发, 
因此就可以进行一定的限制,即按照预定义的一定规则处理每个数据包,符合 
要求的允许通过,不符合要求的就进行丢弃。这样路由器就能用作一个简单的 
防火墙系统,保护内部计算机。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设置记 
录过滤日志,及日志记录的限制。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可以处理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. 

这上面的示例能比较好的阻止一些端口扫描器的扫描,因为多数端口一般开始使用 
ping来查看是否主机在线,但上面我们的traceroute就不能工作了,traceroute 
先发送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  

上一篇:FreeBSD SNP 2.Server端--自我测试连线 人气:5805
下一篇:FreeBSD SNP 4.inetd.conf设定 人气:6466
浏览全部FreeBSD的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-5 360安全卫士 V4.2.0.1004
2008-7-5 PHPDug v2.0 多国语言版
2008-7-5 乘风电影程序 v3.69 (SQL)
2008-7-5 乘风电影程序 v3.69
2008-7-5 wfTextImage文字图像组件 v1.5
2008-7-5 ZY music! v1.1.0705
2008-7-5 FavShop网店系统 v1.0
2008-7-4 天空网络电影系统SKYUC v2.5.1 B
2008-7-4 Drupal v7.x-dev Build 080704
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報