Ubuntu KVM 主机上的防火墙配置

Ubuntu KVM 主机上的防火墙配置

我有一台安装了 KVM 虚拟化的 Ubuntu 9.10 服务器(我将其称为 HOST)。它运行着三台虚拟机,一台安装了 Apache(称为 APACHE),一台安装了 Mysql(称为 MYSQL),一台在端口 8080 上运行着 Jetty(JETTY)。主机配置了一个桥接器以提供对虚拟机的访问。

我想在主机上运行防火墙,但不在每个虚拟机上运行防火墙。防火墙应该阻止主机和虚拟机上所有不必要的端口。下面是我想要配置它的具体方式:

  • 主机只能通过其网络块内的 SSH 进行连接。
  • HOST 不应打开除 SSH 之外的任何其他端口。
  • APAHCE,MYSQL 应该能够从任何地方通过 SSH 连接。
  • MYSQL 应该只能从网络块内通过端口 3306 连接。
  • JETTY 应该能够通过端口 8080 进行连接(它以用户身份运行,因此无法在 80 上运行),但是到端口 80 的流量也应该在防火墙中转发到 8080,这样它就可以显示为常规 http 服务器。

我最近刚换到 Ubuntu,所以不确定最好的防火墙工具是什么。我以前在 CentOS 上尝试过 iptables,但 iptables 没有在我的主机系统上运行。我看到有人提到 UWF 是 ubuntu 的防火墙工具?看起来 UWF 已安装,但未激活。

关于如何开始,有什么建议吗?我应该编辑哪些文件?有没有我还没找到的关于如何做这件事的好方法?

答案1

我认为 UFW 只是 iptables 的一个前端。无论如何,你可以使用它的图形界面前端

但我强烈建议你学习一下iptables。Unbuntu官方文档:https://help.ubuntu.com/community/IptablesHowTo

答案2

就您所描述的情况而言,我认为您不需要设置防火墙(即数据包过滤器)。只需确保所有不需要的服务都已禁用或仅侦听 localhost/127.0.0.1,并且必要的服务(SSH、MySQL 的 TCP 套接字)仅侦听特定接口或子网。

对于 SSH,这ListenAddress/etc/ssh/sshd_configbind-address对于MySQL 来说/etc/mysql/my.cnf。在 Linux 系统上,也可以使用/etc/hosts.allow/etc/hosts.deny以增加安全性。

不要依赖数据包过滤器来提供您所需的所有安全性。更重要的是,您要确切知道哪些服务正在运行以及它们在监听什么。您不能只是在设置不当且安全性不佳的主机前安装防火墙,然后希望一切就绪。这是非常糟糕的做法。

答案3

听起来很完美岸墙.shorewall 是一个基于区域的 iptables/netfilter 防火墙工具,设置起来非常容易

答案4

这就是您要找的东西……

http://programs.rcrnet.net/ubuntu-kvm.html

相关内容