Como listar todas as solicitações para soquetes udp?

9

Estou operando alguns daemons de servidor que usam o udp para se comunicar com grande número de clientes. Como localizo e listo todas as "conexões" udp ativas que estão conversando com os servidores para estimar o número de clientes ativos conectados aos daemons do servidor? Eu não conseguia pensar em uma maneira fácil de fazer isso além de cheirar os pacotes com tshark ou tcpdump e olhar o ip de origem dos pacotes udp que vão para os daemons do servidor e, sim, eu sei que o UDP é um protocolo sem conexão e sem estado.

pedra
fonte
Como não há estado / status / nada para conexões UDP em nenhum lugar, provavelmente a única maneira é registrar algumas informações para cada pacote (enviado ou recebido). Talvez o redirecione com iptables para algum daemon que registrará IPs ou manterá estatísticas ou algo assim.
Sandman4
Defina " conexão udp ativa ".
precisa saber é o seguinte
@ Sandman4 talvez ele queira listar todos os pedidos nos soquetes UDP.
Sachin Divekar
O que exatamente você está tentando fazer? É difícil rastrear solicitações UDP sem um sniffer, portanto, algum contexto é apreciado.
Rilindo
Você pode postar a saída desudo lsof -iUDP
Pieter Temmerman

Respostas:

9

O UDP é um protocolo sem estado - portanto, nenhum estado.

Para ver o que está ouvindo o UDP:

netstat -lnpu
gelo fino
fonte
4

Você pode registrar todas as conexões UDP usando o iptables:

iptables -A INPUT -p udp -j LOG --log-prefix "udp connection: "

Talvez você queira limitá-lo a algumas portas. Verifique a documentação aqui ou, de preferência man iptables,.

Belmin Fernandez
fonte
3

No Linux, supondo que o iproute2 esteja instalado, você pode executar o comando ss para extrair soquetes udp da seguinte maneira:

ss -u

Ou todos os soquetes UDP, com o processo associado:

[root@kerberos ks]# ss -u -pa
State       Recv-Q Send-Q                                   Local Address:Port                                       Peer Address:Port   
UNCONN      0      0                                                    *:kerberos                                               *:*        users:(("krb5kdc",1935,7))
UNCONN      0      0                                                    *:mdns                                                  *:*        users:(("avahi-daemon",1613,13))
UNCONN      0      0                                                    *:rquotad                                               *:*        users:(("rpc.rquotad",1872,3))
UNCONN      0      0                                                    *:kerberos-iv                                               *:*        users:(("krb5kdc",1935,6))
UNCONN      0      0                                                    *:sunrpc                                                *:*        users:(("rpcbind",1569,6))
UNCONN      0      0                                                    *:ipp                                                   *:*        users:(("cupsd",1687,9))
UNCONN      0      0                                       192.168.15.100:ntp                                                   *:*        users:(("ntpd",1976,23))
UNCONN      0      0                                          172.16.15.1:ntp                                                   *:*        users:(("ntpd",1976,22))
UNCONN      0      0                                            127.0.0.1:ntp                                                   *:*        users:(("ntpd",1976,21))
UNCONN      0      0                                                    *:ntp                                                   *:*        users:(("ntpd",1976,16))
UNCONN      0      0                                                    *:892                                                   *:*        users:(("rpc.mountd",1888,7))
UNCONN      0      0                                                    *:896                                                   *:*        users:(("rpcbind",1569,7))
UNCONN      0      0                                                    *:32769                                                 *:*       
UNCONN      0      0                                                    *:nfs                                                   *:*       
UNCONN      0      0                                                    *:syslog                                                *:*        users:(("rsyslogd",1506,1))
UNCONN      0      0                                                    *:42375                                                 *:*        users:(("avahi-daemon",1613,14))
UNCONN      0      0                                                    *:pftp                                                  *:*        users:(("rpc.statd",1643,8))
UNCONN      0      0                                                    *:snmp                                                  *:*        users:(("snmpd",1949,7))
UNCONN      0      0                                                    *:37802                                                 *:*        users:(("squid",2124,9))
UNCONN      0      0                                                    *:bootps                                                *:*        users:(("dhcpd",1987,7))
UNCONN      0      0                                                    *:tftp                                                  *:*        users:(("xinetd",1968,6))
UNCONN      0      0                                                    *:971                                                   *:*        users:(("rpc.statd",1643,5))
UNCONN      0      0                                                    *:kpasswd                                               *:*        users:(("kadmind",1926,6))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kerberos                                              :::*        users:(("krb5kdc",1935,11))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kerberos                                              :::*        users:(("krb5kdc",1935,9))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kerberos-iv                                              :::*        users:(("krb5kdc",1935,10))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kerberos-iv                                              :::*        users:(("krb5kdc",1935,8))
UNCONN      0      0                                                   :::sunrpc                                               :::*        users:(("rpcbind",1569,9))
UNCONN      0      0                              fe80::fc54:ff:feda:8094:ntp                                                  :::*        users:(("ntpd",1976,26))
UNCONN      0      0                              fe80::fc54:ff:fe52:8f66:ntp                                                  :::*        users:(("ntpd",1976,30))
UNCONN      0      0                              fe80::fc54:ff:feea:63a8:ntp                                                  :::*        users:(("ntpd",1976,29))
UNCONN      0      0                              fe80::fc54:ff:fe16:15c3:ntp                                                  :::*        users:(("ntpd",1976,28))
UNCONN      0      0                              fe80::fc54:ff:fe75:8012:ntp                                                  :::*        users:(("ntpd",1976,27))
UNCONN      0      0                              fe80::fc54:ff:feb3:4da8:ntp                                                  :::*        users:(("ntpd",1976,25))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:ntp                                                  :::*        users:(("ntpd",1976,20))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:ntp                                                  :::*        users:(("ntpd",1976,19))
UNCONN      0      0                                                  ::1:ntp                                                  :::*        users:(("ntpd",1976,18))
UNCONN      0      0                                                   :::ntp                                                  :::*        users:(("ntpd",1976,17))
UNCONN      0      0                                                   :::892                                                  :::*        users:(("rpc.mountd",1888,9))
UNCONN      0      0                                                   :::896                                                  :::*        users:(("rpcbind",1569,10))
UNCONN      0      0                                                   :::32769                                                :::*       
UNCONN      0      0                                                   :::nfs                                                  :::*       
UNCONN      0      0                                                   :::syslog                                               :::*        users:(("rsyslogd",1506,2))
UNCONN      0      0                                                   :::pftp                                                 :::*        users:(("rpc.statd",1643,10))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kpasswd                                              :::*        users:(("kadmind",1926,8))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kpasswd                                              :::*        users:(("kadmind",1926,7))
UNCONN      0      0                                                   :::59603                                                :::*        users:(("squid",2124,8))
[root@kerberos ks]# ss -upa
State       Recv-Q Send-Q                                   Local Address:Port                                       Peer Address:Port   
UNCONN      0      0                                                    *:kerberos                                               *:*        users:(("krb5kdc",1935,7))
UNCONN      0      0                                                    *:mdns                                                  *:*        users:(("avahi-daemon",1613,13))
UNCONN      0      0                                                    *:rquotad                                               *:*        users:(("rpc.rquotad",1872,3))
UNCONN      0      0                                                    *:kerberos-iv                                               *:*        users:(("krb5kdc",1935,6))
UNCONN      0      0                                                    *:sunrpc                                                *:*        users:(("rpcbind",1569,6))
UNCONN      0      0                                                    *:ipp                                                   *:*        users:(("cupsd",1687,9))
UNCONN      0      0                                       192.168.15.100:ntp                                                   *:*        users:(("ntpd",1976,23))
UNCONN      0      0                                          172.16.15.1:ntp                                                   *:*        users:(("ntpd",1976,22))
UNCONN      0      0                                            127.0.0.1:ntp                                                   *:*        users:(("ntpd",1976,21))
UNCONN      0      0                                                    *:ntp                                                   *:*        users:(("ntpd",1976,16))
UNCONN      0      0                                                    *:892                                                   *:*        users:(("rpc.mountd",1888,7))
UNCONN      0      0                                                    *:896                                                   *:*        users:(("rpcbind",1569,7))
UNCONN      0      0                                                    *:32769                                                 *:*       
UNCONN      0      0                                                    *:nfs                                                   *:*       
UNCONN      0      0                                                    *:syslog                                                *:*        users:(("rsyslogd",1506,1))
UNCONN      0      0                                                    *:42375                                                 *:*        users:(("avahi-daemon",1613,14))
UNCONN      0      0                                                    *:pftp                                                  *:*        users:(("rpc.statd",1643,8))
UNCONN      0      0                                                    *:snmp                                                  *:*        users:(("snmpd",1949,7))
UNCONN      0      0                                                    *:37802                                                 *:*        users:(("squid",2124,9))
UNCONN      0      0                                                    *:bootps                                                *:*        users:(("dhcpd",1987,7))
UNCONN      0      0                                                    *:tftp                                                  *:*        users:(("xinetd",1968,6))
UNCONN      0      0                                                    *:971                                                   *:*        users:(("rpc.statd",1643,5))
UNCONN      0      0                                                    *:kpasswd                                               *:*        users:(("kadmind",1926,6))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kerberos                                              :::*        users:(("krb5kdc",1935,11))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kerberos                                              :::*        users:(("krb5kdc",1935,9))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kerberos-iv                                              :::*        users:(("krb5kdc",1935,10))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kerberos-iv                                              :::*        users:(("krb5kdc",1935,8))
UNCONN      0      0                                                   :::sunrpc                                               :::*        users:(("rpcbind",1569,9))
UNCONN      0      0                              fe80::fc54:ff:feda:8094:ntp                                                  :::*        users:(("ntpd",1976,26))
UNCONN      0      0                              fe80::fc54:ff:fe52:8f66:ntp                                                  :::*        users:(("ntpd",1976,30))
UNCONN      0      0                              fe80::fc54:ff:feea:63a8:ntp                                                  :::*        users:(("ntpd",1976,29))
UNCONN      0      0                              fe80::fc54:ff:fe16:15c3:ntp                                                  :::*        users:(("ntpd",1976,28))
UNCONN      0      0                              fe80::fc54:ff:fe75:8012:ntp                                                  :::*        users:(("ntpd",1976,27))
UNCONN      0      0                              fe80::fc54:ff:feb3:4da8:ntp                                                  :::*        users:(("ntpd",1976,25))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:ntp                                                  :::*        users:(("ntpd",1976,20))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:ntp                                                  :::*        users:(("ntpd",1976,19))
UNCONN      0      0                                                  ::1:ntp                                                  :::*        users:(("ntpd",1976,18))
UNCONN      0      0                                                   :::ntp                                                  :::*        users:(("ntpd",1976,17))
UNCONN      0      0                                                   :::892                                                  :::*        users:(("rpc.mountd",1888,9))
UNCONN      0      0                                                   :::896                                                  :::*        users:(("rpcbind",1569,10))
UNCONN      0      0                                                   :::32769                                                :::*       
UNCONN      0      0                                                   :::nfs                                                  :::*       
UNCONN      0      0                                                   :::syslog                                               :::*        users:(("rsyslogd",1506,2))
UNCONN      0      0                                                   :::pftp                                                 :::*        users:(("rpc.statd",1643,10))
UNCONN      0      0                             fe80::2e0:4cff:fe90:40eb:kpasswd                                              :::*        users:(("kadmind",1926,8))
UNCONN      0      0                             fe80::226:2dff:fe47:309f:kpasswd                                              :::*        users:(("kadmind",1926,7))
UNCONN      0      0                                                   :::59603                                                :::*        users:(("squid",2124,8))

Aqui estão exemplos adicionais que você pode usar com ss, incluindo obter conexões por processo.

http://www.cyberciti.biz/files/ss.html

Rilindo
fonte
1
Novamente, como o udp pode ter uma conexão? ssapenas exibe soquetes UDP e não conexão .
Sachin Divekar
Má escolha de palavras. Dito isto, pedi esclarecimentos a Flit, pois não está claro o que ele está tentando fazer.
Rilindo
Qual é a diferença entre ss -pae ss -upano exemplo? Metade deve ser excluída?
Mihail Malostanidis 27/03
3

Como outros usuários mencionaram, o UDP não possui conexão, portanto o estado não é rastreado nos locais padrão que você pode procurar.

Um método que você pode usar é simplesmente configurar algumas regras simples do netfilter que usam a --stateopção Isso forçará o netfilter a rastrear o estado relacionado ao UDP. Depois de configurar as regras, você poderá usar uma ferramenta como o conntrack para examinar a tabela de estados do netfilter. Aqui está, por exemplo, como é o sistema. Você pode ver que existem alguns sistemas que estão frequentemente se comunicando com o udp / 1194 (OpenVPN).

root@enterprise:# conntrack  -L -p udp
udp      17 173 src=192.168.32.1 dst=192.168.32.10 sport=41179 dport=1194 packets=2072 bytes=188058 src=192.168.32.10 dst=192.168.32.1 sport=1194 dport=41179 packets=2081 bytes=201185 [ASSURED] mark=0 secmark=0 use=1
udp      17 175 src=192.168.32.26 dst=192.168.32.10 sport=57440 dport=1194 packets=806767 bytes=154637738 src=192.168.32.10 dst=192.168.32.26 sport=1194 dport=57440 packets=1265893 bytes=1588040830 [ASSURED] mark=0 secmark=0 use=1

Suas regras de filtro de rede podem ser tão simples quanto isso.

/sbin/iptables -t filter -A INPUT -m state --state NEW\,ESTABLISHED -j ACCEPT
/sbin/iptables -t filter -A FORWARD -m state --state NEW\,ESTABLISHED -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -m state --state NEW\,ESTABLISHED -j ACCEPT
Zoredache
fonte
2

inspirado por esta resposta , descobri que a seguinte sssintaxe funciona para mim:

ss -u state CLOSE

... porque "ouvir" soquetes UDP são como soquetes TCP "fechados".

RubyTuesdayDONO
fonte