Задать вопрос
bugnikork
@bugnikork
Веб-разработчик

Как в Linux разрешить доступ в интернет только определенным программам?

Имеется машина с GNU/Linux. Задача следующая: сделать так, чтобы доступ в интернет на данной машине имели ровно две программы - браузер и консольная утилитка OpenVPN. Я понимаю, что подобные задачи решаются с помощью файрвола. К сожалению, iptables (nftables) пока что для меня слишком сложен, хотел бы найти решение попроще и желательно с графическим интерфейсом.
  • Вопрос задан
  • 379 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov
Системный администратор
Можно настроить фаирвол так, чтобы только определённые пользователи (UID) имели доступ в интернет, а потом запускать программы от имени этих пользователей.
Ответ написан
Комментировать
@rPman
app armor и se linux или cgroups, это правильный но сложный вариант, гуглится даже проект соответствующий там в описании ссылки на подробнее информацию

И да, это сложно.

Но есть ОЧЕНЬ простое решение - виртуализация/контейнеризация!
OpenVPN запускаешь внутри виртуальной машины (мышевозекательно libvirt + lxc, не требует ресурсов для работы), внутри этой песочницы поднимаешь ssh сервер (чтобы на его основе работал socks прокси, так как это встроенная фича, нужно на машине где нужен интернет подключиться к ssh серверу с ключом -D1080 и получишь socks proxy с портом 1080) либо какой-нибудь http прокси, и вот браузер запускаешь с настройкой этой прокси, при необходимости хост машину вообще можно от интернета отключить.

Так же можно и firefox в lxc запустить (сложно настраивать графику, но можно пользоваться графически сервером хост машины, настроив DISPLAY и права доступа xhost)

Этот способ очень хорошо изолирует приложение и очень прост в настройке, заметно проще чем фаервол
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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