![]() |
Чек-лист по настройке Linux, Freebsd, *nix — обсуждение
Чек-лист по настройке Linux, Freebsd, *nix — обсуждение
Если с самого начала правильно настроить систему *nix, то проблем потом будет гораздо меньше. Неважно, ставишь ты сервер, рабочую машину или тестовый стенд, базовые проверки и настройки всё равно нужны. Чтобы не искать всю информацию по крупицам, решил собрать сюда нормальный чек-лист по настройке Linux, Freebsd и других подобных систем — только то, что реально работает и нужно делать. По без воды, чтобы каждый мог пробежаться и не забыть ничего важного. Что это за чек-лист и зачем он Вообще, этот чек-лист — это набор основных шагов, которые помогут убедиться, что твоя система настроена правильно, безопасна и готова к эксплуатации. Никаких сложных рекомендаций и слишком глубоких теорий — только практичные вещи, которые реально пригодятся. Подходит и новичкам, которые не хотят забыть важные моменты, и опытным ребятам, чтобы быстро пройтись по новой машине и не пропустить ничего. Когда и где применяешь - При установке Linux, Freebsd и вообще *nix с нуля, чтобы не было «рутинных» косяков. - Для проверки и аудита уже работающих систем — чтобы выявить проблемы, которые могли выскочить из-за забытых настроек. - При переходе с одного дистрибутива на другой (например, с Ubuntu на Debian или с Freebsd на OpenBSD), чтобы сравнить настройки и учесть нюансы. - Перед деплоем на прод — чтобы в тестовом стенде все было как надо. - Для диагностики проблем по производительности, безопасности или сети — как быстрый гайд, куда смотреть. Разделю все по разделам с практическими примерами и полезными командами. 1. Проверка времени и часового пояса — почему это важно Правильное время — залог корретных логов, корректного срабатывания cron-задач и синхронизации сервисов. Пример: - Смотрим текущее время и часовой пояс: date - Проверяем статус временной службы: timedatectl status (в большинстве Linux-систем). В Freebsd используем ntpdate или timedatectl, если есть. - Если время сбивается, настроить NTP: systemctl enable --now systemd-timesyncd или ntpd для Freebsd. - Проверяем синхронизацию: ntpq -p (для ntpd). 2. Обновление системы и установка патчей — мастхэв Есть смысл попробовать эти три варианта, в зависимости от дистрибутива: - Ubuntu/Debian: apt update && apt upgrade -y - Freebsd: freebsd-update fetch && freebsd-update install - Arch/Manjaro: pacman -Syu Обязательно посмотреть, какие пакеты обновились, и если есть критичные багфиксы по безопасности — не откладывать. Пример: пару раз в месяц запускать обновление вручную или настроить автоматические. 3. Сетевые настройки и проверка маршрутов - Проверяем IP-адреса и интерфейсы: ip addr show / ifconfig (в Freebsd). - Проверяем маршруты: ip route / netstat -r - Проверяем dns: cat /etc/resolv.conf, стараемся использовать стабильные DNS-сервера, например 1.1.1.1 или 8.8.8.8. - Тестируем доступ в сеть: ping 8.8.8.8, ping google.com - Для более глубокого анализа: traceroute google.com или mtr. Пример: часто встречается проблема с отсутствием Default gateway — без него интернет работать не будет. 4. Пользователи и права — главная безопасность системы - Проверяем sudoers: cat /etc/sudoers (лучше через visudo), смотрим, кто может получить root-доступ. - Удаляем лишних пользователей, которых нет в списке или которые давно не заходили. - Проверяем, чтобы у root был надежный пароль и не был включён логин без пароля. Можно настроить аутентификацию с ssh-ключами. - Можно отключить root-доступ по SSH, прописав в /etc/ssh/sshd_config: PermitRootLogin no - Создаём отдельного пользователя с правами sudo. Пример: в системе, которую недавно настраивал, обнаружил пользователя с пустым паролем — это просто «сюрприз» для админа. 5. Фаерволл и базовая безопасность сети - В Linux проверяем статус ufw: ufw status - Если нет ufw, смотрим iptables: iptables -L -v -n - В Freebsd работает pfctl, статус смотрим через pfctl -sr - Настраиваем правила, чтобы пропускать только нужный трафик и заблокировать всё лишнее. - Если ufw не установлен, можно его запросто поставить и настроить: ufw enable, ufw allow 22 - Постоянно держать в голове, что открытые порты — это потенциальный риск. Пример: банально закрытый ssh-порт на нестандартный номер снижает количество автоматических сканирований. 6. Логи и мониторинг системы - Просматриваем основные логи: tail -f /var/log/syslog (Debian/Ubuntu), tail -f /var/log/messages (RedHat), в Freebsd проверяем /var/log/daemon.log и /var/log/messages. - Запускаем мониторинг процессов: htop, top, atop — чтобы видеть нагрузку CPU, RAM и что висит. - Смотрим сеть: netstat -tulnp для открытых портов. - Включаем auditd для отслеживания действий пользователей (если нужно). - Можно настроить логирование и мониторинг через syslog-ng или rsyslog для централизованных логов. Пример: часто помогает tail -f с фильтрами, если что-то упало, чтобы быстро найти ошибку. 7. Дополнительные полезные инструменты, которые держать в активе - nmap для сканирования портов локальной и внешней сети: nmap localhost, nmap 192.168.0.0/24 - tcpdump для просмотра сетевого трафика и поиска проблем на уровне пакетов. Например, tcpdump -i eth0 port 80 - fail2ban — чтобы блокировать IP, которые пытаются брутфорсить ssh или другие сервисы. - ssh-keygen и ssh-agent — чтобы настроить удобный и безопасный доступ к серверу - системные утилиты типа iotop (следить за диском), vmstat (память и процессы) и strace (отладка процессов). Пример: иногда nmap помогает обнаружить незакрытые сервисы, которые неожиданно запустились. Чек-лист по шагам для старта 1. Проверить дату и время, настроить NTP. 2. Обновить систему полностью. 3. Проверить и настроить сеть: IP, маршруты, DNS. 4. Проверить пользователей, удалить или заблокировать лишних, настроить sudo. 5. Включить и настроить фаерволл (ufw/iptables/pfctl). 6. Просмотреть логи на наличие ошибок, настроить мониторинг. 7. Проверить открытые порты и ненужные сервисы. 8. Настроить ssh-доступ с ключами, отключить root-login. 9. Установить fail2ban или аналог для защиты от атак. 10. Проверить резервные копии и план действий на случай восстановления. Типичные ошибки новичков и не только - Оставляют root с паролем по дефолту или вообще без пароля — открывают систему на потеху. - Не обновляют систему регулярно, игнорируя критичные патчи. - Забивают голову сложными настройками и модификациями, когда достаточно базовых и понятных правил. Принцип KISS (Keep It Simple Stupid) никто не отменял. - Не смотрят на время — из-за этого ломаются cron-задачи и логи становятся непонятными. - Не включают базовую фильтрацию по iptables/ufw, поэтому система сразу становится уязвимой. - Не проверяют открытые порты и запущенные сервисы — потом удивляются, откуда взялась нагрузка или атака. - Используют одинаковые пароли для нескольких пользователей и сервисов. FAQ — Часто задаваемые вопросы Вопрос: Как быстро понять, что не так с сетью? Ответ: ping для проверки базовой доступности, traceroute/mtr для понимания маршрута, ip addr show и netstat -r для локальных настроек. Вопрос: Как убедиться, что все обновления применились? Ответ: Для Debian/Ubuntu проверяем перевод apt update && apt upgrade, посмотрим дату и время последнего обновления через /var/log/apt/history.log. В Freebsd — дата последнего freebsd-update fetch. Вопрос: Можно ли быстро проверить, кто имеет root-доступ? Ответ: Посмотреть sudoers через visudo, проверить, кто в группе wheel, и список пользователей с UID=0 (cat /etc/passwd | grep ':0:') Вопрос: Что делать, если часы всегда сбиваются? Ответ: Настроить демона NTP (ntpd или systemd-timesyncd), проверить аппаратные часы hwclock, возможно, батарейка на материнской плате села. Вопрос: Как отследить, какие процессы сильно грузят систему? Ответ: Использовать htop или top, где видно CPU и память в реальном времени. Если надо понять, что именно делает процесс — strace или lsof помогут. Если у кого есть свои фишки или полезные команды по настройке *nix-систем, делитесь, всегда интересно собрать больше полезных практик и лайфхаков! |
| Время: 00:26 |