Apache традиционно считается королем общего веб-хостинга. Он популярен, стабилен, гибок и хорошо поддерживается на множестве платформ. Однако это далеко не единственный вариант для обслуживания HTTP-трафика. Другие альтернативы, такие как Nginx, существуют уже давно и набирают популярность, поскольку владельцы веб-сайтов требуют более высокого уровня производительности и масштабируемости. Я хочу уделить немного времени рассмотрению Nginx, некоторых его преимуществ и недостатков, а также тому, как мы улучшаем его предоставление нашим клиентам в качестве альтернативы традиционным серверам Apache.
В своей основе Nginx — это чрезвычайно эффективный и мощный HTTP сервер. Его однопоточная, асинхронная модель обработки запросов контрастирует с моделью Apache, работающей по принципу один процесс на соединение. Используя быстрый цикл событий, один процесс Nginx может масштабироваться для обработки тысяч одновременных запросов, при этом поддерживая минимальное использование памяти (в большинстве распространенных рабочих нагрузок всего несколько десятков мегабайт RAM). Кроме того, модульная архитектура Nginx позволяет разработчикам и членам сообщества создавать новые решения для расширения функциональности Nginx. В некоторых случаях разработка модулей с открытым исходным кодом порождала активные сообщества вокруг расширения функциональности Nginx.
Мы знаем, что у вас много вариантов VPS
В чем особенность предложения VPS от DreamHost: круглосуточная поддержка клиентов, интуитивно понятная панель, масштабируемая RAM, неограниченная пропускная способность, неограниченное количество хостинг-доменов и хранение на SSD.
Хотя мы давно предлагаем Nginx для VPS и выделенных серверов в качестве альтернативы традиционному сервису Apache, мы не предоставляли все дополнительные возможности, которые предлагаем с Apache, особенно в отношении встроенной безопасности приложений. Исторически, решения веб-приложений с брандмауэром, основанные на сообществе для Nginx, были несколько неудовлетворительными. SpiderLabs, команда, стоящая за уважаемым решением ModSecurity для Apache, действительно создала поддержку для Nginx по мере роста принятия альтернативного сервера сообществом, но проблемы со стабильностью и совместимостью мучали эту ветвь на протяжении многих лет. SpiderLabs работает над новой версией ModSecurity, предназначенной для портирования на ряд HTTP-серверов, но это начинание все еще находится на стадии бета-тестирования. Другие решения WAF для Nginx, такие как Naxsi (родной модуль Nginx, предназначенный для предотвращения атак XSS и SQLi), действительно существуют, но не обладают прочностью и набором функций, которые предоставляет ModSecurity. В конечном итоге стабильного, готового к использованию, открытого решения в качестве альтернативы ModSecurity для Nginx не существовало — до сих пор.
Введите lua-resty-waf.
Этот проект построен на платформе OpenResty, программном комплексе, сочетающем оригинальный проект Nginx с интерпретатором Lua и эффективным компилятором JIT. Платформа позволяет пользователям быстро разрабатывать и масштабировать приложения на языке Lua, одновременно используя гибкость и мощь, которые предоставляет Nginx. Lua-resty-waf стремится предоставить набор функций WAF, совместимых с ModSecurity, с Nginx, используя встроенный компилятор LuaJIT для создания эффективной платформы прикладного брандмауэра, способной использовать существующие наборы правил ModSecurity.
Lua-resty-waf был изначально написан как часть моей магистерской диссертации. Идея проекта заключалась в изучении затрат, рисков и требований, связанных с разработкой инфраструктуры облачного WAF, аналогичной той, которую предоставляют коммерческие провайдеры облачной безопасности, такие как Cloudflare и Incapsula — и затем предоставить эту услугу бесплатно. Конечно, это абсолютно неустойчиво, но как академическое упражнение это был познавательный опыт. Я решил сосредоточиться на публикации исходного кода движка брандмауэра, который обеспечивает работу сервиса, продолжать разрабатывать функционал и изучать новые методы обнаружения аномального и вредоносного поведения. Когда мы рассматривали наше предложение Nginx в DreamHost, мы поняли, что можем использовать этот проект для обеспечения той же безопасности приложений, которую мы обеспечиваем, используя ModSecurity для наших Apache сервисов.
Разработка этого проекта стала еще одной большой победой для приверженности DreamHost вкладу в проекты с открытым исходным кодом. Мы потратили немало времени в последние несколько месяцев на рефакторинг, добавление новых функций и тестирование проекта, и теперь предлагаем его пользователям, работающим на современных платформах VPS и выделенных серверах. Это означает, что пользователи Nginx теперь могут получить ту же встроенную безопасность, которую мы предоставляем для сервисов Apache, включая:
- Защита от угроз «нулевого дня» для популярных CMS, таких как WordPress, Joomla, Drupal и других
- Меры противодействия атакам методом подбора паролей на общедоступных точках аутентификации пользователей приложений
- Защита от вредоносных автоматизированных ботов и сервисов сбора данных
- Мониторинг функциональности интерактивных платформ, таких как комментарии в блогах, на предмет спама, DDoS и эксплуатации уязвимостей
- Поведенческий анализ трафика на основе частоты посещений и целей запросов
Все это обеспечивается платформой lua-resty-waf, которая теперь входит в состав современных VPS и выделенных серверов (под современными мы подразумеваем серверы на базе Ubuntu — если вы еще не обновились, вам следует это сделать!). Включение защиты для вашего домена так же просто, как отметить пункт «Дополнительная веб-безопасность» в панели управления вашим доменом:
Так чего же вы ждете? Поставьте галочку в поле безопасности и защитите свой сайт уже сегодня!