Первые шаги после получения сервера (будь то VPS, VDS или выделенный) критически важны. Правильная начальная настройка закладывает фундамент безопасности, стабильности и производительности будущих сервисов. Мы подробно пройдем все необходимые этапы: от выбора типа сервера и операционной системы до базовой настройки безопасности. К концу руководства вы получите минимально настроенный, защищенный сервер, готовый к установке веб-сервера, базы данных или другого необходимого программного обеспечения.
Выбор типа сервера и операционной системы
VPS, VDS или Выделенный сервер? Краткий обзор:
- VPS (Virtual Private Server):
- Виртуальный сервер, созданный на физическом хосте с использованием технологий виртуализации (часто OpenVZ, KVM). Ресурсы (CPU, RAM, диск) делятся между несколькими VPS. Хорошее соотношение цена/производительность для старта и средних нагрузок. Уровень изоляции зависит от типа виртуализации (KVM предпочтительнее).
- VDS (Virtual Dedicated Server):
- Фактически, синоним VPS на KVM-виртуализации, подчеркивающий более высокую степень изоляции и гарантию ресурсов. Часто используется как маркетинговый термин.
- Выделенный сервер (Dedicated Server):
- Физический сервер целиком в вашем распоряжении. Максимальная производительность, контроль и изоляция. Требует больше навыков администрирования и значительно дороже.
Вывод для старта:
- Для большинства задач (сайты, небольшие приложения) оптимален VPS/VDS на KVM.
Выбор дистрибутива Linux:
- Ubuntu Server LTS (Long-Term Support):
- Настоятельно рекомендуется. Обладает огромным сообществом, обширной документацией, репозиториями с актуальными пакетами и гарантированными обновлениями безопасности на 5 лет. Стабильность и удобство для новичков.
- Debian:
- Идеал стабильности и философии свободного ПО. Чуть более консервативен в версиях пакетов, чем Ubuntu. Отличная альтернатива с долгим циклом поддержки стабильных веток.
Рекомендация:
- Ubuntu Server LTS (например, 22.04 Jammy Jellyfish) – лучший выбор для начала благодаря простоте, поддержке и распространенности.
Минимальная установка операционной системы
Большинство провайдеров предлагают автоматическую установку ОС через панель управления (ISPmanager, cPanel, SolusVM, Proxmox или собственное решение). Если устанавливаете с ISO-образа:
- Загрузитесь с установочного носителя (ISO).
- Выберите язык, раскладку клавиатуры.
- Настройте сеть (обычно DHCP включен по умолчанию).
- Ключевой шаг:
- При выборе типа установки обязательно отметьте "Minimal Installation" или аналогичную опцию. Это установит только базовую систему без лишнего ПО (графический интерфейс, офисные пакеты и т.д.).
- Настройте диск (обычно подходит схема по умолчанию для всего диска с LVM или без).
- Задайте имя сервера (hostname), например, server1.
- Укажите ваше географическое местоположение для корректного часового пояса.
- Создайте начального пользователя:
- Введите полное имя (можно повторить имя пользователя).
- Задайте имя пользователя (например, admin или ваше имя). Запомните его!
- Установите надежный пароль! Эта учетная запись будет иметь права администратора (sudo). Запишите пароль в надежное место!
- Начните установку. Дождитесь ее завершения и перезагрузите сервер.
Первоначальная настройка операционной системы (После первого входа)
Войдите на сервер под учетной записью, созданной при установке, используя SSH (для Windows используйте PuTTY или Windows Terminal, для Linux/macOS – встроенный терминал: ssh ваш_пользователь@ip_адрес_сервера).
Обновление репозиториев и системы:
Первым делом всегда обновляйте списки пакетов и саму систему. Это закрывает известные уязвимости безопасности и обеспечивает стабильность.
- sudo apt update: Обновляет информацию о доступных пакетах из репозиториев.
- sudo apt upgrade -y: Устанавливает обновления для всех установленных пакетов (-y автоматически подтверждает действие).
Если ядро получило обновление, потребуется перезагрузка: sudo reboot.
Создание и настройка нового пользователя (опционально, но рекомендуется):
Хотя у вас уже есть пользователь с sudo, создание отдельного пользователя для повседневных задач – хорошая практика безопасности.
Создайте пользователя (замените newuser на желаемое имя):
Следуйте подсказкам, чтобы задать пароль и дополнительную информацию (можно оставить пустой).
Наделите нового пользователя правами sudo:
Проверьте: Выйдите из системы (exit) и войдите под новым пользователем (ssh newuser@ip_адрес_сервера). Попробуйте выполнить команду с sudo (например, sudo ls -l /root). Вам будет предложено ввести пароль нового пользователя. Если команда выполняется – права sudo работают.
Настройка аутентификации по SSH-ключам (Крайне важно!):
Пароли уязвимы к подбору. Аутентификация по криптографическим ключам намного безопаснее.
На вашем локальном компьютере (клиенте): Сгенерируйте пару SSH-ключей (если ее еще нет):
# ИЛИ, если ed25519 не поддерживается:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Нажимайте Enter, чтобы принять значения по умолчанию (файлы сохранятся в ~/.ssh/id_ed25519 и ~/.ssh/id_ed25519.pub или ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub). Защитите фразу-пароль (passphrase) для ключа, если задаете.
Скопируйте публичный ключ на сервер:
Введите пароль пользователя newuser на сервере. Ключ будет добавлен в файл ~/.ssh/authorized_keys этого пользователя.
Если ssh-copy-id недоступен: Скопируйте содержимое файла ~/.ssh/id_ed25519.pub (или id_rsa.pub) на клиенте и вручную добавьте его в файл ~/.ssh/authorized_keys на сервере (создав каталог ~/.ssh с правами 700 и файл authorized_keys с правами 600, если их нет).
Проверьте вход по ключу: Попробуйте войти на сервер: ssh newuser@ip_адрес_сервера. Если ключ настроен правильно, вход должен произойти без запроса пароля пользователя (запрос фразы-пароля ключа возможен, если вы ее задавали).
Отключите парольную аутентификацию (Только после успешной проверки ключа!):
Откройте конфигурацию SSH-демона:
Найдите и измените директивы:
PermitRootLogin no # Запретить вход root (уже должно быть после установки Ubuntu/Debian, но проверьте)
PubkeyAuthentication yes # Разрешить аутентификацию по ключам (обычно по умолчанию 'yes')
Сохраните файл (Ctrl+O, Enter в nano). Выйдите (Ctrl+X).
Примените изменения, перезагрузив SSH-демон:
# ИЛИ на некоторых системах
sudo systemctl restart sshd
Важно! Не закрывайте текущую SSH-сессию! Откройте новое окно терминала и попробуйте войти еще раз. Убедитесь, что вход по ключу работает и пароль больше не запрашивается. Только после этого закрывайте первоначальную сессию.
Настройка системного времени (NTP):
Корректное время необходимо для журналов, работы сертификатов (HTTPS) и синхронизации приложений. В Ubuntu/Debian используется systemd-timesyncd.
Проверьте текущее состояние:
Обратите внимание на строки System clock synchronized: (должно быть yes) и NTP service: (должно быть active).
Если NTP не активен:
Убедитесь, что служба запущена и время синхронизировано:
При необходимости установите пакет (обычно предустановлен):
(Опционально) Проверьте, с какими серверами синхронизируется время: timedatectl show-timesync.
Настройка базового брандмауэра (UFW - Uncomplicated Firewall):
UFW – простая фронтенд-обертка над iptables/nftables для управления фаерволом.
Установите UFW (если не установлен):
Установите политики по умолчанию:
sudo ufw default allow outgoing # Разрешить ВСЕ исходящие подключения
Откройте необходимые порты:
SSH (22/TCP): Крайне важно открыть ДО активации UFW! Если вы изменили стандартный порт SSH (например, на 2222), открывайте именно его!
# ИЛИ, если используется нестандартный порт (например, 2222):
sudo ufw allow 2222/tcp
HTTP (80/TCP): Для незашифрованного веб-трафика.
HTTPS (443/TCP): Для зашифрованного веб-трафика.
(Дополнительно) Если планируете использовать другие сервисы (FTP, SMTP, кастомные порты), откройте их сейчас аналогично.
Включите UFW:
Подтвердите операцию, нажав y. Убедитесь, что порт SSH (22 или ваш кастомный) открыт, иначе потеряете доступ!
Проверьте статус и правила:
Вывод должен показать статус Status: active и список разрешенных портов (22, 80, 443/tcp).
Поздравляем! Вы успешно выполнили первоначальную настройку вашего Linux-сервера. Мы выбрали оптимальный тип сервера (VPS/VDS) и ОС (Ubuntu Server LTS), установили минимальный набор ПО, обновили систему, создали пользователя, настроили безопасный вход по SSH-ключам, отключили прямой вход root, синхронизировали время и настроили базовый фаервол UFW.
Ваш сервер теперь значительно более защищен от распространенных атак (брутфорс паролей SSH, сканирование открытых портов).
Не забывайте регулярно поддерживать систему в актуальном состоянии:
Дополнительные рекомендации для усиления безопасности:
- Fail2Ban:
- Установите и настройте для автоматической блокировки IP-адресов, совершающих много неудачных попыток входа (особенно в SSH). (sudo apt install fail2ban).
- Автоматические обновления безопасности:
- Настройте пакет unattended-upgrades для автоматической установки критических обновлений безопасности. (sudo apt install unattended-upgrades и настройка /etc/apt/apt.conf.d/50unattended-upgrades).
- Мониторинг ресурсов:
- Установите htop (sudo apt install htop) или glances (sudo apt install glances) для удобного мониторинга использования CPU, RAM, диска и процессов.
- Резервное копирование:
- Реализуйте стратегию регулярного резервного копирования критически важных данных (файлы приложения, базы данных, конфигурации)! Это не опция, а необходимость.
Теперь вы можете приступать к установке необходимого программного стека для ваше