Как разрешить доступ к серверу по ssh только с одного ip

Если мы посмотрим логи fail2ban, работающий со стандартным конфигом "из коробки", то увидим, что боты постоянно пытаются подобрать логин-пароль к SSH.

2015-03-23 19:28:04,598 fail2ban.actions: WARNING [ssh] Ban 115.239.228.13
2015-03-23 19:32:47,998 fail2ban.actions: WARNING [ssh] Ban 183.136.216.6
2015-03-23 19:34:39,149 fail2ban.actions: WARNING [ssh] Ban 115.239.228.14
2015-03-23 19:36:00,278 fail2ban.actions: WARNING [ssh] Ban 115.239.228.15
2015-03-23 19:38:05,454 fail2ban.actions: WARNING [ssh] Unban 115.239.228.13
2015-03-23 19:42:48,891 fail2ban.actions: WARNING [ssh] Unban 183.136.216.6
2015-03-23 19:44:40,050 fail2ban.actions: WARNING [ssh] Unban 115.239.228.14
2015-03-23 19:46:01,173 fail2ban.actions: WARNING [ssh] Unban 115.239.228.15

Тут видно, что боты каждые 10 минут делают 4 попытки подбора пороля с различных ip. Но это только начало, чем больше бот-сетей будут узнавать о наличии вашего сервера в сети, тем их колличество будет расти. Доходит до десятков миллионов в сутки попыток подбора пароля.

fail2ban банит бота по ip на 10 минут, после чего бот делает следующую попытку подбора пароля путем простого перебора. И этим занимаются круглые сутки целые бот-сети.

Цель их проста - подобрав пароль рута или судоера, на вашем сервере будут генериться биткоины, размещаться дорвеи, рассылаться спам-почта. Или еще хуже - будут украдены персональные данные клиентов или номера кредиток (если они есть).

Наша задача - этого не допустить.

Первая ступень защиты - установить очень сложный пароль для SSH, не менее 16 символов, включающих в себя буквы в различном регистре, цифры и спец.символы. Для этой цели пойдет любая програмка умеющая генерировать пароли, например keepassx.

Вторая ступень - запретить доступ к SSH со всех IP кроме своего. Для этого конечно же потребуется белый IP (т.е. постоянный). В настоящее время услуга выделенного айпи стоит не дорого (от 60 до 120 руб. в месяц), поэтому пренебрегать ей не стоит.

Запрещаем доступ по SSH для всех IP кроме своего

Инструкция подходит для серверов на базе Debian/Ubuntu

Редактируем файл /etc/hosts.allow

# nano /etc/hosts.allow

Вписываем:

SSHD: 127.0.0.1

Вместо 127.0.0.1 необходимо вписать свой статичный ай-пи.

Далее, редактируем файл /etc/hosts.deny

# nano /etc/hosts.deny

Вписываем:

SSHD: ALL

После редактирования этих файлов необходим рестарт SSH:

service ssh restart

Готово, теперь залогиниться по SSH можно только с одного ай-пи.

Логи банов fail2ban в части ssh больше расти не будут -)

Но, боты будут подбирать пароли к другим сервисам (ftp, postfix, phpmyadmin и т.д.).

Добавить комментарий