1. Крок 1: Встановлення і налаштування брандмауера
Привіт! Сьогодні ми займемося практикою і застосуємо все, чого ви навчилися про безпеку Linux за день. Налаштуємо брандмауер, оцінимо роботу SELinux і розберемо зручність використання ACL для управління доступом до файлів. Ця лекція — ваш "тренувальний полігон". Час накинути наші адмінські "погони безпеки" і приступити!
Ви вже знаєте, що хороший брандмауер — це як охоронець на вході. Він вирішує, кого пускати, а кому сказати "А от і ні!". Для початку налаштуємо захист нашої системи, обмеживши доступ лише до сервісів SSH і HTTP.
Робота з UFW
Перевірте статус UFW. Не встановлений? Встановимо!
# Перевірка UFW sudo ufw statusВстановлюємо і запускаємо UFW.
# Встановлення (якщо необхідно) sudo apt install ufw # Увімкнути брандмауер sudo ufw enableНалаштовуємо доступ. Ми хочемо дозволити лише SSH (порт 22) і HTTP (порт 80), блокуючи все інше. Логіка очевидна: сервер — це не тризірковий готель для всіх.
# Дозволити SSH sudo ufw allow 22 # Дозволити HTTP sudo ufw allow 80 # Перевірити налаштування sudo ufw statusПеревірка: Після налаштування ви повинні побачити щось на зразок:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Якщо команда каже, що "брандмауер вимкнений", то це треба виправити.
Якщо ви використовуєте iptables, налаштування трохи складніше, але логіка та ж сама: створюємо правила для SSH і HTTP, а решту блокуємо.
2. Крок 2: Робота з SELinux
SELinux — це той строгий вчитель, який стежить за поведінкою файлів і користувачів на вашому сервері. Його девіз: "Довіряй, але перевіряй". Увімкнемо SELinux і перевіримо його дію.
Увімкнення SELinux
Перевірка поточного статусу:
# Дізнаємось, увімкнений чи SELinux sestatusЯкщо режим показує
disabled, його потрібно увімкнути через файл конфігурації.Увімкнення SELinux через конфігурацію:
Файл налаштувань SELinux знаходиться за шляхом
/etc/selinux/config. Відкрийте його за допомогою текстового редактора (наприкладnano).sudo nano /etc/selinux/configЗнайдіть рядок:
SELINUX=disabledЗамініть на:
SELINUX=enforcingЗбережіть зміни та перезапустіть систему, щоб зміни набрали чинності:
sudo rebootПеревірка після перезавантаження.
Після завантаження сервера знову перевірте статус SELinux:
getenforceЯкщо система відповідає Enforcing, вітаємо, ви на варті безпеки!
Приклад із SELinux і веб-сервером
Припустимо, у вас є веб-сервер, який зберігає файли в каталозі /var/www/html. Перевіримо, як SELinux захищає його.
Перегляд контексту файлів: 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Перевірка роботи веб-сервера: Після налаштування контексту перевірте, чи працює ваш сервер, і чи немає помилок доступу.
3. Крок 3: Управління правами за допомогою ACL
ACL (Access Control List) — це як "додатковий ключ" для управління доступом. Коли стандартні права rwx обмежують, ACL дозволяє вам тонко налаштувати доступ для конкретних користувачів.
Створіть тестовий каталог
Давайте створимо каталог project_dir і налаштуємо його для доступу двох користувачів: user1 і user2.
Створюємо каталог:
sudo mkdir /project_dirНалаштовуємо права доступу:
Давайте дозволимо
user1повний доступ, аuser2тільки читання:# Повний доступ для user1 sudo setfacl -m u:user1:rwx /project_dir # Тільки читання для user2 sudo setfacl -m u:user2:r-- /project_dirПеревіряємо ACL:
# Перевірка поточних прав getfacl /project_dirВивід має показати ваші налаштування:
# file: /project_dir user::rwx user:user1:rwx user:user2:r--Встановлення прав за замовчуванням:
Щоб всі нові файли в каталозі автоматично успадковували права ACL, задамо їх за замовчуванням:
sudo setfacl -d -m u:user1:rwx /project_dir sudo setfacl -d -m u:user2:r-- /project_dir
4. Перевірка підсумкової конфігурації
Брандмауер:
- Переконайтесь, що порти SSH і HTTP доступні, а інші заблоковані. Спробуйте підключитися до сервера через SSH і відкрити веб-сайт у браузері.
SELinux:
- Перевірте контексти файлів, щоб впевнитись, що SELinux правильно обмежує доступ.
ACL:
- Зайдіть під користувачами
user1іuser2та спробуйте читати і записувати файл у каталозі/project_dir.
- Зайдіть під користувачами
Практичні завдання
- Налаштуйте брандмауер, що дозволяє тільки доступ по SSH і HTTP.
- Увімкніть SELinux у режимі
enforcingі переконайтесь, що веб-сервер працює коректно. - Налаштуйте ACL для каталогу
/project_dir, щобuser1мав повний доступ, аuser2тільки право на читання. - Перевірте активних користувачів у системі за допомогою команди
who.
Ці вправи допоможуть вам закріпити знання і зрозуміти, як застосовувати їх на практиці. І пам’ятайте: безпека в Linux — це не тільки конфігурації, а й постійна увага до деталей. Успіхів!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ