08.07.2025

Основы настройки Linux сервера от выбора железа до базовой безопасности

Первые шаги после получения сервера (будь то VPS, VDS или выделенный) критически важны. Правильная начальная настройка закладывает фундамент безопасности, стабильности и производительности будущих сервисов. Мы подробно пройдем все необходимые этапы: от выбора типа сервера и операционной системы до базовой настройки безопасности. К концу руководства вы получите минимально настроенный, защищенный сервер, готовый к установке веб-сервера, базы данных или другого необходимого программного обеспечения.

Выбор типа сервера и операционной системы

VPS, VDS или Выделенный сервер? Краткий обзор:

Вывод для старта:

Выбор дистрибутива Linux:

Рекомендация:

Минимальная установка операционной системы

Большинство провайдеров предлагают автоматическую установку ОС через панель управления (ISPmanager, cPanel, SolusVM, Proxmox или собственное решение). Если устанавливаете с ISO-образа:

Первоначальная настройка операционной системы (После первого входа)

Войдите на сервер под учетной записью, созданной при установке, используя SSH (для Windows используйте PuTTY или Windows Terminal, для Linux/macOS – встроенный терминал: ssh ваш_пользователь@ip_адрес_сервера).

Обновление репозиториев и системы:

Первым делом всегда обновляйте списки пакетов и саму систему. Это закрывает известные уязвимости безопасности и обеспечивает стабильность.

sudo apt update && sudo apt upgrade -y

Если ядро получило обновление, потребуется перезагрузка: sudo reboot.

Создание и настройка нового пользователя (опционально, но рекомендуется):

Хотя у вас уже есть пользователь с sudo, создание отдельного пользователя для повседневных задач – хорошая практика безопасности.

Создайте пользователя (замените newuser на желаемое имя):

sudo adduser newuser

Следуйте подсказкам, чтобы задать пароль и дополнительную информацию (можно оставить пустой).

Наделите нового пользователя правами sudo:

sudo usermod -aG sudo newuser

Проверьте: Выйдите из системы (exit) и войдите под новым пользователем (ssh newuser@ip_адрес_сервера). Попробуйте выполнить команду с sudo (например, sudo ls -l /root). Вам будет предложено ввести пароль нового пользователя. Если команда выполняется – права sudo работают.

Настройка аутентификации по SSH-ключам (Крайне важно!):

Пароли уязвимы к подбору. Аутентификация по криптографическим ключам намного безопаснее.

На вашем локальном компьютере (клиенте): Сгенерируйте пару SSH-ключей (если ее еще нет):

ssh-keygen -t ed25519 -C "your_email@example.com" # Предпочтительный современный алгоритм
# ИЛИ, если 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) для ключа, если задаете.

Скопируйте публичный ключ на сервер:

ssh-copy-id newuser@ip_адрес_сервера

Введите пароль пользователя 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-демона:

sudo nano /etc/ssh/sshd_config

Найдите и измените директивы:

PasswordAuthentication no # Запретить аутентификацию паролем

PermitRootLogin no # Запретить вход root (уже должно быть после установки Ubuntu/Debian, но проверьте)

PubkeyAuthentication yes # Разрешить аутентификацию по ключам (обычно по умолчанию 'yes')

Сохраните файл (Ctrl+O, Enter в nano). Выйдите (Ctrl+X).

Примените изменения, перезагрузив SSH-демон:

sudo systemctl restart ssh
# ИЛИ на некоторых системах
sudo systemctl restart sshd

Важно! Не закрывайте текущую SSH-сессию! Откройте новое окно терминала и попробуйте войти еще раз. Убедитесь, что вход по ключу работает и пароль больше не запрашивается. Только после этого закрывайте первоначальную сессию.

Настройка системного времени (NTP):

Корректное время необходимо для журналов, работы сертификатов (HTTPS) и синхронизации приложений. В Ubuntu/Debian используется systemd-timesyncd.

Проверьте текущее состояние:

timedatectl status

Обратите внимание на строки System clock synchronized: (должно быть yes) и NTP service: (должно быть active).

Если NTP не активен:

sudo timedatectl set-ntp on

Убедитесь, что служба запущена и время синхронизировано:

timedatectl status

При необходимости установите пакет (обычно предустановлен):

sudo apt install systemd-timesyncd

(Опционально) Проверьте, с какими серверами синхронизируется время: timedatectl show-timesync.

Настройка базового брандмауэра (UFW - Uncomplicated Firewall):

UFW – простая фронтенд-обертка над iptables/nftables для управления фаерволом.

Установите UFW (если не установлен):

sudo apt install ufw

Установите политики по умолчанию:

sudo ufw default deny incoming # Блокировать ВСЕ входящие подключения

sudo ufw default allow outgoing # Разрешить ВСЕ исходящие подключения

Откройте необходимые порты:

SSH (22/TCP): Крайне важно открыть ДО активации UFW! Если вы изменили стандартный порт SSH (например, на 2222), открывайте именно его!

sudo ufw allow 22/tcp # Для стандартного порта SSH
# ИЛИ, если используется нестандартный порт (например, 2222):
sudo ufw allow 2222/tcp

HTTP (80/TCP): Для незашифрованного веб-трафика.

sudo ufw allow 80/tcp

HTTPS (443/TCP): Для зашифрованного веб-трафика.

sudo ufw allow 443/tcp

(Дополнительно) Если планируете использовать другие сервисы (FTP, SMTP, кастомные порты), откройте их сейчас аналогично.

Включите UFW:

sudo ufw enable

Подтвердите операцию, нажав y. Убедитесь, что порт SSH (22 или ваш кастомный) открыт, иначе потеряете доступ!
Проверьте статус и правила:

sudo ufw status verbose

Вывод должен показать статус Status: active и список разрешенных портов (22, 80, 443/tcp).

Поздравляем! Вы успешно выполнили первоначальную настройку вашего Linux-сервера. Мы выбрали оптимальный тип сервера (VPS/VDS) и ОС (Ubuntu Server LTS), установили минимальный набор ПО, обновили систему, создали пользователя, настроили безопасный вход по SSH-ключам, отключили прямой вход root, синхронизировали время и настроили базовый фаервол UFW.

Ваш сервер теперь значительно более защищен от распространенных атак (брутфорс паролей SSH, сканирование открытых портов).

Не забывайте регулярно поддерживать систему в актуальном состоянии:

sudo apt update && sudo apt upgrade -y

Дополнительные рекомендации для усиления безопасности:

Теперь вы можете приступать к установке необходимого программного стека для ваше