泪伤荡的编程指南 泪伤荡的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
  • API网关

    • 网关基础知识小结
    • Gateway官方文档学习
  • 消息队列

    • RocketMQ

      • RocketMQ入门
      • SpringBoot整合RocketMQ
      • RocketMQ5.1.2源码解析
    • Kafka

      • Kafka基础小结
      • Kafka的下载安装以及使用
      • Kafka整合SpringBoot
      • Kafka可视化工具
  • Spring Cloud

    • Spring Cloud Alibaba 从入门到实战

      • 基础知识篇
      • 分布式配置
      • 服务注册与发现
      • 分布式服务调用
      • 服务熔断和限流
      • 分布式消息(事件)驱动
      • 分布式事务
    • SpringCloud Stream学习
    • Nacos学习
  • 分布式事务

    • 认识Seata
  • 云存储

    • minio
  • 搜索引擎

    • Elasticsearch入门
  • 虚拟机

    • Linux基础小结
    • Linux环境搭建
    • 安装Docker
    • Docker入门
    • 配置桥接模式
    • 防火墙相关
      • 理解 Linux 防火墙
        • iptables
        • 基本 iptables 命令
        • firewalld
        • 基本 firewalld 命令
        • 添加和删除服务
        • 管理区域和区域规则
        • 管理防火墙规则
        • 管理直接规则
        • 查看和导出配置
      • 虚拟机防火墙配置
        • 宿主机防火墙配置
        • 虚拟机防火墙配置
        • 虚拟机网络隔离
      • 监控和维护
      • 结论
      • 学习参考
    • 查看日志的六种命令详解
    • docker run指令
  • 微服务
  • 虚拟机
泪伤荡
2024-04-16
目录

防火墙相关

# Linux 虚拟机防火墙配置与管理

在现代的 IT 环境中,虚拟机(VM)已成为资源管理和分配的重要手段。Linux 虚拟机因其开源、灵活和高效的特点而广受欢迎。然而,随着虚拟机的增多,确保它们的安全性变得尤为重要。Linux 虚拟机的防火墙是保护系统不受未授权访问和网络攻击的第一道防线。

本文将探讨 Linux 虚拟机防火墙的配置与管理,以确保您的虚拟环境安全无虞。

# 理解 Linux 防火墙

Linux 系统中有多种防火墙工具可供选择,最常用的是 iptables 和 firewalld。

  • iptables 是一个传统的、功能强大的包过滤框架,
  • 而 firewalld 则是一个较新的动态管理防火墙,用户友好性更高。

# iptables

iptables 是 Linux 内核中的一个网络包过滤框架,它可以控制进出 Linux 系统的网络流量。

  • iptables 使用表(tables)和规则(rules)来定义如何处理网络包。

  • 主要的表有:filter(默认,用于过滤流量)、nat(网络地址转换)、mangle(数据包修改)和 raw(原始包处理)。

# 基本 iptables 命令

service iptables status 	#查看iptable防火墙状态
iptables -L -n -v			#查看iptable防火墙规则
systemctl start iptables	#打开iptable防火墙
service iptables stop	    #关闭iptable防火墙
yum install  iptables -y	#安装iptable防火墙
systemctl enable iptables	#开机自启iptable防火墙
systemctl disable firewalld	#开机自动关闭iptable防火墙
iptables -F					#清空iptable的规则
service iptables save  		#保存iptable防火墙规则

iptables -A INPUT -p tcp --dport 80 -j REJECT #禁止来自80端口访问的数据包
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许来自80端口访问的数据包

iptables -A OUTPUT -p tcp --sport 80 -j REJECT #禁止从80端口出去的数据包
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT #允许从80端口出去的数据包

iptables -A INPUT -p tcp -s 192.168.1.100 -j DROP #阻止所有来自特定 IP 的流量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# firewalld

firewalld 是一个动态管理防火墙的守护进程,它使用 D-Bus 来与前端应用程序通信。firewalld 提供了更易于管理和配置的接口,支持区域和区域的概念,可以更细致地控制网络流量。

# 基本 firewalld 命令

  • 查看 firewalld 状态:

    systemctl status firewalld
    
    1
  • 启动 firewalld 服务:

    systemctl start firewalld
    
    1
  • 开放端口:

    firewall-cmd --permanent --zone=public --add-port=22/tcp
    
    1
  • 停止:

    systemctl stop firewalld
    
    1
  • 禁用:

    systemctl disable firewalld
    
    1
  • 重新加载 firewalld 配置:

    firewall-cmd --reload
    
    1

以下是一些额外的 firewalld 命令,用于管理 Linux 防火墙的规则和配置:

# 添加和删除服务

  • 添加服务到防火墙(例如,添加一个名为 example-service 的服务):

    sudo firewall-cmd --permanent --add-service=example-service
    
    1
  • 删除服务从防火墙:

    sudo firewall-cmd --permanent --remove-service=example-service
    
    1

# 管理区域和区域规则

  • 添加一个新的区域(例如,添加一个名为 example-zone 的区域):

    sudo firewall-cmd --permanent --new-zone=example-zone
    
    1
  • 删除一个区域:

    sudo firewall-cmd --permanent --delete-zone=example-zone
    
    1
  • 将端口添加到特定区域:

    sudo firewall-cmd --permanent --zone=example-zone --add-port=8080/tcp
    
    1
  • 从区域移除端口:

    sudo firewall-cmd --permanent --zone=example-zone --remove-port=8080/tcp
    
    1

# 管理防火墙规则

  • 添加允许规则,允许来自特定 IP 地址的流量:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
    
    1
  • 添加拒绝规则,拒绝来自特定 IP 地址的流量:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'
    
    1
  • 添加转发规则,允许从外部接口转发到内部网络:

    sudo firewall-cmd --permanent --add-forward-chain=forward-chain-name
    
    1

# 管理直接规则

  • 添加直接规则,允许从外部接口到内部设备:

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" destination address="10.0.0.1" accept'
    
    1
  • 删除直接规则:

    sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" destination address="10.0.0.1" accept'
    
    1

# 查看和导出配置

  • 列出所有永久性和临时规则:

    sudo firewall-cmd --list-all
    
    1
  • 导出当前的 firewalld 配置到一个文件:

    sudo firewall-cmd --runtime-to-permanent
    
    1

请注意,使用 --permanent 选项的命令将更改防火墙的永久配置,这些更改在重启后仍然有效。如果您只想临时更改防火墙配置,可以省略 --permanent 选项,但请注意,这些更改在重启后将丢失。

在执行任何防火墙操作之前,请确保您了解这些命令的影响,并在必要时备份您的防火墙配置。

# 虚拟机防火墙配置

在虚拟化环境中,防火墙配置需要考虑宿主机和虚拟机之间的交互。通常,虚拟机会桥接到宿主机的网络,这样虚拟机就可以像物理机一样接入网络。

# 宿主机防火墙配置

宿主机的防火墙配置应允许虚拟机的网络流量通过。例如,如果您使用 NAT,需要设置端口转发规则。

# 虚拟机防火墙配置

虚拟机内部的防火墙配置应基于虚拟机的角色和需要。例如,Web 服务器可能需要开放 80 和 443 端口,而数据库服务器可能只需要开放默认的数据库端口。

# 虚拟机网络隔离

为了防止虚拟机之间的不必要通信,可以使用虚拟网络编辑器创建独立的虚拟网络。这样,每个虚拟机都可以连接到不同的网络,从而实现网络隔离。

# 监控和维护

定期监控和维护防火墙规则是确保虚拟机安全的关键。使用工具如 firewalld 的图形界面或命令行工具可以帮助您跟踪和更新防火墙规则。

# 结论

  • Linux 虚拟机的防火墙是保护系统不受网络威胁的重要工具。
  • 通过合理配置 iptables 或 firewalld,您可以有效地控制进出虚拟机的网络流量。
  • 防火墙规则应根据虚拟机的用途和安全需求进行定制,并定期进行审查和更新。
  • firewall 和 iptable 都是 Linux 的防火墙,firewall 调用了 iptable 的 command 去执行内核的 netfilter,也就是底层还是使用 iptables 对内核命令动态通信包过滤,firewall 是 Centos7 里的新防火墙命令,相当于 iptables 的孩子。

# 学习参考

Linux防火墙开启、查看端口等常用命令_linux查看防火墙开放端口命令-CSDN博客 (opens new window)

上次更新: 2024/10/26 02:01:17
配置桥接模式
查看日志的六种命令详解

← 配置桥接模式 查看日志的六种命令详解→

Theme by Vdoing | Copyright © 2024-2025 泪伤荡 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式