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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 10:39, 7 августа 2020 (править)
Moofer (Обсуждение | вклад)
(Решение №1)
← К предыдущему изменению
Текущая версия (11:50, 7 августа 2020) (править) (отменить)
Moofer (Обсуждение | вклад)
(Ограничение доступа к админ панели для статических адресов через .htaccess в корне сайта)
 
(4 промежуточные версии не показаны)
Строка 31: Строка 31:
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''newadmin''', в коде, нужно заменить на желаемый адрес, '''site.cc.ua''' заменить адресом своего сайта, '''secretcode''' заменить на свой набор символов, '''они в коде встречаются несколько раз'''. '''ОБРАТИТЕ ВНИМАНИЕ!''' '''newadmin''', в коде, нужно заменить на желаемый адрес, '''site.cc.ua''' заменить адресом своего сайта, '''secretcode''' заменить на свой набор символов, '''они в коде встречаются несколько раз'''.
-== Решение №2 ==+== Ограничение доступа к админ панели с определённых адресов ==
-* '''Ограничение доступа к админ панели с определённых адресов через .htaccess в корне сайта'''+Ниже в некоторых примерах будет использоваться IP адрес сервера, на котором находится Ваш сайт. Посмотреть его можно на странице [https://www.1gb.ua/c/s https://www.1gb.ua/c/s] в пункте ''' "Необходимый для работы IP адрес" '''.
-* '''Этот способ подойдёт тем, у кого статический IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.'''+* Если будет нужна какая-нибудь помощь можно обратиться к технической поддержке.
 +=== Ограничение доступа к админ панели для статических адресов через .htaccess в корне сайта ===
 +* Этот способ подойдёт тем, у кого статический IP адрес. Можно комбинировать вместе с первым.
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:
Строка 48: Строка 50:
RewriteCond %{REMOTE_ADDR} !^Ваши IP$ RewriteCond %{REMOTE_ADDR} !^Ваши IP$
RewriteCond %{REMOTE_ADDR} !^Ваши IP$ RewriteCond %{REMOTE_ADDR} !^Ваши IP$
 +# разрешить доступ с IP сервера, на котором находится сайт.
 +RewriteCond %{REMOTE_ADDR} !^195.234.4.57$
 +#
RewriteRule ^(.*)$ - [R=403,L] RewriteRule ^(.*)$ - [R=403,L]
</IfModule> </IfModule>
Строка 53: Строка 58:
</pre> </pre>
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP.
-=== Решение №2.1 ===+ 
-* '''Ограничение доступа к админ панели с определённых адресов через .htaccess в админ каталоге'''+=== Ограничение доступа к админ панели для статических адресов через .htaccess в админ каталоге ===
'''ВЫПОЛНЕНИЕ.''' В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код: '''ВЫПОЛНЕНИЕ.''' В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код:
Строка 63: Строка 68:
allow from IP Адрес 1 allow from IP Адрес 1
allow from IP Адрес 2 allow from IP Адрес 2
 +# разрешить доступ с IP сервера, на котором находится сайт.
 +Allow from 195.234.4.57
 +#
</Limit> </Limit>
</pre> </pre>
'''ОБРАТИТЕ ВНИМАНИЕ!''' вместо '''IP Адрес 1,2''' указать нужные IP. '''ОБРАТИТЕ ВНИМАНИЕ!''' вместо '''IP Адрес 1,2''' указать нужные IP.
-=== Решение №2.2 ===+=== Ограничение доступа к админ панели для всех адресов через .htaccess в админ каталоге ===
-* '''Ограничение доступа к админ панели с определённых адресов через .htaccess. в админ каталоге'''+* Этот способ подойдёт тем, у кого '''динамический''' IP адрес. Можно комбинировать вместе с первым.
-* Этот способ подойдёт тем, у кого '''динамический''' IP адрес. Можно использовать как отдельно этот вариант, так и вместе с первым.+
Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам. Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.
Строка 92: Строка 99:
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес. '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес.
-== Решение №3 ==+== Отключение XML-RPC ==
-* '''Отключение XML-RPC'''+
* XML-RPC — это API интерфейс, который используется для доступа к сайту через мобильные приложения, для трекбэков и пингбэков и используется плагином Jetpack. Если вы пользуетесь чем-то из этого, то оставьте эту функцию включенной или частично включенной. С другой стороны, XML-RPC может быть использован хакерами для атак с перебором логинов и паролей. * XML-RPC — это API интерфейс, который используется для доступа к сайту через мобильные приложения, для трекбэков и пингбэков и используется плагином Jetpack. Если вы пользуетесь чем-то из этого, то оставьте эту функцию включенной или частично включенной. С другой стороны, XML-RPC может быть использован хакерами для атак с перебором логинов и паролей.
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код:
Строка 102: Строка 108:
Order Allow,Deny Order Allow,Deny
Deny from all Deny from all
 +# разрешить доступ с IP сервера, на котором находится сайт.
 +Allow from 195.234.4.57
 +#
</Files> </Files>
</pre> </pre>
-'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP.+'''ОБРАТИТЕ ВНИМАНИЕ!''' В случае необходимости можно добавлять в этот код свои исключения. Обратите внимание на адрес сервера, на котором находится сайт, его возможно нужно будет скорректировать.
 + 
 +== Подключение двух-факторной авторизации ==
 +* Двух-факторная авторизация — это идентификация через логин и пароль и дополнительная идентификация через е-мейл или смартфон. Для включения двойной авторизации есть бесплатные плагины, например, [https://wordpress.org/plugins/miniorange-2-factor-authentication/ Google Two-Factor Authentication], [https://wordpress.org/plugins/google-authenticator/ Google Authenticator] или [https://wordpress.org/plugins/duo-wordpress/ Duo Two-Factor Authentication].
 + 
 +== Плагины безопасности Wordpress ==
 +Большинство техник, в том числе и из этого руководства можно включить в плагинах безопасности. Установите и настройте один из них, это поможет защитить ваш сайт и вам не нужно будет помнить, какие техники вы применили или могли забыть.
 + 
 +Ниже приведены '''примеры''' плагинов безопасности Wordpress:
 + 
 +[https://wordpress.org/plugins/sucuri-scanner/ Sucuri Security]
 + 
 +[https://wordpress.org/plugins/wordfence/ Wordfence]
 + 
 +[https://wordpress.org/plugins/better-wp-security/ iThemes Security]
 + 
 +[https://wordpress.org/plugins/security-ninja/ Security Ninja]
 + 
 +[https://wordpress.org/plugins/all-in-one-wp-security-and-firewall/ All In One WP Security & Firewall]
 + 
-== '''Статья будет дополняться''' ==+'''Помочь найти следы заражения на сайте Вам помогут статьи на страницах''' [http://www.1gb.ua/vir http://www.1gb.ua/vir] и [http://www.1gb.ua/virus http://www.1gb.ua/virus]
[[Категория:CMS]] [[Категория:CMS]]

Текущая версия

Содержание

[править] Общие сведения

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

[править] Смена адреса административной панели через .htaccess

Пример: site.cc.ua/wp-admin ===> site.cc.ua/newadmin)

ВЫПОЛНЕНИЕ. В корневом каталоге сайта найти файл .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 заменить на свой набор символов, они в коде встречаются несколько раз.

[править] Ограничение доступа к админ панели с определённых адресов

Ниже в некоторых примерах будет использоваться IP адрес сервера, на котором находится Ваш сайт. Посмотреть его можно на странице https://www.1gb.ua/c/s в пункте "Необходимый для работы IP адрес" .

  • Если будет нужна какая-нибудь помощь можно обратиться к технической поддержке.

[править] Ограничение доступа к админ панели для статических адресов через .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$
# разрешить доступ с IP сервера, на котором находится сайт.
RewriteCond %{REMOTE_ADDR} !^195.234.4.57$
#
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

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

[править] Ограничение доступа к админ панели для статических адресов через .htaccess в админ каталоге

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

<Limit GET POST PUT>
order deny,allow
deny from all
allow from IP Адрес 1
allow from IP Адрес 2
# разрешить доступ с IP сервера, на котором находится сайт.
Allow from 195.234.4.57
#
</Limit>

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

[править] Ограничение доступа к админ панели для всех адресов через .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, в коде, нужно заменить на свой адрес.

[править] Отключение XML-RPC

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

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

# Блокировка XML-RPC запросов
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
# разрешить доступ с IP сервера, на котором находится сайт.
Allow from 195.234.4.57
#
</Files>

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

[править] Подключение двух-факторной авторизации

  • Двух-факторная авторизация — это идентификация через логин и пароль и дополнительная идентификация через е-мейл или смартфон. Для включения двойной авторизации есть бесплатные плагины, например, Google Two-Factor Authentication, Google Authenticator или Duo Two-Factor Authentication.

[править] Плагины безопасности Wordpress

Большинство техник, в том числе и из этого руководства можно включить в плагинах безопасности. Установите и настройте один из них, это поможет защитить ваш сайт и вам не нужно будет помнить, какие техники вы применили или могли забыть.

Ниже приведены примеры плагинов безопасности Wordpress:

Sucuri Security

Wordfence

iThemes Security

Security Ninja

All In One WP Security & Firewall


Помочь найти следы заражения на сайте Вам помогут статьи на страницах http://www.1gb.ua/vir и http://www.1gb.ua/virus

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