Apache tradycyjnie był królem hostingu współdzielonego. Jest popularny, stabilny, elastyczny i dobrze obsługiwany na szerokiej gamie platform. Z pewnością jednak nie jest jedyną dostępną opcją do obsługi ruchu HTTP. Inne alternatywy, takie jak Nginx, istnieją od jakiegoś czasu i zyskują na popularności, ponieważ właściciele stron internetowych wymagają wyższych poziomów wydajności i skalowalności. Chciałbym poświęcić trochę czasu na zbadanie Nginx, niektórych jego zalet i wad oraz tego, jak poprawiamy jego dostarczanie naszym klientom jako alternatywę dla tradycyjnych serwerów Apache.
W swojej istocie, Nginx jest niezwykle wydajnym i potężnym serwerem HTTP. Jego model obsługi żądań oparty na pojedynczym wątku i asynchroniczności stoi w kontraście do modelu Apache opartego na procesie na połączenie. Wykorzystując szybką pętlę zdarzeń, pojedynczy proces Nginx może obsługiwać tysiące równoczesnych żądań, jednocześnie utrzymując minimalne zużycie pamięci (w najczęstszych obciążeniach, zaledwie kilkadziesiąt megabajtów RAM). Dodatkowo, modułowa architektura Nginx pozwala programistom i członkom społeczności tworzyć nowe rozwiązania rozszerzające funkcjonalność Nginx. W niektórych przypadkach rozwój modułów open source zaowocował aktywnymi społecznościami skupionymi na rozwijaniu funkcjonalności Nginx.
Wiemy, że masz wiele opcji VPS
Oto co wyróżnia ofertę VPS DreamHost: wsparcie klienta 24/7, intuicyjny panel, skalowalna RAM, nieograniczona przepustowość, nieograniczona liczba domen hostingowych i przechowywanie SSD.
Chociaż od dawna oferujemy Nginx dla serwerów VPS i dedykowanych jako alternatywę dla tradycyjnej usługi Apache, nie dostarczaliśmy wszystkich dodatkowych funkcji, które oferujemy z Apache, zwłaszcza w zakresie wbudowanego zabezpieczenia aplikacji. Historycznie, rozwiązania firewall dla aplikacji webowych oparte na społeczności dla Nginx były nieco niewystarczające. SpiderLabs, zespół stojący za znanym rozwiązaniem ModSecurity dla Apache, stworzył wsparcie dla Nginx, gdy adopcja alternatywnego serwera rosła, ale problemy ze stabilnością i kompatybilnością przez lata nękały tę gałąź. SpiderLabs pracuje nad nową wersją ModSecurity zaprojektowaną tak, aby była przenośna na szereg serwerów HTTP, ale przedsięwzięcie to wciąż jest w fazie beta. Istnieją inne rozwiązania WAF dla Nginx, takie jak Naxsi (rodzimy moduł Nginx zaprojektowany do zapobiegania atakom XSS i SQLi), ale brakuje im rozbudowanego zestawu funkcji, które zapewnia ModSecurity. Ostatecznie, do teraz nie istniała stabilna, gotowa, otwartoźródłowa alternatywa dla ModSecurity dla Nginx.
Wejdź lua-resty-waf.
Ten projekt został zbudowany na platformie OpenResty, pakiecie oprogramowania łączącym oryginalny projekt Nginx z interpreterem Lua i wydajnym kompilatorem JIT. Platforma umożliwia użytkownikom szybkie rozwijanie i skalowanie aplikacji za pomocą języka Lua, jednocześnie wykorzystując elastyczność i moc, jaką oferuje Nginx. Lua-resty-waf dąży do zapewnienia zestawu funkcji WAF kompatybilnego z ModSecurity z Nginx, używając wbudowanego kompilatora LuaJIT, aby zapewnić wydajną platformę zapory aplikacji zdolną do korzystania z istniejących zestawów reguł ModSecurity.
Lua-resty-waf został pierwotnie napisany jako część mojej pracy magisterskiej. Idea projektu polegała na zbadaniu kosztów, ryzyka i wymagań związanych z rozwojem infrastruktury chmurowej WAF, podobnej do tej, jaką oferują komercyjne firmy zajmujące się bezpieczeństwem w chmurze, takie jak Cloudflare i Incapsula — a następnie świadczenie tej usługi bezpłatnie. Oczywiście to całkowicie niezrównoważone, ale jako ćwiczenie akademickie było to pouczające doświadczenie. Zdecydowałem się skupić na udostępnianiu źródła silnika zapory, który napędza usługę, kontynuując rozwijanie funkcji i eksplorując nowe metody wykrywania anomali oraz złośliwych zachowań. Gdy analizowaliśmy naszą ofertę Nginx w DreamHost, zdałem sobie sprawę, że możemy wykorzystać ten projekt do zapewnienia tej samej ochrony aplikacji, którą stosujemy za pomocą ModSecurity dla naszych usług Apache.
Rozwijanie tego projektu było kolejnym dużym sukcesem dla zaangażowania DreamHost w projekty open source. Spędziliśmy znaczną część ostatnich miesięcy na refaktoryzacji, dodawaniu nowych funkcji i testowaniu projektu, a teraz oferujemy go użytkownikom działającym na nowoczesnych platformach VPS i dedykowanych serwerach. To oznacza, że użytkownicy Nginx mogą teraz otrzymać te same wbudowane zabezpieczenia, które dostarczamy dla usług Apache, w tym:
- Ochrona przed zagrożeniami typu zero-day dla popularnych CMS-ów takich jak WordPress, Joomla, Drupal i inne
- Środki zaradcze na ataki brute-force na typowe punkty końcowe uwierzytelniania użytkowników aplikacji
- Ochrona przed złośliwymi automatycznymi botami i usługami zbierającymi dane
- Monitorowanie funkcjonalności interaktywnych platform, takich jak komentarze na blogach, pod kątem spamu, ataków DDoS i wykorzystania podatności
- Analiza behawioralna ruchu na podstawie częstotliwości trafień i celu żądania
All of this is provided seamlessly by the lua-resty-waf platform that is now bundled into modern VPS and dedicated servers (by modern, we mean serwery z systemem Ubuntu — if you haven’t upgraded, you should!). Enabling the security for your domain is as simple as checking the “Extra Web Security” box within your domain management panel:
Na co czekasz? Zaznacz pole bezpieczeństwa i zabezpiecz swoją stronę już dziś!