Сървърите работят SSH обикновено са мека цел за атаки с груба сила. Хакерите непрекъснато измислят иновативни софтуерни инструменти и ботове за автоматизиране на груби атаки, които допълнително увеличават риска от проникване.
В това ръководство разглеждаме някои от съветите, които можете да приложите, за да предпазите вашите SSH сървъри от груби атаки на Базирани на RHEL Linux дистрибуции и Производни на Debian.
Методът за удостоверяване по подразбиране за SSH е удостоверяване на потребителско име/парола. Но както видяхме, удостоверяването на паролата е склонно към атаки с груба сила. За по-сигурно е препоръчително да се внедри базирано на ключ SSH удостоверяване, когато удостоверяването е възможно чрез двойки публични и частни SSH ключове. Частният ключ остава на компютъра на клиента, докато публичният ключ се копира на сървъра.
По време на удостоверяване на SSH ключ, сървърът проверява дали клиентският компютър притежава частния ключ. Ако проверката е успешна, се създава shell сесия или командата, изпратена до отдалечения сървър, се изпълнява успешно. Имаме изчерпателно ръководство за
как да конфигурирате SSH базирано на ключ удостоверяване.Дори след като настроите удостоверяване, базирано на ключ, вашият сървър все още е податлив на атаки с груба сила по простата причина, че удостоверяването с парола все още е активно. Това трябва да бъде деактивирано.
Затова редактирайте SSH конфигурационния файл по подразбиране.
$ sudo vim /etc/ssh/sshd_config.
Нагласи PasswordAuthentication параметър към не
както е показано.
PasswordAuthentication no.
След това запазете файла и презаредете SSH, за да приложите промените.
$ sudo systemctl презареди ssh.
Написано в Python, Fail2ban е рамка за предотвратяване на проникване с отворен код, която сканира лог файлове на услуги за удостоверяване неуспехи и забрани на IP адреси, които многократно се провалят при проверките за удостоверяване на паролата за определено количество време.
Fail2ban постоянно следи регистрационните файлове на сървъра за опити за проникване и друга нечестива дейност, След предварително определен брой удостоверявания грешки – в повечето случаи 3 неуспешни опита за влизане – Fail2ban автоматично блокира отдалечения хост от достъп до сървъра и хостът е съхраняват вЗатвор„за определен период от време.
По този начин, Fail2ban значително намалява честотата на опитите за удостоверяване с неправилна парола. Вижте нашето ръководство за това как можете инсталирайте и конфигурирайте Fail2ban на Linux за да защитите сървъра си от Bruteforce атаки.
Друг лесен начин за защита на вашия сървър от атаки с груба сила е чрез ограничаване на броя на опитите за влизане в SSH. По подразбиране това е зададено на 3, но ако случайно е зададена на по-висока стойност, задайте най-много 3 опита за свързване.
Например, за да зададете максималните опити за свързване на 3, задайте MaxAuthTries параметър към 3 както е показано
MaxAuthTries = 3.
Още веднъж запазете промените и презаредете SSH услугата.
$ sudo systemctl презареди ssh.
TCP wrappers е библиотека, която предоставя базирана на хост Списък за контрол на достъпа (ACL), който ограничава достъпа до TCP услуги от отдалечени клиенти въз основа на техните IP адреси
Отдалечени хостове от достъп до услуги в системата. TCP обвивките използват /etc/hosts.allow и /etc/hosts.deny конфигурационни файлове (в този ред), за да определи дали на отдалечения клиент е разрешен достъп до конкретна услуга или не.
Обикновено тези файлове са коментирани и всички хостове са разрешени през слоя TCP обвивки. Правилата за разрешаване на достъп до дадена услуга са поставени в /etc/hosts.allow файл и имат предимство пред правилата в /etc/hosts.deny файл.
Най-добрите практики препоръчват блокиране на всички входящи връзки. Затова отворете /etc/hosts.deny файл.
$ sudo vim /etc/hosts.deny.
Добавете следния ред.
ВСИЧКИ: ВСИЧКИ.
Запазете промените и излезте от файла.
След това влезте в /etc/hosts.allow файл.
$ sudo vim /etc/hosts.allow.
Конфигурирайте хостовете или домейните, които могат да се свързват към сървъра чрез SSH, както е показано. В този пример позволяваме само на два отдалечени хоста да се свържат със сървъра (173.82.227.89 и 173.82.255.55) и отричане на останалите.
sshd: 173.82.227.89 173.82.255.55. sshd: ВСИЧКИ: ОТКАЗВАНЕ.
Запазете промените и излезте от конфигурационния файл.
За да го тествате, опитайте да се свържете със сървъра от хост, който не е сред тези, до които сте разрешили достъп. Трябва да получите грешка в разрешението, както е показано.
$ ssh [имейл защитен] kex_exchange_identification: прочетено: Нулиране на връзката от партньор. Нулиране на връзката от 173.82.235.7 порт 22. изгубена връзка.
Двуфакторно удостоверяване осигурява допълнителен защитен слой към удостоверяването на паролата, като по този начин прави вашия сървър по-сигурен от груби атаки. Широко използван Двуфакторно удостоверяване решение е Приложение Google Authenticator и имаме добре документирано ръководство за това как можете настройте двуфакторно удостоверяване.
Това беше обобщение на 5 най-добри практики, които можете да приложите, за да предотвратите SSH груба сила атаки при влизане и гарантиране на безопасността на вашия сървър. Можете също да прочетете Как да защитите и защитите OpenSSH сървъра.