当前位置: 首页 > news >正文

centos7防火墙(firewalld、iptables)

目录

  • 一、firewalld和iptables
  • 二、firewalld
    • 1. 对网络区(zone)的理解
    • 2. Firewalld的原则:(如果一个客户端访问服务器,服务器根据以下原则决定使用哪个 zone 的策略去匹配)
  • 三、firewall-cmd常用命令及存储位置
    • 1、安装Firewall 命令:
    • 2、区域管理类命令
    • 3、ip管理:
    • 4、端口管理:
    • 5、服务管理:
    • 6、伪装ip:
    • 7、端口转发:
    • 8、多区域的应用:

一、firewalld和iptables

netfilter/iptables是集成在linux2.4.x版本内核中的包过滤防火墙系统。该框架可以实现数据包过滤,网络地址转换以及数据包管理功能。linux中的防火墙系统包括两个部分:netfilte和iptables。netfilte可以对本机所有流入、流出、转发的数据包进行查看、修改、丢弃、拒绝等操作。由于netfilter在内核空间中,用户通常无法接触内核和修改内核,此时需要命令行工具,一般使用iptables、firewalld等工具。使用iptables可以添加、删除具体的过滤规则,iptables默认维护四个表和五个链,所有的防火墙策略规则都将被分别写入表和链中。
centos7系统防火墙模块存放在/lib/modules/3.10.0-514.el7.x86_64/kernel/net/netfilter/目录下,当需要某个模块功能时,可以通过modprobe加载。centos7在原有的netfilter/iptables架构上又增加了firewalld。iptables工具是一个比较低级别的工具,仅可以调整ipv4的防火墙规则,所以在centos7上使用了firewalld作为默认的用户防火墙工具,但当用户使用firewalld编写ipv4防火墙规则时,firewalld依然是调用了底层的iptables实现具体的功能,只是这个调用过程对用户是透明的。

iptables service在 /etc/sysconfig/iptables中储存配置,而 firewalld将配置储存在 /usr/lib/firewalld/(系统配置,尽量不要修改) 和/etc/firewalld/(用户配置地址)中的各种 XML 文件里。

二、firewalld

1. 对网络区(zone)的理解

firewalld将所有的网络流量都分类汇聚到zones中,它通过zones管理防火墙规则,每一个进入系统的数据包,都会首先检查源IP地址和接口,如果与某个zone匹配,则该zone的规则将生效。而每个zone都会有开启或关闭服务和端口的列表,以实现允许或拒绝链接服务和端口。如果数据包的源IP地址和网卡接口都不能和任何zone匹配,则该数据包将匹配默认zone,一般情况下是一个public的默认zone。

firewalld会提供block,dmz,drop,external,home,internal,public,trusted,work这九个zone。比如有一个数据包从eno1网卡进入本机,根据规则进入work这个zone,而在work这个zone中有允许访问http服务的规则,则最后该数据包将可以进入本机并访问http服务

大部分zone都定义的有自己的允许规则,规则通过端口/协议(631/udp)或者预定义的服务(ssh)这种形式设置,如果数据包没有匹配这些允许的规则,则该数据包一般会被防火墙拒绝。但是如果有名为trusted的zone,默认会运行所有的数据流量,如果有一个数据包进入了该zone,则被允许访问所有的资源。

由firewalld 提供的区域按照从不信任到信任的顺序排序:

丢弃区域(Drop Zone)
任何接受的网络数据包都被丢弃,没有任何回复,仅能有发送出去的网络连接(数据包不能进来,但是可以出去)。这个类似与我们之前使用iptables -j drop。

阻塞/限制区域(Block Zone)
阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited(ICMP-主机-禁止),只有服务器已经建立的连接会被通过,即只允许由该系统初始化的网络连接。
任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-admprohibited 信息所拒绝。

公共区域(Public Zone)
只接受那些被选中的连接,默认只允许 ssh 和 dhcpv6-client。这个 zone 是缺省(即默认)zone。
在公共区域内使用,不能相信网络内其他计算机不会对你造成危害,只能接受经过选取的连接。。

外部区域(External Zone)
这个区域相当于路由器的启用伪装(masquerading)选项。只有指定的连接会被接受,即ssh,而其它的连接将被丢弃或者不被接受。
特别是为路由器启用了伪装功能的外部网,你不能信任来自网络的其他计算,不能相信他们不会对你造成伤害,只能接受经过选择的连接。

隔离区域(DMZ Zone)
如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义。它也拥有只通过被选中连接的特性,即ssh。
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过 选择的连接。

工作区域(Work Zone)
在这个区域,我们只能定义内部网络。比如私有网络通信才被允许,只允许ssh,ipp-client和 dhcpv6-client。用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。

家庭区域(Home Zone)
这个区域专门用于家庭环境。它同样只允许被选中的连接,即ssh,ipp-client,mdns,samba-client和 dhcpv6-client。
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。

内部区域(Internal Zone)
这个区域和工作区域(Work Zone)类似,只有通过被选中的连接,和home区域一样。
用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。

信任区域(Trusted Zone)
信任区域允许所有网络通信通过。记住:因为trusted是最被信任的,即使没有设置任何的服务,那么也是被允许的,因为trusted是允许所有连接的

2. Firewalld的原则:(如果一个客户端访问服务器,服务器根据以下原则决定使用哪个 zone 的策略去匹配)

1)如果一个客户端数据包的源 IP 地址匹配 zone 的 sources,那么该 zone 的规则就适用这个客户端。一个源只能属于一个zone,不能同时属于多个zone。但是一个zone里可以有多个source。

2)如果一个客户端数据包进入服务器的某一个接口(如eth0)匹配zone的interfaces(接口),则么该 zone 的规则就适用这个客户端;一个接口只能属于一个zone,不能同时属于多个zone。但是一个zone里可以有多个接口。

3)如果上述两个原则都不满足,那么缺省的 zone 将被应用。

我们可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有 firewall-cmd 这样的命令行工具,或者你也可以在配置文件目录中创建或者拷贝区域文件,/usr/lib/firewalld/zones 被用于默认和备用配置,/etc/firewalld/zones被用于用户创建和自定义配置文件。命令行工具firewall-cmd支持全部防火墙特性。

三、firewall-cmd常用命令及存储位置

1、安装Firewall 命令:

yum install firewalld firewalld-configFirewall

2、区域管理类命令

#设置默认区域为trusted,允许所有的通过,会改变防火墙配置文件:/etc/firewalld/firewalld.conf中的默认值firewall-cmd--set-default-zone=trusted#查看默认区域firewall-cmd--get-default-zone tidb-65:~# firewall-cmd --get-default-zonepublic#查看(活动区域)默认接口和区域firewall-cmd--get-active-zones tidb-65:~# firewall-cmd --get-active-zonesdockerinterfaces:docker0public(default
http://www.rkmt.cn/news/1527958.html

相关文章:

  • 多维聚合数据操作:从GROUP BY到Pandas动态变形实战
  • 【毕业设计】基于 Spring Boot 技术的线上问卷统计系统的设计与实现 面向日常调研场景的 Spring Boot 问卷系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 3个专业级Android内存诊断方案:从堆栈追踪到SQL驱动的深度性能分析
  • 避坑指南:Spring Boot整合TrueLicense时,那些容易搞错的密钥加载与License验证逻辑
  • 避坑指南:Arduino ESP32驱动TFT屏时,DMA模式下的那些常见错误与调试方法
  • 终极Android电池保护指南:AccA开源充电控制器完整教程
  • 嵌入式工程师必看:手把手教你排查PHY芯片挂载失败的6个硬件坑(附波形图分析)
  • 别再直接yum remove了!Docker升级后容器启动报错‘docker-runc’的排查与修复实录
  • 【毕业设计】基于 SpringBoot 的球队球员信息管理系统的设计与实现 智能化足球俱乐部运营管理平台(源码+文档+远程调试,全bao定制等)
  • opus-mt-en-el-openmind安装与配置:完整环境搭建指南
  • 魔百盒CM201-2朝歌版(8375主板)卡刷救砖全记录:从识别代工到刷入当贝桌面
  • Rufus终极指南:免费开源USB启动盘制作工具快速上手
  • Qt多语言实战:从VS2019到Qt5.15,手把手解决lupdate报错和ts文件生成难题
  • 踩坑实录:STM32CubeMX移植OSAL时,那些官方文档没说的重复定义和中断冲突问题
  • 2026年大波纹集装箱品牌综合观察:从嘉善出发,谁在定义工地临建新标准? - 优质品牌商家
  • 2026年广州搬家怎么选?从耐用性到服务链,7家区域企业实测分析 - 优质品牌商家
  • 信息学竞赛萌新避坑指南:解洛谷P1161‘开灯’时,90%的人会忽略的浮点数精度陷阱
  • 告别打包噩梦:一份针对Pyinstaller隐藏依赖和路径问题的终极配置清单
  • 【毕业设计】轻量化社区智能垃圾信息管理系统的设计与实现(SpringBoot) 面向居民的社区垃圾分类服务管理系统(源码+文档+远程调试,全bao定制等)
  • 2026年桥梁脱模剂选购指南:从工程案例到技术参数,这7家供应商值得关注 - 优质品牌商家
  • 泰凌微8258串口调试避坑指南:从引脚配置、DMA设置到中断处理的完整流程
  • LangChain安装总失败?试试这几种绕过网络限制的‘野路子’(含镜像源、离线包、Docker方案)
  • 2026年青白江为明初升高学校招生电话与升学路径深度分析:多校对比与案例参考 - 优质品牌商家
  • Comet Shell脚本架构:如何将AI工作流控制从Prompt转移到可测试工具
  • DP接口黑屏了别慌!手把手教你读懂DPCD寄存器状态(以RTD2173U芯片为例)
  • 达梦数据库dmap服务启动失败?别慌,手把手教你三种启动方式(含服务注册)
  • QMK固件终极指南:5分钟让你的机械键盘变身智能神器
  • 从理论到硅片:二级运放设计中的那些“坑”与避雷指南(基于Cadence仿真经验)
  • 保姆级教程:用PuTTY登录群晖DSM,安全修改硬盘过热保护温度(附scemd.xml配置文件详解)
  • 避坑指南:PLC与Matlab通信时,TCON连接建立和数据收发最容易犯的5个错误