Настройка Ubuntu или Debian на VPS: практический подход
Реальный гайд первой настройки Debian, Ubuntu и AlmaLinux на свежем VPS: пользователи, sudo, пакеты, конфигурация SSH, файрвол и мелочи, которые неверно делают облачные образы.
Образы для облака — не установка на голое железо, и разница проявляется в первый час. Это руководство описывает, что действительно нужно сделать на свеже развёрнутом Debian, Ubuntu или AlmaLinux сверх приглашения на вход, и что можно пропустить, потому что образ уже это сделал.
Что образ уже сделал за вас
Отталкивайтесь от того, что дал образ, а не переустанавливайте. Цель — перейти от «умолчаний образа» к «серверу, который вы бы защищали», а не начать с нуля.
- ▹Сгенерировал host-ключи, настроил сеть и локаль.
- ▹Установил cloud-init — поэтому ручная настройка сети не нужна.
- ▹Развернул пользователя root или пользователя по умолчанию с SSH-ключом — в зависимости от образа.
Создайте sudo-пользователя раньше всего остального
Работать постоянно под root удобно и не нужно. Создайте обычного пользователя с sudo в первый же день, установите для него SSH-ключ и используйте его дальше.
- 01.adduser имя — обычный пользователь, без root.
- 02.usermod -aG sudo имя — выдать sudo.
- 03.Скопируйте свой authorized_keys в ~/.ssh/authorized_keys нового пользователя.
- 04.Проверьте: ssh имя@IP_СЕРВЕРА, затем sudo -v, чтобы убедиться, что sudo работает.
Обновите базовую систему
Облачные образы выходят месячной давности. Обновитесь до установки чего-либо, иначе первые же пакеты унаследуют уязвимости на момент сборки.
Debian/Ubuntu: apt update && apt full-upgrade -y && apt autoremove -y. AlmaLinux: dnf update -y. Если обновилось ядро, перезагрузитесь сейчас, до настройки сервисов на старом.
Установите базовые вещи
- ▹build-essential — тулчейн компиляции; нужен большинству сборок из исходников.
- ▹curl, wget, git, unzip, htop — то, к чему вы потянетесь в течение часа.
- ▹ca-certificates — без него HTTPS-запросы падают запутанными ошибками.
- ▹rsync — для переноса данных между серверами.
Настройте файрвол до добавления сервисов
Откройте SSH, задайте deny по умолчанию, затем открывайте порты по мере добавления сервисов, а не после. На Debian/Ubuntu это ufw, на AlmaLinux — firewalld. Точный порядок — в чек-листе hardening.
Задайте hostname, часовой пояс и синхронизацию времени
Неверный hostname ломает сертификаты обратного прокси и затрудняет чтение логов. Задайте его осознанно, согласуйте с DNS, поставьте часовой пояс и убедитесь, что NTP работает, чтобы метки времени были достоверными.
Включите автоматические обновления безопасности
unattended-upgrades на Debian/Ubuntu, dnf-automatic-timers на AlmaLinux. Перезагружайтесь для обновлений ядра по расписанию или позвольте инструменту делать это — но знайте, что именно происходит.
Мелкие вещи, которые облачные образы делают неверно
- ▹Штатный hostname редко совпадает с вашим доменом обратного прокси.
- ▹Локали часто минимальны или не заданы — исправьте LANG до того, как что-то его потребует.
- ▹Некоторые образы содержат лишнего пользователя по умолчанию; удалите его, если создали своего.
- ▹NTP запускается не всегда, из-за чего метки времени в каждом логе немного неверны.
Что делать дальше
Когда база в порядке, гайд по обратному прокси Caddy — естественный следующий шаг для всего, что доступно из веба, а гайд по hardening SSH разбирает защиту подробно.
FAQ
QПереустанавливать или использовать образ как есть?
AИспользовать как есть и исправить то, что образ делает неверно. Облачные образы — нормальная база; нужно лишь подстроить умолчания под свой hostname и файрвол.
QНужен ли мне пользователь без root, если образ дал root?
AЭто хорошая практика. Root по ключу допустим, но sudo-пользователь делает ежедневную работу безопаснее и проще для аудита.
QКакую ОС выбрать?
ADebian — стабильность и широта пакетов, Ubuntu — свежее ПО, AlmaLinux — RHEL-подобная корпоративная база. Поддерживаются все три.