Ubuntu - заблокировать доступ в интернет всем приложениям, кроме нескольких избранных

Ubuntu - заблокировать доступ в интернет всем приложениям, кроме нескольких избранных

Я искал способ заблокировать всем моим приложениям доступ в Интернет, за исключением 1 или 2 выбранных приложений.

Я рассмотрел Uncomplicated Firewall (ufw) и его соответствующий графический интерфейс (gufw):

введите описание изображения здесь

но у gufw, похоже, нет возможности блокировать доступ определенных программ к Интернету (что делает брандмауэр Windows с помощью правил исходящего трафика).

ВОПРОС:Кто-нибудь знает, как это можно сделать?

решение1

gufwи другие поставляемые по умолчанию брандмауэры не предназначены для фильтрации по приложениям - gufwэто простой графический интерфейс пользователя ufw, и не предназначен для фильтрации на уровне приложений, это просто простой интерфейс для настройки основных правил фильтрации на основе IP, порта и т. д.

То, что вы ищете, выходит за рамки стандартных наборов правил брандмауэра в Linux, которые ufwи gufwмогут быть приспособлены. Естьнесколько предложенных методов(связанный элемент управления основан на группах, поэтому вам нужно добавить приложения, которым вы хотите предоставить доступ к сети, в определенную группу), но есть и другие приложения, такие какДуан, который может делать это и на уровне приложений.

решение2

Один из методов, который может заблокировать доступ в Интернет нана основе заявкиэто «песочница».

Часто сетевой доступ к/из приложений косвенно контролируется с помощью правил брандмауэра. Обычно случается так, что приложение пытается общаться согласованным образом (либокопределенный порт/адрес илиотопределенный порт/адрес), а с помощью брандмауэра вы можете запретить доступ к/с определенного порта или адреса, чтобы лишить приложение возможности доступа к Интернету (или какому-либо другому компьютеру). Однако, если приложение не взаимодействует согласованным образом, будет очень сложно написать правила брандмауэра, которые вы наверняка заблокировали бы все его сетевые соединения. Также возможно, что приложение, которое вы хотите запустить, также взаимодействует с использованием того же порта/адреса, и брандмауэр, скорее всего, заблокирует оба приложения.

Песочница — это общий термин для любой стратегии, предназначенной для создания отдельной среды для приложения. Одна из распространенных причин для этого — полностью осознавать, с чем взаимодействует приложение, поскольку по умолчанию обычноприложение не может получить доступ ни к чему за пределами своей «песочницы», если вы специально не разрешите ему это.

Я не буду описывать полную настройку, но такое программное обеспечение, как Docker и Kubernetes, было разработано именно с учетом этого: вы можете разрешить любой сетевой доступ к программному обеспечению, работающему в их «контейнерах» (т. н. «песочницах»).

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

решение3

Персональный брандмауэр Douane для GNU/Linux

Я нашел для вас одно возможное решение:Персональный брандмауэр Douane для GNU/Linux-целевая страница,новая домашняя страница.

Однако я не нашел готовой версии для вашей Ubuntu.


Поддерживается:

  • Любое исходящее соединение, созданное приложением/библиотекой
  • Протоколы: Все (как у NetFilter)
  • Направление: Исходящее - Прослушивание

Не поддерживается:

  • Подключения не в пользовательском пространстве: netbios/и т. д. (ядро)
  • Iptables (не используется douane, но рекомендуется использовать его вместе с douane)
  • Направление: Входящее (для этого используйте iptables)

Поскольку все, кажется, довольно хорошо описано наDouane - Страница компиляции GitLab, Я не вижу никаких проблем с процессом компиляции.

Связанный контент