iptables与firewalld

Linux系统的防火墙,正常用都是用硬件防火墙,Linux系统内核里也带防火墙功能,netfilter

Linux内核,即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 添加防火墙规则

 

posted @ 2025-06-09 18:10  张仁国  阅读(3)  评论(0)    收藏  举报
目录代码