Закрываем доступ к сайту по IP адресу или доменному имени

Аватар пользователя Soulstorm

В сети появился ресурс, с помощью которого можно просмотреть все используемые модули на рабочем сайте Drupal. А такую информацию не стоит показывать кому попало...
В этой статье я приведу 3 самых простых способа, как закрыть доступ к сайту определённым ip адресам.

1. Nginx
Для Nginx в конфиг. файл виртуального хоста в секцию http нужно добавить следующие строки:

## deny access from http://drupalxray.com/ 
deny 173.255.230.40;

Подробнее можно почитать тут

2. Varnish
Для Varnish в его файл конфигурации в разделе sub vcl_recv нужно добавить

sub vcl_recv {

       # Block access from these hosts
        if (173.255.230.40 ~ forbidden) {
        error 403 "Forbidden";
        }
}

Более подробно можно посмотреть тут.

3. Apache
Для Apache в файле виртуального хоста нужно добавить:

<Directory />
Order Allow,Deny
Allow from all
Deny from 173.255.230.40 ## или Deny from http://drupalxray.com/
</Directory>

подробнее можно узнать тут.

Такими образом мы запрещаем доступ к сайту конкретному IP адресу или доменному имени.

Комментарии

Аватар пользователя kalabro

Немного оффтоп, но я не

Немного оффтоп, но я не понимаю паранойи, связанной с тем, что например, сайт NASA использует Panels, Calendar или Views Slideshow. Я это вижу (как и Bootstrap и AngularJS) из исходного кода страницы. Здесь нет никакой дыры безопасности. См. пункт 1 здесь: http://drupalspb.org/articles/kalabro/top-10-populyarnyh-voprosov-i-otve...
Да, на сайте NASA подключен jQuery и GA, а ещё эти бесшабашные ребята использует HTML и CSS. И что?

Мне как разработчику интересно, например, что они используют связку Panels + Omega, но это 1) видно просто по вёрстке 2) не гостайна США.

Аватар пользователя Alex Malkov

Этот сервис у меня показал

Этот сервис у меня показал даже отключенные модули.

А ограничить доступ можно еще и с помощью модуля https://drupal.org/project/badbehavior прописав в черном списке, к примеру, только этот айпишник.

Аватар пользователя Konstantin Komelin

В твоем случае запрос придет

В твоем случае запрос придет в Drupal, а в случае Павла обрежется на стороне сервера.

Еще ефективнее заблокировать запросы с определенного IP, используя файрвол на стороне операционной системы, тогда даже веб-сервер будет спать спокойно.

Аватар пользователя Konstantin Komelin

Мы, к сожалению, живем не в

Мы, к сожалению, живем не в идеальном мире, и многие сайты до сих пор на D6, а то и на D5. А там, как известно, обновления бесопасности выпускаются не так быстро.

Кроме того, некоторые сайты не имеют возможности накатить апдейты безопасности, например из-за кастомизаций в коде как ядра, так и контрибов. Апдейт упирается в деньги, часто в большие. Здесь не надо искать виноватого, надо искать выход. А выход - минимизировать возможность атаки на известные дыры. Способ, который описал Павел, я и сам использую.

Добавлю к основной теме статьи. Если вы используете связку Varnish(:80) и Nginx/Apache(:8080), то потрудитесь заблокировать доступ к обоим.

Аватар пользователя kalabro

Константин, способы

Константин, способы «сканирования» друпал-сайтов (как и сайтов на других CMS) известны и общедоступны. Ими может воспользоваться любой желающий с любого IP.

Александр, скрипт потыкался в папки sites/all/modules/%whatever%/README.txt и нашёл то, что спрятано-то и не было :)

Аватар пользователя Soulstorm

Это только пример как можно

Это только пример как можно по быстрому закрыть доступ, а причины могут быть любые, может кто то не хочет, что бы я с домашнего ПК заходил на его сайт, да и самому не забыть как это быстро сделать...