Перейти до вмісту

Модуль 4.1: Зміцнення ядра та sysctl

Hands-On Lab Available
Ubuntu advanced 35 min
Launch Lab ↗

Opens in Killercoda in a new tab

Безпека Linux | Складність: [MEDIUM] | Час: 25–30 хв

Перед початком цього модуля:


Що ви зможете робити після цього модуля

Розділ «Що ви зможете робити після цього модуля»

Після завершення цього модуля ви зможете:

  • Налаштувати параметри sysctl для зміцнення вузла Kubernetes проти мережевих атак
  • Оцінити рекомендації CIS benchmark та вирішити, які з них застосовувати
  • Пояснити, як ASLR, stack protector та SYN cookies захищають від конкретних типів атак
  • Перевірити стан безпеки ядра працюючої системи за допомогою sysctl та /proc

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

Ядро Linux має сотні параметрів, які можна налаштовувати для покращення безпеки. Багато з них за замовчуванням мають небезпечні значення заради сумісності. Правильне «зміцнення» (hardening) ядра зменшує поверхню атаки та запобігає багатьом експлуатам.

Розуміння зміцнення ядра допоможе вам:

  • Захищати вузли Kubernetes — стандарти CIS require вимагають специфічних налаштувань sysctl.
  • Скласти іспит CKS — зміцнення ядра є прямою темою перевірки.
  • Запобігати мережевим атакам — відключення перенаправлення IP, ICMP редиректів.
  • Захищати пам’ять — ASLR, обмеження ptrace тощо.

Коли сканер безпеки вказує на неправильні налаштування sysctl, ви повинні знати, що вони означають і як їх виправити.


sysctl — це інструмент для модифікації параметрів ядра під час роботи системи. Ці параметри представлені як віртуальні файли в директорії /proc/sys/.

/proc/sys/
├── kernel/ # Поведінка ядра
│ ├── randomize_va_space
│ ├── pid_max
│ └── ...
├── net/ # Мережевий стек
│ ├── ipv4/
│ │ ├── ip_forward
│ │ ├── tcp_syncookies
│ │ └── ...
│ └── ipv6/
└── fs/ # Файлова система
├── file-max
└── ...

Мережеве зміцнення (Network Hardening)

Розділ «Мережеве зміцнення (Network Hardening)»

Має бути 0 на робочих станціях (не-роутерах). Проте, Kubernetes вузли потребують значення 1 для роботи мережі контейнерів.

Заборона ICMP редиректів запобігає атакам типу Man-in-the-Middle (MITM).

Terminal window
# Не приймати ICMP редиректи
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

Увімкнення SYN cookies допомагає серверу вистояти під час атаки типу “відмова в обслуговуванні” (DoS).

Terminal window
net.ipv4.tcp_syncookies = 1

Захист пам’яті (Memory Protection)

Розділ «Захист пам’яті (Memory Protection)»

ASLR (Address Space Layout Randomization)

Розділ «ASLR (Address Space Layout Randomization)»

Рандомізація адрес пам’яті робить експлуатацію вразливостей (наприклад, переповнення буфера) значно складнішою.

Terminal window
# Перевірити статус ASLR (має бути 2)
sysctl kernel.randomize_va_space

Постійне налаштування

Розділ «Постійне налаштування»

Команди sysctl -w діють тільки до перезавантаження. Для постійного ефекту створюйте файли в /etc/sysctl.d/.

Terminal window
# Створити файл налаштувань
echo "net.ipv4.tcp_syncookies = 1" | sudo tee /etc/sysctl.d/99-security.conf
# Застосувати всі файли негайно
sudo sysctl --system

  1. Яка команда показує ВСІ доступні параметри ядра?

    Відповідь `sysctl -a`.
  2. Що робить параметр net.ipv4.ip_forward = 1?

    Відповідь Дозволяє ядру пересилати пакети між різними мережевими інтерфейсами. Це перетворює ваш комп'ютер на роутер. Це необхідно для роботи Kubernetes, але має бути вимкнено на звичайних десктопах.
  3. Навіщо потрібні SYN cookies?

    Відповідь Для захисту від атак типу SYN flood. Вони дозволяють серверу обробляти нові запити на з'єднання, не витрачаючи пам'ять на зберігання стану напіввідкритих з'єднань.
  4. Де в Linux зберігаються параметри ядра як віртуальні файли?

    Відповідь У директорії `/proc/sys/`.

Завдання: Тимчасово змінити та перевірити параметр ядра.

  1. Перевірте поточний статус IP forwarding:
    Terminal window
    sysctl net.ipv4.ip_forward
  2. Увімкніть його тимчасово:
    Terminal window
    sudo sysctl -w net.ipv4.ip_forward=1
  3. Перевірте зміну:
    Terminal window
    cat /proc/sys/net/ipv4/ip_forward
  4. Вимкніть його назад:
    Terminal window
    sudo sysctl -w net.ipv4.ip_forward=0

Критерії успіху: Ви вмієте змінювати параметри ядра через sysctl та перевіряти їх через /proc.


  • sysctl керує поведінкою ядра “на льоту”.
  • ASLR — база захисту пам’яті.
  • SYN cookies — захист від DoS.
  • Постійність досягається через файли в /etc/sysctl.d/.
  • Kubernetes потребує специфічних налаштувань для своєї роботи.

Далі: Модуль 4.2: Профілі AppArmor — навчіться обмежувати дії програм на рівні операційної системи.