Это первый раз, когда я настраиваю установку IIS, и я хочу обеспечить максимальную безопасность. При настройке у меня возникали вопросы:
Обратите внимание, что на этом сервере размещаются внешние веб-сайты, которые имеют около 50 пользователей одновременно и около 1000 пользователей в день, а также внутренние веб-сайты, которые предназначены только для внутренних целей (в данном случае внутренние означает веб-сайты, которые пользователи нашей компании используют вне сети, но не клиенты используют эти сайты)
Удостоверения пула приложений:
Я читал, что лучше всего использовать встроенную учетную запись ApplicationPoolIdentity для удостоверений пула приложений. У меня вопрос: могу ли я использовать эту встроенную учетную запись для каждого пула приложений, который у меня есть, потому что я разверну изоляцию приложений Wep - это означает, что я настрою другой пул приложений для каждого имеющегося у меня веб-приложения. Разве это не противоречие - использовать одну и ту же учетную запись в каждом пуле приложений, даже если я развертываю разные пулы приложений для каждого веб-приложения?
Усиление защиты сервера:
Я хочу установить как можно меньше функций и служб, чтобы максимально укрепить сервер. Есть ли способ проверить, используются ли функции, которые я установил, или они вообще не нужны? (Да, я знаю. Немного нубский вопрос)
Аутентификация:
Требуется ли анонимная аутентификация для веб-сайтов с внешними посетителями? такие сайты как www.mycompany.com
которые должны быть доступны каждому? Я пока не нашел способа отключить анонимную аутентификацию, но сделать сайт доступным для всех.
Общий сетевой вопрос:
Я всегда считал, что лучший способ для IIS - поместить сервер в DMZ, потому что если сервер будет взломан, злоумышленник не сможет получить доступ ко всем другим серверам, которые находятся в нашей доменной сети. Поскольку есть новые методы аутентификации, такие как Digestauthentification
которые должны взаимодействовать с контроллером домена, а также сам сервер должен находиться в домене для этого, я спрашивал себя, не лучше ли поместить сервер в доменную сеть и защитить доступ к нему с помощью других мер безопасности (прокси и т. д.) или DMZ по-прежнему остается лучшей практикой безопасности?
Заранее благодарим вас за каждый вклад.
1. Удостоверения пула приложений
Используйте отдельные учетные записи для каждого приложения - каждый пул приложений приводит к отдельному процессу w3wp, который выполняется в назначенном контексте пользователя. Имея такие вещи, как файлы и другие ресурсы (например, аутентификация базы данных), вы можете повысить безопасность за счет использования операционной системы по умолчанию, файловой системы и других подсистем безопасности (например, Kerberos).
Очевидно, что назначенные учетные записи должны иметь как можно меньший доступ к вашему хосту (никогда не используйте учетные записи с высоким уровнем привилегий для веб-сайтов, если этого не требует приложение (что на самом деле не должно быть так)).
Если возможно, я сильно рекомендую разделять серверы, на которых размещаются ваши общедоступные веб-сайты и ваши внутренние ресурсы. Публичные доступные серверы также следует размещать в отдельном сегменте сети.
2. Укрепление сервера
Ваша основная поверхность атаки - это IIS (я предполагаю, что перед сервером установлен брандмауэр) - для предотвращения локальных атак требуется усиление защиты путем отключения служб. Локальный означает в этом случае вашу локальную сеть (сетевые службы), а также вашу собственную операционную систему и даже ваше локальное оборудование (например, кровотечение из кеша делает).
Так что да - отключите ненужные службы. Не отключайте службы, которые вас защищают. Вы можете найти ресурсы по этому поводу в Интернете.
Чтобы злоумышленники не запускали пользовательские приложения, которые в конечном итоге могут включать в себя больше частей вашего сервера, я советую использовать политики ограничений программного обеспечения:
Это приводит к взаимному исключению и предотвращает некоторые простые атаки, такие как открытие оболочки и загрузка фактического приложения, которое, наконец, открывает двери на ваш сервер.
При использовании SSL / TLS я советую также укрепить сервер. Хорошим инструментом для этой работы является IISCrypto и SslLabs для проверок. Имея немного свободного времени, вы можете изучить использование NGINX в качестве обратного прокси-сервера, который предлагает некоторые дополнительные преимущества в отношении безопасности транспорта.
3. Аутентификация
Анонимная аутентификация больше или меньше "отсутствие аутентификации". Так что все в порядке.
4. Сегментация сети
Я видел много сетей, применяющих концепцию DMZ, размещая там целую группу серверов и открывая двери в основную сеть для поддержки подключения к бэкэнду для услуг, предоставляемых с серверов, размещенных в DMZ.
Это приводит к выводу, что у вас есть сегментация сети, которая не дает никаких преимуществ.
Следовательно: Ага, DMZ абсолютно. Но не кладите туда все и не открывайте ненужные двери. Если у вас слишком много несвязанных сервисов в одной DMZ, подумайте о создании отдельных зон, которые разделяют предоставляемые сервисы на группы сервисов, которые связаны друг с другом и имеют зависимости.
Лучшие методы обеспечения безопасности IIS - это целая дисциплина, и вы можете потратить месяцы на чтение и изучение. И вы, безусловно, задаете правильные вопросы.
Я долго рассказывал о каждой из ваших конкретных тем и давал объяснения, но я просто повторял информацию, которая уже хорошо задокументирована.
Короче говоря, если вы хотите следовать рекомендациям по настройке IIS, следуйте тестам CIS II8. ВСЕ, что вам нужно знать и настраивать, находится здесь. https://benchmarks.cisecurity.org/tools2/iis/CIS_Microsoft_IIS_8_Benchmark_v1.4.0.pdf