Linux

Linux的netfilter/iptables简介

2021-03-15  本文已影响0人  刘小白DOER

    笔者第一次接触到netfilter/iptables,在centos7中已经被阉割了,在debian中也需要手动开启,但是怀着学习的精神把netfilter/iptables过一遍,在以后的实践中也是一种简单易得的防火墙解决方法。

    netfilter/iptables是应用于主机的基于包过滤的免费软件防火墙。netfilter是防火墙安全框架,位于内核空间。iptables是命令行工具,位于用户空间,用来操作netfilter框架。

    netfilter/iptables分为:表(tables)、链(chains)、规则(Policy)。

    表与链的对应关系如下,规则为要添加的drop或者accept等动作。

    表:filter表用于对数据包进行过滤,用于防火墙规则;nat表用于修改数据包的IP地址、端口号等信息,用于网关路由器;mangle表用于修改数据包的TOS,用于实现服务质量;raw表用于决定数据包是否被状态跟踪机制处理。

    链:INPUT链,处理输入数据包;OUTPUT链,处理输出数据包;FORWARD链:处理转发数据包;PREROUTING链:用于目标地址转换(DNAT),POSTOUTING链:用于源地址转换(SNAT)。

    规则:accept,接收数据包;DROP,丢弃数据包;REDIRECT,重定向、映射、透明代理;SNAT,源地址转换;DNAT,目标地址转换;MASQUERADE,IP伪装(NAT),用于ADSL;LOG,日志记录。

  表与链的对应关系

    iptables 是采取数据包过滤机制工作的,对请求的数据包的包头数据进行分析,并根据预先设定的规则匹配来决定是否可以进入、流出、流经主机。

    iptables --h可以查看 iptables具体用法。规则的执行顺序认为从前到后依次执行,遇到匹配的规则就不在继续向下检查。

    netfilter/iptables路由次序图:

netfilter/iptables路由次序图

查看iptables 的所有链和规则:iptables -L -n

 iptables命令选项顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

   需要注意的是 iptables默认标记的是filter表。

    下面的命令的方式只在当时生效,如果想要重起后也起作用,那就要保存写到/etc/sysconfig/iptables文件里面。

1、禁止ssh的22端口

iptables -A INPUT -p tcp --dport 22 -j DROP

2、eth0网卡禁止网段10.0.0.0/24

iptables -t filter  -A INPUT –i eth0 -s 10.0.0.0/24 -j DROP

3、屏蔽单个IP,-I是添加规则到第一行,-A是添加到后面。

iptables -I INPUT -s 192.168.56.28 -j DROP

4、允许icmp包,即允许ping

iptables -A INPUT -p icmp -j ACCEPT

iptables -A OUTPUT -p icmp -j ACCEPT

上一篇 下一篇

猜你喜欢

热点阅读