netfilter/iptables 小结

  netfilter/iptables 小结

1.netfilter是防火墙在内核中的框架,iptables是用于管理netfilter的工具。netfilter在系统中定义了五个监测点对网络中的数据进行检测。这五个点分别是input,output,prerouting,forward,postrouting。
见下图


解释:
prerouting:数据到达防火墙后首先需要判断是进行本地的接受还是路由,prerouting完成这个工作。
fowrad:    对于需要进行路由处理的数据进行路由转发
postrouting:根据规则链的目标进行数据包的发送或者丢弃,完成路由功能。
input:      用于对向上层传递的数据进行处理
output:     对于需要从应用层向下传的数据进行处理。

这些规则链由于在完成不同的功能时可能需要不同的组合,因而把他们放在了三个不同的表中filter,Nat,Mange。
filter表包含input,forward,output三个规则链,用于数据过滤
nat表包含prerouting,postrouting,input,output四个规则链,用于完成数据过滤
mangele表包含output,postrouting用于完成对数据包指定标志的修改。

下面是iptables的语法总结     
iptables -t 表名            动作   规则链                    匹配方式                  扩展匹配   符合这条规则的包的处理方式
                   NAT            -A        INPUT                    -p(tcp/udp/icmp)    --sport                    -j    
                   MANGLE   -D        OUTPUT               -src                           --dport                   ACCEPT
                   FILTER     -R         FORWARD          -dst                          --tcp-flags              DROP
                                      -I           PREROUTING      -i                             --mac-source       REJECT
                                      -L          POSTROUTING   -o                                                            REDIRECT
                                      -F                                                                                                          DNAT
                                      -Z                                                                                                          SNAT
                                      -X
                                      -P
                                      -E
动作解释:
-A  :在所选择的链中添加一条或者多条规则
-D  :在所选择的链中删除一条或者多条规则,可以为规则的序列号也可以是规则
-R  :替换所选择链中的一条规则
-I  :向所选择的链中插入一条或者多条规则,默认插入链的头部
-L  :显示所选择链中的规则
-F  :清空所选择的链
-Z  :清空计数器
-N  :创建用户的规则链
-X  :删除用户自定义的规则链
-P  :指定规则链的默认规则
-E  :重命名规则链

匹配方式解释:
-p  :指定要待检测包的协议,可以是tcp,udp,icmp中的一个或者全部(all)。!表示取反
-src:指定源地址,可以是主机名,网络名和下角切的ip地址。!表示取反
-dst:指定目标地址,同src
-i  :指定数据是从哪个接口进入的。!表示取反。如果接口名后边跟一个+则表示所有以该接口名开头的数据都会被匹配
-o  :输出接口的名称,同-i

扩展匹配解释:
-p
  如果匹配tcp协议,则可以指定
  --sport:指定源端口号或者范围,可以是0-65535
  --dport:指定目的端口号或者范围
  --tcp-flags:匹配tcp协议的六个标志位。它由两部分组成,第一部分是要检查的标志位,第二部分是不许被设置的标志位。tcp的六个标志位是:syn,ack,fin,rst,urg,psh。举例 syn,ack,fin,rst  syn表示只匹配那些syn标志被设置,而ack,find和rst标记没有被设置的包。
 
  如果匹配udp协议,则可以指定
  --sport:同tcp
  --dport:同tcp
 
  如果匹配icmp协议,则可以指定
  --icmp-type:指定icmp协议的类型,!取反。

  如果匹配mac,则可以指定
  --mac-source:网卡的mac地址,格式“xx:xx:xx:xx:xx:xx”,它只对以太网的prerouting,forward,input有效。

处理方式解释:
-j  :目标跳转,指定规则的目标,也就是说如果包匹配做什么
    REJECT:拒绝数据包并返回一个错误
    DROP:  直接丢弃数据包
    SNAT:  做源地址转换
    DNAT:  做目标地址转换,只能用于nat表的postrouting。
    MASQUERADE:用于动态获取ip地址的地址转换。只能用于nat表的postrouting。
    REDIRECT:只能用于nat表的prerouting和output。它修改包的目标地址而发给自身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值