Среднее время до первой попытки взлома свежего сервера — менее 10 минут. Боты сканируют интернет в поисках стандартного порта SSH, разрешенного root и слабых паролей. Следуя инструкции, вы превратите чистый VPS в надежно защищенную платформу.
Подключитесь через root (пароль выдан хостингом):
ssh root@your_server_ip
Обновите систему до актуального состояния:
apt update && apt upgrade -y
Проверьте необходимость перезагрузки после обновления ядра:
ls /var/run/reboot-required 2>/dev/null && echo "Reboot required"
reboot # если нужна перезагрузка
Работать из-под root рискованно. Создадим отдельного пользователя с правами sudo:
adduser admin # замените admin на желаемое имя
usermod -aG sudo admin
Задайте сложный пароль. Дополнительные поля (телефон, комната) можно пропустить Enter.
На вашем локальном компьютере создайте пару ключей (если ещё нет):
ssh-keygen -t ed25519 -C "your_email@example.com"
Скопируйте публичный ключ на сервер для пользователя admin:
ssh-copy-id admin@your_server_ip
Проверьте вход по ключу:
ssh admin@your_server_ip
Отредактируйте конфигурацию SSH-демона:
sudo nano /etc/ssh/sshd_config
Внесите/проверьте параметры:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
# Port 2222 # опционально — сменить порт
Примените настройки:
sudo sshd -t # проверить синтаксис
sudo systemctl restart sshd
admin (с указанием порта, если меняли). Успешное подключение = можно закрывать старую сессию.sudo ufw default deny incoming
sudo ufw default allow outgoing
# Разрешить SSH (порт 22 или изменённый)
sudo ufw allow 2222/tcp # если порт 2222
# или sudo ufw allow ssh
# Для веб-сервера:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Включить защиту от брутфорса для SSH:
sudo ufw limit 2222/tcp
sudo ufw enable
sudo ufw status verbose
Статус должен быть active с правилами входящих подключений.
sudo apt install fail2ban -y
sudo nano /etc/fail2ban/jail.local
Содержимое jail.local (базовая защита SSH):
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222 # или 22, если не меняли порт
logpath = /var/log/auth.log
backend = systemd
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
В диалоге выберите Yes для автоматической установки обновлений.
Проверьте конфигурацию:
cat /etc/apt/apt.conf.d/20auto-upgrades
Должны быть строки Update-Package-Lists "1"; и Unattended-Upgrade "1";
Если у VPS меньше 4 ГБ RAM — добавьте swap-файл 2 ГБ для стабильности:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl -p /etc/sysctl.d/99-swappiness.conf
Проверка: free -h
Базовая безопасность операционной системы настроена. Сервер готов к развертыванию приложений.
🚀 Что можно сделать дальше:
- Установить веб-сервер:
sudo apt install nginx(LEMP) или Apache - Добавить базу данных:
sudo apt install mariadb-server - Настроить SSL (Let's Encrypt):
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d ваш-домен.ru - Развернуть приложение (Node.js, Python, Go, PHP) с автозапуском через systemd
sudo tail -f /var/log/auth.logБезопасность — это процесс. Держите систему обновлённой и следите за подозрительной активностью.