首页主机资讯Linux中如何配置防火墙

Linux中如何配置防火墙

时间2025-12-11 20:14:04发布访客分类主机资讯浏览666
导读:Linux 防火墙配置实用指南 一、选择工具与准备 常见工具与适用场景 firewalld:RHEL/CentOS/Fedora 常用,基于 Netfilter/iptables 的前端,支持区域(Zone)、服务(Service)、富...

Linux 防火墙配置实用指南

一、选择工具与准备

  • 常见工具与适用场景
    • firewalld:RHEL/CentOS/Fedora 常用,基于 Netfilter/iptables 的前端,支持区域(Zone)服务(Service)富规则(Rich Rules),可动态更新而无需重启服务,适合服务器与多场景策略管理。
    • iptables:内核 netfilter 的命令行工具,灵活强大,适合需要精细控制与脚本化管理的场景。
    • ufw:Ubuntu 的简化前端,适合桌面与简单服务器环境。
  • 操作前准备
    • 使用 sudo 提权;先规划好要开放的端口/协议源 IP/网段网卡所属区域;变更前先备份规则;避免在生产环境直接设置过严的默认策略导致失联。

二、使用 firewalld 快速上手

  • 安装与启停
    • 安装(如未预装):Debian/Ubuntu 执行 sudo apt update & & sudo apt install firewalld;RHEL/CentOS 执行 sudo yum install firewalld
    • 启动与开机自启:sudo systemctl start firewalldsudo systemctl enable firewalld;查看状态:sudo systemctl status firewalldsudo firewall-cmd --state
  • 常用配置
    • 查看与切换区域:sudo firewall-cmd --get-default-zonesudo firewall-cmd --set-default-zone=public --permanent;绑定网卡到区域:sudo firewall-cmd --zone=public --change-interface=eth0 --permanent
    • 开放服务与端口(临时与永久)
      • 临时:sudo firewall-cmd --zone=public --add-service=httpsudo firewall-cmd --zone=public --add-port=8080/tcp
      • 永久:sudo firewall-cmd --zone=public --add-service=http --permanentsudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
      • 使永久规则生效:sudo firewall-cmd --reload
    • 源 IP/网段与端口的精细化控制(富规则)
      • 仅允许某 IP 访问某端口:sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=8080 protocol=tcp accept' --permanent
      • 允许某网段访问某端口:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="3306" accept'
    • 查看与验证:sudo firewall-cmd --list-allsudo firewall-cmd --list-portssudo firewall-cmd --list-servicessudo firewall-cmd --get-active-zones
    • 临时规则:sudo firewall-cmd --add-port=22/tcp --timeout=300(5 分钟)
    • 日志与排错:sudo firewall-cmd --set-log-denied=all,查看日志 journalctl -u firewalld -f

三、使用 iptables 直接配置

  • 基本操作
    • 查看规则:sudo iptables -L -n -v
    • 清空规则:sudo iptables -F;清空自定义链:sudo iptables -X;计数器归零:sudo iptables -Z
    • 默认策略:sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT
    • 允许回环:sudo iptables -A INPUT -i lo -j ACCEPT
    • 允许已建立连接:sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 常见规则示例
    • 开放端口:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    • 限制来源 IP:sudo iptables -A INPUT -s 203.0.113.10 -j ACCEPT
    • 丢弃某端口:sudo iptables -A INPUT -p tcp --dport 23 -j DROP
  • 持久化保存
    • Debian/Ubuntu:sudo iptables-save > /etc/iptables/rules.v4,或使用 netfilter-persistent 保存/恢复
    • RHEL/CentOS:sudo service iptables savesudo iptables-save > /etc/sysconfig/iptables
    • 恢复:sudo iptables-restore < /etc/iptables/rules.v4
  • 提示:规则顺序很重要,通常将更具体的 ACCEPT 规则放在前面,最后再设置默认 DROP

四、使用 ufw 简化配置(Ubuntu 常见)

  • 基本命令
    • 启用/禁用:sudo ufw enablesudo ufw disable
    • 允许/拒绝端口:sudo ufw allow 22sudo ufw deny 23
    • 允许来源 IP:sudo ufw allow from 203.0.113.0/24
    • 状态与规则查看:sudo ufw statussudo ufw status verbose
  • 适合快速开启 SSH/HTTP/HTTPS 等常见服务。

五、生产环境最佳实践与排错

  • 安全策略
    • 最小权限原则:仅开放必要端口与协议;按网络环境划分区域;定期审查开放端口与服务。
    • 开启拒绝日志:sudo firewall-cmd --set-log-denied=all,结合 journalctl -u firewalld 审计异常访问。
  • 高可用与自动化
    • 使用 Ansible 等批量下发一致的 firewalld 规则,降低人为差异与运维风险。
  • 故障排查
    • 规则不生效:确认是否执行了 --reload;检查规则顺序与是否匹配到更高优先级规则;核对网卡所属区域与端口/协议是否正确;用 nc -zv host portcurl 验证连通性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux中如何配置防火墙
本文地址: https://pptw.com/jishu/769731.html
Debian上TigerVNC的日志文件在哪里查看 ubuntu下cop launcher怎么安装

游客 回复需填写必要信息