Страницы

Поиск по вопросам

вторник, 2 октября 2018 г.

Как обезопасить сервер от брутфорс авторизации / подбора пароля?

Файл /var/log/messages забит сообщениями типа:
Jun 5 18:41:02 test saslauthd[740]: do_auth : auth failure: [user=root] [service=] [realm=] [mech=pam] [reason=PAM auth error] Jun 5 18:41:06 test saslauthd[741]: do_auth : auth failure: [user=oracle] [service=] [realm=] [mech=pam] [reason=PAM auth error] Jun 5 18:41:07 test saslauthd[741]: do_auth : auth failure: [user=guest] [service=] [realm=] [mech=pam] [reason=PAM auth error] Jun 5 18:41:09 test saslauthd[738]: do_auth : auth failure: [user=mysql] [service=] [realm=] [mech=pam] [reason=PAM auth error] Jun 5 18:41:12 test saslauthd[737]: do_auth : auth failure: [user=billing] [service=] [realm=] [mech=pam] [reason=PAM auth error]
Я так понимаю, что пытаются подобрать логин/пароль. Но я не могу найти какой IP блочить. Как вычислить IP?


Ответ

апдейт с учетом новой реальности: посмотрите на принятый на днях пакетик законов Яровой, и попрощайтесь с безопасностью ваших пользователей. И ваших серверов. Держитесь там. Здоровья.
1) сканируют вас (обычно) китайские и русские ботнеты, поэтому айпишников будет УЙМА. Увы. Руками вы их не отфильтруете.
Для серверов это не столько атака (разовый, не очень долгий всплеск активности с целью взломать/заддосить), сколько постоянная и непрекращающася борьба вашего открытого всему миру сервера с зараженными компьютерами всего мира. Или целыми подсетями (как в моем примере с боевого серва ниже), которые просто принципиально целиком принадлежат не очень хорошим людям. Как вирусы и бактерии для вашего организма. Только у вашего сервера нет иммунной системы :-)
2) прочитайте про - и поставьте - fail2ban - вкратце - он смотрит в логи и при опеределенном количестве неудачных авторизаций временно блокирует ip в iptables.
3) смените дефолтный порт ssh с 22 на что-нибудь другое, подавляющее большинство ботнетов смотрит на дефолтные порты.
4) обязательно запретите root-доступ к серверу. логиньтесь со своим юзернеймом, подавляющее большинство ботнетов сканит на root-доступ
5) желательно (а может и обязательно, смотря насколько вам это важно), уберите возможность логиниться через пароль, только через ssh-ключ. ssh-ключ зашифруйте с паролем и забэкапьте несколько раз - на флэшку или cd. И спрячьте. В нескольких разных местах - для физической безопасности.
6) если у вас проблемы с текущей властью (в чем я сомневаюсь ) и ваш хостинг находится в России, ваши проблемы с безопасностью возрастают на порядок, но, в целом, решаемы (до определенных пределов). Впрочем, если у вас успешный бизнес, который можно отжать/убить с помощью доступа к вашим серверам, у вас, скорее всего, рано или поздно будут проблемы.
объяснение: небольшая взяточка или угроза и все ваши пароли/данные перехватываются через провайдера связи, через хостера и т.д. условно говоря, доступ к вашим данным может получить любой упорный участковый или гэбешник, которому вы просто не понравились.
и да, tcpdump вам особо не нужен для поиска таких попыток логина. есть /var/log/auth.log, он показывает IP-адреса (собственно, fail2ban и туда тоже смотрит)
вот кусок лога fail2ban:
2016-06-06 09:18:07,572 fail2ban.actions: WARNING [ssh] Ban 13.76.250.141 #вот сволочь 2016-06-06 09:24:27,945 fail2ban.actions: WARNING [ssh] Ban 121.18.238.19 2016-06-06 09:25:54,061 fail2ban.actions: WARNING [ssh] Unban 139.129.192.152 #подсеть та же 2016-06-06 09:41:23,212 fail2ban.actions: WARNING [ssh] Unban 121.18.238.31 2016-06-06 10:03:46,795 fail2ban.actions: WARNING [ssh] Ban 58.218.204.32 2016-06-06 10:05:09,915 fail2ban.actions: WARNING [ssh] Ban 82.78.247.40 2016-06-06 10:21:53,956 fail2ban.actions: WARNING [ssh] Ban 81.198.66.141 2016-06-06 10:22:00,971 fail2ban.actions: WARNING [ssh] Unban 114.55.57.177 #неприятные люди 2016-06-06 10:51:44,671 fail2ban.actions: WARNING [ssh] Unban 121.18.238.6 2016-06-06 10:56:19,927 fail2ban.actions: WARNING [ssh] Unban 58.218.204.80 #снова выходят на связь 2016-06-06 11:38:05,327 fail2ban.actions: WARNING [ssh] Ban 121.18.238.6 2016-06-06 11:51:40,250 fail2ban.actions: WARNING [ssh] Unban 49.128.240.33 2016-06-06 11:58:28,641 fail2ban.actions: WARNING [ssh] Ban 58.218.204.80 2016-06-06 12:17:55,667 fail2ban.actions: WARNING [ssh] Unban 116.31.116.35 2016-06-06 12:29:42,528 fail2ban.actions: WARNING [ssh] Ban 120.92.4.184 2016-06-06 13:43:36,826 fail2ban.actions: WARNING [ssh] Ban 222.186.21.143 2016-06-06 13:47:52,173 fail2ban.actions: WARNING [ssh] Ban 5.226.98.21 2016-06-06 13:52:22,402 fail2ban.actions: WARNING [ssh] Ban 120.76.76.31 2016-06-06 13:58:11,771 fail2ban.actions: WARNING [ssh] Ban 120.76.42.147 2016-06-06 14:24:01,346 fail2ban.actions: WARNING [ssh] Ban 221.229.162.7 #и снова те же гости 2016-06-06 14:58:44,162 fail2ban.actions: WARNING [ssh] Ban 121.18.238.11 #гвозди бы делать из этих людей, не было б больше этих людей 2016-06-06 15:14:49,197 fail2ban.actions: WARNING [ssh] Unban 121.18.238.12 2016-06-06 15:19:49,488 fail2ban.actions: WARNING [ssh] Unban 178.239.180.101 2016-06-06 15:22:01,653 fail2ban.actions: WARNING [ssh] Unban 188.99.247.231 2016-06-06 15:42:37,835 fail2ban.actions: WARNING [ssh] Unban 155.133.41.5
здесь вы можете видеть, как fail2ban запрещает доступ к порту ssh с айпишников, которые попытались залогиниться несколько раз неудачно.
p.s. fail2ban забанит доступ к порту ssh, а не просто "забанит ip", не ко всем портам, т.е. с этого IP по прежнему можно будет зайти на сайт (порт 80), но при попытке соединиться через ssh на порт 22 - подходящий ip встретит бан в iptables (я к ответам выше, где пугают "вы не можете банить целые сети")
p.p.s. о ситуации, когда вашу собственную сеть fail2ban забанил на несколько часов:
это лучше, чем взлом сервера залогиньтесь через vpn/с рабочей машины/с мобильного модема у облачных сервисов и нормальных хостеров есть интерфейс доступа к серверу через браузер (по сути дела, через браузер вы обращаетесь к KVM switch/локальной сети вашего сервера в датацентре, а ее никогда не забанят), и если вам СРОЧНО нужен доступ к ssh, то вы всегда сможете зайти через браузер и разбанить себя.
если вы можете работать с tcpdump/iptables, то сможете настроить и fail2ban
p.p.p.s если у вас ubuntu, обязательное: https://help.ubuntu.com/community/AutomaticSecurityUpdates - автоматические апдейты софта по безопасности.
p.p.p.p.s. если вы не просто защищаетесь от ботов и подбора паролей, очень рекомендую попробовать https://github.com/BinaryDefense/artillery

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

Отправить комментарий