Перейти к основному содержимому
Вернуться в категорию

Первоначальная настройка VPS: Чеклист безопасного сервера

Пошаговая первоначальная настройка VPS: первый SSH-вход, обновление системы, создание пользователя без root, усиление SSH, установка firewall и fail2ban для безопасного сервера.

Время чтения: 14 мин Начало работы с VPS
vpsпервоначальная настройкаsshбезопасностьfirewallfail2banlinuxчеклист
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Первоначальная настройка VPS: Чеклист безопасного сервера

Вы только что купили VPS и подключаетесь впервые. Что делать дальше? Стандартная конфигурация не оптимизирована для безопасности: SSH открыт с паролем root, нет firewall, система не обновлена. Это руководство предоставляет пошаговый чеклист для настройки безопасного сервера с нуля.

Следуйте всем шагам по порядку. Не закрывайте существующее SSH-соединение при изменении конфигурации SSH — тестируйте каждое изменение в новой вкладке терминала.

Шаг 1: Первое SSH-подключение

Получите IP-адрес и пароль root вашего сервера из панели REXE. Затем подключитесь из терминала:

hljs bash
ssh root@IP_СЕРВЕРА

После подключения проверьте информацию о системе:

hljs bash
# Информация об ОС
cat /etc/os-release

# Системные ресурсы
free -h
df -h
nproc

# Время работы
uptime

Шаг 2: Обновление системы

Первое, что нужно сделать — обновить систему. Устаревшие пакеты могут содержать уязвимости безопасности.

hljs bash
# Для Ubuntu/Debian
apt update && apt upgrade -y

# Очистка ненужных пакетов
apt autoremove -y
apt autoclean

# Для AlmaLinux/Rocky Linux
dnf update -y
dnf autoremove -y

Если во время обновления появится обновление ядра, возможно, потребуется перезагрузить сервер: reboot

Шаг 3: Создание пользователя без root

Работа напрямую от root опасна. Создайте обычного пользователя с правами sudo:

hljs bash
# Создать нового пользователя
adduser admin

# Добавить в группу sudo (Ubuntu/Debian)
usermod -aG sudo admin

# Добавить в группу wheel (AlmaLinux/Rocky)
usermod -aG wheel admin

# Переключиться на пользователя и проверить
su - admin
sudo whoami  # Должно вывести "root"
exit

Настройка SSH-ключей

Использование SSH-ключей вместо паролей намного безопаснее:

hljs bash
# На локальной машине сгенерируйте пару ключей
ssh-keygen -t ed25519 -C "vps-admin"

# Скопируйте публичный ключ на сервер
ssh-copy-id admin@IP_СЕРВЕРА

# Или вручную:
cat ~/.ssh/id_ed25519.pub
# Вставьте вывод на сервере:
mkdir -p /home/admin/.ssh
nano /home/admin/.ssh/authorized_keys
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys
chown -R admin:admin /home/admin/.ssh

Шаг 4: Усиление конфигурации SSH

Отредактируйте файл конфигурации SSH:

hljs bash
nano /etc/ssh/sshd_config

Применить следующие настройки:

# Отключить вход root
PermitRootLogin no

# Отключить аутентификацию по паролю (после настройки SSH-ключа)
PasswordAuthentication no

# Запретить пустые пароли
PermitEmptyPasswords no

# Максимальное количество попыток входа
MaxAuthTries 3

# Тайм-аут входа
LoginGraceTime 30

# Изменить порт SSH (необязательно, но рекомендуется)
Port 2222

# Разрешить только определённым пользователям
AllowUsers admin
hljs bash
# Проверить конфигурацию
sshd -t

# Перезапустить службу SSH
systemctl restart sshd

# Проверить подключение из НОВОГО ТЕРМИНАЛА!
ssh -p 2222 admin@IP_СЕРВЕРА

Если вы изменили порт SSH, убедитесь, что можете подключиться через новый порт, прежде чем обновлять правила firewall!

Шаг 5: Настройка Firewall

С UFW (Ubuntu/Debian)

hljs bash
# Установить UFW
apt install ufw -y

# Политики по умолчанию
ufw default deny incoming
ufw default allow outgoing

# Разрешить SSH-порт (используйте 2222, если изменили)
ufw allow 2222/tcp
# или для стандартного порта:
# ufw allow ssh

# Веб-сервисы (при необходимости)
ufw allow 80/tcp
ufw allow 443/tcp

# Включить UFW
ufw enable

# Проверить статус
ufw status verbose

С firewalld (AlmaLinux/Rocky)

hljs bash
# Запустить firewalld
systemctl start firewalld
systemctl enable firewalld

# Разрешить SSH-порт
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload

# Проверить статус
firewall-cmd --list-all

Шаг 6: Установка Fail2Ban

Fail2Ban обеспечивает автоматическую защиту от атак методом перебора:

hljs bash
# Установить Fail2Ban
apt install fail2ban -y  # Ubuntu/Debian
# или
dnf install fail2ban -y  # AlmaLinux/Rocky

# Создать локальную конфигурацию
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
hljs ini
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
hljs bash
# Запустить Fail2Ban
systemctl start fail2ban
systemctl enable fail2ban

# Проверить статус
fail2ban-client status
fail2ban-client status sshd

Шаг 7: Настройка часового пояса

Правильный часовой пояс важен для понятных лог-файлов:

hljs bash
# Проверить текущий часовой пояс
timedatectl

# Установить часовой пояс (пример: Москва)
timedatectl set-timezone Europe/Moscow

# Включить синхронизацию NTP
timedatectl set-ntp true

# Проверить
timedatectl status
date

Шаг 8: Установка основных инструментов

hljs bash
# Полезные инструменты
apt install -y \
  curl wget git vim htop \
  net-tools dnsutils \
  unzip tar \
  logwatch

Чеклист проверки после настройки

hljs bash
# Работает ли служба SSH?
systemctl status sshd

# Активен ли firewall?
ufw status  # или: firewall-cmd --state

# Работает ли Fail2Ban?
fail2ban-client status

# Обновлена ли система?
apt list --upgradable 2>/dev/null | head -20

# Открытые порты
ss -tlnp

# Последние попытки входа
grep "Failed password" /var/log/auth.log | tail -10

✅ Быстрый чеклист

  • Первое SSH-подключение выполнено
  • Система обновлена (apt update && apt upgrade)
  • Создан пользователь sudo без root
  • SSH-ключ установлен
  • Вход root по SSH отключён (PermitRootLogin no)
  • Вход по паролю SSH отключён (PasswordAuthentication no)
  • Порт SSH изменён (необязательно)
  • Firewall установлен и настроен
  • Fail2Ban установлен и включён
  • Часовой пояс настроен
  • Основные инструменты установлены
  • SSH-подключение протестировано с новым пользователем

Заключение

После выполнения этих шагов ваш сервер соответствует базовым стандартам безопасности. В качестве следующего шага рекомендуем ознакомиться с нашим руководством по усилению безопасности сервера. Не забывайте регулярно обновлять систему и следить за логами.

Часто задаваемые вопросы

Где найти пароль root при первом подключении к VPS?

Пароль root отображается на странице сведений о вашем сервере в панели клиента REXE. Он также отправляется по электронной почте после завершения настройки сервера. Рекомендуется изменить пароль после первого входа.

Могу ли я войти с паролем без SSH-ключа?

Да, но это не рекомендуется. Вход по паролю уязвим для атак методом перебора. После настройки SSH-ключа отключите вход по паролю, установив PasswordAuthentication no. Обязательно сделайте резервную копию ключа, чтобы не потерять доступ.

Обязательно ли менять порт SSH?

Не обязательно, но рекомендуется. Стандартный порт 22 является целью автоматизированных инструментов сканирования. Изменение порта значительно снижает такие атаки. В сочетании с Fail2Ban обеспечивает гораздо более эффективную защиту.

Я не могу получить доступ к серверу после настройки firewall, что делать?

Вы можете подключиться к серверу через VNC/KVM-консоль в панели REXE. Исправьте правила firewall через консоль: выполните ufw allow ВАШ_SSH_ПОРТ/tcp. Всегда убеждайтесь, что разрешили ваш SSH-порт перед изменением правил firewall.

Я случайно заблокировал свой IP с помощью Fail2Ban, что делать?

Подключитесь через VNC-консоль в панели REXE и выполните: fail2ban-client set sshd unbanip ВАШ_IP_АДРЕС. Чтобы предотвратить это в будущем, добавьте свой IP в список ignoreip в /etc/fail2ban/jail.local: добавьте строку ignoreip = 127.0.0.1/8 ВАШ_IP.

Связанные статьи

Сетевой трафикВходящий GbpsИсходящий Gbps