(csak fejtágítás) Miért és hogyan használjunk Cloudflare-t?

Ha valaki weboldalak üzemeltetésével és védelmével foglalkozik, az valószínűleg találkozott már az amerikai Cloudflare Inc. szolgáltatásaival. A legtöbben csak Cloudflare DNS-ként hivatkoznak a termékre, de a valóságban ez sokkal komplexebb ennél.

DNS, de mégsem…

A DNS (vagy Domain Name System) a weboldalak címét számítógépek által egyszerűbben lefordítható IP-címekké alakítja, ezzel megkönnyítve a felhasználók dolgát (nem kell mindig megjegyezni a kedvenc oldalaink IP-címét).

A Cloudflare bár biztosít csak ilyen szolgáltatást is (ez a grey-cloud megjelölésű beállítás), de a legtöbben a proxy szolgáltatással egybekötött DNS-t használják (orange-cloud). Ilyenkor az összes hálózati forgalom a Cloudflare proxy rendszerén keresztül éri az oldalunkat, ezáltal biztosított a védelem (pl. túlterheléses támadások, botok, SQL-Injection ellen).

Állítsuk be!

A beállítás nem olyan bonyolult, de egy kicsit azért érdemes ismerni a DNS működését, mielőtt nekilátunk, különben hosszú leállásokra számíthatunk. Ez az oldal is védve van, így ezen a példán keresztül mutatom be a folyamatot.

Először is kell egy webcím, illetve hozzáférés a DNS-rekordokhoz (a rekord egy valamilyen, webcímre vonatkozó információt tartalmazó bejegyzés, pl. IP, levelezőszerver címe, aldomain alternatív neve; CNAME, stb.).

Ezután meg kell változtatni a domainhez tartozó NS-rekordokat. Ezek a feloldást végző névszervereket adják meg (itt található a domainhez tartozó információ). A Cloudflare minden fiókhoz két névszervert társít, ehhez az oldalhoz is:

NS mitch.ns.cloudflare.com
NS zelda.ns.cloudflare.com

Ha ez megvan, egy e-mail értesít minket amint a domain elérhető a Cloudflare rendszerében. Ha sietős a dolgunk, érdemes követni a DNS propagációját is (elsőre szórakoztató is lehet akár), ezt például itt tehetjük meg.

Gyülekeznek a felhők…

Ha ez megvan, akkor a Cloudflare általában átveszi az összes DNS-rekordot a régi névszerverektől, ez hasznos lehet, ám komplexebb konfigurációk esetén akár problémás is, mivel bizonyos dolgokról le kell mondanunk, ha Cloudflare használunk (pl. többszörös aldomének, pl. aldo.main.site.hu).

Érdemes először csak DNS feloldásra állítani a rekordokat, mivel ilyenkor a felhasználók nem fogják érzékelni a változást (minden menni fog ugyanúgy). Ha készen vagyunk a váltásra, akkor mehet a narancs felhő is.

Narancs felhő bevezetése

A narancs felhőnél sok dolognak kell együtt állnia, hogy megbízhatóan működjön az oldal:

  1. El kell dönteni, hogy egyáltalán lehetséges-e az átállás (bizonyos szolgáltatások nem proxyzhatóak olyan egyszerűen, pl. Websocket vagy bármilyen streaming, SIP)
  2. Be kell állítani az SSL beállítást (ki, rugalmas, full vagy full kényszerítéssel), ha nem akarunk szórakozni az állítgatással, akkor érdemes a “Full (strict)” avagy full kényszerítéssel beállítást választani (így egyszerűbb lesz később a munka, mert minden forgalom titkosítva lesz).
  3. Kell egy Origin Certificate (Cloudflare által kibocsátott, csak számukra érvényes tanusítvány) vagy Self Signed Certificate (önaláírt tanusítvány) (Ha full vagy full strict beállítást használunk).
DNS rekordok ehhez az oldalhoz (IP-címek kisötétítve, bár DDNS-t használok ehhez az oldalhoz, de a szolgáltatót meg lehet állapítani belőle)

Megint tanú(sítvány)

Ha ez mind megvan, már csak pár lépés kell a teljes biztonság eléréséhez. Először is be kell szerezni egy Origin Certificate-t (továbbiakban csak “cert”). Ezt az SSL/TLS > Origin Server menüből tudjuk elérni.

A tanúsítvány 15 évre (az sok) szól… (ekkor már nem is 32 bites UNIX időbélyeget fogunk használni)

 

Ha ez megvan, akkor telepítsük a tanúsítványt a webszerverünkre. Ebben a cikkben az Apache2 webszerver esetét fogom bemutatni. A telepítés előtt töltsük be a mod_ssl modult (ha még nincsen) és nyissunk egy új fájlt, ha nem vagyunk biztosak a dolgunkban.

A konfigurációs fájl valahogy így néz ki a WordPress esetén:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mikulalajos.hu
DocumentRoot "/var/www/wordpress"
    SSLEngine on
    SSLCertificateFile     /etc/cloudflare/mikulalajos.pem
    SSLCertificateKeyFile /etc/cloudflare/mikulalajos.pem.key
<Directory /var/www/wordpress>
    Options FollowSymLinks
    AllowOverride Limit Options FileInfo
    DirectoryIndex index.php
    Order allow,deny
    Allow from all
</Directory>
<Directory /var/www/wordpress/wp-content>
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>
</IfModule>

Itt a következő sorok vágnak a cikk témájába:

  • 2-3 (a HTTPS által használt porton hallgatózik a VirtualHost), megmondom a szerver címét
  • 5-7 (itt történik a csoda, itt adom az amúgy mindenkinek érvénytelen origin certet, de a proxy így tud HTTPS-t használni)

Ha ez megvan, akkor töltsük újra a konfigurációnkat, dőljünk hátra és szürcsöljünk egy kis zöldteát!

Azért még nem…

Bár ez így már jó lenne, érdemes még beállítani egy pár dolgot, hogy maximális legyen a védelem:

  1. Kapcsoljuk be az automatikus HTTPS-átirányítást (ha valaki mégis HTTP-t próbálna használni)
  2. Kapcsoljuk be a cachinget (bloghoz ideális)
  3. Állítsuk be a TLS 1.3 kikényszerítését
  4. Adjunk hozzá további védelmi szabályokat a WAF menüpontban (pl. földrajzi helyre korlátozzuk az aloldalak elérését, itt pl. a wordpress login)
  5. Állítsunk be DDoS értesítést
    stb.

Így már védve vagyunk egy csomó támadás ellen és élvezhetjük az analitikai adatokat is, amiket a Cloudflare biztosít nekünk (látogatók, földrajzi helyzetük).

Köszönöm a figyelmet!


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *