Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
В конце инсталляции лезет краткая инструкция - чё надо сделать чтоб оно заработало (люблю грамотно составленные порты). Ей и следуем - добавляем строку в /etc/syslog.conf (показан вместе с предыдущей)
|
После чего перезапускаем syslogd:
|
И пробуем залогинится левым пользователем:
Jul 1 11:19:44 lissyara sshd[31058]: error: PAM: authentication error for root from 192.168.254.193 Jul 1 11:19:45 lissyara last message repeated 2 times Jul 1 11:19:53 lissyara sshd[31066]: error: PAM: authentication error for root from 192.168.254.193 Jul 1 11:19:54 lissyara last message repeated 2 times Jul 1 11:20:10 lissyara sshd[32186]: Invalid user ddd from 192.168.254.193 Jul 1 11:20:11 lissyara sshd[32186]: error: PAM: authentication error for illegal user ddd from 192.168.254.193 Jul 1 11:20:11 lissyara sshd[32186]: Failed keyboard-interactive/pam for invalid user ddd from 192.168.254.193 port 61558 ssh2 Jul 1 11:20:11 lissyara sshd[32186]: error: PAM: authentication error for illegal user ddd from 192.168.254.193 Jul 1 11:20:11 lissyara sshd[32186]: Failed keyboard-interactive/pam for invalid user ddd from 192.168.254.193 port 61558 ssh2 Jul 1 11:20:11 lissyara sshit: BLOCKING 192.168.254.193 with pf Jul 1 11:20:11 lissyara sshd[32186]: error: PAM: authentication error for illegal user ddd from 192.168.254.193 Jul 1 11:20:11 lissyara sshd[32186]: Failed keyboard-interactive/pam for invalid user ddd from 192.168.254.193 port 61558 ssh2 Jul 1 11:20:11 lissyara sshit: block for 192.168.254.193 not working! |
Ага. По дефолту стоит pf, но - я использую ipfw. Лезем править конфиг. От дефолтового, я изменил тока две строчки, их и привожу:
|
Собственно, конфиг не комментирую - там всё понятно по названию опций. Пока ковырялся, в логах нарисовалась ещё одна интересная запись:
Jul 1 11:25:17 lissyara sshit: janitor removed block rule for 192.168.254.193 (reset time of 300 seconds reached) |
Оно ещё и само удаляет записи, по прошествии определённого времени. Хорошо, а то вдруг сам с попойки ошибёшься сервером :)) Далее, необходимо добавить правило для таблицы в файрволл - на этой машине они у меня не используются, поэтому я оставил дефолтовый номер самой таблицы - ноль.
|
Для тех, кто не догадался сам, правило добавляется вторым, сразу после разрешения всего по петлевому интерфейсу. Почему такое? Ну - пусть попингуют - ничё страшного :)
Также, было обнаружено что если пользователь существует, то на ошибки при вводе его пароля скрипт никак не реагирует. Причина нашлась быстро - регулярное выражение было составлено для старых версий sshd - если я правильно помню как оно ругалось раньше. Соостветственно было подправлено - патч для порта можно найти по тут (в порты отправил - будем надеятся закоммитят и не надо будет накладывать его руками).
2007-07-02: Патч закоммичен в порты - так что можно их обновлять и ставить ничё не патчив.
размещено: 2007-07-01,
последнее обновление: 2008-01-03,
автор: lissyara
andreza, 2007-07-02 в 13:58:29
Зачем городить все эти супер-блокираторы, когда проще просто повесить sshd на левый порт и нормально его настроить?
lissyara, 2007-07-02 в 14:15:09
а если наружу доступен ограниченный набор портов?
ходить через другой сервер?
А если он ляжет?
andreza, 2007-07-02 в 14:40:31
Согласен, просто в моей практике такого не было. А кому-то наверное может пригодиться. Но опять же никто не отменял авторизацию по ключам.
GR, 2007-07-02 в 17:21:25
"перевесить на другой порт" сильно уменьшит количество атак, но те кто знает о nmap на это не купятся ...
To Lissyara - ты бы знал какой знатный БОЯН ты растянул. За поледние 2-3 месяца ВСЕ (от /. до LOR'a) по этой теме отметились :) Пока с небольшим отрывом лидирует fall2ban :)
lissyara, 2007-07-02 в 17:41:44
Нифига не понял про боян...
То, что тема избитая - знаю, тока надоело отвечать на один и тот же вопрос - проще сюда будет послать.
А про последние 2-3 месяца вообще не понял...
тупею, чтоли... :)
p, 2007-07-02 в 19:40:46
а в pf можно поигратся c параметром max-src-conn-rate и стряпать нечто подобное, не используя ничего лишнего
p, 2007-07-02 в 19:50:31
а еще можно использовать port-knocking
Samm, 2007-07-03 в 10:17:52
security/bruteblock намного лучше. SSHIT отваливается через пару дней работы и перестаёт удалять плохие хосты из таблицы. Кроме того - bruteblock можно использовать не только для ssh, у меня он "пасёт" и pop3, и smtp (auth) и ftp.
Samm, 2007-07-03 в 10:19:39
И ещё 1 нюанс - как для sshit так и для bruteblock надо добавить в rc.conf syslogd_flags="-c", отрубив компрессию для piped clients. Иначе сообщение вида "last message was repeated 3 times", которое может появлятся при многократном подборе пароля будет сбивать блокиратор с толку.
Samm, 2007-07-03 в 10:23:09
По поводу "левого порта и нормальной настройки" - левый порт это вообще не защита, совсем. Даже автосканеры уже её обходят, у меня есть логи. Нормально настроить - это key auth, но это не всегда удобно. Кроме того, у меня стоит bruteblock даже на машине с key auth, так спокойнее, да и левой нагрузки и трафика чуток меньше. А вот на pop3 подобное, имхо, ещё более нужно чем на ssh, так как контроль над емейлом админа порой позволяет сделать гадостей не меньше чем взломанный юзер шелл )
RockerMan, 2007-07-04 в 17:31:56
---
Кроме того - bruteblock можно использовать не только для ssh, у меня он "пасёт" и pop3, и smtp (auth) и ftp.
---
А можно подробнее об этом?
Qaz, 2007-07-05 в 13:54:12
Имхо лутше добавить одно правило в pf которым заблокировать переборы да и всё, никаких приблуд ставить не нада
Klin, 2007-07-18 в 0:58:36
Не знаю как с ipfw, а с iptables очень просто:
Задал 2 раза неправильный password - гуляй 200 секунд:
IPT=/sbin/iptables
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m recent --update --seconds 200 --hitcount 2 --rttl --name SSH -j LOG --log-prefix "SSH BRUTE FORCE"
$IPT -A INPUT -p tcp --dport 22 -m recent --update --seconds 200 --hitcount 2 --rttl --name SSH -j DROP
tigerby, 2007-07-20 в 10:22:03
Klin. выше 2(два) раза писали про pf. это тоже самое ;-) кстати в -STABLE/-CURRENT я так понимаю уже от 4.0 или 4.1 портирован pf. там же можно задать и ttl, хотя я предпочитаю вообще не чистить эти блеклисты:-)
NarkomanLove, 2007-07-28 в 1:34:59
Что-то если ставиш другой номер таблицы в ipfw, он не хочет её наполнять гадами.
f0b0s, 2007-10-12 в 5:55:45
sshguard у меня нивкакую не зарабил, исчитался и факи и сетап гайд. хз почему.
поставил sshit — через 30 секунд после установки в заветной табличке появилась айпишка.
2Samm — ну не хорошо так свою прогу рекламировать, гнать на ссхит. (он автор брутблока)
хотя, проверим, как рабит, отвалится или нет.
Samm, 2007-10-12 в 8:52:49
2f0b0s
Я не "гоню" как вы изволили выразиться. Перед тем как перейти к написанию bruteblock я примерно месяц пытался заставить нормально работать sshit. Чему свидетелсьвто - принятый PR от меня в дереве портов и обсуждение возможных причин лика в группе по перлу.
Кроме того - bruteblock действительно лучше и универсальнее чем sshit, это не авторское мнение, а обьективный факт. Например тем, что маска не hardcoded а задаётся в конфиге, что позволяет использовать его для любого сервиса, который использует текстовые логи и пишет в них ip злоумышленника. Опять же - не использует никаких внешних бинарников, вся работа происходит внутри. Ну и как уже говорил - не требуется IPC между процессами из-за того, что время хранится в таблице ipfw.
Sergej Kandyla, 2007-10-15 в 1:28:41
4_Samm
Отличная прога! Спасибо еще раз! Я уже писал Вам в юафуге, но заюзать созрел только недавно ;)
Хотел добавить, что программы подобного рода больше предназначены для блокировки брутов по фтп, мылу и т.д.
Фаервол это, конечно, круто, но он не слишком умен по отношению к бруту сервисов.
johnd, 2007-11-08 в 17:29:35
После прочтения статьи использовал sshit как блокиратор к подбору паролей pureftpd (пришлось подправить код программы). Каким то образом прога периодически прога переставала срабатывать. Поставил bruteblock, доволен - спасибо Samm.
touch, 2008-01-27 в 23:25:44
2Samm:
Не очень-то я в регулярных выражениях, возможно поэтому ваш bruteblock с openssh-portable-4.7.p1 не заработал как нужно, а sshit с полпинка. Отвал через пару дней работы понаблюдаем :)
dmon_s, 2008-05-13 в 19:31:39
Пользуюсь denyhosts. Умеет анализировать не только ssh. Поддерживает самописные плюгины для блокировки. Есть возможность синхронизации БД с миром.
Nikky, 2008-08-23 в 12:15:31
Сделать бы поддержку pf в bruteblock... перешёл бы на него.
Samm, 2008-08-23 в 12:23:32
>Сделать бы поддержку pf в bruteblock... перешёл бы на него.
Запросто. Проблем вижу ровно 2 - недостаток времени и отсутствие у меня pf в production. А так в задаче ничего сложного нет, хотя и так красиво как с IPFW не получится, в PF негде хранить lifetime правила. Ну да shared memory вроде никто не отменял....
Sergej Kandyla, 2008-08-26 в 11:13:46
+1 pf было бы хорошо. Держать пару фаеров часто не хочется.
Также возникла идея, при грамотном составлении правил для bruteblock + кастомные логи веб сервера, по факту интересная штука от ддосов может получиться ;)
karat, 2008-10-20 в 13:52:02
Спасибо за статью!
я бы дабавил ключевое слово quick в запрещающее правило для pf.
block quick from <badhosts> to any
Иначе в случае добавления строки в начало правил (как у меня) в auth.log присутствовали записи: Oct 20 11:22:02 lll sshd[2735]: Failed password for invalid user user11 from <cracker`s ip> port 3209 ssh2
Oct 20 11:22:02 lll sshit: block for <cracker`s ip> not working!
VladVons, 2009-01-08 в 19:53:13
Замедление bruteforce атак на SSH с помощью PF:
http://www.opennet.ru/base/sec/bruteforce_pf.txt.html
andy03, 2009-02-08 в 13:16:04
поставил bruteblock заработал сразу - супер
Archer, 2009-04-27 в 5:20:47
Как альтернативу использовал denyhosts. Настройка за 5 минут, есть в портах, есть возможность создавать доверенные сети...
http://adw0rd.ru/2009/denyhosts
создаёт записи типа:
####
sshd: 221.238.193.71 : deny
sshd: 83.17.13.98 : deny
sshd: 77.92.142.210 : deny
sshd: 72.48.116.251 : deny
sshd: 121.52.210.198 : deny
####
И если вдруг из дома сам несколько раз ошибся, то можно удалить себя из списка, а вот в sshit чёт задолбался я таблицу с банлистом искать.
Банзай, 2009-06-28 в 2:11:19
sshit игнорирует строчку:
... pure-ftpd: (?@ppp91-76-56-185.pppoe.mtu-net.ru) [WARNING] Authentication failed for user [anonymous]
у кого есть REGEX?
Classified, 2009-07-13 в 16:59:27
По-моему разумнее SSH организовать через ключи, что исключит вероятность подбора пароля перебором.
Банзай, 2009-07-13 в 21:23:15
"По-моему разумнее SSH организовать через ключи, что исключит вероятность подбора пароля перебором" - это исключит вероятность входа на аварийную машину через ПУТТЮ с произвольной мобилы. Если запретить вход без ключа. А если не запретить, то, не получив ключа, SSH сервер предложит ввести пароль.
Для исключения вероятностей есть knockd, прикрутить который маловероятно, из-за лени вип-юзверей. Им эта каденция непосильна.
Classified, 2009-07-14 в 10:28:58
Значит нужно запретить. Значит нужно ключ + пасс.
"Это исключит вероятность входа на аварийную машину через ПУТТЮ с произвольной мобилы" - не исключит. Можно с мобилы. Putty по-умолчанию не понимает частный ключ ssh-keygen'а, но для этого есть PuTTYgen, и всё прекрасно входит :)
Банзай, 2009-07-14 в 10:48:57
Каким образом вы войдете с произвольной мобилы?
Условия: рыбалка, до очага цивилизации 200 км, но батарейки живы.
Ваши действия, по пунктам.
Classified, 2009-07-14 в 11:14:26
:) Условия интересные, но я могу придумать и еще более интересные. В данном случае, сопровождение сервера должно осуществлятся 2-я лицами, на случай рыбалки одного из 2-х. Мы говорим вприципе о том что возможно, а что нет и как это лучше организовать с точки зрения безопасности, которая начинается с грамотного планирования всей инфраструктуры включая человеческий фактор.
Classified, 2009-07-14 в 11:17:24
Но все же по поводу рыбалки. Если сеть в радусе действия телефона то я проблемы не вижу. У меня всегда с собой ноут, практический всегда когда я дежурю независимо рыбалка это или нет. Ноут + GPRS или CDMA проблема решена.
Банзай, 2009-07-14 в 11:42:30
Иди нахер, дурачок.
Classified, 2009-07-14 в 11:44:35
Банзай, ты бы лучше научился себя вести сначала.
Mikola, 2010-07-21 в 12:15:13
Спасибо поставил - работает.
Глюк: при изменении MAX_COUNT начинает тупить, я пробовал 5 ставить не знаю как с другими.
в логах говорит что забанить не могу, но банит а потом не разбанивает. Если MAX_COUNT = 3, то все ок!
Time, 2010-09-07 в 10:56:33
как удалить заблокированный ип?
установил попробовал протестить забанило, теперь пол дня сижу и не могу подкл
или он не удаляет забаненые ip?
Pandora, 2011-04-03 в 4:38:54
Посмотреть таблицу 0, в которой хранятся адреса атакующих, можно с помощью команды
# ipfw table 0 list
lykich, 2012-01-28 в 13:53:11
/usr/ports/security/sshguard-ipfw/
/usr/ports/security/sshguard-pf/
Неплохие решения для ssh.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [41 шт.]