Iptables笔记
1.2 nat此表仅用于NAT,也就是转换包的源或目标地址。注意,就象我们前面说过的,只有流的第一个包会被这个链匹配,其后的包会自动被做相同的处理。实际 的操作分为以下几类:DNAT,SNAT,MASQUERADE. Nat的默认连有PREROUTING, POSTROUTING, OUTPUT三条链
1.3 filter 表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。Filter默认的链有INPUT,FORWARD, OUTPUT三个链.
1.4 数据包进入防火墙后,会跟据数据包的源和目的地不同,以特定的顺序在不同表的链之间游走处理,最终到达目的或被丢掉。
防火墙的规则通常由以下几个元素组成
4.1 Tables,这决定这条规则应用在那个表
4.2 Commands 对规则应用的表所执行的命令,通常可能是:-A( 追加这条规则), -D(删除特定的规则), -R(替换指定行上的规则), -I (在给定的序号前添加这条规则), -L(显示特定表中的特定链中的规则). 某些命令会有Option(选项)可供使用,如-v可使-L的输出更详细.
4.2 Matches 中文意思(匹配)., 它指明该条规则什么时候会被执行(hit).
匹配分”通用匹配”和”隐含匹配”
通用匹配指: 不需要任何前提即可使用的匹配(注:还是有一些限制,如-i 不能在OUTPUT链中使用)
隐含匹配指: 需要配合特定通用匹配才能使用的匹配
4.3 Target 中文件意思(目标),target有两种,一种是指明执行特定跳转的target,一种是指明对数据包的规则(ACCEPT or DROP)
5.2不需要在乎数据包会以什么顺序在那些链之间游走,只需要在以下规则的每一个环节做ACCEPT即可。
包到达防火墙后必然到达INPUT链,如果需要转发,必先经过FORWARD链,如果要发出去就必经过OUTPUT链,响应包回来时再一次经过INPUT链,再经过FORWARD链,然后又再次经过OUTPUT链.
所以必需在数据包出去和回来时都写上相应规则,否则数据很有可能只去不返。
5.3 IPTABLES的状态防火墙特性能大大方便数据包回来时编写的规则。我们可以用-m state –state ESTABLISHED,RELATED来判定数据包是否连接请求的响应数据包,或是现有连接中的数据,或是现有连接产生的子连接的数据。
5.4 最好不要在OUTPUT做任可过滤,否则你会发现非常痛苦,不知应该怎么写规则.
- iptable有三个表,分别是managle,nat和filter表,而每个表又有各自的默认链
1.2 nat此表仅用于NAT,也就是转换包的源或目标地址。注意,就象我们前面说过的,只有流的第一个包会被这个链匹配,其后的包会自动被做相同的处理。实际 的操作分为以下几类:DNAT,SNAT,MASQUERADE. Nat的默认连有PREROUTING, POSTROUTING, OUTPUT三条链
1.3 filter 表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。Filter默认的链有INPUT,FORWARD, OUTPUT三个链.
1.4 数据包进入防火墙后,会跟据数据包的源和目的地不同,以特定的顺序在不同表的链之间游走处理,最终到达目的或被丢掉。
- iptable可以监视连接的状态,有这一特性的防火墙叫有状态防火墙.
- 保存和恢得数据管理规则可以使用iptables-save或iptables-restore. 这两个工具的优点在于批量快速,但不足在于它们功能不够齐全,例如在动态IP时不能很好的使用。并且它们不能save到指定地方然后拿到另一台机 restore回来(意思是只能在同一台机用).
- 规则是如何练成的
防火墙的规则通常由以下几个元素组成
4.1 Tables,这决定这条规则应用在那个表
4.2 Commands 对规则应用的表所执行的命令,通常可能是:-A( 追加这条规则), -D(删除特定的规则), -R(替换指定行上的规则), -I (在给定的序号前添加这条规则), -L(显示特定表中的特定链中的规则). 某些命令会有Option(选项)可供使用,如-v可使-L的输出更详细.
4.2 Matches 中文意思(匹配)., 它指明该条规则什么时候会被执行(hit).
匹配分”通用匹配”和”隐含匹配”
通用匹配指: 不需要任何前提即可使用的匹配(注:还是有一些限制,如-i 不能在OUTPUT链中使用)
隐含匹配指: 需要配合特定通用匹配才能使用的匹配
iptables -A INPUT -p tcp --sport 22 其中”—sport 22”就是在使用”-p tcp”这个通用匹配后才能使用的隐含匹配
4.3 Target 中文件意思(目标),target有两种,一种是指明执行特定跳转的target,一种是指明对数据包的规则(ACCEPT or DROP)
- 经验
5.2不需要在乎数据包会以什么顺序在那些链之间游走,只需要在以下规则的每一个环节做ACCEPT即可。
包到达防火墙后必然到达INPUT链,如果需要转发,必先经过FORWARD链,如果要发出去就必经过OUTPUT链,响应包回来时再一次经过INPUT链,再经过FORWARD链,然后又再次经过OUTPUT链.
所以必需在数据包出去和回来时都写上相应规则,否则数据很有可能只去不返。
5.3 IPTABLES的状态防火墙特性能大大方便数据包回来时编写的规则。我们可以用-m state –state ESTABLISHED,RELATED来判定数据包是否连接请求的响应数据包,或是现有连接中的数据,或是现有连接产生的子连接的数据。
5.4 最好不要在OUTPUT做任可过滤,否则你会发现非常痛苦,不知应该怎么写规则.
- /proc/sys/net/ipv4/ip_forward 文件决定LINUX是否转发网络数据包