linux墙的正确配置方法有哪些,怎么设置

Linux防火墙是保障服务器安全的核心工具,掌握iptables和nftables的配置方法,能有效抵御多数网络攻击。

Linux防火墙怎么设置?

防火墙的配置并不复杂,关键在于理解规则的方向和顺序,下面从检查状态到添加规则,一步步带你上手。

3分钟快速学会防火墙的配置详细步骤
加载中
3分钟快速学会防火墙的配置详细步骤

检查当前防火墙状态

  • 对于firewalld:systemctl status firewalld,如果显示active (running),说明防火墙正在运行。
  • 对于iptables:iptables -L -n -v,列出所有规则,看是否有明确拒绝或允许。
  • 对于nftables:nft list ruleset,输出当前所有规则集。
  • 对于ufw(Ubuntu):ufw status

如果系统没有安装防火墙,建议先安装一个,CentOS 7默认安装firewalld,Ubuntu 20.04默认安装ufw,但底层仍是iptables/nftables。

使用iptables配置基础规则

iptables操作直观,但需要记住命令格式,以下是一个典型的入站规则链:

  • 允许SSH(22端口):iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 允许已建立连接和关联连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 允许回环接口:iptables -A INPUT -i lo -j ACCEPT
  • 设置默认策略为拒绝:iptables -P INPUT DROP
  • 保存规则:iptables-save > /etc/sysconfig/iptables(CentOS)或iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)

注意:设置默认DROP前,务必确保已经放行了SSH,否则你会失去连接。

使用firewalld简化配置

firewalld提供了区域和服务的概念,让配置更语义化。

  • 启动firewalld:systemctl start firewalld
  • 设置开机自启:systemctl enable firewalld
  • 查看当前区域:firewall-cmd --get-default-zone
  • 允许HTTP服务:firewall-cmd --permanent --add-service=http
  • 允许自定义端口:firewall-cmd --permanent --add-port=3000/tcp
  • 重新加载使生效:firewall-cmd --reload
  • 查看所有规则:firewall-cmd --list-all

firewalld的优势在于动态更新,不用重启服务,而且它支持rich rule,可以匹配更复杂的条件。

使用nftables配置规则

nftables是新一代防火墙,在RHEL 8/9、Ubuntu 22.04+等系统中成为默认。

  • 安装nftables:yum install nftablesapt install nftables
  • 启动:systemctl start nftables
  • 编写配置文件,/etc/nftables.conf
    table inet filter {
        chain input {
     

    linux墙的正确配置方法有哪些,怎么设置

    type filter hook input priority 0; policy drop; iif lo accept ct state established,related accept tcp dport {22,80,443} accept } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; } }
  • 加载配置:nft -f /etc/nftables.conf
  • 查看规则:nft list ruleset

nftables的语法更简洁,支持集合和映射,在大规模规则集下性能更好。

使用ufw(Ubuntu专有工具)

对于Ubuntu Desktop或Server,ufw是入门最快的方式。

  • 启用ufw:ufw enable
  • 允许SSH:ufw allow ssh
  • 允许HTTP/HTTPS:ufw allow 80/tcpufw allow 443/tcp
  • 允许特定IP:ufw allow from 192.168.1.0/24 to any port 22
  • 查看状态:ufw status numbered

ufw实际上生成的是iptables规则,但隐藏了复杂性,适合简单场景。

iptables和nftables哪个好?

对于刚接触Linux防火墙的用户,常会问这个问题,下面从四个维度对比,并给出选型建议。

对比项 iptables nftables
语法风格 命令行参数,链式处理 类C语言规则集,支持变量和集合
性能表现 线性检查,规则多时效率下降 使用哈希表,多数场景性能更优
学习曲线 命令多,但资料丰富,社区经验多 概念新,但语法一致,上手后更清晰
生态系统 老版本系统默认,兼容性好 新系统默认,红帽和Ubuntu均已转向
更新频率 维护模式,功能基本冻结 活跃开发,支持IPset、状态跟踪等新特性

具体案例对比:允许来自192.168.1.0/24的SSH访问。

  • iptables:iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
  • nftables:在规则文件中添加 ip saddr 192.168.1.0/24 tcp dport 22 accept

nftables的语法更紧凑,并且可以将多个IP地址放入一个集合,简化规则。

选型建议:

  • 如果你使用CentOS 7或更早版本,系统内嵌iptables,直接学习iptables即可,无需额外安装。
  • 如果你使用CentOS 8、RHEL 8、Ubuntu 22.04等新系统,默认使用nftables,但系统也提供了iptables兼容层。行业共识认为,新项目推荐直接使用nftables,因为它更快、更现代。
  • linux墙的正确配置方法有哪些,怎么设置

  • 如果你不想深入底层,firewalld可以同时管理iptables和nftables规则,你只需要通过firewalld接口操作,由它选择底层工具。

不同场景下的防火墙配置方案

防火墙的配置不能一概而论,需要根据服务器所处的环境调整策略。

云服务器防火墙配置场景(简米云/酷番云)

云服务器通常会提供安全组,这是第一层防护,操作系统防火墙是第二层,两者配合时,需要注意以下要点:

  • 操作系统防火墙的规则不能与安全组矛盾,安全组放行了80端口,但操作系统防火墙默认拒绝,则流量仍会被阻断。
  • 建议操作系统防火墙只放行必要端口,并且针对来源IP做限制,SSH只允许公司IP段访问。
  • 配置示例(firewalld):
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="22" accept'
    firewall-cmd --reload
  • 对于云服务器,经常需要配置端口转发(如负载均衡器后端),此时防火墙规则要配合DNAT规则。

家庭服务器或NAS

家庭网络环境较为复杂,路由器通常已有NAT,但操作系统防火墙仍可提供额外保护。

  • 开启防火墙,信任内网段:firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24
  • 对外网只开放有限端口,如Plex、BT下载端口。
  • 限制ping包:iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • 对于NAS,通常需要开放SMB(445)和AFP(548)端口,建议只允许内网访问。

企业内网隔离

企业环境中,Linux服务器常作为网关或内部服务节点,防火墙配置需要更精细。

  • 使用iptables的FORWARD链控制不同子网间的互访。
  • 配置NAT转发实现上网:iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
  • 使用防火墙限制敏感服务(如数据库)只能从特定应用服务器访问。
  • 对于公司内部DNS、DHCP等服务,需要确保防火墙允许相关协议。

开发与测试环境

开发人员经常需要频繁修改端口和规则,建议使用firewalld的运行时配置(不添加–permanent),方便测试。

  • 临时放行端口:firewall-cmd --add-port=3000/tcp
  • 测试完成后可用--remove-port移除,无需重启服务。
  • 也可以在开发机上使用ufw,简化配置流程。

国内Linux服务器防火墙推荐

国内网络环境有自身特点,比如部分运营商屏蔽了常见端口,云服务器厂商会提供安全组服务,下面针对国内Linux服务器给出推荐和配置要点。

linux墙的正确配置方法有哪些,怎么设置

防火墙工具推荐:firewalld依然是首选,因为它在各类国产Linux发行版(如麒麟、统信)上都能良好运行,如果你需要更细粒度的控制,配合nftables使用。

国内云服务器注意事项

  • 简米云、酷番云等云厂商,安全组规则已经实现了类似防火墙的功能,但操作系统防火墙仍然需要配置,用于防止内部横向攻击。
  • 由于国内带宽成本较高,防火墙规则中应尽量避免不必要的日志记录,以免产生额外费用。
  • 对于国内Linux系统防火墙的推荐,多数运维人员会选择firewalld + iptables的组合,因为文档和社区支持最好。
  • 如果使用国产操作系统,如麒麟V10,其内置的防火墙工具兼容firewalld,可以直接使用同一套配置,降低了迁移成本。

地域性配置技巧

  • 如果你的服务器位于国内,且需要对外提供服务,建议使用非标准端口绕过运营商限制(如80端口被封锁时改用8080)。
  • 使用防火墙做端口转发:firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80
  • 对于海外服务器,运营商限制较少,但仍需注意防火墙规则要配合安全组。

据工信部相关数据,国内超过半数的企业级Linux服务器已启用防火墙,但在个人用户中比例仍较低。业内专家指出,即使有安全组,操作系统防火墙也不应省略,它提供了最后一道防线。

在价格方面,所有Linux防火墙工具均为开源免费,无需额外授权费用,这是相比商业防火墙的一大优势,对于预算有限的中小企业,Linux防火墙免费方案足够满足日常需求。

防火墙配置不是一次性的工作,需要定期审查规则,删除过期条目,将防火墙配置纳入自动化部署流程,可以避免人为漏配。安全无小事,从配置好第一道防火墙开始。

Linux防火墙常见问题与解答

Q:Linux防火墙会影响服务器性能吗?
A:在规则数量不多时,影响可以忽略,若规则数量达到数千条,建议使用nftables或启用IPset,可以显著提升匹配效率。

Q:如何临时关闭防火墙?
A:使用systemctl stop firewalld可立即关闭,但重启后恢复,需永久关闭用systemctl disable firewalld,注意,关闭防火墙会使服务器面临风险,仅建议在排错时临时使用。

Q:iptables和nftables配置可以共存吗?
A:理论上可以,但可能产生冲突,因为内核中的netfilter只能有一套规则生效,现代系统建议只使用一套工具,通过firewalld统一管理是最稳妥的方式。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/511913.html

(0)
ASPM Linux是什么意思?,怎么设置?
上一篇 2026年7月22日 14:15
cdn上线报错怎么办?cdn上线配置教程
下一篇 2026年6月23日 10:35

相关推荐

  • Linux下用什么Lua IDE好?linux配置lua开发环境

    在 Linux 环境下开发 Lua,选择 IDE 或编辑器主要取决于你的具体需求:是偏向轻量级快速编写,还是重型项目调试,亦或是游戏开发集成,以下是目前 Linux 上最主流且推荐的 Lua 开发工具,按推荐程度分类:Visual Studio Code (VS Code) —— 首选推荐对于大多数 Linux……

    2026年7月12日
    16900
  • linux ffmpeg库怎么用?ffmpeg库安装与基础用法详解

    在Linux环境下,FFmpeg库是处理音视频转码、流媒体推流及格式转换的绝对核心工具,掌握其命令行操作与C/C++ API调用,能高效解决90%以上的多媒体开发需求,为什么FFmpeg是Linux多媒体开发的基石在Linux服务器或嵌入式设备中,音视频处理往往占据大量系统资源,FFmpeg之所以成为行业标准……

    2026年7月10日
    5900
  • linux如何彻底卸载搜狗输入法?linux卸载软件命令

    在Linux系统中彻底卸载搜狗输入法,最稳妥的方式是删除其安装目录并清理相关配置文件,通常涉及移除 /usr/share/sogoupinyin 或 /opt/sogoupinyin 文件夹,同时清理用户目录下的 .config/sogoupinyin 配置项,若使用deb包安装还需执行 sudo apt re……

    2026年7月7日
    15000
  • linux -ivh是什么意思,怎么用?

    rpm -ivh 是 Linux 系统使用 RPM 包管理器安装软件包的标准命令,-i 表示安装,-v 输出详细信息,-h 显示进度条,是 CentOS、RHEL 等发行版中最基础的软件安装操作,也是离线安装和故障排查的核心工具,在 Linux 运维工作中,安装软件包是最常见的操作之一,虽然 yum 和 dnf……

    2026年7月21日
    000
  • linux ls d命令怎么用?linux ls d参数详解

    在 Linux 中,ls -d 是一个非常有用的组合,它的主要作用是只列出目录本身,而不列出目录中的内容,基本用法ls -d <目录名>为什么需要 -d?默认情况下,ls 命令会列出指定目录下的文件和子目录,如果你只想查看目录本身的属性(如权限、所有者、大小等),而不想看到里面的内容,就需要使用……

    2026年7月10日
    9500
  • Linux如何配置VIP,Keepalived高可用集群怎么搭建?

    Linux 配置 VIP (Virtual IP) 指南VIP (Virtual IP) 是一种不绑定在特定物理网卡上的 IP 地址,通常用于实现高可用性 (High Availability) 和 负载均衡,当主服务器发生故障时,VIP 可以快速漂移到备用服务器,确保服务不中断,配置方法一:手动临时配置 (快……

    2026年7月14日
    300
  • linux respawn是什么?,怎么用?

    Linux respawn的核心答案是:在Linux系统中,respawn机制通过监控进程状态并在其异常退出后自动重新拉起,确保服务持续运行,最常用的实现是systemd的Restart=配置和supervisor的进程管理,什么是Linux Respawn?原理与常见误区从init到systemd的演变在Sy……

    2026年7月22日
    000
  • linux httpd yum安装失败怎么办?linux httpd yum安装教程

    在基于RHEL系的Linux发行版中,通过yum安装Apache HTTP Server的标准命令是yum install httpd,随后需执行systemctl start httpd启动服务并配置防火墙放行80端口,即可快速搭建Web环境,很多刚接触Linux运维的朋友,面对终端黑底白字的界面时,往往对……

    2026年7月8日
    12800
  • Linux如何进行压缩分割,linux如何压缩大文件并分割?

    Linux 文件压缩与分割指南在 Linux 系统中,处理超大文件或文件夹时,经常需要将其压缩以节省空间,并分割成多个小文件以便于通过邮件、网盘或其他限制文件大小的渠道进行传输,常用工具介绍tar: 用于将多个文件打包成一个文件(归档),gzip/bzip2/xz: 用于对文件进行压缩,split: 用于将一个……

    2026年7月13日
    6200
  • linux systemctl是什么,怎么用?

    systemctl 是 Linux 系统下 systemd 服务管理器的核心命令,用于管理服务的启动、停止、重启、状态查看及开机自启,是系统管理员必备工具,它统一了服务生命周期管理,替代了旧版 SysV init 的 service 和 chkconfig 命令,绝大多数现代 Linux 发行版(如 CentO……

    2026年7月22日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注