Ubuntu KVM主机上的防火墙configuration

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

我想在主机上运行防火墙,但不在每个虚拟机上运行。 防火墙应阻止主机和虚拟机上不必要的所有端口。 具体如何configuration它:

  • 主机应该只能通过SSH连接到它的networking块。
  • HOST不应该有任何其他的端口比SSH打开。
  • APAHCE,MYSQL应该可以通过SSH连接到任何地方。
  • MYSQL应该只能通过netblock内的端口3306连接。
  • JETTY应该可以通过端口8080连接(它以用户身份运行,所以不能在80上运行),但是到端口80的stream量也应该在防火墙中转发到8080,所以它可以显示为定期的http服务器。

我刚刚切换到Ubuntu,所以我不知道最好的防火墙工具是什么。 我曾经在CentOS上使用过iptables,但是iptables并没有在我的主机系统上运行。 我已经看到UWF作为Ubuntu的防火墙工具的参考? 它看起来像UWF安装,但不活跃。

任何build议如何让这个去? 我应该编辑哪些文件? 有没有什么好的HOWTO这样做,我只是没有find?

我认为UFW只是一个iptables的前台。 无论如何,你可以玩它的graphics前端 。

但是我强烈build议你学习iptables。 Ubuntu的官方文档: https ://help.ubuntu.com/community/IptablesHowTo

对于你所描述的我不认为你需要一个防火墙(即数据包filter)设置。 只要确保所有不需要的服务都被禁用或仅在localhost / 127.0.0.1上侦听,并且必要的服务(SSH,MySQL的TCP套接字)只在特定的接口或子网上侦听。

对于SSH,这是/ etc / ssh / sshd_config中ListenAddress指令,对于MySQL,它是/etc/mysql/my.cnf中的 bind-address 。 在Linux系统上,还可以使用/etc/hosts.allow/etc/hosts.deny来增加安全性。

不要依赖数据包筛选器来提供所有您需要的安全性。 更重要的是,您确切知道哪些服务正在运行以及他们在哪里收听。 你不能只在一个糟糕的设置和安全主机面前打一个防火墙,希望能够做到这一点。 这是非常糟糕的做法。

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