Embora o TCP e o UDP façam parte do TCP / IP, ambos pertencem às mesmas camadas TCP / IP ou OSI, e ambos são uma camada acima do IP, são protocolos diferentes.
Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) are two of the core protocols of the Internet Protocol suite. Both TCP and UDP work at the transport layer TCP/IP model and both have a very different usage. TCP is a connection-oriented protocol. UDP is a connectionless protocol.
modelo tcp ip http://www.ml-ip.com/assets/images/ tcpip-layers.gif
Alguns serviços realmente atendem às portas TCP e UDP ao mesmo tempo, como é o caso dos serviços DNS e NTP, entretanto este não é certamente o caso dos servidores web, que normalmente respondem apenas por padrão à porta 80 / TCP (e não funciona / ouve nada no UDP)
Você pode listar suas portas de escuta UDP em um sistema Linux com:
$sudo netstat -anlpu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:1900 0.0.0.0:* 15760/minidlnad
udp 0 0 0.0.0.0:5000 0.0.0.0:* 32138/asterisk
udp 0 0 0.0.0.0:4500 0.0.0.0:* 1592/charon
udp 0 0 0.0.0.0:4520 0.0.0.0:* 32138/asterisk
udp 0 0 0.0.0.0:5060 0.0.0.0:* 32138/asterisk
udp 0 0 0.0.0.0:4569 0.0.0.0:* 32138/asterisk
udp 0 0 0.0.0.0:500 0.0.0.0:* 1592/charon
udp 0 0 192.168.201.1:53 0.0.0.0:* 30868/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 30868/named
udp 0 0 0.0.0.0:67 0.0.0.0:* 2055/dhcpd
udp 0 0 0.0.0.0:14403 0.0.0.0:* 1041/dhclient
udp 17920 0 0.0.0.0:68 0.0.0.0:* 1592/charon
udp 0 0 0.0.0.0:68 0.0.0.0:* 1041/dhclient
udp 0 0 0.0.0.0:56417 0.0.0.0:* 2055/dhcpd
udp 0 0 192.168.201.1:123 0.0.0.0:* 1859/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 1859/ntpd
udp 0 0 192.168.201.255:137 0.0.0.0:* 1777/nmbd
udp 0 0 192.168.201.1:137 0.0.0.0:* 1777/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1777/nmbd
udp 0 0 192.168.201.255:138 0.0.0.0:* 1777/nmbd
udp 0 0 192.168.201.1:138 0.0.0.0:* 1777/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1777/nmbd
udp 0 0 192.168.201.1:17566 0.0.0.0:* 15760/minidlnad
E suas portas TCP de escuta com o comando:
$sudo netstat -anlpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5060 0.0.0.0:* LISTEN 32138/asterisk
tcp 0 0 192.168.201.1:8200 0.0.0.0:* LISTEN 15760/minidlnad
tcp 0 0 192.168.201.1:139 0.0.0.0:* LISTEN 2092/smbd
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 32138/asterisk
tcp 0 0 192.168.201.1:80 0.0.0.0:* LISTEN 7781/nginx
tcp 0 0 192.168.201.1:53 0.0.0.0:* LISTEN 30868/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 30868/named
tcp 0 0 192.168.201.1:22 0.0.0.0:* LISTEN 2023/sshd
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 1919/perl
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 30868/named
tcp 0 0 192.168.201.1:445 0.0.0.0:* LISTEN 2092/smbd
tcp 0 224 192.168.201.1:22 192.168.201.12:56820 ESTABLISHED 16523/sshd: rui [pr
Agora, normalmente o NMAP envia um SYN para a porta que está sendo varrida e, de acordo com o protocolo TCP, se um daemon / serviço estiver ligado à porta, ele responderá com um SYN + ACK e o nmap mostrará como aberto.
Negociação de conexão TCP / IP: handshake de 3 vias
To establish a connection, TCP uses a three-way handshake. Before a client attempts to connect with a server, the server must first bind to and listen at a port to open it up for connections: this is called a passive open. Once the passive open is established, a client may initiate an active open. To establish a connection, the three-way (or 3-step) handshake occurs:
SYN: The active open is performed by the client sending a SYN to the server. The client sets the segment's sequence number to a random value A. SYN-ACK: In response, the server replies with a SYN-ACK.
Noentanto,seumserviçonãoestiversendoexecutado,oTCP/IPdefinequeokernelenviaráumamensagemICMPdevoltacomumamensagem"Porta inacessível" para serviços UDP e mensagens TCP RST para serviços TCP.
Destination unreachable is generated by the host or its inbound gateway[3] to inform the client that the destination is unreachable for some reason. A Destination Unreachable message may be generated as a result of a TCP, UDP or another ICMP transmission. Unreachable TCP ports notably respond with TCP RST rather than a Destination Unreachable type 3 as might be expected.
Então, de fato, a sua varredura UDP para a porta 80 / UDP simplesmente recebe uma mensagem de ICMP inacessível porque não há um serviço ouvindo essa combinação ou protocolo / porta.
Quanto a considerações de segurança, essas mensagens inacessíveis de destino do ICMP podem certamente ser bloqueadas, se você definir regras de firewall / iptables que DROP todas as mensagens por padrão e permitir apenas as portas que sua máquina exibe para o exterior. Dessa forma, o nmap verifica todas as portas abertas, especialmente em uma rede, será mais lento e os servidores usarão menos recursos.
Como uma vantagem adicional, se um daemon / serviço abrir portas adicionais ou um novo serviço for incluído por engano, ele não servirá solicitações até que seja expressamente permitido pelas novas regras de firewall.
Por favor, note que, se em vez de usar DROP no iptables, você usar regras REJECT, o kernel não irá ignorar as tentativas de negociação de varredura / TCP / IP e responderá com mensagens ICMP de Destination inacessível, código 13: " Comunicação administrativamente proibida (filtragem administrativa impede que o pacote seja encaminhado) ".
Bloquear todas as portas, exceto SSH / HTTP em ipchains e iptables