Tl; Dr
Eu tenho uma instância do SQL Server (SQLSERVER01-i01) com um endereço IP e uma porta dedicados (162.xxx.xxx.51: 1433) em um SQL Server de várias instâncias (cada instância do SQL Server no Windows Server tem seu próprio endereço IP ), todos em execução em um servidor Windows (SQLSERVER01 / 162.xxx.xxx.50).
Também tenho uma instância dedicada do Reporting Services (SQLSERVERRS01-i01) com seu próprio endereço IP e porta (168.xxx.xxx.71: 1433), que está sendo executada em um servidor Windows diferente (SQLSERVERRS01) com seu próprio endereço IP (168 .xxx.xxx.70).
O servidor dedicado do Reporting Services possui um aplicativo APPL1
que pode ser acessado via http://SQLSERVERRS01-i01:80/Reports_APPL1
ou via http://SQLSERVERRS01:80/Reports_APPL1
.
O SSRS atenderá as duas solicitações devido à *:80
configuração na Configuração do Reporting Services para os cabeçalhos do host.
Temos vários firewalls entre cada intervalo de IPs, o que significa que precisamos aplicar uma regra específica para cada conexão IP para IP ou IPrange para IP. No entanto, quando dois servidores estão envolvidos, a segurança determina que sempre tenha que ser uma regra de IP para IP no firewall.
Questão
(com base na captura de tela mais abaixo)
Quando o servidor do Reporting Services se conecta à instância do SQL Server (em 162.xxx.xxx.51) para recuperar dados, ele sempre cria uma conexão com o endereço IP subjacente do servidor Windows (168.xxx.xxx.70 / preferido ) em que o SSRS está sendo executado ou (às vezes) usará o endereço IP da instância do SQL Server Reporting Services (168.xxx.xxx.71)?
Isso é relevante para a configuração da regra de firewall usando uma abordagem de IP para IP. Terei de solicitar uma regra que defina uma conexão 168.xxx.xxx.71 a 162.xxx.xxx.51 pela porta 1433 ou uma conexão 168.xxx.xxx.70 a 162.xxx.xxx.51 via porta 1433.
Atualmente, eu aplicaria as duas regras de firewall.
Pergunta bônus
Posso configurar o servidor do Reporting Services para se comunicar com um endereço IP dedicado? Nesse caso, com o endereço 168.xxx.xxx.71.
Respostas que não estou procurando
Não estou buscando conselhos sobre como otimizar a configuração do firewall ou como implementar um conceito de zoneamento para nossas redes. (Já está no pipeline). Além disso, não estou interessado em comentários que sugiram que o SQL Server e o SSRS no mesmo servidor resolveriam meus problemas. Eu sei disso e ficaria feliz em fazê-lo, exceto pelo software de terceiros necessário para executar junto com os componentes do SSRS.
Funciona
A configuração que eu tenho funciona se eu aplicar as duas regras de firewall entre a instância do SSRS e do SQL Server.
168.xxx.xxx.71 --> 162.xxx.xxx.51 : 1433
168.xxx.xxx.70 --> 162.xxx.xxx.51 : 1433
Quero reduzir com segurança por uma regra de firewall e garantir que tudo ainda funcione. (Veja a captura de tela mais abaixo)
Editar: Os artigos que li até agora sugerem que eu só preciso da segunda regra, mas não há garantia.
Artigos que já consultei
Considerações de segurança para um
artigo da Base de Instalação do SQL Server .Configurar o firewall do Windows para permitir acesso ao SQL Server
Este artigo aponta para todos os outros artigos relacionados à configuração do firewall para o SQL Server.Configurar um firewall do Windows para acesso ao mecanismo de banco de dados
Nenhuma palavra de endereço IP usada.Configurar um firewall para acesso ao servidor de relatório
Este artigo foi bastante interessante, pois observou:Se você estiver acessando bancos de dados relacionais do SQL Server em computadores externos ou se o banco de dados do servidor de relatório estiver em uma instância externa do SQL Server, deverá abrir as portas 1433 e 1434 no computador externo.
Seleção de endereço IP de origem em um computador Windows com várias casas
Os artigos 5 e 6 foram gentilmente fornecidos a mim por James (dba.se). Atualmente, elas parecem ser as respostas mais apropriadas. No entanto, sou um pouco cético quanto ao fato de um artigo mencionar o uso de várias NICs, enquanto eu tenho apenas uma NIC com vários IPs atribuídos. Tom (dba.se) também comentou com conselhos e comentários gerais.
Por que aqui e não em dba.stackexchange.com
Inicialmente, relutei em postar essa pergunta no serverfault.com devido à natureza complexa da pergunta. A questão tem duas tendências: ser específica do SQL Server, mas também ser específica do Windows Server. Por fim, decidi publicá-lo aqui, porque acho que é um IP do Windows Server que lida com coisas (para perda de palavras melhores).
Se um moderador achar que vou obter uma resposta melhor no dba.stackexchange.com, mova a pergunta para lá.
A longa explicação
Em nosso ambiente, temos servidores Windows que hospedam várias instâncias do SQL Server e várias configurações de IP. Adicionamos configurações complexas de firewall, servidores dedicados do SQL Server Reporting Services (SSRS) e criamos um ambiente parecido com o seguinte:
Basicamente, podemos ter um Windows Server executando até 15 (quinze) instâncias do SQL Server em endereços IP individuais. O mesmo é válido para a instância dedicada do Reporting Services.
Regras de firewall
Atualmente, os diferentes intervalos de IP não estão configurados como zonas, o que significa que precisamos configurar cada regra de firewall independentemente como uma regra de IP para IP ou IPrange para IP. Quando dois servidores estão envolvidos, a segurança determina que sempre deve ser uma regra de IP para IP. Cada instância do SQL Server terá seu próprio conjunto de regras para os firewalls envolvidos nas comunicações, seja um link de servidor para servidor ou de cliente para servidor. A inscrição para uma regra de firewall atualmente exige um período de espera de quatro a seis semanas. Reduzir a quantidade de regras de firewall reduzirá a quantidade de pressão na equipe de segurança da rede.
Configuração de IP da instância do SQL Server
A configuração de uma instância do SQL Server para captar apenas um IP e uma porta dedicados é realizada modificando algumas configurações no utilitário SQL Server Configuration Manager. A primeira etapa é iniciar o SQL Server Configuation Manager e, na seção esquerda, selecione o SQL Server Network Configuration | Protocolos para InstanceName . No painel esquerdo, clique com o botão esquerdo no nome do protocolo TCP / IP e ative o protocolo. Em seguida, clique com o botão esquerdo no protocolo novamente e abra a janela Propriedades para TCP / IP .
Em seguida, verifique se as seguintes configurações estão definidas no registro do protocolo :
Enabled : Yes
Listen All : No
No registro de endereços IP, verifique as seguintes configurações para o endereço IP em questão (por exemplo, para o servidor Reporting Services neste exemplo, seria 168.xxx.xxx.71)
Active : Yes
Enabled : Yes
IP Address : 168.xxx.xxx.71
TCP Dynamic Ports :
TCP Port : 1433
Nota: É importante que a configuração das portas dinâmicas TCP esteja vazia e não apenas 0 (zero).
Agora você tem uma instância do SQL Server que somente capturará conexões de banco de dados em 168.xxx.xxx.71 usando a porta 1433.
Resumo da Instância do SQL Server
O serviço Navegador do SQL Server não está em execução e cada instância individual do SQL Server está configurada para usar apenas seu próprio endereço IP na porta 1433. Dada uma instância do SQL Server chamada GENERAL, um servidor Windows com o nome do host SQLSERVER01 e dois endereços IP 162.xxx .xxx.50 (host) e 162.xxx.xxx.51 (SQL Instance) terminarei com os seguintes itens de configuração:
Windows Server : SQLSERVER01
Windows Server IP : 162.xxx.xxx.50
SQL Server Instance : SQLSERVER01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 162.xxx.xxx.51:1433
O SQL Server não receberá solicitações para 162.xxx.xxx.50: 1433, porque nenhuma instância do SQL Server está configurada para escutar esse endereço IP no utilitário SQL Server Configuration Manager. O SQL Server somente buscará solicitações para SQLSERVER01-i01 (na porta 1433) ou 162.xxx.xxx.51,1433.
Resumo da Instância do SQL Server Reporting Services
O serviço Navegador do SQL Server não está em execução e cada instância individual do SQL Server Reporting Services está configurada para usar apenas seu próprio endereço IP na porta 1433. Dada uma instância do SQL Server Reporting Services chamada GENERAL, um servidor Windows com o nome do host SQLSERVERRS01, um aplicativo no SSRS nomeado APPL1
e em dois endereços IP 168.xxx.xxx.70 (host) e 168.xxx.xxx.71 (Instância SQL), terminarei com os seguintes itens de configuração:
Windows Server : SQLSERVERRS01
Windows Server IP : 168.xxx.xxx.70
SQL Server Instance : SQLSERVERRS01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 168.xxx.xxx.71:1433
Reporting Services : http://sqlserverrs01-i01/Reports_APPL1
http://sqlserverrs01/Reports_APPL1
O SQL Server não receberá solicitações para 168.xxx.xxx.70: 1433, porque nenhuma instância do SQL Server está configurada para escutar esse endereço IP no utilitário SQL Server Configuration Manager. O SQL Server captará apenas solicitações para SQLSERVER01-i01 (na porta 1433) ou 162.xxx.xxx.71,1433.
O SSRS selecionará solicitações para http: // sqlserverrs01-i01 / Reports_APPL1 ou http: // sqlserverrs01 / Reports_APPL1 devido à configuração *: 80 na configuração do Reporting Services para os cabeçalhos de host.
Espero ter fornecido informações suficientes para qualquer pessoa disposta a gastar seu tempo escrevendo uma resposta e aguardo seus detalhes e links técnicos.
Escrito com StackEdit e posteriormente modificado manualmente para ser compatível com stackexchange .
História
Edit 1 : Release inicial
Edit 2 : Reformatted para facilitar a leitura. A explicação SF / DB foi movida para baixo. Adicionado nome de host para o Windows Server
Edit 3 : corrigidos endereços IP incorretos na listagem de regras de firewall.
Edição 4 : alterou a palavra hospedagem para execução (é um ambiente não virtualizado) em alguns lugares. Adicionado endereço IP em uma única frase
Editar 5 : Adicionada uma lista de artigos que já consultei e referenciei o suporte
Editar 6 : Seção Histórico limpo