Как я могу запретить приложениям отправлять данные по сети без моего согласия?
Недавно у меня было несколько примеров программ, отправляющих данные (копии некоторых моих файлов конфигурации) через сеть. Я считаю, что это очень плохая форма от имени авторов, и я хочу предотвратить это в будущем.
Одним из примеров была программа с утилитой диагностики командной строки. Когда я запустил его, он сразу же собрал кучу информации, не только о собственной конфигурации программы, но и о системе, и загрузил их на сервер. Некоторые из этих файлов могли содержать такие данные, как имена пользователей и пароли.
Поэтому, как и в Windows, мне нужна программа, которая предупреждает меня, когда другая программа пытается отправить данные или даже инициировать связь по сети, без моего ведома. В идеале тогда я могу внести в белый список только те программы, которые я хочу разрешить, а остальные по умолчанию будут заблокированы.
Изменить: я нашел веб-страницу с 2007 года, которая говорит об этом здесь
Они упоминают три программы (Systrace, Tuxguardian и Program Guard), которые раньше существовали, но я подозреваю, что больше нельзя использовать с новыми ядрами и дистрибутивами, такими как Ubuntu.
1 ответ
Я не верю, что есть простое, нетехническое решение. Тем не менее, если вы хотите испачкать руки, продолжайте читать.
Ubuntu использует структуру разрешений, называемую AppArmor, в которой у каждого приложения есть "профиль", который определяет, что ему разрешено делать. Если у вас есть права администратора, вы можете редактировать профили AppArmor, чтобы приложения в вашей системе делали меньше. Вы также можете создавать ограничительные профили для двоичных файлов, у которых их нет. Профили хранятся в /etc/apparmor.d/,
Вы захотите прочитать Руководство по языку профилей AppArmor и документацию сообщества Ubuntu. По сути, однако, вы хотите удалить все network разрешений, а затем переведите все профили в режим "жалоб", чтобы вы знали, когда они пытаются создать сеть с:
sudo aa-complain /etc/apparmor.d/*