Я работаю в небольшой правительственной организации. Мы поддерживаем наш собственный веб-сервер Windows Server 2003 в правительстве. DMZ. Мы должны перейти на Windows Server 2008 или 2012 к июлю. Кроме того, я перестраиваю веб-сайт с .Net, который теперь будет использовать базу данных SQL Server вместо MS Access.
Я читал, что не лучшая идея иметь и IIS, и SQL Server на одном компьютере, особенно тот, который открыт для всего мира. Из-за бюджета и политики мы рассматриваем только один сервер. Наш существующий сервер не может быть обновлен; он не соответствует минимальным требованиям для Windows Server 2008+.
В настоящее время я работаю над конфигурацией нового сервера и рассматриваю возможность запуска SQL Server на виртуальной машине, в то время как IIS работает на самом хосте. Какие у меня проблемы с безопасностью при этой настройке? Может ли хакер украсть мою виртуальную машину и получить полный доступ? Никакие данные не будут засекречены, так как все они доступны через наш общедоступный веб-сайт.
РЕДАКТИРОВАТЬ - Добавление спецификаций сервера
Dell PowerEdge T430 в корпусе Tower (FT430)
Не зная, на какой сервер вы на самом деле смотрите, мы можем только догадываться.
Добавление к тому, что сказали ГрегЛ и Джим Б.
Я предполагаю, что вы переходите с Server 2003 Standard, IIS 6.5, Access 2007 с использованием классических кодовых страниц ASP, подключаемых через статический OLEDB. Возможно, вы планируете импортировать свой Access с помощью мастера изменения размера (который работает большую часть времени) или попробовать 32-битное приложение Import / Export.
Я думаю, что для вашей новой установки MS Server 2012 Standard имеет лицензию на 1 физическую и 2 виртуальных установки. Это даст вам возможность запускать SQL и IIS независимо на разных виртуальных машинах. Но это может быть не лучший подход в вашем случае.
НЕ: запускать общедоступные приложения из ОС Hyper-V HOST. Я бы также предложил не включать RDP на ХОЗЯИНЕ. Думайте о хосте как о шнуре питания вашего сервера. Если она сломается, вам нужно будет ее починить на месте.
ВЫ МОЖЕТЕ: установить IIS на виртуальную машину > Память зависит от вашего кода кода, если вы используете ASP classic или .Net
ВЫ МОЖЕТЕ: установить MS SQL на виртуальную машину > Размер вашей виртуальной машины зависит от вашего Редакция MS SQL. Экспресс-версии предлагают до 10 ГБ общих накладных расходов с данными (Сравнить выпуски).
Спланируйте свой сервер таким, каким вы его видите через 7 лет. Пример: размер диска виртуального сервера, первый день, 128 ГБ, год 5, 1,5 ТБ, запланировано 3 ТБ.
IIS 7.5 и более поздние версии очень хорошо работают в виртуальной среде. Также хорошо запустить MS SQL Express, предназначенный для вашей ОС, в вашей виртуальной среде. Идея всего этого состоит в том, чтобы иметь возможность запускать на одном физическом сервере больше, чем раньше. Если он запускается в автономной установке, его нужно просто найти в виртуальной установке. За исключением версий Datacenter, в которых используются все физически подключенные устройства и память. Наличие IIS и SQL Express на одной виртуальной машине сокращает мое время администратора, поскольку мне не нужно следить за вторым сервером. Если вы не планируете запускать версию Datacenter, вам нужна ее собственная физическая машина.
Вот некоторые цифры моего Server 2008 R2 Standard. ЦП 3,3 ГГц, 8 ядер, 1 физический, 1 виртуальный сервер Windows, 2 виртуальных сервера Ubuntu, 2 виртуальных рабочих стола Win8, 2 виртуальных рабочих стола Win7.
IIS = 3,4 ГБ (27 сайтов IIS www, 3 ASP Classic 24 .Net)
2008 SQL Express = 1,14 ГБ (28 дБ активно)
ОС 2008 R2 ВМ = <2 ГБ
Total Memory 10Gb никогда не использовал всю ее.
Ваша машина с памятью на 64 ГБ будет хороша, но возьмите свои реальные числа и настройте свою систему в соответствии с плюс 20% или тем, что рекомендует ОС.
Что касается хакеров, то они есть, но есть и скрипты. Планируйте восстановление системы так, как будто вы собираетесь подвергаться взлому каждую ночь. И практикуйте свой процесс восстановления, пока он не станет идеальным, и тогда, когда это необходимо, он действительно сработает.
Нет, хакер не может «украсть вашу виртуальную машину и получить полный доступ». Им нужно будет взломать интерфейс управления виртуальными машинами, и если они там окажутся, у вашего государственного департамента возникнут гораздо более серьезные проблемы.
Запуск IIS и SQL на одном сервере технически нормально, но независимо от того, отличная идея действительно зависит от того, позволяет ли это ваш профиль нагрузки.
Если это небольшой сайт, у вас все в порядке. Я видел, как многие из этих одноразовых изделий работали отлично. Просто убедитесь, что у вас достаточно ресурсов (ЦП, ОЗУ и дисковый ввод-вывод), чтобы IIS и SQL работали хорошо, и ограничение SQL только подмножеством ЦП / ОЗУ может быть правильным, чтобы он не перегружал все это. Потому что будет, если ты позволишь.
Если это действительно большой / загруженный сайт, подумайте еще раз. Поскольку в настоящее время вы используете MS Access, я не могу себе представить, что это так.
С точки зрения безопасности все сводится к тому, как вы хотите управлять различными частями. Если вы намереваетесь подключиться к экземпляру SQL со своего рабочего стола, вам необходимо открыть порт 1433, а это значит, что другие тоже могут попасть туда. Если только ваши брандмауэры не настроены таким образом, что такие соединения могут быть разрешены только из внутренних зон. Если вам нравится подключаться к серверу по RDP и делать все это локально, вам просто нужно открыть порты IIS (80 и / или 443), что не менее безопасно, чем то, что у вас, вероятно, есть сейчас.
Перечитав вопрос и комментарии, я понял, что вы хотите иметь один физический сервер. Он будет запускать IIS, а также виртуальную машину для SQL.
Это не имеет смысла. Либо рассматривайте сервер как простой гипервизор и запускайте оба уровня на отдельных виртуальных машинах, либо запускайте их оба изначально на оборудовании. Смешивание вещей приведет только к слезам.
Все хорошо. Разница в том, что если вы скомпрометировали веб-сервер, вы бесплатно скомпрометировали сервер SQL. Поскольку он находится в DMZ, убедитесь, что порты управления отключены от брандмауэра и что вы настроили ограничения памяти на сервере SQL.