Я хочу запустить одно ненадежное приложение в виртуальной машине Linux (хост — Windows 10 с VirtualBox). Ему нужен доступ к другому серверу в моей локальной сети, но я хочу заблокировать любой другой сетевой доступ за пределами этого порта на одном IP.
AppArmor, похоже, не допускает столь точных сетевых ограничений.
Я бы предпочел не блокировать сетевой доступ всей гостевой ОС, поскольку я хочу иметь возможность запускать, например sudo apt-get update
, , но если это все, что я могу сделать, то это приемлемо.
Какое лучшее решение? Возможно, скрипт, который устанавливает временные общесистемные правила брандмауэра перед запуском этой программы?
решение1
Поскольку ваша виртуальная машина — Linux, я бы воспользовался преимуществами Linux.пространства имензапустить это приложение вв песочницесреда, например, с использованиемПожарная тюрьма. В вашем случае одним из возможных подходов было бы созданиевиртуальный сетевой интерфейсс ограниченной областью действия, которая может достичь только другого сервера в вашей локальной сети.
Затем запустите свое приложение с помощью Firejail, чтобы оно могло «видеть» только один сетевой интерфейс — ограниченный.
В командной строке результирующая команда будет выглядеть примерно так:
firejail --net=veth0 yourapp
Но вы также можете создать индивидуальный профиль.