Come configurare cfautouam per cloudflare
Se usi Cloudflare davanti al tuo sito, il problema non è solo il firewall. Il vero punto è fare in modo che il server riconosca l’IP reale del visitatore e non quello del proxy. cfautouam serve proprio a questo: automatizza l’allineamento tra Cloudflare e i controlli di accesso del server, riducendo errori, blocchi falsi e regole duplicate.
In pratica, lo usi quando vuoi mantenere una postura di sicurezza rigida senza impazzire con liste IP aggiornate a mano. È utile su host Linux, in stack con Nginx, Apache, firewall locali o policy applicative. Warning: se configuri male Cloudflare e il trust degli IP, rischi di esporre l’origine del traffico o di bloccare utenti legittimi.
Prerequisiti
Prima di toccare la configurazione, verifica questi punti. Ti evitano il 90% dei problemi operativi.
- Un dominio già attivo su Cloudflare.
- Accesso admin al pannello Cloudflare.
- Accesso root o sudo sul server.
- Una distribuzione Linux supportata dal tuo stack.
- Un web server o un reverse proxy che legga gli header corretti.
- Connessione in uscita verso le API Cloudflare.
Note: cfautouam è un componente operativo. La parte esatta di installazione può cambiare in base al pacchetto o allo script usato nel tuo ambiente. Qui ti mostro il flusso corretto e i controlli da fare, con esempi concreti.
Prima di iniziare, recupera questi dati dal pannello Cloudflare:
- Zone ID del dominio.
- API Token con permessi limitati.
- Eventuale elenco degli IP proxy Cloudflare da fidare a livello web server.
Nel pannello Cloudflare vai in My Profile → API Tokens → Create Token. Crea un token con permessi minimi. Per la sola sincronizzazione, in genere bastano lettura della zona e accesso alle regole necessarie. Evita token globali se non sei in fase di test.
Step 1: prepara un API Token a privilegi minimi
Questo passaggio è importante perché cfautouam deve parlare con Cloudflare senza usare credenziali troppo potenti. Un token limitato riduce il danno in caso di furto o leak nei log.
Dal pannello Cloudflare vai in My Profile → API Tokens → Create Token. Poi usa un modello personalizzato. Come base, assegna almeno:
- lettura della zona del dominio;
- accesso alle risorse richieste dal tuo flusso;
- scadenza, se compatibile con l’automazione.
Se stai lavorando da terminale, salva il token in modo sicuro:
export CLOUDFLARE_API_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
export CLOUDFLARE_ZONE_ID='yyyyyyyyyyyyyyyyyyyyyyyyyyyy'# Output: variabili disponibili nella sessione corrente
Se preferisci un file di ambiente, usa permessi stretti:
sudo install -m 600 /dev/null /etc/cfautouam.env
sudo sh -c 'cat > /etc/cfautouam.env' <<'EOF'
CLOUDFLARE_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
CLOUDFLARE_ZONE_ID=yyyyyyyyyyyyyyyyyyyyyyyyyyyy
EOF# Output: file creato con permessi 600
Questo approccio è migliore di un token sparso in script o cron. Un leak in un backup o in una shell history non è una teoria astratta. È un incidente comune.
Perché farlo subito
cfautouam deve poter interrogare Cloudflare in modo stabile. Se il token è incompleto, l’automazione si interrompe a metà. Il risultato classico è una sincronizzazione parziale e regole incoerenti.
Step 2: installa cfautouam nel server corretto
La modalità di installazione dipende dal pacchetto che hai scelto. In molti ambienti enterprise, la via più pulita è un binario o uno script gestito da systemd. Se il tuo provider lo distribuisce come pacchetto, usa il gestore del sistema.
Con una distribuzione Debian o Ubuntu, il flusso tipico è questo:
sudo apt update
sudo apt install cfautouam# Output: pacchetto installato o messaggio di assenza pacchetto
Su RHEL, AlmaLinux o Rocky, il flusso equivalente è:
sudo dnf install cfautouam# Output: pacchetto installato o dipendenze risolte
Se invece il progetto fornisce solo uno script, usalo da fonte verificata e pinna la versione. Non installare direttamente da URL non controllati in ambienti esposti.
Warning: se il server è dietro Cloudflare ma hai già un WAF locale, evita di sovrapporre regole con la stessa logica. Le duplicazioni complicano il debug e possono creare falsi positivi.
Se il servizio prevede un file di configurazione, controlla che sia leggibile solo dal processo che lo usa. Un esempio comune è una directory dedicata:
sudo mkdir -p /etc/cfautouam
sudo chmod 750 /etc/cfautouam
sudo chown root:root /etc/cfautouam# Output: directory di configurazione protetta
Step 3: configura Cloudflare come proxy attendibile
Questa è la parte più importante. Se il web server non riconosce gli header di Cloudflare, vedrà sempre l’IP del proxy. A quel punto i log sono falsati e i blocchi IP diventano inutili.
Se usi cPanel, vai in WHM → Service Configuration → Apache Configuration → Include Editor oppure nel vhost del dominio, e inserisci le direttive per fidarti solo degli IP Cloudflare. Su pannelli come Plesk, il percorso è simile: Domini → Apache & nginx Settings o area equivalente per le direttive personalizzate.
Su Nginx, la logica è questa:
real_ip_header CF-Connecting-IP;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;# Output: Nginx usa l'IP reale del client
Questo esempio è parziale. Cloudflare pubblica più range e li aggiorna nel tempo. cfautouam, nel tuo scenario, serve proprio a gestire questa parte con meno interventi manuali.
Con Apache, la logica è analoga, ma cambia la sintassi. In genere devi abilitare il modulo per l’IP reale e dichiarare gli IP fidati. Un esempio di configurazione può essere questo:
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22# Output: Apache legge l'IP del client da Cloudflare
Se il pannello grafico ti permette di inserire direttive custom, usa quello. È più sicuro di modificare file generati automaticamente. Note: la modifica dei vhost da GUI è spesso la strada più semplice nei sistemi gestiti.
Step 4: collega cfautouam alle credenziali Cloudflare
Ora devi dire a cfautouam come autenticarsi e quale zona gestire. Qui il rischio principale è confondere account, zone e token. In ambienti con più domini, l’errore è frequente.
Un esempio di file YAML, se il tuo setup lo usa, può essere questo:
cloudflare:
api_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
zone_id: "yyyyyyyyyyyyyyyyyyyyyyyyyyyy"
domain: "example.com"
sync_interval: 300
mode: "auto"# Output: configurazione letta correttamente dal servizio
Se il progetto usa variabili d’ambiente, il concetto non cambia. Devi avere un riferimento chiaro a token, zona e dominio. La frequenza di sync va scelta con attenzione. Cinque minuti sono spesso un buon compromesso tra reattività e carico API.
Se il tuo traffico è molto dinamico, puoi abbassare l’intervallo. Se invece hai pochi cambiamenti, puoi alzarlo. Non esagerare con aggiornamenti troppo frequenti. Non danno più sicurezza, ma aumentano rumore e dipendenza dalle API.
Step 5: imposta il servizio e l’avvio automatico
Un setup serio deve ripartire dopo reboot e dopo un crash. Per questo conviene usare systemd. L’obiettivo è semplice: servizio attivo, log leggibili, restart automatico.
Un’unità systemd di esempio può essere questa:
[Unit]
Description=cfautouam for Cloudflare
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
EnvironmentFile=/etc/cfautouam.env
ExecStart=/usr/local/bin/cfautouam --config /etc/cfautouam/config.yml
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target# Output: unit systemd pronta per l'attivazione
Poi abilita e avvia il servizio:
sudo systemctl daemon-reload
sudo systemctl enable cfautouam
sudo systemctl start cfautouam
sudo systemctl status cfautouam --no-pager# Output: servizio attivo e abilitato all'avvio
Se lavori da pannello, verifica prima se il provider offre un gestore servizi. Alcuni ambienti managed permettono di vedere lo stato del demone direttamente nella dashboard. Se non c’è, il terminale resta l’opzione affidabile.
Step 6: allinea i log e la catena di fiducia
cfautouam ha senso solo se i log mostrano l’IP corretto. Se i log sono sbagliati, anche gli alert, i rate limit e i blocchi risultano distorti.
Su Nginx, controlla il formato log. Dovresti includere almeno l’IP remoto e l’header reale, se disponibile. Un esempio utile:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_cf_connecting_ip"';# Output: log con IP reale e header Cloudflare
Su Apache, il principio è lo stesso. Devi verificare che il modulo IP reale stia sostituendo l’indirizzo del proxy con quello del client. Se usi un SIEM o un ELK stack, questo passaggio evita dashboard fuorvianti.
Note: se hai un firewall applicativo o un IDS, aggiorna anche le whitelist interne. Un controllo che vede sempre gli IP di Cloudflare può prendere decisioni errate sui client reali.
Step 7: imposta regole operative e frequenza di sincronizzazione
La configurazione non finisce con l’avvio del servizio. Devi decidere il comportamento operativo. Qui conta il tuo scenario: e-commerce, area login, API pubbliche o pannello amministrativo.
Per un sito con login frequente, puoi adottare questa logica:
- sync ogni 300 secondi;
- alert se la sincronizzazione fallisce due volte;
- log dettagliato solo su errore;
- rotazione log giornaliera.
Per un portale con traffico più stabile, puoi allungare l’intervallo e ridurre il rumore. Un esempio di configurazione orientata a stabilità:
sync_interval: 600
log_level: info
retry:
max_attempts: 3
backoff_seconds: 10# Output: sincronizzazione meno aggressiva ma stabile
Se il tuo team usa un pannello con scheduler, puoi anche agganciare il controllo a un cron o a un job pianificato. Note: questa opzione è disponibile solo da riga di comando o da scheduler del sistema, non sempre dal pannello hosting.
Verifica finale
La verifica va fatta su tre livelli. Primo: il servizio è vivo. Secondo: Cloudflare è raggiungibile. Terzo: il server vede l’IP giusto.
Esegui questi controlli:
sudo systemctl is-active cfautouam
sudo journalctl -u cfautouam -n 50 --no-pager
curl -I https://example.com# Output: active, log recenti e risposta HTTP del sito
Poi prova a simulare una richiesta dal client. Se i log del web server mostrano l’indirizzo reale del tuo IP pubblico e non l’IP Cloudflare, la fiducia è impostata bene. Se hai accesso a un endpoint di test, confronta l’header ricevuto con il valore atteso.
Un buon check finale è anche questo: entra nel pannello Cloudflare e verifica che il dominio sia in modalità proxy attiva, cioè con la nuvola arancione. Se la nuvola è grigia, cfautouam perde gran parte della sua utilità, perché il traffico non passa più dal proxy.
Warning: non considerare la sola assenza di errori come prova di correttezza. Se il servizio parte ma i log restano sbagliati, hai un problema di fiducia negli IP, non di runtime.
Troubleshooting
Errore 1: token non valido o permessi insufficienti
Messaggio tipico:
HTTP 403: Authentication errorCausa: il token non ha i permessi richiesti, oppure è stato copiato male.
Fix: rigenera il token nel pannello Cloudflare e aggiorna il file di ambiente.
sudo nano /etc/cfautouam.env
sudo systemctl restart cfautouam# Output: servizio riavviato con nuove credenziali
Errore 2: zona o dominio non corrispondenti
Messaggio tipico:
zone not found for domain example.comCausa: la Zone ID non appartiene al dominio configurato, oppure stai puntando alla zona sbagliata.
Fix: controlla la Zone ID nel pannello Cloudflare e riallinea il file YAML o le variabili.
grep -n 'zone_id\|domain' /etc/cfautouam/config.yml
sudo systemctl restart cfautouam# Output: configurazione allineata e servizio riavviato
Errore 3: IP reale non visibile nei log
Messaggio tipico:
access log shows Cloudflare IP instead of client IPCausa: il web server non sta fidandosi degli IP proxy Cloudflare, oppure manca l’header corretto.
Fix: aggiorna la configurazione del web server e ricarica il servizio.
sudo nginx -t && sudo systemctl reload nginx
# oppure
sudo apachectl configtest && sudo systemctl reload apache2# Output: configurazione valida e reload senza downtime
Se il problema resta, controlla che cfautouam stia effettivamente sincronizzando i range IP e che non ci siano blocchi in uscita verso le API Cloudflare. Una regola firewall troppo rigida può bloccare proprio la sincronizzazione che ti serve.
Conclusione
Configurare cfautouam per Cloudflare ha senso quando vuoi sicurezza senza manutenzione manuale continua. Il punto non è solo automatizzare, ma mantenere coerenti proxy, log e policy di accesso.
Il prossimo passo concreto è mettere il servizio sotto monitoraggio. Collega un alert su fallimento di sync e verifica i log dopo ogni aggiornamento dei range Cloudflare. Se vuoi alzare il livello, aggiungi anche un controllo sintetico sulla visibilità dell’IP reale nei log applicativi.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.