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