Приветствую тебя, мой немногочисленный читатель.
 На днях в очередной раз появилась новость о взломе 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> В общем как-то так:)
 Всем пока.
 
 




