apt update
apt upgradeНеобходимо добавить SSH-ключ на сервер, чтобы подключаться не по паролью, а по ключю. Если нет ключа, то надо создать:
ssh-keygen -t ed25519С подключаемой к серверу машине добавляем свой SSH-ключ на сервер в файл ~/.ssh/authorized_keys:
ssh-copy-id root@<IP-сервера> # после выполнения команды вводим 'yes' и парольuseradd --create-home --groups sudo --shell /bin/bash <your-new-user>Меняем пароль для пользователя:
passwd wwwКопируем публичный ключ из ~/.ssh/authorized_keys для нового пользователя.
Тогда будет возможно подключиться с тем же ключём к пользователю :
cp -r ~/.ssh /home/<your-new-user>/
chown <your-new-user>:<your-new-user> -R /home/<your-new-user>/.sshЗаходим на сервер из под нового ползователя.
В /etc/ssh/sshd_config пишем:
Port 12345 # поменять порт для SSH демона на какой-нибудь повыше
PasswordAuthentication no # запретить доступ по паролю
PubkeyAuthentication yes # разрешить использовать ключи для входа (включено поумолчанию)
PermitRootLogin no # запретить вход через root
AllowUsers <your-new-user> # разрешить вход только определённым пользователям
Перезапускаем ssh:
sudo systemctl restart sshd.service
Попробуйте подключиться к серверу по новому порту из другого термина перед закрытием текущей сессии.
Автообновления являются критически важными, поскольку они позволяют быстро закрывать новые уязвимости в системе даже если вы не отслеживаете их.
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgradesУстанавливаем и настраиваем ufw (Uncomplicated FireWall):
sudo apt install ufw
sudo ufw allow <your-ssh-port> # разрешаем порт для ssh
sudo ufw enable # будьте осторожны на этом шаге, проверте, что ssh действительнго слушает на новом <ssh-port>
sudo ufw status verbose # проверьте, что разрешён верный портЕсли вы не можете войти через ssh, то попробуйте войти через VNC вашего хостера.
Текущий уровень безопасности считаю достаточным для большенства задач, можно остановиться на достигнутом.
sudo apt install fail2ban
sudo systemctl enable --now fail2banДля Debian 12 необходимо установить паке rsyslog:
sudo apt install rsyslogСоздаём файл /etc/fail2ban/jail.local:
sudo cp /etc/fail2ban/jail.{conf,local}Создаём файл /etc/fail2ban/jail.d/ufw-ban.conf:
[DEFAULT]
bantime = 10m
findtime = 2h
ignoreip = 127.0.0.1/8 192.168.0.0/16
maxretry = 5
banaction = ufw
banaction_allports = ufw
AIDE сравнивает права, хеш-суммы важных системных файлов со своей базой.
sudo apt install aide
sudo aideinit # инициализируем базуДля проверки системы:
sudo aide --config /etc/aide/aide.conf --checkМожно проверять систему регулярно или поставить таймер, чтобы иметь уверенность в своих системных файлах.
В файле /etc/sysctl.conf добавляем:
net.ipv4.icmp_echo_ignore_all=1 # блокирует все ICMP Echo запросы (ping запросы)
net.ipv4.conf.all.rp_filter=1 # проверка обратного маршрута пакетов (reverse path filtering)
Загружаем новые параметры:
sudo sysctl -p- Агрегация логов на внешнем сервере