К нам часто обращаются клиенты VPS и физических серверов, с просьбой о помощи в настройке различных редиректов. В этой статье мы собрали наиболее часто возникающие задачи и их решения.
SSL
Вы приобрели SSL-сертификат и теперь естественно хотите чтобы ваш сайт открывался по защищенному протоколу https:// а не http:// . Для этого потребуется внести изменения в конфигурацию вэб-сервера , на Ваш выбор это может быть Apache или Nginx.
Для Apache необходимо добавить следующие строки в файл .htaccess
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-proto} !^https$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Если вы хотите сделать редирект средствами Nginx то необходимо добавить следующие строки в конфиг nginx.conf
server {
listen 10.10.10.10:80;
server_name domain.com;
return 301 https://domain.com$request_uri;
}
Не вносите изменения на редирект https сразу в два сервера, в такой ситуации возможны конфликты в работе. Или циклическая переадресация.
Ловушки для ботов и нежелательного трафика
Защита от ботов и нежелательного трафика если используется Apache (.htaccess)
Бывают ситуации когда возникает подозрение что сайт тормозит, или анализируя логи на сервере вы видите большое количество трафика на страницы , которых
точно нет на сайте. Действие похожее на то что бот прощупывает или ищет какие-то лазейки в движке сайта. Или идут запросы на урл админ панели , а вы точно знаете что в админ панель большого посещения не должно быть. Или идут запросы на урлы спецефичные для CMS Wordpress или Joomla или какого-то другого. А на сервере используется совсем другой движок который не имеет никакого отношения с такими урлами. Возможна ситуация что на сайте есть поиск по урлу /search/ и туда приходит большое количество ботов тем самым посылая постоянно какой-то "мусор" в поисковую службу сайта что создает нагрузку уже не только на сайт но и на SQL БД. Что может замедлить работу уже всего сайта.
В таком случае можно поставить "ловушки" для такого поведения.
Что в результате может снизить как паразитный трафик на сайт так и сократить попытки взлома сайта.
Нижеописанные действия относяться к файлу .htaccess (Apache)
Одно из действий которе можно предпринять это отправить посетителя с его IP на страницу-заглушку:
SetEnvIf REMOTE_ADDR 10.10.10.10 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /blocked_page.html
Здесь 10.10.10.10 - ip вредного посетителя
Ситуация когда "ищут" лазейки на сайте в логах может просматриваться
как попытки зайти на страницы которых нет. Для такого случая можно раставить следующие ловушки:
redirect /bin http://127.0.0.1/
redirect /scanner http://127.0.0.1/
redirect /scripts http://127.0.0.1/
redirect /pma http://127.0.0.1/
redirect /admin http://127.0.0.1/
redirect /phpMyAdmin http://127.0.0.1/
redirect /botadmin http://127.0.0.1/
redirect /wp-admin http://127.0.0.1/
RedirectMatch (.*)\runspam.pl$ http://somedomain.com$1
Для Nginx (аналогичные идеи)
Отправить клиента с ip 10.10.10.10 на страничку:
server {
if ($remote_addr = 10.10.10.10) {
rewrite ^ http://domain.com/blank.htm;
}
...
}
Блокировка по user_agent:
user_gent это идентификатор клиента, например при нормальной работе это может быть Mozilla/5.0,Chrome. В других ситуация здесь могут быть клиенты которые вам совершенно не нужны. Ниже приведен пример блокировки по user_agent :
if ($http_user_agent ~* (netcrawl|npbot|malicious|wget|scanner)) {
return 403;
}
Блокировка урла:
location /scanner {
#location /pma {
#location /phpMyAdmin {
return 301 /some_page;
# return 301 http://127.0.0.1/$request_uri;
# или можно сразу давать
# return 403;
}
Возможна ситуация когда ваш сайт , "спамят" чужими доменами. То есть приходит трафик который к вам отношения не имеет. Такое поведение может быть по разным причинам, в том числе трафик от бот сетей. Бороться с этим можно следующим образом : (для Nginx)
Разрешить доступ только на наши домены
if ($host !~ ^(domain.com|www.domain.com|docs.domain.com)$ ) {
return 444;
}
Рекомендуем ознакомиться со статьей "Как правильно протестировать редиректы на сайте: безопасная переадресация" здесь.
|
Дата: 02.07.2016 Автор: Константин
|
|

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:
comments powered by Disqus