WebWost WebWostbeta

Защита SSH

Несколько базовых методов, которые должны защитить Ваш сервер.

Al-Sher

Данная статья посвящена защите вашего сервера от брутфорса. Методы, представленные в данном материале, не гарантируют защиту сервера от взлома, но в то же время стремиться усложнить жизнь взломщику. Все действия вы выполняете на свой страх и риск!

Перенос порта

Данный метод не является результативным, если злоумышленник нацелился именно на ваш сервер. Но, в то же время, многие боты атакуют именно стандартный ssh-порт, чем "забивают" лог. Попробуем избежать данной проблемы путем переноса порта для ssh клиентов.

Итак, настройки SSH находятся в файле /etc/ssh/sshd_config, следовательно откроем его:

nano /etc/ssh/sshd_config

Давайте изменим 22 порт на 5500, заменив

Port: 22

на 

Port: 5500

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

/etc/init.d/sshd restart

Отключение пользователя root

Второй метод связан с учетной записью "root", которая является администратором сервера по-умолчанию. Так как именно root является администратором по-умолчанию, взломщики частенько пытаются получить доступ именно к данному "аккаунту".

Перед отключением root нам необходимо создать пользователя, например username:

adduser username

Далее необходимо установить пароль для данного аккаунта:

passwd username

Заблокируем доступ root через ssh. Для этого следует снова обратиться к файлу /etc/ssh/sshd_config и изменить PermitRootLogin на no.

Как же мы будем выполнять в дальнейшем действия, требующие владение правами root`a? Ответ прост - su. То есть, изначально мы авторизовываемся под обычным юзером(username), а далее используем команду su для входа под root.

Это, конечно же, не избавит нас от пользователя root, но защитит от "внешних" попыток подбора пароля, а так же будет требовать два различных пароля(для username и root).

Fail2Ban

Для ограничения количества попыток авторизации следует прибегнуть к дополнительному ПО. В данной статье мы воспользуемся Fail2Ban, так как он прост в использовании и не требует больших усилий по настройке.

Установим fail2ban:

yum install fail2ban

В большинстве случаев установки хватает, но если Вы хотите изменить "стандартные" настройки, чтобы еще чуть-чуть усложнить жизнь взломщику, следует подправить файл конфигурации расположенный по следующему пути: /etc/fail2ban/jail.conf.

Данный файл поделен на секции, каждая из которых отвечает за защиту определенного процесса. Содержимое секции DEFAULT относится ко всем сервисам, в случае если те не предопределены.

Рассмотрим некоторые параметры, доступные нам для настройки:

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

service fail2ban restart

SSH ключи

Наверное использование SSH ключей, вместо паролей, является самым надежным способом защиты сервера, но требует защиты данных ключей...

В общем-то данный способ увеличит кол-во попыток подбора ключа в несколько раз, но, если вдруг Ваш ключ потеряется или его украдут, то данный способ Вас не защитит. Это как ключи от дверей ?

Все публичные ключи хранятся по пути ~/.ssh/. Зайдем в данную папку:

cd ~/.ssh/

Если вдруг данной папки не существует, то её необходимо создать:

mkdir ~/.ssh/

Далее создадим ключи типа dsa и размером в 1024 бита:

ssh-keygen -b 1024 -t dsa

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

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

mv id_dsa.pub authorized_keys

А приватный ключ(id_dsa) сохранить в надежном месте. Данный ключ будет требоваться при подключении к нашему серверу.

Так же зададим права на файл authorized_keys лишь владельцу:

chmod 600 authorized_keys

Заключение

Данные методы не дают 100% защиты, но они должны сделать взлом сервера чуть сложнее.

0 Комментариев

Новый комментарий