Вы находитесь на странице: 1из 17

1

SNGREP
Uso Avançado e novas funcionalidade
Profª Angelo B. Delphini

2
FALSA FOLHA DE ROSTO

3
© Angelo B. Delphini
SNGREP: Uso Avançado e Novas Utilidades

ISBN papel:
ISBN pdf:

Impresso em Espanha

Editado por Bubok Publishing S.L.

“Reservados todos os direitos. Salvo exceção prevista pela lei, não é permitida a
reprodução total ou parcial desta obra, nem a sua incorporação a um sistema
informático, nem a sua transmissão em qualquer forma ou por qualquer meio
(eletrónico, mecânico, fotocopia, gravação ou outros) sem autorização prévia e por
escrito dos titulares do copyright. A infração de ditos direitos implica sanções legais e
pode constituir um delito contra a propriedade intelectual.

Dirija-se a CEDRO (Centro Espanhol de Direitos Reprográficos) se precisa de


fotocopiar o digitalizar algum fragmento desta obra (www.conlicencia.com; 91 702
19 70 / 93 272 04 47).”

4
Toda vez que um homem supera os reveses,
Torna-se mentalmente e espiritualmente mais forte.

5
Índice

6
Capítulo 1

Um tempo atrás os introduzimos uma ferramenta desenvolvida pelo


nosso parceiro Iván Alonso (Aka Kaian) que se tornou uma utilidade
essencial no nosso dia a dia. Este é o SNGREP. Um visualizador de
rastreio SIP em NCURSES que abrange aproximadamente as seguintes
necessidades:
• Análise em tempo real do tráfego SIP de um nó, sem ter que ser
um shell no dito equipamento.
• Análise do tráfego SIP a partir de uma captura em formato pcap
capturado com tcpdump, ngrep ou qualquer outra ferramenta
semelhante de captura de rede.
• Mostre de forma gráfica os nos envolvidos, as mensagens troca-
das e seu conteúdo.

Com o passar do tempo e com o uso extensivo que damos em nossas


guerras diárias, implementamos muitos recursos que queremos apresen-
tar a você. Então vamos começar pois temos muito para mostrar e con-
tar para vocês.

Instalar o SNGREP

Há tanta coisa para dizer que não vamos explicar todo o processo de
instalação. O processo é simples, basta seguir estes passos:
• Va para a página do projeto no GitHub, segue a url:
https://github.com/irontec/sngrep.
• Siga os passos descritos nesta url:
https://github.com/irontec/sngrep/wiki#installing. Te-
nha uma atenção para selecionar o procedimento de acordo com
a sua distribuição Linux.

7
• Se você tiver algum problema, você pode inserir uma incidência
no GitHub e a equipe da Irontec vai ter o maior prazer em aju-
dá-lo.

Iniciar o SNGREP

Depois de instalarmos o SNGREP, podemos usá-lo. O primeiro passo


seria escolher entre os dois modos principais:
• Modo online;
• Modo off-line.

Modo off-line

É possível que desejamos analisar uma captura que obtivemos por meio
de qualquer ferramenta de captura das muitas disponíveis (ngrep, tcp-
dump, wireshar, etc.). Para fazer isto, basta executar:

[root]@[irontec] - # sngrep -I MyEpicCapture.pcap

Neste modo também é possível usar filtros bpf descritos posteriormen-


te.

Modo online

Uma das coisas bonitas sobre o SNGREP é vê-la desenhar o que está
acontecendo ... ao vivo! Para fazer isso, basta executar:

[root]@[irontec] - # sngrep

Existem muitos sinalizadores que modificam o comportamento do


SNGREP (com sngrep -h obteremos uma lista completa), achamos
interessante destacar o seguinte:

8
• -O output.pcap: Além de visualizar a captura ao vivo, se qui-
sermos obter uma captura com tudo o que vimos, torna-la mais
refinada, não se preocupe iremos lhe explicar como.
• -c: Mostra apenas os diálogos que começam com o método IN-
VITE (as chamadas).
• Filtros bpf: Como o NGREP (o projeto no qual o SNGREP é
baseado), o SNGREP permite a introdução de filtros que limi-
tam o que será filtrado. Desta forma, podemos discriminar o trá-
fego que não nos interessa e evitar que o SNGREP tenha que
analisar todo o tráfego em busca do SIP. Um exemplo típico se-
ria:

[root]@[irontec] - # sngrep port 5060 and udp

Aqui nesta url (http://biot.com/capstats/bpf.html) você po-


de encontrar mais informações sobre esse tipo de filtro.

Janela de listagem de diálogo


Uma vez que o SNGREP é iniciado em qualquer um dos dois modos, é
apresentada uma tela com uma lista igual à da imagem 0101.

Capítulo 01 – Imagem 0101

9
Cada linha representa um diálogo SIP e as colunas mostram informa-
ções de cabeçalho (De, Para), IP de origem, IP de destino e nome do
primeiro método. Todas as informações de uma determinada linha são
coletadas da primeira mensagem da caixa de diálogo.

As colunas mostradas são configuráveis e podem ser colocadas na or-


dem que você preferir. Para isso, existem duas opções:
• Pressionando F10: Uma janela como a da imagem 0102 é mos-
trada mostrando todos os campos que podem ser adicionados.
Também é possível modificar a ordem das colunas pressionando
+/-. As alterações feitas por meio desta opção se aplicam so-
mente a sessão atual.

Capítulo 01 – Imagem 0102

• Modificando os arquivos de configurações (/etc/sngreprc ou


~/.sngreprc, que são carregados nesta ordem): Através destes
arquivos você pode modificar as colunas exibidas, sua ordem e
sua largura (entre muitas outras opções). Desta forma, você po-
de configurar o SNGREP para que ele mostre por padrão as co-
lunas que são mais úteis para você na ordem que lhe parecer

10
mais confortável. Então, com a opção anterior, você pode alterar
execução para os casos excepcionais.

Entre as colunas que achamos muito úteis, estão:


• Data: Data da primeira mensagem na caixa de diálogo.
• Hora: Hora da primeira mensagem na caixa de diálogo.
• Trans (Dialog Transport Prococol): Como veremos mais adian-
te, os protocolos suportados são: UDP, TCP ... e TLS!

Filtrar lista de diálogo

Quando tivermos a tela principal ao nosso gosto, é muito provável que


desejemos filtrar a lista para procurar um diálogo específico (uma cha-
mada, um registro, etc.). Além disso, podemos estar fazendo uma cap-
tura ao vivo e não queremos que a lista cresça porque já temos a cha-
mada que queremos. Para fazer isso. A tecla p para e retoma a captura.

Mas vamos com os filtros! Existem dois tipos de filtros:


• Filtros do tipo VIM: Ao pressionar a tecla /, você pode inserir
uma string. À medida que você insere caracteres, a lista será re-
duzida e somente as linhas contendo essa sequência serão exibi-
das. Esses filtros correspondem apenas à cadeia que é mostrada,
ou seja, se não estivermos exibindo a ID da chamada, não pode-
remos filtrar inserindo uma ID de chamada (Veja imagem 0103).

Capítulo 01 – Imagem 0103

11
• Filtrar por cabeçalhos e métodos: Pressionando a tecla f, a se-
guinte janela aparece (Veja imagem 0104): Esta janela nos permi-
te procurar por uma string dentro de De e também outra no
To, etc. Também nos permite filtrar por métodos: Somente
REGISTERs, somente INVITES, etc. A diferença deste para o
filtro anterior, é que não é necessário mostrar o filtro From para
filtrar na base dele.

Capítulo 01 – Imagem 0104

Análise de um ou mais diálogos

Come bem! Já temos nossa lista de diálogos filtrados, encontramos a(s)


chamada(s) em questão, por exemplo, e queremos ver o que aconteceu.
Para variar, temos duas opções:
• Selecione com a tecla de ESPAÇO as caixas de diálogos que vo-
cê deseja ver (uma ou várias) e pressione ENTER nele.
• Se quisermos apenas um diálogo, nos movemos com os cursores
e pressionamos ENTER nele.

12
E por que queremos ver mais de um diálogo por vez? O caso típico
nosso, que trabalhamos muito com o Asterisk, que é B2BUA, é mostrar
as famosas duas pernas no mesmo desenho.

Mas vamos direto ao assunto! Este é o tipo de tela (veja imagem 0105)
quando selecionamos um diálogo. Neste caso, uma camada entre dois
terminais através do Asterisk (que é o nó onde iniciamos o SNGREP):

Capítulo 01 – Imagem 0105

E quais opções nós temos neste momento? Muitos mais do que dois!
• Que nos esquecemos de selecionar dois diálogos e só vemos a
primeira etapa? Pressionando a tecla x, o SNGREP irá procurar
por diálogos relacionados aos cabeçalhos X-CID ou X-Call-ID
e adicioná-los ao desenho atual.
• O que são tantas colunas que não vemos a imagem completa?
Com a tecla t, escondemos e mostramos o painel que mostra a
mensagem SIP selecionada. Com as teclas 0 e 9, podemos adap-
tar a largura deste painel (pressionar T retornará à largura origi-
nal).
• Se tivermos selecionado vários diálogos, se um nó aparecer em
vários diálogos, ele terá várias colunas. Para fazer uma mescla-

13
gem e para cada nó aparecer apenas uma vez, podemos pressio-
nar a tecla s.
• As cores do diagrama SIP também podem ser alteradas. Por pa-
drão, as solicitações são mostradas em vermelho e as repostas
em verde. Ao pressionar a tecla c, você pode alternar entre os
seguintes modos:
o Colorir por CSeq: Pode ser útil para analisar transações
separadamente.
o Colorir por diálogo: pode ser útil se estivermos mos-
trando vários diálogos no mesmo diagrama.
o Pressionando ENTER veremos a mensagem seleciona-
da, pressionando r, veremos todo o fluxo no modo tex-
to, assim como no NGREP.
Existem muitas outras funcionalidades, mas também não é uma questão
de aborrecimento. A melhor forma de saber o qeu pode ser feito em
cada ecrã é pressionando h.

Apenas mais alguns recursos que usamos muito e achamos úteis:


• Modo somente SDP: Com as teclas d e D, você pode mostrar
apenas os pacotes com SDP e as portas de áudio negociadas.
Útil para problemas na negociação de áudio (Veja a imagem
0106).

Capítulo 01 – Imagem 0106

14
• Comparar duas mensagens SIP: Se selecionar duas mensagens
com a tecla espaço, será exibida uma janela que as comparas
(Veja na imagem 0107).

Capítulo 01 – Imagem 0107

Vamos deixar este capítulo por aqui, está ficando um pouco longo ...
mas há muito mais, convido você a experimentar!

Salve os diálogos que queremos

Uma vez que tenhamos detectado algo interessante, é muito provável


que queiramos denunciá-lo em algum lugar ou enviá-lo de alguma for-
ma. Para fazer isso, o SNGREP permite exportar os diálogos desejados.
Existem duas maneiras:
• Na janela da lista do diálogo, selecione os diálogos desejados
com o espaço. Se neste ponto, quisermos salvar esses diálogos
no formato pcap, pressionamos a tecla s (Veja a imagem 0108).

15
Capítulo 01 – Imagem 0108

Se quisermos salvá-lo no modo de texto, depois que os diálogos


forem selecionados, pressionamos a tecla r, para ir para o modo
RAW. Este modo permite que você veja mensagens como mos-
trado por NGREP. Neste ponto, se pressionarmos a tecla s, um
diálogo é mostrado para salvar a captura em TXT.

Outras funcionalidades

Deixamos muitos recursos no pipeline, alguns dos quais serão para o


próximo capítulo. Especificamente prometemos um capítulo sobre o
uso do SNGREP para visualizar chamadas que usam SIP sobre TLS.

Futuro do SNGREP

Graças ao nosso parceiro Ivan Alonso (também conhecido com Aka


Kaian), desenvolvedor da ferramenta, SNGREP é um projeto que está
muito vivo! Há muitas ideias em mente, como:
• Filtros do conteúdo da mensagem SIP por meio de expressões
regulares (posix e pcre).
• Redimensionamento dinâmico do tamanho da janela.
• Salve o layout configurado por meio do F10 no arquivo de con-
figuração principal, para futuras sessões.
• Suportar o uso do mouse na interface NCURSES.

16
Estamos abertos a novas ideias, você pode mandar suas ideias por meio
de uma incidência no projeto lá no GitHub.

Por este momento é tudo, este eBook é continuo! Até o capítulo 2!

Sugestões envia um e-mail para professor.delphini@outlook.com.

17