| 网站首页 | 文章 | 下载 | 图库 | 留言 | 论坛 | 邮箱 | 商城 | 资源 | 供求 | 招聘 | 会员区 | 动画 | 视频 | 经典 | 品黑页 | 
免费服务 发表文章 在线破解 黑客游戏 精华收集 电影频道 音乐频道 二级域名 免费代理 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 经典 >> 网络应用 >> 防火墙 >> IP Filter >> 收集正文 用户登录 新用户注册
IP Filter Based Firewalls HOWTO(9)            【字体:
IP Filter Based Firewalls HOWTO(9)
作者:佚名 文章来源:不详 点击数: 更新时间:2005-12-24
IP Filter Based Firewalls HOWTO
    7.2 ipmon

ipfstat对收集在系统上发生的事情很有用,但是它还不能够方便且及时的查看日志。ipmon是一个工具,它有能力查看包过滤的日志(关键字log产生的日志),状态日志,或者是nat日志以及由它们三者共同产生的日志。这个工具可以在前台运行也可以在后台运行(将日志传给syslogd或者一个文件)。如果我们想看状态表的当前情况,可以运行ipmon -o S
# ipmon -o S
01/08/1999 15:58:57.836053 STATE:NEW 100.100.100.1,53 -> 20.20.20.15,53 PR udp
01/08/1999 15:58:58.030815 STATE:NEW 20.20.20.15,123 -> 128.167.1.69,123 PR udp
01/08/1999 15:59:18.032174 STATE:NEW 20.20.20.15,123 -> 128.173.14.71,123 PR udp
01/08/1999 15:59:24.570107 STATE:EXPIRE 100.100.100.1,53 -> 20.20.20.15,53 PR udp Pkts 4 Bytes 356
01/08/1999 16:03:51.754867 STATE:NEW 20.20.20.13,1019 -> 100.100.100.10,22 PR tcp
01/08/1999 16:04:03.070127 STATE:EXPIRE 20.20.20.13,1019 -> 100.100.100.10,22 PR tcp Pkts 63 Bytes 4604

我们可以看到有一条外部机器向我们的dnssever发送dns请求的状态条,两条xntp ping到时间服务器,一条短暂的向外的ssh连接。
ipmon也可以显示哪些数据包被日志记录了。例如
# ipmon -o I
15:57:33.803147 ppp0 @0:2 b 100.100.100.103,443 -> 20.20.20.10,4923 PR tcp len 20 1488 -A

它们的含义分别是时间戳 接口 规则 阻止 源地址,端口 -> 目的地址,端口 协议 tcp 包长度 20 1488 ACK
最后我们看一下NAT表
# ipmon -o N
01/08/1999 05:30:02.466114 @2 NAT:RDR 20.20.20.253,113 <- -> 20.20.20.253,113 [100.100.100.13,45816]
01/08/1999 05:30:31.990037 @2 NAT:EXPIRE 20.20.20.253,113 <- -> 20.20.20.253,113 [100.100.100.13,45816] Pkts 10 Bytes 455

这是一条重定向的规则,用于在我们的防火墙后面提供规则的场合。

8.ipfilter的特殊用法

8.1 基于服务器和标志的deep state

保存状态很有用,但是很容易犯错。通常,你在第一条与数据包进行交互的规则中加入keep state,一个普遍的错误是混合了状态跟踪和基于标志的过滤:
block in all
pass in quick proto tcp from any to 20.20.20.20/32 port = 23 flags S
pass out all keep state

这几条规则的本意是允许客户机与服务器20.20.20.20进行telnet连接,如果你在试验这规则你会发现它能够马上起作用,由于我们是对SYN进行匹配的,状态条是不能够做到4/4的(不完整状态),这个状态默认的超时是60秒。
我们可以重写规则来解决这个问题:
1)

block in all
pass in quick proto tcp from any to 20.20.20.20/32 port = 23 keep state
block out all

或者
2)

block in all
pass in quick proto tcp from any to 20.20.20.20/32 port = 23 flags S keep state
pass out all keep state

这两组规则的任何一组都可以为每个连接建立完整的状态条。

8.2 解决ftp

ftp有两种不同的传输模式,防火墙管理员不得不解决ftp的这些问题。更糟的是ftp客户机和服务器的问题是不一样的。
ftp协议里面有两种数据传输模式,主动和被动。主动传输是服务器向客户机的一个开放端口进行连接然后传数据。相反地,被动传输是客户机向服务器发起连接并接受数据。

8.2.1 运行ftp服务

在运行ftp服务中,处理主动ftp的连接是比较简单的。而处理被动ftp则是一个大问题。首先我们先讨论怎样处理主动ftp,然后是被动ftp。通常主动ftp就像一个进入的http或者smtp连接:我们只要打开ftp端口并keep state就可以了:
pass in quick proto tcp from any to 20.20.20.20/32 port = 21 flags S keep state
pass out proto tcp all keep state

这两条规则允许主动ftp连接,这是最常见的类型。
下面是处理被动ftp连接。web浏览器默认是这种情况,它变得越来越流行,因此我们必须支持它。被动ftp的问题是针对每个被动连接,ftp服务器必须重开一个新端口(通常是1023以上)。这就像是在服务器上提供一个新的服务。如果我们的防火墙默认策略是禁止的,那么这个新的服务将被阻止,ftp会话就中断了。但是我们还有别的办法可以解决这个问题。
也许有人会打开所有1023以上的端口来解决这个问题。事实上,这个方法确实能够解决问题,尽管它令人不太满意:
pass in quick proto tcp from any to 20.20.20.20/32 port > 1023 flags S keep state
pass out proto tcp all keep state

打开所有1023以上的端口,我们将面临一些潜在的危险。端口1-1023是提供给服务进程使用的,众多的程序决定使用1023以上的端口,比如nfsd和X
幸运的是ftp服务进程可以自己决定哪个端口分配给被动连接。这意味着你可以仅仅打开15001-19999端口作为ftp的端口,而不是打开所有1023以上的端口。在wu-ftpd里面,可以在ftpaccess中指定被动端口。请参考ftpaccess的手册。ipfilter所需要做的仅仅是建立相应的规则:
pass in quick proto tcp from any to 20.20.20.20/32 port 15000 >< 20000 flags S keep state
pass out proto tcp all keep state

如果这样还不能使你满意的话,你只好修改ipf来支持ftp或者修改ftp来支持ipf。

收集录入:华夏    责任编辑:华夏 
  • 上一篇收集:

  • 下一篇收集:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    最新热点资讯
    最新推荐资讯
    相关收集
    使用IP过滤,轻松管理网络(5)
    使用IP过滤,轻松管理网络(4)
    使用IP过滤,轻松管理网络(3)
    使用IP过滤,轻松管理网络(2)
    使用IP过滤,轻松管理网络(1)
    使用squid和ipfilter加快内网网页…
    FreeBSD4.7环境下使用IP Filter设…
    使用Jail和ipfilter结合构建高安…
    基于IP Filter的NAT透析(3)
    基于IP Filter的NAT透析(2)
    最新推荐软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 有事给站长留言!
    热线电话: 86-10-63643422/63643423
    京ICP证041431号