Pozor na opravdu distribuované útoky. Málo lidí si uvědomuje, že při použití obyčejného "iptables" příkazu se napřed z kernelu čtou všechna pravidla, pak se jedno přidá a pak se celý ruleset zapíše znova. To není tak velký problém pro 20 pravidel, ale 20000 pravidel už zabere nějakou tu minutu.
Režie běžného síťového provozu ale nebude velká, tedy pokud admin bude akceptovat packety z navázaných spojení před porovnáváním všech adres v blacklistu.
Ideálnější by pro to bylo použít (od 2.6.39 konečně v upstream kernelu) ipset. Ten by se dal nasadit i tam, kde je vypnutý conntrack.
fail2ban
když existuje "iptables -m recent"
který taky dokáže po několika pokusech zablokovat danou IP adresu? Není potřeba aby běžel další proces a funguje s IPv6.no, niektore tie boty nie su az tak blbe, ako by sa zdalo, skor tvrdohlave.
celkom dobre hada botnet aj connection limit na danu IP/cas. ked si nastavim connection rate napr. 10/60 (PF@FreeBSD), po par hodinach uhadne rate a utoky sa prisposobia. pripadne este lepsie - utoky na jeden server sa robia jedna connection per network range a tie potom toci cez svoj dostupny dosah. to cele filtrovanie stazi a hlavne zneprijemni problem skutocnym uzivatelom, ktorych nebudem/nemozem skryvat za nahodnymi portami (tj SSH bude na porte 22).
IPcky po dosiahnuti limitu sa davaju tvrdo do blacklistu. je zaujimave vidiet IP range v blackliste - rovnomerne rozlozene IP adresy z celeho range-u IPv4.
Ja len doplnim ku vsetkym tym, co povolia sluzby len pre vybrane IP resp. VPNky, ze je tu aj alternativa KNOCK-KNOCK ;)
A potom nemusim mat ani /16 siet pre aDSL providera :) a dokonca to zafunguje aj z verejneho HOTSPOTu alebo mobilneho internetu, ak uz to je nutne a musime spravovat :)
Pouzivam F2B asi 5 let na 4 serverech. Zkusenost neni zas tak idealni, jak to vypada F2B je postavena na scriptech, coz na jednu stranu dava moznosti pomerne velke customizace a ohnuti i jinym smerem (neni nutne jen blokovat IP, ale v podstate lze udelat cokoliv, presmerovat web atd.., reportovat na spamhaus atd..
Na druhou stranu:
a] svym zpusobem zatezuje system narazove.
b] je celkem neefektivni proti probihajicimu utoku, vetsinou zareaguje az po nekolika sekundach a prakticky je nemozne toto chovani zmenit (to by zas server nedelal nic jineho nez F2B).. Takze utoky pobezi a nekteri podle reakce serveru, ktery zablokuje provoz az po nekolika sekundach, automaticky presunou utok a pokracuji z jine IP.. fakticky tak dokazou uplne vytocit CPU na 100%.
c] bezne blokovani 5min nema zadny smysl, utok bezne pokracuje znova za 5 min.. rozsireni na 10 min znamena zas vetsi potize pro ty regulerni uzivatele, kteri se uklepnuli jen..
d] F2B musi bezet na serveru, kde jsou ony sluzby hlidane. A je zavislej na tom, co prave napadane sluzby (a jak casto) loguji.. Zmeny v nastaveni sluzeb a jejich logovani tak maji dopad i F2B a to uz je pri cele komplexnosti reseni dost na palici vse uhlidat..
e] na druhou stranu je prijemna doplnkova identifikace z RIPu atd..
Take je pravda to o tom kvantu iptables recordu co tu nekdo psal uz.. dneska mi server nabiha cca 15min a z toho 14min zavadi iptables a CPU 99%.. Opticky to pri velkych uptimech neva, ale iptables se obcas udrzuji take..
F2B neni spatny koncept (a neni jedinej existujici), ale prakticke uziti je spis kompromisem, a nelze se spolehat jen na nej rozhodne..
Sluzby pre userov mozes blokovat na par minut, sluzby pre teba (ssh, rozne admin rozhrania webov) kludne na dni alebo aj tyzden. S preplnenymi iptables som za 5 rokov problem este nemal, max tam mam do 100 zaznamov kvoli smtp (blokujem na hodinu po 10 relay denied pokusoch). Ano, 99% cpu zataz pri starte fail2ban sposobuje, ale to je kvoli tomu ze pri starte parsuje vsetky aktualne logy od zaciatku.
A ako uz niekto spomenul, porovnavat fail2ban s iptables recent je blbost. Jeden obmedzuje pocet pripojeni (dobrych aj zlych) a druhy blokuje tych, co sa nevedia prihlasit a pritom legitimne connections nijak neobmedzuje.
denyhosts dela defakto totez, ale nesere to do firewallu, zakazuje pristup jen k vybrany sluzbe - v tomhle pripade ssh. Delat neustaly zasahy do firewallu za chodu mi neprijde jako dobrej napad.
Ad prihlasovani klicem - v mnoha pripadech nepouzitelny, neb se clovek potrebuje na ten zdroj dostat casto ze zarizeni, do kterych dostat klic neni trivialni ... nebo vubec mozny.
Nevím, jak v jiných distrech, ale Arch se vzdal tcp wrappers už dost dávno (měl jsem DenyHost rád):
https://www.archlinux.org/news/dropping-tcp_wrappers-support/
Jen pro zajimavost, delam si statistiku zkousenych hesel pri utocich. Pokud to nekoho zajima tak zde je prehled hesel serazeny podle frekvence pouziti za posledni 2 mesice http://bagr.blackserver.cz/top-password-2013-06-24.txt.
Pokud tam najdete svoje heslo a nemate system zabezpecen jinak, tak vas asi brzo nekdo nezvany z navstivi. :o)
Kdybych chtel slovnik pro utok, tak na webu se da sehnat mnohem lepsi nez tento.
Me jen zajimalo s cim na me chodi (jak moc sofistikovana hesla pouzivaji), popripade odkud utoci.
Treba toto heslo "7hur@y@t3am$#@!(*(" me pripada celkem dobre, ale i tak bylo pouzito vice nez 500x za 2 mesice. A takovych je tam cela rada.
Denny Host používám úspěšně již několik let a naprostá spokojenost. Mám spuštěný i synchro, takže se mi blokují i IP adresy které neůtočili přímo na mě.
Uznávám, že blokace pomocí iptables je z pohledu bezpečnosti efektivnější, ale v deny host blokuji ip na měsíc a v případě restartu nebo úpravě iptables neřeším kdo byl momentálně blokovan.
Sem tam jsou logy o neúspěšném pokusu slušně zaplněné, ale logwatch si s tím poradí a vše přehledně zobrazí.
Pokud je někdo naprostý paranoik doporučuji službu Single Packet Authorization. Chvíli jsem to nasazené měl a je to opravdu neprůstřelné, ale po čase mě přestalo bavit pokaždé "ťuknout" na server.
Jinak díky autorovi za článek. I když je popisovaná služba známá je to velmi přínosné a lobuji za více podobných článků. Přeci jen projektů je hodně a už mockrát jsem tu narazil na něco co jsem ještě neznal.
Pro zájemce o další info: o Single Packet Authorization jsem tu už taky psal.
Podle me je blbost neco takoveho implementovat
Takto se to dela s poradne firme ;-)
napsal jsem v python follow_file - ma to detekci file roation, prava atd atd...
co to dela ze si to nacte pravidla ze souboru a potom dela to co ma...
zjednodusena pravidla jsou
regex,mod,action,from,to,
Pravidlo INFO,quick,mail XXX,1000,1200
- najde INFO posli to radu to XXX mezi 10:00 a 12:00
Pravidlo INFO,quick,script /script,1000,1200
- najde INFO zavolej script /script mezi 10:00 a 12:00, jako parameter preda radku
slozitejsi pravidlo
INFO,continue,mail XXX,1000,1200
INFO,quikc,script /myscript ,1000,1200
posli email jako predtim a pokracuj ve vyhodnocovani dalsich pravidel
a potom mam hook to se zavola na vyhodnoceni ssh loginu zavolam sctip ktery resi to co je v tomto clanku
duvod proc rikam tento presnetovany tool je na "prd" je ze neni univerzalni...
pouzivame to na automatizovani dost veci v mailech na blacklisting etc etc
umim timto prohnat neco kolem 2TB logu za den
Jeste mi reknete, ze v linuxu neni defaultne to, co na windows .... proste pri 3tim chybnem zadani hesla se uz k uctu ceka nekolik vterin .... pak minutu, pak pul hodiny .... atd ... takze nejaky slovnikovy utok nepripada v uvahu, kdyz se takhle da za den vystridat tak do 20ti hesel:o)
To záleží na službě. U internetových služeb se to nedělá. Představa, že vás kdokoliv může odstřihnout od vašeho počítače jen tím, že se na něj pokusí 3x přihlásit a zadá špatné heslo, je docela děsivá. U MS Windows se to řeší "kaskádou" uživatelů - když si zablokuji účet, volám naše IT. Když ti si zablokují účet, tak volají IT v korporaci. Když ti si zablokují účet, tak mají ve skříňce zamčený papírek s username a heslem uživatele, který se zablokovat nedá. Funguje to hlavně díky tomu, že se z venku připojit skoro nedá. A i ta VPN, kterou to jde, vyžaduje nějaký privátní klíč, jinak se s vámi vůbec nezačne bavit na téma "jméno a heslo".
Presne kvuli podobnemu chovani zimbry jsme museli nasadit fail2ban. Zimbra taky po nekolika neuspesnych pokusech o prihlaseni zablokuje ucet - takze postizeny se uz neprihlasi a ani nevi proc se to stalo.
Fail2ban zablokuje IP adresu odkud jde utok, a netresta uzivatele jehoz heslo se nekdo snazi uhodnout.
Myslim ze neumis pocitat. Ne myslim, jsem si tim zcela jisty.
1) 26 ^ 6 = 308 915 776 (pokud neresim velikost)
2) nikde neni receno, ze neuhadnu to heslo na prvni ... nebo paty pokus.
=> pokud ses tak naivni, tak uz ti nejspis nekdo ve stroji davno sidli, a ty o tom nemas ani paru.
ok, abeceda ma tedy 26 pismen, ne 24. Teda presneji 9 let, v prumeru by mela stacit 1/2, tj. porat 4.5 roku zkouseni vsech moznych kombinaci. A to musis znat login na ktery utocis a verit predpokladu, ze je heslo opravdu ze 6ti pismen. Na mem stroji nekdo zkousi hesla v podstate nepretrzite, nikdy ale nikdo netrefil byt jen username. Brutal-force jsem taky nezazil, spis jedou podle nejakych slovniku castych jmen/hesel.
Je tu vubec nekdo, komu bylo takto heslo uhodnuto? Zna tu nekdo nekoho, komu bylo takto heslo uhodnuto?
Abeceda ma ovsem 26 malych a 26 velkych pismen, to neuvazujes? Tak to mas kliku, protoze pak by to bylo 52^6, co je temer 20 miliard kombinaci. Tempem 1 heslo za vterinu bys to hledal neco kolem 600 let. Tedy "jenom" 300, kdyz bereme statisticke rozlozeni pravdepodobnosti...
:-)
Jojo. V rámci školy tak jeden účet za měsíc. Tím myslím případy, na které se přišlo, protože účet byl zneužitý (ke scanování dalších strojů, rozesílání spamů, hostování phishingových stránek...). A podle logů mezi uhodnutím hesla a zneužitím účtu může být i několika měsíční prodleva - tipuju, že jedna skupina získává účty, část použije pro sebe (scanování dalších strojů) a zbytek prodá jiné skupině (spamerům...). Takže prolomených účtů může být víc.
A jedou podle slovníku a mají i český (loginů a hesel).
Brutal force jsem ještě při vzdáleném útoku neviděl. Slovníkové útoky ale mockrát a i jsem při studiích na VŠ viděl desítky "hacknutých" účtů. Mnohem častější byly ale sofistikovanější metody jako:
- provozovat vlastní studentský server s něčím a zapsat si hesla uživatelů (aneb proč byste měli mít na každé službě jiné heslo)
- kouknout se do logů unixových počítačů o chybných přihlášeních (na některých serverech to z různých důvodů bylo dostupné a protože lidé občas místo username zadají heslo, tak se tam občas nějaké heslo objeví)
Kde jsem brutal force viděl, navíc úspěšný, to bylo když si jeden ze spolužáků stáhl nějakým způsobem /etc/passwd. Zkoušel postupně všechna hesla z malých písmen a číslic, od 3 znaků výše. Když to po týdnu zastavil, tak už několik z těch hesel měl. Byl to rok 1998 nebo tak nějak. S dnešním HW by to bylo rychlejší, ale také dnes snad už nikdo nedovolí heslo kratší než 8 znaků.
https://www.grc.com/haystack.htm =>i kdyz to neni primo k veci mohlo by se to nekomu hodit-pripadne pouzit k osvete "mene zdatnych uzivatelu IT" Jak nazev napovida=Haystack = lamani hesla je v podstate hledani jehly v kupe sena a tenhle kalkulator nazorne ukazuje jak "velka bude kupa sena" pri zvolene kombinaci cisel,znaku a pismen+ propocita jak dlouho by crackovacimu stroji trvalo vyzkouset VSECHNY varianty- nabizi se 3 scenare: stroj ktery vyzkousi 1.000 hesel za sekundu, nebo 100miliard anebo 100trilionu hesel/s. Jinak vlevo nahore v menu "services" je spousta uzitecnejch veci, od DNS spoofability test,SSL fingerprint aka MitM test,ShildsUp=portscanning,DNS benchmark a "vzdelavaci/osvetova" serie Security Now kde probira veci od zakladnich az po silenosti typu kryptografie eliptickych krivek.BTW dobrej podcast je #392=internet underworld kde ma jako hosta Briana Krebse a tez episoda 408=The State of Surveillance (How the NSA's PRISM program works.) kde se zamysli jak to technicky NSA provedla aby mohla napichnout Google aniz by to nutne museli zjistit..Casem se potvrdilo ze to trefil :o) Tady je par slov o tvurci webu:https://en.wikipedia.org/wiki/Steve_Gibson_(computer_programmer) a mimochodem prave od tohoto pana pochazi vyraz "spyware"=z doby kdy si vydelaval testovanim Firewallu..
Treba se to muze nekomu hodit.
<?
$x=array();
exec("tail -n 5000 /var/log/asterisk/messages",$d);
foreach ($d as $s) {
if (ereg("Registration.*failed.*'([0-9\\.]{7,15})'",$s,$r))
if (isset($x[$r[1]])) {
$x[$r[1]]++;
} else {
$x[$r[1]]=1;
};
}
exec("iptables -S net2fw | grep DROP",$y);
$b=array();
foreach ($y as $s) {
if (ereg(" ([0-9\\.]{7,15})(/| )",$s,$r) and !in_array($r[1],$b)) $b[]=$r[1
}
foreach ($x as $ip=>$cnt) {
if (($cnt>10) and !in_array($ip,$b)) {
exec("iptables -I net2fw -s $ip -j DROP");
echo "blokace $ip\n";
}
}
?>
to echo se da zmenit na mail, nebo zaremovat. Jednou nas prekvapilo, co ze to ta ustredna vyvadi, ze ma tak zatizeny procesor (dle statistiky hypervisoru). No a krome bezpecnosti to prineslo taky snizeni zateze.
Zdravím, používám fail2ban, ale pozor na jednu věc. Z důvodu ochrany logů před flood a v případě nízkého provozu na serveru, se může v logu objevit:
dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser= rhost=10.100.10.113
a hned na dalším řádku:
last message repeated 3 times
pokud je počet pokusů ve F2B více než 1 a odmítavé řádky s IP adresou nejsou vypsány jednotlivě, fail2ban nereaguje