Wordpress - защита админ панели

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 10:31, 7 августа 2020 (править)
Moofer (Обсуждение | вклад)
(Решение №2.2)
← К предыдущему изменению
Версия 10:36, 7 августа 2020 (править) (отменить)
Moofer (Обсуждение | вклад)

К следующему изменению →
Строка 31: Строка 31:
== Решение №2 == == Решение №2 ==
-* '''Ограничение доступа к админ панели с определённых адресов через .htaccess. в корне сайта'''+* '''Ограничение доступа к админ панели с определённых адресов через .htaccess в корне сайта'''
* '''Этот способ подойдёт тем, у кого статический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.''' * '''Этот способ подойдёт тем, у кого статический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.'''
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:
Строка 53: Строка 53:
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP.
=== Решение №2.1 === === Решение №2.1 ===
 +* '''Ограничение доступа к админ панели с определённых адресов через .htaccess в админ каталоге'''
 +'''ВЫПОЛНЕНИЕ.''' В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код:
 +
 +<pre>
 +<Limit GET POST PUT>
 +order deny,allow
 +deny from all
 +allow from IP Адрес 1
 +allow from IP Адрес 2
 +</Limit>
 +</pre>
 +
 +'''ОБРАТИТЕ ВНИМАНИЕ!''' вместо '''IP Адрес 1,2''' указать нужные IP.
 +=== Решение №2.2 ===
* '''Ограничение доступа к админ панели с определённых адресов через .htaccess. в админ каталоге''' * '''Ограничение доступа к админ панели с определённых адресов через .htaccess. в админ каталоге'''
-* '''Этот способ подойдёт тем, у кого статический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.'''+* Этот способ подойдёт тем, у кого '''динамический''' IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.
 +Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.
 + 
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:
Строка 64: Строка 80:
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine on RewriteEngine on
 +RewriteCond %{REQUEST_METHOD} POST
 +RewriteCond %{HTTP_REFERER} !^http://(.*)?site.cc.ua [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
-RewriteCond %{REMOTE_ADDR} !^Ваши IP$+RewriteRule ^(.*)$ - [F]
-RewriteCond %{REMOTE_ADDR} !^Ваши IP$+
-RewriteCond %{REMOTE_ADDR} !^Ваши IP$+
-RewriteRule ^(.*)$ - [R=403,L]+
</IfModule> </IfModule>
-</pre> 
-'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. 
-=== Решение №2.2 === 
-* '''Ограничение доступа к админ панели с определённых адресов через .htaccess. в админ каталоге''' 
-* Этот способ подойдёт тем, у кого '''динамический''' IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым. 
-Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам. 
-'''ВЫПОЛНЕНИЕ.''' В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код: 
- 
-<pre> 
- 
-<Limit GET POST PUT> 
-order deny,allow 
-deny from all 
-allow from IP Адрес 1 
-allow from IP Адрес 2 
-</Limit> 
</pre> </pre>

Версия 10:36, 7 августа 2020

Содержание

Общие сведения

В этой статье описываются варианты защиты административной панели Вашего сайта на CMS WordPress.

Решение №1

  • Смена адреса админ панели (пример, с site.cc.ua/wp-admin на site.cc.ua/newadmin) через .htaccess.

ВЫПОЛНЕНИЕ. В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^newadmin/?$ /wp-login.php?secretcode[R,L]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^newadmin/?$ /wp-login.php?secretcode&redirect_to=/wp-admin/ [R,L]
RewriteRule ^newadmin/?$ /wp-admin/?secretcode[R,L]
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)site.cc.ua/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)site.cc.ua/wp-login\.php
RewriteCond %{HTTP_REFERER} !^(.*)site.cc.ua/newadmin
RewriteCond %{QUERY_STRING} !^secretcode
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^.*$ /wp-login.php?secretcode[R,L]
</IfModule>

ОБРАТИТЕ ВНИМАНИЕ! newadmin, в коде, нужно заменить на желаемый адрес, site.cc.ua заменить адресом своего сайта, secretcode заменить на свой набор символов, они в коде встречаются несколько раз.

Решение №2

  • Ограничение доступа к админ панели с определённых адресов через .htaccess в корне сайта
  • Этот способ подойдёт тем, у кого статический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.

ВЫПОЛНЕНИЕ. В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:

# Ограничение доступа с IP к определённой странице
ErrorDocument 401 http://site.cc.ua/index.php?error=404
ErrorDocument 403 http://site.cc.ua/index.php?error=404

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^Ваши IP$
RewriteCond %{REMOTE_ADDR} !^Ваши IP$
RewriteCond %{REMOTE_ADDR} !^Ваши IP$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

ОБРАТИТЕ ВНИМАНИЕ! site.cc.ua, в коде, нужно заменить на свой адрес, вместо Ваши IP указать нужные IP.

Решение №2.1

  • Ограничение доступа к админ панели с определённых адресов через .htaccess в админ каталоге

ВЫПОЛНЕНИЕ. В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код:

<Limit GET POST PUT>
order deny,allow
deny from all
allow from IP Адрес 1
allow from IP Адрес 2
</Limit>

ОБРАТИТЕ ВНИМАНИЕ! вместо IP Адрес 1,2 указать нужные IP.

Решение №2.2

  • Ограничение доступа к админ панели с определённых адресов через .htaccess. в админ каталоге
  • Этот способ подойдёт тем, у кого динамический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.

Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.

ВЫПОЛНЕНИЕ. В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:

# Ограничение доступа с IP к определённой странице
ErrorDocument 401 http://site.cc.ua/index.php?error=404
ErrorDocument 403 http://site.cc.ua/index.php?error=404

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?site.cc.ua [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
</IfModule>

ОБРАТИТЕ ВНИМАНИЕ! site.cc.ua, в коде, нужно заменить на свой адрес.

Решение №3

  • Отключение XML-RPC
  • XML-RPC — это API интерфейс, который используется для доступа к сайту через мобильные приложения, для трекбэков и пингбэков и используется плагином Jetpack. Если вы пользуетесь чем-то из этого, то оставьте эту функцию включенной или частично включенной. С другой стороны, XML-RPC может быть использован хакерами для атак с перебором логинов и паролей.

ВЫПОЛНЕНИЕ. В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:

# Блокировка XML-RPC запросов
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

ОБРАТИТЕ ВНИМАНИЕ! site.cc.ua, в коде, нужно заменить на свой адрес, вместо Ваши IP указать нужные IP.

Статья будет дополняться

Личные инструменты