Монтаж

Монтаж

Должен признаться, что я новичок в мире Linux, и некоторые концепции кажутся мне совершенно незнакомыми.

Больше всего мне не хватает хорошего, но простого брандмауэра уровня приложений. Сейчас, со всем этим всепроникающим, навязчивым и постоянным подключением к Интернету, необходимо знать, что именно делает ваш компьютер, почему и с кем. Анализатор протоколов хорош, но слишком недружелюбен и требует много времени для «анализа», что практически бесполезно для домашних пользователей.

Я обнаружил множество программ в среде Windows, которые не должны подключаться к Интернету, но они подключаются (и с помощью моего бесплатного брандмауэра ZoneAlarm я могу остановить их).

При использовании Gufw (и нескольких других) вам необходимо знать, какие приложения у вас уже установлены (а мы знаем, что это практически невозможно с этой современной ОС с миллиардами строк кода).

Мне нужен брандмауэр, который отслеживает соединение NIC/WAN и обнаруживает любые программы/приложения или что-то еще, пытающееся «общаться» через него, проактивно, независимо от используемого порта (приложения, о которых я упоминал ранее, должны пытаться подключаться, используя известные порты TCP: 80, 443, 8080). Существует ли такой? (Если нет, то как я точно узнаю, что делает мой компьютер?)

решение1

Дуан

Douane — это персональный брандмауэр, который защищает конфиденциальность пользователя, позволяя ему контролировать, какие приложения могут подключаться к Интернету с его компьютера GNU/Linux.


Монтаж

До сих пор (2017/05/22) нет доступных пакетов Ubuntu. Вам необходимо собрать его из исходников.

Эти инструкции по установке основаны на информации изДуэйн Викии протестировано на Ubuntu 16.04.2 64-бит.

Откройте терминал ( Ctrl+ Alt+ T) для выполнения команд.

Подготовка

Обновите вашу систему:

sudo apt update
sudo apt full-upgrade

Если вы получили уведомление с просьбой перезагрузить компьютер, перезагрузите его.

Установить зависимости

sudo apt install git build-essential dkms libboost-filesystem-dev libboost-regex-dev libboost-signals-dev policykit-1 libdbus-c++-dev libdbus-1-dev liblog4cxx10-dev libssl-dev libgtkmm-3.0-dev python3 python3-gi python3-dbus

Создать каталог для компиляции

cd
mkdir Douane
cd Douane

Собрать модуль ядра

git clone https://github.com/Douane/douane-dkms
cd douane-dkms
sudo make dkms

Проверьте, правильно ли собран и установлен модуль:

lsmod | grep douane

Вы должны увидеть что-то вроде:

douane                 20480  0

Построить демона

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-daemon
cd douane-daemon
make
sudo make install

Постройте диалоговый процесс

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-dialog
cd douane-dialog
make
sudo make install

Начните диалоговый процесс:

/opt/douane/bin/douane-dialog &

Затем проверьте, запущен ли он:

pgrep -a douane-dialog

Вы должны увидеть что-то вроде:

21621 /opt/douane/bin/douane-dialog

Собрать конфигуратор

cd ~/Douane
git clone https://github.com/Douane/douane-configurator
cd douane-configurator
sudo python3 setup.py install

Запустите демон и настройте автоматический запуск

/etc/init.d/douaneЧтобы включить автоматический запуск демона, мне пришлось вставить в файл следующий текст :

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

Откройте файл для редактирования:

sudo nano /etc/init.d/douane

Затем вставьте текст выше после описания программы. Нажмите Ctrl+ O, Enterчтобы сохранить, затем Ctrl+ X, чтобы выйти из редактора.

Это первые 21 строка файла после вставки текста:

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain [email protected]
#
# description: douane is the daemon process of the Douane firewall application. \
# This firewall is limiting access to the internet on application bases.

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

Теперь можно настроить автозапуск и запустить демон:

sudo systemctl daemon-reload
sudo systemctl enable douane
sudo systemctl start douane

Активируйте фильтр и автоматически запустите диалог

Запустите конфигуратор:

douane-configurator

Затем убедитесь, что переключателиИспользуйте Douane для фильтрации моего сетевого трафикаиАвтоматический запуск Douane при загрузкеоба включены.

Вы можете ознакомиться с правилами фильтрации вПравилавкладка. Щелкнув правой кнопкой мыши по правилу, вы получите возможность удалить его.

Тест

Если все в порядке, вы увидите окно Douane, запрашивающее разрешение при открытии приложений, использующих сетевые подключения.

решение2

Существует новый проект OpenSnitch, описанный на

https://www.cyberciti.biz/python-tutorials/opensnitch-the-little-snitch-application-like-firewall-tool-for-linux/

Страница проектаhttps://www.opensnitch.io/

На данный момент это программное обеспечение считается альфа-версией и, как ни странно, написано на Python, но, по крайней мере, это свежая попытка, в то время как Douane — очень старая программа, которую (я думаю) гораздо сложнее установить.

Отказ от ответственности: я лично не тестировал ни одну из программ, я просто пытался выяснить, есть ли другие варианты, и заметил, что никто здесь еще не упомянул OpenSnitch.

решение3

Это действительно хороший вопрос, но я ненавижу такие вопросы, потому что на них очень сложно ответить, не сказав, что безопасность не важна.

Итак, для начала позвольте мне сказать, что безопасность важна, но Linux справляется с ней совсем иначе, чем Windows.

Итак, давайте рассмотрим ваш вопрос.

Во-первых, не будет исходящего брандмауэра, который работает так же, как zone alarm. Linux просто не нуждается в нем. Многие приложения работают в архитектуре клиент/сервер, даже если вы используете их на одной машине. Xorg — отличный пример. Сначала у вас есть сервер (в данном случае та часть, которая рисует на экране) и клиент (gedit), gedit общается с сервером о рисовании своих кнопок, размещении текста и т. д. Даже что-то такое простое, как мышь, имеет такую ​​же архитектуру (или может иметь). Программа действует как сервер, прослушивая информацию и отправляя данные, когда она их получает, затем клиент «подключается» к этому «серверу мыши» и ждет информации.

Это настолько распространено в Linux, что если бы вы создали «брандмауэр», который запрашивал бы разрешение на каждое сетевое подключение, то вы, вероятно, не смогли бы его настроить, поскольку он не смог бы подключиться к своему собственному серверу.

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

Чтобы защитить нас, пользователей Linux, от этого, у нас есть набор из двух очень простых правил, которые отлично справляются со своей «базовой» задачей.

Во-первых, ни один пользователь, кроме root, не может открыть порт ниже 1024. (опять же очень высокий уровень). Это означает, что даже для запуска FTP-сервера (на стандартном порту) вам необходимо иметь доступ root. Вы как пользователь обычно можете открыть "высокие порты" (выше 1024). Но см. правило два.

2. Ни один процесс не может получить доступ к файлу, к которому не имеет доступа пользователь, запустивший процесс. (опять же очень высокий уровень) Таким образом, если бы "coteyr" запустил FTP-сервер, то этот FTP-сервер в худшем случае (высокий уровень) имел бы только тот же самый доступ, что и пользователь coteyr, запустивший его.

Из-за сочетания этих двух правил «программное обеспечение», которое каждый раз, когда что-то пытается подключиться к брандмауэру, запрашивает разрешение, просто мешает, и на него нет большого спроса.

Тем не менее, вы всегда можете создать правило исходящего брандмауэра, и во многих случаях это, вероятно, неплохая идея. Многие службы могут быть (и по умолчанию) настроены на использование файловых сокетов (или сокетов на основе памяти), а не сетевых сокетов.

Правило входящего межсетевого экрана обычно закрывает любые пробелы, оставшиеся после применения правила 1 или 2.

Я хочу сказать следующее. Безопасность важна, и я не пытаюсь сказать, что это не так, просто здесь, в мире Linux, у нас разные инструменты и цели. Я бы рекомендовал вам изучить права доступа пользователей и групп в Linux, а затем использовать такой инструмент, как gfw и IPTABLES, чтобы заполнить любые пробелы.

решение4

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

Как и оригинальный проект, форк OpenSnitch — это бесплатный брандмауэр уровня приложения с открытым исходным кодом для Linux, состоящий из демона (написанного на Go) и графического интерфейса (PyQt5). Как и оригинальный проект, этот форк находится в стадии разработки, и на его странице проекта есть сообщение: «не ожидайте, что он будет безбаговым, и не полагайтесь на него для какой-либо безопасности».

Приложение отслеживает исходящие соединения, которые ваши приложения пытаются установить, запрещая или разрешая их соединения на основе набора правил (пользователю предлагается разрешить или запретить доступ, если не найдено ни одного существующего правила). Приложение вдохновлено Little Snitch, коммерческим хост-брандмауэром приложений для macOS.

Для Ubuntu есть DEB-пакеты, доступные для загрузки на сайте проекта.GitHub.

Источник.

Связанный контент