iptables [-t table] command chains (NUM) match condition -j action 
iptables [-t table] command [match] [target]
概念
iptables 由表(tables),链(chains),规则(rules)组成
默认iptables内置了四个表(tables):filter表 nat表 mangle表和raw表
五个链:INPUT ,OUTPUT ,PREROUTING ,POSTROUTING ,FORWARD
五个链:INPUT ,OUTPUT ,PREROUTING ,POSTROUTING ,FORWARD
filter表:INPUT ,OUTPUT ,FORWARD          ---一般用于信息表过滤
nat表:PREROUTING ,POSTROUTING, OUTPUT ---用于要转发的信息包
mangle表:ALL(跟路由无关,在任何点都行,ye最高) ----包含一些规则来标记用于高级路由的信息包
nat表:PREROUTING ,POSTROUTING, OUTPUT ---用于要转发的信息包
mangle表:ALL(跟路由无关,在任何点都行,ye最高) ----包含一些规则来标记用于高级路由的信息包
命令选型
--append  -A append 在规则表的最后追加一条规则
--insert -I [n] 插到第n条规则之前
--replade -R n replace 第n条新规则
--delete -D n delete第n条规则
--flush -F 清空表中所有规则
--policy -P ACCEPT|DROP 默认策略动作
--new-chain -N z自定义新链
--rename-chain -E 重命名用户自定义的链
--zero -Z 清零计数器
1.所有被本规则匹配到的数据包的个数
2. 所有被本规则匹配到的数据包的数据之和
--list -L list链中的所有规则 默认保存在/etc/sysconfig/iptables
-x 显示-Z选项中的数据时,不作单位换算,显示精确值
-n 不作名称解析,以数字的格式显示ip
-v | -vv |-vvv|-vvvv | 显示详细的信息
--line-numbers 显示行号
-S 同-L ,print出来
--insert -I [n] 插到第n条规则之前
--replade -R n replace 第n条新规则
--delete -D n delete第n条规则
--flush -F 清空表中所有规则
--policy -P ACCEPT|DROP 默认策略动作
--new-chain -N z自定义新链
--rename-chain -E 重命名用户自定义的链
--zero -Z 清零计数器
1.所有被本规则匹配到的数据包的个数
2. 所有被本规则匹配到的数据包的数据之和
--list -L list链中的所有规则 默认保存在/etc/sysconfig/iptables
-x 显示-Z选项中的数据时,不作单位换算,显示精确值
-n 不作名称解析,以数字的格式显示ip
-v | -vv |-vvv|-vvvv | 显示详细的信息
--line-numbers 显示行号
-S 同-L ,print出来
filter是最常用的表,在filter表中最常用的三个目标是ACCEPT、DROP和REJECT。DROP会丢弃数据包,不再对其进行任何处理。REJECT会把出错信息传送至发送数据包的主机
匹配选型
A.通用匹配
--proto -p protocol协议类型
--source -s src-address数据包匹配的源地址
--destination -d dst-address数据包匹配到目标地址
--in-terface -i in_interface数据入口
--out-interface -o out-interface数据出口
--proto -p protocol协议类型
--source -s src-address数据包匹配的源地址
--destination -d dst-address数据包匹配到目标地址
--in-terface -i in_interface数据入口
--out-interface -o out-interface数据出口
B.扩展匹配
扩展又分为隐含扩展和显式扩展
隐含匹配 显式扩展
tcp --source-port -m tcp
--dport -m state --state NEW|ESTABLISHED|RELATED| INVALID
--sport -m limit --limit n/days |minute
--limit-burst N 峰值
--type-flags -m string --string
--syn -m mac --mac—source
-m multiport --source-ports
--destination-ports
--tcp-flags mask comp
Udp --sport
--dport
Icmp --icmp-types
8 echorequest
0 echo-reply
3 destination unreachable
扩展又分为隐含扩展和显式扩展
隐含匹配 显式扩展
tcp --source-port -m tcp
--dport -m state --state NEW|ESTABLISHED|RELATED| INVALID
--sport -m limit --limit n/days |minute
--limit-burst N 峰值
--type-flags -m string --string
--syn -m mac --mac—source
-m multiport --source-ports
--destination-ports
--tcp-flags mask comp
Udp --sport
--dport
Icmp --icmp-types
8 echorequest
0 echo-reply
3 destination unreachable
动作
-j DROP 丢弃数据包(“悄悄地“)
REJECT 丢弃数据包(明确的)
ACCEPT 接收数据包
SNAT 源端口转换
DNAT 目的端口转换
LOG 记录日志
REDIRECT 端口转换
MASQUERADE 端口伪装(动态获取网关时用,耗系统资源)
REJECT 丢弃数据包(明确的)
ACCEPT 接收数据包
SNAT 源端口转换
DNAT 目的端口转换
LOG 记录日志
REDIRECT 端口转换
MASQUERADE 端口伪装(动态获取网关时用,耗系统资源)
例子
1.iptables -F     #清空表中所有规则
  iptables -X     #清除所有自定义规则
iptables -Z #各项计数归零
iptables -Z #各项计数归零
2.iptables -t nat -F    清除旧规则
3.iptables -P INPUT DROP 
  iptables -P OUTPUT DROP
  iptables -P FORWARD DROP
4.iptables -L -n  查看已有的规则
5.iptables -t filter -A INPUT -s 123.456.789.0/24 -j DROP
  本例中的规则将会阻止来自某一特定IP范围内的数据包,因为该IP地址范围被管理员怀疑有大量恶意攻击者在活动
  iptables -t filter -A OUTPUT -d 123.456.789.0/24 -j DROP
  阻止所有流向攻击者IP地址的数据包
6.iptables -A INPUT -p tcp --dport 52814 -j ACCEPT
7.iptables -A INPUT -s 172.16.100.0 /24  -j ACCEPT
8.iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP
  --syn则表示带有syn标识设置的TCP数据包
9.
10.iptables-save > iptables-script    ----把策略保存到文件
   iptables-restore iptables-script   ----恢复策略
   service iptables restart
11.iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12.iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE  
------让所有流出的信息看起来都是来自防火墙机器的,而并不会显示出防火墙后面还有一个局域网
DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢
未完待续、、、、
