Astazi va prezint o solutie de blocare a utilizatorilor/hackerilor/botilor care vor sa preia controlul asupra siteului vostru, motiv pentru care ei incearca sa se logheze cu un user admin (default cand se creaza un site wordpress) sau cel mai probabil cu userul ales de voi altul decat admin.
ATENTIE! Inainte de toate pana citesti ce scrie mai jos poti face un backup siteului tau ca sa fii sigur ca daca ceva merge prost intr-un minut esti inapoi la o versiune functionala 100%. Asa ca cpanel>softaculous>all instalations>backup>directory and database> OK.
De cand mi-am facut blogul, am patit-o de 2 ori, adica parola la host era 12345 si la site la fel, pentru ca doar ce imi instalasem wordpressu si nu stiam cu ce se mananca, asa ca baietii au profitat repede (cam dupa 1-2 luni) si au intrat au sters tot si au lasat in index.html in care scriau ca ce buni sunt ei. Bravo, felicitarile mele! A doua oara nu stiu cum l-au spart dar stiu ca au fost multe atacuri (am avut cam 10000 de vizite intr-o luna) ceea ce mi se pare foarte mult si datorita unor vulnerabilitati din wordpress 3.3 sau 3.4 au reusit sa aibe acces la index.php si sa adauge un index.html, cum, nu stiu dar stiu ca au reusit. Treaba a fost usoara am sters index.html si am rescris index.php cu unul mai vechi dintr-un backup. Parolele mele de acum pentru host si site sunt de cel putin 30 de caractere mici, mari, cifre, semne, asa ca puteti sa faceti brute force cat vreti voi.
Si acum sa va spun povestea prin care va puteti proteja la aceste incercari. Trecand prin cele de mai sus, am cautat in wordpress un plugin care sa imi ofere posibilitatea de a bloca un utilizator care incearca sa se logheze cu diferite nume in sectiunea /wp-login.php si am gasit. Pluginul se numeste Limit Login Attempts si face exact ce spune titlul, te protejeaza de incercari nereusite la logare.
Adica gresesti o data parola sau de doua ori, dar la a treia te blocheaza, oricum setarile pot fi modificate dupa preferintele fiecaruia. Dupa instalare mergeti in Settings>Limit Login Attempts si veti gasi urmatoarea fereastra, in care puteti seta dupa cate incercari sa fie blocat, cat timp sa fie blocat, la cate blocari sa fie blocat un timp mai mare si cat trebuie sa stea pana trece “banarea” sa zic asa.
Exista si un model de loguri unde puteti vizualiza ip-urile blocate si ce user s-a incercat la logare. Acestea sunt cele mai recente ip-uri care au incercat sa se logheze la mine pe site:
Pluginul fiind foarte bun, nu aveam de ce sa ma plang, ba chiar ma distram cand primeam mail ca ip respectiv a fost blocat incercand sa se logheze. In ultima vreme primeam tot mai multe mailuri de acest gen, motiv pentru care astazi am dat peste o protectie suplimentara pe care o recomand tuturor celor care au siteuri pe platforma wordpress si astfel va puteti crea propriul vostru “staff”
Cum functioneaza? In momentul in care cineva incearca sa acceseze anumite fisiere de pe server (cum ar fi wp-config.php, wp-login.php, wp-header.php, wp-cron.php, wp-settings.php) ii apare o fereastra de autentificare in care trebuie sa introduca un user si o parola criptata pentru a putea accesa acel fisier.
Daca userul si parola introduse sunt cele stabilite (am sa va explic imediat) veti ajunge la pagina dorita si anume /wp-login.php, adica pagina de logare unde va puteti loga cu userul si parola voastra de pe site.
Si acum sa va explic cum sa faceti toate acestea
- Trebuie sa aveti drept de administrator pe hostul vostru
- Sa adaugati/modificati fisiere ascunse pe host
- Un client FTP sau daca utilizati cPanel puteti utiliza File Manager.
Acum o sa va explic folosirea programului File Manager din cPanel. Nu am utilizat programe separate de FTP mi se pare excelent si nu ai nevoie de altceva, plus ca e mult mai sigur.
Accesati siteul vostru , introduceti userul si parola pentru host pentru a putea avea acces. Dupa ce vati logat dati click pe File Manager si bifati casuta de “Show hidden files (dotfiles)” iar apoi apasati GO.
Vi se va deschide o noua fereastra/tab (depinde de setarile voastre) unde aveti acces la toate fisierele de pe host. In stanga va vor aparea toate foldere disponibile inclusiv public_html (folderul unde aveti instalat wordpress).
- Selectati in stanga folderul .htpasswds (daca nu aveti acest folder puteti sa creati orice folder doriti voi, dar va trebui sa stiti numele lui)
- Dati click in stanga sus pe New File
- Si denumiti fisierul cum vreti voi DAR sa fie de forma “.nume” adica sa aibe PUNCT inainte. In cazul meu l-am denumit “.staff”
Dupa ce am creat fisierul .staff acum trebuie sa adaugam cel putin un username si o parola CRIPTATA ca sa ne putem loga pe site. Acceseaza acest link si alegeti un username si o parola care o sa fie criptate sub un algoritm foarte greu de descifrat. De exemplu ionica
Bineinteles ca aici veti introduce voi ce user si pass doriti sa puneti astfel va trebuie sa le introduceti de fiecare data cand vi se vor cere. Parola va fi ceva de forma user:password
Veti lua cu copy ceea ce scrie in chenar si veti merge pe host in .htpasswds si veti deschide fisierul creat .staff (in cazul meu) unde veti da paste si apoi save si astfel veti avea primul user cu pass criptat. Daca doriti ca si alti prieteni, utilizatori sa aiba acces le puteti face si lor urmand procedeul de mai sus si adaugand cate o linie ca cea de mai sus in fisierul creat.
Ca sa functioneze mai avem nevoie de o singura etapa si anume editarea fisierului “.htaccess” pe care il gasim in folderul public_html (daca nu exista il puteti crea voi).
Dati click pe el pentru a il selecta si apoi mai sus apasati pe Code Editor pentru a il putea edita cu setarile necesare. O sa vi se deschida o fereastra ca cea de mai jos unde puteti edita fisierul.
Modulul <IfModule> este creat de catre wordpress asa ca ceea ce vom adauga noi este partea de la ErrorDocument pana la </FilesMatch> si astfel puteti lua cu copy/paste de mai jos textul ca sa il modificati dupa placul vostru.
ErrorDocument 401 "FORBIDDEN - RESTRICTED AREA! INTERZIS - ACCES RESTRICTIONAT! ionica's blog - iSay.ro - STAFF ONLY !!!"
ErrorDocument 403 "INTERZIS! pe ionica's blog - iSay.ro"
<FilesMatch "^(wp-admin|wp-login|wp-config).php$">
AuthName "ionica's blog - iSay.ro - Staff"
AuthType Basic
AuthUserFile /home/nume/.htpasswds/.staff
Require valid-user
</FilesMatch>
Si acum sa va explic ce face fiecare:
- ErrorDocument 401 “Aici puteti scrie ce text doriti voi, o sa apara cand butonul cancel este apasat la autentificare”
- <FilesMatch “wp-config.php”> era varianta originala ceea ce inseamna ca cine accesa era rugat sa se autentifice, iar de aici am modificat eu cu “^(wp-admin|wp-login|wp-config).php$”. Ce inseamna asta? Adica orice fisier care incepe cu wp-admin|wp-login|wp-config si are orice terminatie .php, .txt, .rtf, .jpg, .doc la accesare sa i se ceara autentificare. Oricum wp-admin si wp-config sunt ascunse automat de wordpress si va da not found, exista baieti care stiu sa le acceseze, iar daca are acces la wp-config, are acces la tot sistemul vostru. De ce? Pentru ca aici sunt stocate toate informatiile, parole voastre de la baza de date sau cookie-uri. Puteti adauga ce fisiere doriti voi, doar sa fie intre acele paranteze si sa fie despartite de “|”
- AuthName “Nume” – aici puteti trece ce vreti voi ca sa va apara ca si titlu al ferestrei. (Vezi poza1 – eu am scris ionica’s blog – iSay.ro – Staff)
- AuthUserFile /home/nume/.htpasswds/.staff este calea unde se afla fisierul vostru cu userul si parola criptata astfel cand voi introduceti datele de autentificare el verifica daca sunt corecte, iar daca sunt corect puteti accesa pagina dorita, daca nu o sa va dea eroare sa le introduceti din nou.
- In loc de nume va trebui sa introduceti userul vostru cu care sunteti logat pe host mihai, georgel, vasile.
ESTE IMPORTANT SA RESPECTATI FIECARE SEMN DE PUNCTUATIE DE FORMA < , . ” ; />
Restul nu sunt importante asa ca le lasati asa cum sunt!
Rezolvat. Inchidem tot chiar si browserul si il redeschidem pentru a actualiza cookieul. Incercati sa va logati acum si o sa vedeti ca va cere autentificare dati cancel sa vedeti mesajul, apoi refresh la pagina, introduceti userul si passul vostru si dati ok.
Ha?
—
Foloseste acest tutorial pe propria ta raspundere, eu ionica nu sunt responsabil pentru eventualele daune produse fisierelor, blogului, siteului sau serverului tau. Daca ti-a fost util acest tutorial nu uita sa dai un share sau un tweet folosind butoanele de mai jos.
[…] repară și nu cazi pradă spamului sau hackerilor. Este important să aveți o parolă sigură, o protecție suplimentară este binevenită întotdeauna, însă abia aștept corelarea aplicației de iOS cu site-ul oferind […]
[…] fost hăckuit) am schimbat parola cu una de peste 20 de caractere, cifre, semne, am pus o parolă în format base64 pentru login, am toate update-urile la zile atât la wordpress cât și la pluginuri, însă tot am căzut […]