Рейтинг:1

UFW: разрешить приложение/профиль только с определенного IP-адреса

флаг cn

Я хочу ограничить внешний доступ к e. г. Dovecot для определенных исходных IP-адресов. Разрешение профиля приложения прекрасно работает, но источник подключения никогда не ограничивается («Откуда: откуда угодно»):

$ статус sudo ufw

К действию от
-- ------ ----
OpenSSH РАЗРЕШИТЬ ВСЕГДА                  
Полное разрешение Nginx в любом месте                  
Postfix РАЗРЕШИТЬ ВСЕГДА                  
Dovecot IMAP РАЗРЕШИТЬ ВСЕГДА      

Но как я могу ограничить IMAP Dovecot определенным исходным IP-адресом?

Я пытался:

$ sudo ufw разрешить «Dovecot IMAP» из 1.1.1.1
ОШИБКА: неправильное количество аргументов

Так что это, кажется, не работает...

Прошу Ubuntu 20.04 LTS, ufw 0.36

Рейтинг:1
флаг cn

Краткий ответ:

sudo ufw разрешить от <IP-адрес>/<маска подсети> любому приложению <имя профиля>

В вашем случае не забудьте процитировать «Dovecot IMAP».

Длинный ответ:

Я пробовал: $ sudo ufw разрешить «Dovecot IMAP» от 1.1.1.1

Хотя это была бы самая интуитивно понятная команда, синтаксис немного сложнее.

я не знаю что Голубевка IMAP есть, поэтому я возьму OpenVPN в качестве примера.


Мы хотим разрешить профиль приложения через ufw Только если он исходит из определенного IP/подсети.

Считайте, что у нас есть следующее профиль приложения ufw в /etc/ufw/applications.d/ с именем опенвпн (здесь важно имя файла профиля):

[ОпенВПН]
title=OpenVPN-сервер
description=Это правило разрешает подключения к VPN-серверу <servername>.
порты=8880/udp

ПРИМЕЧАНИЕ: Здесь мы используем настроенный порт для OpenVPN.

Теперь добавьте правило в ufw с помощью:

 sudo ufw разрешить от 10.0.0.0/24 до любого приложения openvpn

Это будет открыть порт указано в /etc/ufw/applications.d/openvpn для входящих соединения из 10.0.0.0/24.

И проверьте:

подробный статус sudo ufw

Если это сработало, вы должны получить вывод, например:

Статус: активен
Ведение журнала: включено (низкий уровень)
По умолчанию: запрещать (входящие), разрешать (исходящие), разрешать (маршрутизируемые)
Новые профили: пропустить

К действию от
-- ------ ----
8880/udp (OpenVPN) РАЗРЕШИТЬ ВХОД 10.0.0.0/24

Будьте осторожны с именем файла профиля и именем службы.

sudo ufw разрешить от 10.0.0.0/24 proto udp до любого порта openvpn

Это очень похожий синтаксис, тоже правильный. Но это относится к конфигурации порта службы в /etc/services , которая может быть не той, которую вы хотите разрешить (например, мы изменили порт OpenVPN на 8880). В этом случае у нас все еще есть в /etc/services следующее:

опенвпн 1194/ткп
опенвпн 1194/удп

Ufw признает опенвпн как служба, если мы не говорим что-то еще.

любой порт openvpn (<- сервис)

любое приложение openvpn (<- профиль приложения)

Итак, выдача sudo ufw разрешить от 10.0.0.0/24 proto udp до любого порта openvpn приводит к:

Статус: активен
Ведение журнала: включено (низкий уровень)
По умолчанию: запрещать (входящие), разрешать (исходящие), разрешать (маршрутизируемые)
Новые профили: пропустить

К действию от
-- ------ ----
1194/udp РАЗРЕШИТЬ ВХОД 10.0.0.0/24

Сюда мы эффективно открыли порт для OpenVPN, но не тот порт, который мы указали в нашем профиле приложения /etc/ufw/applications.d/openvpn.

Никогда не пробовал, но должно работать, если вы измените порт в /etc/services (рискуя сломать что-то еще).

Ты можешь проверить эта справочная страница Ubuntu для получения подробной информации о команде ufw.

Надеюсь, это поможет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.