3159 читали · 1 год назад
Permission Denied при подключении по SSH
SSH, аббревиатура от Secure Shell, — это протокол, который широко используется для удаленных подключений к серверам, сетевым устройствам и другим хостам, на которых запущена служба. Он использует пару открытого и закрытого ключей для шифрования трафика между пользователем и удаленным хостом. При подключении вы можете столкнуться с ошибкой «Permission denied (publickey)». В этой статье постараемся понять причину этой ошибки и способы ее устранения. Причины ошибки. Основной причиной этой ошибки...
2 года назад
🛡Защита от Брутфорса SSH в Linux Сетевая видимость — повод для атак. Проблемой является перебор паролей, в том числе и для SSH. Защититься от этого можно по-разному: 1) Используя возможности настройки демона SSH 2) Пакетный фильтр 3) Специальные приложения 4) Port knocking ▪Измените 22-й порт на 2002-й, если это возможно. Вносим запись в /etc/ssh/sshd_config: Port 2002 ▪В случаях, когда невозможно изменить порт, можно ограничить доступ к SSH определенными пользователями или группами. Это можно сделать с помощью параметров AllowUsers, AllowGroups, DenyUsers и DenyGroups в файле sshd_config. Логину также можно указать IP или подсеть. Например, можно разрешить доступ пользователю admin и user, при этом последний может подключаться только с одного IP. AllowUsers admin user@192.168.0.1 ▪Еще один действенный вариант защиты от перебора – использование для аутентификации сертификатов. Например, запретим вход по SSH по паролю для пользователя root, разрешив всем остальным: # всем разрешаем доступ по паролю PasswordAuthentication yes # root будет использовать только сертификат match user root PasswordAuthentication no KbdInteractiveAuthentication no ▪Используя TCP Wrapper, также можем ограничить доступ к любому сервису только с определенных IP, для этого следует лишь прописать в файл /etc/hosts.allow или /etc/hosts.deny нужное правило. Разрешим в /etc/hosts.allow доступ только с нужной подсети: sshd : 192.168.1.0/24 : allow Или в /etc/hosts.deny: sshd : ALL : deny sshd : ALL EXCEPT 192.168.1.0/24 : allow ▪Пакетный фильтр позволяет очень точно задавать параметры соединений, отбрасывая ненужные пакеты. С его помощью легко ограничить доступ к 22-му порту только определенным адресам. Пример: iptables -A INPUT -s !192.168.0.1 -p tcp -m tcp --dport 22 ↵ -j REJECT —reject-with icmp-port-unreachable ▪Fail2ban и Sshguard - специальные утилиты, которые помогают защитить систему от подозрительных действий. Эти программы фильтруют пакеты по портам и IP-адресам и блокируют подозрительные IP-адреса, используя iptables или TCP Wrapper. Fail2ban был создан для защиты SSH, но сейчас он может быть настроен для использования с различными приложениями. Принцип работы очень прост - демон периодически проверяет журналы на наличие записей о подозрительной активности и блокирует подозрительные IP-адреса. По умолчанию Fail2ban защищает только SSH, но может быть настроен для контроля нескольких сервисов одновременно. Все события отображаются в журнале fail2ban.log и могут быть отправлены по электронной почте. В Ubuntu и Debian устанавливается командой: $ sudo apt-get install fail2ban ▪Все настройки производятся в нескольких файлах, размещенных в каталоге /etc/fail2ban. В fail2ban.conf хранятся параметры запуска самого демона, в jail.conf описываются контролируемые сервисы (внутри секции SSH). [ssh] enabled = true port = 22 filter = sshd logpath = /var/log/auth.log maxretry = 3 ▪Фильтры и действия настраиваются в файлах в подкаталогах filter.d и action.d. Файлы по умолчанию имеют расширение .conf и их лучше не изменять, включая jail.conf. Лучше все изменения делать в файле с расширением .local (например, jail.local), который переопределяет настройки из первого файла и сохраняет их при обновлении. Для проверки работы фильтра можно использовать утилиту fail2ban-regex. @Изучение Linux