1. Использование iptables или nftables

Эти инструменты позволяют настроить правила брандмауэра для блокировки сетевого доступа конкретной программы.

Шаги для iptables:

1. Определите путь к программе:
Узнайте полный путь к исполняемому файлу программы. Например:

   which имя_программы

Допустим, это /usr/bin/имя_программы.

2. Создайте правило в iptables:
Используйте опцию -m owner для фильтрации по владельцу процесса. Например, чтобы заблокировать исходящий трафик для программы:

   sudo iptables -A OUTPUT -m owner --uid-owner $(whoami) -m string --string "/usr/bin/имя_программы" --algo bm -j DROP

Здесь:

  • -A OUTPUT — правило для исходящего трафика.
  • --uid-owner $(whoami) — применяется к вашему пользователю.
  • -m string --string "/usr/bin/имя_программы" — фильтрует по пути к программе.
  • -j DROP — блокирует трафик.

3. Сохраните правила:
Чтобы правила сохранялись после перезагрузки:

   sudo iptables-save > /etc/iptables/iptables.rules

На Manjaro может потребоваться настройка сервиса iptables:

   sudo systemctl enable iptables
   sudo systemctl start iptables

Для nftables (более современный вариант):

1. Создайте таблицу и цепочку:

   sudo nft add table inet my_filter
   sudo nft add chain inet my_filter output { type filter hook output priority 0 \; policy accept \; }

2. Добавьте правило для блокировки:

   sudo nft add rule inet my_filter output meta skuid $(whoami) oifname "eth0" drop

Замените eth0 на ваш сетевой интерфейс (проверьте с помощью ip a).

3. Сохраните конфигурацию:

   sudo nft list ruleset > /etc/nftables.conf
   sudo systemctl enable nftables
   sudo systemctl start nftables

Примечание: iptables и nftables требуют точного указания пути к программе или дополнительных фильтров, что может быть не всегда удобно.

---

2. Использование firejail

Firejail — это инструмент для изоляции программ в песочнице, который позволяет ограничить доступ к сети.

Установка firejail:

sudo pacman -S firejail

Настройка:

1. Создайте профиль для программы. Например, для программы имя_программы создайте файл /etc/firejail/имя_программы.profile:

   noblacklist ${HOME}
   include /etc/firejail/disable-common.inc
   net none

2. Запустите программу с firejail:

   firejail --profile=/etc/firejail/имя_программы.profile имя_программы

Опция net none отключает доступ к сети.

3. (Опционально) Создайте псевдоним для удобства:
Добавьте в ~/.bashrc:

   alias имя_программы='firejail --profile=/etc/firejail/имя_программы.profile имя_программы'

---

3. Дополнительный способ: использование unshare

Можно запускать программу в изолированном сетевом пространстве:

sudo unshare -n имя_программы

Это отключает доступ к сети для процесса, но требует прав суперпользователя.

---

Рекомендация

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

[file-name 000236_2025-09-24_07-55-27.txt]