Ja misto DenyHosts pouzivam samotne iptables s recent modulem. V kazdem 300 sekundovem je povoleno jen 5 spojeni od jedne IP adresy:
iptables -A INPUT -p tcp --dport 22 -m recent --name SSH --set iptables -A INPUT -p tcp --dport 22 -m recent --name SSH \ --update --seconds 300 --hitcount 5 -j DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Takze robot si zkusi 5 hesel a pak ma na 5 minut utrum. Funguje to bezvadne, v nejnovejsich jadrech i s IPv6.
Ano, scanuji. Mam server pripojeny pres tunnelbroker.net a musel jsem si dat take accesslist i na ipv6…
„Takze robot si zkusi 5hesel a pak ma na 5minut utrum“
Coz je ovsem na nic, pokud robot neni robot, ale sit robotu a zkusi kazde heslo z jineho IPcka.
Taky jsem si napsal vlastni skriptik v bashi do syslog-ng. Kdyz se v syslogu objevi zaznam z sshd, tak syslog-ng spusti skript. Ten pak precte chybu a podle druhu chybu zablokuje v iptables port pro dane IP. Nekteri roboti pouze skenuji „did not send identification string“, jini zkousi hesla. Ale i clovek se muze obcas preklepnout, takze to blokuje ruznymi zpusoby.
Tak nesyslete a sup sem s tim :-), kdyz uz jsme ta komuuuunita.
Nastesti jsem zatim nenarazil na pripad kdy by kazde spojeni slo z jine adresy. I kdyz je tech robotu v siti vic tak to stejne kazdeho z nich po par pokusech odstrihne. A dost casto to po tech peti minutach uz znovu nezkousi – asi si reknou ze jsou out a jdou cmuchat jinam.
Nejsou ta pravidla spatne? IMHO to necha projit pet paketu, nikoliv pet otviracich spojeni. Takze selze i jedno bezne.
Neni tohle overkill, ktery zbytecne vynuti zapnuti connection tracking?
IMHO by stacilo pridat option –syn
conntrack pouzivam tak jako tak, takze je to asi jedno ;-)
fail2ban je neco podobneho, hlida to pocet prihlaseni do ssh, ale umoznuje pouziti i pro jine sluzby.
Úspěšně ho používám na několika strojích a mohu jedině doporučit. Skvěle konfigurovatelný, hlídá POP3, IMAP, FTP, SSH, Apache HTTP autentifikace a řadu dalšího. Skvělá věc.
Zkousel jsem hodne takovychto nastroju, ale nakonec jsem ssh presunul na jiny port. Ukazalo se to jako nejucinejsi krok.
Tak takovou zkušenost mám také. Pokud je možné přesunout ssh na jiný port, tak je to to nejjednodušší a učinné. Ale existují situace, kdy to prostě musí běžet na standardním portu a pak se něco takového hodí.
taky je mozny, ze casem budou boti zkouset i jiny porty, je lepe byt pripraven :)
To se stane teprve v pripade, ze dostatecne mnozstvi spravcu zmeni ssh porty svych serveru. Jenze pak budou muset boti prakticky skenovat vsechny porty aby nasli ten spravny, coz je bude stat mnohem vic casu a pokusu, coz boti delaji neradi ;-). Navic takove skeny budou snaze odhalitelne. Takze at si to uzijou ;-).
to je pravda. ale co s ftp http apod?
presunou vsechno ? :-)
ps: vubec nechapu ty tanecky s Denyhostem, ban apod. pri malem vytizeni opravdu staci nastaveni pomoci iptables.
ja pouzivam pro zjednoduseni spravy shorewall a jeho Limit tedy priklad:
Limit:none:FTPACT,6,180 net $FW tcp ftp
denyhosts pouzivam skoro rok, a zatial spokojnost. Idealne riesenie pre vps. Navysa moja politika je ze kto neuhadne heslo, tak je proste v hosts.deny do konca dni :-).
to ja davam milost uz za 1 tyden, defaultne tam bylo jeste min
a kolik mas radku v hosts.deny? ja se synchronizaci asi 2500 (wc a vydelit dvema)
aha, ted se divam do toho hosts.deny a driv skutecne zabirala jena IP dva radky, na dryhym byl komentar ze to udelal denyhost a kdy
ted se zda, ze uz tam ten komentar neni
také používám a mám i nějaké statistiky (od března 2009)
http://pejsa.info/…/attacks.php
Já konfigaraci linuxu bohužel až tolik nerozumím.
Mam Ubuntu a když jsem zkoušel pustit si DenyHosts tak mi to řve
DenyHosts could not obtain lock (pid: 4798)
co s tim?
Díky moc
Podle meho nazoru je poustet SSH na verejnou IP „lamerina“ a osobne se priklanim k tunelovanemu SSH pres VPN. Dvojte zabezpeceni a utoky na VPN minimalni..
NN
vpn jest tyfus:
chci mit z prace ssh na jinej pocitac v praci a zaroven domu, podle tebe mam prvne udelat vpn domu a to mi jako vedlejsi produkt zabije ssh na pocitac v praci :(
pokud chces vetsi bezpecnost, tak http://en.wikipedia.org/…ort_knocking
VPN je v pohode, jen ji musis umet pouzivat. Ja mam z prace dve VPNky a jeste pritom normalne lokalne pracuju. Nesmis samozrejme pres VPN nasmerovat default route, ale proste jenom to, co potrebujes. Z prace se mi navazuje vpn domu, ale na tom domacim komput se mi routujou jenom IP z prace. Zbytek jedu normalne pres providera.
Ale jinak souhlasim, hezka metoda je port-knocking, ale to neni moc pro obyc uzivatele, ikdyz pomoci nmapu nebo nc by to slo udelat jednoduse pres BAT in do windows.
nojo, jenomze ja ma v praci MacOSX, nevim, jestli zvladne takovouhle vychytavku :(
Nemusite s tim delat nic.
To proto, ze uz vam denyhosts bezi (jako deamon). Co muzete udelat je si „pouze“ upravit nastaveni v /etc/dehyhosts.conf a potom restartovat denyhosts (sudo /etc/init.d/denyhosts restart).
Muzete si prohlednou take soubor /etc/hosts.deny – tam se hromadi adresy stroju, kterym je odepren pristup. Pokud nemate zadny podobny program nainstalovan a sam jste tam nic nepsal, je to s nejvetsi pravdepodobnosti prave od denyhosts.
Ano pouštím to jako root.
A kdyby mi to běželo jako deamon, tak bych to viděl v ps -A ne? A tam určitě nic s deny (ani Deny) není
ja na gentoo mam v ps -aux toto:
/usr/bin/python /usr/bin/denyhosts –daemon -c /etc/denyhosts.conf
a ten pid lock je tento soubor /var/run/denyhosts.pid
podivej se do /var/log/denyhosts, kdyz ho poustim, tak mi tam vypise neco jako:
2009–09–01 10:39:14,724 – denyhosts : INFO DenyHosts launched with the following args:
2009–09–01 10:39:14,760 – denyhosts : INFO /usr/bin/denyhosts –daemon -c /etc/denyhosts.conf
2009–09–01 10:39:14,761 – prefs : INFO DenyHosts configuration settings:
…
mozna jenom ten pousteci skript neni adaptovanej na ubuntu, nema to nahodou ubuntu v repozitari?
jo je. Mam to z repozitáře. Ale očividně jsem tam něco nastavil blbě. Odebral jsem denyhost, znova natáhnul, znova nastavil a už to jede (jako deamon). Takže chyba očividně byla na mé straně klávesnice. Každopádně díky za pomoc
tak to mas jeste dobry, gentoo totiz konfiguraci v /etc nechava, takze by to takhle jednoduse neslo
a co to ma delat? normalne /etc soubory jsou „protected“ takze se pokazde portage dotazuje, co delat, jestli nechat starej soubor nebo prepsat novym, pricemz ukazuje diff, to je docela dobry pri upgradech
existuje navic automaticky dispatch-conf, kterej si pamatuje, co jsi udelal naposledy, jestli ti stacil defaultni soubor, nebo jsi neco predelaval
Ja zas neznam DenyHosts, ale tipnul bych si, ze se to ma spoustet pod rootem. Jo, Ubuntu vlastne defaultne roota nema, takze pomuze pred prikaz dat „sudo “.
Ubuntu samozřejmě roota má, jinak by bylo to sudo k ničemu. Jen má zdejší root náhodně generované heslo a není možné se k němu přihlásit přímo, ale jen právě pomocí sudo z běžného uživatele.
Root nema heslo, viz
/etc/passwd
root:x:0:0:root:/root:/bin/bash
/etc/shadow
root:!:14075:0:99999:7:::
Doporucuju fail2ban, taktez sleduje logy, a pri neuspesnych pokusech se vola akce, typicky pridani docasneho drop pravidla do iptables – coz je imho lepsi, nez spojeni vubec akceptovat. Mimo to neni omezen jenom na ssh, ale na cokoliv, k cemu se da napsat regexp. S uspechem pouzivam na sasl (pop3&imap), apache, ftp …
no pockej, kdyz mas IP v hosts.deny, tak spojeni taky neni akceptovano…
Opravdu? Mel jsem pocit, ze je akceptovano a vzapeti zruseno. Netusim, jak by slo z userspace (ze socket rozhrani) speficikovat, ze kterych adres presne chci akceptovat spojeni a ze kterych ne.
no mozna jo, ale spojeni je stejne preruseno pred vyzvou User: ne?
Pokud pouzivate tcpwrappers, coz je knihovna, ktera hosts.deny obvykle pouziva, tak daemon (i kdyz je to treba jen inetd) nejdrive spojeni akceptuje a potom ho zrusi. Teda vyrazne vyssi naroky na systemove zdroje a vetsi sance k pruniku, nez kdyz je spojeni odmitnuto/zahozeno firewallem jeste pred sestavenim.
DenyHosts me prijde jako nahrada, pokud nemuzete/nechcete pouzivat firewall, treba proto, ze jste ve FreeBSD jailu, kde to neni mozne.
Pokud to nechcete pouzivat na nic jineho, nez ssh, tak ma DenyHosts sve vyhody. Treba synchronizaci s vnejsi databazi, diky ktere spouste utoku je zabraneno, nez vybec zacnou. Tez by mne zajimalo, co se stane, kdyz po obzvlasne utocnem dni mate iptables nacpane spoustou drop pravidel a nemate nijak zvlast vykonny router. Nezpomaluje to filtrovani a tim i cinnost routeru?
ad sila routru: „utocny den“ nie je myslim ta spravna miera lebo stare zaznamy sa mazu za ovela kratsiu dobu vacsinou v radoch desiatok minut a myslim ze radovo stovky zaznamov nie su problem ani pri hodne slabom routri (ja ich vzdy napocitam aktualne tak do 50 a to mazem po troch hodinach) …navyse jednoduche pravidlo/filter na IP adresy je vypoctovo pomerne nenarocna zalezitost......
inak by som sa rad opytal na skutocny rozdiel medzi F2B a DH?
zacal som s fail2ban lebo som akutne nieco take potreboval a toto bolo prve co som vygoglil a ked sa mi to zapacilo a chcel som to instalovat aj na ostatne stroje tak som zistil ze to napr nie je v gentoo stable … goglil som pre co a odpoved bola ze to netreba lebo je to to iste ako DH ktore tam uz je
To same to urcite neni. A dost jinak to funguje. Jedno upravuje iptables a dela mozna i jine veci, druhe pridava utocnikovu ip do hosts.deny a volitelne tam pridava i ip utocniku z centralni databaze, kam je nauploadoval DH jinych uzivatelu. F2B tusim chodi i na jine sluzby, DH jen na ssh.
Všechny tyhle auto blokující srágory jsou náchylné na to, že se tam jednoho dne nedostane ani legitimní správce. Vyhnout se, a to velkým obloukem.
Kazda rozumna utilitka tohohle razeni umoznuje zadavat i IP adresy, ktere se NIKDY nezablokuji.
Což je úplně k ničemu, protože kdybych měl whitelist tak si tak firewall nastavím rovnou a nepotřebuju nějakej auto hajzl.
no prave ze ten autohajzl niekde zmysel ma a niekde nie… su proste situacie ked je nutne mat povolene ssh na default porte zo sveta a nejake pridane vychytavky typu VPN su neziaduce
tam je autohajzl najlepsim moznym riesenim a to i vcetne whitelistu, ktory ma velky zmysel napriklad ak je to server pre studentov a vy potrebujete aby ich to nebanovalo ak sa pripajaju z ucebne kde to robia na rychlo a vidia to prvy krat takze neuspesne pokusy sa len tak sypu ..... mimo ucebne na to 99% z nich kasle a to zostavajuce jedno percento, ktore to so skolskym ssh uctom mysli vazne, si proste da pozor aby nezadalo nespravne heslo 10× po sebe behom 1 minuty
v takejto apolikacii ma naozaj nic lepsieho nez autohajzl nenapada ale ak vas ano budem rad za kazdy navrh
Svet ale neni pouze cernobily. Whitelist jak to nazyvate si tedy date na vylozene a zcela urcite bezpecne ip, aby ste se nahodou nechte sam nezamkl. Cele tohle je jenom o zesloziteni role utocnika, kdo nemusi ssh stejne nevystavuje.
Já vím že není, ale zrovna v tomto případě mi nevýhody převažují nad výhodami. IMHO je mnohem jednodušší přesunout ten port, jak tady už zaznělo.
Nedavno se mi nahakovali pomoci sipvicious na muj trixbox aprotelefonovali mi 80 euro za pul hodiny :-(. Moje blbost. Mel jsem moc jednoducha hesla.
Nicmene by se hodili kdyby bylo neco podobneho pro /var/log/asterisk/messages. Neco co kontroluje jestli se takovhle vec nevyskytuje prilis casto ze stejne ip.----„[Apr 14 10:15:18] NOTICE[2522] chan_sip.c: Registration from ‚50010 <sip:50010@xxx.xxxx.cz;transport=udp>‘ failed for ‚87.96.182.177‘ – Wrong password“