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 — это не только конфигурации, но и постоянное внимание к деталям. Удачи!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ