- Руководство по защите веб-сервера на виртуальной машине Windows в Azure с помощью TLS/SSL-сертификатов, хранимых в Key Vault Tutorial: Secure a web server on a Windows virtual machine in Azure with TLS/SSL certificates stored in Key Vault
- Запуск Azure Cloud Shell Launch Azure Cloud Shell
- Обзор Overview
- создать Azure Key Vault; Create an Azure Key Vault
- Создание сертификата и его сохранение в Key Vault Generate a certificate and store in Key Vault
- Создание виртуальной машины Create a virtual machine
- Добавление сертификата на виртуальную машину из Key Vault Add a certificate to VM from Key Vault
- Настройка IIS для использования сертификата Configure IIS to use the certificate
- Тестирование защищенного веб-приложения Test the secure web app
- Дальнейшие действия Next steps
- Как защитить веб-сервер: базовые советы
- Как защитить веб-сервер: базовые советы
- Кристина Анохина
- руководитель проектов по информационной безопасности компании BPS
- Запрет доступа извне к MariaDB/MySQL
- Устанавливайте пароль на MariaDB/MySQL
- Зачищайте
- Блокируйте доступ к резерву
- Прячьте версию веб-сервера
- Установите файрвол
Руководство по защите веб-сервера на виртуальной машине Windows в Azure с помощью TLS/SSL-сертификатов, хранимых в Key Vault Tutorial: Secure a web server on a Windows virtual machine in Azure with TLS/SSL certificates stored in Key Vault
Сейчас это руководство подходит только для универсальных образов. Currently this doc only works for Generalized images. Если попытаться выполнить инструкции, приведенные в этом руководстве, со специализированным диском, появится сообщение об ошибке. If attempting this tutorial using a Specialized disk you will receive an error.
Чтобы защитить веб-серверы, для шифрования веб-трафика можно использовать протокол TLS, который ранее назывался протоколом SSL. To secure web servers, a Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), certificate can be used to encrypt web traffic. TLS/SSL-сертификаты могут храниться в Azure Key Vault и разрешать безопасное развертывание сертификатов на виртуальных машинах Windows в Azure. These TLS/SSL certificates can be stored in Azure Key Vault, and allow secure deployments of certificates to Windows virtual machines (VMs) in Azure. Из этого руководства вы узнаете, как выполнить следующие задачи: In this tutorial you learn how to:
- создать Azure Key Vault; Create an Azure Key Vault
- создать или передать сертификат в Key Vault; Generate or upload a certificate to the Key Vault
- Создание виртуальной машины и установка веб-сервера IIS Create a VM and install the IIS web server
- внедрение сертификата в виртуальную машину и настройка IIS с помощью TLS-привязки. Inject the certificate into the VM and configure IIS with a TLS binding
Запуск Azure Cloud Shell Launch Azure Cloud Shell
Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью. It has common Azure tools preinstalled and configured to use with your account.
Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. To open the Cloud Shell, just select Try it from the upper right corner of a code block. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell. You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу «ВВОД», чтобы выполнить его. Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.
Обзор Overview
Azure Key Vault защищает криптографические ключи и секреты, в том числе сертификаты или пароли. Azure Key Vault safeguards cryptographic keys and secrets, such certificates or passwords. Key Vault помогает оптимизировать управление сертификатами и позволяет контролировать ключи, которые предоставляют доступ к этим сертификатам. Key Vault helps streamline the certificate management process and enables you to maintain control of keys that access those certificates. Можно создать самозаверяющий сертификат в Key Vault или передать существующий доверенный сертификат. You can create a self-signed certificate inside Key Vault, or upload an existing, trusted certificate that you already own.
Вместо того чтобы использовать образ виртуальной машины, включающий встроенные сертификаты, можно внедрить сертификаты в работающую виртуальную машину. Rather than using a custom VM image that includes certificates baked-in, you inject certificates into a running VM. Этот процесс гарантирует установку на веб-сервер самых последних сертификатов во время развертывания. This process ensures that the most up-to-date certificates are installed on a web server during deployment. Если вы обновляете или заменяете сертификат, вам не нужно создавать новый пользовательский образ виртуальной машины. If you renew or replace a certificate, you don’t also have to create a new custom VM image. Последние сертификаты внедряются автоматически при создании дополнительных виртуальных машин. The latest certificates are automatically injected as you create additional VMs. При этом сертификат никогда не покидает платформу Azure и не отображается в скрипте, журнале командной строки или шаблоне. During the whole process, the certificates never leave the Azure platform or are exposed in a script, command-line history, or template.
создать Azure Key Vault; Create an Azure Key Vault
Прежде чем создать хранилище ключей и сертификаты, выполните командлет New-AzResourceGroup, чтобы создать группу ресурсов. Before you can create a Key Vault and certificates, create a resource group with New-AzResourceGroup. В следующем примере создается имя группы ресурсов myResourceGroupSecureWeb в расположении восточная часть США: The following example creates a resource group named myResourceGroupSecureWeb in the East US location:
Далее, чтобы создать Key Vault, используйте командлет New-AzKeyVault. Next, create a Key Vault with New-AzKeyVault. У каждого Key Vault должно быть уникальное имя в нижнем регистре. Each Key Vault requires a unique name, and should be all lower case. Замените mykeyvault в следующем примере собственным уникальным именем Key Vault. Replace mykeyvault in the following example with your own unique Key Vault name:
Создание сертификата и его сохранение в Key Vault Generate a certificate and store in Key Vault
Для использования в рабочей среде импортируйте действительный сертификат, подписанный доверенным поставщиком, выполнив командлет Import-AzureKeyVaultCertificate. For production use, you should import a valid certificate signed by trusted provider with Import-AzKeyVaultCertificate. В следующем примере показано, как с помощью командлета Add-AzKeyVaultCertificate создать самозаверяющий сертификат, использующий политику сертификата по умолчанию из New-AzreKeyVaultCertificatePolicy. For this tutorial, the following example shows how you can generate a self-signed certificate with Add-AzKeyVaultCertificate that uses the default certificate policy from New-AzKeyVaultCertificatePolicy.
Создание виртуальной машины Create a virtual machine
Укажите имя и пароль администратора для виртуальной машины с помощью командлета Get-Credential: Set an administrator username and password for the VM with Get-Credential:
Теперь вы можете создать виртуальную машину с помощью командлета New-AzVM. Now you can create the VM with New-AzVM. В следующем примере создается виртуальная машина с именем myVM в расположении EastUS. The following example creates a VM named myVM in the EastUS location. Если они еще не существуют, создаются поддерживающие сетевые ресурсы. If they do not already exist, the supporting network resources are created. Чтобы разрешить безопасный веб-трафик, командлет также открывает порт 443. To allow secure web traffic, the cmdlet also opens port 443.
Создание виртуальной машины может занять несколько минут. It takes a few minutes for the VM to be created. На последнем шаге с помощью расширения пользовательских сценариев Azure устанавливается веб-сервер IIS. Для этого используется командлет Set-AzVmExtension. The last step uses the Azure Custom Script Extension to install the IIS web server with Set-AzVmExtension.
Добавление сертификата на виртуальную машину из Key Vault Add a certificate to VM from Key Vault
Чтобы добавить сертификат из Key Vault на виртуальную машину, получите идентификатор сертификата с помощью командлета Get-AzKeyVaultSecret. To add the certificate from Key Vault to a VM, obtain the ID of your certificate with Get-AzKeyVaultSecret. Добавьте сертификат на виртуальную машину с помощью командлета Add-AzVMSecret: Add the certificate to the VM with Add-AzVMSecret:
Настройка IIS для использования сертификата Configure IIS to use the certificate
Обновите конфигурацию IIS с помощью расширения пользовательских сценариев и командлета Set-AzVMExtension. Use the Custom Script Extension again with Set-AzVMExtension to update the IIS configuration. Это обновление применяет внедренный из Key Vault в IIS сертификат и настраивает веб-привязку: This update applies the certificate injected from Key Vault to IIS and configures the web binding:
Тестирование защищенного веб-приложения Test the secure web app
Получите общедоступный IP-адрес своей виртуальной машины с помощью командлета Get-AzPublicIPAddress. Obtain the public IP address of your VM with Get-AzPublicIPAddress. Следующий пример позволяет получить IP-адрес для созданного ранее myPublicIP . The following example obtains the IP address for myPublicIP created earlier:
Теперь можно открыть веб-браузер и ввести в адресной строке https:// . Now you can open a web browser and enter https:// in the address bar. Чтобы принять предупреждение системы безопасности, если используется самозаверяющий сертификат безопасности, выберите Сведения, а затем — Перейти на веб-страницу: To accept the security warning if you used a self-signed certificate, select Details and then Go on to the webpage:
На экране отобразится защищенный веб-сайт IIS, как в показано следующем примере: Your secured IIS website is then displayed as in the following example:
Дальнейшие действия Next steps
Выполнив инструкции, приведенные в этом руководстве, вы защитили веб-сервер IIS TLS/SSL-сертификатом, который хранится в Azure Key Vault. In this tutorial, you secured an IIS web server with a TLS/SSL certificate stored in Azure Key Vault. Вы ознакомились с выполнением следующих задач: You learned how to:
- создать Azure Key Vault; Create an Azure Key Vault
- создать или передать сертификат в Key Vault; Generate or upload a certificate to the Key Vault
- Создание виртуальной машины и установка веб-сервера IIS Create a VM and install the IIS web server
- внедрение сертификата в виртуальную машину и настройка IIS с помощью TLS-привязки. Inject the certificate into the VM and configure IIS with a TLS binding
Чтобы увидеть предварительно созданные примеры скриптов виртуальной машины, перейдите по ссылке ниже. Follow this link to see pre-built virtual machine script samples.
Как защитить веб-сервер: базовые советы
Как защитить веб-сервер: базовые советы
Кристина Анохина
руководитель проектов по информационной безопасности компании BPS
Вы приобрели сервер и хотите разместить на нем ваш веб-сайт. Возможно, это будет онлайн магазин, возможно, — информационный ресурс или развлекательный портал. С точки зрения информационной безопасности, разницы нет. Если вы хотите защитить свой информационный ресурс от взлома, действия будут схожими.
При условии, что у вас «белый» IP, к вашему веб-серверу может подключиться из интернета любой пользователь. Также, если вы, подключены к локальной сети, то опять же к вашему веб-серверу может подключиться любой компьютер из этой локальной сети.
По этой причине необходимо правильно настроить компоненты веб-сервера.
Запрет доступа извне к MariaDB/MySQL
Если мы запретим доступ извне к базам данных, то мы сможем защитить веб-сервер от утечки исходного кода, который вы тестируете или разрабатываете.
23 апреля в 09:00, Екатеринбург, До 9500 ₽
Как правило веб-сервер имеет две сетевые службы:
- сам веб-сервер, который прослушивает 80 порт (HTTPS — 443 порт),
- сетевая служба системы управления базами данных, MariaDB/MySQL – 3306.
Чтобы MariaDB/MySQL принимали подключения только от веб-приложений, работающих на localhost, исправьте конфигурационный файл my.cnf.
Выглядеть он должен следующим образом:
После изменения конфигурационного файла, перезапустите службу.
Теперь никто извне не сможет подключится к MariaDB/MySQL, кроме компьютера, на котором работает веб-сервер.
Как правило, веб-сервера создают, чтобы с них получал информацию куда больший круг людей, чем разработчики и тестировщики, а, значит, необходима более тонкая настройка безопасности веб-сервера.
Устанавливайте пароль на MariaDB/MySQL
По дефолту у администратора установлен пустой пароль. Так как мы отключили доступ из вне к серверу, о чем писали выше, то данные дефолтные настройки не так опасны для нас. Но есть вероятность, что злоумышленник найдет уязвимость в веб-приложении и через нее сможет выполнить подключение к нашему серверу. Поэтому желательно все же изменить дефолтные настройки и задать безопасный пароль для доступа к серверу.
Зачищайте
Также для защиты сервера необходимо периодически проводить некую чистку, точнее – удалять тестовые файлы, архивы с исходным кодом и резервные копии файлов. Эти файлы могут быть созданы в процессе установки и тестирования веб-сервера, но в дальнейшем они уже не нужны. Однако, злоумышленник может через них взломать ваш сервер и тогда компания может понести убытки, как финансовые, так и репутационные.
Блокируйте доступ к резерву
Обязательно блокируйте доступ к папкам с резервными копиями для всех публичных веб-серверов, так как злоумышленник может их легко обнаружить. Эта мера актуальна, если вы оставили часть серверов публичными и не заблокировали к ним доступ.
Прячьте версию веб-сервера
Версия сервера может рассказать злоумышленнику очень многое: какие уязвимости доступны на данном сервере и как его можно взломать. Также злоумышленник сможет понять, на какой ОС запущен сервер, что так же поможет ему при планировании атаки.
Установите файрвол
Файрвол анализирует все запросы, которые были совершены к серверу, и, если какой-либо запрос предоставляет угрозу для безопасности сервера, он его не пускает и блокирует. Тем самым злоумышленник при совершении атаки может быть заблокирован. Это один из простых, но очень действенных способов защитить свой сервер.
Для веб-серверов c ОС Linux — Apache или nginx — рекомендуются следующие меры защиты:
- Необходимо проводить регулярные обновления серверного ПО. Это один из самых простых и действенных способов защиты. Рекомендуется проверять наличие обновлений не реже 1 раза в 1-2 недели.
- При установке серверного ПО проводится его диагностика и задаются дефолтные настройки. Эти настройки могут являться «лазом» для злоумышленников. После проверки работоспособности сервера следует удалять дефолтные настройки. Это еще одна не сложная мера по обеспечению безопасности серверов с ОС Linux.
- Обсудите с коллегами, какие именно модули вам необходимы для работы, остальные ненужные модули закомментируйте. В случае необходимости вы всегда сможете вернуть модуль, который закомментировали.
- Рекомендуется отключить все доступы к сайтам по IP-адресу. Злоумышленники сканируют именно их, а пользователи «ходят» по доменному имени.
- Обязательно защитите сервера от DoS и DDoS-атак. Подробные инструкции по защите от данного вида атак можно найти в открытом доступе в интернете. В случае же покупки, все детали защиты должны объяснять компании-продавца. Эта мера безопасности актуальна для всех типов серверов: как Linux, так и Windows.
- Необходимо вести запись логов, чтобы в случае возникновения ошибок или какой-то нештатной ситуации можно было проследить, источник. Вести подобные журналы необходимо всегда и это один из важнейших элементов обеспечения защиты.