Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)

Choć usługa Cloudflare była już wielokrotnie wspominana w różnych wpisach, to do tej pory nie doczekała się swojego własnego wpisu, tylko o niej (pomijam zastosowanie Cloudflare jako serwer DDNS), a jest to chyba najczęściej wykorzystywana przeze mnie usługa – właściwie każda strona internetowa, jaką stawiam, jest schowana za nią…

Cloudflare to nie tylko serwer DNS, usługa CDN i ochrona stron WWW

Jak ktoś z Was jeszcze nie spotkał się z usługą Cloudflare, to… znaczy, że nie czyta naszych artykułów/poradników, zwłaszcza dotyczących bezpieczeństwa stron internetowych… ;-)

W ogólnym ujęciu Cloudflare to:

Usługa Content Delivery Network (CDN)

Usługa typu CDN (choć nie jest to taki typowy CDN, gdzie mamy wpływ na to, co i gdzie jest magazynowane) to duża liczba serwerów rozproszonych po całym świecie, dzięki czemu pliki statyczne (np. grafiki, arkusze CSS) naszej strony są serwowane do użytkowników nie z naszego serwera, a z serwerów Cloudflare:

cloudflare_network-map_201606

Dzięki temu, że nasza strona jest keszowana na serwerach Cloudflare nie tylko oszczędzamy transfer, ale i przeglądarka/urządzenie użytkownika powinno otrzymać je szybciej – zwłaszcza, gdy użytkownik znajduje się w innym rejonie niż nasz serwer.

cloudflare_panel05

Szybki serwer DNS

Usługa/serwer DNS – i to jest jeden z podstawowych/najważniejszych powodów, dla których korzystam z Cloudflare. Nie dość, że mamy do dyspozycji pełen wachlarz rekordów (A, AAAA, CNAME, MX, LOC, SRV, SPF, TXT, NS), to – co dla mnie najważniejsze – jakiekolwiek zmiany w strefie DNS dla danej domeny odbywają się praktycznie w czasie rzeczywistym, dzięki czemu w razie potrzeby np. skierowanie domeny na inny serwer (czy dodanie np. rekordu TXT, który często jest wykorzystywany do weryfikacji) to właściwie tylko kwestia zalogowania się do panelu i wpisania nowego adresu IP serwera. Stąd też pomysł wykorzystania Cloudflare jako alternatywy dla standardowych usług DDNS/DynDNS.

cloudflare_panel02

Ochrona stron internetowych

Ochrona stron internetowych, ochrona przed atakami, np. DDoS to kolejny ważny element usługi – w zależności od naszych preferencji/ustawień (i wybranego planu, o czym więcej za chwilę) mamy różne mechanizmy obrony, przed różnego typu zagrożeniami:

cloudflare_panel04

Zaczynając od ukrycia prawdziwego adresu IP serwera, poprzez ochronę przed SPAMem w komentarzach, czy blokadę konkretnych adresów (lub grup) IP, geolokalizację, aż po ochronę przed atakami typu DDoS czy rozwiązania Web Application Firewall (WAF).

cloudflare_panel08

Indywidualne ustawienia dla wybranych stron

Chętnie sięgam też po reguły stron (page rules), choć akurat na stronie Webinsider.pl obecnie mam skonfigurowane tylko 2 reguły – jedna dodatkowo (oprócz wpisów w wp-config.php) wymusza dostęp do panelu zarządzania WordPressem w ramach połączenia szyfrowanego, druga jest aktywna w momencie, gdy jest jakiś konkurs, i dodatkowo zabezpiecza formularz z pytaniami przed niektórymi próbami oszustwa (np. automatyczny ruch):

cloudflare_panel06

Kilka przykładowych reguł

Z takich najważniejszych (najpowszechniejszych) reguł, jakie można zastosować (nie trzeba wtedy konfigurować ich po stronie webserwera) to m.in. przekierowanie całego ruchu na HTTPS:

  • http://*webinsider.pl/* -> Always use HTTPS

Pozbycie się WWW z adresu:

  • www.webinsider.pl/* -> Forwarding URL -> 301: https://webinsider.pl/$1

Wyższy poziom zabezpieczeń dla wybranej strony/adresu URL:

  • webinsider.pl/wp-admin* -> Security Level: High

Przekierowania:

  • webinsider.pl/fb -> Forwarding URL -> 302: https://www.facebook.com/WebinsiderPL/

Mocniejsze keszowanie np. katalogu z grafikami:

  • webinsider.pl/wp-content/uploads/* -> Cache Level: Cache Everything + Browser Cache TTL: a day + Edge Cache TTL: 14 days

I w drugą stronę – minimalne keszowanie:

  • webinsider.pl/kontakt/* -> Cache Level: Bypass

Połączenie szyfrowane, certyfikat SSL

W przypadku większości stron korzystam również z opcji związanych z obsługą certyfikatów SSL (połączenie szyfrowane).

Jeśli strona znajduje się na serwerze VPS (większość), gdzie mam pełne możliwości związane z wykorzystaniem certyfikatów SSL (np. bezpłatne StartSSL lub Let’s Encrypt) korzystam zazwyczaj z opcji „full”, gdzie wymagany jest prawidłowy certyfikat SSL na serwerze docelowym (istotne zwłaszcza w przypadku sklepów internetowych, czy innych serwisów, w których przetwarza się dane osobowe użytkowników).

cloudflare_panel03

Jeśli natomiast strona znajduje się np. na hostingu, gdzie możliwości zarządzania certyfikatami są często bardzo ograniczone, lub nie ma ich wcale – wtedy z pomocą przychodzi usługa Cloudflare Universal SSL, i opcja „flexible”. W tym wariancie na serwerze docelowym nawet nie musi znajdować się prawidłowy certyfikat SSL – połączenie zostanie zaszyfrowane między urządzeniem użytkownika a serwerem Cloudflare, który już z naszym serwerem połączy ruch bez szyfrowania.

I wprawdzie jest to wariant teoretycznie mniej bezpieczny niż zastosowanie pełnego szyfrowania, ale nawet tego typu zabezpieczenie chroni przed wieloma potencjalnymi atakami, jak np. przechwyceniem loginu i hasła do naszej strony przy wykorzystaniu niezabezpieczonej sieci WiFi (choć ze względów bezpieczeństwa raczej odradzam korzystanie z tego typu sieci).

Integracja z innymi usługami

W ramach usługi Cloudflare znajdziemy również bezpośrednią integrację z wieloma zewnętrznymi/niezależnymi usługami, czy serwisami. Jeśli taka usługa znajduje się na liście (tak jak np. Google Analytics), to za pomocą kilku kliknięć możemy ją zintegrować z naszą stronę – bez potrzeby grzebania w kodzie samej strony:

cloudflare_panel07

Jest też oficjalna wtyczka do WordPressa, wraz ze wsparciem dla Protocol Rewriting…

Application Programming Interface (API)

Dla bardziej zaawansowanych nie mogło zabraknąć obsługi API, dzięki czemu możemy zarządzać usługą nie tylko z oficjalnego panelu, ale i z zewnętrznych (w tym własnych) aplikacji – w ten sposób działa np. skrypt zmieniający usługę Cloudflare w DDNS…

Open Source

A skoro o ich panelu mowa, to chyba warto wspomnieć, że jakiś czas temu jego kod (odpowiedzialny za interfejs użytkownika (UI Framework)) został opublikowany na licencji OpenSource.

Taka sama sytuacja miała miejsce w maju z kodem webserwera Nginx (ze wsparciem dla HTTP/2 i SPDY), którego sami używają.

Statystyki

Znam też osoby, które w ramach usługi Cloudflare najchętniej – bo resztę właściwie ustawia się raz, a potem samo działa – korzystają z modułu związanego ze statystykami ruchu na stronie. Wprawdzie moim zdaniem Google Analytics czy Piwika nie zastąpią, to w niektórych przypadkach będą wystarczające.

Statystyki dotyczące żądań/zapytań do serwera/usługi Cloudflare:

cloudflare_panel_statystyki01

Transferu:

cloudflare_panel_statystyki02

Unikatowych użytkowników odwiedzających naszą stronę:

cloudflare_panel_statystyki03

Wyłapanych/zablokowanych różnego typu zagrożeń:

cloudflare_panel_statystyki04

Czy związane ogólnie z wydajnością i bezpieczeństwem:

cloudflare_panel_statystyki05

Oczywiście to nie wszystkie opcje/możliwości, jakie znajdziemy w Cloudflare, ale na opisanie wszystkich możliwości to pewnie baterii w klawiaturze by mi nie starczyło… ;-)

Plany (taryfowe), czyli ile to (nie) kosztuje

Pewnie nie polecałbym tej usługi tak często, i do tak wielu – nawet małych, prywatnych – stron, gdyby nie to, że podstawowy plan, wystarczający w większości przypadków jest bezpłatny, to znaczy nie kosztuje nic:

cloudflare_plany-cennik01

To, czy przejdziecie na plan płatny (pewnie w większości przypadków będzie to pro za 20 $ miesięcznie) zależy już tylko od Was, i Waszych potrzeb – ja większość „zwykłych stron” (np. strony firmowe, proste strony wizytówki) trzymam na planie bezpłatnym, a plan pro mam aktywny m.in. dla sklepów internetowych, gdzie bezpieczeństwo ma dużo wyższy priorytet (przydaje się m.in. wparcie WAF).

Ale może oddajmy głos ekipie z Cloudflare, która spróbuje Was przekonać do planu pro:

https://www.youtube.com/watch?v=bZ-rtbasxqY

Project Galileo

W przypadku niektórych stron (lub organizacji) można również zgłosić swoją stronę do Projektu Galileo:

Cloudflare created Project Galileo to protect politically and artistically important organizations and journalists against attacks that would otherwise censor their work. As part of the project, Cloudflare provide its state-of-the-art DDoS mitigation technology—for free—to any qualified vulnerable public interest website.

Cloudflare aims to keep ideas moving. If a website participating in Project Galileo comes under attack, Cloudflare will extend full protection to ensure the site stays online—no matter its location, no matter its content.

W ramach Projektu Galileo można otrzymać od Cloudflare ochronę m.in. przed atakami DDoS, co – przynajmniej w teorii – ma zapewnić najwyższy poziom ochrony przed tego typu atakami (enterprise-class):

Once identified, Cloudflare will extend our Enterprise-class DDoS protection to ensure these websites stay online, protecting their voice from being silenced.

Na wszelki wypadek, by Was niepotrzebnie nie kusić, nie powiem, czy Webinsider.pl – gdzie w końcu często zdarza nam się poruszać tematy, które potrafią zaowocować pogróżkami, głównie od Januszy Biznesu – korzysta z tej ochrony, czy też nie… ;-)

Dodawanie domeny (strony) do Cloudflare

By zacząć korzystać z Cloudflare wystarczy założyć konto (nie będę tego opisywał, jest to operacja banalna – jeśli zamierzacie korzystać z bezpłatnego planu, to oczywiście nie musicie podawać choćby danych karty kredytowej/płatniczej), i dodać domenę do usługi.

Dodawanie nowej domeny do usługi Cloudflare pokażę na przykładzie jednej z zapasowych domen dla Webinsider.pl, i w tym celu po zalogowaniu się do panelu zarządzania usługą Cloudflare klikamy link „add site”, który znajduje się obecnie w prawym górnym rogu strony.

W tym momencie uruchomi się kreator dodawania nowej domeny – zaczynamy od wpisania nazwy domeny (lub kilku domen – rozdzielamy je w takiej sytuacji przecinkiem) i kliknięcia przycisku „begin scan”:

cloudflare_panel_add-websites04

Operacja ta trwa do kilku minut i polega na przeskanowaniu rekordów w dotychczas używanych rekordach DNS, dzięki czemu migracja adresów DNS do Cloudflare powinna przebiec bez problemów, nawet dla mniej zaawansowanych użytkowników.

Na wszelki wypadek – jeszcze nie trafiłem na problemy w tym kroku, a za mną już kilkadziesiąt domen przeniesionych do Cloudflare – w następnym kroku zostaną wyświetlone wszystkie odnalezione rekordy, dzięki czemu w razie potrzeby można od razu je skorygować:

cloudflare_panel_add-websites05

Jest to też dobry moment do skasowania – jeśli jesteście pewni tego, co robicie – tzw. „rekordów-śmieci”, które namiętnie i z pasją dodają różni rejestratorzy do każdej nowo zarejestrowanej u nich domeny…

Gdy rekordy DNS za nami, musimy wybrać plan taryfowy, z jakim zaczynamy – w każdej chwili można go zmienić, więc pewnie większość z Was zacznie od bezpłatnego planu:

cloudflare_panel_add-websites06

W ostatnim kroku otrzymujemy nowe adresy serwerów DNS w ramach usługi Cloudflare, które trzeba wpisać u rejestratora naszej domeny (zazwyczaj nie jest to ani specjalnie skomplikowana, ani ukryta opcja).

Wprawdzie zmiana serwerów DNS na te od Cloudflare nie jest krokiem niezbędnym, a zamiast tego można skorzystać z alternatywnej metody, to nigdy z tej opcji nie korzystałem – raz, że nie musiałem, dwa, że nie widzę powodów, dla których miałbym – skoro mogę zmienić serwery DNS, i korzystać z pełni możliwości, jakie daje usługa Cloudflare – bawić się w ten sposób. Ale jakby co, to dobrze wiedzieć, że istnieje alternatywne rozwiązanie…

Na koniec zobaczycie ekran z podsumowaniem całej operacji, jak i ustawień domeny:

cloudflare_panel_add-websites08

Oczywiście, zanim będziecie mogli korzystać z zalet (ale i być może jakiś wad ;-)) Cloudflare musicie poczekać aż zmiana adresów serwerów DNSów wejdzie w życie po stronie Waszego rejestratora – nie powinno to trwać dłużej niż 24 godziny, zazwyczaj jest to kilka godzin…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)
Patryk
Wdrożenie Omnibusa w sklepie na WooCommerce (kurs)