Tag: FreeBSD
Prevenim “Brute Force”
by sz on Sep.20, 2011, under Security
Ce e Brute Force și cum de luptat cu el?
În cuvinte simple și pe înțelesul tuturor – să presupunem că întâlniți o persoană și nu-i cunoașteți numele, iar ea refuză să vi-l spună, lăsându-vă însă să i-l ghiciți. Veți pierde o grămadă de timp parcurgând întreaga listă de nume existente. Logic este de a începe cu nume des întâlnite, asftfel, mărind șansa de al ghici mult mai repede. Însă, dacă este un nume mult mai mult decât rar – șansele tind spre zero. Așa ar derula procesul:
- Ion?
- Nu
- Vasile?
- Nu
…
-Nu
Și așa poate dura pânâ la infinit…
Respectiv, persoana e tupeistă și nu-și divulgă numele, tu ești insistent și tot încerci. Iar de ai noroc și-i ghicești numele – obții cam tot ce-ți dorești de la acea persoană.
Acum, o modalitate de a lupta cu brute force, adica, ghicitul parolelor, este de ai acorda câteva șanse de a ghici numele (în eventualitatea că persoanele se cunosc, însă pe moment are o scăpare în memorie). Să-i spunem că ai 3 tentative, în mod normal, vei spune numele din prima iar în cauza unui răufăcător – i se va spune “la revedere” după a 3-a tentativă eșuată (cu excepția cazurilor când e vorba de Ion).
Acum, cum arată soluția din punct de vedere tehnic. Deja, fără epitete, vorbim direct de ssh. Deseori văd prin log-uri mesaje de genul:
Sep 19 09:36:49 mx sshd[67988]: Bad protocol version identification '\026\003\003' from 216.129.118.139 ... Sep 19 18:22:51 mx sshd[99137]: Invalid user admin from 222.45.235.77 Sep 19 18:22:55 mx sshd[99147]: Invalid user admin from 222.45.235.77 Sep 19 18:22:59 mx sshd[99149]: Invalid user test from 222.45.235.77 Sep 19 18:23:02 mx sshd[99151]: Invalid user test from 222.45.235.77 Sep 19 18:23:06 mx sshd[99163]: Invalid user user from 222.45.235.77 ... Sep 19 18:45:11 mx sshd[1269]: Invalid user jackson from 222.45.235.77 Sep 19 18:45:14 mx sshd[1280]: Invalid user justin from 222.45.235.77 Sep 19 18:45:18 mx sshd[1285]: Invalid user brandon from 222.45.235.77 Sep 19 18:45:21 mx sshd[1287]: Invalid user john from 222.45.235.77
Este clar că, nenica de pe IP-ul 222.45.235.77 î-mi încearcă sistemul, încercând diferite nume (frecvent întâlnite) și parole, presupun că-s de genul 123, sau admin, etc.
Atacul durează, în cazul dat 20min și cu o frecvență de ~3sec
Așa cum, nu pot sta mereu cu nasul în log-uri, am pus o aplicație ce face treaba murdară pentru mine și se numește Sshguard (http://www.sshguard.net/)
Pe FreeBSD se pune și pornește foarte simplu
# cd /usr/ports/security/sshguard-ipfw/
# make install clean
# vi /etc/syslog.conf
Decomentăm linia
auth.info;authpriv.info |exec /usr/local/sbin/sshguard
Restartăm syslog
# /etc/rc.d/syslogd reload
Am făcut un test de pe o altă locație (pentru a nu-mi tăia creanga pe care stau) – câteva tentative eșuate prin introducerea greșită a parolei. Iată ce am prins în log:
Sep 20 14:00:56 mx sshd[72753]: error: PAM: authentication error for sz from 89.28.59.169 Sep 20 14:00:57 mx last message repeated 2 times Sep 20 14:00:59 mx sshd[72758]: error: PAM: authentication error for sz from 89.28.59.169 Sep 20 14:01:00 mx last message repeated 2 times Sep 20 14:01:03 mx sshd[72777]: error: PAM: authentication error for sz from 89.28.59.169 Sep 20 14:01:04 mx last message repeated 2 times Sep 20 14:03:41 mx sshd[72944]: error: PAM: authentication error for sz from 89.28.59.169 Sep 20 14:03:41 mx sshguard[72728]: Blocking 89.28.59.169:4 for >420secs: 4 failures over 165 seconds.
Respectiv, iată și înregistrarea în ipfw:
55029 37 4084 deny ip from 89.28.59.169 to me
Modulul mod_subtitute de la Apache pe FreeBSD
by sz on Jan.26, 2009, under How to
Acest modul este disponibil începând cu versiune apache 2.2.7 și mai multă informație poate fi găsită pe site-ul apache.
Utilitatea lui parvine atunci când conținutul de pe disk nu poate fi modificată (spre exemplu, se sincronizează periodic cu altă locație și orice modificare se pierde ulterior).
La momentul când am setat oglinda neoficială a MySQL, am descoperit mai multe nereguli în sursele fișierelor .html, spre exemplu, pagina de unde pot fi descărcate produsele MySQL avea ca destinație site-ul oficial, și respectiv era complicat să copiez distributivul de pe serverul meu propriu.
În portul pentru FreeBSD, “make config” nu oferă posibilitatea de-al compila (nu există în lista de opțiuni), astfel e nevoie de a compila și instala acest modul separat.
Se presupune că deja este instalat apache 2.2.7 sau mai sus, sursa este prezentă în “/usr/ports/distfiles/apache22/”, în exemplul meu httpd-2.2.17.tar.bz2
Despachetăm arhiva
# cd /usr/ports/distfiles/apache22/ # tar -xzf httpd-2.2.17.tar.bz2
Compilăm și instalăm modulul
# apxs -cia httpd-2.2.17/modules/filters/mod_substitute.c
Verificăm dacă nu-s erori fi că fișierul .so e la locul său
# ll /usr/local/libexec/apache22/mod_substitute.so
Edităm fișierul de configurare apache
# vi /usr/local/etc/apache22/httpd.conf
Și adăgăm următorul rând, imediat după ultimul de tipul “LoadModule”
LoadModule substitute_module modules/mod_substitute.so
Acum, putem configura modulul.
În .htaccess sau în httpd.conf adăugăm ceva similar
AddOutputFilterByType SUBSTITUTE text/html Substitute s/foo/bar/ni
Restartăm apache pentru a pune în aplicație modificările
# /usr/local/etc/rc.d/apache22 reload