no_connection

Иногда ради прикладных задач может возникнуть потребность в недопущении определенного приложения в интернет или сеть в целом. Безусловно, для реализации подобных задач можно пользоваться SELinux или AppArmor, но они требуют достаточно сложной для новичка настройки и часто игра не стоит свеч. В этой статье я расскажу, как всего за несколько минут решить подобную задачу используя iptables. При этом нам не придется ставить какой-либо софт. Пример подходит для любого дистрибутива Linux.

После завершения манипуляций, изложенных ниже, мы получим возможность запускать любое приложение без сети:

или без интернета:

Для начала мы создадим две группы noinet и nolan:

Добавим в группы текущего пользователя:

Теперь воспользуемся возможностями iptables. Напишем два скрипта, которые будут стартовать вместе с ОС:

Сделаем скрипты исполняемыми:

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

Сделаем скрипты исполняемыми:

Дабы не перезагружать ОС, выполним скрипты iptables:

Теперь для запуска приложения без сети достаточно добавить nolan. Без интернета — noinet.

Проверим работоспособность:

С сетью все будет по аналогии.

На этом все. Спасибо за внимание, до новых встреч!