零基础Linux入门教程:Linux 防火墙的使用与配置

打印 上一主题 下一主题

主题 829|帖子 829|积分 2487

零基础Linux入门教程:Linux 防火墙的使用与配置


  
   在 Linux 体系中,防火墙是保障服务器网络安全的重要工具,通过一系列规则控制数据包的流入、流出及转发举动。本文将从 CentOS 和 Ubuntu 两大主流 Linux 发行版出发,详细介绍它们的防火墙工具及使用方法。
  
一、防火墙基础概念

防火墙是操纵体系用于掩护网络安全的核心组件。它通过设置规则,允许或拒绝网络数据包的传输。Linux 防火墙基于 Netfilter 框架实现,并提供两类重要工具:

  • iptables:传统的下令行工具,适合高级用户。
  • 现代封装工具:如 firewalld 和 UFW,为用户提供更简单的下令接口。
无论工具种类怎样,防火墙的核心功能都是定义规则控制网络举动。

二、CentOS 防火墙详解

   CentOS 体系中,防火墙工具重要有两种:现代的 firewalld 和传统的 iptables。
  1. firewalld

firewalld 是 CentOS 默认的防火墙工具,它基于区域(zone)管理规则,可以动态修改防火墙配置,适合现代化的网络管理。
   核心概念
  

  • 区域(Zone):区域是 firewalld 的核心,用于管理网络接口的规则。不同区域有不同的安全级别,例如 public、dmz 等。
  • 服务(Service):服务是预定义的一组规则,用于快速开放常见服务(如 HTTP、SSH)。
  • 永世规则与运行时规则

    • 永世规则:需要加 --permanent 参数,只有在重新加载后生效。
    • 运行时规则:即时生效,但重启后失效。

  

  • 服务管理
    1. systemctl start firewalld        # 启动防火墙
    2. systemctl stop firewalld         # 停止防火墙
    3. systemctl restart firewalld      # 重启防火墙
    4. systemctl enable firewalld       # 开机自启
    5. systemctl status firewalld       # 查看防火墙状态
    复制代码
  • 开放端口

    • 永世开放端口(如 HTTP 80)
    1. firewall-cmd --permanent --add-port=80/tcp
    2. firewall-cmd --reload          # 重新加载规则
    复制代码
      

    • 临时开放端口
    1. firewall-cmd --add-port=80/tcp
    复制代码

  • 允许服务

    • 添加服务规则(如 SSH)
    1. firewall-cmd --permanent --add-service=ssh
    2. firewall-cmd --reload
    复制代码
      

    • 移除服务规则
    1. firewall-cmd --permanent --remove-service=ssh
    2. firewall-cmd --reload
    复制代码

  • 查看规则

    • 列出全部规则:
    1. firewall-cmd --list-all
    复制代码
      

    • 查看某区域的规则:
    1. firewall-cmd --zone=public --list-all
    复制代码

  • 管理区域

    • 查看全部可用区域:
    1. firewall-cmd --get-zones
    复制代码
      

    • 查看当前接口绑定的区域:
    1. firewall-cmd --get-active-zones
    复制代码
      

    • 将接口绑定到指定区域(如 public):
    1. firewall-cmd --zone=public --add-interface=eth0
    复制代码

  • 重置防火墙

    • 恢复默认规则:
    1. firewall-cmd --permanent --reload-default
    复制代码


2. iptables

iptables 是传统的防火墙工具,它直接操纵 Netfilter,规则灵活且强大。只管 firewalld 已成为主流,但某些高性能场景仍旧使用 iptables。
   核心概念
  

  • 表(Tables)

    • filter 表:默认表,用于包过滤。
    • nat 表:用于地点转换(如端口转发)。
    • mangle 表:用于修改数据包。

  • 链(Chains)

    • INPUT:处置惩罚进入本机的数据包。
    • OUTPUT:处置惩罚本机发送的数据包。
    • FORWARD:处置惩罚转发的数据包。

  • 规则(Rules):定义匹配条件和动作(如 ACCEPT、DROP)。
  

  • 服务管理
    1. systemctl start iptables          # 启动防火墙
    2. systemctl stop iptables           # 停止防火墙
    3. systemctl enable iptables         # 开机自启
    复制代码
  • 添加规则

    • 允许 HTTP 和 SSH 服务
    1. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    2. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    复制代码
      

    • 拒绝全部其他流量
    1. iptables -A INPUT -j DROP
    复制代码
      

    • 限定 SSH 毗连速率
    1. iptables -A INPUT -p tcp --dport 22 -m limit --limit 5/min -j ACCEPT
    复制代码

  • 查看规则

    • 显示全部规则:
    1. iptables -L -v -n
    复制代码
      

    • 查看某表(如 nat)规则:
    1. iptables -t nat -L -v -n
    复制代码

  • 删除规则

    • 删除指定规则(如 HTTP):
    1. iptables -D INPUT -p tcp --dport 80 -j ACCEPT
    复制代码
      

    • 清空全部规则:
    1. iptables -F
    复制代码

  • 保存和恢复规则

    • 保存规则到配置文件:
    1. service iptables save
    复制代码
      

    • 恢复规则:
    1. service iptables restart
    复制代码

  • 端口转发(NAT)

    • 将外部 8080 端口映射到内部 80 端口:
    1. iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
    复制代码
      

    • 启用 IP 转发:
    1. echo 1 > /proc/sys/net/ipv4/ip_forward
    复制代码

3. firewalld 和 iptables 的对比

功能firewalldiptables易用性更适合现代用户,下令简单配置复杂,适合高级用户动态配置支持动态修改,实时生效修改需手动重启规则区域管理支持基于区域的规则分组不支持区域概念灵活性灵活性中等,适合一样平常使用灵活性高,支持复杂场景性能对大规模规则场景稍有不足性能高,适合复杂场景
三、Ubuntu 防火墙

1. UFW(默认工具)

UFW(Uncomplicated Firewall)是 Ubuntu 的默认防火墙工具,它封装了 iptables,使配置防火墙更加简单直观。

  • 启用与禁用防火墙
  1. sudo ufw enable                  # 启用防火墙
  2. sudo ufw disable                 # 禁用防火墙
复制代码

  • 添加规则

    • 允许 HTTP 和 SSH 服务:
    1. sudo ufw allow 80
    2. sudo ufw allow 22
    复制代码
      

    • 克制 FTP 服务:
    1. sudo ufw deny 21
    复制代码

  • 查看规则
    1. sudo ufw status
    复制代码
  • 删除规则
    1. sudo ufw delete allow 22
    复制代码

2. iptables

在 Ubuntu 上,iptables 的使用与 CentOS 雷同。实用于需要复杂规则配置的场景。

  • 限定单个 IP 访问
  1. iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码

  • 设置限定特定端口的访问
  1. iptables -A INPUT -p tcp --dport 3306 -j DROP
复制代码

四、防火墙配置实践

以下是 CentOS 和 Ubuntu 上常见防护规则配置示例:

  • 允许 SSH、HTTP 服务

    • CentOS(firewalld)
    1. firewall-cmd --permanent --add-service=ssh
    2. firewall-cmd --permanent --add-service=http
    3. firewall-cmd --reload
    复制代码
      

    • Ubuntu(UFW)
    1. sudo ufw allow ssh
    2. sudo ufw allow http
    3. sudo ufw enable
    复制代码

  • 限定特定 IP 访问

    • iptables
    1. iptables -A INPUT -s 192.168.1.100 -j DROP
    复制代码

  • 开放自定义端口(如 MySQL 3306)

    • CentOS(firewalld)
    1. firewall-cmd --permanent --add-port=3306/tcp
    2. firewall-cmd --reload
    复制代码
      

    • Ubuntu(UFW)
    1. sudo ufw allow 3306
    复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表