我已经禁用了 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” - 这通常会导致错误!