ssh bruteforce attack

Логи замусорены вот такими сообщениями:

# tail -n 100 /var/log/messages | grep ssh
Mar 12 12:23:07 gate sshd[7466]: Invalid user mouse from 70.129.216.130
Mar 12 12:23:10 gate sshd[7470]: Invalid user user from 70.129.216.130
Mar 12 12:23:14 gate sshd[7474]: Invalid user andrew from 70.129.216.130
Mar 12 12:23:17 gate sshd[7478]: Invalid user tony from 70.129.216.130
Mar 12 12:23:19 gate sshd[7480]: Invalid user control from 70.129.216.130
Mar 12 12:23:25 gate sshd[7486]: Invalid user lee from 70.129.216.130
Mar 12 12:23:28 gate sshd[7490]: Invalid user mickey from 70.129.216.130
Mar 12 12:23:32 gate sshd[7494]: Invalid user rock from 70.129.216.130
Mar 12 12:23:33 gate sshd[7496]: Invalid user rock from 70.129.216.130
Mar 12 12:23:39 gate sshd[7502]: Invalid user kevin from 70.129.216.130

причем атаки производятся не только с этого ip.

Кто-нибудь сталкивался с подобной проблемой?

Ну, ломятся

Ну, ломятся всякие придурки да и *** с ними. Можно настроить автоматический бан на IP с которых ломятся к тебе. Если лень ручками писать, то

emerge -pv fail2ban

Описание на http://www.fail2ban.org

поставь portsentry

поставь portsentry

сталкивался...

сталкивался... ко мне постоянно ломятся, то с китая, то с беркли... малолетние кулхацкеры развлекаются...

я их тупо в бан ставлю и не парюсь

поставь blocksshd

поставь blocksshd из оверлея sunrise

_________________
Gentoo GNU/Linux 2.6.20 GCC 4.1.2 Dual Xeon
Working on Gentoo for iPAQ hx4700 :-)

http://gentoo.ru/node/6001

пасиб конечно,

пасиб конечно, но у меня там FreeBSD стоит...
да и писать правила для автоматического бана мне лень, я по результатам недельной активности их в бан-лист ставлю

Видел в сети

Видел в сети Perl-скртипы для отслеживания auth.log и добавления IP в таблицу фаервола. Я обхожусь "самоделкой" написаной на С. Принцип - работаем в режиме демона, отслеживаем записи в лог-файл, следим только за ... sshd .... Invalid user .... IP. Если IP в логах засветится трижды автоматом добавляем в таблицу PF. Собственно скрипты работают по тому же принципу. Ну или взять что-нибудь более универсальное.

да можно и на

да можно и на bash-е написать и на С, только нащет 3х раз может не прокатить...
я смотрел логи, там идет примерно так:
User 'user1': incorrect...
User 'user2': incorrect...
User 'user3': incorrect...
User 'user4': incorrect...
...
SSHD ## Connect timelimit exceed...
SSHD ## Connect timelimit exceed...
SSHD ## Connect timelimit exceed...
SSHD ## Connect timelimit exceed...
вот в таком духе...

У меня разбор

У меня разбор полётов идёт именно по формату лог-файла

Mar 12 12:23:07 gate sshd[7466]: Invalid user mouse from 70.129.216.130

1. 5-е поле == sshd[...] Дыба отсеить других демонов.
2. 6-е поле == Invalid
3. 7-e поле == user
4. 9-е поле есть IP адрес.

Адрес ищется в списке, который хранится в памяти (демон всё-таки :) ). Если находим - увеличиваем значение счётчика. Если счётчик == 3 вызываем pfct -t bla bla bla. Если не находим, то создаем новый элемент списка со значением счётчика == 1. т.е. пофигу в каком месте лог-файла у нас это строка. даже ротация лога нам фиолетова :)
За лог-файлом следим через kevent т.е. чем-то напоминает работу tail -f . Не думаю что на bash это реализуемо :)

Дабы не разводить флейм ... если найду скрипт который брал за основу кину ссылку.

Если есть

Если есть возможность, то как вариант можно ограничить по маске сети через ListenAddress в sshd_config. Кроме того, можно пошуровать в pam.
_________________
Это заговор квадратикофф!!!
From Siberia with Love!

Самое элегантное решение!!!!

Кхе-хе?! Вот ту читаю предложения по решению проблемы и плакаю! А как на счет iptables?? Про это ктото слышал? А про расширение resent последнего??? У меня на gw такая схема:
sshd выдает два запроса пароля, дальше рвет соединение. Каждое соединение, пределах заданного промежутка времени с одного ip, на 22 порт увеличивет счетчик resent, если их больше 2 то бан на указаннае время. Мне как првило 4 попыток ввести правильный пароль, даже с бодуна вполен хватает.

А каким местом

А каким местом iptables можно прикрутить к FreeBSD ? :)

Re: А каким местом

tr написал(а):
А каким местом iptables можно прикрутить к FreeBSD ? :)

Может быть сносом freeBSD и установкой gentoo? :)))))))))
Мы веть на gentoo.ru ...

и

т.е. ты мне

т.е. ты мне предлагаешь снести отлаженную годами фрю и поставить генту??
и только ради того, чтоп вместо ее родной ipfw(и неродной для линуксоида) была родная для меня iptables...

имхо не стоит оно того...

Это кстати как

Это кстати как правило скрипты всяких автоматизированных недо-руткитов ломятся.
Кстати интересный способ сбора рут-шеллов - по IP из этих логов заходим ssh и брутфорсим пароль рута, т.к. системы с которых так ломятся это в большинстве системы со слабым паролем, которых уже брутфорснули.
Я так ручками даже за 10 минут пару рутшеллов находил =)
Пароли на рут были 'password' и 'admin' =)

о кстати!

о кстати! тиресная мысль... я както не додумался им тож самое устроить :))

+5!

+1 Жалко ко мне

+1
Жалко ко мне больше не ломятся... :( Так бы может кого поломал бы. :)
_________________
Linux ns 2.6.18-suspend2-r1 #2 SMP Sat Feb 3 13:56:55 KRAT 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux

:. Swatch

Еще одна статья в тему - HOWTO Protect SSHD with Swatch

А каким логгером toshik пользуется?
_________________
:. Поделись опытом на ru.gentoo-wiki.com или на www.gentoo-wiki.com

Юзаю syslog-ng В

Юзаю syslog-ng

В гугле по ипу нашел интересные списки:
http://danger.rulez.sk/projects/bruteforceblocker/blist.php
осталось только акуратно скормить iptables.

Не ГОНИ!!!

Не нужно это прикручивать!!! Шанс что к тебе будут ломится именно с этих хостов, очень не велик.
Уж лучше уже тогда расширение geoip, от недохакеров "страны восходящего" солца точно защищать будет. По статистике, покрайней мере у меня, процентов 90% на китай приходится.

маленький оффтопик о вреде geoip

2 T-34 "Страна Восходящего Солнца" - это Япония ;)
Попытки ССАШ-брутфорса несколько раз видел в логах и банил эти айпишники руками по факту нарушения (iptables). На самом деле такие попытки случаются не очень часто и они достаточно безопасны если вход руту запретить вообще, а для управления машиной входить под пользователем и делать su. Другое дело - электронная почта. Вот это настоящая катастрофа! Запрещённый pre-greeting трафик, настроеный спамассасин и DNSBL-листы (при всей сомнительности последней меры) для меня спасают положение... Но проблема в том, что нектороые несознательные админы используют блокировку по geoip. Вот надо было мне недавно послать письмо в Венесуэлу. Оно не дошло (кстати и не вернулось, а просто ПРОПАЛО, в логах не поленился посмотреть - был ответ сервера о том что письмо принято к доставке). Ну ясно, что абсолютное большинство почтового трафика между РФ и Венесуэлой составляет спам. Вот какой-то умник и настроил почтовый сервер... Пришлось ради этого письма заводить ящик на гмейле. Так вот, люди, плиз, если сервисами настраевоемой машины будете пользоваться не только Вы - не используйте блокировку по странам или нациаональным доменам! Это есть зло!

Это не есть зло, если

Это не есть зло, если понимать для чего и как.
Лучше один раз завести себе почту на gmail чем держать ответ при DDoS скажем, с участием Китая.

А так, очень изящно и просто.
Разрешаем доступ к 22-му порту только тем, кто из России и Украины (например) остальных желающих попасть на этот порт шлём лесом

iptables -A INPUT -p tcp --dport 22 -m geoip --src-cc RU,UA -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

Просто конечно, но в условиях

Просто конечно, но в условиях современной глобализации не очень правильно...
Например, у меня на работе адреса из UK пула, хотя я территориально сижу в другой стране. И это не единичный случай, а довольно типичный для транснациональных корпораций.

Мы не о почте говорили!

1. Я же не предлагаю почтовый или http трафик geoip резать! А в ситуации, с ssh к которому доступ должен быть только 2-3 админам, вполне приемлемо использовать geоip. Ну конечно если вы в отпуск решите отравиться, на пример в Крушавель :) обломчик получится! Но это с другой стороны тоже правильно, ибо нефиг в отпуске о работе думать.

А по поводу страны восходящего солнца, это придирки, разницу между китаем и японией я улавливаю!

для Китая праильно будет

для Китая праильно будет "поднебесная" ! :)

P.S.: Linux - это красная таблетка :-) Windows - синяя...

почему

почему нельзя
iptables -A INPUT -p tcp --dport 22 -j DROP ?

потому что я

потому что я сам с ним из дома работаю :(

А статического

А статического внешнего ип нету? Если через модем, то у провайдера можно подсеть спросить, и в iptables в инпут выше сделать пропуск для подсетки провайдера на 22 порт. Лучше для одной подсети пропуск делать , чем для всех подряд.

согласен. но

согласен. но мне не повезло... я меня гпрс :(

И что? У оператора все равно

И что? У оператора все равно ограниченный пул подсетей. Можно просто спросить у него (это совсем не секрет), можно в whois поискать...

Хотя я не сторонник тупо блокировать доступ - мало ли куда меня занесет... ;)

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

примерно так: iptables -A

примерно так:

iptables -A tcp_packets -p TCP --dport 22 -m state --state NEW -m recent --name BLOCK --rcheck --seconds 600 -j TARPIT
iptables -A tcp_packets -p TCP --dport 22 -m state --state NEW -m hashlimit \
--hashlimit-name BLOCK --hashlimit-mode srcip --hashlimit-above 2/m \
--hashlimit-burst 2 -m recent --name BLOCK --set -j TARPIT
iptables -A tcp_packets -p TCP --dport 22 -j ACCEPT

В логах 2 попытки подключения и тишина

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

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".