云服务器

Linux的Iptables命令的基本知识

2020-05-15 12:05:37 84

一、简介

iptables普遍用于在云主机或者物理机上面的一种网络防火墙的管理工具,在Linux系统下使用,是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。目前常用的linux版本: Redhat6.x和Centos6.x是自带iptables这个管理工具,但是7版本以上,系统的防火墙默认是firewalld,如果要使用iptables需要另外安装,然后卸载firewalld。

特别提示Ubuntu和Debian这个两个系统默认只有iptables的命令,但是没有启动服务,这个需要自己写一个启动脚本方便您的工作。

 

二、iptables的基础

1.匹配规则顺序

Iptables防火墙的匹配规则是从上至下的按顺序去读取表里面的配置,找到匹配项后,结束匹配工作并且执行匹配项中定义的行为(即放行或阻止)。

如果在读取完所有的策略规则之后没有依然匹配项,那么就去执行默认的策略。一般来说,防火墙策略规则的设置有两种:”放行”和”阻止”。我们使用平时使用就是在iptables设置放行名单(也就是白名单),然后设置默认策略为:阻止。这样就可以把非白名单的访问全部拒绝掉,从而保护您的服务器安全。

如果防火墙的默认策略为:放行,就要设置拒绝规则(也就是黑名单),不然谁都能进来,防火墙也就失去意义了,无法防御入侵。

 

2.四表

表(tables)提供特定的功能,iptables内置了4个表,即filter、nat、mangle和raw,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

filter:一般的过滤功能,设置放行名单就是在这个表
nat:用于nat功能(端口映射和地址映射等) 
mangle:用于对特定数据包的拆解、修改和重封装 
raw:有限级最高,关闭数据包的链接追踪机制,提高性能

PS:表的处理优先级:raw>mangle>nat>filter

 

3.五链

链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个匹配列表,每一条链中可以有一条或多条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查匹配,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链定义的默认策略来处理数据包。

PREROUTING:数据包进入路由表 
INPUT:通过路由表后目的地为本机 
FORWARDING:通过路由表后,目的地不为本机 
OUTPUT:由本机产生,向外转发 
POSTROUTIONG:发送到网卡接口之前

 

4.表与链功能使用对应

filter表可用的链:INPUT,FORWARD,OUTPUT

nat表可用的链:PREROUTING(DNAT),OUTPUT,POSTROUTING(SNAT)

mangle表可用的链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

raw表可用的链:PREROUTING,OUTPUT

 

三、命令格式

iptables [-t 表] [参数] [链] [匹配条件] [-j 执行动作]

表:(filter、nat、mangle、raw)
参数:(-A -I -D -P -R -F -N -X -E -Z -L -n -v -x -V -h)
链:(PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING)
匹配条件:(-i、-o、-s、-d、-p、--sport、--dport)
执行动作:(ACCEPT、DROP、REJECT、SNAT、DNAT、MASQUERADE、LOG)

 

本期内容就这么多,下一期继续给大家讲解一下Linux的Iptables命令的基本知识(二)-常用命令示例。

睿江云官网链接:www.eflycloud.com

上一篇: 无

微信关注

获取更多技术咨询