Cloudflare Access – VPN til dine web applikationer

Her på Robotnet.dk benytter jeg det meget populære WordPress CMS- og blog-system, og jeg har efterhånden en rimelig stor installation med plug-ins, modifikationer mv. kørende for at drifte denne “simple” hjemmeside; Robotnet.dk 😜

Og selvom dette ikke indlæg ikke handler om at bygge et smart hjem, så har jeg valgt at lave en sektion her på bloggen, hvor jeg også går lidt bag om det, at bygge en hjemmeside som denne. Om noget, så handler Robotnet om vidensdeling – og indenfor dette overordnede emne, tillader jeg mig at poste en masse – inklusive nu denne WordPress-sektion her på siden 😎

Cloudflare Access

Cloudflare har for nyligt lanceret et nyt produkt kaldet Cloudflare Access. Produktet går kort fortalt ud på, at du kan opsætte lukkede- og beskyttede områder på dine hjemmesider (Udover at beskytte hjemmesider, kan Access også implementeres på andre protokoller som f.eks. RDP / SSH).

Her på Robotnet.dk benytter jeg som sagt WordPress, og WordPress har en administrativ backend hvorfra jeg kan styre indholdet her på hjemmesiden. Denne backend tilgås normalt fra URLen /wp-admin/ – og den vil man naturligvis gerne lukke ned, så det kun er en selv <(eller ens team)> der kan tilgå denne URL – og det kan Cloudflare Access hjælpe med, endda helt gratis, hvis i er højst er 5 personer.

Så kort fortalt; Cloudflare Access beskytter følsomme områder på dit domæne med adgangspolitikker, så kun godkendte brugere kan få adgang til disse ressourcer.

Du kan vælge at lukke ned på mange måder, det kan være fra et bestemt land, fra bestemte IP-adresser eller vha. konto-validering, før der gives adgang.

Jeg har valgt her på Robotnet.dk at opsætte både IP-adresse- samt e-mail validering, så kommer jeg fra en gyldig IP-adresse, sendes der en kode til min e-mail, som jeg skal taste ind, hvorefter jeg får adgang.

Fordele ved Cloudflare Access

  • Hurtig og problemfri opsætning uden ændringer på din server / kode / app*.
  • Ingen kodeændringer på dit websted*.
  • Let at installere og vedligeholde.
  • Let at kontrollere og overvåge.
  • Mulighed for politikker og grupper på tværs af websider.
  • Se log i real-time og følg med i både succesfulde og fejlede login-forsøg.
  • Virker på kryds af alle dine websider /domæner.
  • Kører hurtigt på desktop såvel som mobile enheder.
  • Autentificering kan ske ved bl.a. Facebook, Google, Github, e-mail og mange andre
  • En centraliseret måde at sikre infrastruktur.
  • Sikre beskyttede områder uden at bruge en VPN.
  • Gratis ved op til 5 brugere.
  • Kræver naturligvis at dit site oprettet og køres igennem Cloudflare ⚡

* Hvis du vil opnå den fulde beskyttelse, opsættes også en begrænsning til Cloudflares IP-adresser på din server. Så folk ikke kan gå bagom Cloudflare og direkte ind på din server.

Aktivér Cloudflare Access

Access fra Cloudflare

Start med at trykke ind under fanen “Access” som vist på skærmbilledet herover. Herfra kan du følge guiden til at opsætte Cloudflare Access. Bemærk at du skal indtaste et kreditkort 💳 også selvom det er gratis – dette bruges naturligvis kun, hvis du giver mere end 5 personer adgang via Access 😎

Opsæt regler i Access

Opret en ny “Access Policy”

Vi skal oprette 3 regler i alt,

  • Tillad adgang til: admin-ajax.php
  • Bloker: wp-admin
  • Bloker: wp-login.php

Tillad adgang til: admin-ajax.php

Opsæt politik så ajax-funktioner stadig virker.

Den første regel opsætte således:

  • Tryk på “Create Access Policy”
  • Indtast “Application name”. Jeg har navngivet min “wp-admin/admin-ajax.php whitelist”
  • Indtast Domain -> Path som følger: wp-admin/admin-ajax.php
  • Indtast “Policy name” som: Ajax Policy, Decision skal sættes som Bypass og Include sættes til: Everyone.
  • Tryk på Save.

Bloker wp-admin

Opsæt valide e-mail adresser der har adgang.
  • Tryk på “Create Access Policy” igen
  • Indtast “Application name”. Jeg har navngivet min “wp-admin”
  • Indtast Domain -> Path som følger: wp-admin/
  • Indtast “Policy name” som: wp-admin,
  • Decision skal sættes som Allow
  • og Include sættes til: Emails og din e-mail adresser tastet ind i feltet til højre for.
  • Tryk på Save.

Bloker wp-login.php

Den sidste regel opsættes magen til den forrige, dog ændre vi “wp-admin” URL’en til wp-login.php:

  • Tryk på “Create Access Policy” igen, igen 🙂
  • Indtast “Application name”. Jeg har navngivet min “wp-login.php”
  • Indtast Domain -> Path som følger: wp-login.php
  • Indtast “Policy name” som: wp-login,
  • Decision skal sættes som Allow
  • og Include sættes til: Emails og din e-mail adresser tastet ind i feltet til højre for.
  • Tryk på Save.

Det var det 🙂

Nu er dit site beskyttet

Nu er din WordPress installationen beskyttet med Cloudflare Access, og kun de indtastede e-mail adresser kan tilgå WordPress Administrationen. Nemt og sikkert! Når du åbner en side, som er beskyttet, skal du indtaste din e-mail adresse, og hvis den e-mail adresse du indtaster er blandt de godkendte, modtager du en e-mail med en kode, som du sætter ind, og så får du adgang.

Cloudflare Access på Robotnet.dk WordPress Administration

Bloker evt. også IP-adresser

Det er muligt at opsætte et ekstra lag af sikkerhed, ved at bestemme hvilke IP-adresser der kan tilgå dine beskyttede områder. Det kræver naturligvis, at du har en fast IP-adresse derhjemme og opsat en VPN-adgang hjem til, så du kan koble op – som sad du hjemme – når du er på farten.

Dette gøres vha. sektionen Access Groups under Access-fanen, hvor du opretter en gruppe med dine IP-adresser:

En Access Group i Cloudflare med udvalgte IP-adresser som får adgang.

Herefter sætter vi en ekstra regel op på vores wp-admin og wp-login.php politikker herover, hvor denne gruppe skal tilføjes under “include”:

Under vores politikker opsættes vores Access Groups, så kun vores udvalgte IP-adresser har adgang.

Ekstra sikkerhed?

Jeg anbefaler også, hvis du gerne vil opsætte et ekstra lag sikkerhed, at blokere adgangen fra din web-server, så der kun tillades trafik fra Cloudflare’s IP-adresser.

Hvis folk kan gætte- eller snuse sig frem til din servers rigtige IP-adresse, kan de ikke omgås Cloudflare’s beskyttelse, hvis du ikke låser ned til disse IP-adresser:

Cloudflare IPv4-adresser

Listen er sidst opdateret af Daniel onsdag d. 15. juli 2020 kl. 09:36
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/12
172.64.0.0/13
131.0.72.0/22

Cloudflare IPv6-adresser

2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32

Du kan enten blokere dem direkte i din firewall, webserver eller hvis du benytter Apache eller Litespeed som understøtter .htaccess, lave en blok øverst i din .htaccess fil, der blokerer adgangen. Her er et eksempel på dette med opdaterede IP-adresser fra Cloudflare:

# BEGIN Cloudflare Firewall Bypass Prevention # Regler til Apache 2.4 Webserver # Updated: 2020-07-15. Get the latest update from: # https://robotnet.dk/2020/cloudflare-access-vpn-web-applikationer.html <FilesMatch ".*"> Require ip 173.245.48.0/20 Require ip 103.21.244.0/22 Require ip 103.22.200.0/22 Require ip 103.31.4.0/22 Require ip 141.101.64.0/18 Require ip 108.162.192.0/18 Require ip 190.93.240.0/20 Require ip 188.114.96.0/20 Require ip 197.234.240.0/22 Require ip 198.41.128.0/17 Require ip 162.158.0.0/15 Require ip 104.16.0.0/12 Require ip 172.64.0.0/13 Require ip 131.0.72.0/22 Require ip 2400:cb00::/32 Require ip 2606:4700::/32 Require ip 2803:f800::/32 Require ip 2405:b500::/32 Require ip 2405:8100::/32 Require ip 2a06:98c0::/29 Require ip 2c0f:f248::/32 # Allow from DIN.EGEN.IP.HER Se den på https://ip.duck.tools/ </FilesMatch> # END Cloudflare Firewall Bypass Prevention
:-)
%d bloggers like this: