Como @jofel disse em sua resposta e como eu explico em detalhes no meu tutorial wireshark para iniciantes - há uma diferença entre os filtros de exibição e os filtros de captura.
Filtros de captura
Em uma rede muito lotada, a captura de cada pacote pode gerar gigabytes de dados em apenas alguns segundos e, provavelmente, muito disso não é interessante para você.
É aqui que os filtros de captura são úteis. Definindo o filtro de captura, você pode dizer ao Wireshark para capturar apenas alguns subconjuntos de tráfego de rede. Você pode filtrar por endereços IP, faixa de endereços IP, números de porta, protocolo e assim por diante.
Por favor, tome nota que quando você usa um filtro de captura, os pacotes que não são correspondentes não serão salvos no arquivo de captura. Você nunca poderá recuperá-los. Se sua rede não estiver muito cheia, geralmente é melhor capturar e salvar tudo e usar filtros de exibição para analisar apenas o subconjunto que é interessante.
Esta é a documentação da sintaxe do filtro de captura
Exibir filtros ** é outra história
Os filtros de exibição são diferentes dos filtros de captura. Eles limitam apenas o que você vê no momento na interface wireshark (ou saída tshark para o console) - são muito mais avançados e usam uma sintaxe diferente. Você pode usar a maioria dos campos de pacotes reconhecidos pelos dissecadores com vários operadores - comparando strings, verificando valores e assim por diante.
O que você digita na barra de ferramentas da GUI do Wireshark é o filtro de exibição. Eu recomendo brincar com a janela "expressões" ao lado dela. É um dos recursos mais importantes e mais usados do wireshark.
O motivo pelo qual você não pode usar o filtro "não ssh" captura é que os filtros de captura funcionam em um nível inferior aos filtros de exibição. O Wireshark não "sabe" ainda qual protocolo é para cada pacote quando realiza a filtragem de captura. É uma análise de alto nível realizada por dissecadores.
Para filtrar tudo, exceto o tráfego SSH no nível de captura, você precisa filtrar o tráfego da porta 22, ou seja, com o filtro de captura "not port 22"
.
Se for tshark
Você pode usar filtros de captura e exibir filtros com tshark, mas eles são opções de opção de linha de comando diferentes:
exemplo de filtro de captura: tshark -f "not port 22"
exemplo de filtro de exibição: tshark -R "not ssh"
Outra coisa é que você usou !ssh
enquanto o ponto de exclamação em alguns shells populares unix (como o bash) tem significado especial e é interpretado pelo shell antes ser passado para o aplicativo que você está prestes a executar. Você deve escapar dessa forma como \!ssh
ou simplesmente usar o operador not
logical que é suportado pelos filtros de captura e exibição.
Espero que seja uma resposta exaustiva e justifique o meu plug sem vergonha no começo:)