Existem muitas ferramentas e maneiras diferentes de fazer isso. muitos utilitários como: wireshark
, netstat
, nmap
, iptraf
, ss
ou mesmo lsof
. diferentes firewalls, ferramentas de auditoria e monitoramento podem ajudá-lo a alcançar esse objetivo.
Basicamente, depende de você o que você deseja alcançar, qual processo ou tipo de tráfego deseja monitorar, etc.
wireshark
Para instalar:
sudo apt-get install wireshark
Em seguida, ele perguntará se você deseja usar o wireshark como um usuário normal, diga sim e adicione-se ao grupo wireshark:
sudo gpasswd -a username wireshark
logout e login, você está pronto para usar o wireshark. basta executá-lo selecione sua interface desejada ex: enp0s3
e clique em start capturing
, você também pode fazer um duplo clique no nome da interface. agora você pode ver todo o tráfego que sai por toda a interface.
Você pode aplicar o filtro para um tipo de tráfego específico.
existem várias maneiras de aplicar filtros, por exemplo, digite: http
pressione Enter. agora você verá todos os tráfegos HTTP. ou ip.src == 1.2.3.4
para especificar a origem ou ip.dst
para o destino. Você também tem acesso ao construtor de expressões, para criar uma expressão complexa para filtrar o tipo de tráfego desejado.
Logging Iptables
Você pode ativar o login no iptables:
sudo iptables -A INPUT -j LOG
sudo iptables -A OUPUT -j LOG
Em seguida, usando diferentes gerenciadores de log, você pode observar o que está acontecendo, lembre-se de que ele criará arquivos de log realmente grandes, porque ele vai registrar tudo!
A melhor solução é registrar somente o tráfego específico com o qual você está preocupado, ex:
sudo iptables -A INPUT -p udp --dport 53 -j LOG
Que registra pacotes de entrada usando o protocolo TCP na porta 53.
netstat
Você pode fazer muito com essa ferramenta, se quiser ver quais portas estão atendendo:
netstat -tulnp
-t
: tcp, -u
: udp, -n
: use número em vez de nomes, -l
: escutando, -p
: para saber qual processo está escutando nessas portas.
Adicione o grep
ao material mágico com o netstat.
sudo netstat -ul | grep 53
ss
ss
é semelhante ao netstat com muitas opções interessantes. se eu quiser listar conexões TCP da minha rede 192.168.1.0/24
to 151.101.1.69
(que é askubuntu IP), com porta de destino 80 ou 443, eu posso rodar:
ss -nt '( dport = :80 or dport = :443 )' src 192.168.1.0/24 dst 151.101.1.69
ou posso ver qual conexão foi feita por python
process:
ss -ap | grep python
nmap
com o nmap eu posso escanear um computador ou rede, escaneando minha própria interface da porta 80 para 800 (para portas abertas):
nmap 192.168.0.1 -p 80-800
Digamos que minha porta 80 esteja aberta, posso usar a opção -sV
para descobrir qual serviço com qual versão está sendo executada nessa porta:
$ nmap 192.168.1.1 -p 80 -sV
PORT STATE SERVICE VERSION
80/tcp open http Apache2