К основному контенту

👩🦽 Настройка bridge на Debian , выполняющий роль межсетевого экрана

# Задача: хотим внедрить в своей сети мост (bridge) на Debian,# выполняющий также задачи межсетевого экрана,# т.е. получить возможность фильтрации трафика, не сильно меняя топологию# и совсем не меняя адресацию в сети и шлюз по умолчанию.# Желательно, чтобы мост-МЭ при этом вообще не имел IP-адресов# на интерфейсах (обращенном наружу и смотрящему в защищаемую сеть)# Администрировать его и смотреть на нем логи предлагается локально# или путем подключения к выделенной сети администрирования# Ставим его в сети так, чтобы одним интерфейсом моста он был# подключен к провайдеру или другому уже имеющемуся шлюзу по умолчанию,# а другой «смотрел» в защищаемую ЛВС, например в порт коммутатора# Таким образом, приходящий извне трафик прежде чем попасть в защищаемую сеть# будет всегда проходить через мост на котором мы его будем фильтровать# с помощью iptablesСхема тестового стенда

👨⚕️️ Реализация мандатного контроля доступа с помощью SELinux или AppArmor в Linux

Чтобы преодолеть ограничения и расширить механизмы безопасности, предоставляемые стандартными разрешениями ugo/rwx и списками контроля доступа, Агентство национальной безопасности США (NSA) разработало гибкий метод мандатного контроля доступа (MAC), известный как SELinux (сокращение от Security Enhanced). Linux) для того, чтобы, между прочим, ограничивать способность процессов получать доступ или выполнять другие операции над системными объектами (такими как файлы, каталоги, сетевые порты и т. д.) с наименьшими возможными правами, при этом допуская возможность последующих модификаций этой модели.

Другим популярным и широко используемым MAC является AppArmor, который помимо функций, предоставляемых SELinux, включает в себя режим обучения, который позволяет системе «изучать» поведение конкретного приложения и устанавливать ограничения, настраивая профили для безопасного использования приложения.

В CentOS 7 SELinux включен в само ядро и по умолчанию включен в режиме Enforcing (подробнее об этом в следующем разделе), в отличие от openSUSE и Ubuntu, которые используют AppArmor.

?️ Как временно или постоянно отключить SELinux

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

Введение в SELinux и как его использовать в CentOS 7

Security Enhanced Linux может работать двумя различными способами:

  • Enforcing:  SELinux запрещает доступ на основе правил политики SELinux, набора руководящих принципов, которые управляют механизмом безопасности.
  • Permissive:SELinux не запрещает доступ, но в журнале регистрируются отказы для действий, которые были бы запрещены при запуске в принудительном режиме.

SELinux также можно отключить.

Хотя это не сам режим работы, это все же вариант.

Однако научиться использовать этот инструмент лучше, чем просто игнорировать его. Имейте это в виду!

Чтобы отобразить текущий режим SELinux, используйте getenforce.

Если вы хотите переключить режим работы, используйте setenforce 0 (чтобы установить для него Permissive) или setenforce 1 (Enforcing).

Поскольку это изменение не выдержит перезагрузки, вам потребуется отредактировать файл /etc/selinux/config и установить для переменной SELINUX значениеenforcing, permissive, или disabled, чтобы обеспечить постоянство при перезагрузках:



Напомним, что если Getenforce возвращает Disabled, вам нужно отредактировать /etc/selinux/config с нужным режимом работы и перезагрузиться.

В противном случае вы не сможете установить (или переключить) режим работы с помощью setenforce.

Одно из типичных применений setenforce состоит в переключении между режимами SELinux (от принудительного к разрешающему или наоборот) для устранения неполадок в работе приложения, которое работает неправильно или работает не так, как ожидалось.

Если оно работает после того, как вы установили SELinux в режим Permissive, вы можете быть уверены, что надо рыться в проблеме с разрешениями SELinux.

Два классических случая, когда нам, скорее всего, придется иметь дело с SELinux:

  • Изменение порта по умолчанию, на котором слушает демон.
  • Установка директивы DocumentRoot для виртуального хоста вне /var/www/html.

Давайте посмотрим на эти два случая на следующих примерах.

ПРИМЕР 1: Изменение порта по умолчанию для демона sshd

Первое, что большинство системных администраторов делают для защиты своих серверов, — это изменение порта, который слушает демон SSH, в основном, чтобы «отвести» сканеры портов внешних злоумышленников.

Для этого мы используем директиву Port в /etc/ssh/sshd_config, за которой следует новый номер порта следующим образом (в этом случае мы будем использовать порт 9999):

Port 9999 

После попытки перезапустить службу и проверить ее состояние мы увидим, что она не запустилась:

# systemctl restart sshd # systemctl status sshd



Если мы посмотрим на /var/log/audit/audit.log, то увидим, что SELinux запретил запуск sshd на порт 9999, поскольку это зарезервированный порт для службы управления JBoss (сообщения журнала SELinux включают слово « AVC », чтобы их можно было легко идентифицировать из других сообщений):

# cat /var/log/audit/audit.log | grep AVC | tail -1 



В этот момент большинство людей, вероятно, отключат SELinux, но мы этого не сделаем.

Мы увидим, что SELinux и sshd, слушающий другой порт, могут жить вместе в гармонии.

Убедитесь, что у вас установлен и включен пакет policycoreutils-python:

# yum install policycoreutils-python 

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

# semanage port -l | grep ssh 

Конечно, мы могли бы выбрать другой порт для SSH, но если мы уверены, что нам не потребуется использовать этот конкретный компьютер для каких-либо служб, связанных с JBoss, мы можем затем изменить существующее правило SELinux и вместо этого назначить этот порт SSH:

# semanage port -m -t ssh_port_t -p tcp 9999 

После этого мы можем использовать первую команду semanage, чтобы проверить, был ли порт назначен правильно, или опцию -lC (сокращение от list custom):

# semanage port -lC # semanage port -l | grep ssh



Теперь мы можем перезапустить SSH и подключиться к сервису через порт 9999. Обратите внимание, что это изменение переживет перезагрузку.

ПРИМЕР 2: Выбор DocumentRoot вне /var/www/html для виртуального хоста:

Если вам нужно настроить виртуальный хост Apache, используя каталог, отличный от /var/www/html, в качестве DocumentRoot (например, /websrv/sites/gabriel/public_html):

DocumentRoot "/websrv/sites/gabriel/public_html" 

Apache откажется обслуживать контент, потому что index.html был помечен типом SELinux default_t, к которому Apache не может получить доступ:

# wget http://localhost/index.html # ls -lZ /websrv/sites/gabriel/public_html/index.html



Как и в предыдущем примере, вы можете использовать следующую команду, чтобы убедиться, что это действительно проблема, связанная с SELinux:

# cat /var/log/audit/audit.log | grep AVC | tail -1 



Чтобы рекурсивно изменить метку /websrv/sites/gabriel/public_html на httpd_sys_content_t, выполните:

# semanage fcontext -a -t httpd_sys_content_t "/websrv/sites/gabriel/public_html(/.*)?" 

Приведенная выше команда предоставит Apache доступ только для чтения к этому каталогу и его содержимому.

Наконец, чтобы применить политику (и сразу же поменять метку), выполните:

# restorecon -R -v /websrv/sites/gabriel/public_html 

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

# wget http://localhost/index.html 

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…