- Блокировка пользователей из определенных стран
- Запрет по странам htaccess
- .htaccess и GeoIP
- Перенаправление по странам
- Блокировка по странам
- Защита сайта (блокировка IP адресов, дополнительные настройки в файле .htaccess)
- Блокировка IP адресов директивой Deny
- Блокировка IP адресов модулем Mod Rewrite
- Блокировка IP адресов стран Северной Америки модулем Mod Rewrite
- Блокировка всех IP адресов, кроме стран СНГ, Bing, Google, Yahoo
- Защита сайта с помощь модуля mod_setenvif
- Дополнительные настройки в файле .htaccess
- Защита сайта от хотлинка с использованием модуля mod_setenvif
Блокировка пользователей из определенных стран
Примеры использования GeoIp, для блокировки пользователей из определенных стран
Использование модуля GeoIP который позволяет перенаправлять или блокировать веб-трафик в соответствии с географическим положением.
Репозиторий EPEL в RHEL и CentOS
По умолчанию для Apache/2.4.6 mod_geoip недоступен в официальном репозитории RHEL / CentOS, поэтому нам нужно установить сторонний репозиторий EPEL.
Mod_GeoIP в RHEL и CentOS
После того, как в вашей системе включен репозиторий EPEL, вы можете просто установить mod_geoip, выполнив следующую команду с его пакетами зависимостей:
Для загрузки последних Geo City и Country Database, выполните команды:
Включите Mod_GeoIP в Apache
После того, как модуль установлен, откройте и отредактируйте основной файл конфигурации модуля текстовым редактором и активируйте модуль:
Установите строку GeoIPEnable с Off в положение On. Так же убедитесь, что вы добавили абсолютный путь к файлу базы данных GeoIP.
Перезапустите службу Apache.
Перенаправление пользователей на основе страны
В описанном примере код перенаправит пользователей на основе страны, который мы установили как AS (Азия).
Таким образом, вы можете перенаправить всех пользователей на основе их кода страны.
Блокировка пользователей на основе страны
Данный пример заблокирует пользователей на основе кода страны, который устанавливает GeoIP.
Пример блокировки пользователей из стран AS (Азия) и USA (США).
Разрешение доступа пользователей на основе страны
Данный пример позволит пользователям иметь доступ только из ниже перечисленных стран.
Каждый запрос на сайт содержит специальный заголовок GeoIp-Country-Code, в котором содержится двухбуквенный код страны посетителя ISO 3166. Страна определяется исходя из IP адреса посетителя по данным MaxMind GeoLite.
- AF – Africa
- AN – Antarctica
- AS – Asia
- EU – Europe
- NA – North America
- OC – Oceania
- SA – South America
- UA – Ukraine
- CN – China
- PL – Poland
Источник
Запрет по странам htaccess
Господа необходим взгляд со стороны знатока.
Несколько месяцев подряд постоянно пытаются сломать сайт клиента. Были и успешные попытки, последняя — вчера, залили папку фейковой палкой. Гугл и хостер прислали свои «ай-йя-яй» сайтик маленький — 100+ страниц, висит на вордпрессе. Версии ВП регулярно обновляются. Однако атаки продолжаются. Не хочется выглядеть параноиком, но увы, грешу на конкурентов, т.к. с сайта идут продажи и многие из конкурентов были попячены в топах.
В качестве одной из мер отсечения решил запретить доступ ненужных стран в .htaccess, т.к. сайт региональный, а паразиты как правило лезут с «мусорных» айпишек.
Если есть спецы, одобрите или подправьте, плиз сделанную директиву (целью было отсечь всех, кроме стран СНГ и прибалтики):
Было бы точнее отсекать с помощью модуля апатча mod_geo. Но я так понял хостинг стандартный и вы ничего там настроить не можете? тогда может хотя бы впн лучше взять.
А чего ломают? фиксите движок. какие атаки идут? чтобы положить сайт? на нагрузку? дос? так на хостинге уже что-то ставить нужно типа даже того же дос дефлейта. А если ломают движок, то отсекать страны вообще ничего не даст.
может кеширование попробуйте, чтобы уменьшить нагрузку
Для начала смените все пароли (админки, хостинг, фтп, БД. )
Проверьте права на папки
Если ддосят. обычно слабо =) То лучше найти хороший антиддосовый хостинг или взять дешевый сервачек в ДЦ, у нормальных обычно уже стоят фильтрующие Цыски\Длинки
Хостинг обычный шаред, для 1 мелкого сайта не было нужды брать что-то серьёзнее. Взять вдс-ку — нет проблем. Но я в администрировании ламер. Моя задача двигать сайт. Попутные вопросы решаю по мере своих способностей, т.к. клиент является моим хорошим знакомым.
Ломают через вп, на сколько я вдупляю 🙂 Заливают файлы. Например после последней атаки в корне появились лишние: phpmailer.php и папка .PayPal, обоим я сначала поставил нулевые права, после обнаружения. Папку вообще вчера снёс. Были попытки ковыряния и заливания папок и файлов через скрипты обрабатывающие картинки. Т.е. лезут во все щели, куда только можно.
Ддоса нет. Слишком дорогостоящее занятие для конкурентов клиента.
Например, сегодня вижу по ливу переходы с таких адресов:
N_N_N:
Хостинг обычный шаред, для 1 мелкого сайта не было нужды брать что-то серьёзнее. Взять вдс-ку — нет проблем. Но я в администрировании ламер. Моя задача двигать сайт. Попутные вопросы решаю по мере своих способностей, т.к. клиент является моим хорошим знакомым.
Ломают через вп, на сколько я вдупляю 🙂 Заливают файлы. Например после последней атаки в корне появились лишние: phpmailer.php и папка .PayPal, обоим я сначала поставил нулевые права, после обнаружения. Папку вообще вчера снёс. Были попытки ковыряния и заливания папок и файлов через скрипты обрабатывающие картинки. Т.е. лезут во все щели, куда только можно.
Ддоса нет. Слишком дорогостоящее занятие для конкурентов клиента.
Например, сегодня вижу по ливу переходы с таких адресов:
Как я понял вам заливают скрипты и шлют через ваш хостинг майл спам. А эти переходы похожи на скорее всего просто рефки по которым юзеры переходят со своией яху почты читая этот спам, наверное их провоцируют на какую-то оплату, раз еще заливают скрипты платежных систем.
Но в любом случае так и буду ломать если не пофиксить движок, серверные фишки и настройки htaccess врятли что-то дадут если дыра в движке.
А вы пробовали обновлять этот ворд прес до последней версии?, возможно было бы еще интерестно посмотреть логи того же апатча, можно было бы попробовать увидеть как ломают.
Грош цена такому скрипту, который еще кроме заливки картинок может ломать весь сайт:)
Источник
.htaccess и GeoIP
Используя GeoIP можно выполнить перенаправление или блокировку определенных IP по странам.
Для того чтобы настроить работу GeoIP на сайте используя .htaccess, необходимо проверить включен ли модуль GeoIP на сервере. Для этого необходимо создать php файл с любым названием, например: info.php, открыть его для редактирования и вставить такой код:
После этого перейти на эту страницу, например: https://unihost.com/info.php и нажать Ctrl+F для поиска на странице. В поисковую строку необходимо ввести «geo» без кавычек. В случае если на странице буду присутствовать директивы вида:
Это значит что модуль GeoIP включен на сервере, на котором расположен сайт. В таком случае можно продолжать настройку GeoIP.
Рассмотрим варианты применения GeoIP в примерах.
Перенаправление по странам
Иногда бывает нужно перенаправить пользователя с иностранным IP на английскую версию сайта, и наоборот. В таком случае в .htaccess необходимо вставить код вида:
RewriteEngine On — включение модуля Rewrite
GeoIPEnable On — включение модуля GeoIP
RewriteCond %
RewriteCond %
RewriteRule .* http://unihost.com/ru/ [R=302,L] — выполняем редирект на русскую версию сайта
RewriteCond %
RewriteRule .* http://unihost.com/en/ [R=302,L] — методом исключения выполняем редирект на англоязычную версию сайта
Блокировка по странам
В случае как с перенаправлением, так же и с блокировкой. Есть возможность заблокировать того или иного посетителя в зависимости от страны. Для этого в .htaccess необходимо добавить следующий код:
GeoIPEnable On — включение модуля GeoIP
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry — создание некоего массива (цепочки) BlockCountry в которую вноситься условие что страна CN — Китай
SetEnvIf GEOIP_COUNTRY_CODE FR BlockCountry — тоже самое что и предыдущая строка, только страна в этом случае Франция
Deny from env=BlockCountry — блокирование стран которые находятся в цепочке BlockCountry
Источник
Защита сайта (блокировка IP адресов, дополнительные настройки в файле .htaccess)
- Статистика 5726 0
- Автор: admin
- Раздел: Новости, Статьи, Шпаргалка
- Комментарии: Комментариев нет
- Теги: Bing, Google, Yahoo, блокировка IP адресов, блокировка по странам, Запретить все IP, кроме СНГ, настройки в файле .htaccess
Смотрите список IP адресов стран: здесь
Оптимальное решение для запрета доступа к сайтам по выбранным IP адресам — использовать в файле .htaccess директиву Deny. Важно правильно установить порядок обработки правил — Allow, Deny или Deny, Allow:
При Allow,Deny сначала обрабатываются разрешающие правила Allow, затем запрещающие Deny. Действия, не подпадающие ни под одну из директив Allow или Deny, будут запрещены по умолчанию — Deny имеет приоритет над Allow. Я рекомендую использовать для общего запрета данный порядок обработки правил — с Deny from all.
При Deny,Allow сначала обрабатываются запрещающие правила Deny, затем разрешающие Allow. Действия, не подпадающие ни под одну из директив Deny или Allow, будут разрешены по умолчанию — Allow имеет приоритет над Deny.Рекомендуем использовать данный порядок обработки правил при выборочном запрете.
Если перечислять все диапазоны IP адресов выбранных стран, список получается слишком длинным. Чтобы избежать этого, мы решили заблокировать блоки IP адресов, отличающихся первым октетом (ХХХ.0.0.0/8). Получился совсем небольшой список, охватывающий большинство диапазонов IP адресов: AfriNIC (Африка), APNIC (Юго-Восточная Азия) и LACNIC (Южная Америка и страны Карибского бассейна). Из списка мы исключили блоки IP адресов ARIN (Северная Америка) и RIPE (Ближний Восток, Европа и Центральная Азия). Список можете скачать ниже:
Скачать список IP адресов (202 Загрузки)
Блокировка IP адресов директивой Deny
Разрешаем только методы GET, HEAD, POST:
Запрещаем доступ к сайту для всех методов с IP адресов AfriNIC, APNIC, LACNIC:
Order Deny,Allow
# AfriNIC:
Deny from 41 102 105 197
# APNIC:
Deny from 1 14 27 36 39
Deny from 42.0.0.0/7
Deny from 49
Deny from 58.0.0.0/7
Deny from 60.0.0.0/7
Deny from 101 103 106
Deny from 110.0.0.0/7
Deny from 112.0.0.0/5
Deny from 120.0.0.0/6
Deny from 124.0.0.0/7
Deny from 126 133 175 180
Deny from 182.0.0.0/7
Deny from 202.0.0.0/7
Deny from 210.0.0.0/7
Deny from 218.0.0.0/7
Deny from 220.0.0.0/6
# LACNIC:
Deny from 177 179 181
Deny from 186.0.0.0/7
Deny from 189
Deny from 190.0.0.0/7
Deny from 200.0.0.0/7
# Networks:
Deny from 3 6 9 11 13 15
Deny from 16.0.0.0/6
Deny from 20.0.0.0/7
Deny from 22 25 26
Deny from 28.0.0.0/7
Deny from 30 33
Deny from 34.0.0.0/7
Deny from 38 40 44 47 48
Deny from 51
Deny from 52.0.0.0/6
Deny from 56.0.0.0/7
Deny from 214.0.0.0/7
Данным правилом мы запретили доступ к сайту для IP адресов стран Юго-Восточной Азии, Африки, Южной Америки и Карибского бассейна, а также некоторых корпораций. Обратите внимание, что в этом списке отсутствуют IP адреса из смешанных зон, которые можно найти на сайтах AfriNIC, APNIC, LACNIC и RIPE. Однако данные диапазоны отсекают основной объем паразитного трафика. IP адреса ARIN блокировать не рекомендуется, иначе роботы поисковых систем Bing, Google, Yahoo не смогут заходить на ваш сайт.
Здесь умышленно задан порядок обработки правил Deny,Allow, а не наоборот, чтобы иметь возможность добавить ниже разрешающие правила исключений для некоторых IP-адресов из заблокированных диапазонов. Однако имейте ввиду, что и другие запрещающие правила для этих IP-адресов, касающиеся, например, запрета на использование определенных символов в URL, могут не действовать — будут разрешены любые URL-запросы. Кстати, в случае использования порядка обработки правил Allow,Deny рекомендуется прописать в самом начале разрешающее правило для всех Allow from all, но это не самое удачное решение — лучше его не использовать, если вы собираетесь устанавливать выборочно запрещающие правила.
Примечание: для отображения сообщения об ошибке 403 (доступ запрещен) лучше использовать не собственную страницу, а короткое сообщение, уменьшая тем самым нагрузку на сервер. Например, можно послать хакеров или ботов по известному адресу:
ErrorDocument 403 «Fuck you!
Обратите внимание на то, что в строке прописана только одна кавычка (для Apache 1.3). Для Apache 2.0 необходимо обязательно ставить закрывающую кавычку.
Блокировка IP адресов модулем Mod Rewrite
Используя модуль mod_rewrite, список IP адресов можно существенно сократить. В этом помогут регулярные выражения. Главное удобство модуля mod_rewrite в данной задаче — возможность использования правил исключений.
Блокировка IP адресов стран Северной Америки модулем Mod Rewrite
Поставленная задача: необходимо заблокировать IP адреса ARIN (стран Северной Америки), оставив доступ к сайтам для поисковых ботов Bing, Google, Yahoo. При этом на хостинге размещены несколько сайтов, один из которых предназначен для американской аудитории.
Для этого в корневой директории своего хостинга размещаем файл .htaccess, в котором прописываем следующее правило:
# Включаем модуль mod_rewrite:
RewriteEngine on
# Для файла .htaccess, расположенного в корневой директории сайта
RewriteBase /
RewriteCond %^(?:7|23|45|50|64|71|96|1 (?:0[0478]|73|84|99)|2 (?:06|16))\. *$
RewriteCond %!^(?:www\.)?my_english_site\.com$ [NC]
RewriteCond %!bingbot [NC]
RewriteCond %!(?:Googlebot|gsa-crawler) [NC]
RewriteCond %!Slurp [NC]
RewriteRule ^.*$ — [F,L]
Данное правило модуля mod_rewrite блокирует IP адреса стран Северной Америки, если имя хоста не содержит my_english_site.com, и строка User Agent не содержит имена поисковых ботов Bing, Google, Yahoo. Правило действует на все сайты, размещенные на хостинге, за исключением домена my_english_site.com. Если нужно исключить все поддомены этого сайта, пишем:
При использовании в файлах .htaccess, размещенных во вложенных директориях, правил модуля mod_rewrite не забудьте добавить наследование указанных правил, иначе они работать не будут:
RewriteEngine on
RewriteOptions inherit
RewriteBase /путь_к_директории_с_файлом_.htaccess_от_корня_сайта/
…
Обязательно указывайте в RewriteBase путь к директории, в которой размещен файл .htaccess, от корня сайта. Все преобразования ссылок осуществляются относительно той директории, в которой расположен файл .htaccess. При этом унаследованные правила модуля mod_rewrite работают также относительно этой директории, то есть как бы копируются в новый файл. Если файл .htaccess расположен в директории /partners/web/access/, как данная статья, то:
Использование общего файла .htaccess для всех сайтов возможно не на всех хостингах. В противном случае вам придется прописывать данные правила для каждого сайта в отдельности, что неудобно при редактировании (придется вносить изменения в файлы .htaccess каждого сайта).
Блокировка всех IP адресов, кроме стран СНГ, Bing, Google, Yahoo
Правило, блокирующее доступ к сайту со всех IP адресов, за исключением стран СНГ (включая Балтию) и поисковых ботов Bing, Google, Yahoo:
RewriteEngine on
RewriteBase /
# Запретить все IP, кроме СНГ, Bing, Google, Yahoo:
RewriteCond %!^(?:2|3|5|3[17]|46|62|77|82|94|1 (?:09|28|3[046]|4[1569]|5[189]|64|7[168]|8[58]|94)|21[237])\. *$
RewriteCond %!bingbot [NC]
RewriteCond %!Googlebot [NC]
RewriteCond %!Slurp [NC]
RewriteRule ^.*$ — [F,L]
В данное правило включены диапазоны IP адресов по первому октету, в которые входят IP адреса всех бывших республик СССР (включая Латвию, Литву и Эстонию). Данное правило не блокирует IP адреса других европейских стран, которые также входят в данный диапазон. Правило удобно применять для сайтов, ориентированных исключительно на аудиторию СНГ.
Защита сайта с помощь модуля mod_setenvif
Модуль mod_setenvif, позволяющий использовать регулярные выражения, представляет наиболее удобный способ защиты сайта.
# Устанавливаем переменную post, разрешающую метод POST для следующих URL:
SetEnvIf Request_URI ^URL_1$ post
SetEnvIf Request_URI ^URL_2$ post
# Разрешаем метод POST только для URL_1 и URL_2:Order Deny,Allow
Deny from env=!post# Блокировка ботов по User Agent:
SetEnvIfNoCase User-Agent «(?:Accoona|antabot|Ask Jeeves/Teoma|Baiduspider|Bigmir|China|curl/|Dolphin|Download|EltaIndexer|Email|FlashGet|GameSpy|Gigabot|grub|Gulper Web|ia_archiver|liveinternet|Meta|Mihalism|OmniExplorer|Pagebull|Scooter|Twiceler|Validator|WebAlta|Wget|WordPress).*$» bad
# Блокировка IP-адресов AfriNIC, APNIC, LACNIC:
SetEnvIf Remote_Addr ^(?:346|1[1-35-9]|221286|314|4[04578]|52|21[45])\. *$ bad
# AfriNIC:
SetEnvIf Remote_Addr ^(?:41|102|105|197)\. *$ bad
# APNIC:
SetEnvIf Remote_Addr ^(?:1|14|27|3[69]|4[239]|5[89]|6[01]|1 (?:0[136]|17|23|33|75|8[023])|2 (?:0[23]|1[0189]|23))\. *$ bad
# LACNIC:
SetEnvIf Remote_Addr ^(?:1 (?:7[79]|8[1679]|9[01])|20[01])\. *$ bad
# Запрет для бота Dolphin:
SetEnvIf Remote_Addr ^94\.127\.14[45]\. *$ bad
SetEnvIf Referer ^https?://(. +\.)?amazing\.ru/.*$ bad
SetEnvIf Remote_Addr ^213\.189\.197\.7$ bad
# Запрет языковых версий браузера — Arabic|Hindi|Turkish|Chinese:
SetEnvIfNoCase Accept-Language (?:ar|hi|tr|zh) bad
# Символы, разрешенные в URL, например:
SetEnvIf Request_URI [^-/\._0-9a-z] bad
# Ограничение длины URL:
SetEnvIf Request_URI ^.<242,>$ bad
# Маска для разрешенных URL — без учета параметров запроса, ограничить которые можно с помощью модуля mod_rewrite, например:
SetEnvIf Request_URI ^/(?:[-/_0-9a-z]<0,236>(?:/|\.[a-z]<2,4>|[0-9a-z]))?$ goodOrder Deny,Allow
Deny from env=!good
Deny from env=badOrder Deny,Allow
# Запрет всех IP-адресов компании, позиционирующей себя на рынке поискового продвижения сайтов:
Deny from 94.244.131.83
Дополнительные настройки в файле .htaccess
Защита сайта от «левых» параметров в запросах
# RewriteCond %
\?[0-9A-Z] [NC,OR] (если не используете ссылки с параметрами, раскомментируйте строку)
RewriteCond %(?:\%[0-9A-Z]*|\&|\(|\)|\+|\[|\]|\ ) [NC,OR]
RewriteCond %(?:\ |%3E) [NC,OR]
RewriteCond %_REQUEST (?:=|\[|\%[0-9A-Z]<0,2>) [NC,OR]
RewriteCond %base64_encode.*\(.*\) [NC,OR]
RewriteCond %DOCUMENT_ROOT= [NC,OR]
RewriteCond %GLOBALS (?:=|\[|\%[0-9A-Z]<0,2>) [NC,OR]
RewriteCond %javascript [NC,OR]
RewriteCond %mosConfig_[a-zA-Z_]<1,21>(?:=|\%3D) [NC]
RewriteRule ^.*$ — [F,L]
Запись выше можно существенно сократить:
Либо глобально разрешаем только, например, три метода (GET, HEAD, POST) с заранее указанными символами в строке http-запроса, причем метод POST разрешается только для указанного REQUEST_URI:
RewriteCond %
!^(?:GET|HEAD)\ /(?:[разрешенные_символы_REQUEST_URI]+(?:\?[разрешенные_символы_QUERY_STRING]+)?)?\ HTTP/1\.[01]$
RewriteCond %!^POST\ /разрешенный_для_метода_POST_REQUEST_URI\ HTTP/1\.[01]$
RewriteRule ^.*$ — [F,L]
Защита сайта от хотлинка с использованием модуля mod_setenvif
Запрещаем скачивание графических файлов на сайте по прямым ссылкам:
Источник