12 съвета за защита на вашия Wordpress блог

wordpress-logo-cristal1Wordpress е една от най-популярните безплатни платформи за създаване и управление на дневници (или т.н. блогове). За съжаление, никой софтуер не е защитен от възможността за поява на пропуск в сигурността. Екипът на Wordpress се стреми да ги оправя навреме, но от вас зависи дали ще обновявате блога си. Ако забравите или умишлено отлагате обновяването, рискувате някой ден да останете неприятно изненадан зареждайки дневника си и в най-лошия случай откривайки, че всичката ви информация е изчезнала. Не се залъгвайте, че никой не се интересува от вашия малък и скътан дневник. Бъдете подготвени за най-лошото, но се надявайте за най-доброто.

В тази статия ще ви представя 12 съвета как да направите вашия Wordpress блог по-сигурен и защитен. Разбира се, имайте предвид, че нищо не може да ви предпази от пробив чрез нерегистриран проблем в сигурността. Също така, атака може да възникне и от инсталиран плъгин, който има слабости в сигурността.

Преименувайте admin потребителя

Веднага след инсталацията е препоръчително да смените името на администратора. То е admin и по подразбиране е такова за всички инсталации. Смяната можете да направите през командния ред на MySQL клиент или ползвайки приложение като PhpMyAdmin, което се предоставя безплатно с повечето хостинг пакети.

Командата, която трябва да изпълните е следната:

update tableprefix_users set user_login='newuser' where user_login='admin';

tableprefix по подразбиране е wp, ако не сте го сменили.

Сменете паролата по подразбиране

Паролата, която Wordpress генерира при първоначалната инсталация е сравнително слаба. Тя се състои от 6 символа и то само от числа и букви. Съществуват приложения чрез, които може да се направи атака и такава слаба парола да бъде открита сравнително лесно. Направете паролата по-сложна, поне от 10 знака. Освен букви и цифри, използвайте и други знаци.

В тази връзка, за защита от продължителни последователни атаки, инсталирайте плъгина LoginLock, чрез който автоматично можете да блокирате IP адрес при определен брой неуспешни опити за влизане в административната част на вашия блог.

Изтриите ненужните файлове

След инсталация или обновяване има два файла, които няма да ви трябват повече. Рядко могат да ви създадат проблем, но за всеки случай е добре да ги изтриете. Това са install.php и upgrade.php. Намират се в папката wp-admin.

Използвайте лимитиран потребител

Създайте си отделен потребител с по-ниски права на достъп, който да използвате за публикуване. Този подход не само ще гарантира сигурността на дневника, ако някой се сдобие с името и паролата ви, но ще ви предпази и от самите вас.

Премахване на версията от header.php

Ако ползвате стара версия на Wordpress с известни пропуски в сигурността, не е много размуно номерът на версията да се вижда публично.

Кодър в header.php,който показва версията е:

<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

За да скриете версията, можете просто да изтриете този ред или да го промените по следния начин:

<meta name="generator" content="WordPress" />

Забележка: Имайте предвид, че версията се показва не само в header.php, а и в rss хранилнката например, а и в няколко други файла. За повече информация вижте по-надолу WordPress Online Security Scanner.

Защита на папка wp-admin

Ограничаване по IP адрес

Единият вариант да ограничите достъпа до администрацията на вашия блог е да посочите изрично кои IP адреси могат да имат достъп. Това става чрез .htaccess файл, който трябва да сложите в директория wp-admin. Неговото съдържание трябва да бъде подобно на това:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
# домашен IP адрес
allow from 64.233.169.99
# работен IP адрес
allow from 69.147.114.210
allow from 199.239.136.200

Този метод определено е много добър за защита, но е и неудобен, ако нямате статичен IP адрес или ако често пътувате и искате да обновявате блога си в движение. За тази цел, много по-удобен е вариантът със защитата с име и парола.

Ограничаване с име и парола

Защитата с име и парола ви позволява да имате достъп до администрацията от всяко кътче на Земята, но добавя второ, допълнително ниво на сигурност. При този вариант отново се използва .htaccess файл. Но този път имаме и един допълнителен файл .htpasswd.

Създайте .htaccess файл в директория wp-admin и напишете следното:

AuthUserFile /home/username/.htpasswd
AuthGroupFile /dev/null
AuthName Blog
AuthType Basic
require user xxxx

Особеностите в този файл са две. Първо, на мястото на xxxx въведете името, с което желаете да влизате (това име НЕ Е името на администраторския ви акаунт). Второ, на реда AuthUserFile виждате, че е зададен път до файла .htpasswd. Тъй като .htpasswd съдържа паролата за достъп, то трябва да сложите този файл извън публичната ви директория (често тя се нарича PUBLIC_HTML, но може и да е с друго име) на хостинга. Ако не сте сигурни, консултирайте се с хостинг доставчика, коя директория е публична и коя не.

Съдържанието на файла .htpasswd е:

xxxx:yyyy

, където xxxx е името, с което желаете да влизате (същото име, което сте написали и в .htaccess), а yyyy е паролата. Ако всичко е успешно, при опит за вход в администрацията ще се появи диалогов прозорец, който ще ви подкани да въведете име и парола.

Уточнение – тези варианти за защита на wp-admin са приложими само, ако регистрирането на потребители е забранено, тоест само вие (или малък кръг от доверени хора) ползвате администрацията.

И един допълнителен съвет – за да спрете търсачките да обхождат директория wp-admin, в главната директория на вашия блог създайте файл robots.txt и напишете това:

Disallow: /wp-admin/

Защита на папка wp-content

Защита с празен index.html

Създайте празен файл с име index.html и го сложете в папка wp-content и в папка wp-content/plugins, за да предотвратите разглеждането на съответните папки. Можете да сложите празен файл и в другите подпапки стига там да няма файл със същото име, но с друго предназначение.

Защита с .htaccess

Най-лесният и бърз начин да забраните разглеждането на дадена директория и нейните поддиректории е да използвате .htaccess файл. Създайте такъв файл със следното съдържание:

Order Allow,Deny
Deny from all
<Files ~ “.(css|jpe?g|png|gif|js|zip|rar|pdf|xsl|ico)$”>
Allow from all
</Files>

и го сложете в директория wp-content. Така не само предпазвате текущата директория от разглеждане, но блокирате и всички опити за зареждане на файлове с изключение на тези с упоменато разширение.

Защита на папка wp-includes

Защита с празен index.html

Създайте празен файл с име index.html и го сложете в папка wp-includes, за да предотвратите разглеждането й. Можете да сложите празен файл и в другите подпапки стига там да няма файл със същото име, но с друго предназначение.

Защита с .htaccess

Отново, най-добрият начин за защита на wp-includes е с използване на .htaccess файл. Можете да използвате същия файл както този при wp-content. При мен за съжаление ползвайки същия файл, спря да работи текстовият редактор TinyMCE.

Решението на проблема е вместо да използвате блокиране на заявки за зареждане на файлове, просто да забраните разглеждането на директорията. Това става като в .htaccess напишете следното:

Options -Indexes
Изключително бърз, лесен и ефективен начин за защита.

Използвайте сигурна връзка към сървъра

По възможност използвайте SSH вместо FTP. Това е може би един от най-трудните за изпълнение съвети, но същевременно един от най-важните. Първо, свържете се с хостинг доставчика си и се уверете, че има включен SSH. Обикновено FTP връзката не е защитена и името и паролата на ftp акаунта ви се предават във вид на чист текст. По този начин, ако някой се добере до тази информация, може да получи достъп до файловете ви и да нанесе достатъчно вреди. Ползвайки SSH, цялата комуникация между вас и сървъра е защитена.

WordPress Online Security Scanner

Този плъгин от Blog Security прави проверка на версията и показва възможните уязвимости в даден блог, включително уязвимости в използваната тема и инсталираните плъгини.

Правете редовна профилактика

Редовно правете резервни копия на файловете и на базата от данни, в случай че се наложи да възстановявате информация.

Следете редовно бюлетина на Wordpress

На адрес http://wordpress.org/development/ се публикува информация свързана с Wordpress, най-новите версии, отстранени пропуски в сигурността и друга полезна информация.

За финал

И накрая – не забравяйте да обновявате редовно.

Събрал съм изброените съвети в един PDF файл. Можете да го изтеглите от следния адрес.

Използвани източници:

Спонсорирани връзки:

Подобни публикации:

  • Няма подобни теми.

14 коментара за “12 съвета за защита на вашия Wordpress блог”

  1. web-bg, в сряда, 6 февруари 2008г. в 14:09:

    Полезни съвети, благодаря!

  2. Калоян К. Цветков, в сряда, 6 февруари 2008г. в 15:08:

    Забележка: Имайте предвид, че версията се показва не само в header.php, а и в rss хранилнката например, а и в няколко други файла.

    Например във wp-login.php — писах за това вече в коментар на оригиналния пост на Мат Кътс

  3. oggin, в сряда, 6 февруари 2008г. в 16:16:

    Поздравления, много добър материал !

  4. Илиян Даргънов, в сряда, 6 февруари 2008г. в 16:38:

    web-bg, oggin – благодаря.

    Калояне, правилно, версията се показва и в този файл. WordPress Online Security Scanner показва и всички останали места, където се вижда версия :)

  5. Петко М, в вторник, 12 февруари 2008г. в 8:10:

    Относно “Преименувайте admin потребителя”:

    Вместо да го правя в PHPMyAdmin,не може ли да го направя в администраторския панел на WordPress, раздел “Потребители”? (По-лесно е.) Или може би става въпрос за някакъв друг потребител?

  6. Илиян Даргънов, в вторник, 12 февруари 2008г. в 13:10:

    От администраторския панел нямаш възможност да преименуваш admin потребителя. Ако пробваш, ще видиш че текстовата кутия с името му е недостъпна за редакция.

    Може да промениш псевдонима, но той няма общо с потребителското име.

    Така че, трябва да използваш команден ред или PHPMyAdmin.

  7. Петко М, в сряда, 13 февруари 2008г. в 16:48:

    Така е, наистина. Явно идеалният вариант е при създаването на самия блог админ-потребителят да се създаде с друго име. Така ще се спести това сложно редактиране.

    Петко М
    http://petkoblog.info/

  8. Илиян Даргънов, в сряда, 13 февруари 2008г. в 18:22:

    Да, това е идея, да има възможност за избор на име на администратора преди инсталацията.

  9. Michel, в понеделник, 18 февруари 2008г. в 10:12:

    Хубави съвети, благодаря! :-)

  10. Michel, в понеделник, 18 февруари 2008г. в 10:15:

    PS Обаче ето - пример за недостатъци на някои от методите, изброени по-горе:

    1) сбърках (случайно) математическия резултат като пусках предния си коментар,
    2) излезе ми prompt: “protected area / enter user & password”,
    3) причината вероятно е в това, че като сбъркаш резултата, и се зарежда някой от административните файлове на WordPress, само че директорията е “заключена” с .htaccess (парола), и затова дава такова съобщение,
    4) аз, естествено, не въведох нищо и после само дадох back button, след като видях че съм сбъркал резултата и после се поправих, но
    5) факт - това може да обърка някой потребител ненужно…

    My $0.02:)

  11. Илиян Даргънов, в понеделник, 18 февруари 2008г. в 15:21:

    @Michel - най-вероятно наистина се извиква някой файл от административната директория. Малък недостатък, но не фатален :)

    Имай предвид също, че тези съвети не са универсални, тоест няма да са практични и приложими във всички ситуации.

    Но поне като първа граница на защита, добре е името на администраторския акаунт да се смени както и паролата.

  12. Ивайло Иванов, в понеделник, 24 март 2008г. в 13:43:

    Много полезна статия, отдавна се чудех как мога да преименувам администраторския си акаунт.

  13. Светозар Георгиев, в понеделник, 7 април 2008г. в 17:36:

    Аз бих искал да добавя няколко неща във връзка с написаното:

    Първо, има вариант за SecureFTP връзка, но не знам как се настройва.

    И второ, което решава и първия проблем, аз ползвам виртуална частна мрежа, тъй като за сега хоствам нещата си на домашния компютър.

    Мисля, че този вариант е много по-лесен за реализация - аз ползвам OpenVPN, който се настройва сравнително лесно (за потребител занимаващ се от години с Линукс например).

    Така може да настроите Apache да показва всички административни страници, както и други услуги, да работят само на адреси от локалната мрежа.

    Имам предвид VirtualHost 192.168.0.1:80 за всички административни страници, а публичните да са VirtualHost реално_IP:80 :-)

  14. Светозар Георгиев, в понеделник, 7 април 2008г. в 17:38:

    Във връзка с горния коментар:

    Така всички важни неща ще са достъпни от локалната мрежа, а точно това е едно от предимствата на VPN - дава Ви достъп до локалната мрежа.

    И тъй като трафика е криптиран - не е нужно да ползвате https, SecureFTP и др. под. На такъв виртуален хост съм си сложил и phpMyAdmin ;-)

Вашият коментар: