![]() |
Настройка Linux, Freebsd, *nix: базовый чек-лист — кто сталкивался?
Когда начинаешь ковыряться в настройке Unix-подобных систем — будь то Linux, FreeBSD или какие-то другие *nix — глаза разбегаются от всяких конфигураций, команд и общей философии. Мне кажется, главное в такой работе — это иметь под рукой базовый чек-лист и не пытаться сразу влезать во всё подряд. Собственно, хочу поделиться тем списком шагов и проверок, который обычно сам использую при настройке чистой системы. Может, кто-то возьмёт что-то для себя.
Что вообще такое Unix-подобные системы и почему их настройка важна Unix-подобные OS — это класс операционок, которые во многом похожи между собой по архитектуре и философии: текстовые конфиги, чёткое разделение прав, модульность и открытость. Например, Linux и FreeBSD используют kernel, который можно кастомизировать, а в их основе лежит идея управления процессами, пользователями и службами через простой, но мощный набор инструментов. Фишка в том, что настройка — это не только про внешний вид или удобство, а про стабильность, безопасность и оперативность в устранении проблем. Где это всё применяется? Практически везде. От домашнего сервера, где роутится медиа или запускается пара личных веб-проектов, до серьезных дата-центров и корпоративных облаков. Даже ноутбук с Linux часто требует базовой настройки, чтобы не мучиться с сетью или обновлениями. А на servers и appliance это особо важно, чтобы всё работало бесперебойно и без дырок. Базовый чек-лист для настройки *nix-системы Дальше до мелочей распишу, что обычно делаю для базовой настройки. Это не супер-подробный мануал, а именно основные контрольные точки. Если что — дополняйте в комментариях. 1. Актуализация и обновление системы - Обновление пакетов с использованием стандартного менеджера: apt для Debian/Ubuntu, yum/dnf для RHEL/CentOS, pacman для Arch, portupgrade или pkg для FreeBSD. - Проверяю, что установлены все security-патчи — некоторые уязвимости закрываются сразу, и этим нельзя пренебрегать. - Для сервисов, которые обновились и работают в фоне, если нужно, делаю рестарт — например, sshd, nginx, systemd-демоны. - Пример: на Ubuntu после apt update && apt upgrade всегда проверяю systemctl status sshd, чтобы скорее всего перезапустить службу, если ядро kernel обновилось. 2. Управление пользователями и группами - Проверяю список пользователей и группы в /etc/passwd и /etc/group. - Добавляю sudo-доступ только тем, кто реально его нуждается, через группу sudo или wheel. - Настраиваю политику паролей через PAM (файл /etc/pam.d/common-password или /etc/security/pwquality.conf), чтобы минимальная длина, сложность и срок действия паролей были адекватными. - Пример: на FreeBSD для безопасности запрещаю логин по root в sshd_config, а админов добавляю в wheel-разрешённых юзеров. 3. Службы и демоны: что оставить, что убрать - Внимательно смотрю, какие службы идут в автозапуске systemctl list-unit-files --type=service (Linux) или rcconf и service в BSD. Отключаю всё лишнее, чтобы уменьшить поверхность атаки и не грузить систему. - Обязательно запускаю sshd и ntpd/chronyd — синхронизация времени критична, особенно на серверах. - Настраиваю автозапуск при загрузке только необходимых сервисов. - Пример: на сервере с вебом выключаю bluetooth, cupsd и прочие демоны, которые не используются и могут повлиять на производительность. 4. Сетевая настройка и базовая безопасность - Проверяю конфигурацию сетевого интерфейса: addresses, routes, nameservers. - Настраиваю firewall: iptables или nftables для Linux, pf в FreeBSD. Основная задача — закрыть всё лишнее, разрешить только нужные порты. - Анализирую открытые порты и сокеты через netstat -tulpen или ss -tulnp, чтобы узнать, какие сервисы слушают сеть. - Настраиваю fail2ban или аналоги для защиты ssh от перебора пароля и других атак. - Пример: на русском домашнем сервере у меня в iptables настроено правило DROP по умолчанию и явное ACCEPT для 22 (ssh), 80/443 (веб). 5. Файловая система и контроль прав - Осматриваю разметку и точки монтирования; проверяю, что /tmp и /var/tmp не переполнены старыми временными файлами. - Просматриваю права доступа на файлы конфигурации в /etc и /var/log, чтобы они были доступны только нужным пользователям. - На FreeBSD иногда добавляю опции в fstab, чтобы ограничить запись в монтируемых точках (например, noexec или nosuid для временных каталогов). - Пример: на сервере стараюсь поддерживать 755 для папок, 644 для конфигов, и запрещаю гостевому «пользователю» что-то делать в /etc. 6. Логирование и мониторинг - Поглядываю логи через journalctl или tail -f /var/log/syslog, /var/log/messages, /var/log/auth.log. - Включаю ротацию логов через logrotate, чтобы файлы не разрастались и не исчерпывали место. - Ставлю базовый мониторинг — htop для процессов, iostat для дисков, vmstat для памяти и нагрузок. Можно использовать готовые скрипты или простые cron-уведомления. - Пример: при настройке mail-сервера всегда проверяю логи postfix и dovecot на ошибки и на попытки взлома. Типичные ошибки, которые часто встречаются - Настройки timezone забывают менять, из-за этого скрипты, cron и логирование работают неправильно — особенно критично для расписаний бэкапа. - SSH настроен так, что root может заходить по паролю, а ключи не используются — такая конфигурация часто становится дырой для атак. - Простой или пустой пароль, а PAM настроен очень слабо или некорректно. - Забывают обновлять систему вовремя, игнорируя уведомления об уязвимостях. - Логи неправильно ротируются, что приводит к заполнению дискового пространства, а система начинает «падать» из-за отсутствия места. - Активны лишние службы, которые не нужны и могут давать дополнительные точки входа. - Ошибки в конфиге файрвола, когда открыты слишком много открытых портов. Полезный софт, который всегда под рукой - htop — мониторинг процессов и ресурсов - netstat/ss — анализ сетевых сокетов и соединений - fail2ban — автоматическая блокировка подозрительных попыток входа по ssh и другим сервисам - auditd — аудит системных событий, полезен для отслеживания безопасности и расследования инцидентов - logrotate — управляет объёмом логов, чтобы не забивался диск - vmstat, iostat — для отслеживания состояния памяти, процессора и дисков - tcpdump — снятие трафика для диагностики сетевых проблем - sudo и своя база пользователей с группами — чтобы управлять доступом без сюрпризов FAQ для тех, кто только начал ковыряться с *nix - Нужно ли менять shell по умолчанию? Чаще всего bash или zsh хватает за глаза, зшч особенно нравится интерактивно. Менять стоит, если нужен специфичный функционал или удобства, например fish с автодополнением. - Как автоматизировать обновления? Можно настроить cron для запуска apt/yum с пуш-уведомлениями на почту. В Ubuntu есть unattended-upgrades — автоматическое применение патчей безопасности. - Как проверить, что firewall развернут правильно? Проверяешь список правил через iptables -L -v -n или аналог для nftables/pf, пробуешь подключиться к разным портам с другого хоста. Есть nmap — отличная штука для сканирования открытых портов. - В чем отличие настройки зон времени? Unix-системы обычно используют /etc/localtime, который должен быть символической ссылкой на зону из /usr/share/zoneinfo. Легко проверить date и timedatectl status. Неправильный часовой пояс сбивает cron и вызывает путаницу с логами. - Как проверить, что служба действительно работает? systemctl status имя_службы (Linux) или service имя статус (BSD) показывают состояние. Можно смотреть в логи сервиса. - Можно ли оставить root для управления системой? Технически — да, но лучшая практика — отключать ssh-доступ для root и управлять системой через пользователей с sudo-доступом. *** Короче, базовая настройка — это как фундамент в доме. Если её сделать как надо, потом не будешь биться головой об проблемы. Особенно важно держать систему обновлённой, контролировать кто и как заходит, отключать всё лишнее и не забывать про мониторинг. Ну и, конечно, не забывать про резервные копии, но это уже другая тема. Что думаете? Какие пункты для базовой настройки *nix-системы считаете самыми важными? Может, есть что интересное добавить в этот чек-лист? Хотел бы узнать, кто что обычно делает после установки и какие грабли ловит чаще всего. |
| Время: 19:39 |