我们使用的是 Ubuntu 12.04 x64 LTS VPS。使用的防火墙是 UFW。我已经设置了 Varnish + LEMP 设置。以及其他东西,包括从我们办公室到 VPS 数据中心的 Openswan IPSEC VPN。第二个内部 Ubuntu 盒将充当 MySQL 从属并通过 VPN 从 VPS 获取数据。
主设备的 ppp0 在从设备上被视为 10.1.2.1,它们进行 ping 操作等。
我已经完成了各种所需的任务,但是除非我发出这个相当明显的 IPTables 命令,否则我无法让客户端(从属)MySQL(也无法 telnet 10.1.2.1 3306)通过 VPN 访问主服务器:
iptables -A INPUT -s 10.1.2.0/24 -p tcp --dport 3306 -j ACCEPT
我愿意强制接受来自最后一个八位字节的输入。 有了这个规则,一切都会顺利进行!
但是我想将此命令转换为 UFW 语法,以便将所有内容保存在一个地方。
现在我承认我对 UFW 缺乏经验,我准备了以下规则:
ufw allow proto tcp from 10.1.2.0/24 port mysql
以及 2-3 种变体,包括指定 3306 而不是 mysql,指定目标 IP(MySQL 的 my.cnf 此刻配置为 0.0.0.0)和类似的,但我似乎无法以功能性的方式复制简单的 iptables 规则。
有人可以给我一个建议,不要抛弃 UFW 吗?
提前致谢。
答案1
命令
ufw allow proto tcp from 10.1.2.0/24 port mysql
将以下内容添加到 iptables
iptables -L ufw-user-input -vn
Chain ufw-user-input (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 10.1.2.0/24 0.0.0.0/0 tcp spt:3306
注意,spt
这表示数据包的源端口需要是 3306。您需要告诉 UFW 允许以端口 3306 为目标的数据包。
ufw allow proto tcp from 10.1.2.0/24 to any port mysql
添加如下规则
iptables -L ufw-user-input -vn
Chain ufw-user-input (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 10.1.2.0/24 0.0.0.0/0 tcp dpt:3306
这将允许从 10.1.2.0/24 发往端口 3306 的数据包。