Первоначальная настройка VPS: Чеклист безопасного сервера
Пошаговая первоначальная настройка VPS: первый SSH-вход, обновление системы, создание пользователя без root, усиление SSH, установка firewall и fail2ban для безопасного сервера.
Содержание
Первоначальная настройка VPS: Чеклист безопасного сервера
Вы только что купили VPS и подключаетесь впервые. Что делать дальше? Стандартная конфигурация не оптимизирована для безопасности: SSH открыт с паролем root, нет firewall, система не обновлена. Это руководство предоставляет пошаговый чеклист для настройки безопасного сервера с нуля.
Следуйте всем шагам по порядку. Не закрывайте существующее SSH-соединение при изменении конфигурации SSH — тестируйте каждое изменение в новой вкладке терминала.
Шаг 1: Первое SSH-подключение
Получите IP-адрес и пароль root вашего сервера из панели REXE. Затем подключитесь из терминала:
ssh root@IP_СЕРВЕРА
После подключения проверьте информацию о системе:
# Информация об ОС
cat /etc/os-release
# Системные ресурсы
free -h
df -h
nproc
# Время работы
uptime
Шаг 2: Обновление системы
Первое, что нужно сделать — обновить систему. Устаревшие пакеты могут содержать уязвимости безопасности.
# Для 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:
# Создать нового пользователя
adduser admin
# Добавить в группу sudo (Ubuntu/Debian)
usermod -aG sudo admin
# Добавить в группу wheel (AlmaLinux/Rocky)
usermod -aG wheel admin
# Переключиться на пользователя и проверить
su - admin
sudo whoami # Должно вывести "root"
exit
Настройка SSH-ключей
Использование SSH-ключей вместо паролей намного безопаснее:
# На локальной машине сгенерируйте пару ключей
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:
nano /etc/ssh/sshd_config
Применить следующие настройки:
# Отключить вход root
PermitRootLogin no
# Отключить аутентификацию по паролю (после настройки SSH-ключа)
PasswordAuthentication no
# Запретить пустые пароли
PermitEmptyPasswords no
# Максимальное количество попыток входа
MaxAuthTries 3
# Тайм-аут входа
LoginGraceTime 30
# Изменить порт SSH (необязательно, но рекомендуется)
Port 2222
# Разрешить только определённым пользователям
AllowUsers admin
# Проверить конфигурацию
sshd -t
# Перезапустить службу SSH
systemctl restart sshd
# Проверить подключение из НОВОГО ТЕРМИНАЛА!
ssh -p 2222 admin@IP_СЕРВЕРА
Если вы изменили порт SSH, убедитесь, что можете подключиться через новый порт, прежде чем обновлять правила firewall!
Шаг 5: Настройка Firewall
С UFW (Ubuntu/Debian)
# Установить 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)
# Запустить 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 обеспечивает автоматическую защиту от атак методом перебора:
# Установить 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
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
# Запустить Fail2Ban
systemctl start fail2ban
systemctl enable fail2ban
# Проверить статус
fail2ban-client status
fail2ban-client status sshd
Шаг 7: Настройка часового пояса
Правильный часовой пояс важен для понятных лог-файлов:
# Проверить текущий часовой пояс
timedatectl
# Установить часовой пояс (пример: Москва)
timedatectl set-timezone Europe/Moscow
# Включить синхронизацию NTP
timedatectl set-ntp true
# Проверить
timedatectl status
date
Шаг 8: Установка основных инструментов
# Полезные инструменты
apt install -y \
curl wget git vim htop \
net-tools dnsutils \
unzip tar \
logwatch
Чеклист проверки после настройки
# Работает ли служба 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-подключение протестировано с новым пользователем
Заключение
После выполнения этих шагов ваш сервер соответствует базовым стандартам безопасности. В качестве следующего шага рекомендуем ознакомиться с нашим руководством по усилению безопасности сервера. Не забывайте регулярно обновлять систему и следить за логами.
Связанные статьи
Выбор дистрибутива Linux: Ubuntu, Debian, AlmaLinux
Выберите правильный дистрибутив Linux для VPS: сравнение Ubuntu LTS, Debian, AlmaLinux и Rocky Linux, плюсы и минусы, сценарии использования и рекомендации.
VPS vs VDS vs Выделенный сервер: Технический сравнительный анализ
Технические различия между VPS, VDS и выделенными серверами: типы виртуализации, сравнение производительности, сценарии использования, ценообразование и когда обновляться.