使用 ufw 允许与特定 IP 的传出连接

使用 ufw 允许与特定 IP 的传出连接

我已经禁用了 UFW 的所有传出连接,因为我不想冒险让我的 vBulletin 论坛将我的服务器的 IP 地址暴露给攻击者(我使用 CloudFlare)。

当我这样做时,我注意到我无法查询通过代码内部调用的一个特定 IP 地址。现在我的问题是,我怎样才能只允许这个特定的 IP(比如说 255.255.255.255)地址进行传出连接?

谢谢!

答案1

我使用以下命令成功允许传出流量到特定端口上的特定 IP:

ufw allow out from any to <the.target.ip> port <port_number>

答案2

sudo ufw allow out to <ip_adress> port <number of port>
sudo ufw allow out to 192.168.x.x port 22
sudo ufw reload

仅允许该 IP 发出 ssh

答案3

非常简单的解决方法!如果有人想知道如何解决此问题,可以参考以下方法:

1)打开并在最后一行/etc/ufw/before.rules插入此规则COMMIT

-A ufw-before-output -m owner --uid-owner {user} -p {protocol} --dport {port} -d {ip} -j ACCEPT

按如下方式填写每个值:

{user}- 您想要允许此操作的用户 (www-data)

{protocol}- udp 或 tcp

{port}- 你想允许它在哪个端口上

{ip}- 您想要允许的 IP 地址。

一个例子:

# server
-A ufw-before-output -m owner --uid-owner www-data -p udp --dport 6666 -d 255.255.255.255 -j ACCEPT # gameserver
-A ufw-before-output -m owner --uid-owner www-data -p tcp --dport 3306 -d 255.255.255.255 -j ACCEPT # mysql

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

2)重启 ufwservice ufw restart

之后一切都应该正常工作!确保不要将两个端口放在一个端口中,例如“-dport 6666,5555” - 这通常会导致错误!

相关内容