帮助中心 >  行业资讯 >  云计算 >  Linux - Ubuntu的防火墙操作

Linux - Ubuntu的防火墙操作

2025-01-23 14:38:53 1611

复杂的网络环境中,服务器面临着各种各样的安全威胁。防火墙作为网络安全的第一道防线,对于保护运行 Ubuntu 系统的服务器至关重要。通过合理配置防火墙规则,可以限制网络访问,阻止未经授权的连接,从而有效保护系统资源和数据安全。本文将深入研究 Ubuntu 系统中常用的防火墙命令及其操作方法,帮助 Shell 脚本工程师更好地利用防火墙维护系统安全。


Ubntu 防火墙概述

Ubuntu 系统默认使用的防火墙工具是ufw(Uncomplicated Firewall),它是基于iptables的一个前端工具,提供了一种简单直观的方式来管理防火墙规则。iptables是 Linux 内核中集成的一个功能强大的数据包过滤系统,ufw简化了iptables的操作,使得普通用户和系统管理员能够更轻松地配置防火墙。

一、ufw 基础命令操作

(一)ufw 的安装与检查

1.安装

如果系统未预装ufw,可以使用以下命令进行安装:


sudo apt update
sudo apt install ufw


2.检查状态

使用以下命令查看ufw的状态:


    sudo ufw status


    该命令会显示防火墙是否启用,以及当前的默认策略和已设置的规则。例如,输出可能如下


    Status: inactive

    表示防火墙当前未启用。

    (二)ufw 的启用与禁用

    1.启用

    要启用ufw,使用以下命令:

    sudo ufw enable


    启用时,系统会提示确认操作,因为启用防火墙可能会影响现有网络连接。确认后,防火墙将开始按照预设规则过滤网络流量。


    2. 禁用:若要禁用ufw,可执行:


    sudo ufw disable


    禁用后,系统将不再对网络流量进行防火墙规则的过滤。

         (三)设置默认策略

    1.设置默认允许策略

    默认情况下,ufw的策略是拒绝所有传入连接,允许所有传出连接。如果希望设置默认允许传入连接,可以使用以下命令:


    sudo ufw default allow incoming


    2.设置默认拒绝策略

    若要恢复默认的拒绝传入连接策略,执行:


    sudo ufw default deny incoming


    同样,对于传出连接,也可以使用类似命令设置默认策略:


    sudo ufw default allow outgoing
    sudo ufw default deny outgoing


    设置默认策略时需谨慎,尤其是允许传入连接的策略,可能会增加系统的安全风险。

         (四)添加与删除规则

    1.允许特定端口

    要允许特定端口的传入连接,例如允许 SSH 服务(默认端口 22),可以使用:


    sudo ufw allow 22


    如果要允许特定端口范围,如允许 8000 - 8005 端口的 TCP 连接:


    sudo ufw allow 8000:8005/tcp


    2.拒绝特定端口

    拒绝某个端口的传入连接,比如拒绝 8080 端口的 TCP 连接:


    sudo ufw deny 8080/tcp


    3.根据应用程序配置

    ufw还支持根据应用程序名称来配置规则。例如,要允许 Apache Web 服务器(假设已安装并配置了相应的应用程序配置文件)


    sudo ufw allow 'Apache'


    4.删除规则

    若要删除已添加的规则,可以使用规则编号。首先通过sudo ufw status numbered查看规则编号,然后使用delete选项删除规则。例如,要删除编号为 3 的规则:


    sudo ufw delete 3


    二、基于 iptables 的高级操作

    虽然ufw提供了便捷的防火墙管理方式,但对于更复杂的需求,直接操作iptables可能更合适。iptables通过链(chain)和规则(rule)来管理数据包的过滤。

    (一)iptables 的基本概念

    1.链

    iptables有四个内置链,分别是INPUT(处理传入数据包)、OUTPUT(处理传出数据包)、FORWARD(处理转发数据包)和PREROUTING(在数据包到达路由决策之前处理)。

    2.规则

    规则定义了如何处理符合特定条件的数据包,包括匹配条件(如源 IP、目的 IP、端口号等)和动作(如接受、拒绝、丢弃等)。

    (二)iptables 命令示例

    1.允许特定 IP 访问

    允许192.168.1.100这个 IP 地址访问本机的 SSH 服务(端口 22):

    sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT


    这里-A表示在链的末尾追加规则,-p tcp指定协议为 TCP,-s指定源 IP,--dport指定目的端口,-j ACCEPT表示接受该数据包。


    2. 拒绝特定 IP 访问:拒绝10.0.0.1这个 IP 地址访问本机的任何服务:

    sudo iptables -A INPUT -s 10.0.0.1 -j DROP

    -j DROP表示丢弃该数据包。


    3. 保存与恢复规则:iptables的规则在系统重启后默认不会保存。要保存当前的iptables规则,可以使用iptables -save命令将规则保存到文件,例如:


    sudo iptables -save > /etc/iptables/rules.v4


    对于 IPv6 的规则,可以使用类似命令保存到相应文件:


    sudo ip6tables -save > /etc/iptables/rules.v6


    在系统重启后,可以通过以下命令恢复规则:


    sudo iptables -restore < /etc/iptables/rules.v4sudo ip6tables -restore < /etc/iptables/rules.v6


    三、在 Shell 脚本中应用防火墙规则

    作为 Shell 脚本工程师,常常需要将防火墙规则集成到脚本中,以实现自动化的系统配置和管理。

    (一)使用 ufw 的脚本示例

    假设我们要编写一个脚本,在系统初始化时配置防火墙规则,允许 SSH、HTTP 和 HTTPS 服务,并设置默认拒绝策略:


    #!/bin/bash# 检查ufw是否安装,未安装则安装if! command -v ufw &> /dev/nullthen    sudo apt update    sudo apt install ufw -yfi# 启用ufwsudo ufw enable# 设置默认策略sudo ufw default deny incomingsudo ufw default allow outgoing# 允许SSH、HTTP和HTTPS服务sudo ufw allow 22sudo ufw allow 80sudo ufw allow 443


    (二)使用 iptables 的脚本示例

    以下脚本使用iptables实现允许特定子网访问本机的 Web 服务(端口 80 和 443),并拒绝其他所有非必要的传入连接:


    #!/bin/bash# 清除现有规则sudo iptables -Fsudo iptables -X# 设置默认策略为DROPsudo iptables -P INPUT DROPsudo iptables -P OUTPUT DROPsudo iptables -P FORWARD DROP# 允许环回接口流量sudo iptables -A INPUT -i lo -j ACCEPTsudo iptables -A OUTPUT -o lo -j ACCEPT# 允许特定子网访问Web服务sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT# 允许已建立和相关的连接sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTsudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    四、防火墙配置的注意事项

    1.测试与备份

    在进行任何防火墙配置更改之前,尤其是在生产环境中,一定要进行充分的测试。可以在测试环境中模拟各种网络访问场景,确保新的规则不会影响正常的业务运行。同时,备份当前的防火墙配置,以便在出现问题时能够快速恢复。

    2.最小权限原则

    遵循最小权限原则配置防火墙规则。只允许必要的网络访问,避免开放过多的端口和服务,以降低系统的安全风险。

    3.定期审查

    随着系统的运行和业务需求的变化,防火墙规则也需要定期审查和更新。及时删除不再使用的规则,确保防火墙配置始终与实际需求相符。


    随着网络安全威胁的不断增加,合理配置防火墙规则已成为保护服务器系统安全的必要措施。通过使用ufw和iptables,系统管理员可以在Ubuntu环境下有效管理网络访问,限制潜在的风险。希望本文提供的防火墙配置方法和脚本示例能够为Shell脚本工程师和系统管理员提供实用的参考,帮助他们构建更加安全的服务器环境。


    蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。


    更多技术知识,蓝队云期待与你一起探索。




    提交成功!非常感谢您的反馈,我们会继续努力做到更好!

    这条文档是否有帮助解决问题?

    非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

    在文档使用中是否遇到以下问题: