De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
TCP UDP - Identificação de Portas Ativas em BSD
Colaboração: Felipe Kellermann
Data de Publicação: 16 de Junho de 2004
Nos sistemas baseados no 4.4BSD há uma ferramenta padrão que
entrou na versão 4.3BSD-Tahoe, fstat(1). Não tem nada a
ver com a fstat(2).
A idéia é a mesma que a do lsof. Na verdade, o lsof tenta ser uma
versão portável do fstat: Listar descritores abertos. A diferença
aqui é que o fstat é realmente um padrão nos sistemas BSD, e até por
isso é bem mais simples.
Com essa lista detalhada de descritores nós podemos ver esses sockets.
Por exemplo,
$ fstat|grep -E '(tcp|udp)'
stdfk sshd 2048 6* internet stream tcp 0xd05fac84 10.0.1.2:22 <-- 10.0.0.1:1083
root sshd 6102 6* internet stream tcp 0xd05fac84 10.0.1.2:22 <-- 10.0.0.1:1083
root sshd 3043 4* internet6 stream tcp 0xd05fa9bc *:22
root sshd 3043 5* internet stream tcp 0xd05fab20 *:22
root inetd 16313 4* internet stream tcp 0xd05fa164 *:113
root inetd 16313 5* internet6 stream tcp 0xd05fa2c8 *:113
root inetd 16313 6* internet dgram udp *:69
root inetd 16313 7* internet dgram udp 127.0.0.1:512
root inetd 16313 8* internet6 dgram udp [::1]:512
root inetd 16313 9* internet stream tcp 0xd05fa42c *:13
root inetd 16313 10* internet6 stream tcp 0xd05fa590 *:13
root inetd 16313 11* internet stream tcp 0xd05fa6f4 *:37
root inetd 16313 12* internet6 stream tcp 0xd05fa858 *:37
root ftpd 16809 4* internet stream tcp 0xd05fa000 *:21
_syslogd syslogd 16861 5* internet dgram udp *:514
$
Aqui nós também podemos ver quem é o dono do processo, qual é
o nome do processo, qual é o PID do processo. O próximo campo
especificaria qual é o descritor que está associado à linha.
No nosso caso nós temos um valor seguido de um asterisco, que
indica que esse descritor é relativo a algum tipo de socket
(Não é um inode. É um socket, FIFO, ou há algum erro).
A formatação dos próximos campos depende do domínio do
protocolo. Aquele primeiro campo indica justamente qual é
esse tipo de domínio. No segundo campo nós temos o tipo do
socket. Terceiro, e aqui é interessante, são as flags
que estão associadas a esse socket, em hexa. E depois segue
com as informações que são específicas do tipo de protocolo.