Могу ли я открыть порт на одном интерфейсе (tun0) только при использовании профиля ufw

Итак, я знаю, что я могу сделать ufw allow from tun0 to tun0 port 36892, но возможно ли сделать что-то подобное при использовании профиля ufw для нескольких портов, таких как ports=tun0;36892|tun0;23976|tun0;19827?

В этом случае предположим, что tun0 - 10.8 .0.1

1
задан 3 June 2017 в 18:10

3 ответа

Общий ответ

Я боюсь, что добавление сетевого интерфейса в профиль приложения невозможно, потому что в разделе «Интеграция приложений» на странице руководства UFW для синтаксиса написано:

Синтаксис для профилей приложений - это простой формат .INI:
[<name>]
title=<title>
description=<description>
ports=<ports>

И нет префиксов директивы интерфейса.

Создать правила вручную

В соответствии с вопросом Существует два подхода к одновременному разрешению TCP и UDP:

Добавить правила для каждого порта отдельно:
sudo ufw allow in on tun0 to any port 36892
sudo ufw allow in on tun0 to any port 23976
sudo ufw allow in on tun0 to any port 19827
Добавить правила для каждого протокола отдельно:
sudo ufw allow in on tun0 to any port 36892,23976,19827 proto tcp
sudo ufw allow in on tun0 to any port 36892,23976,19827 proto udp

To разрешить доступ только с определенного адреса, добавить from 10.8.0.xxx в объявление - например:

sudo ufw allow in on tun0 from 10.8.0.110 to any port 36892,23976,19827 proto tcp
Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Создать профиль приложения и создать на нем правила

Давайте создадим новый файл профиля, называемый custom.ufw.profile, расположенный в /etc/ufw/applications.d/. Содержимое этого файла может выглядеть так:

[CustomApp 1 Full]
title=The first Custom Application
description=Custom Application Description
ports=36892|23976|19827

[CustomApp 1 TCP]
title=The first Custom Application - TPC only
description=Custom Application Description
ports=36892,23976,19827/tcp

[CustomApp 1 UDP]
title=The first Custom Application - UDP only
description=Custom Application Description
ports=36892,23976,19827/udp
Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Теперь мы можем создать новое правило, основанное на этом профиле:

sudo ufw allow in on tun0 to any app "CustomApp 1 Full"
Проверьте правильность правильности:
$ sudo ufw status numbered | grep CustomApp
[10] CustomApp 1 Full on tun0       ALLOW IN    Anywhere
[20] CustomApp 1 Full (v6) on tun0  ALLOW IN    Anywhere (v6)

Создайте собственную команду для автоматизации процесса включения / отключения правил

Если мы намерены иметь возможность быстрого включения или отключения нескольких правил UFW, мы можем создать для этой цели пользовательскую команду. Мы можем использовать функцию, которая может выглядеть примерно так:

function ufw-custom {
        if ! ufw_loc="$(type -p "ufw")" || [ -z "$ufw_loc" ]; then
                printf "\nUFW is not installed yet.\n\n"
        elif [ "$1" = "enable" ]; then
                sudo ufw allow in on tun0 to any port 36892
                sudo ufw allow in on tun0 to any port 23976
                sudo ufw allow in on tun0 to any port 19827
                echo ""
                sudo ufw reload
                echo ""
                sudo ufw status numbered
        elif [ "$1" = "disable" ]; then
                sudo ufw delete allow in on tun0 to any port 36892
                sudo ufw delete allow in on tun0 to any port 23976
                sudo ufw delete allow in on tun0 to any port 19827
                echo ""
                sudo ufw reload
                echo ""
                sudo ufw status numbered
        else
                echo ""
                sudo ufw status numbered
                printf "Use 'ufw-custom enable' or 'ufw-custom disable'.\n\n"
        fi
}
export -f ufw-custom

Поместите эти строки в конец файла ~/.bashrc, а затем source ~/.bashrc. Теперь у нас есть пользовательская команда под названием ufw-custom, которая может обрабатывать enable или disable в качестве аргументов. Например, чтобы включить правила, используйте:

ufw-custom enable
3
ответ дан 22 May 2018 в 21:56
  • 1
    Вопрос состоял в том, можно ли это сделать в пользовательском профиле ufw, расположенном в /etc/ufw/applications.d/custom – Belldandu 3 June 2017 в 03:52
  • 2
    Привет @Belldandu. Я разработал ответ. Я думаю, что идея из последнего раздела «Создать пользовательскую команду для автоматизации ...» будет интересом для вас. – pa4080 3 June 2017 в 14:59
  • 3
    Достаточно близко к тому, что я хотел. Не знал, что можно ограничить профиль интерфейсом. Благодарю. – Belldandu 3 June 2017 в 18:02
  • 4
    Прояснить sudo ufw allow in on tun0 to any app "CustomApp 1 Full" - это то, что ответили на мой вопрос. Хотя сценарий автоматизации также является тем, о чем я не думал, и могу использовать его благодаря дополнительным усилиям для этого. – Belldandu 3 June 2017 в 18:07

Общий ответ

Я боюсь, что добавление сетевого интерфейса в профиль приложения невозможно, потому что в разделе «Интеграция приложений» на странице руководства UFW для синтаксиса написано:

Синтаксис для профилей приложений - это простой формат .INI: [<name>] title=<title> description=<description> ports=<ports>

И нет префиксов директивы интерфейса.

Создать правила вручную

В соответствии с вопросом Существует два подхода к одновременному разрешению TCP и UDP:

Добавить правила для каждого порта отдельно: sudo ufw allow in on tun0 to any port 36892 sudo ufw allow in on tun0 to any port 23976 sudo ufw allow in on tun0 to any port 19827 Добавить правила для каждого протокола отдельно: sudo ufw allow in on tun0 to any port 36892,23976,19827 proto tcp sudo ufw allow in on tun0 to any port 36892,23976,19827 proto udp

To разрешить доступ только с определенного адреса, добавить from 10.8.0.xxx в объявление - например:

sudo ufw allow in on tun0 from 10.8.0.110 to any port 36892,23976,19827 proto tcp Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Создать профиль приложения и создать на нем правила

Давайте создадим новый файл профиля, называемый custom.ufw.profile, расположенный в /etc/ufw/applications.d/. Содержимое этого файла может выглядеть так:

[CustomApp 1 Full] title=The first Custom Application description=Custom Application Description ports=36892|23976|19827 [CustomApp 1 TCP] title=The first Custom Application - TPC only description=Custom Application Description ports=36892,23976,19827/tcp [CustomApp 1 UDP] title=The first Custom Application - UDP only description=Custom Application Description ports=36892,23976,19827/udp Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Теперь мы можем создать новое правило, основанное на этом профиле:

sudo ufw allow in on tun0 to any app "CustomApp 1 Full" Проверьте правильность правильности: $ sudo ufw status numbered | grep CustomApp [10] CustomApp 1 Full on tun0 ALLOW IN Anywhere [20] CustomApp 1 Full (v6) on tun0 ALLOW IN Anywhere (v6)

Создайте собственную команду для автоматизации процесса включения / отключения правил

Если мы намерены иметь возможность быстрого включения или отключения нескольких правил UFW, мы можем создать для этой цели пользовательскую команду. Мы можем использовать функцию, которая может выглядеть примерно так:

function ufw-custom { if ! ufw_loc="$(type -p "ufw")" || [ -z "$ufw_loc" ]; then printf "\nUFW is not installed yet.\n\n" elif [ "$1" = "enable" ]; then sudo ufw allow in on tun0 to any port 36892 sudo ufw allow in on tun0 to any port 23976 sudo ufw allow in on tun0 to any port 19827 echo "" sudo ufw reload echo "" sudo ufw status numbered elif [ "$1" = "disable" ]; then sudo ufw delete allow in on tun0 to any port 36892 sudo ufw delete allow in on tun0 to any port 23976 sudo ufw delete allow in on tun0 to any port 19827 echo "" sudo ufw reload echo "" sudo ufw status numbered else echo "" sudo ufw status numbered printf "Use 'ufw-custom enable' or 'ufw-custom disable'.\n\n" fi } export -f ufw-custom

Поместите эти строки в конец файла ~/.bashrc, а затем source ~/.bashrc. Теперь у нас есть пользовательская команда под названием ufw-custom, которая может обрабатывать enable или disable в качестве аргументов. Например, чтобы включить правила, используйте:

ufw-custom enable
3
ответ дан 18 July 2018 в 12:15

Общий ответ

Я боюсь, что добавление сетевого интерфейса в профиль приложения невозможно, потому что в разделе «Интеграция приложений» на странице руководства UFW для синтаксиса написано:

Синтаксис для профилей приложений - это простой формат .INI: [<name>] title=<title> description=<description> ports=<ports>

И нет префиксов директивы интерфейса.

Создать правила вручную

В соответствии с вопросом Существует два подхода к одновременному разрешению TCP и UDP:

Добавить правила для каждого порта отдельно: sudo ufw allow in on tun0 to any port 36892 sudo ufw allow in on tun0 to any port 23976 sudo ufw allow in on tun0 to any port 19827 Добавить правила для каждого протокола отдельно: sudo ufw allow in on tun0 to any port 36892,23976,19827 proto tcp sudo ufw allow in on tun0 to any port 36892,23976,19827 proto udp

To разрешить доступ только с определенного адреса, добавить from 10.8.0.xxx в объявление - например:

sudo ufw allow in on tun0 from 10.8.0.110 to any port 36892,23976,19827 proto tcp Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Создать профиль приложения и создать на нем правила

Давайте создадим новый файл профиля, называемый custom.ufw.profile, расположенный в /etc/ufw/applications.d/. Содержимое этого файла может выглядеть так:

[CustomApp 1 Full] title=The first Custom Application description=Custom Application Description ports=36892|23976|19827 [CustomApp 1 TCP] title=The first Custom Application - TPC only description=Custom Application Description ports=36892,23976,19827/tcp [CustomApp 1 UDP] title=The first Custom Application - UDP only description=Custom Application Description ports=36892,23976,19827/udp Дополнительные примеры: UFW Essentials: Общие правила и команды брандмауэра.

Теперь мы можем создать новое правило, основанное на этом профиле:

sudo ufw allow in on tun0 to any app "CustomApp 1 Full" Проверьте правильность правильности: $ sudo ufw status numbered | grep CustomApp [10] CustomApp 1 Full on tun0 ALLOW IN Anywhere [20] CustomApp 1 Full (v6) on tun0 ALLOW IN Anywhere (v6)

Создайте собственную команду для автоматизации процесса включения / отключения правил

Если мы намерены иметь возможность быстрого включения или отключения нескольких правил UFW, мы можем создать для этой цели пользовательскую команду. Мы можем использовать функцию, которая может выглядеть примерно так:

function ufw-custom { if ! ufw_loc="$(type -p "ufw")" || [ -z "$ufw_loc" ]; then printf "\nUFW is not installed yet.\n\n" elif [ "$1" = "enable" ]; then sudo ufw allow in on tun0 to any port 36892 sudo ufw allow in on tun0 to any port 23976 sudo ufw allow in on tun0 to any port 19827 echo "" sudo ufw reload echo "" sudo ufw status numbered elif [ "$1" = "disable" ]; then sudo ufw delete allow in on tun0 to any port 36892 sudo ufw delete allow in on tun0 to any port 23976 sudo ufw delete allow in on tun0 to any port 19827 echo "" sudo ufw reload echo "" sudo ufw status numbered else echo "" sudo ufw status numbered printf "Use 'ufw-custom enable' or 'ufw-custom disable'.\n\n" fi } export -f ufw-custom

Поместите эти строки в конец файла ~/.bashrc, а затем source ~/.bashrc. Теперь у нас есть пользовательская команда под названием ufw-custom, которая может обрабатывать enable или disable в качестве аргументов. Например, чтобы включить правила, используйте:

ufw-custom enable
3
ответ дан 24 July 2018 в 19:56

Другие вопросы по тегам:

Похожие вопросы: