笨鸟先飞|网络学院:教程,资料,技巧,应用.

www.itfly.org

您正在浏览: 主页>安全防范>工具介绍>
  文章搜索

  热点文章

四款最流行反恶意软件对比测试(

终截者再显神威 成功拦截Ravdm盗

锻造信息安全“瑞士军刀”

互联网中的“隐形战斗机”(图)

SQL恢复XP_CMDSHLL 直接用SQL连

打造顶级坚固的“钛金” 进程防

木马防御大师

网上十大经典黑客软件大曝光

Windows Vista系统防火墙初探

熟练掌握runas安全调试及运行程

防火墙软件Netfilter

来源:    作者:    时间:1970-01-01    字体:[ ]

一系列的标志,分为两个串,第一个串表示哪些标志是要检查的;第二个串表示哪些标志是1(其他则为0)。

例如:

# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY

表示ALL(SYN,ACK,FIN,RST,URG,PSH’)的标志都要被检查,但是只有设置了SYN和ACK的才匹配。

--syn

等同于--tcp-flags SYN,RST,ACK SYN(100)

--source-port或者 --sport

描述源端口,要么用数字,用么用/etc/services文件中的名字。可以用m:n来表示一组端口。

--destination-port 或者 –dport

描述目的端口

--tcp-option

检查一个包是否有相应的tcp选项,如果没有的话,包将被drop掉。

l TCP标记的一个解释

有时候只允许一个单向的TCP连接。例如,你只需要访问外部的WWW的服务器,而不允许外部访问你内部的WWW服务器。朴素的方法是阻塞所有从你的服务器发出的包,但是TCP连接需要一个双向的交流。解决的方法是只需要阻塞请求连接的包。这些包叫做SYN包。通过阻塞这些包,我们可以达到上面的目的。

标志—syn将被使用。他仅仅适用于TCP协议。例如:

-p TCP -s 192.168.1.1 --syn

这条规则描述所有从192.168.1.1发起的连接。

l UDP扩展

如果-u udp 被描述,所有扩展自动装载。他提供与TCP类似的选项--source-port, --sport, --destination-port, --dport。

l ICMP扩展

如果选项-p icmp被描述,所有的扩展自动装载。他只提供一个选项:

--icmp-type

看名字就知道是指类型,具体的名字参看-p icmp –help提供的帮助信息。

l 其他匹配扩展

这些选项可以用-m来启动。

Mac

这个模块可以用-m mac或者--match mac来启动。用于匹配输入包的MAC地址,因此之用于PREROUTING and INPUT chains。他只提供一个选项:--mac-source

例如:--mac-source 00:60:08:91:CC:B7

limit

可以用-m limit或者--match limit来启动。用于限制机器,如压缩log信息等等。

Owner

只用于output chain中,并且有些包没有owner(如icmp包),因而没有匹配。

--uid-owner userid包的产生进程的有效用户id等于userid

--uid-owner groupid包的产生进程的有效组id等于groupid

--pid-owner processid 包的产生进程的进程的id等于processid

--sid-owner sessionid 包的产生进程的session id 等于sessionid

unclean

提供随机的安全检查

l 状态匹配

最有用的匹配规则是由状态扩展来提供的。因此推荐用模块ip_conntrack。描述-m state允许一个附加的—state选项。是一个逗号分开的状态列表,这些状态有:

NEW

包建立了一个新的连接

ESTABLISHED

包属于一个已经存在地连接

RELATED

一个包与某个连接有关,但是不属于这个连接。

INVALID

包无法定义,通常这些包会被drop



11.目标描述

现在我们已经知道了怎么检查包,下一步就是决定对匹配的包做什么动作。这一步叫做规则的目标。

两种基本的目标是DROP和ACCEPT。我们已经很清楚了。

但是还有的目标:扩展、用户定义的chains。


用户定义的chains

iptables从ipchains继承的一个重要的特性就是用户可以自定义新的chains(除了3个内建的INPUT, FORWARD和OUTPUT)。

当一个包在用户定义的chain中进行规则匹配时,将遍历chain中的所有规则。直到找到匹配。

下面考虑两个2个chain:INPUT(内建)、test(用户定义)。

`INPUT’ `test’
 --------------------------------------------------------
 | Rule1: -p ICMP -j DROP || Rule1: -s 192.168.1.1|
 |--------------------------||--------------------------|
 | Rule2: -p TCP -j test|| Rule2: -d 192.168.1.1|
 |--------------------------|----------------------------
 | Rule3: -p UDP -j DROP|
 ----------------------------
假设一个包来自192.168.1.1,其目的地址是1.2.3.4。他首先进入INPUT chain,规则1不匹配。规则2匹配并且其目标是test,因此下一个检查的规则是test的第一个规则。规则1匹配,但是没有描述目标,因此规则2被检查。规则2不匹配,到达chain的末尾。于是返回INPUT chain,这里我们已经检查过规则2,于是检查规则3,不匹配。因此包的检查路径是:

 v__________________________
`INPUT’| /`test’v
 ------------------------|--/-----------------------|----
 | Rule1 | /|| Rule1| |
 |-----------------------|/-||----------------------|---|
 | Rule2 /|| Rule2| |
 |--------------------------|-----------------------v----
 | Rule3 /-- ___________________________/
 ------------------------|---
 v
用户定义的chains也可以把目标设为用户定义的chains。但是不要形成环。



Iptables的扩展:新的目标

新的目标包括一个内核模块和一个可选的扩展选项(新的命令选项)。在netfilter的发行版本中有下面的几个扩展:

LOG

这个模块使得内核可以记录匹配的包的日志。
上一页12 下一页

www.itfly.org