服务器测评网
我们一直在努力

linux 修改防火墙

Linux防火墙是系统安全的第一道防线,合理配置防火墙规则能有效控制网络访问,提升系统安全性,主流Linux发行版多使用iptables或firewalld作为防火墙管理工具,本文将详细介绍两者的修改方法及常见操作。

Linux防火墙基础与工具概述

Linux防火墙通过内核的Netfilter框架实现,核心概念包括“表”(table)和“链”(chain),表是规则集合,如filter(过滤)、nat(地址转换)、mangle(数据包修改);链是规则应用点,如INPUT(入站)、OUTPUT(出站)、FORWARD(转发),传统工具iptables通过命令行直接操作规则,而firewalld(CentOS 7+、RHEL 7+默认支持)采用区域(zone)管理,动态更新规则,更适合动态网络环境。

firewalld操作指南

firewalld以区域为单位管理规则,默认区域为public,可通过firewall-cmd --get-active-zones查看当前区域。

基础管理

  • 启动/停止/启用开机自启:
    systemctl start firewalld    # 启动服务
    systemctl stop firewalld     # 停止服务
    systemctl enable firewalld   # 开机自启
  • 查看状态与规则:
    firewall-cmd --state                    # 查看服务状态
    firewall-cmd --list-all                 # 查看当前区域所有规则
    firewall-cmd --list-ports               # 查看已开放端口

端口与服务管理

  • 开放/关闭端口(需添加--permanent实现永久生效):
    firewall-cmd --add-port=80/tcp          # 临时开放80端口
    firewall-cmd --permanent --add-port=443/tcp # 永久开放443端口
    firewall-cmd --reload                   # 重新加载规则使永久生效
  • 开放/关闭服务(需提前定义服务,如http、ssh):
    firewall-cmd --add-service=http         # 开放http服务
    firewall-cmd --remove-service=ssh        # 关闭ssh服务

IP地址与端口范围控制

  • 允许/禁止特定IP访问:
    firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.1.100 accept"
  • 开放端口范围(如1000-2000):
    firewall-cmd --add-port=1000-2000/udp

iptables核心命令详解

iptables以“表-链”结构管理规则,操作前建议备份现有规则:iptables-save > /etc/iptables/rules.v4

基础语法

iptables -t 表名 -A 链名 -p 协议 --dport 端口 -j 动作
  • -t:指定表(默认filter);
  • -A/-D/-I:追加/删除/插入规则;
  • -p:协议(tcp/udp/icmp);
  • --dport:目标端口;
  • -j:动作(ACCEPT允许、DROP丢弃、REJECT拒绝并返回错误)。

常见操作

  • 开放SSH端口(22):
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 禁止特定IP访问:
    iptables -A INPUT -s 192.168.1.200 -j DROP
  • 允许局域网访问:
    iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
  • 设置默认策略(拒绝所有入站,仅允许已建立的连接):
    iptables -P INPUT DROP
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

规则保存与持久化

  • Debian/Ubuntu:iptables-save > /etc/iptables/rules.v4
  • CentOS/RHEL:service iptables save(需安装iptables-services包)

常见应用场景示例

  1. 搭建Web服务器:开放80(HTTP)、443(HTTPS)端口,限制仅允许特定IP管理:
    firewalld: firewall-cmd --permanent --add-service=http --add-service=https
    iptables: iptables -A INPUT -p tcp --dport 80 -j ACCEPT; iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  2. 端口转发(如将8080转发至80):
    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
  3. 日志记录(记录被拒绝的连接):
    iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: "

操作注意事项与最佳实践

  1. 操作前备份:避免误操作导致无法远程连接,建议通过控制台操作或预留SSH管理端口。
  2. 规则优先级:iptables按顺序匹配规则,-I插入的规则优先级高于-A追加的规则。
  3. firewalld动态更新:临时规则无需重载,永久规则需执行--reload;iptables修改后需手动保存。
  4. 最小权限原则:仅开放必要的端口和服务,默认拒绝所有未明确允许的访问。

通过合理配置防火墙规则,可有效平衡系统安全性与可用性,管理员需根据实际业务场景灵活选择工具与策略,定期审查规则日志,及时调整安全策略。

赞(0)
未经允许不得转载:好主机测评网 » linux 修改防火墙