Я полностью отключил исходящие соединения с помощью UFW, видя, что я не хочу рисковать, когда мой форум vBulletin раскрывает IP-адрес моего сервера злоумышленникам (Я использую CloudFlare).
Когда я это сделал, я заметил, что не могу запросить один конкретный IP-адрес, который вызывается изнутри через код. Теперь мой вопрос: как я могу разрешить только этот конкретный IP-адрес (скажем, 255.255.255.255) для исходящих подключений?
Спасибо!
Я успешно разрешил исходящий трафик на определенный IP-адрес на определенном порту с помощью следующей команды:
ufw allow out from any to <the.target.ip> port <port_number>
Очень простое исправление! Всем, кто задается вопросом, как это можно сделать:
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) Перезагрузите ufw service ufw restart
Должно все правильно работать после! Убедитесь, что вы не помещаете два порта в один, например "-dport 6666,5555" - обычно это ошибка!