Identifica quando um soquete TCP é aberto com inotify

2

Como o título sugere, há uma maneira de ser notificado de soquetes abertos recentemente usando inotify / inotify-tools? Tanto quanto eu posso dizer inotify só funciona com inodes e, especificamente, testando se esses inodes são soquetes não é algo que inotify é realmente capaz de fazer. Além disso, parece que não consigo encontrar onde os sockets FD's estão armazenados. Só consigo ver os descritores de arquivos que são links simbólicos:

# ls -l /proc/29711/fd/10 
lrwx------ 1 root root 64 Mar  6 17:04 /proc/29711/fd/10 -> socket:[750728]

# stat /proc/29711/fd/10
  File: '/proc/29711/fd/10' -> 'socket:[750728]'
  Size: 64              Blocks: 0          IO Block: 1024   symbolic link
Device: 3h/3d   Inode: 759700      Links: 1
Access: (0700/lrwx------)  Uid: ( 0/    root)   Gid: ( 0/    root)
Access: 2013-03-06 17:05:22.690411801 +1100
Modify: 2013-03-06 17:04:14.062414880 +1100
Change: 2013-03-06 17:04:14.062414880 +1100
 Birth: -
    
por atx 07.03.2013 / 00:08

1 resposta

4

Inotify é para monitoração de eventos do sistema de arquivos, então a menos que haja um FS especial representando os soquetes do sistema - de jeito nenhum.

Eu recomendo olhar netlink e em seu NETLINK_INET_DIAG em particular, mas não posso dizer por Certifique-se se tem instalações correspondentes em tudo.

ATUALIZAÇÃO: compartilhei esta pergunta-resposta e Pavel Emelyanov - CRIU principalmente desenvolvedor, confirmaram minhas suspeitas - é mais do que provável que você não consiga obter essas notificações com netlink .

    
por 07.03.2013 / 01:54

Tags