Zabezpiecz domenę za pomocą NGINX Proxy Manager i CloudFlare

Wstęp

Cloudflare jest usługą związana z CDN i zarządzaniem DNS oraz pełni funkcje Anty DDOS. W tym poradniku opiszę w jaki sposób dodać domeną do usługi Cloudflare. Dodatkowo dzięki Nginx Proxy Manager zabezpieczymy aplikacje udostępnione w internecie darmowymi certyfikatami SSL.

Wymagania wstępne

1. Wykupiona domena u dowolnego dostawcy

2. Serwer VPS z zainstalowanym systemem Ubuntu Server 20.04 (Darmowe serwery VPS na platformie AWS)

Dodajemy domenę do Cloudflare

Rejestrujemy konto na stronie https://dash.cloudflare.com/sign-up. Po podaniu adresu email i hasła pojawi się możliwość dodania domeny do panelu Cloudflare. Wpisujemy nazwę domeny i klikamy Add site. W tym przypadku będzie to domena bluestack.online:

Wybieramy darmowy plan i klikamy Continue:

Następnie Cloudflare przeskanuje domenę w poszukiwaniu istniejących rekordów DNS. Na tym etapie dodajemy Rekord A, gdzie nazwa domeny wskazywała będzie publiczny adres IP twojego serwera VPS. Klikamy Add record, wybieramy typ A, w polu Name wpisujemy @ (małpa oznacza domenę główną w tym przypadku bluestack.online), IPv4 address – adres IP. Klikamy Save i Continue:

W kolejnym kroku zmieniamy serwery DNS w panelu administracyjnym dostawcy naszej domeny, w tym przykładzie będzie to OVH:

Czekamy na zmianę serwerów nazw, zwykle trwa to do 24 godzin. Kiedy domena zostanie dodana do panelu Cloudflare zostaniesz powiadomienie email.

Zmieniamy ustawienia SSL/TLS na Full end-to-end encryption:

Ustawiamy przekierowanie z http na https w zakładce SSL/TLS -> Edge Certificates, jeżeli nasza aplikacja obsługuje HSTS możemy to też tu włączyć:

Co zyskujemy zarządzając domeną przez Cloudflare?

Najważniejszą korzyścią jest ukrycie prawdziwego IP naszej maszyny. Jeżeli przy konfiguracji wpisu domeny wybierzemy opcję pośrednictwa połączenia przez Cloudflare (Proxy status: Proxied):

przy próbie pingowania adresu bluestack.online, prawdziwy adres IP zostanie ukryty przez adres serwera pośredniczącego:

Dodatkowo chronieni jesteśmy przez atakami DDoS, zmiany w rekordach DNS realizowane są praktycznie w czasie rzeczywistym, dostajemy DNS Caching i inne.

Nginx Proxy Manager

Instalujemy Nginx Proxy Manager zgodnie z poradnikiem: Instalacja Nginx Proxy Manager

Po udanej instalacji uzyskamy dostęp do panelu administracyjnego bezpośrednio przez publiczny adres IP serwera. Dodamy teraz poddomenę, która wskazywać będzie na zainstalowaną przed chwilą aplikację. Tworzymy wpis DNS typ CNAME, nazwa – nasza poddomena, cel – @, proxy wyłączone – włączymy po dodaniu certyfikatu SSL.

W Nginx Proxy Manager przechodzimy do Proxy Hosts, klikamy Add Proxy Host i wypełniamy okno w następujący sposób:

Następnie w zakładce SSL wybieramy opcję Request a new SSL Certificate, zaznaczamy Force SSL i HTTP/2 Support, Klikamy Save:

W panelu pojawi się nowy wpis, klikamy trzy kropki po prawej stronie i Edit, przechodzimy do zakładki SSL i jeszcze raz zaznaczamy opcje Force SSL i HTTP/2 Support:

Przechodzimy do Cloudflare i włączamy proxy dla naszego wpisu DNS:

Teraz możemy zalogować się do Nginx Proxy Manager przez adres, który przed chwilą utworzyliśmy:

Błędy

W przypadku pojawienia się błędów np. ERR_TOO_MANY_REDIRECTS w Nginx Proxy Manager kombinujemy z ustawieniami Websockets Support, Force SSL i HTTP/2 Support.