ETJava Beta | Java    注册   登录
  • 搜索:
  • Linux 防火墙与安全管理工具详解

    发表于      阅读(1)     博客类别:Crawler     转自:https://www.cnblogs.com/haozheyu/p/18436413
    如有侵权 请联系我们删除  (页面底部联系我们)  

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

    1. Iptables 概述

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

    1.1 三表五链

    image

    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 系统中重要的安全管理工具。它们各自有不同的应用场景和特点,能够有效保护系统安全。通过合理配置这些工具,可以实现强大的网络安全策略。