• Nenhum resultado encontrado

Verificação da configuração das interfaces

q

Comando ifconfig:

Observar todas as informações: 1 Erros ou pacotes descartados. 1 Flags (UP, PROMISC etc.).

Ca pí tu lo 4 - V er ifi ca nd o a c on fig ur aç ão d a r ed e

Os comandos ifconfig e ip mostram as configurações da interface. Algumas informações sobre a interface podem ser observadas ao se utilizar o comando ifconfig: 

# ifconfig

eth0 Encapsulamento do Link: Ethernet Endereço de HW 00:0C:29:95:B4:B7

inet end.: 10.211.8.2 Bcast:10.211.255.255 Masc:255.255.0.0 endereço inet6: fe80::20c:29ff:fe95:b4b7/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1

RX packets:1021 errors:0 dropped:0 overruns:0 frame:0 TX packets:890 errors:0 dropped:0 overruns:0 carrier:0 colisões:0 txqueuelen:1000

RX bytes:98100 (95.8 KiB) TX bytes:96686 (94.4 KiB) IRQ:185 Endereço de E/S:0x1080

lo Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0

endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACKRUNNING MTU:16436 Métrica:1

RX packets:66 errors:0 dropped:0 overruns:0 frame:0 TX packets:66 errors:0 dropped:0 overruns:0 carrier:0 colisões:0 txqueuelen:0

RX bytes:5104 (4.9 KiB) TX bytes:5104 (4.9 KiB)

As estatísticas de utilização também podem ser úteis ao administrador, para avaliar o uso do dispositivo e como esse uso afeta o resto da rede. Taxas de erros altas, por exemplo, podem indicar algum problema com o adaptador ou com o cabeamento. 

Os parâmetros errors e dropped devem ser observados, pois podem indicar algum problema no cabeamento, switch/hub ou configuração de velocidade da interface. As flags também indicam o estado do dispositivo. Lista de flags: 

1 UP: dispositivo está funcionando;

1 BROADCAST: dispositivo pode enviar tráfego para todos os hosts localizados na mesma rede; 

1 RUNNING: dispositivo está operacional; 

1 MULTICAST: dispositivo pode atuar e receber pacotes multicast; 

1 ALLMULTI: dispositivo pode receber todos os pacotes multicast presentes na rede em que ele se encontra;

Ad m in is tr aç ão d e S is te m as L in ux : R ed es e S eg ur an ça

Sniffers

q

BSD Packet Filter (BPF):

1 Facilidade para capturar pacotes em espaço de usuário, permitindo o uso de estações de trabalho para monitoramento da rede de forma eficiente.

libpcap:

1 Interface independente de sistema para capturar pacotes em user-level que suporta mecanismos de filtragem baseados em BPF.

1 tcpdump e Ethereal são os principais sniffers que a suportam.

Sniffers são softwares que capturam o tráfego de rede, extremamente úteis para que o administrador possa depurar problemas e analisar o tráfego.

Quando um quadro é enviado por um determinado host em uma rede Ethernet, ele pode ser capturado por outros hosts, mesmo que esses hosts não sejam o destino desse quadro. Basta configurar a interface de rede no modo promíscuo, que ela processará não apenas os quadros enviados para o endereço físico da interface, mas também qualquer outro quadro no barramento. Para que seja possível capturar pacotes, eles devem atravessar o mesmo meio físico em que o host está conectado. Em geral, a forma mais simples de se fazer isso é através da utilização de um hub.

Antes de falarmos dos principais sniffers, iremos verificar uma funcionalidade disponível no kernel dos principais Sistemas Operacionais: o Berkeley Packet Filter (BPF).

BPF

O BPF é uma facilidade para capturar pacotes em espaço de usuário (user-level), permi- tindo o uso de estações de trabalho para monitoramento da rede de forma eficiente. Como monitores de rede rodam no espaço de processos user-level, os pacotes devem ser copiados para um limite permitido, para que possam ser manipulados pelos monitores. Essa cópia é feita por um agente do kernel chamado packet filter. O BPF permite que essa cópia seja feita de forma muito eficiente, já que não funciona sobre a pilha de protocolos TCP/IP como os antigos packet filters, mas sim baseado num novo registro e com um bom sistema de área de armazenamento (buffer) que permite que seja muitas vezes mais rápido.

libpcap

Interface independente de sistema para capturar pacotes em user-level, que suporta meca- nismos de filtragem baseados em BPF. A seguir, veremos os principais sniffers que suportam a libpcap, como o tcpdump e o Wireshark.

tcpdump

q

Imprimir todos os pacotes na interface eth1 sem resolução de nomes de hosts e portas: # tcpdump -n -i eth1

Imprimir todo o tráfego entre a rede local e a rede 192.168.0.0/24 # tcpdump dst net 192.168.0.0/24

Ethernet

Protocolo de interco- nexão para redes locais – Rede de Área Local (LAN) – baseado no envio de pacotes.

Ca pí tu lo 4 - V er ifi ca nd o a c on fig ur aç ão d a r ed e

Poderosa ferramenta de monitoramento e sniffer de rede, que suporta muitos protocolos como Ipv4; ICMPv4; IPv6; ICMPv6; UDP; TCP; BGP; OSPF; SNMP; AFS; RIP; PIM; DVMRP; IGMP; SMB; NFS; entre outros tipos. O tcpdump imprime o cabeçalho de pacotes que casam com uma expressão (filtros BPF) booleana. Exemplos de utilização do tcpdump. 

Para imprimir todos os pacotes da interface eth1, sem resolução de nomes de hosts e portas: # tcpdump -n -i eth1

Para imprimir tráfego do host diablo: # tcpdump host diablo

Para imprimir todos os pacotes IPs entre o host maverick e qualquer host, exceto a galaxie: # tcpdump ip host maverick and not galaxie

Para imprimir todo o tráfego entre a rede local e a rede 10.0.0.0/24: # tcpdump dst net 10.0.0.0/24

Para imprimir todos os pacotes ICMP que não são echo request ou reply:

# tcpdump ‘icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp- echoreply’

Ethereal (Wireshark)

O Wireshark antigo (Ethereal) é um analisador de tráfego de rede (sniffer), que possui uma interface GUI e captura pacotes no formato libpcap. O Ethereal mostra três janelas de visua- lização de um pacote:

1 Uma janela contendo uma lista de pacotes capturados (1); 1 Uma janela com detalhes de um pacote selecionado (2);

1 Uma janela que mostra o conteúdo do pacote selecionado no formato hexadecimal e ASCII (3). A figura a seguir mostra a interface do Ethereal para configurar a captura de pacotes. Filtros BPF podem ser criados e salvos para uso futuro.

Figura 4.1

Wireshark: interface com três janelas.

Ad m in is tr aç ão d e S is te m as L in ux : R ed es e S eg ur an ça

Verificação de serviços

q

Processo associado ao daemon. Sockets:

1 Utilizados na implementação de um serviço para que um processo tenha acesso à pilha de protocolos de rede que são implementados no kernel do Sistema Operacional. Alguns comandos são úteis para a verificação de serviços, como, por exemplo, o netstat, o

lsof e o nmap. Antes de verificar o estado de um serviço, é necessário verificar se o processo

que oferece o serviço está ou não sendo executado. Para isso, basta utilizar o comando ps e procurar pelo processo em questão.

O exemplo a seguir utiliza o comando ps para listar processos e o comando grep para sele- cionar as linhas que contêm a string named, que é nome de um daemon.

# ps xuaw | grep named

root 2336 0.0 1.3 2864 1320 ? Ss 12:42 0:00 /usr/sbin/named root 2981 0.0 0.7 3096 672 pts/0 R+ 13:01 0:00 grep named A interface de socket do Linux é baseada na interface criada pelo sistema BSD, e, por isso mesmo, também é conhecida como BSD socket.

As opções xuaw do comando ps especificam que todos os processos de todos os usuários devem ser listados no formato wide.

Sockets

q

TCP: 1 Família: 2 PF_INET ou PF_INET6. 1 Socket: 2 SOCK_STREAM. UDP: 1 Família: 2 PF_INET ou PF_INET6. 1 Socket: 2 SOCK_DGRAM.

Para saber mais detalhes dos serviços, é necessário ter noção de como eles são implemen- tados em sistemas Unix ou Linux.

Os protocolos de rede como o IP, o TCP e o UDP são implementados diretamente no kernel do Linux. Para que uma aplicação possa se comunicar utilizando esses protocolos, é neces- sário utilizar uma Aplication Programing Interface (API), que no Linux é chamada de socket. Nos sistemas Unix ou Linux, quando uma aplicação precisa se comunicar com outra (na mesma máquina ou em uma máquina remota), ela utiliza um socket. Nos sistemas Unix ou Linux, um socket é tratado de maneira bastante similar a um arquivo, aceitando chamadas de sistema como read e write (ler e escrever), abstraindo para o programador detalhes dos protocolos de comunicação. Sockets entendem diversas famílias de protocolos e podem ser divididos em vários tipos:

Para mais detalhes, consulte a página de manual do comando ps (man ps).

Ca pí tu lo 4 - V er ifi ca nd o a c on fig ur aç ão d a r ed e Família Descrição

PF_INET Protocolo Internet IPv4.

PF_INET6 Protocolos Internet IPv6.

PF_IPX Protocolos Novell.

PF_PACKET Protocolos no nível 2.

Socket Descrição

SOCK_STREAM Utiliza o protocolo TCP.

SOCK_DGRAM Utiliza o protocolo UDP.

Para verificar um serviço, é importante ter noção de como ele foi implementado. Ou seja, se foram utilizados a família PF_INET e o socket do tipo SOCK_STREAM, é possível deduzir que esse é um serviço sobre IPv4 que utiliza TCP. Se o serviço foi implementado utilizando PF_INET6 e SOCK_DGRAM, sabemos que é um serviço sobre IPv6 que usa o protocolo de transporte UDP.