ШАГ 1: Настройка базовой безопасности сервера
1. Обновление системы
sudo apt update && sudo apt upgrade -y
2. Установка базовых утилит
sudo apt install ufw curl wget git fail2ban -y
ufw
(фаервол)
3. Настройка Заблокируем все входящие, разрешим только SSH, HTTP, HTTPS и порты, которые будем использовать.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
# Пример: если будешь использовать порт 8000
sudo ufw allow 8000/tcp
sudo ufw enable
Проверь статус:
sudo ufw status
4. Настройка Fail2Ban (защита от брутфорса)
Fail2Ban автоматически блокирует IP после нескольких неудачных попыток входа.
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Файл конфигурации: /etc/fail2ban/jail.local
(может потребовать создания).
Пример минимального содержания:
[DEFAULT]
bantime = 86400
findtime = 600
maxretry = 5
[sshd]
enabled = true
ШАГ 2: Создание безопасного пользователя
Не работай под root! Создай своего пользователя:
adduser your_username
usermod -aG sudo your_username
su - your_username
(замените your_username
на желаемое имя)
Выходи из под root и дальше работай от имени нового пользователя.
ШАГ 3: Отключение входа по паролю и включение SSH-ключей
Создай SSH-ключ локально (если ещё не создавал):
ssh-keygen
Загрузи свой публичный ключ (%USERPROFILE%/.ssh/id_ed25519.pub
) на сервер в файл:
~/.ssh/authorized_keys
Убедись, что права установлены правильно:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Теперь отключи вход по паролю:
sudo nano /etc/ssh/sshd_config
Измени следующие параметры:
PasswordAuthentication no
PermitRootLogin no
ChallengeResponseAuthentication no
UsePAM no
Перезапусти SSH:
sudo systemctl restart sshd
WARNING
Проверь, что ты можешь зайти через ключ, прежде чем закрывать текущую сессию!