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
Опитування
Робота з користувачами в Linux, рівень 5, лекція 5
Недоступний
Робота з користувачами в Linux
Робота з користувачами в Linux
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ