Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 13:06 Значи чат-пат нещо се размирисва около това че е много модерно разни хахори да сканират IP ranges, търсейки отворен ssh порт, където някакъв скрипт пробва да брутфорсва акаунти със слаби пароли. Това, което е още по-потресаващо е че това нещо има успеваемост, не знам на какво се дължи този факт, но хората явно няма никога да се научат да си правят по-сложни пароли. След като и аз не съм се научил да го правя, няма какво да мрънкам
![]() Та значи освен гореспоменатия (и най-сигурен според мен начин) същестуват и други решения: * ssh порта се сменя така че глупавите автоматизирани скенери да не го ловят (тъпа идея, но донякъде работи) * Слага се някакъв лимит на SYN пакетите с dstport=22 за минута и хостовете, които го надминат, биват REJECT-вани или дропвани. По принцип е идейно решение, с тази разлика че човек, който може да ти прати пакети с spoof-nat source адрес (например от същия етернет сегмент) може да ти сътвори една прекрасна мизерия, карайки те да вдигнеш хиляди правила в iptables. Ако това е рутер дето бута много трафик това може да се окаже малко гадно. * Port-knocking. Идеята е много добра, но е също така ужасно неудобна. Освен което също до известна степен е податлива на DoS, макар и доста по-трудно. * host-базиран контрол. Идейно и аз го предпочитам понякога. Обаче понякога все пак ти се налага да се връзваш от неавторизирано място и тогава почваш да се логваш от хост на хост докато стигнеш докъдето трябва. И въпреки това, тези методи са си успешни. Нооо...аз обаче понеже съм тъп реших да потърся малко по-гъвкав (и податлив на гаври начин). За последното се изискват малко познания по С (малко, щото и аз не съм кой знае какъв програмист). Ииии спокойно, няма да пачваме sshd, въпреки че и там може човек да си даде поле за изява на ТНТМ-ските идиотии ![]() Значи една огромна част от линукс дистрибуциите така или иначе ползват PAM за да автентицират потребители пред дадени услуги. Което е много удобно. Ами какво ще стане ако вземем че си напишем наш си PAM модул, който да прави НАШИ си проверки? В такъв случай вариантите стават доста много ![]() Този случай, който аз ще разгледам сега е доста опростен, значи идеята при мен е един ssh клиент да бъде допуснат САМО ако на неговият хост нещо слухти на определен порт. Това е глупаво, но пък много лесно за реализация. Определено може да се разшири по много други начини (примерно по друг сокет да се обменя допълнителна информация за автентикация, с curl да се дърпа от някъде уеб документ и да се гледа в него за нещо, да се проверява за активационен мейл и кой знае колко още идиотски идеи). Не мисля да навлизам особено в детайли за PAM модулите - накратко тук: http://www.linuxdevcenter.com/pub/a/linux/2001/09/27/pamintro.html И по този повод ето го сорса на моя примерен PAM модул:
Компилираме го и го копираме където му е мястото:
И добавяме следния ред в /etc/pam.d/ssh:
И това е достатъчно ![]() Оттам нататък може да почваме с пробите:
Не иска да ни пусне. Мммм, нека в друга конзола пуснем netcat да ни слухти на порт 7000:
и да пробваме пак:
Воала. Сега разбира се това горе е прекален прост случай, не е много удобно (щото трябва преди да вържеш ssh трябва да осигуриш нещо да слухти там на клиентската машина), не е практично (ако си зад НАТ кво правим?) и не е чак толкова сигурно (злия хахор може и да забележи, че отсреща някой се опитва да се върже обратно към него). Но никой не е казал, че нещата трябва да се реализират точно така. Както казах има огромна свобода по отношение на това каква проверка може да се реализира. Може например да се напише да ти иска 2 пъти парола, първият път да каже че е грешна, на втория да те пусне (идейно според мен)...може много неща може. В тоя ред на мисли приемам идеи ![]() Титла: Pam vs ssh bruteforce attacks Публикувано от: VladSun в Sep 05, 2008, 13:42 Направи text-based-captcha
![]() Примерно колко прави 6 * 6 ![]() хахах Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 13:47 Няма как да стане
![]() Титла: Pam vs ssh bruteforce attacks Публикувано от: laskov в Sep 05, 2008, 14:30 Това, дето слухти на порт 7000, може ли да казва "Здрасти, аз съм твойта леля!" ? Ако не го каже, няма логин.
Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 14:38 Мда, това може, с дописване на още 5-6 реда код. Това ще го направи малко по-сигурно, от друга страна другите недостатъци на този подход (клиент зад НАТ) няма да се изчистят
![]() Днеска ми хрумна една архиидиотска идея ![]() ![]() Обаче надали това би се харесало на модераторите на форума, ахах. Титла: Pam vs ssh bruteforce attacks Публикувано от: trip в Sep 05, 2008, 16:06 Аве мой колко опита им трябват за да ти нацелят паролата. Да не би да се логваш с роот
![]() Титла: Pam vs ssh bruteforce attacks Публикувано от: lkr в Sep 05, 2008, 16:40 Горното мнение просто няма смисъл да го коментирам.А до gat3way, чакаме challenge v3.0 !
Титла: Pam vs ssh bruteforce attacks Публикувано от: tarator в Sep 05, 2008, 16:59 Това ще работи само ако клиента не е зад някакъв firewall. По-добре си напиши някакво разширение за ssh, което да използва същия сокет за допълнителни проверки. Пък де да знам, може и само с pam да става, отдавна не съм си играл с него. Преди 3-4 години, когато трябваше да ходя до БГ и не бях сигурен откъде ще мога да се логвам, си бях играл да си пиша pam module за прост challenge-response. После намерих нещо готово, включително и с приложение за мобилния ми телефон да генерира response-a който трябва да се въведе.
Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 17:02 Честно казано denyhosts не бях чувал, иначе доколкото разбирам е нещо от сорта на fail2ban.
Не съм мислил още за трета част де ![]() ![]() Ми предполагам че трябва да ми дойде вдъхновението да измисля нещо забавно ![]() Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 17:04
Мдам. Firewall-ите и NAT-ващите рутери чупят идеята ![]()
Това е идейно, обаче малко се разваля идеята да се ползва отвсякъде с обикновен клиент. Иначе само с pam...трудно. Мене ми хрумна през главата да ти иска два пъти паролата, първия път да ти връща AUTH_ERR, втория път да те пуска. Обаче това ще налага някъде да се пази някаква таблица пазеща състояние на сесиите или нещо от сорта, не че е сложно де, това даже е добър вариант. Едва ли тези дето се опитват да налучкват пароли ще го правят по два пъти с една и съща такава ![]() Титла: Pam vs ssh bruteforce attacks Публикувано от: senser в Sep 05, 2008, 18:34
дали не може да се комбинира и с изискването на някаква клавишна комбинация ........ Титла: Pam vs ssh bruteforce attacks Публикувано от: gat3way в Sep 05, 2008, 18:51 Ммм когато автентицираш ssh сесии не мисля...ако е за локални logins предполагам е възможно. Все пак pam се използва и за логване в системата с пръстови отпечатъци и тем подобни глупости...обаче това става локално. SSH suite-a не е предвидил да се изпраща нещо повече от ключове или пароли, със сигурност не и на клавишни комбинации де
![]() |