Я хотел бы использовать программное обеспечение для управления, какая программа может соединиться с Интернетом. Я знаю, что это поведение связано со словом "брандмауэр", но некоторые пользователи Linux очень расстроены, если кто-то требует Персональный Брандмауэр. Я не хочу расстраивать Вас спросом такая программа.
Я не хочу к "защищенным портам" или другому материалу, который Персональный Брандмауэр обещает в Windows. Я изучил iptables
но это не соответствует моим требованиям.
Я видел превосходный ответ здесь ("Как заблокировать доступ в Интернет для винных приложений"), но это очень неудобно для установки этого.
Существует ли программное обеспечение, которое просит каждую программу, если это может получить доступ к Интернету?
В немецком форуме Ubuntu (Google-переведён на английский) есть Perl скрипт[111979898], который, кажется, делает это. Я никогда не пробовал, и я не взглянул на скрипт поближе, но, может быть, он работает на вас. Описание написано только на немецком языке, так что, возможно, вам понадобится сервис перевода (например, Google Translate; см. выше).
Нет, это невозможно. Это также не является частью традиционного определения брандмауэра. Это то, что Microsoft придумала сравнительно недавно, пытаясь описать их фундаментальные проблемы безопасности операционной системы. В сообществе Linux это считается глупым и неработоспособным, потому что одна программа, которая не разрешена, может просто запустить другую программу и получить доступ таким образом.
Если вам не нравится, что программа делает в сети, когда вы её запускаете, то не запускайте эту программу.
В Ubuntu уже есть брандмауэр, ufw
, но по умолчанию он отключен. Вы можете включить и использовать его из командной строки или его внешнего интерфейса, gufw , который можно установить непосредственно из Центра программного обеспечения Ubuntu.
Если вам нужно заблокировать доступ в Интернет для определенного приложения, вы можете попробуйте LeopardFlower , который все еще находится в бета-версии и недоступен в Центре программного обеспечения Ubuntu:
Попробуйте Цветок леопарда . Он имеет ограничения для графического интерфейса и приложений.
ПРИМЕЧАНИЕ: Douane больше не разрабатывается активно и, как сообщается, не работает в более поздних версиях Ubuntu. Это решение может не работать, но ответ остается неизменным по историческим причинам.
Если вы все еще ищете такое приложение,В настоящее время я разрабатываю именно это приложение: http://douaneapp.com/ https://gitlab.com/douaneapp/Douane
Мое приложение блокирует любые неизвестные приложения (новые версии авторизованного приложения заблокирован) и спросит вас, разрешите или запретите его трафик.
Посмотрите на веб-сайт; -)
@psusi: Очень хочу, чтобы люди не разносили плохую и бесполезную информацию. IPTables позволяет это делать, поэтому я бы не счел это «безрассудным». Просто сказать «НЕТ» без понимания варианта использования - это несколько узкий кругозор. http://www.debian-administration.org/article/120/Application_level_firewalling
ИЗМЕНИТЬ bodhi.zazen
ПРИМЕЧАНИЕ. ЭТА ВАРИАНТ БЫЛА УДАЛЕН ИЗ IPTABLES В 2005 году, за 8 ЛЕТ ДО ПОДАЧИ ЭТОГО ОТВЕТА
SEE - http://www.spinics.net/lists/netfilter/msg49716.html
commit 34b4a4a624bafe089107966a6c56d2a1aca026d4 Автор: Christoph Хеллвиг Дата: Вс, 14 августа, 17:33:59 2005 -0700
[NETFILTER]: Удалите злоупотребление tasklist_lock в ipt {, 6} owner
Удалите сопоставление cmd / sid / pid, так как его нефиксируемое нарушение и стоит в способ блокировки изменений в tasklist_lock.
Подписано: Christoph Hellwig
Подписано: Патрик МакХарди Подписано: Дэвид С. Миллер
Хорошо это или плохо, но Linux использует другой подход. Нет простого графического интерфейса, предлагающего эту функцию. В Интернете есть много дискуссий по этой теме, и вы можете найти интересные обсуждения, если выполните поиск в Google. Хотя дебаты интересны, на сегодняшний день не было специальной группы программистов, желающих написать и поддерживать эту функцию.
Инструменты, которые предлагают эту функциональность в Linux, - это Apparmor, Selinux и Tomoyo.
Ни один из этих инструментов чрезмерно просты в освоении, и все они имеют свои преимущества и недостатки. Лично я предпочитаю SELinux, хотя у SELinux более крутая кривая обучения.
См .:
http://www.linuxbsdos.com/2011/12/06/3-application-level-firewalls-for-linux-distributions /
Было (есть) приложение, на которое уже ссылались, leopardflower. Я не уверен в статусе / обслуживании.
I нашёл удобное решение, которое решает эту проблему. Создается группа, которой никогда не разрешается использовать интернет и запускать программу в качестве члена этой группы.
Создайте группу no-internet
. Присоединитесь к этой группе не, а
sudo addgroup no-internet.
Добавить в iptables правило, запрещающее всем процессам, принадлежащим к группе no-internet
, использовать сеть (используйте ip6tables
для предотвращения трафика IPv6)
sudo iptables -A OUTPUT -m owner --gid-владелец no-internet -j DROP
sudo -g no-internet YOURCOMMAND
вместо YOURCOMMAND
. Вы можете легко написать оберточный сценарий, который использует sudo для вас. Вы можете избавиться от подсказки пароля, добавив
%sudo ALL=(:no-internet) NOPASSWD: ALL
или, что-то подобное с sudo visudo
Используйте iptables-save
и iptables- restore
, чтобы сохранить правила брандмауэра.
Tas bija iptables līdz kodola 2.6.24 versijai Ja jūs izmantojat 2.x - 2.6.24 mašīnu un jūsu kodols to ievēro, varat to izdarīt. nez kāpēc viņi to izņēma, tāpēc nē tas nav microsoft. http://cateee.net/lkddb/web-lkddb/IP_NF_MATCH_OWNER.html
Я нашел решение, опубликованное здесь , как хорошее. Он включает в себя создание группы пользователей, для которой разрешен доступ в Интернет , и настройку правил брандмауэра, разрешающих доступ только для этой группы. Единственный способ для приложения получить доступ к Интернету - это запустить его членом этой группы. Вы можете запускать программы в этой группе, открыв оболочку с помощью sudo -g internet -s
.
Подведем итоги сообщения, которое я указал выше:
Создайте группу «Интернет», набрав в оболочку: sudo groupadd internet
Убедитесь, что пользователь, который будет запускать приведенный ниже сценарий, добавлен в группу sudo
в / etc / group
. Если вы в конечном итоге измените этот файл, вам нужно будет выйти из системы и снова войти в нее, прежде чем скрипт, приведенный ниже, заработает.
Создайте скрипт, содержащий следующее, и запустите его:
#! / Bin / sh
# Приложения брандмауэра -разрешить запуск приложений только из группы "Интернет"
# очистить предыдущие правила
sudo iptables -F
# принимать пакеты для интернет-группы
sudo iptables -A ВЫХОД -p tcp -m owner --gid-owner internet -j ПРИНЯТЬ
# также разрешить локальные подключения
sudo iptables -A ВЫХОД -p tcp -d 127.0.0.1 -j ПРИНЯТЬ
sudo iptables -A ВЫХОД -p tcp -d 192.168.0.1/24 -j ПРИНЯТЬ
# отклонить пакеты для других пользователей
sudo iptables -A OUTPUT -p tcp -j REJECT
# открыть оболочку с доступом в Интернет
sudo -g internet -s
Запустив приведенный выше сценарий, вы получите оболочку, в которой вы можете запускать приложения с доступом в Интернет.
Обратите внимание, что этот сценарий ничего не делает для сохранения и восстановления правил брандмауэра. Вы можете изменить сценарий, чтобы использовать команды оболочки iptables-save
и iptables-restore
.
Запуск программы от имени другого пользователя будет использовать файлы конфигурации для этого пользователя, а не для вас.
Это решение, которое не требует изменения правил брандмауэра и работает под тот же пользователь (через sudo
) с измененной средой, где ваш пользователь - my_user
, а приложение, которое вы хотите запустить, - my_app
:
# run app without access to internet
sudo unshare -n sudo -u my_user my_app
Подробнее см. man unshare
и этот ответ .
Если вы ищете межсетевой экран GUI, у меня были хорошие результаты с OpenSnitch - его еще нет в репозиториях ubuntu, и я бы не назвал его производственным уровнем, но выполнение шагов сборки со страницы github у меня сработало. 97]
Другой вариант - firejail . Он запускает приложение внутри песочницы, где вы контролируете, может ли приложение видеть сеть:
firejail --net=none firefox
Эта команда запустит браузер Firefox без доступа в Интернет. Обратите внимание, что дистрибутив firejail в репозитории Ubuntu устарел -Лучше скачайте последнюю версию LTS с домашней страницы firejail.