|
Титла: 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 не е предвидил да се изпраща нещо повече от ключове или пароли, със сигурност не и на клавишни комбинации де
|