Prima la parte facile:il client non ha bisogno di alcuna connessione inbound, in quanto non riceve alcuna connessione (le fa), quindi puoi bloccare in sicurezza tutto inboud.
Ora per quelli in uscita. Il server stesso necessita solo di TCP accedere alla porta che sta ascoltando, quindi se hai una porta fissa, aprila (per impostazione predefinita 1433 per un'istanza predefinita) e sei a posto.
Ma dal momento che stai usando porte dinamiche, l'installazione è un po' più difficile. Fondamentalmente, "porta dinamica" significa che il server è in ascolto su una porta "casuale" ogni volta che viene avviato e il servizio browser SQL indica ai client su quale porta è in ascolto ogni istanza (questa è l'impostazione predefinita per le istanze denominate).
Quindi, per questo, prima devi consentire le connessioni in uscita al browser SQL, che è in ascolto su UDP 1434 . Ora avrai anche bisogno della normale connessione al server come prima, che è ancora su TCP , ma questa volta la porta è sconosciuta (poiché è casuale). Quindi, al massimo la regola più restrittiva che puoi fare è consentire tutte le porte TCP, magari filtrate anche dal programma client (ssms.exe per esempio) o da qualsiasi altro parametro supportato dal tuo firewall.