imPC@ndo EN

Guide / windows-server

Undici guasti in un laboratorio Exchange 2019, e le cause vere

Sei schemi ricorrenti da undici guasti diagnosticati: l'ipotesi sofisticata è quasi sempre sbagliata, e un sistema che rifiuta spesso ha ragione di rifiutare.

Sei macchine virtuali: un domain controller con DNS e autorità di certificazione, un server Exchange 2019, un server Trasporto Edge in una DMZ vera, un firewall, un gateway di sicurezza al posto di un servizio cloud, e un client a simulare il mondo esterno.

Durante la costruzione si sono rotte undici cose. In nove casi la causa reale si è rivelata diversa dalla prima ipotesi — e lo schema con cui differiva vale più di qualunque singolo rimedio.

Gli undici

Sintomo osservatoCausa effettivaRimedio
Nessuna intestazione SCL sul messaggio di provaIl Content Filter ignora la posta interna autenticataSimulare un mittente esterno con una sessione SMTP anonima
Sessione PowerShell bloccata durante l’invio SMTPLettura bloccante dove il protocollo non prevede rispostaLeggere le risposte solo dove il protocollo le definisce
Ping fra le macchine senza rispostaICMP non consentito dal firewall — non la modalità promiscuaRegola ICMP esplicita sull’interfaccia DMZ, più regola in ingresso su Windows
Installazione di Edge interrottaNome di dominio completo assente su un server in gruppo di lavoroAssegnare a mano il suffisso DNS primario
-RequestFile non riconosciutoParametro rimosso dagli aggiornamenti cumulativi del 2022Raccogliere la richiesta in una variabile e scrivere il file
Errore all’importazione della sottoscrizioneSul server interno serve -FileData, non -FileNameLeggere il file in byte e passarlo come dati
Posta in uscita diretta al gateway invece che a EdgeConnettore manuale con costo inferiore a quello di EdgeSyncDisattivare il connettore manuale
454 Relay access denied dal gatewayInvio verso la porta 25, riservata alla posta in ingressoUsare la porta 26 sul connettore di invio
Errore HTTP 500.19 sulle directory virtualiPermessi NTFS privi del gruppo IIS_IUSRSConcedere lettura ed esecuzione con icacls
Elenco delle schede bridge vuotoComponente di rete bridged dell’hypervisor non installatoReinstallare il prodotto di virtualizzazione
Macchina virtuale non avviabile, 0xc0000409Driver del kernel dell’hypervisor bloccato o assenteRiavviare l’host e reinstallare

Sei schemi da tenere

L’ipotesi sofisticata non è quella probabile

Le macchine non si pingavano. La prima teoria è stata la modalità promiscua delle schede virtuali: una spiegazione raffinata, che però riguarda la capacità di osservare il traffico altrui, non quella di ricevere il proprio.

La causa vera era una regola di firewall mancante. La spiegazione più ordinaria possibile in una rete che ha un firewall dentro.

Il componente nuovo funziona, è quello vecchio a interferire

La posta saltava il server Edge. Tutta l’attenzione è andata sulla sottoscrizione EdgeSync, appena creata e quindi sospetta per definizione.

La sottoscrizione funzionava perfettamente. A interferire era un connettore di invio creato giorni prima e mai rimosso, che vinceva per costo inferiore.

Un sistema che rifiuta può avere ragione

Il gateway rispondeva 454 Relay access denied. Stava applicando la propria politica esattamente come configurata: la porta 25 accetta posta solo per i domini di inoltro che conosce. Il messaggio era diretto a un dominio esterno, quindi il rifiuto era corretto.

Nel gateway non c’era niente da riparare. C’era una porta da correggere sul mittente.

La documentazione invecchia

-RequestFile compare in innumerevoli guide per generare una richiesta di certificato. È stato rimosso in un aggiornamento cumulativo, per una ragione di sicurezza precisa: accettava percorsi UNC.

Seguire un tutorial senza verificare la versione produce un errore che sembra un problema di sintassi propria.

L’assenza è un’informazione

Tre diagnosi su undici si fondano interamente su qualcosa che nei log non c’era:

  • l’assenza di una voce DELIVER ha provato che l’agente antimalware aveva intercettato il messaggio
  • l’assenza di qualunque evento sul server Edge ha provato che la posta prendeva un’altra strada
  • l’assenza di ANONYMOUS LOGON nei permessi del connettore ha provato che non c’era open relay

Lo strato sottostante fa parte del sistema

Due guasti su undici non c’entravano né con Exchange né con la rete. Erano l’hypervisor: un componente di rete bridged mancante, e un driver del kernel che impediva alla VM di avviarsi con 0xc0000409.

Due dettagli da rubare

Il Content Filter ignora la posta interna autenticata. È di progetto, e rende priva di senso qualunque prova antispam fatta dall’interno dell’organizzazione: nessuna intestazione SCL comparirà mai. Per provarlo davvero bisogna arrivare come arriva lo spam vero, con una sessione SMTP anonima dall’esterno.

Leggere SMTP a mano si blocca dove il protocollo tace. Scriptare una conversazione SMTP significa leggere una risposta dopo ogni comando, tranne dove il protocollo non ne prevede una. Una lettura bloccante in quel punto congela la sessione, e sembra esattamente un problema di rete.

Il filo comune

Nove casi su undici avevano una causa diversa dalla prima ipotesi, e la direzione dell’errore è costante: la prima ipotesi era quasi sempre più interessante della verità.

La modalità promiscua invece di una regola di firewall. Una sottoscrizione nuova rotta invece di un connettore vecchio che nessuno aveva tolto. Un gateway mal configurato invece di un gateway che faceva il suo mestiere.

Probabilmente c’è un motivo. Quando un sistema è nuovo, le parti di cui hai appena imparato l’esistenza sono quelle che ti vengono in mente — e raramente sono quelle che stanno sbagliando.