iptables理解

iptables概述:

netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。

netfilter/iptables 关系:                        

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

netfilter/iptables 后期简称为:iptables。 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。所有规则配置后,立即生效,不需要重启服务。

 

三张表介绍:

filter负责过滤数据包,包括的规则链有,input,output和forward;

nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;

mangle表则主要应用在修改数据包内容上,用来做流量整形的,给数据包打个标识,默认的规则链有:INPUT,OUTPUT、 forward,POSTROUTING,PREROUTING;

五个链:

input匹配目标IP是本机的数据包,

output  出口数据包 ,  一般不在此链上做配置

forward匹配流经本机的数据包,

prerouting用来修改目的地址,用来做DNAT 。如:把内网中的80端口映射到路由器外网端口上

postrouting用来修改源地址用来做SNAT。  如:内网通过路由器NAT转换功能实现内网PC机通过一个公网IP地址上网。

iptables三个表,5个链接,结构:

Raw [rɔ:]表:用于处理异常,包括的规则链有,prerouting,output; 一般使用不到。

例:查看raw表中的内容:

[root@moko15 ~]# iptables -t raw -L

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination        

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination      

 

表->链->规则

iptables过滤封包流程

总结: 整体数据包分两类: 1、发给防火墙本身的数据包 ;2、需要经过防火墙的数据包

① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。 

② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。

本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。 

③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

总结: 整体数据包分两类: 1、发给防火墙本身的数据包 ;2、需要经过防火墙的数据包

注意:规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。

iptables语法总结:

例1:iptables命令使用方法

  • iptables [-t 要操作的表]

          <操作命令>

          [要操作的链]

          [规则号码]

          [匹配条件]

          [-j 匹配到以后的动作]

  • 操作命令(-A、-I、-D、-P、-F)
  • 查看命令(-[vnx]L)

 

-A <链名>    APPEND,追加一条规则(放到最后)

例如:

    iptables -t filter -A INPUT -j DROP    #拒绝所有人访问服务器

    在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则)

匹配所有访问本机 IP 的数据包,匹配到的丢弃

 

-I <链名> [规则号码]     INSERT,插入一条规则

例如:

    iptables -I INPUT -j DROP

    在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条)

    iptables -I INPUT 3 -j DROP

    在 filter 表的 INPUT 链里插入一条规则(插入成第 3 条)

注意: 1-t filter 可不写,不写则自动默认是 filter

            2-I 链名 [规则号码],如果不写规则号码,则默认是 1

            3、确保规则号码 ≤ (已有规则数 + 1),否则报错

 

-R num:Replays替换/修改第几条规则

    格式:iptables –t filter -R INPUT 3 ………… 修改filter的INPUT链第三条规则

 

-D <链名> <规则号码 | 具体规则内容>    DELETE,删除一条规则

例如:

[root@moko15 ~]# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination        

DROP       all  --  anywhere             anywhere 

 

iptables -D INPUT 1(按号码匹配)

删除 filter 表 INPUT 链中的第1条规则(不管它的内容是什么)

[root@moko15 ~]# iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination        

 

iptables -D INPUT -s 192.168.0.1 -j DROP(按内容匹配)

    删除 filter 表 INPUT 链中内容为“-s 192.168.0.1 -j DROP”的规则

   (不管其位置在哪里)

注意:

    1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条

    2、按号码匹配删除时,确保规则号码 ≤ 已有规则数,否则报错

    3、按内容匹配删除时,确保规则存在,否则报错

 

-P <链名> <动作>    POLICY,设置某个链的默认规则

例如:

[root@moko15 ~]# iptables -L   #查看默认规则是ACCEPT [əkˈsept]

Chain INPUT (policy ACCEPT)

target     prot opt source               destination 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值