Este documento descreve um processo passo a passo para configurar o Tronco TLS (Transport Layer Security) do Session Initiation Protocol (SIP) no Communications Manager com um certificado assinado Certificate Authority (CA).
Depois de seguir este documento, as mensagens SIP entre dois clusters serão criptografadas usando o TLS.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Como mostrado nesta imagem, o Handshake SSL usa Certificados.
Os certificados são baseados em nomes. Verifique se os nomes estão corretos antes de iniciar.
1. No campo Certificate Purpose (Finalidade do certificado), selecione CallManager na lista suspensa.
2. No campo Tamanho da chave, selecione 1024 na lista suspensa.
3. No campo Hash Algorithm, selecione SHA1 na lista suspensa.

Para baixar o CSR, navegue até OS Admin > Security > Certificate Management > Download CSR
No campo Propósito do certificado, selecione a opção CallManager na lista suspensa.

Note: O CSR do CallManager é gerado com as chaves Rivest-Shamir-Addleman (RSA) de 1024 bits.
Etapa 4. Assinar o CSR com a Autoridade de Certificação do Microsoft Windows 2003
Estas são informações opcionais para assinar o CSR com a CA do Microsoft Windows 2003.
1. Abra a autoridade de certificação.

2. Clique com o botão direito do mouse no ícone CA e navegue para Todas as tarefas > Enviar nova solicitação

3. Selecione o CSR e clique na opção Abrir (Aplicável nos CSRs (CUCM 9.1(2) e CUCM 10.5(2))

4. Todos os CSRs abertos são exibidos na Pasta Solicitações Pendentes. Clique com o botão direito do mouse em cada CSR e navegue até All Tasks > Issue para emitir certificados. (Aplicável nos CSRs (CUCM 9.1(2) e CUCM 10.5(2))

5. Para baixar o certificado, escolha a pasta Certificados Emitidos.
Clique com o botão direito do mouse no certificado e clique na opção Abrir.

6. Os detalhes do certificado são exibidos. Para baixar o certificado, selecione a guia Detalhes e clique no botão Copiar para arquivo...

7. Na janela Assistente para exportação de certificado, clique no botão de opção X.509(.CER) codificado em Base 64.

8. Nomeie o arquivo com precisão. Este exemplo usa o formato CUCM1052.cer.

Para o CUCM 9.1(2), siga o mesmo procedimento.
Etapa 5. Obter o certificado raiz do CA
Abra a janela Autoridade de Certificação.
Para fazer o download do CA raiz
1. Clique com o botão direito do mouse no ícone CA e clique na opção Propriedades.
2. Na guia geral, clique em Exibir certificado.
3. Na janela Certificado, clique na GUIA de detalhes.
4. Clique em Copiar para arquivo...

Etapa 6. Carregar certificado raiz de CA como confiança do CallManager
Para fazer o upload do certificado raiz da CA, faça login no OS Admin > Security > Certificate Management > Upload Certificate/Certificate Chain

Note: Execute estas etapas nos CUCMs (CUCM 9.1(2) e CUCM 10.5(2))
Passo 7. Carregar certificado CSR do CallManager como certificado do CallManager.
Para carregar o CA sign CallManager CSR, faça login no OS Admin > Security > Certificate Management > Upload Certificate/Certificate Chain

Note: Execute estas etapas nos CUCMs (CUCM 9.1(2) e CUCM 10.5(2))
Etapa 8. Criar perfis de segurança de tronco SIP
CUCM 9.1(2)
Para criar o Perfil de segurança do tronco SIP, navegue para System > Security > SIP Trunk Security Profile.
Copie o perfil de tronco SIP não seguro existente e dê a ele um novo nome. No exemplo, o perfil de tronco SIP não seguro foi renomeado com TLS de perfil de tronco SIP seguro.

No X.509 Subject Name (Nome do assunto do X.509), use o Common Name (CN) (Nome comum (CN) do CUCM 10.5(2) (Certificado assinado pela CA) como mostrado nesta imagem.

CUCM 10.5(2)
Navegue até System > Security > SIP Trunk Security Profile.
Copie o perfil de tronco SIP não seguro existente e dê a ele um novo nome. No exemplo, o perfil de tronco SIP não seguro foi renomeado com TLS de perfil de tronco SIP seguro.

No X.509 Subject Name (Nome do assunto do X.509), use o CN do CUCM 9.1(2) (Certificado assinado pela CA), conforme destacado:

Ambos os perfis de segurança de tronco SIP definem uma porta de entrada de 5061, na qual cada cluster ouve na porta TCP 5061 para as novas chamadas SIP TLS de entrada.
Etapa 9. Criar troncos SIP
Depois que os perfis de segurança forem criados, crie os troncos SIP e faça as alterações para o parâmetro de configuração abaixo no tronco SIP.
CUCM 9.1(2)
- Na janela SIP Trunk Configuration, marque a caixa de seleção SRTP Allowed do parâmetro de configuração.
Isso protege o RTP (Real-time Transport Protocol) a ser usado para as chamadas nesse tronco. Esta caixa deve ser marcada somente quando você usa SIP TLS porque as chaves para Secure Real-time Transport Protocol (SRTP) são trocadas no corpo da mensagem SIP. A sinalização SIP deve ser protegida por TLS, caso contrário, qualquer pessoa com a sinalização SIP não segura pode descriptografar o fluxo SRTP correspondente no tronco.

- Na seção SIP Information da janela SIP Trunk Configuration, adicione o Destination Address, Destination Port e SIP Trunk Security Profile.

CUCM 10.5(2)
- Na janela SIP Trunk Configuration, marque a caixa de seleção SRTP Allowed do parâmetro de configuração.
Isso permite que o SRTP seja usado para chamadas sobre esse tronco. Essa caixa deve ser marcada somente ao usar SIP TLS, pois as chaves para SRTP são trocadas no corpo da mensagem SIP. A sinalização SIP deve ser protegida pelo TLS porque qualquer pessoa com uma sinalização SIP não segura pode descriptografar o fluxo RTP seguro correspondente no tronco.

- Na seção SIP Information da janela SIP Trunk Configuration, adicione o Destination IP Address, Destination Port e Security Profile

Etapa 10. Criar padrões de rota
O método mais simples é criar um padrão de rota em cada cluster, apontando diretamente para o tronco SIP. Grupos de rota e listas de rota também podem ser usados.
CUCM 9.1(2) aponta para o padrão de rota 9898 através do tronco SIP TLS para o CUCM 10.5(2)

O CUCM 10.5(2) aponta para o padrão de rota 1018 através do tronco SIP TLS para o CUCM 9.1(2)

Verificar
No momento, não há procedimento de verificação disponível para esta configuração.
Troubleshoot
A chamada TLS SIP pode ser depurada com estas etapas.
Coletar Captura de Pacotes no CUCM
Para verificar a conectividade entre o CUCM 9.1(2) e o CUCM 10.5(2), faça uma captura de pacotes nos servidores CUCM e observe o tráfego SIP TLS.
O tráfego SIP TLS é transmitido na porta TCP 5061, vista como sip-tls.
No exemplo a seguir, há uma sessão CLI SSH estabelecida para o CUCM 9.1(2)
1. Captura de pacote CLI na tela
Essa CLI imprime a saída na tela do tráfego SIP TLS.
admin:utils network capture host ip 10.106.95.200
Executing command with options:
interface=eth0
ip=10.106.95.200
19:04:13.410944 IP CUCMA.42387 > 10.106.95.200.sip-tls: P 790302485:790303631(1146) ack 3661485150 win 182 <nop,nop,timestamp 2864697196 5629758>
19:04:13.450507 IP 10.106.95.200.sip-tls > CUCMA.42387: . ack 1146 win 249 <nop,nop,timestamp 6072188 2864697196>
19:04:13.465388 IP 10.106.95.200.sip-tls > CUCMA.42387: P 1:427(426) ack 1146 win 249 <nop,nop,timestamp 6072201 2864697196>
2. Capturas CLI para arquivo
Essa CLI faz a captura de pacotes com base no host e cria um arquivo chamado pacotes.
admin:utils network capture eth0 file packets count 100000 size all host ip 10.106.95.200
Reinicie o tronco SIP no CUCM 9.1(2) e faça a chamada do ramal 1018 (CUCM 9.1(2)) para o ramal 9898 (CUCM 10.5(2))
Para baixar o arquivo da CLI, execute este comando:
admin:file get activelog platform/cli/packets.cap
A captura é feita no formato padrão .cap. Este exemplo usa o Wireshark para abrir o arquivo packets.cap, mas qualquer ferramenta de exibição de captura de pacote pode ser usada.

- A Sincronização (SYN) do Transmission Control Protocol (TCP) para estabelecer a comunicação TCP entre o CUCM 9.1(2)(Client) e o CUCM 10.5(2)(Server).
- O CUCM 9.1(2) envia o Hello do cliente para iniciar a sessão TLS.
- O CUCM 10.5(2) envia a solicitação de saudação, certificado e certificado do servidor para iniciar o processo de troca de certificado.
- O certificado que o cliente CUCM 9.1(2) envia para concluir a troca de certificado.
- Os Dados do Aplicativo que é a sinalização SIP criptografada mostram que a sessão TLS foi estabelecida.
Verificar ainda se os certificados corretos são trocados. Depois do Servidor Hello, o servidor CUCM 10.5(2) envia seu certificado ao cliente CUCM 9.1(2).

O número de série e as informações de assunto que o servidor CUCM 10.5(2) possui são apresentadas ao cliente CUCM 9.1(2).O número de série, o assunto, o emissor e as datas de validade são todos comparados às informações na página Gerenciamento de Certificados do Administrador do SO.
O servidor CUCM 10.5(2) apresenta seu próprio certificado para verificação, agora ele verifica o certificado do cliente CUCM 9.1(2). A verificação acontece em ambas as direções.

Se houver uma incompatibilidade entre os certificados na captura de pacote e os certificados na página da Web do administrador do SO, os certificados corretos não serão carregados.
Os certificados corretos devem ser carregados na página Certificado do administrador do SO.
Coletar rastreamentos do CUCM
Os rastreamentos do CUCM também podem ser úteis para determinar quais mensagens são trocadas entre os servidores CUCM 9.1(2) e CUCM 10.5(2) e se a sessão SSL está ou não estabelecida corretamente.
No exemplo, os rastreamentos do CUCM 9.1(2) foram coletados.
Fluxo de chamada:
Ext 1018 > CUCM 9.1(2) > TRONCO TLS SIP > CUCM 10.5(2) > Ext 9898
++ Análise de dígitos
04530161.009 |19:59:21.185 |AppInfo |Digit analysis: match(pi="2", fqcn="1018", cn="1018",plv="5", pss="", TodFilteredPss="", dd="9898",dac="0")
04530161.010 |19:59:21.185 |AppInfo |Digit analysis: analysis results
04530161.011 |19:59:21.185 |AppInfo ||PretransformCallingPartyNumber=1018
|CallingPartyNumber=1018
|DialingPartition=
|DialingPattern=9898
|FullyQualifiedCalledPartyNumber=9898
++ O SIP TLS está sendo usado na porta 5061 para esta chamada.
04530191.034 |19:59:21.189 |AppInfo |//SIP/SIPHandler/ccbId=0/scbId=0/SIP_PROCESS_ENQUEUE: createConnMsg tls_security=3
04530204.002 |19:59:21.224 |AppInfo |//SIP/Stack/Transport/0x0/sipConnectionManagerProcessConnCreated: gConnTab=0xb444c150, addr=10.106.95.200, port=5061, connid=12, transport=TLS Over TCP
04530208.001 |19:59:21.224 |AppInfo |SIPTcp - wait_SdlSPISignal: Outgoing SIP TCP message to 10.106.95.200 on port 5061 index 12
[131,NET]
INVITE sip:9898@10.106.95.200:5061 SIP/2.0
Via: SIP/2.0/TLS 10.106.95.203:5061;branch=z9hG4bK144f49a43a
From: <sip:1018@10.106.95.203>;tag=34~4bd244e4-0988-4929-9df2-2824063695f5-19024196
To: <sip:9898@10.106.95.200>
Call-ID: 94fffc00-57415541-7-cb5f6a0a@10.106.95.203
User-Agent: Cisco-CUCM9.1
A mensagem de Camada de Distribuição de Sinal ++ (SDL - Signal Distribution Layer) SIPCertificateInd fornece detalhes sobre a CN do assunto e informações de conexão.
04530218.000 |19:59:21.323 |SdlSig |SIPCertificateInd |wait |SIPHandler(1,100,72,1) |SIPTcp(1,100,64,1) |1,100,17,11.3^*^* |[T:N-H:0,N:1,L:0,V:0,Z:0,D:0] connIdx= 12 --remoteIP=10.106.95.200 --remotePort = 5061 --X509SubjectName /C=IN/ST=cisco/L=cisco/O=cisco/OU=cisco/CN=CUCM10 --Cipher AES128-SHA --SubjectAltname =
04530219.000 |19:59:21.324 |SdlSig |SIPCertificateInd |restart0 |SIPD(1,100,74,16) |SIPHandler(1,100,72,1) |1,100,17,11.3^*^* |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] connIdx= 12 --remoteIP=10.106.95.200 --remotePort = 5061 --X509SubjectName /C=IN/ST=cisco/L=cisco/O=cisco/OU=cisco/CN=CUCM10 --Cipher AES128-SHA --SubjectAltname =