防火墙-iptables

发布时间:2026/8/3 11:42:44
防火墙-iptables rhel7系统防火墙有两种管理方式firewalld、iptables选其一即可。动态防火墙后台程序 firewalld 提供了一个动态管理的防火墙, 用以支持网络“ zones” , 以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设置的支持。它支持以太网桥 , 并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。firewalld 和 iptables之间最本质的不同是 :iptables 在 /etc/sysconfig/iptables 中储存配置firewalld 将配置储存在 /usr/lib/firewalld/ 和/etc/firewalld/ 中的各种 XML 文件里我们直接修改或添加防火墙的策略是在内存上的如果想要长期生效我们需要保存在防火墙对应的配置上。不同场景下防火墙的策略配置iptables介绍Iptables 是 unix/linux 自带的一款优秀且开源的基于包过滤(对 OSI 模型的四层或者是四层以下进行过滤)的防火墙工具对流入和流出服务器的数据包进行很精细的控制主要针对网络访问。iptables 不是真正的防火墙为一个客户端的代理用户是通过 iptables 这个代理将用户的安全设定执行到对应的“安全框架”中这个“安全框架”才是真正的防火墙。这个框架叫做“ netfilter ”。包过滤防火墙在网络层截取网络数据包的包头 header 针对数据包的包头根据事先定义好的防火墙过滤规则进行对比根据对比结果再执行不同的动作。包过滤防火墙一般工作在网络层所以也称为“网络防火墙”通过检查数据流中每一个数据包的源 ip 地址目标 ip 地址源端口目标端口协议类型 tcp,udp,icmp 等状态等信息来判断是否符合规则。netfilter 内核空间真正实现防火墙的功能。Iptables 用户空间在 /sbin/iptables 存在的防火墙通过 iptables 提供管理、修改、删除或者插入规则用户和内核交互的工具就是 iptables 。简单理解为“ iptables ”是真正实现用户防火墙规则的“桥梁”。iptables的四张表raw表用于对数据包进行连接跟踪前的处理。mangle表用于修改数据包的IP头或其他信息。不用nat表用于网络地址转换如源地址转换和目标地址转换。filter表用于执行包过滤是最常用的表决定数据包是否被接受、丢弃或拒绝。用的最多的是filter表和nat表filter表是用来放行和拦截的nat表则是用来转发意思是一个服务只是通过你这个服务器来转发。表中的五条链INOUT链INPUT 链用于处理进入本机的流量。当数据包的目标是本机时它会经过 INPUT 链。这个链决定了哪些数据包可以进入本机哪些应该被拒绝或丢弃。用于防止未经授权的访问控制哪些外部数据包能够访问本机服务。OUTPUT链OUTPUT 链用于处理从本机发出的流量。当本机向外发送数据包时这些数据包会经过 OUTPUT 链。这个链用于控制本机如何向外部网络发送流量。 用于限制本机发送的流量防止恶意程序或错误的配置向外部网络发送不安全的数据包。FORWARD链FORWARD 链用于处理经过本机转发的流量。当数据包不是发送给本机而是要通过本机转发到其他网络时它会经过 FORWARD 链。这个链通常在路由器和网关上使用用于控制流量是否可以从一个接口转发到另一个接口。 用于路由器或网关控制数据包是否可以从一个网络转发到另一个网络。PREROUTING 链PREROUTING 链用于处理进入本机的数据包并且在路由决策之前进行处理。通常用于目标地址转换 DNAT 即将外部的请求转发到内网的某个特定设备。 将来自外部的请求转发到内部网络中的不同服务或进行目标地址转换 DNAT 。POSTROUTING 链POSTROUTING 链用于处理离开本机的数据包并且在路由决策之后进行处理。它通常用于源地址转换 SNAT 即将内网设备的源 IP 地址修改为路由器的公共 IP 地址通常用于共享公网 IP 地址的情况。iptables操作我们先将iptables的服务安装好用于操作iptables。然后我们要用iptables来实验我们就先将firewalld给关闭掉。然后将iptables的服务给开启。这里默认打出来的就是filter表里面的策略。这里可以看到默认是icmp放行也就是ping可以ping通然后22端口放行可以远程链接。而这些策略是保存在/etc/sysconfig/iptables里面的那么iptables就会去读这个文件里面的配置。所以如果我们自己写的策略想要一直生效的话我们就要保存在这个文件中。如何保存呢使用iptables -save进行重定向。iptables部分参数比如我们删掉filter表里面INPUT链中的第五条策略不接表名默认filter表这些操作都是在内存中的如果我们重新读取配置文件策略就会复原。如果想要长期生效就要保存在配置文件中。iptables规则语法比如我们这里放行所有的tcp数据包默认是加在最后一行可以在INPUT后面加上指定的数字让规则加在我们设定的行数位置。通过端口配置规则比如我们这里不想192.168.30.136远程ssh我们的主机那么我们就可以通过配置源ip和端口来设置策略。可以看到这个时候我们就无法在192.168.30.136这台主机上链接了。