Первоочередная защита ssh Ubuntu сервера
Заметка для настроек нового VDS.
Создаем нерутового пользователя
Создаем нерутового пользователя, для интерактивного ввода используем команду adduser
adduser <username>
Добавляем пользователя в группу sudo:
usermod -aG sudo <username>
Редактируем ssd_config
Я не правлю дефолтовую конфигурацию, а создаю отдельный файл следующего содержания (не забудь изменить значения <port> и <username>:
#Локальная конфигурация SSHd
# What ports, IPs and protocols we listen for
Port <port>
Protocol 2
# Должен ли sshd разделять привилегии. Если да - то сначала будет создан непривилегированный дочерний
# процесс для входящего сетевого трафика. После успешной авторизации будет создан другой процесс с привилегиями
# вошедшего пользователя.
# UsePrivilegeSeparation yes
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 60
PermitRootLogin no
StrictModes yes
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# similar for protocol version 2
HostbasedAuthentication no
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Указывает, разрешено ли перенаправление графической подсистемы X11.
X11Forwarding yes
# Указывает, должен ли sshd выводить на экран /etc/motd при интерактивном входе пользователя
PrintMotd no
# Указывает, должен ли sshd выводить на экран дату и время последнего севнса при интерактивном входе пользователя
PrintLastLog yes
# Указывает, нужно системе посылать TCP сообщения клиенту с целью поддержания соединения
TCPKeepAlive yes
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
# Включает интерфейс PAM (Pluggable Authentication Module interface).Если задано значение "yes" - для всех типов
# аутентификации помимо обработки модуля сессии и аккаунта PAM будет использоваться аутентификация на основе
# запроса-ответа (ChallengeResponseAuthentication и PasswordAuthentication) Т.к. аутентификация запросов-ответов
# в PAM обычно выполняет ту же роль, что и парольная аутентификация, вам следует отключить либо PasswordAuthentication,
# либо ChallengeResponseAuthentication. Стоит отметить, что если директива UsePAM включена - вы не сможете запустить
# sshd от имени пользователя, отличного от root.
UsePAM yes
# Доступ определённыи пользователям
AllowUsers <username>
Сохраняю его под именем 10-sshd-savenkoff.conf, и загружаю в директорию /etc/ssh/sshd_config.d/
, таким образом параметры указанной конфигурации перезапишут дефолтовые. Большинство параметров конфигурации подписано соответствующими комментариями. Для применения изменений потребуется перезагрузка sshd:
sudo service sshd reload
Установка Fail2Ban
Обновляем пакеты, устанавливаем, запускаем, добавляем в автозапуск:
sudo apt-get update
sudo apt install fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
При необходимости отредактировать дефолтовую конфигурацию /etc/fail2ban/jail.conf
.