AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 466584
Accepted
Artem S. Tashkinov
Artem S. Tashkinov
Asked: 2018-09-04 06:56:13 +0800 CST2018-09-04 06:56:13 +0800 CST 2018-09-04 06:56:13 +0800 CST

tcpdump/tshark: visualize apenas solicitações de conexões TCP de saída

  • 772

Eu gostaria de ver as TCPsolicitações (pacotes syn) iniciadas pelo meu PC/servidor para outros hosts. Mais especificamente, gostaria de ver o arquivo outgoing connection requests. Como posso fazer isso?

Além disso, não quero ver nenhuma tentativa de conexão que esteja chegando ao meu PC/servidor.

O iptablescomando a seguir funciona, mas é desajeitado de usar, pois registra tudo enquanto eu só quero ver tudo na tela:

iptables -I OUTPUT 1 -o eth0 -p tcp -m state --state NEW -j LOG
networking tcpdump
  • 1 1 respostas
  • 9699 Views

1 respostas

  • Voted
  1. Best Answer
    slm
    2018-09-04T07:04:59+08:002018-09-04T07:04:59+08:00

    Se você quiser ver as conexões TCP de saída originadas do seu host, você pode usar o switch src host <ip>como um argumento para tcpdump:

    $ tcpdump -i any -nn src host 10.0.2.15 and port 80
    

    Exemplo

    Tráfego de saída simulado:

    $ curl -vv telnet://www.google.com:80
    * About to connect() to www.google.com port 80 (#0)
    *   Trying 172.217.15.100...
    * Connected to www.google.com (172.217.15.100) port 80 (#0)
    ^C
    

    Assistir com tcpdump:

    $ tcpdump -i any -nn src host 10.0.2.15 and port 80
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    11:04:19.585773 IP 10.0.2.15.50642 > 216.58.218.4.80: Flags [S], seq 315169574, win 29200, options [mss 1460,sackOK,TS val 38358006 ecr 0,nop,wscale 7], length 0
    11:04:19.623676 IP 10.0.2.15.50642 > 216.58.218.4.80: Flags [.], ack 470600706, win 29200, length 0
    

    Filtrando em pacotes syn

    Para capturar apenas os pacotes syn de saída, você precisará analisar os tcpflags, procurando especificamente pelo tcp-synsinalizador. Novamente usando o mesmo curlcomando acima, mas agora invocando tcpdumpassim:

    $ tcpdump -i any -nn src host 10.0.2.15 and "tcp[tcpflags] == tcp-syn"
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    11:13:39.962475 IP 10.0.2.15.44810 > 64.233.185.103.80: Flags [S], seq 3710429425, win 29200, options [mss 1460,sackOK,TS val 38918382 ecr 0,nop,wscale 7], length 0
    

    tcpflags

    Da tcpdumppágina man:
    The general format of a TCP protocol line is:
    
    src > dst: Flags [tcpflags], seq data-seqno, ack ackno, win window, urg urgent, options [opts], length len
    
    Src and dst are the source and destination IP addresses and ports. 
    Tcpflags are some combination of S (SYN), F (FIN), P (PUSH), R (RST), U 
    (URG), W (ECN CWR), E (ECN-Echo) or `.' (ACK), or `none' if no flags are 
    set. Data-seqno describes the portion of sequence space covered by the 
    data in this packet (see example below). Ackno is sequence number of the 
    next data expected the other direction on this connection. Window is the 
    number of bytes of receive buffer space available the other direction on 
    this connection. Urg indicates there is `urgent' data in the packet. Opts 
    are TCP options (e.g., mss 1024). Len is the length of payload data.
    

    Referências

    • Um tutorial tcpdump e uma cartilha com exemplos
    • Como capturar pacotes ack ou syn pelo Tcpdump?
    • slmingol/tcp_flags.txt
    • Notas de Amit - Documentos » Rede » tcpdump
    • 5

relate perguntas

  • Encontrar threads/scripts associados a uma porta?

  • Pergunta sobre arquivos montados em rede

  • Um endereço IP pode terminar em 255 e não ser um endereço IP de transmissão?

  • Incapaz de identificar qual saída de endereço MAC do comando arp ou comando ip está correta

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve