![]() |
Настройка Linux, Freebsd, *nix: базовый чек-лист — личный опыт
Настройка Linux, Freebsd, *nix: базовый чек-лист — личный опыт
Введение Когда только начал ковыряться в Linux и FreeBSD, реально потерялся в куче всяких настроек и команд. Кажется, сделал всё вроде правильно, но что-то работало не так, как ожидал. Чтобы не метаться бесцельно, собрал для себя базовый чек-лист настроек и проверок, которые помогают привести систему к нормальному рабочему состоянию почти всегда. Если ты тоже новичок или хочешь систематизировать стартовую настройку — этот опыт и рекомендации будут кстати. Тут не будет воды или “чисто для галочки”. Только реальные дела, которые реально имеют смысл. Что такое базовая настройка *nix-системы? Под настройкой в данном случае я понимаю комплекс действий после установки дистрибутива или системы, чтобы она была: - актуальной (все последние патчи и обновления), - безопасной (чтобы не было открытых дыр и слабых мест), - удобной для работы (пользовательские права, среда и сервисы), - и стабильной (чтобы не глючила без причины). Это не только про серверы, хотя админам серверов этот список на вес золота, но и тем, кто собирает домашний сервер или просто хочет сделать работу с Linux/FreeBSD максимально удобной и безболезненной. Почему это важно? Если пропустить хотя бы один пункт — можно влететь на проблемы с безопасностью, потерять время на баги или даже сломать что-то в самый неподходящий момент. Особенно это актуально для тех, кто не работает с *nix каждый день и забывает про элементарные вещи. Что стоит — решил поделиться, чтобы другие не наступали на те же грабли. Где это пригодится? - Для сервера в локальной сети или в дата-центре; - Для домашнего сервера мультимедиа, файлового обмена, VPN; - На рабочей машине с Linux/FreeBSD в офисе; - Для десктопа, чтобы повысить стабильность и безопасность. Основные этапы базовой настройки — личный чек-лист 1. Обновление системы Первым делом всегда обновляю систему полностью. В Debian/Ubuntu: sudo apt update && sudo apt upgrade -y На FreeBSD: sudo pkg update && sudo pkg upgrade Обновление нужно делать сразу после установки, чтобы закрыть дырки в безопасности и получить последние исправления багов. Иногда ребут после обновы – обязательная вещь. 2. Пользователи и управление правами Не советую работать под root, если это не крайняя необходимость. Поэтому создаю отдельного пользователя для обычной работы: adduser username После этого добавляю пользователя в sudoers (или wheel в FreeBSD), чтобы выполнять команды с повышенными правами, не используя root напрямую. В Linux это: usermod -aG sudo username В FreeBSD обычно добавляют в группу wheel. 3. Отключение ненужных сервисов Много сервисов может стартовать по умолчанию, но не все нужны. Лучше отключить лишнее, чтобы сэкономить ресурсы и уменьшить поверхность атаки. В systemd (Linux): sudo systemctl disable сервис Например, если не нужен bluetooth: sudo systemctl disable bluetooth.service В FreeBSD: sudo service сервис stop sudo sysrc сервис_enable="NO" 4. Настройка сети Проверяю конфигурацию IP, маску сети, шлюз и DNS. Для диагностики: ip addr show или ifconfig ping 8.8.8.8 ping google.com Если нет пинга по имени, значит проблема с DNS. В FreeBSD DNS обычно настраивается через /etc/resolv.conf. 5. Настройка firewall Устанавливаю и настраиваю базовый firewall. На Linux часто используют ufw: sudo ufw enable sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh Для FreeBSD обычно pf. Конфиг pf лежит в /etc/pf.conf, где можно прописать правила фильтрации трафика. 6. Мониторинг и логирование Настраиваю ротацию логов, чтобы они не забивали диск. Использую logrotate в Linux, в FreeBSD это newsyslog. Мониторю ресурсы с помощью htop, top, iotop. Также ставлю fail2ban для безопасности, чтобы отсеивать подозрительные попытки входа. 7. Дополнительные настройки - Настраиваю часовой пояс и локаль (locale) под себя. - Оптимизирую sysctl, например, для сетевых параметров и безопасности. - Если сервер, настраиваю резервное копирование. Практические примеры Вот как у меня выглядит базовый набор команд и действий после чистой установки Ubuntu Server: sudo apt update && sudo apt upgrade -y adduser myuser usermod -aG sudo myuser systemctl disable apache2 ufw enable ufw default deny incoming ufw allow ssh logrotate -f /etc/logrotate.conf Подобный набор я проделал и на FreeBSD: sudo pkg update && sudo pkg upgrade adduser echo 'myuser ALL=(ALL) ALL' >> /usr/local/etc/sudoers.d/myuser service sshd enable service sshd start sudo sysrc pf_enable="YES" sudo pfctl -e Типичные ошибки новичков - Забывать обновлять систему и важные пакеты в дальнейшем. Иногда обновление пропускают на месяц и больше — и потом ловят неприятности. - Работать под root напрямую, что опасно и не надо. Через sudo безопаснее, можно легче отследить действия и случайно не сломать систему. - Оставлять включёнными все сервисы, которые идут по умолчанию. Например, иногда запускаются веб-серверы или почтовые службы, если они не нужны, это риск. - Не проверять настройки firewall или вообще его не ставить. - Игнорировать логи и мониторинг. Логи часто подсказывают, что идет не так, но их надо своевременно анализировать. - Не контролировать пространство на диске, особенно логи и временные файлы. Это может привести к падению системы. Полезные инструменты - htop — для мониторинга процессов и ресурсов, удобнее, чем стандартный top. - ufw — простой и понятный firewall для Linux. - fail2ban — блокирует IP после подозрительных попыток входа, защищает ssh и прочие сервисы. - sudo — всегда под рукой для безопастного повышения привилегий. - tcpdump — для глубокого анализа сетевого трафика, если надо разобраться, что идет по сети. - pkg (в FreeBSD), apt/yum/pacman — системы управления пакетами разных дистрибутивов. - logrotate/newsyslog — для контроля размера и "чистоты" логов. - ssh — лучший способ безопасно управлять сервером удалённо. Бонус: базовый чек-лист для первого запуска - [ ] Обновить систему и все пакеты - [ ] Создать обычного пользователя (не root) - [ ] Настроить sudo для этого пользователя - [ ] Отключить ненужные сервисы - [ ] Проверить сеть (IP, шлюз, DNS) - [ ] Включить и настроить firewall - [ ] Настроить ротацию логов - [ ] Установить fail2ban или аналог - [ ] Настроить мониторинг ресурсов (htop, top) - [ ] Проверить свободное место на диске FAQ Вопрос: Можно ли сразу работать под root? Ответ: Технически да, но это очень плохая практика. Лучше создать пользователя и использовать sudo. Так вы защищаете систему от случайных ошибок и повышаете безопасность. Вопрос: Как часто нужно обновлять систему? Ответ: Лучше делать это регулярно — хотя бы раз в неделю, если у вас сервер в продакшене, то обновления лучше планировать и тестировать, чтобы не сломать рабочие сервисы. Вопрос: Что если потерял доступ по ssh после настройки firewall? Ответ: Частая ошибка — забыть открыть порт ssh в firewall. В ufw надо делать "ufw allow ssh" до включения. Если доступ закрыт — можно подключиться через консоль или iLO/командную панель хоста, чтобы исправить правила. Вопрос: Стоит ли устанавливать fail2ban на десктоп? Ответ: Можно, если компьютер постоянно подключен к сети и особенно если есть сервисы, доступные извне. Но на десктопах обычно редко это нужно. Вопрос: Как понять, какие сервисы можно отключить? Ответ: Полезно гуглить по названию сервиса, читать, что он делает. Если не используете почтовый сервер, FTP, bluetooth — их можно смело отключать, чтобы сэкономить ресурсы и повысить безопасность. Вопрос: Почему ротация логов важна? Ответ: Логи могут накапливаться и съесть весь диск, особенно если система долго работает или есть ошибки в программах. Ротация позволяет ограничить размер файлов и сохранять только актуальные логи. Подводя итоги По опыту, четкое следование этим простым шагам позволяет быстро и безболезненно привести систему в порядок. А если вдруг с чего-то начинаешь путаться — этот чек-лист легко вспомнить, чтобы проверить базовые вещи. Конечно, есть масса специфических настроек под разные задачи, но фундамент всегда одинаковый. Делитесь своими наработками и вопросами — вместе легче разобраться! |
| Время: 06:05 |