Linux - 防火墙

news/2024/12/3 8:26:21/

八、防火墙

1、简介

防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。

防火墙又可以分为硬件防火墙与软件防火墙。硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙 的操作系统主要以提供数据包数据的过滤机制为主,并将其他不必要的功能拿掉。软件防火墙就是保护系统网络安全的一套软件(或称为机制),例如Netfilter与TCP Wrappers都可以称为软件防火墙。这儿主要介绍linux系统本身提供的软件防火墙的功能,那就是Netfilter,即数据包过滤机制。

  • 数据包过滤,也就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决定该连 接为放行或抵挡的机制。由于这种方式可以直接分析数据包头部数据,包括硬件地址,软件地址, TCP、UDP、ICMP等数据包的信息都可以进行过滤分析,因此用途非常广泛(主要分析OSI七层协议的 2、3、4层)。linux的Netfilter机制可以进行的分析工作有:
    • 拒绝让Internet的数据包进入主机的某些端口
    • 拒绝让某些来源ip的数据包进入
    • 拒绝让带有某些特殊标志(flag)的数据包进入,最常拒绝的就是带有SYN的主动连接的标志了
    • 分析硬件地址(MAC)来决定连接与否
  • 缺点:
    • 防火墙并不能有效阻挡病毒或木马程序。(假设主机开放了www服务,防火墙的设置是一定要将 www服务的port开放给client端的。假设www服务器软件有漏洞,或者请求www服务的数据包本 身就是病毒的一部分时,防火墙是阻止不了的)
    • 防火墙对于内部LAN的攻击无能为力(防火墙对于内部的规则设置通常比较少,所以就很容易造成 内部员工对于网络无用或滥用的情况)

Netfilterr这个数据包过滤机制是由linux内核内建的,不同的内核版本使用的设置防火墙策略的软件不一 样,在红帽7系统中firewalld服务取代了iptables服务,但其实iptables服务与firewalld服务它们都只是 用来定义防火墙策略的“防火墙管理工具”而已,他们的作用都是用于维护规则,而真正使用规则干活的 是内核的Netfilter。

红帽Linux中的默认防火墙管理工具,使用iptables作为底层实现。它提供了一个用户友好的界面,支持命令行和图形界面(如:firewall-config)。

2、原理与应用

原理

  • 区域概念:firewalld将网络接口分配到不同的区域中,每个区域定义了不同的安全级别。例如,public区域用于不信任的网络,而trusted区域则用于完全信任的网络

  • 服务与端口:用户可以通过服务名称(如HTTP、SSH等)来允许或拒绝特定流量,而不需要手动指定端口号。

  • 动态管理:firewalld支持动态添加或移除规则,而无需重启服务。这使得配置更为灵活,适合于快速变化的网络环境。

  • 持久化与临时配置:规则可以设置为临时生效或持久化保存,以便在重启后依然生效。

应用

  • 保护服务器:通过配置适当的区域和服务,保护Web服务器、数据库服务器等不受外部攻击。
  • 隔离网络流量:在多租户环境中,可以通过不同的区域来隔离不同客户的流量。
  • VPN与远程访问:配置防火墙规则以允许VPN流量,通过安全隧道保护远程访问。
  • 日志记录与审计:通过配置日志规则,监控网络流量和攻击尝试,帮助进行安全审计。

3、配置

#查看防火墙状态:
firewall-cmd --state#查看当前区域和活动接口:该命令将显示当前活动的区域及其相关联的网络接口。
firewall-cmd --get-active-zones#查看特定区域的规则:该命令将列出public区域的所有规则,包括允许的服务、端口和接口。
firewall-cmd --zone=public --list-all#添加服务到某个区域:该命令将HTTP服务添加到public区域,并将其设置为持久化配置。
firewall-cmd --zone=public --add-service=http --permanent#添加特定端口:该命令将TCP端口8080添加到public区域,并持久化
firewall-cmd --zone=public --add-port=8080/tcp --permanent#删除服务或端口:该命令将从public区域中删除HTTP服务。
firewall-cmd --zone=public --remove-service=http --permanent#重新加载配置:该命令将应用所有未持久化的更改,并重新加载防火墙配置。
firewall-cmd --reload#查看日志: 如果启用了日志记录,可以使用以下命令查看日志:
journalctl -f -u firewalld

http://www.ppmy.cn/news/1551952.html

相关文章

软件测试丨Web自动化测试用例录制与编写全攻略

Web自动化测试的功能简介 Web自动化测试主要是使用特定的工具或框架自动执行对Web应用程序进行的测试。通过模拟用户的操作,自动化测试能够验证应用程序的功能及性能。这一过程的大致流程是: 用例设计:明确测试目标、场景及所需功能。录制测…

服务器配环境

<适用Ubuntu 系统> if 系统默认python版本与本项目所需python版本不一致&#xff1a; 安装 pyenv 1.安装依赖包 sudo apt update sudo apt install -y \make \build-essential \libssl-dev \zlib1g-dev \libbz2-dev \libreadline-dev \libsqlite3-dev \wget \curl \l…

SSH远程命令实践:如何打包、压缩并传输服务器文件

大家好&#xff0c;今天我要分享的是如何使用SSH命令来远程打包、压缩服务器上的文件&#xff0c;并将其传输到本地或其他服务器。这对于需要在远程服务器上进行文件备份或迁移的场景非常有用。 以下是本文的主要内容&#xff1a; 一、命令详解 我们要执行的命令是&#xff…

YOLOv11融合FCMNet中的WCMF模块及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《FCMNet: Frequency-aware cross-modality attention networks for RGB-D salient object detection》 一、 模块介绍 论文链接&#xff1a;https://…

如何实现一套键盘鼠标控制两台计算机(罗技Options+ Flow功能快速实现演示)

需求背景 之前我写过一篇文章如何实现一套键盘鼠标控制两台计算机&#xff08;Mouse Without Borders快速上手教程&#xff09;_一套键鼠控制两台电脑-CSDN博客 当我们在局域网内有两台计算机&#xff0c;想使用一套键鼠操控时&#xff0c;可以安装Mouse Without Borders软件…

数字图像处理内容详解

1.对比度 最大亮度 / 最小亮度 2.邻域 m邻接&#xff1a;对于像素p和q&#xff0c;如果p和q四临接&#xff0c;或p和q八临接且两者的四邻域的交集为空 通路&#xff1a;如果俩点全部是K邻接&#xff08;K代表4&#xff0c;8&#xff0c;m&#xff09;&#xff0c;则说明存在K…

Linux环境变量与本地变量

文章目录 Linux环境变量与本地变量什么是环境变量查看环境变量设置环境变量本地变量命令行参数 Linux环境变量与本地变量 什么是环境变量 操作系统或运行时环境中存储的一些变量&#xff0c;用来存储与进程或系统相关的配置信息。这些变量在进程启动时由操作系统或Shell读取&…

go语言读取yaml配置文件内容

1、config.yaml配置文件内容假设如下 name: "example" version: 1.0 settings:timeout: 30debug: truefeatures:- feature1- feature22、定义结构体 go语言定义结构体匹配yaml内容 package mainimport ("fmt""log""os""gopkg.…