V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
webjin1
V2EX  ›  问与答

咨询一个 kvm 部署的防火墙规则问题

  •  
  •   webjin1 · 2017-02-27 16:03:38 +08:00 · 1727 次点击
    这是一个创建于 2827 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用 iptables 清空了防火墙默认表里面的规则,并且保存了。
    但是只要开启之前的那些默认规则又还原出现了配置的 NAT 表规则不会清空,排查了很久是 libvirtd 服务引起的 然后我又 iptables -F ,只要重启 libvirtd 服务那些默认规则又出现了。
    于是我写开机脚本清空默认规则,重启还是复现。
    主要是呀的 FORWARD 链第 2,3 条规则阻碍我的 NAT 网络的虚拟。
    谷歌了一些只找到了这个相关 https://libvirt.org/firewall.html
    但是他没说永久怎么去掉那些规则。
    http://wx1.sinaimg.cn/large/6118163egy1fd53745yr8j20ov07p74r.jpg
    pekingzcc
        1
    pekingzcc  
       2017-02-27 17:05:05 +08:00   ❤️ 1
    libvirt 支持网络虚拟化功能 ,这些功能的实现就是基于 iptables 来做的,所以不管你有没有写开机脚本清空 iptables 规则,只要重启 libvirt ,就会增加这些规则。
    比较纳闷为什么 实现 NAT 网络会跟 FORWARD 链第 2,3 条规则 冲突呢,我看第 2,3 条规则就是跟 libvirt 创建的 virbr0 网桥相关啊?楼主是用 virbr0 这个网桥实现 nat 吗?
    webjin1
        2
    webjin1  
    OP
       2017-02-27 17:31:56 +08:00
    @pekingzcc 是的,实现 nat ,无法帮我转发数据包出去,去掉这 2 条规则,我内网的虚拟机就可以与外界通信。 那你知道怎么去修改那些默认的配置吗?或者清空他。
    pekingzcc
        3
    pekingzcc  
       2017-02-27 21:50:35 +08:00
    我不知道怎么去修改这些默认的配置,但是可以提供给你一些思路:

    1 ,你用 libvirt 创建的虚拟机如果没有特殊配置的话网络类型默认应该就是 nat ,这种情况,如果配置正确的话,虚拟机可以联通外界,但是外界无法主动联通你的虚拟机。
    2 ,我猜测楼主如果是想实现外界直接联通虚拟机的功能。这种情况的话我暂时想到两种方法:一种是网络模式使用 bridge 模式,另一种方法是进行端口映射,将虚拟机的数据映射到宿主机的端口,但还是建议使用第一种方式,相对简单点。
    webjin1
        4
    webjin1  
    OP
       2017-02-28 09:04:40 +08:00
    @pekingzcc 不是桥接配置公网 IP ,而是 NAT ,我 NAT 的规则做好了。 FORWARD 链第 2,3 条规则阻碍 NAT 下的虚拟机无法 ping 通外面。好像 icmp-port-unreachable 这个只是 ping 协议的过滤。我等下再看看可以上网浏览网页吗?
    webjin1
        5
    webjin1  
    OP
       2017-02-28 13:38:29 +08:00
    @pekingzcc 我找到开机启动不让他还原的解决方案了。、
    编辑文件 /etc/rc.local
    sleep 1m ###重点在这里
    iptables -F
    iptables -X
    iptables -t mangle -F
    iptables -t raw -F
    iptables -t nat -F
    iptables -t nat -X
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o br0 -j MASQUERADE
    iptables -t nat -A PREROUTING -p tcp --dport 52003 -j DNAT --to-destination 192.168.0.3:22
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2684 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.