Wordpress - защита админ панели
Материал из 1GbWiki.
Версия 09:48, 7 августа 2020 (править) Moofer (Обсуждение | вклад) (Новая: == Общие сведения == В этой статье описываются варианты защиты административной панели Вашего сайта на...) ← К предыдущему изменению |
Текущая версия (11:50, 7 августа 2020) (править) (отменить) Moofer (Обсуждение | вклад) (→Ограничение доступа к админ панели для статических адресов через .htaccess в корне сайта) |
||
(8 промежуточных версий не показаны.) | |||
Строка 2: | Строка 2: | ||
В этой статье описываются варианты защиты административной панели Вашего сайта на CMS [http://wordpress.org WordPress]. | В этой статье описываются варианты защиты административной панели Вашего сайта на CMS [http://wordpress.org WordPress]. | ||
- | == | + | == Смена адреса административной панели через .htaccess == |
- | + | '''Пример: site.cc.ua/wp-admin ===> site.cc.ua/newadmin)''' | |
+ | |||
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | ||
Строка 30: | Строка 31: | ||
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''newadmin''', в коде, нужно заменить на желаемый адрес, '''site.cc.ua''' заменить адресом своего сайта, '''secretcode''' заменить на свой набор символов, '''они в коде встречаются несколько раз'''. | '''ОБРАТИТЕ ВНИМАНИЕ!''' '''newadmin''', в коде, нужно заменить на желаемый адрес, '''site.cc.ua''' заменить адресом своего сайта, '''secretcode''' заменить на свой набор символов, '''они в коде встречаются несколько раз'''. | ||
- | == | + | == Ограничение доступа к админ панели с определённых адресов == |
- | + | Ниже в некоторых примерах будет использоваться IP адрес сервера, на котором находится Ваш сайт. Посмотреть его можно на странице [https://www.1gb.ua/c/s https://www.1gb.ua/c/s] в пункте ''' "Необходимый для работы IP адрес" '''. | |
- | * | + | * Если будет нужна какая-нибудь помощь можно обратиться к технической поддержке. |
+ | === Ограничение доступа к админ панели для статических адресов через .htaccess в корне сайта === | ||
+ | * Этот способ подойдёт тем, у кого статический IP адрес. Можно комбинировать вместе с первым. | ||
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | ||
Строка 47: | Строка 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> | ||
Строка 52: | Строка 58: | ||
</pre> | </pre> | ||
'''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. | '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. | ||
- | === | + | |
- | + | === Ограничение доступа к админ панели для статических адресов через .htaccess в админ каталоге === | |
- | * | + | '''ВЫПОЛНЕНИЕ.''' В админ каталоге сайта (wp-admin) создать файл .htaccess, открыть его и добавить код: |
+ | |||
+ | <pre> | ||
+ | <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> | ||
+ | </pre> | ||
+ | |||
+ | '''ОБРАТИТЕ ВНИМАНИЕ!''' вместо '''IP Адрес 1,2''' указать нужные IP. | ||
+ | === Ограничение доступа к админ панели для всех адресов через .htaccess в админ каталоге === | ||
+ | * Этот способ подойдёт тем, у кого '''динамический''' IP адрес. Можно комбинировать вместе с первым. | ||
+ | Хакеры используют ботов, чтобы пытаться попасть в админ панель сайта. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам. | ||
+ | |||
'''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | ||
Строка 64: | Строка 88: | ||
<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$ | ||
- | + | RewriteRule ^(.*)$ - [F] | |
- | + | ||
- | + | ||
- | RewriteRule ^(.*)$ - [ | + | |
</IfModule> | </IfModule> | ||
</pre> | </pre> | ||
- | '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес, вместо '''Ваши IP''' указать нужные IP. | ||
- | == ''' | + | '''ОБРАТИТЕ ВНИМАНИЕ!''' '''site.cc.ua''', в коде, нужно заменить на свой адрес. |
+ | |||
+ | == Отключение XML-RPC == | ||
+ | * XML-RPC — это API интерфейс, который используется для доступа к сайту через мобильные приложения, для трекбэков и пингбэков и используется плагином Jetpack. Если вы пользуетесь чем-то из этого, то оставьте эту функцию включенной или частично включенной. С другой стороны, XML-RPC может быть использован хакерами для атак с перебором логинов и паролей. | ||
+ | '''ВЫПОЛНЕНИЕ.''' В корневом каталоге сайта найти файл .htaccess, открыть его и в начале добавить код: | ||
+ | |||
+ | <pre> | ||
+ | # Блокировка XML-RPC запросов | ||
+ | <Files xmlrpc.php> | ||
+ | Order Allow,Deny | ||
+ | Deny from all | ||
+ | # разрешить доступ с IP сервера, на котором находится сайт. | ||
+ | Allow from 195.234.4.57 | ||
+ | # | ||
+ | </Files> | ||
+ | </pre> | ||
+ | '''ОБРАТИТЕ ВНИМАНИЕ!''' В случае необходимости можно добавлять в этот код свои исключения. Обратите внимание на адрес сервера, на котором находится сайт, его возможно нужно будет скорректировать. | ||
+ | |||
+ | == Подключение двух-факторной авторизации == | ||
+ | * Двух-факторная авторизация — это идентификация через логин и пароль и дополнительная идентификация через е-мейл или смартфон. Для включения двойной авторизации есть бесплатные плагины, например, [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:
All In One WP Security & Firewall
Помочь найти следы заражения на сайте Вам помогут статьи на страницах http://www.1gb.ua/vir и http://www.1gb.ua/virus