Configurazione del servizio di protezione DoS per PHP

Il servizio di protezione DoS (App Denial of Service) di App Engine ti consente di proteggere l'applicazione dall'esaurimento della quota nel caso di attacchi denial of service o forme simili di abuso. Puoi aggiungere indirizzi IP o subnet a una lista bloccata e le richieste instradate da tali indirizzi o subnet verranno eliminate prima di chiamare il codice dell'applicazione. Per queste richieste non vengono consumati allocazioni di risorse, fatturate o altro.

Per impostazione predefinita, App Engine mostra una pagina di errore generica agli indirizzi nella lista bloccata. In alternativa, puoi configurare la tua app in modo da pubblicare una risposta personalizzata.

Prima di iniziare

Crea un file dos.yaml nella directory root dell'applicazione. Dovrai specificare gli indirizzi IP e le reti inseriti nella lista bloccata in questo file.

Blocco delle richieste con liste bloccate DoS

Puoi aggiungere indirizzi IP e subnet IP a una lista bloccata per impedire agli utenti di accedere alla tua app.

Il dos.yaml è limitato a 100 voci, quindi potrebbe essere necessario bloccare intere subnet se si verifica un attacco DoS. Questo è anche un modo efficiente per proteggersi se ritieni che più indirizzi IP della stessa rete siano coinvolti in un attacco DoS sulla tua app.

Creazione di voci di lista bloccata per indirizzi IP

Puoi impedire a uno o più indirizzi IP di accedere alla tua applicazione definendo tali indirizzi IPv4 o IPv6 nel file dos.yaml. Ad esempio:

blacklist:
- subnet: 192.0.2.1
  description: A single IPv4 address
- subnet: abcd::123:4567
  description: A single IPv6 address

In un attacco DenoS of Service distribuito (DDoS), dovrai bloccare intere subnet anziché un singolo indirizzo IP.

Per esempi, consulta il riferimento dos.yaml.

Dopo aver creato dos.yaml, devi caricarlo nella tua app.

Creazione di voci di lista bloccata per le subnet IP

Puoi impedire a una subnet IP di accedere alla tua app definendo la subnet IP in formato CIDR. Puoi utilizzare lo strumento IP to CIDR per semplificare la creazione di regole che utilizzano la notazione CIDR.

blacklist:
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

Per esempi, consulta il riferimento dos.yaml.

Dopo aver creato dos.yaml, devi caricarlo nella tua app.

Creazione di messaggi di errore personalizzati per richieste bloccate

Per impostazione predefinita, viene pubblicata una pagina di errore generica per le richieste bloccate dal servizio di protezione DoS. Gli attacchi denial of service distribuiti possono includere un computer infetto da un utente legittimo e questa pagina può fornire una spiegazione a tali utenti sul motivo per cui l'accesso è stato negato.

  1. Crea un file statico nella tua directory di applicazione per la pubblicazione per le richieste bloccate dal servizio di protezione DoS.

  2. Nel file app.yaml, specifica un gestore di errori per le risposte DoS fornendo il percorso al tuo file statico e aggiungendo il tipo error_handlers di dos_api_denial:

    error_handlers:
    - error_code: dos_api_denial
      file: dos-response.html
    

Eliminazione di tutte le voci della lista bloccata

Per eliminare tutte le voci della lista bloccata:

  1. Modifica il file dos.yaml in modo che contenga solo:

    blacklist:
    

    L'eliminazione di dos.yaml non rimuove le liste bloccate.

  2. Esegui nuovamente il deployment di dos.yaml per applicare le modifiche.

Visualizzazione degli errori di rifiuto DoS nella console

Puoi visualizzare un grafico relativo al numero di richieste rifiutate:

  1. Vai alla dashboard di App Engine in Google Cloud Console:

    Apri il grafico dei dettagli sugli errori di App Engine

  2. Modifica l'intervallo di tempo del grafico in base alle tue esigenze per vedere i risultati.

Caricare la lista bloccata di DoS

Utilizzerai l'interfaccia a riga di comando gcloud per eseguire il deployment del file di configurazione DoS aggiornato nella tua app in App Engine. Ad esempio, esegui il comando seguente per aggiornare il servizio di protezione DoS con i contenuti di dos.yaml:

 gcloud app deploy dos.yaml

Passaggi successivi

  • Configura Cloud Monitoring per identificare velocemente i problemi e ricevere avvisi.
  • Leggi l'esperienza di un cliente su come hanno risposto a un attacco Denos of Service (DDoS) distribuito (gennaio 2013).