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

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

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

Время чтения: 14 мин Начало работы с VPS
vpsпервоначальная настройкаsshбезопасностьfirewallfail2banlinuxчеклист

Содержание

Первоначальная настройка 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-подключение протестировано с новым пользователем

Заключение

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