iptables工具

1.IPtables和netfilter的关系

iptables并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过ipatbles这个客户端,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架就是Netfilter
防火墙概念:防火墙是工作在内核中的,即防火墙应该是内核中所实现的功能. netfilter才是防火墙真正的安全框架,netfilter位于内核空间;iptables是一个命令行工具,位于用户空间,,通过这个命令行工具来操作netfilter
netfilternetfiler组件是内核的一部分,是一些信息过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集
IPtables是一种工具,它使插入 修改 去除信息包过滤表中的规则变得容易,通过使用用户空间,可以构建自己的定制规则,将这些规则储存在内核空间信息过滤表中。
netfilter/iptables信息包过滤(防火墙)是一种强大的工具。用于添加,修改,去除规则,完成封包过滤,封包重定向,网络地址转换(net)功能。这些规则是做信息包过滤时决定,防火墙所遵循和组成的规则。这些规则存储在专用信息包过滤表中,而这些集合在linux内核中。在信息包过滤表中,规则被分组放在所谓的链中。

防火墙分类:
逻辑上:主机防火墙和网络防火墙
主机防火墙:针对单个主机进行防护
网络防火墙:处于网络入口或者边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网

物理上:硬件防火墙和软件防火墙
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分基于软件实现,成本高,效果高
软件防火墙:应用软件处理逻辑运行于硬件平台之上的防火墙,成本低,性能低

2.四表五链

防火墙是基于规则来进行工作
规则就是网络管理员预定义的条件,规则一般定义为:如果数据包头符合这样的条件 ,那么就处理这个数据包
规则储存在内核空间的信息包过滤表中,这些规则分别指定了原地址,目标地址,传输协议,(tcp udp icmp)和服务类型(HTTP FTP SMTP )当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)拒绝(reject)和丢弃(drop)等
配置防火墙的主要工作就是添加,修改和删除这些规则

当客户端访问服务器的web服务时,客户端发送报文到网卡,而tcp/ip协议栈是属于内核的一部分,因此客户端的信息会通过内核TCP协议传输到用户空间的web服务中,而此时,客户端报文的目标终点为web服务所监听的套接字(IP:Port)上,当web服务所需要相应客户端请求时,web服务发出的相应报文的目标终点则为客户端,此时,webweb服务所监听的IP与端口反而变成了原点,在netfilter的定义中,出现了input和output关卡,这些关卡在iptables中称为 链

除过这两个关卡以外,还有其他关卡:路由前 转发 路由后 对应的英文为 PREROUTING FORWARD POSTROUTING
在这里插入图片描述
在内核中的TCP/IP协议栈上选择了5个关卡(又称为“链”),这5个关卡是报文一定会流经的位置,并配置5个钩子函数(hook_function);当有报文经过时,被钩子函数钩起,对规则进行检查,并按照一定的机制(又可称为“功能”)完成处理

PREROUTING
报文刚刚到达本机后是发往本机内部还是经由本机转发的,需要作出判断,可以根据目标地址检查路由表来判断,这也就意味着接下来有一个路由功能要实现,即有一个路由选择的过程。而这个位置在路由选择发生之前就要完成,所以称为PREROUTING
OUTPUT
而对于一个网卡来讲,若将其当作是报文流出的接口,那报文要通过这个网卡流出时的来源有两种可能,第一种是转发而后出去的,第二种是由本机内部发出的。而本机内部发出的称为OUTPUT。
POSTROUTING
无论是由本地转发的还是经由本机内部发出的,将来它在离开本机之前需要再做一次路由选择,那就意味着路由选择发生以后要走哪条路就确定了。那第二次路由决策发生以后我们要对其做一些即将离开本机之前最后那一关再给它做一些处理,这就叫POSTROUTING,这是第二次路由决策发生以后用于做出处理的。

在这里插入图片描述
报文的流向:

到本机某进程的报文:PREROUTING --> INPUT
由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
由本机的某进程发出报文(通常为响应报文):OUTPUT --> POSTROUTING
其实不管是PREROUTING也好,还是POSTROUTING也罢,其实它们与网卡无关,从哪个网卡进来在路由发生之前都叫PREROUTING,无论即将通过哪个网卡离开,在路由决策发生以后都叫POSTROUTING。所以它们跟网卡是没有什么关系的,它们只是TCP/IP协议栈上的功能,可以从任意一个网卡离开,从任意一个网卡进来
iptables可以扮演本地主机防火墙利用INPUT链、OUTPUT链即可,而又能扮演网络防火墙利用FORWARD链即可
除了五条内置链,用户还可以对链进行自定义

四表
filter:过滤;最根本的功能,这是被称为防火墙的赖以生存的根本。
nat:network address translation,网络地址转换;如果工作在网络地址转换这种模式的话,从这个角度讲,iptables这个主机更像是一个nat服务器。(nat是用来改源IP、源端口、目标IP、目标端口的)
mangle:拆解报文,做出修改,封装报文;把一个报文拆开后,除了地址转换外,其它可转换的部分都可以拿来做修改。
raw:关闭nat表上启用的连接追踪机制;是nat功能的一种补充;要想完成nat功能需要启动连接追踪功能才能进行做nat地址转换,而如果关闭了nat追踪机制的话,接下来可能在有些地方就会产生一些问题,所以raw功能用的并不是特别的多。

各表所对应的链
filter:INPUT FORWARD OUTPUT
nat:PREROUTING(DNAT,目标地址转换)、OUTPUT(SNAT,源地址转换)、POSTROUTING(SNAT,源地址转换)、INPUT(centos7中有而centos6中没有)
mangle:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
raw :PREROUTING、OUTPUT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值