Você não pode fazer isso. Uma solicitação TCP é iniciada por um pacote SYN que contém nenhum dado . Você obtém os números de porta e os endereços IP, mas não o nome do host.
Você pode escrever algumas regras complicadas que aceitam a conexão e procurar o primeiro pacote com dados para corresponder ao cabeçalho Host
- que não é garantido que esteja no primeiro pacote de dados, mas geralmente é. Então você mataria a conexão se o primeiro pacote de dados não fosse uma solicitação para o seu domínio. Claro, então há o problema se a solicitação segundo na conexão. E que alguém realmente tentando ignorar o seu firewall pode fazer todos os tipos de truques. Por exemplo, coloque seu domínio em algum outro lugar do pacote.
Se você realmente precisa fazer filtragem como essa, você precisa de um proxy HTTP.
PS: Não tenho certeza do que você está tentando combinar com essa string hexadecimal. O cabeçalho Host
está em ASCII simples, não no formato de cadeia de comprimento do DNS. Então, seria apenas --hex-string "mydomain.com"
.