iptables用于设置、维护和检查Linux内核的IP包过滤规则。作为Linux下的防火墙,它的功能非常强大。它有3个表,每个表中都有规则链。(1)filter是默认表,包括内置链INPUT(处理传入的数据包)、FORWARD(处理通过的数据包)和OUTPUT(处理本地生成的数据包)。(2)当查询nat表时,说明遇到了产生新连接的数据包,由三个内置链组成:PREROUTING(修改传入数据包)、OUTPUT(修改路由前的本地数据包),POSTROUTING(修改准备出门)分组)。(3)mangle表用于修改指定分组。它有2个内置规则:PREROUTING(修改路由之前的传入数据包)和OUTPUT(修改路由之前的本地数据包)。下面简单介绍一下iptables的常用配置。1、查看iptables规则查看当前的iptables策略。默认使用iptables-L命令查看过滤表的内容,如下:)targetprotoptsourcedestinationRETURNall-anywhereanywhere2。设置链策略对于过滤表,默认链策略是ACCEPT,可以通过以下命令修改链策略:root@kali:~#iptables-PINPUTDROProot@kali:~#iptables-PFORWARDDROProot@kali:~#iptbales-POUTPUTDROP以上命令配置将丢弃接收、转发和发送的数据包,并进行更严格的分组管理。由于接收和发送数据包都设置为丢弃,所以在进一步配置其他规则时,需要注意INPUT和OUTPUT分别配置。当然,如果机器被信任发送数据包,上面的第三条规则就不需要配置了。3.清除已有规则可以使用以下规则清除已有规则:root@kali:~#iptables-F4。网口转发规则对于用作防火墙或网关的服务器,一个网口连接公网,其他网口的报文转发到该网口,实现从内网到公网的通信。假设eth0连接内网,eth1连接公网。配置规则如下:root@kali:~#iptables-AFORWARD-ieth0-oeth1-jACCEPT5。端口转发规则该命令将888端口的数据包转发到22端口,所以也可以通过888端口进行SSH连接:root@kali:~#iptables-tnat-APREROUTING-ptcp-d192.168.1.1–dport888-jDNAT--to192.168.1。1:226。DoS攻击防御使用扩展模块limit,也可以配置iptables规则实现DoS攻击防御,如下:root@kali:~#iptables-AINPUT-ptcp–dport80-mlimit–limit25/minute--limit-burst100-jACCEPT--limit25/minute表示限制每分钟最大连接数为25。--litmit-burst100表示当总连接数超过100时,启动litmit/minute限制。
