Модуль безопасности IIS / PHP Brute Force - предложения? - PullRequest
2 голосов
/ 16 сентября 2011

Я использую Wordpress на IIS 7.5. Сегодня я просматривал свои журналы и заметил, что на моем веб-сайте предпринимаются многочисленные попытки перебора файлов, которые могут поставить под угрозу его безопасность. В частности, ищет установочные файлы, phpMyAdmin, другие вещи mysql и т. Д. - 404.

Основываясь на этой информации, каким образом я мог бы создать модуль безопасности для A) Заблокировать кого-либо с числом [40] подряд более [n]. Б) Заблокировать кого-то, который соответствует определенным ключевым словам, например, ищет phpMyAdmin. C) Это необязательно, но идеальное решение также заблокировало бы IP-адреса, если бы я хотел жестко закодировать / добавить некоторые из них.

У меня есть некоторые идеи, но я также ищу другие предложения. Поскольку сервером является IIS, я бы предпочел использовать решение C # ASP.NET или каким-либо образом встроить его в IIS.

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Реализация HttpHandler для перехвата всех запросов.Если они ищут эти модули, зарегистрируйте свой ip и остановите атаку, добавив ip в список заблокированных хостов.

Да - кто-то может подделать IP-адрес (что более опасно при DoS-атаке и здесь неосуществимо), но он не может подделать весь сеанс (примерно пакет), поэтому он не может продолжить этот IPчтобы получить ответ и узнать, существует ли файл в любом случае.

Этот метод будет использоваться, если вы хотите обрабатывать ips особым образом, например, немедленно блокировать весь дальнейший доступ.

Если вы не используетеМне не нужен этот тип элемента управления, и нужно просто заблокировать, учитывая пользовательские правила URLScan, чтобы немедленно заблокировать его, поскольку UrlScan теперь встроен в IIS.Смотри: http://www.hanselman.com/blog/HackedAndIDidntLikeItURLScanIsStepZero.aspx

0 голосов
/ 04 февраля 2014

A) Заблокируйте кого-либо с числом [40] подряд более [n].

Есть плагин WordPress под названием «Better WP Security», он имеет функцию 404 обнаружения, которая позволяет именно эту функцию.Я сейчас использую его, и он работает очень хорошо.

B) Заблокируйте человека, который соответствует определенным ключевым словам, например, ищет phpMyAdmin.

Вы не хотите блокировать только тех, кто пытается получить доступ к phpMyAdmin, потому что это касается и вас самих.Вы хотите фильтровать запросы по IP - не позволяйте ни одному IP, который не входит в белый список, посещать phpMyAdmin.Вы узнаете, как это сделать, в моем ответе на третий вопрос ниже.

C) Это необязательно, но идеальное решение также заблокировало бы IP-адреса, если бы я захотел

Вы можете выполнить следующие шаги, чтобы запретить доступ к wp-login.php и wp-admin в IIS 7.5 для IP-адресов, которых нет в белом списке.Вы можете имитировать пример, чтобы включить любой файл (например, phpMyAdmin), который вы хотите, в свою папку WordPress, скопировав код между (включительно) тегами в коде шага 4 и изменив атрибут «path».

1,Откройте файл web.config в корневой папке WordPress, если его там нет, создайте одну

2, включите роль «IP и ограничения домена», следуя [этой статье] [1]

3, Откройте диспетчер IIS, щелкните корневой узел, на правой панели выберите «Делегирование функций», найдите элемент «IPv4-адрес и ограничения домена», предоставьте ему делегирование «Чтение / запись»

4, Откройте файл web.config, если вы создали файл самостоятельно, и он пуст, а затем добавьте следующий код (пояснения см. В примечаниях внизу):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <location path="wp-login.php">
        <system.webServer>
        <security>
            <ipSecurity allowUnlisted="false">    
                <clear/>
                <add ipAddress="100.100.100.29" allowed="true"/>
                <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/>
            </ipSecurity>
        </security>
        <modules runAllManagedModulesForAllRequests="true"/>
        </system.webServer>
  </location>

  <location path="wp-admin">
        <system.webServer>
        <security>
            <ipSecurity allowUnlisted="false">    
                <clear/>
                <add ipAddress="100.100.100.29" allowed="true"/>
                <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/>
            </ipSecurity>
        </security>
        <modules runAllManagedModulesForAllRequests="true"/>
        </system.webServer>
  </location>
</configuration>

Если вы работаете надсуществующий файл web.config, вам нужно только добавить код между тегами в существующие теги в вашем файле web.config.

Объяснение: Этот код блокирует все IP-адреса от посещения wp-login.php или wp-admin,исключенияIP 100.100.100.29 и 111.111.111.1-255.Пожалуйста, замените эти IP-адреса своим собственным списком.

5, теперь попробуйте зайти на wp-login.php или wp-admin с IP-адресов, которых нет в списке, вы должны получить ошибку 403 - Access Denied.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...