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.
ИСТОЧНИК.