Безопасность WordPress

wordpress logo

Приветствую тебя, мой немногочисленный читатель.
На днях в очередной раз появилась новость о взломе WordPress.
Решил поделиться некоторыми в общем очевидными приемами о безопасности.1) Удалите пользователя по умолчанию (admin), вместо него заведите себя
2) Защитите админку паролем (http-авторизация):
Nginx:

location ~ /wp-login.php {
    auth_basic           "Admin only";
    auth_basic_user_file /usr/local/etc/nginx/pass/.wpadmin;
    fastcgi_pass         127.0.0.1:9000;
    fastcgi_index        index.php;
    fastcgi_param        SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include              /usr/local/etc/nginx/fastcgi_params;
}
# mkdir /usr/local/etc/nginx/pass
# htpasswd -c /usr/local/etc/nginx/pass/.wpadmin vasyapupkin                                                                                                                                                        yapupkin
New password:
Re-type new password:
Adding password for user <strong>vasyapupkin

Тестируем конфигурацию nginx:

# nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Если syntax is ok, то говорим nginx перечитать конфигурацию, в противном случае исправляем ошибки:

# nginx -s reload

Т.к. htpasswd утилита из дистрибутива Apache, то ее может не оказаться в системе (у меня нет Apache, php обрабатывается php-fpm), то можно поставить в принципе поставить Apache, но можно обойтись небольшой утилитой например htpasswd.py написанной на Python 2

cd /usr/ports/security/py-htpasswd && make install clean
# htpasswd.py -c -b /usr/local/etc/nginx/pass/.wpadmin vasyapupkin SUPERPASSWORD

Кроме дополнительной авторизации можно ограничить по IP адресу доступ к админке, добавив пару строк в nginx конфигурацию хоста:

location ~ /wp-login.php {
    auth_basic           "Admin only";
    auth_basic_user_file /usr/local/etc/nginx/pass/.wpadmin;
    fastcgi_pass         127.0.0.1:9000;
    fastcgi_index        index.php;
    fastcgi_param        SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include              /usr/local/etc/nginx/fastcgi_params;
    allow XXX.XXX.XXX.XXX;
    allow 10.10.10.0/24;
    deny all;
}

Незабываем проверить и передернуть NGINX (nginx -t, nginx -s reload)

Apache:

<Directory "/usr/local/www/wordpress/wp-admin">
    AuthType Basic
    AuthName "Admin ONLY"
    AuthUserFile /usr/local/etc/apache24/pass/.wpadmin
    Require valid-user
    Order allow,deny
    allow from 10.10.10. XXX.XXX.XXX.XXX
    Deny from all
</Directory>

В общем как-то так:)
Всем пока.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.