Защита SSH в Debian. Необходимые меры.

OpenSSH — позволяет выполнять удаленное подключение к серверу по протоколу SSH, производить манипуляции с файлами и управлять и настраивать систему. В этой статье я хочу рассказать про минимум манипуляций для защиты вашего оборудования и увеличения безопасности от несанкционированного доступа. Пример использования на ОС Debian 9.

Правила защиты использования SSH.

Все настройки производятся в файле /etc/ssh/sshd_config:

1. Если не требуется удаленное подключение по протоколу SSH, обязательно отключайте его. Более безопасно просто удалить пакет:

# service ssh stop

# apt-get –purge remove openssh-server

2. Используйте SSH второй версии. Протокол SSH первой версии имеет проблемы с безопасностью, которые устранены во второй версии:

Protocol 2

3. Меняем стандартный порт 22 на любой другой. Например — 2299:

Port 2299

4. При необходимости разрешаем подключение только с IP адреса 192.168.50.100:

ListenAddress 192.168.50.100

5. Использование ограниченного доступа.

По-умолчанию все пользователи в системе могут подключаться по SSH. Рекомендуется ограничить доступ пользователям в целях безопасности. Разрешим доступ для пользователей admin, mneustroev, voipblog:

AllowUsers admin, mneustroev, voipblog

Для запрета доступа всем пользователям, кроме указанных:

DenyUsers admin, mneustroev, voipblog

6. Отключение по неактивности:

ClientAliveInterval 300
ClientAliveCountMax 0

Важно указывать время, в течение которого, сессия будет завершена. Данные опции устанавливают сессию в 300 секунд (5 минут).

7. Использование .RHOSTS:

Данный файл содержит список хостов и пользователей. Если в файле указана комбинация хоста и пользователя, то данный пользователь сможет подключиться к системе по протоколу SSH без запроса пароля. Моя рекомендация данную функцию отключить:

IgnoreRhosts yes

8. Отключение аутентификации на базе хоста:

Host-Based Authentication позволяет пользователям подключаться к серверу с определенных хостов. Отключаем:

HostbasedAuthentication no

9. Использование root-доступа:

Закрываем подключение с использованием учетной записи root отовсюду:

PermitRootLogin no

При необходимости открывает доступ из локальной сети:

PermitRootLogin no
Match Host 192.168.50.*,127.0.0.1
PermitRootLogin yes

10. Вывод баннера:

Banner /etc/issue.net

11. Закрываем 22 порт:

Ограничение доступа к серверу по 22 порту. Рекомендация открывать доступ по 22 порту только из локальной сети. Сделать это можно с помощью IPtables. Дадим доступ к серверу только для сети 192.168.50.0/24:

iptables -A INPUT -s 192.168.50.0/24 -m state —state NEW -p tcp —dport 22 -j ACCEPT

12. Использование криптостойких паролей.

Используйте криптостойкие пароли.

13. Запрещаем использование пустых паролей.

PermitEmptyPasswords no

14. Анализ использования логов.

LogLevel INFO

15. Использование Fail2Ban.

# apt-get install fail2ban

СПРАВКА.

Файлы конфигурации OpenSSH:

  • SSH порт по-умолчанию — 22;
  • /etc/ssh/sshd_config — файл конфигурации сервера OpenSSH;
  • /etc/ssh/ssh_config — файл конфигурации клиентской части OpenSSH;
  • ~/.ssh/ — директория, в которой хранятся пользовательские SSH настройки;
  • ~/.ssh/authorized_keys или ~/.ssh/authorized_keys — список ключей (RSA или DSA), которые используются для подключения к пользовательским аккаунтам;
  • /etc/nologin — если данный файл существует в системе, то sshd запретит подключаться всем пользователям кроме root в систему;
  • /etc/hosts.allow и /etc/hosts.deny — система запрета (часть безопасности). Работает по аналогии с ACL.

ИСТОЧНИК.

Защита SSH. Необходимые меры.