百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

漫谈 Linux 防火墙,用简单的方式来说原理与操作

ahcoder 2025-02-21 12:00 28 浏览

说起 Linux 防火墙,大家可能并不陌生,因为一般我们在安装完系统后,第一个动作往往就是执行 systemctl stop/disable firewalld 来彻底关闭它~

当然这种行为从安全角度看是“无法忍受”得啦,今天就来给大家来好好认识一下这个“Linux firewall”,看看它到底有何本事。

先闲聊概念

首先,还是从它和iptables的关系谈起吧,曾经有段时间很迷糊,这俩到底是不是一个玩意??

实际当然不是啦,Linux firewalld 简单点来说是真正意义上的给用户使用的防火墙,它的概念和网络设备中的物理防火墙的概念很接近,有zone(安全域)、服务、地址段、安全策略(rules)的概念,对用户来说,linux防火墙和物理防火墙并无差异,只是操作层面有差别而已

那 iptables 是啥,咳咳,这里还是不说 iptables 了,还是来认识认识新的 nftables 吧,nftables是用于替换 iptables 的数据包过滤框架,就是新人,它的概念跟 iptables 一样,同样的“四表五链”的概念,通过链表来建立和控制数据包的转发规则,链表的机制这里不是重点就不多说了

等等,上面说的那俩都是建规则,那实际上到底谁来落地干活呢,工程师在哪里?

而真正使用规则干活的是内核的 netfilter ,netfilter 是 Linux 内核中进行数据包过滤的主要实现框架,在网络协议栈处理数据包过程中埋了好多钩子(Hook)来对数据包进行处理,等一下,由于这个也不是本文的重点,也就不再多说了,汗~

来一个图来说明这三者说不清也道不明的关系吧!

好了,说了那么多废话,怎么来操作这个防火墙呢,有三种手段,包括图形界面(这里不讲)、Web控制台(这里也不讲,只给看)、命令行(只说这个),来点具体的吧!

先来个狠的,全给我断掉!

(在紧急情况下,如遇到系统攻击,可以禁用所有网络流量阻断攻击)

启动 panic 模式:

$ firewall-cmd --panic-on

启用 panic 模式即可停止所有网络流量,包括你自己的访问,断了之后就赶紧去机房或者找控制台console吧。

要关闭 panic 模式:

$ firewall-cmd --panic-off

我到底关没关/开没开?请使用:

$ firewall-cmd --query-panic

来点正常的吧

增加一个http服务的访问,永久:

$ firewall-cmd --zone=public --add-service=http --permanent

自定义一个service服务

$ firewall-cmd --zone=public --permanent --new-service="only--9527" --add-port=9527/tcp

存一下,看看样子

$ firewall-cmd --reload

来点特殊功能,ICMP Filter

$ firewall-cmd --permanent --zone=public --add-icmp-block=echo-request 
$ firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply 
$ firewall-cmd --reload

然后就真被filter了

[root@master ~]# firewall-cmd --list-all  
public (active)
 target: default
 icmp-block-inversion: no
 interfaces: bond0 eno1 eno2 eno3
 sources: 
services: bgp cockpit dhcpv6-client etcd-server ssh
 ports: 
protocols: 
masquerade: no
 forward-ports: 
source-ports: 
icmp-blocks: echo-request echo-reply
[root@slave ~]# ping 192.168.1.111
PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data.
From 192.168.1.111 icmp_seq=1 Packet filtered
From 192.168.1.111 icmp_seq=2 Packet filtered

这种很明显,别人会知道你正在filter(阻止)它,要真正隐藏就要丢弃所有请求,然后再增加正常的访问请求策略(无奈,firewalld就是这个样子)。

$ firewall-cmd --permanent --set-target=DROP

增加正常的访问请求策略就看上下文吧,不多说了。

来个 rich 的

rich language 是一种表达性配置语言,就是很简单的去表达基本的允许/拒绝规则。

例如,拦截来自外部网路中 IP 为 192.168.1.254 的 BGP 流量(什么玩意,还想给主机发bgp信息?):

$ firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address=192.168.1.254 service name=bgp reject" 
$ firewall-cmd --reload
$ firewall-cmd --list-all
public (active)
  target: default
  ……
  icmp-blocks: 
  rich rules: 
        rule family="ipv4" source address="192.168.1.254" service name="bgp" reject
[root@slave ~]# telnet 192.168.1.111 179
Trying 192.168.1.111...
telnet: connect to address 192.168.1.111: Connection refused

rich规则详解:

--add-rich-rule 使用选项,规则以 rule 关键字开头

family: 可指定该规则仅应用于IPv4数据包,如果未指定将同时应用于IPv4和IPv6

source address: 数据包的源地址

service: 规则的服务类型,在本例中为bgp

reject/drop/accept: 数据包与规则匹配时要执行的操作,在本例中为reject


差不多了,码字手都疼了,各位给 关注 、点个赞 吧,其它功能咱们以后慢慢再聊~

相关推荐

KaOS 2025.05版本发布:全面拥抱Qt6,彻底告别Qt5

KaOSLinux2025.05版本重磅发布:全面拥抱Qt6,开启KDE生态新篇章继2025.03版本发布两个月后,专注于KDE桌面环境、采用XFS文件系统的滚动发行版Li...

基于FIMC接口的CMOS摄像头驱动分析与设计

摘要:目前的嵌入式系统中,USB摄像头使用比较普遍,但其应用会受到传输速度的限制。本文采用一款高速CMOS摄像头,其驱动利用S3C6410内置的FIMC接口技术,采用DMA和ping-pong缓冲...

没错是微软 推出基于Linux的交换机系统

2015-09-2205:59:59作者:郑伟你没看错,为了提升自身Azure云数据中心内网络设备的兼容性及开放性,微软也开始推出基于Linux的网络交换机系统了。这个被称为AzureCloud...

Linus Torvalds 宣布首个 Linux 内核 6.16 候选版本

Linux内核负责人兼创始人LinusTorvalds宣布关闭合并窗口,该窗口用于将主要新功能添加到内核中,并开始发布Linux6.16候选版本,从候选版本1(Linux6.16-r...

Linux内核漏洞将影响Haswell架构服务器

在infoq网站上,GilTene最近报告一个十分重要,但并不为人知Linux内核补丁,特别对采用Haswell架构的Linux系统用户和管理员应该特别关注。报告提醒RedHat发行版的用户(包括...

关于Linux性能调优中网络I/O的一些笔记

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,i...

国产操作系统- Veket Linux(国产操作系统之光银河麒麟阅读理解)

VeketLinux是一个随身的可装在U盘的Linux操作系统。主要面向桌面用户。它的设计重点是提供简单易用且稳定的操作系统,同时保持更新和开发。它具有强大的功能集和广泛的用户基础,可满足...

AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术

IT之家5月21日消息,科技媒体linuxiac昨日(5月20日)发布博文,报道称代号为SageMargay的AlmaLinux9.6发行版已上线,距上一版本9.5发...

跟老韩学Linux运维架构师系列,vim与view的基本使用

下面是vim和view的10个实例:用vim打开一个新文件:vimnewfile.txt这个命令将会在vim编辑器中打开一个新文件。在vim中移动光标:使用方向键或h、j、k、l键来移动光标。在v...

malloc底层原理剖析——ptmalloc内存池

malloc底层为什么是内存池malloc大家都用过,其是库函数。我们都知道库函数在不同的操作系统中其实执行的是系统调用,那么malloc在Linux上执行的是哪个系统调用呢?brk()和mmap()...

Zen 6架构首秀Linux,AMD加速下一代处理器布局

IT之家5月15日消息,科技媒体Phoronix昨日(5月14日)发布博文,报道称AMD已经开始为下一代“Zen6”处理器做准备,已为该构架向Linux内核提交了首个补丁,...

为何越来越多企业转向安卓/Linux工业平板电脑?答案在这里

在工业领域,设备的稳定性至关重要,尤其是工业平板电脑,常年运行在高温、粉尘、潮湿等复杂环境下,一旦系统崩溃或者卡顿,可能会影响整个生产流程。那么,为什么越来越多的企业选择安卓/Linux工业平板电脑,...

从3ms到0.8ms:ARM+Linux如何重塑工业控制实时性标杆

在智能制造领域,产线控制系统对实时性的要求越来越高。根据行业调研数据,超过65%的工业现场出现过因系统响应延迟导致的故障停机,平均每次停机造成的直接损失高达2-8万元。传统x86架构搭配Windows...

看Linux如何"挖坑种树"

写在前面,有人看我的Linux文章说技术难度不深,笔者不是不想写深,笔者是觉得Linux难就难在入门,入门之后你就知道如何上网查询你所要要解决的Linux需求。如果你已入门,此文已对你无用,请略过此...

AlmaLinux 9.6 发布,新增功能亮点纷呈!

距离上一版本AlmaLinux9.5发布六个月后,基于5.14内核的AlmaLinux正式宣布其企业级Linux发行版的9.x系列第六个更新——AlmaLinux9.6(Sag...