首页主机资讯Linux虚拟机防火墙规则怎么配置

Linux虚拟机防火墙规则怎么配置

时间2025-12-18 10:01:04发布访客分类主机资讯浏览1413
导读:Linux 虚拟机防火墙规则配置指南 一、选择工具与准备 常见防火墙工具:iptables(底层、灵活)、firewalld(CentOS/RHEL 默认、基于区域与动态管理)、ufw(Ubuntu 常用、简洁)。先确认系统默认工具并避免...

Linux 虚拟机防火墙规则配置指南

一、选择工具与准备

  • 常见防火墙工具:iptables(底层、灵活)、firewalld(CentOS/RHEL 默认、基于区域与动态管理)、ufw(Ubuntu 常用、简洁)。先确认系统默认工具并避免同时启用多个冲突服务。
  • 查看与切换要点:
    • 查看 firewalld:sudo systemctl status firewalld;启动/开机自启:sudo systemctl start|enable firewalld
    • 查看 ufw:sudo ufw status;启用:sudo ufw enable
    • 查看 iptables:sudo iptables -L -v -n
    • 如改用 iptables,建议先停止并禁用 firewalld/ufw,避免规则互相覆盖。

二、通用安全基线规则(以 iptables 为例)

  • 设定默认策略(谨慎:先确保已放行 SSH,避免锁死):
    • sudo iptables -P INPUT DROP
    • sudo iptables -P FORWARD DROP
    • sudo iptables -P OUTPUT ACCEPT
  • 放行本地回环与已建立连接:
    • sudo iptables -A INPUT -i lo -j ACCEPT
    • sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  • 放行管理端口(示例为 SSH 22,远程操作务必先放行):
    • sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 放行业务端口(示例为 HTTP/HTTPS 80/443):
    • sudo iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT
  • 保存与持久化(不同发行版方式不同):
    • Debian/Ubuntu:sudo sh -c “iptables-save > /etc/iptables/rules.v4”
    • RHEL/CentOS(若仍使用 iptables 服务):sudo service iptables save
  • 说明:规则自上而下匹配,务必将“放行已建立连接”与“放行 SSH”置于靠前位置,避免误锁。

三、按发行版常用做法

  • firewalld(CentOS/RHEL 7+/Fedora)
    • 启用与开机自启:sudo systemctl start|enable firewalld
    • 设置默认区域:sudo firewall-cmd --set-default-zone=public
    • 放行端口/服务(永久生效):sudo firewall-cmd --zone=public --add-port=80/tcp --permanent;sudo firewall-cmd --zone=public --add-service=ssh --permanent
    • 使配置生效:sudo firewall-cmd --reload
    • 查看:sudo firewall-cmd --list-all
  • ufw(Ubuntu/Debian 常见)
    • 启用:sudo ufw enable;状态:sudo ufw status verbose
    • 放行端口/服务:sudo ufw allow 22/tcp;sudo ufw allow 80,443/tcp
    • 拒绝来源 IP:sudo ufw deny from 192.168.1.100
    • 重置:sudo ufw reset
  • 提示:firewalld 与 ufw 都支持按“区域/服务/端口”管理,修改后记得重载或确认状态。

四、虚拟机常见网络场景

  • 端口转发(DNAT,宿主机端口 → 虚拟机端口)
    • 例:将宿主机 8080 转发到虚拟机 80
    • sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination < 虚拟机IP> :80
    • 若经宿主机上网,需开启 MASQUERADE:sudo iptables -t nat -A POSTROUTING -j MASQUERADE
  • 仅允许内网网段访问 SSH(白名单)
    • sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
    • sudo iptables -A INPUT -p tcp --dport 22 -j DROP
  • 重要提示:在云/虚拟化环境中,还需确保云平台安全组或虚拟网络 ACL 同步放行对应端口,否则虚拟机内部放行仍无法从外部访问。

五、验证、日志与维护

  • 验证连通性
    • 本机:ss -tlnp | grep -E ‘(:22|:80|:443)’
    • 外部:nc -vz < 虚拟机IP> 22 / curl -I http://< 虚拟机IP>
  • 查看与审计
    • iptables:sudo iptables -L -v -n --line-number;日志:sudo tail -f /var/log/syslog | grep iptables
    • firewalld:sudo firewall-cmd --list-all;日志:sudo journalctl -f -u firewalld
    • ufw:sudo ufw status numbered;日志:sudo tail -f /var/log/ufw.log
  • 变更与回滚
    • 规则顺序影响结果,必要时用 -I 将关键规则插到前面;删除按编号:iptables -D INPUT
    • 定期备份与回滚脚本化,变更前先保存当前规则并在测试环境验证。

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


若转载请注明出处: Linux虚拟机防火墙规则怎么配置
本文地址: https://pptw.com/jishu/774829.html
如何在debian中进行挂载操作 Linux虚拟机如何进行时间同步

游客 回复需填写必要信息