Linux 防火墙与安全管理工具详解

1. Iptables 概述

Iptables 是 Linux 系统中用于控制网络流量的工具,通过定义规则来过滤、转发和修改数据包。其规则可以细致地管理进入和离开系统的数据流。

1.1 三表五链

1.1.1 三表

Iptables 中主要有三种表,每种表用于不同的操作:

  1. filter 表

    • 作用:负责数据包的过滤,决定哪些数据包被允许通过。
    • 主要链
      • INPUT:处理进入防火墙的数据包。
      • OUTPUT:处理从防火墙发出的数据包。
      • FORWARD:处理经过防火墙转发的数据包。
  2. nat 表

    • 作用:用于网络地址转换,修改数据包的源或目标地址。
    • 主要链
      • PREROUTING:在路由决策之前处理数据包。
      • POSTROUTING:在数据包离开防火墙之前处理。
      • OUTPUT:处理由本机生成的数据包。
  3. mangle 表

    • 作用:用于修改数据包的某些特性,例如 TOS、TTL 和标记。
    • 主要链
      • PREROUTING:在数据包路由决策前处理。
      • POSTROUTING:在数据包离开防火墙前处理。
      • INPUT:处理进入防火墙的数据包。
      • OUTPUT:处理从防火墙发出的数据包。
      • FORWARD:处理转发的数据包。

1.1.2 五链

Iptables 中的五个链分别为:

  1. INPUT:处理进入防火墙的流量。
  2. OUTPUT:处理从防火墙出去的流量。
  3. FORWARD:处理转发流量。
  4. PREROUTING:所有进入防火墙的数据包首先经过这个链。
  5. POSTROUTING:所有从防火墙出去的数据包经过这个链。

1.2 Iptables 示例

1.2.1 允许 SSH 访问并拒绝其他流量(filter 表)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
解析:允许 SSH 访问,所有其他流量将被拒绝。

1.2.2 端口转发示例(nat 表)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:8080
iptables -t nat -A POSTROUTING -j MASQUERADE
解析:将外部访问的 HTTP 流量转发到内部服务器。

1.2.3 修改 TOS 示例(mangle 表)

iptables -t mangle -A OUTPUT -p tcp --dport 80 -j TOS --set-tos 0x10
解析:修改发送到 HTTP 的数据包的 TOS 字段。

2. UFW(Uncomplicated Firewall)

2.1 概述

UFW 是一种用于简化 Iptables 操作的防火墙管理工具,主要用于 Ubuntu 系统。它提供了易于使用的命令行和图形界面。

2.2 主要特点

易于使用:通过简化的命令,使用户能够快速设置防火墙规则。

默认策略:可以轻松设置默认的允许或拒绝规则。

状态管理:支持查看防火墙状态和已配置的规则。

2.3 示例

2.3.1 启用 UFW

ufw enable

2.3.2 允许 SSH

ufw allow ssh

2.3.3 拒绝 HTTP

ufw deny http

3. SELinux(Security-Enhanced Linux)

3.1 概述

SELinux 是一种强制访问控制(MAC)机制,提供额外的安全层,控制系统中进程和对象的交互。它由 NSA 开发,并集成到许多 Linux 发行版中。

3.2 主要特点

细粒度控制:可以根据安全策略精确控制访问权限。

强制执行:不允许绕过设置的安全策略。

上下文管理:每个文件和进程都有安全上下文,以定义访问权限。

3.3 示例

3.3.1 查看 SELinux 状态

sestatus

3.3.2 设置 SELinux 为宽松模式

setenforce 0

3.3.3 设置 SELinux 为强制模式

setenforce 1

4. Firewalld

4.1 概述

Firewalld 是一种动态防火墙管理工具,旨在替代 Iptables。它使用区域和服务的概念来管理规则,允许用户动态地添加和删除规则。

4.2 主要特点

区域管理:根据网络的不同区域(如内部、外部)设置不同的规则。

服务管理:可以使用服务名称来管理规则,而不是使用端口号。

动态更新:支持动态添加、删除规则,无需重启防火墙。

4.3 示例

4.3.1 启动 Firewalld

systemctl start firewalld

4.3.2 允许 SSH 服务

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

4.3.3 查看当前规则

firewall-cmd --list-all

Iptables、UFW、SELinux 和 Firewalld 是 Linux 系统中重要的安全管理工具。它们各自有不同的应用场景和特点,能够有效保护系统安全。通过合理配置这些工具,可以实现强大的网络安全策略。

Linux 防火墙与安全管理工具详解的更多相关文章

  1. Linux 远程数据同步工具详解

    一.简介 1 认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来 ...

  2. 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

    原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...

  3. Iperf3网络性能测试工具详解教程

    Iperf3网络性能测试工具详解教程 小M 2020年4月17日 运维 本文下载链接 [学习笔记]Iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保 ...

  4. 【山外笔记-工具框架】iperf3网络性能测试工具详解教程

    [山外笔记-工具框架]iperf3网络性能测试工具详解教程   本文下载链接 [学习笔记]iperf3网络性能测试工具.pdf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性 ...

  5. LINUX经常使用的命令详解

    LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释  eg:man ...

  6. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  7. Linux计划任务Crontab实例详解教程

    说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS ...

  8. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  9. Linux文件系统的目录结构详解

    Linux文件系统的目录结构详解   一.前 言 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构. 二.目 录 1.什么是文件系统 2.文件 ...

  10. Linux驱动开发必看详解神秘内核(完全转载)

    Linux驱动开发必看详解神秘内核 完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html   IT168 技术文档]在开始步入L ...

随机推荐

  1. 关于VS2022无法打开源文件<stdio.h>报错

    Q:本人今天下载VS2022,在billibilli观看到不靠谱教程以至于无法输出hello world A:经过网上查询发现 解决方案/侵删 web:https://www.cnblogs.com/ ...

  2. SpringBoot配置过滤器、拦截器

    拦截器概述 Spring Boot提供了一种简单且强大的方式来定义和使用拦截器(Interceptor).Spring Boot的拦截器基于Spring框架的拦截器机制,可以在请求的处理过程中插入自定 ...

  3. 【Vue】Re01 理论概念和入门上手

    一.Vue概述 什么是渐进式?1.把Vue作应用的一部分嵌套项目中2.如果完全抛弃其他组件和框架,Vue又具有丰富的生态和库莱支持3.Core + Router + VueX 满足项目绝大多数的需求- ...

  4. 【FastDFS】环境搭建 03 FastDFS & Nginx整合

    FastDFS & Nginx整合: 跟踪器结合Nginx,目的是为了负载均衡和高可用,只有一台Track可以不配置Nginx 安装FastDFS-Nginx-Module到服务器上面: ta ...

  5. Ubuntu 18.04.4 安装docker18.09 (使用阿里云的源)

    由于AI_Station 是使用容器构建环境的,而且只提供镜像上传下载功能,不为容易提供网络功能,因此需要在平台上把镜像拉取到本地,并安装一些必备软件然后再打包成镜像上传回去,因此需要在本地构建doc ...

  6. 一些八股:1.fetch 的理解。2.let、const、var

    一. 说说你对 Fetch 的理解,它有哪些优点和不足? Fetch API 是现代 JavaScript 中用于进行网络请求的接口,旨在替代传统的 XMLHttpRequest.它提供了一种更简单. ...

  7. Apache DolphinScheduler:深入了解大数据调度工具

    一.海豚调度介绍 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统.适用于企业级场景,提供了一个可视化操作任务.工作流和全生命周期数据处理过程的解 ...

  8. vue3:setup语法糖使用教程

    setup语法糖简介 直接在script标签中添加setup属性就可以直接使用setup语法糖了. 使用setup语法糖后,不用写setup函数:组件只需要引入不需要注册:属性和方法也不需要再返回,可 ...

  9. java_父类子类

    private 只有自身能访问自身 自身 同包子 不同包子类 同包类 其他类 可以访问 不能继承 不能继承 不能访问 不能访问 package/friendly/default == 不写 自身 同包 ...

  10. Prometheus 告警恢复时,怎么获取恢复时的值?

    Prometheus 告警事件中的 $value 表示当前告警触发时的值,但是在告警恢复时,Resolved 事件中的 $value 仍然是最新告警时的值,并非是恢复时的值,这是什么原因和原理?是否有 ...