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]