Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...



В виртуалното пространство се наложи понятие блог. Това е своеобразен дневник, в когото авторът му отразява мисли, идеи, съвети и ги споделя с аудиторията. Водещо място в това начинание е заето от CMS WordPress. CMS e абривиетура на система за управление на съдържанието, а WordPress дължи популярността си по ред причини: безплатна система (на пример, CMS DLE струва 69$ плюс годишна поддръжка от 15$), наличие на 5260 безплатни разширения, разнообразяващи функционалността на системата, над 2000 безплатни шаблона/темплейта и най-вече тя е създадена конкретно за дневник. Отделен е въпроса за възможността опитен PHP-кодер, да я преправи по свои нужди.

Всичко това изброено е обединено под мотото "Кодът е поезия". Остава човек, да реши, че това ще бъде мотора на неговия блог и задели заветните 5 минути за инсталация.

Какво следва да знае новака след успешна инсталация на своя глог?
Към момента н публикацията текуща версия е WordPress 2.8.5. и аз се уговарям, че нещата разгледани нататък касаят нея и надоу до версия 2.7.х.

По подразбиране системата се инсталира с потребителско име "admin".  Първа задължителна стъпка е да смените името с ново. Препоръчително вмъкване на символи @,$, ^, %, в избора на име. Би било хубаво в процеса на инсталация на системата да се избере име различно от admin..
Смяната на потребителското име става като се обърнете в Контролния панел на вашата База данни (БД)..

За отбелязване е наличие на разширение wp-phpmyadmin. То се инсталира в контролния панел на WordPress и от там можете да контролирате вашата БД. Интеграцията протича мудно, защото проверява пароли и налага тяхното потвърждаване след известяване по email.

Съществува команда за конзолата на SQL, която променя потребителско име:
update tableprefix_users set user_login='newuser' where user_login='admin';

На практика извършвам ръчно промяната по следния път отбелязан с цифри.

защита на WordPress

В новопоявилия се прозорец редактираме user_login - admin. На показана снимка ( долу) има два абоната. Ролята на втория абонат ще разгледаме по-нататък. В случая натискаме бутон Edit/Редакция срещу admin.

Преди всяка промяна правете резервно копие на вашата база!
защита на WordPress

Следва същински прозорец, позволяващ промяна на user_login - admin. Заменяме съществуващия admin с новата неразгадаемо име, неподвластно дори за врачки и екстрасенси. Готово.


защита на WordPress

 Продължаваме да укрепваме нашия блог с поредна смяна. Инсталацията на WordPress генерира парола, с която първоначално влизате в вашия контролен панел. Тя е слаба, съставлявана от шест символа - цифри и букви. Сменете я с по-дълга, като вмъкнете @, $, ^, % , а може още букви от източни езици. Смяната се извършва в Контролен панел -> Потребители -> Твоят профил -> Нова парола.

Поредна броня на вашия WP-ADMIN е приложението loginlockdown. То застава на входа и отчита броя опити за логване, зададени от вас. При последвали неуспешни опити заключва входа за време зададено от вас и записва IP-то на пробващия. В последствие това IP-може да се забрани (наложи ban).


защита на WordPress

Поредна мярка за сигурност е да замените в личния профил на администратора потребителското име с друг псевдоним. Преминете по следния път -
Контролен панел -> Потребители -> Потребители -> Твоят профил -> Псевдоним -> замяна.
Да речем, че новата ви администраторска парола е Victor1966, то за псевдоним слагате Dim Dukoff, например. На практика всички ваши публикации ще се обявяват като Публикувано от Dim Dukoff в еди-коя си категория, иначе ще бъдат Публикувано от Victor1966 в еди-коя си категория.

Поредна броня е описание на директория wp-admin намираща се на хост-сървъра. Нещата са прости и се свежда до допуск в тази директория само от вашето IP. Toва става като създадете файл .htaccess.

В OS Windows XP направата на такъв файл се свежда до работа с текстови редактор. Например Akel pad. В Контролния панел на Windows XP влезте в Folder Option -> File Types -> New и добавете разширение .htaccess. Отворете Akel pad и копирайте този код:

RewriteBase /
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
allow from вашето IP_xx.xx.xx.xx.

Съхранете файла като .htaccess (без име). Готово.
Моят сървър разполага сайтовете на виртуални хостове и в условието му за създаване на файл .htaccess е казано да се титулува от RewriteBase /. В вашия случай това ще отпадне или най-добре се запознайте с FAQ относно .htaccess, касаещ вашия сървър.

При динамично IP нещата се усложняват. Контролния панел на моя хост предлага защита на избрана директория с парола. Това ще изисква поредно логване с потребителско име и парола различна от тази на WP-ADMIN. След успешно логване вие получвате достъп до WP-ADMIN.

Втори вариант е сумарно ползване на .htaccess и .htpasswd. Тяхното действие ще извежда подобен прозорец.

защита на WordPress

Особеност е, че файл .htpasswd трябва да бъде поместен извън публичната директория, наричана често public_html и в него е записана вашата парола за достъп до директорията. В този случай е необходимо да се консултирате с вашия хостер, защото зоната над public_html се упоменава като DO_NOT_UPLOAD_HERE.

Файл .htpasswd се състои от username.password и той се създава аналогично по начина за създаване на .htaccess, a .htaccess изглежда така:

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

Подобно за целта е разширение askapache-password-protect. Оставам го без коментар и ползвайте на ваш риск. При мен не сработи, понеже съм с динамично IP и усложение от дописване в .htaccess на първи ред - RewriteBase /.

Вид сигурност е да публикувате като потребител с ранг различен от администратор. Този начин ви предпазва и от самите вас. Не забравяйте да ползвате нов псевдоним, различен от този при логване. Промяната става в Контролния панел.

Kозметика по сайта на вашия блог

Влезте в директория ./wp-admin/** и преименувайте файлове install.php и upgrade.php. Тези файлове са безпредметни след протекла успешна инсталация. Преименувайте/премахнете файл readme.html. Той се намира в www.вашия_сайт.com/readme.html. Тази файл има линк за активиране на инсталация и издава номера на текущата версия.

Съществена част за защита на вашия сайт е да ограничите разглеждането на отделните директории. Така лишавате любопитни от възможността да види какви разширения ползвате. Създайте празен файл в текстови редактор с име index и променете разширението на .html. В краен резултат добивате файл index.html с нулево съдържание. Размножете този файл в директории: вашият_сайт/wp-content, вашият_сайт/wp-content/plugin, вашият_сайт/wp-includes. Това касае по-стари версии. Възможно е да съществува файл index.php в изброените директории с съдържание:

<?php
// Silence is golden.
?>

който на практика върши същата работа.Тези файлове може да разположите в други директории, стига мястото да бъде вакантно.
По-сигурен начин е използване силата на файл .htaccess като забраните разглеждането на индекси. Допишете този код в главния .hrtaccess. Неговото действие се разпространява по дървото на сайта.

## Disable Listing
Options -Indexes

Добавете страница error.php в корена на сайта. За нея може да узнаете от FAQ на вашия хост-сървър. Специфични заявки ще бъдат облужвани от тази страница. Това са съобщенията 403, 404, 405, 408, 500 и т.н. при пренасочване от страна на сървъра. Някой шаблони се предлагат комплект с въпросната страница. Проверете за наличие на подобен файл в текущия шаблон. В файл .htaccess в корена на сайта (root) добавете следните редове:

## Error page
RewriteEngine on
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

защита на WordPress

Инсталиране на wp-security-scan разширение е належащо. То дава нагледна информация за префиксите на вашата БД, стойностите на атрибутите на отделните файлове изграждащи вашия сайт и съвети относно .htaccess файл в конкретни директории. След като извъшите настройките по съвети наwp-security-scan, изключете разширението и го премахнете от сайта.

защита на WordPress

Инсталацията на WordPress предлага по своя ход да промените префиксите на таблиците в БД.Условие, нужно за по-висока защита на блога. Ако това е пропуснато
преминете по пътя Security -> Database -> WP - Database Security. Напишете предполагаем префикс, например god и натиснете бутон Start Renaming. Разбира се преименуването трябва да е разрешено от ALTER rights. В такъв случай традиционния wp_users става wp_godusers и усложнява хакера.

защита на WordPress

защита на WordPress

При здавижен блог ще се наложи да промените префиксите на 11 таблици. Това става в уеб-базирания интерфейс на SQL - phpMyAdmin. Отваряте базата данни и в конзолата на SQL изпълнявате следната команда:

RENAME TABLE wp_стар.префикс TO нов_префикс;

и така за всички останали 10 таблици : wp_categories, wp_comments, wp_link2cat, wp_links, wp_options, wp_post2cat, wp_postmeta, wp_posts, wp_usermeta, wp_users.
Това не е всичко и се налага промяна на записите в таблица wp_options:


UPDATE нов_префикс_options SET option_name=’нов_префикс_user_roles’ WHERE option_name=’wp_user_roles’ LIMIT 1;


UPDATE нов_префикс_options SET option_name=’нов_префикс_autosave_draft_ids’ WHERE option_name=’wp_autosave_draft_ids’ LIMIT 1;


UPDATE нов_префикс_options SET option_name=’нов_префикс_user_level’ WHERE option_name=’wp_user_level’ LIMIT 1;

Преди всяка промяна правете резервно копие на вашата база!

Следващата стъпка е да сканираме атрибутите на файловете изграждащи сайта и съответно да ги променим. Преминаваме по път Security -> Scaner и заменяме фаталните червени в зелени.


защита на WordPress

Тяхно изменение става лесно чрез Total Commander. Организирайте FTP съединение с вашия сайт. За целта от хост-сървъра си узнайте начините за подобна връзка, парола и потребителско име. След като се логнете по FTP съединение вие попадате в директорията на вашия сайт. Листете нужния файл и променете неговия атрибут по пътя Total Commander -> Файл -> Изменение на атрибут - нужна стойност -ОК.

защита на WordPress

Връзката с вградения FTP клиент на Total Commander не е безопасна, понеже името и паролата ви се предават в чист вид. За целта има приложения като WinCSP и тяхното разглеждане е извън темата.

Пореден ход от ваша страна е създаване на файл robottxt. С негова помощ спирате обхождането на паяците в редица директории. Те на свой ред недолюбват индексирането на image-файлове, нужни за графиката на сайта.

Този образец на robottxt считам за идеален за нуждите на WordPress.

User-agent: *
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /tag/
Disallow: /trackback/
Disallow: /feed/
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /?feed=
Disallow: /?s=
Allow: /wp-content/uploads/
Sitemap: вашия_сайт/sitemap.xml
# Google Image
User-agent: Googlebot-Image
Disallow:
Allow: /*
# Google AdSense
User-agent: Mediapartners-Google*
Disallow:
Allow: /*
# Internet Archiver Wayback Machine
User-agent: ia_archiver
Disallow: /
# digg mirror
User-agent: duggmirror
Disallow: /

Съществена част за съществуването на вашия сайт е особено внимание на файл wp-config.php. Този файл след инсталация се намира в корена сайта и съдържа генерални ключове на вашия сайт - имена и пароли към БД.

WordPress  има 4 вида ключа на безопасност, които е нужно да бъдат създадени. От вас се иска просто да запълните конкретни полета в wp-config.php еднократно.

Ако сървърът ви поддържа SSL шифриране то използването му е препоръчително при достъп към админ-конзолата. За целта е нужно да добавите в wp-config.php следния команден ред:
DEFINE ( ‘FORCE_SSL_ADMIN’, True);

Подобно на файл .htpasswd пренесете wp-config.php над обществената директория. WordPress автоматически ще намери своите настройки на новата директория. Всеки опит за корекция на този път от страна на потребител е безполезен.

Ако описаните горе възможности са недостъпни за защитата на wp-config.php, то тя може да се повери на .htaccess и той ще съдържа следния код:

RewriteBase /
# protect wpconfig.php
Order deny,allow
deny from all


Файл .htaccess трябва да се намира в същата директория на wp-config.php. Финален вариант на моя .htaccess изглежда така. В самото начало са добавени IP на персона нон грата, следва забрана за HotLink и всичко казано до тук.

# DO NOT REMOVE THIS LINE AND THE LINES BELOW IPDENYID:uieaw6
deny from 173.1.61.69
deny from 83.228.32.1


## DISABLE HOTLINKING
RewriteEngine on
RewriteBase /
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?profruit.byethost15.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?profruit.hit.bg/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?kaldata.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?profruit.blogspot.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?dreampier.blogspot.com/.*$ [NC]
RewriteRule \.(gif|jpg|swf|jpeg|png|js|css|rar|zip)$ - [F]


RewriteEngine on
RewriteBase /
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php


# BEGIN WordPress
RewriteBase /

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



## Disable Listing
RewriteBase /
Options -Indexes


# Protect htaccess
RewriteBase /

Order allow,deny
Deny from all
Satisfy All

#---End_Protection--


# DDOS atack with HEAD requests
RewriteBase /
#
RewriteEngine On
RewriteCond %{REQUEST_METHOD} HEAD
RewriteRule .* - [F]
#

#---End---


# No Ping--
RewriteBase /
ServerSignature Off
#---End----


Защита от SQL инжекция

Начин за зашита от такава е да спрете изпълнението на заявки съдържи знаци на преполагаем код.Отваряте файл wp-blog-header.php и веднага след уводния коментар добавяте този код. На вид нещата ще изглеждат така:

<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/


<!--Защита от инжекция/-->

$req_url = $_SERVER['REQUEST_URI'];
$piece = explode("?", $req_url);
$my_url = $piece[0];
$subject = $piece[1];
$pattern='/script|http|<|>|%3c|%3e|SELECT|UNION|UPDATE|exe|exec|INSERT|tmp|wp_pro/i';
if (preg_match($pattern, $subject)) {
echo 'Hey you !<br />Get out of here !';
exit;
}


if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
?>

Отговор на подобна заявка ще бъде:
Hey you !
Get out of here !

На финал може да се твърди, че разработчиците на WordPress реагират бързо и своевременно на появили се пукнати в сигурността на системата. От версия WordPress 2.7 в котролния панел се появява предупреждение за поредено обновление. От страна на блогъра се иска само един клик на мишката за разрешение на обновлението.

И помнете - по-добре по-малко, отколкотo повече. Разширения, които не ползвате - снемете тяхната активност и премахнете от системата. Всеки модул представлява потенциална опасност за пробив и е по-добре да се премахне, ако не се ползва.

Всички споменати разширения можете да изтеглите от:
http://wordpress.org/extend/plugins.

Online scaner за тестване на вашия блог. Изисква инсталиране на свое разширение, което след теста деактивирайте. повече подробности узнайте на сайта им.
WPSCAN





до нови срещи   ^.^

25.10.2009 profruit 

2 Response to "WordPress hacks за чайници"

  1. animsaj Said,

    Този коментар бе премахнат от автора.

     

  2. animsaj Said,

    Profruit, клипчета за секцията ти с герои: https://www.youtube.com/watch?v=Gcyv0OpcpT8&index=1&list=RDGcyv0OpcpT8

     

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога