JavaRush /Курсы /Docker SELF /Настройка брандмауэра, SELinux и базовых правил ACL

Настройка брандмауэра, SELinux и базовых правил ACL

Docker SELF
5 уровень , 5 лекция
Открыта

1. Шаг 1: Установка и настройка брандмауэра

Привет! Сегодня мы займёмся реальной практикой и применим всё, что вы изучили о безопасности Linux за день. Настроим брандмауэр, оценим работу SELinux и разберём удобство использования ACL для управления доступом к файлам. Эта лекция — ваш "тренировочный полигон". Пора накинуть наши админские "погоны безопасности" и приступить!

Вы уже знаете, что хороший брандмауэр — это как охранник на входе. Он решает, кого пускать, а кому сказать "Ну уж нет!". Для начала настроим защиту нашей системы, ограничив доступ только к сервисам SSH и HTTP.

Работа с UFW

  1. Проверьте статус UFW. Не установлен? Установим!

    # Проверка UFW
    sudo ufw status
  2. Если команда говорит, что "брандмауэр выключен", то это нужно исправить.

  3. Устанавливаем и запускаем UFW.

    # Установка (если необходимо)
    sudo apt install ufw
    
    # Включаем брандмауэр
        sudo ufw enable
  4. Настраиваем доступ. Мы хотим разрешить только SSH (порт 22) и HTTP (порт 80), блокируя всё остальное. Логика очевидна: сервер — это не трёхзвёздочный отель для всех.

    # Разрешить SSH
    sudo ufw allow 22
    
    # Разрешить HTTP
    sudo ufw allow 80
    
    # Проверить настройки
    sudo ufw status
  5. Проверка: После настройки вы должны увидеть что-то вроде:

    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    80                         ALLOW       Anywhere
    

Если вы используете iptables, настройка немного сложнее, но логика та же: создаём правила для SSH и HTTP, а остальное блокируем.


2. Шаг 2: Работа с SELinux

SELinux — это тот строгий учитель, который следит за поведением файлов и пользователей на вашем сервере. Его девиз: "Доверяй, но проверяй". Включим SELinux и проверим его действие.

Включение SELinux

  1. Проверка текущего статуса:

    # Узнаем, включён ли SELinux
    sestatus

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

  2. Включение SELinux через конфигурацию:

    Файл настроек SELinux находится по пути /etc/selinux/config. Откройте его с помощью текстового редактора (например nano).

    sudo nano /etc/selinux/config
    

    Найдите строку:

    SELINUX=disabled
    

    Замените на:

    SELINUX=enforcing
    

    Сохраните изменения и перезагрузите систему, чтобы изменения вступили в силу:

    sudo reboot
    
  3. Проверка после перезагрузки.

    После загрузки сервера снова проверьте статус SELinux:

    getenforce
    

    Если система отвечает Enforcing, поздравляем, вы на страже безопасности!


Пример с SELinux и веб-сервером

Предположим, у вас есть веб-сервер, который хранит файлы в каталоге /var/www/html. Проверим, как SELinux защищает его.

  1. Просмотр контекста файлов: SELinux использует контексты для управления доступом. Давайте посмотрим, какой контекст имеет каталог /var/www/html.

    ls -Z /var/www/html
    

    Пример вывода:

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    

    Если что-то не так, можно временно изменить контекст:

    sudo chcon -t httpd_sys_content_t /var/www/html
    
  2. Проверка работы веб-сервера: После настройки контекста проверьте, работает ли ваш сервер, и нет ли ошибок доступа.


3. Шаг 3: Управление правами с помощью ACL

ACL (Access Control List) — это как "дополнительный ключ" для управления доступом. Когда стандартные права rwx ограничивают, ACL позволяет вам тонко настроить доступ для конкретных пользователей.

Создайте тестовый каталог

Давайте создадим каталог project_dir и настроим его для доступа двух пользователей: user1 и user2.

  1. Создаём каталог:

    sudo mkdir /project_dir
    
  2. Устанавливаем права доступа:

    Давайте разрешим user1 полный доступ, а user2 только чтение:

    # Полный доступ для user1
    sudo setfacl -m u:user1:rwx /project_dir
    
    # Только чтение для user2
    sudo setfacl -m u:user2:r-- /project_dir
  3. Проверяем ACL:

    # Проверка текущих прав
    getfacl /project_dir

    Вывод должен показать ваши настройки:

    # file: /project_dir
    user::rwx
    user:user1:rwx
    user:user2:r--
  4. Установка прав по умолчанию:

    Чтобы все новые файлы в каталоге автоматически наследовали права ACL, зададим их по умолчанию:

    sudo setfacl -d -m u:user1:rwx /project_dir
    sudo setfacl -d -m u:user2:r-- /project_dir
    

4. Проверка итоговой конфигурации

  1. Брандмауэр:

    • Убедитесь, что порты SSH и HTTP доступны, а остальные заблокированы. Попробуйте подключиться к серверу через SSH и открыть веб-сайт в браузере.
  2. SELinux:

    • Проверьте контексты файлов, чтобы убедиться, что SELinux правильно ограничивает доступ.
  3. ACL:

    • Зайдите под пользователями user1 и user2 и попробуйте прочитать и записать файл в каталоге /project_dir.

Практические задания

  1. Настройте брандмауэр, разрешающий только доступ по SSH и HTTP.
  2. Включите SELinux в режиме enforcing и убедитесь, что веб-сервер работает корректно.
  3. Настройте ACL для каталога /project_dir, чтобы user1 имел полный доступ, а user2 только право на чтение.
  4. Проверьте активных пользователей в системе с помощью команды who.

Эти упражнения помогут вам закрепить знания и понять, как применять их на практике. И помните: безопасность в Linux — это не только конфигурации, но и постоянное внимание к деталям. Удачи!

1
Задача
Docker SELF, 5 уровень, 5 лекция
Недоступна
Настройка брандмауэра с UFW
Настройка брандмауэра с UFW
1
Задача
Docker SELF, 5 уровень, 5 лекция
Недоступна
Работа с SELinux и контекстами файлов
Работа с SELinux и контекстами файлов
1
Задача
Docker SELF, 5 уровень, 5 лекция
Недоступна
Управление правами доступа с помощью ACL
Управление правами доступа с помощью ACL
1
Опрос
Работа с пользователями в Linux, 5 уровень, 5 лекция
Недоступен
Работа с пользователями в Linux
Работа с пользователями в Linux
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ