iptables与firewalld
Linux系统的防火墙,正常用都是用硬件防火墙,Linux系统内核里也带防火墙功能,netfilter。
Linux内核,即Linux操作系统的核心。它主要由以下模块组成:
进程管理;
定时器;
中断管理;
内存管理;
模块管理;
虚拟文件系统接口;
文件系统;
设备驱动程序;
进程间通信;
网络管理;
系统引导。
Linux 内核决定谁将使用这些资源,可以使用多长时间,以及什么时候可以使用这些资源。它在计算机硬件和各种应用程序之间起到了媒介的作用
什么是防火墙?
防火墙核心本质就是对数据包进行过滤。
对安全架构来讲会起一定的作用,但是在Linux系统里做大量的防火墙设置是不合适的(在netfilter里加规则)。做安全不是一个点,而是一整个体系。
防火墙的组件构成(指的是应用程序层面的)。
centos6中:
iptables命令(应用层的)临时添加,立即生效。
iptables服务,永久保存防火墙规则。
centos7以后:
firewall-cmd命令(应用层的)并保留iptables命令(应用层的)
firewalld服务
iptables命令和iptables服务本质都是操作netfilter。
iptables的五链四表设计
链相当于关卡。(prerouting、input、forward、output、postrouting)
表是对加到链上的规则进行分类。(raw、mangle、nat、filter)
prerouting(预路由链):数据包进入系统后的第一个关卡。在此阶段,数据包尚未经过路由决策,常用于进行DNAT(目标地址转换)等操作,例如将外部请求转发到内网服务器,实现负载均衡或端口映射。
input链:处理流向本机(而非转发)的数据包。当数据包的目标IP与本地主机匹配时,input链负责过滤入站流量,例如阻止未经授权的SSH连接或恶意端口扫描。
forward链:核心的转发关卡。当主机作为路由器或网关时,forward链对需要转发的数据包进行过滤,如限制特定子网间的通信,或阻止中间人攻击流量。
output链:管理由本机产生的出站数据包。通过output链,可以控制本地应用程序的对外访问权限,例如禁止敏感数据通过特定端口外传。
postrouting(后路由链):数据包完成路由决策后的最后关卡。通常在此链进行SNAT(源地址转换),将内网IP转换为公网IP,确保响应包能正确返回,同时可实施流量整形或QoS策略。
当数据包进入系统后,会依次经过以下流程:
首先进入prerouting链,根据nat表的DNAT规则决定是否修改目标地址;
经过路由决策后,若为转发流量进入forward链(filter表处理),若为本地流量进入input链;
本地产生的数据包则先经过output链,再经postrouting链的SNAT处理;
每个链中,数据包会按规则顺序匹配,一旦命中则执行对应动作(如跳转至自定义链、修改元数据或丢弃)。
firewalld防火墙
检查防火墙状态:
systemctl status firewalld.service

启动firewalld服务:
systemctl start firewalld.service
重新启动firewalld服务:
systemctl restart firewalld.service
firewalld-cmd 添加防火墙规则


浙公网安备 33010602011771号