Esta foi a última parte de nosso processo de implantação que foi uma etapa manual e decidi tentar decifrar a configuração RemoteRestrictions e consegui encontrar uma solução para gerar essa configuração.
Você pode encontrar o script completo do PowerShell abaixo, que permite definir a configuração global de permissão / negação e um conjunto de IPs e sub-redes para permitir / negar
$remoteRestrictions = (Generate-RemoteRestrictions -globalDeny $True -addresses "1.1.1.1/255.255.255.255")
Algumas dicas sobre a estrutura:
- A configuração é codificada em Base64, então você precisa decodificar para obter uma matriz de bytes, os dados são codificados diretamente nesta matriz de bytes
- Os primeiros 21 bytes são um cabeçalho
- byte 12 codifica a permissão global / negar 103 = Permitir, 104 = Negar
- os bytes 18 a 21 são um byte de 4 bytes que informa quantas configurações de endereço IP devem seguir o cabeçalho
- Após o cabeçalho, são 42 pedaços de bytes para cada endereço IP configurado (você pode definir ipv6 ips e criar seções maiores que eu não suporto)
- os bytes 1 a 4 são um int de 4 bytes baseado em zero para o índice do endereço IP, isso deve aumentar em 1 para cada ip adicionado
- bytes 17,19,21 e 23 representam cada octeto do endereço IP
- bytes 31,33,35 e 37 representam cada octeto do endereço de sub-rede
- byte 42 codifica o ip allow / deny 103 = Permitir, 104 = Negar