Talvez algo nos moldes de
RewriteEngine on
RewriteRule ^ - [L,redirect=410]
Coloque isso no seu host virtual padrão e cada solicitação deve retornar um erro 410.
Cenário: example.com, a.example.com e b.example.com resolvem tudo para o IP 1.2.3.4. O Apache 2.4.29 no Ubuntu 18.04.1 é configurado com vários hosts virtuais (possivelmente em portas não padrão); algo como:
<VirtualHost *:81>
ServerName example.com
...
</VirtualHost>
<VirtualHost *:81>
ServerName a.example.com
DocumentRoot /var/www/a
...
</VirtualHost>
<VirtualHost *:81>
ServerName b.example.com
DocumentRoot /var/www/b
...
</VirtualHost>
O que eu gostaria é que os pedidos para a.example.com e b.example.com funcionem como hosts virtuais normais, mas para solicitações de example.com (ou para 1.2.3.4) para não receber nenhuma resposta em tudo - não uma resposta 404, nem uma resposta 5xx, simplesmente nada.
O objetivo é fazer com que os hosts virtuais funcionem normalmente, mas para qualquer coisa que esteja investigando o domínio ou o endereço IP para nem mesmo estar ciente de que um servidor HTTP está sendo executado nesse IP.
Eu examinei os documentos do Apache para a diretiva VirtualHost, mas não encontrei nada. Eu também olhei para a RFC 7230 e não vi nada óbvio que tornaria esse cenário impossível - é claro que uma sessão TCP precisa ser estabelecida antes que o servidor saiba o que o cliente está solicitando, então um invasor saberia que alguma coisa está escutando naquela porta, mas até onde eu poderia dizer eu não vi nada no protocolo em si que faz o servidor revelar que está escutando HTTP antes que o cliente faça a requisição.
Não tenho certeza de que o que estou descrevendo é possível e, mesmo que seja, não tenho certeza de quanto valioso seria. Entrada apreciada.