Использование Red OS в корпоративной ИТ-инфраструктуре

Не отключайте SELinux. Настройте. Прямо сейчас. Большинство проблем с безопасностью в окружениях на базе отечественных дистрибутивов начинаются с этого. В логах – «Permission denied», в системе – дыры. Проверить режим можно так:

getenforce

Если получаете Permissive или, хуже, Disabled – это срочно к пересмотру. Вы должны видеть Enforcing. Меняется через конфигурацию:

vi /etc/selinux/config

Анализируйте. Используйте audit2allow для генерации политик. Не лезьте руками в контекст без понимания. Это не просто метки. Это контур доступа. Он держит всю систему.

Важно помнить: отключённый SELinux – это скомпрометированная безопасность без логов и сигналов тревоги.

Дальше – сетевые службы. Не запускайте по умолчанию sshd на всех интерфейсах. Зачем? Зачем открывать наружу всё подряд? Правильно, ограничить:

sshd_config: ListenAddress 192.168.10.1

Желательно – с ключевой авторизацией. Пароли – прошлый век. Генерируем:

ssh-keygen -t ed25519

Копируем:

ssh-copy-id user@host

Логика простая: не пускай, если не уверен. Нет авторизации по ключу – нет доступа.

Следующий узел – обновления. Не тяните. Используйте dnf с включённым репозиторием безопасности. Пример cron-задачи:

0 4 * * * /usr/bin/dnf -y --security update

Внимание! Обновления ядра требуют перезагрузки. Планируйте простоевое окно заранее.

Теперь о десктопах. Если используете графику – настраивайте политики через polkit. Это не игрушка. Это контроль привилегий на уровне GUI. Без правильной настройки – любой может поднять gnome-disks и сделать беду.

И последнее в этом блоке – журналирование. Используйте journalctl с фильтрами. Настройте ротацию:

vi /etc/systemd/journald.conf

Убедитесь, что SystemMaxUse не съедает весь раздел. Да, журнал может вырасти до десятков гигабайт, если его не ограничивать.

Зачем это всё? Чтобы не бегать потом, не разбираться в аномалиях и не латать дырки в боевом режиме. Всё просто: настрой один раз – забудь на год. Или не настрой – и жди сюрпризов. Выбирай.

Интеграция Red OS с системами управления доступом на предприятии

Подключайте SSSD. Без него – никакой централизованной аутентификации. Только локальные пользователи. Настроить можно так:


dnf install sssd realmd oddjob oddjob-mkhomedir adcli samba-common-tools -y

Затем ищем контроллер:


realm discover example.local

Присоединяемся:


realm join --user=админ example.local

Провал? Проверяйте часы. Отставание больше 5 секунд – тикеты Kerberos летят в мусорку. Настройка времени – строго через chronyd.

Права. Кто будет логиниться? Не все подряд, только указанные группы:

Читайте также:  Установка и настройка LAMP-сервера на Debian 9 для создания веб-приложений


realm permit -g linux_users

Проверка работы:


id user@example.local

Если пусто – где-то провал в NSS. Разбирайтесь через:


sss_cache -E && systemctl restart sssd

Далее – автоматическое создание домашней директории:


authconfig --enablemkhomedir --update

Внимание! Убедитесь, что PAM-файлы не переписаны сторонними скриптами или GUI-настройщиками.

Теперь про ограничения. Вы не хотите, чтобы к серверу логинились пользователи из отдела продаж. Только devops, только hardcore. Пример конфигурации в /etc/sssd/sssd.conf:


access_provider = simple
simple_allow_groups = devops

Убедитесь, что права доступа на конфиг – 600. Иначе SSSD не стартует.

Важно помнить: неправильный доступ к sssd.conf – это сбой всего механизма авторизации. Без логов. Без жалоб. Просто черный экран входа.

Хотите MFA? Настраивайте FreeIPA или интеграцию с внешним RADIUS через pam_radius_auth. Простое подключение через PAM выглядит так:


auth required pam_radius_auth.so

Но проверьте, чтобы этот модуль был установлен. И да, он не входит в базовые репозитории. Ставим вручную или собираем.

Ограничение доступа по IP – через tcp_wrappers устарело. Используйте sshd_config:


Match Address 192.168.1.0/24
AllowUsers *@example.local

Никаких AllowUsers root. Это не тестовый стенд.

И логика простая. Всё что не явно разрешено – запрещено. Это правило железное. Особенно при работе в связке с AD и внешними LDAP.

А ещё. Проверьте лог /var/log/sssd/sssd_DOMAIN.log при любой аномалии. Не /var/log/messages. Не journalctl. Только sssd. Там вся правда.

Нет логина – ищем по уровням:

  • Kerberos: kinit, klist
  • LDAP: ldapsearch
  • SSSD: вышеуказанный лог
  • PAM: pam-auth-update и authconfig

Механика простая. Не работает логин – это цепочка. Рвется звено – падает вся конструкция. Находите слабое место. Чините. И не доверяйте интерфейсам. Только терминал. Только ручной контроль.

Настройка групповых политик безопасности в среде Red OS

Начните с authselect. Не трогайте напрямую /etc/nsswitch.conf или /etc/pam.d/ – сломаете всё. Работать надо через профили:

authselect select sssd with-faillock --force

Это включит блокировку после неудачных попыток входа. Настройка:


/etc/security/faillock.conf:
deny = 5
unlock_time = 900

По умолчанию это не включено. А значит любой может брутить ssh хоть до утра. Контроль нужен жёсткий.

Теперь – sudo. Никаких ALL=(ALL) NOPASSWD:ALL. Выдавайте права точечно, через группы. Пример:


%admins ALL=(ALL) ALL

А группу admins создаёте в LDAP или FreeIPA, привязываете только нужных. Без этих самодельных user1:x:1001:user1.

Важно! Никогда не редактируйте /etc/sudoers напрямую. Используйте visudo. Один пробел – и вы без рута.

Дальше – запрет USB. Вопрос частый: как отключить флешки массово? Решение:

Читайте также:  Автоматизация Python-скриптов с помощью Systemd: пошаговое руководство


vi /etc/modprobe.d/usb-storage.conf
install usb-storage /bin/true

После перезагрузки – никаких съёмных устройств. Если надо вернуть – уберите строку и перезапустите udev.

А вот ограничение доступа к tty. Только нужные логинятся через консоль:


vi /etc/securetty
оставьте только: tty1

Теперь про ограничения по времени. Хочешь логиниться ночью – нет, нельзя. Используйте PAM-модуль:


vi /etc/security/time.conf
login;*;devops;!Al0000-0800

Это запрет входа группе devops с полуночи до 8:00. Не актуально для продакшена? Ошибка. Всё, что не нужно – отключено.

Для автоматического контроля – auditd. Настройка слежения за файлами sudo:


auditctl -w /etc/sudoers -p wa -k sudo_watch

И, конечно, настройка логирования попыток доступа к важным конфигурациям. Всё фиксируется в:

/var/log/audit/audit.log

Ищите по ключу:

ausearch -k sudo_watch

Хотите централизованно? Подключайте rsyslog к syslog-серверу. Конфигурация:


*.* @@192.168.0.10:514

Помните: если политики безопасности нигде не зафиксированы, значит, их не существует. Это не мнение. Это факт.

Группы – это каркас. Политики – арматура. Без них вся структура управления доступом проваливается при первой нагрузке. Настрой правильно. Один раз. Или будет поздно.

Использование Red OS для автоматизации рабочих процессов в отделах

Первое – cron. Не используете? Значит задачи делают вручную. Хаос. Пример: резервное копирование каталогов бухучета каждый вечер в 21:30.


30 21 * * * rsync -a /mnt/1C/ /backup/1C/ >> /var/log/backup.log 2>&1

Где лог? Вот он. Где отчёт? Вот он. Никаких сюрпризов. Всё чётко. Всё фиксируется.

Второе – systemd timers. Крон мёртв для приложений. Запускаем сервис по времени:


/etc/systemd/system/db-sync.service:
[Service]
Type=oneshot
ExecStart=/usr/local/bin/sync_db.sh


/etc/systemd/system/db-sync.timer:
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target

Запускаем:


systemctl enable --now db-sync.timer

Работает как часы. Авария? Проверка логов через journalctl -u db-sync.service. Ошибка? Правим скрипт.

Третье – автоматическая установка пакетов. Не руками. Не через yum/dnf в консоли. Используем Ansible:


- hosts: бухгалтерия
tasks:
- name: Установить LibreOffice
dnf:
name: libreoffice
state: present

Один playbook – и весь отдел готов к отчётному периоду.

Надо настроить принтеры? Пример:


lpadmin -p HP_Laser -E -v socket://192.168.10.5 -m everywhere

Готово. Все пользователи отдела печатают без плясок с GUI.

Помните: всё, что делается руками, обязательно сломается. Скрипты не забывают. Админы – да.

Дальше – автоматизация монтирования сетевых папок. Только через autofs. Не fstab. Пример:


/etc/auto.master:
/mnt/smb /etc/auto.smb --timeout=60


/etc/auto.smb:
1C -fstype=cifs,rw,credentials=/etc/smb.passwd ://fileserver/1C

Папка монтируется по требованию. Никаких зависаний на загрузке, если сервера нет. Надёжно. Предсказуемо.

Автозапуск приложений при логине? У GNOME – gsettings. Пример скрипта:


gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings/custom0/ command '/usr/bin/keepassxc'

И не надо просить сотрудников запускать руками. Запускается само.

Внимание! Всегда проверяйте автоматизации на стенде. Один неправильный символ – и весь отдел без доступа к данным.

Сценарии для бухгалтеров. Планировщики для юристов. Распечатка отчётов для HR. Всё это можно автоматизировать на системном уровне. Без стороннего ПО. Без зависимости от конкретных людей.

Главное – не бояться писать bash-скрипты. Пример отправки ежедневного отчёта по почте:


echo "Отчёт готов" | mail -s "Ежедневный отчёт" user@domain.local

Не работает mail? Установите mailx и настройте ssmtp. Всё тривиально.

Мониторинг и аудит событий в Red OS с помощью встроенных инструментов

Начать нужно с auditd. Не включён – значит всё мимо. Установка стандартная:


dnf install audit -y
systemctl enable --now auditd

Проверка статуса:


auditctl -s

Работает? Идём дальше. Правила аудита на лету добавлять бессмысленно. После перезагрузки всё пропадёт. Используем /etc/audit/rules.d/. Пример отслеживания изменения конфигурации sudo:


-w /etc/sudoers -p wa -k sudo_change

Применение:


augenrules --load

Поиск событий:


ausearch -k sudo_change

Расшифровка – через aureport или ausearch -i. Без -i лог нечитаемый. Только raw.

Теперь мониторинг логинов. Добавляем правило:


-a always,exit -F arch=b64 -S execve -F euid=0 -k root_cmd

Слишком много? Фильтруем по пользователю:


-F auid=1000

Теперь о journalctl. Забудьте про /var/log/messages. Всё уже здесь:


journalctl -u sshd

Последние 100 строк:


journalctl -u sshd -n 100

Фильтрация по времени:


journalctl --since "2025-05-01" --until "2025-05-23"

Для слежения за изменением групп, паролей, прав доступа – только /var/log/audit/audit.log. Всё остальное – ложная безопасность.

Хотите алерты? Подключите auditd к syslog-ng или rsyslog, настройте отправку по сети:


/etc/rsyslog.conf:
:programname, isequal, "auditd" @@192.168.0.100:514

И получаете контроль в реальном времени. Проверили – отреагировали. Не проверили – поздно.

Теперь psacct. Старый, но работает. Устанавливаем:


dnf install psacct -y
systemctl enable --now psacct

Смотрим, кто запускал что:


sa
lastcomm user123

Можно увидеть: кто запустил rm, когда, с какими параметрами. Аргументы сохраняются. Аргументы – улика.

Внимание! Без настроенного аудита никакая служба безопасности не докажет, что root сделал то или это. Всё будет «по слухам».

Теперь контроль изменений файлов в системных разделах. Используем AIDE. Настройка:


dnf install aide -y
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Проверка:


aide --check

Любое изменение – будет в отчёте. Файл изменился, размер совпал, но время – другое? Уже повод копать глубже.

Важно помнить: если у вас нет лога – у вас нет инцидента. Есть догадки. Только логи превращают догадки в доказательства.

Дополнительно – включите auditbeat, если у вас Elastic Stack. Но это уже не встроенное. А встроенное – работает не хуже. Главное – включить и не забыть, что оно там есть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *