目录
1 Linux网络防火墙命令的关系图
2 iptables的概念
2.1 链(chain)
2.2 表(table)
2.3 规则(rule)
2.3.1 匹配(match)
2.3.2 目标(target)
2.4 链接追踪 Connection Tracking
3 iptables的开启关闭
4 实验环境
1 Linux网络防火墙命令的关系图
下图是Linux网络防火墙命令的关系图,Ubuntu的ufw已经学习过了,今天来做一下iptables试验。
CentOS Ubuntu★ openSUSE +--------------+ +------------+ +---------------------+ -*- | firewall-cmd | | ufw | | SUSEfirewall2 | | +--------------+ +------------+ +---------------------+ | 用户空间 +-----------------------------------------------------------+ | | iptables command | | +-----------------------------------------------------------+ -*- +-----------------------------------------------------------+ -*- | | | | OS(Netfilter) | 内核空间 | | | +-----------------------------------------------------------+ -*-2 iptables的概念
iptables可以检测、修改、转向、分组和丢弃IPv4数据包。看名字,顾名思义,是工作在网络层。要想理解iptables能做什么,然后什么时候用iptables,先得对iptables有个系统的概念。
结合上面的iptables的数据流来说一下iptables的概念。
2.1 链(chain)2.2 表(table)iptables有5条链,按照数据经过的顺序排列。
PREROUTING-------数据进入网卡,进入路由前调用的链INPUT------------------数据经过路由后,进入本地程序前调用的链FORWARD-----------数据经过路由后,转发出去之前调用的链OUTPUT--------------本地程序产生的数据经过路由前调用的链POSTROUTING----经过路由后,从网卡发出之前调用的链
上面的5链是netfilter的内置链(built-in),用户可以自己创建链。
iptables有5张表(不是4表5链)
raw(不常用)
从上图可以看出,raw的优先级最高,有两个内置链。
PREROUTING OUTPUT
因为这两个链都是在Connection Tracking之前被调用,所以系统跟踪不了,也就是 用conntrack命令监视不到。
mangle(不常用)
该表用于专门的数据包更改。有所有的5个内置链。
filter
首先,这是iptables的命令的默认表,也就是不指定表的时候,默认用filter。过滤用的。
有三个内置链。
INPUT FORWARD OUTPUT
security(基本不用)
SELinux security相关的。有三个内置链。
INPUT FORWARD OUTPUT
nat
用来做网络地址转换。有除了FORWARD以外的4个内置链。
据上面的表格来看,主要用的就是filter表和nat表,也就是7条链。
2.3 规则(rule)规则在链里,每条规则包含匹配的条件(match),和匹配条件后动作(target)。
2.3.1 匹配(match)所有TCP协议都拒绝
所有来自192.168.0网段的访问都拒绝
所有去往192.168.0网段的访问都拒绝
还有各种各样的匹配条件,可以参照链接match
2.3.2 目标(target)target就是匹配后执行的处理,常用的target有下列几种:
匹配条件后,放行。
当前链的后面的规则,还有当前链所在的表的剩余链都不会执行。
匹配条件后,丢弃包,并且会通知送信方,访问被拒(跟ufw里一样)
REJECT 目标仅在 INPUT、FORWARD 和 OUTPUT 链或其子链中有效
匹配条件后,做端口转换
REDIRECT 目标仅在 nat 表的 PREROUTING 和 OUTPUT 链中有效
匹配条件后,做地址转换
DNAT 目标仅在 nat 表中的 PREROUTING 和 OUTPUT 链中有效
还有很多target,不常用,再有就是跳转到自定义的子链。
其它详细的可以参照target
2.4 链接追踪 Connection Tracking# 用conntrack命令来跟踪数据包的路线 # Centos yum install conntrack-tools # Ubuntu apt install conntrack # 用法 conntrack -E3 iptables的开启关闭
Centos
用firewalld的开关来管理iptables的开关。
Ubuntu
用ufw的开关来管理iptables的开关。
4 实验环境192.168.0.0/24 访问用机器(Centos) --------------------- iptables设定机器(Ubuntu) 192.168.0.211 192.168.0.203
试验待续。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)