67
Pós-gradaduação em redes de computadores Administração de redes Unix/Linux Marcelo Barros de Almeida [email protected]

Administração de Redes Linux - III

Embed Size (px)

DESCRIPTION

Curso sobre administração de redes usando Linux - Parte III

Citation preview

Page 1: Administração de Redes Linux - III

Pós­gradaduação em redes de computadores

Administração de redes Unix/Linux

Marcelo Barros de [email protected]

Page 2: Administração de Redes Linux - III

Aula 03: Sumário

Fundamentos de TCP/IP Organização dos protocolos TCP/IP Encapsulamento e Multiplexação TCP/IP Protocolo ARP Header Ethernet, IP e TCP/UDP ICMP e SNMP

Wireshark, tcpdump e tcpflow

IPTraf, iftop, kismet e nmap

ntop e cacti

Page 3: Administração de Redes Linux - III

Pós­gradaduação em redes de computadores

Fundamentos de TCP/IP

Page 4: Administração de Redes Linux - III

Protocolos do TCP/IP 

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Organização dos protocolos TCP/IP

Page 5: Administração de Redes Linux - III

Encapsulamento do TCP/IP

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Pelo menos 58 bytes de overhead, sendo que o frame mínimo é de 64 bytes

Page 6: Administração de Redes Linux - III

Multiplexação no TCP/IP

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

E existência de tipo na ethernet e no IP permitiram que protocolos como SCTP (transporte) e IPv6 pudessem ser agregados normalmente

Page 7: Administração de Redes Linux - III

Multiplexação no TCP/IP

...Camada de aplicação

Camada de transporteTCP ou UDP

Aplicações

Multiplexação

Portas

Camada de rede IP

Uma aplicação é identificada unicamente num computador através de três informações:

o endereço IP da máquina

a sua porta

o protocolo de transporte utilizado (TCP/UDP)

Desta forma, é possível possuir uma mesma máquina provendo vários serviços de rede (multiplexação)

Page 8: Administração de Redes Linux - III

Multiplexação no TCP/IP

Cada processo deve ter um número de porta, um IP e um protocolo de transporte (TCP/UDP) para identificá­lo

A notação é IP:Porta, por exemplo, 200.210.10.20:80

Aplicação

Transporte

Cliente

Rede

TCP ou UDP

Porta

IP

EnlaceFísica

TCP ou UDP

Porta

IP

Servidor

Page 9: Administração de Redes Linux - III

Multiplexação no TCP/IP

Porta: um inteiro de 16 bits

O IANA (Internet Assigned Numbers Authority) mantém uma lista de números de portas

De 0 a 1023: Portas conhecidas, reservadas para vários protocolos do dia­a­dia pelo IANA

De 1024 a 49151: Portas registradas, não controladas pelo IANA, mas listadas como conveniência

De 49152 a 65535: Portas efêmeras, não controladas pelo IANA (¼ do total)

Servidores: portas conhecidas

Clientes: portas efêmeras

Page 10: Administração de Redes Linux - III

Hosts na mesma rede local

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Não é necessário gateway default ou roteadores, tudo se resolve somente com o ARP

Page 11: Administração de Redes Linux - III

Hosts em redes locais diferentes

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Gateway default e roteadores necessários

Page 12: Administração de Redes Linux - III

Endereçamento físico x endereçamento lógico

Estação 1 Roteador Estação 2

Rede Física A Rede Física B

Endereços MAC (Enlace)

Endereços IP (Rede)

Page 13: Administração de Redes Linux - III

Protocolo ARP

IP 1MAC 1

IP 2MAC 2

A rede física só conhece MACs

Através do ARP ela determina o endereço MAC do IP de destino para que o envio do pacote seja realizado

Page 14: Administração de Redes Linux - III

Protocolo ARP

Mensagem Arp Request enviada para todos os nós da rede (broadcast), procurando pelo “dono” do IP

Quem responde pelo IP a.b.c.d ?

Page 15: Administração de Redes Linux - III

Protocolo ARP

Mensagem Arp Replay enviada como resposta, caso o “dono” do IP seja encontrado

Eu respondo !

Page 16: Administração de Redes Linux - III

Protocolo ARP

A resposta positiva permite que os campos do endereçamento do enlace sejam preenchidos

O resultado é mantido em tabela por um tempo

Para endereços fora das sub­redes locais, o default gateway é usado, se estiver configurado

O MAC precisa ser único dentro da rede física

Vendo a tabela arp: arp ­a

Page 17: Administração de Redes Linux - III

Quadro ethernet (RFC 894)

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

É o mais comum e todos devem poder receber e enviar

Page 18: Administração de Redes Linux - III

Quadro IEEE802 (RFC 1042)

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Menos comum e todos devem pelo menos ser capazes de receber

Page 19: Administração de Redes Linux - III

Ethernet

Broadcast limitado:  IP: 255.255.255.255 MAC DST: FF:FF:FF:FF:FF:FF Nunca é repassado por um roteador, sendo confinado na LAN

Broadcast direcionados a redes ou sub­redes: Ex: 10.255.255.255, 192.168.255.255 Pode ser repassado pelo roteador

MTU: Maximum Transmission Unit 1500 para frames ethernet 1492 para frames IEEE 802

Page 20: Administração de Redes Linux - III

IP Addressing

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Classes de endereçamento

Page 21: Administração de Redes Linux - III

Multicast e MAC Address

Multicasts: MACs de 01:00:5e:00:00:00 a 01:00:5e:7f:ff:ff

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 22: Administração de Redes Linux - III

IP Header

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 23: Administração de Redes Linux - III

IP Header

The current protocol version is 4, so IP is sometimes called IPv4.

The header length is the number of 32­bit words in the header, including any options. Since this is a 4­bit field, it limits the header to 60 bytes.

The type­of­service field (TOS) is composed of a 3­bit precedence field (which is ignored today), 4 TOS bits, and an unused bit that must be 0. The 4 TOS bits are: minimize delay, maximize throughput, maximize reliability, and minimize monetary cost. Only 1 of these 4 bits can be turned on. If all 4 bits are 0 it implies normal service. 

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 24: Administração de Redes Linux - III

IP Header

The total length field is the total length of the IP datagram in bytes. Since this is a 16­bit field, the maximum size of an IP datagram is 65535 bytes

The identification field uniquely identifies each datagram sent by a host. It normally increments by one each time a datagram is sent. 

Flags field and the fragmentation offset field are related to frame fragmentation. 

The time­to­live field (TTL) sets an upper limit on the number of routers through which a datagram can pass. It is initialized by the sender (often 32 or 64) and decremented by one by every router that handles the datagram.

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 25: Administração de Redes Linux - III

IP Header

The protocol field identifies which protocol gave the data for IP to send and it is used by IP to demultiplex incoming datagrams.

Header checksum (calculated over the IP header only).

Every IP datagram contains the source IP address and the destination IP address. These are 32­bit values addresses used in IPv4.

The final field, the options, is a variable­length list of optional information for the datagram, like timestamp, record route, and so on. These options are rarely used.

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 26: Administração de Redes Linux - III

TCP Header

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 27: Administração de Redes Linux - III

TCP Header

Each TCP segment contains the source and destination port number to identify the sending and receiving application. These two values, along with the source and destination IP addresses in the IP header, uniquely identify each connection. 

The sequence number identifies the byte in the stream of data from the sending TCP to the receiving TCP that the first byte of data in this segment represents.

The header length gives the length of the header in 32­bit words. This is required because the length of the options field is variable. With a 4­bit field, TCP is limited to a 60­byte header.

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 28: Administração de Redes Linux - III

TCP Header

There are six flag bits in the TCP header. One or more of them can be turned on at the same time. 

URG: The urgent pointer is valid. ACK: The acknowledgment number is valid.  PSH: The receiver should pass this data to the application 

as soon as possible.  RST: Reset the connection.  SYN: Synchronize sequence numbers to initiate a 

connection. FIN: The sender is finished sending data. 

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 29: Administração de Redes Linux - III

TCP Header

TCP's flow control is provided by each end advertising a window size. This is the number of bytes, starting with the one specified by the acknowledgment number field, that the receiver is willing to accept. This is a 16­bit field, limiting the window to 65535 bytes.

The checksum covers the TCP segment: the TCP header and the TCP data. This is a mandatory field that must be calculated and stored by the sender, and then verified by the receiver.

The urgent pointer is valid only if the URG flag is set. This pointer is a positive offset that must be added to the sequence number field of the segment to yield the sequence number of the last byte of urgent data.

The most common option field is the maximum segment size option, called the MSS.

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 30: Administração de Redes Linux - III

Controle de congestionamento e controle de fluxo

A janela de transmissão é um mecanismo que implementa o controle de fluxo entre transmissor e receptor. Basicamente, a janela muda de tamanho proporcionalmente à capacidade de recepção.

RTT (Round Trip Time): tempo de viagem do pacote, sendo medido quando o reconhecimento para um determinado segmento chega. Muito importante no cálculo do tempo de retransmissão (RTO ­ Retransmission Timeout)

O RTO ajuda a contornar situações de congestionamento na rede.

Page 31: Administração de Redes Linux - III

TCP Connection Establishment

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

A criação de uma conexão TCP envolve 3 passos

Page 32: Administração de Redes Linux - III

TCP Connection Termination

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

A finalização da conexão TCP envolve quatros passos

Page 33: Administração de Redes Linux - III

 TCP State Transition Diagram

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 34: Administração de Redes Linux - III

UDP Header

Cabeçalho mais simples já que o UDP não precisa garantir a entrega nem tem controle de fluxo

Page 35: Administração de Redes Linux - III

ICMP (Internet Control Message Protocol)

O ICMP ajuda no diagnóstico da rede através de várias mensagens de erro

Alguns tipos:

0: echo reply (usada no ping) 3: destination unreacheable 5: redirect 8: echo request 11: time exceed 13: time stamp request 14: time stamp reply

Fonte: TCP/IP Illustrated Volume 1, Richard Stevens

Page 36: Administração de Redes Linux - III

Origem do SNMP

SNMP:  Simple Network Management Protocol Conjunto de operações simples que permite o gerenciamento de 

dispositivos IP

Criado em 1988 pelo IETF: Necessidade de gerenciamento e monitorização Necessidade de diagnóstico

Inicialmente voltado para roteadores mas difundido rapidamente (computadores, fontes, impressoras, racks, etc)

Page 37: Administração de Redes Linux - III

Versões do SNMP

SNMPv1 (1988):  RFC 1157 Pouco segura mas ainda usada

SNMPv2 (1993): RFC 3416, RFC 3417, RFC 3418 Melhoria na segurança, novos tipos de dados, desempenho, 

operações adicionais

SNMPv3 (1999): RFC 3411­3418, RFC 2576 Forte segurança (criptografia)

Page 38: Administração de Redes Linux - III

Organização da Informação em MIBs

MIB (Management Information Base Especifica quais variáveis 

(objetos) o elemento de rede mantém, é a base de dados de informação do dispositivo

Representada em forma de árvore

É padronizada, mas pode ser personalizada em determinadas áreas (private)

MIB II: RFC 1213

Page 39: Administração de Redes Linux - III

Organização da Informação: OIDs

OID (Object Identifiers) São representados numericamente ou 

de forma textual:

iso.org.dod.internet.private

1.3.6.1.4

iso.org.dod.internet.mgmt.mib

1.3.6.1.2.1

iso.org.dod.internet.private.enterprises

1.3.6.1.4.1

Page 40: Administração de Redes Linux - III

Funcionamento do SNMP

Ações básicas de pergunta/resposta

Ações de notificação pré­configuradas (traps)

UDP port 162

UDP port 161

SNMP Manager SNMP Agent

Requests (set/get)

Responses

Traps

Page 41: Administração de Redes Linux - III

Funcionamento do SNMP

Operações encontrados no SNMPv1: get / get next request ↔  get response: lê valores

set request ↔  set response: configura valores

trap: alarmes assíncronos do agente

Operações encontradas no SNMPv2 e v3 getbulk: como o get, mas respeita limites do agente

notification: uma espécie de trap padronizado

inform: confirmações para trap/notification

report: não implementado

Page 42: Administração de Redes Linux - III

Funcionamento do SNMP

Especifica formas de autenticação entre agentes e gerentes

Significam 'plain passwords' para v1 e v2

Comunidades no SNMPv1 e v2 (precisam de definição de 'passwords') read­only read­write trap

SNMP v3 prevê formas mais securas de autenticação e criptografia

Page 43: Administração de Redes Linux - III

Pós­gradaduação em redes de computadores

Analisadores de rede

Page 44: Administração de Redes Linux - III

Wireshark: Go deep

Analisador de rede multiplataforma

Suporta centenas de protocolos

Análises offline e online

Filtros poderosos e inspeção detalhada

Análise gráfica

Ferramenta essencial para qualquer administrador e que requer um bom conhecimento de TCP/IP

http://www.wireshark.org/

Page 45: Administração de Redes Linux - III

tcpdump

Permite realizar capturas no terminal aplicando filtros personalizados, salvando em arquivos .cap

Também pode ler arquivos .cap e analisar segundo filtros especificados

Apesar da sintaxe complexa dos filtros, é uma ferramenta bastante poderosa

http://www.tcpdump.org/

Page 46: Administração de Redes Linux - III

tcpdump

Capturando o tráfego relacionado à porta TCP 6881 e salvando no arquivo teste.pcap

tcpdump ­w test.pcap ­i eth1 tcp port 6881

Capturando tráfego relacionado à porta TCP 6881 e UDP 33210 ou 33220

tcpdump ­w test.pcap ­i eth1 tcp port 6881 or udp \( 33210 or 33220 \)

Especificando um host de destino e SSH:

tcpdump ­w test.pcap dst 10.168.28.22 and tcp port 22

Salvando agora todo o pacote e não somente os primeiros 68 bytes

tcpdump ­w test.pcap ­s 0 dst 10.168.28.22 and tcp port 22

Procurando por IPs de destino no format 10.x.y.100 (x e y não importam):

tcpdump "ip[16] = 10 and ip[19] = 100"

Exemplo onde apenas pacotes de início e fim de conexão são apresentados:

tcpdump ­i eth0 "tcp[tcpflags] & (tcp­syn|tcp­fin) != 0"

Page 47: Administração de Redes Linux - III

tcpflow

Permite salvar os fluxos de comunicação TCP em arquivos independentes, com seguinte notação:

a.b.c.d.porta1­x.y.z.w.porta2

Excelente para recuperação de conteúdo

Não trata fragmentação na camada IP

Suporte ao formato .cap

O wireshark possui função similar, mas o tcpflow roda no terminal e opera sobre toda a captura de uma só vez

http://www.circlemud.org/~jelson/software/tcpflow/ tcpflow ­r <arquivo.cap>

Page 48: Administração de Redes Linux - III

Pausa para o exercício

Com o Wireshark, capture um tráfego (crie conexões TCP, faça downloads), salve e depois explore:

o encapsulamento dos protocolos

a resolução de nomes

a multiplexação no TCP/IP

o processo de abertura e fechamento de conexão

o funcionamento do ARP (limpe o cache antes) e o repasse para o default gateway

os pares IP:Porta que identificam a conexão

os gráficos de uso de banda, fluxo e estatísticas de rede gerados pelo Wireshark

as opções de seguir conexões do wireshark

Realize uma captura com o tcpdump, salve em arquivo e depois o arquivo no Wireshark

Page 49: Administração de Redes Linux - III

Pausa para o exercício

Experimente usar o tcpflow no arquivo de captura salvo no exercício anterior. 

Tente identicar ou mesmo separar o conteúdo dos vários fluxos.

Page 50: Administração de Redes Linux - III

IPTraf

Excelente monitor de conexões para terminal

Permite identificar problemas e taxas facilmente

http://iptraf.seul.org/

Page 51: Administração de Redes Linux - III

iftop

Similar ao top, mas como foco em tráfego de rede

Interessante para análise rápida do uso da rede e conexões

http://ex­parrot.com/~pdw/iftop/

Page 52: Administração de Redes Linux - III

kismet

Ferramenta de terminal para análise de tráfego de rede wireless

http://www.kismetwireless.net/

Page 53: Administração de Redes Linux - III

nmap

Ferramenta multiplataforma para análise e exploração de rede, bastante útil na avaliação da segurança.

Permite avaliar vários hosts em uma rede de forma rápida e concisa.

Pode ter interface gráfica através do zenmap.

http://nmap.org/

Page 54: Administração de Redes Linux - III

nmap

Verifica toda uma sub­rede, detectando portas TCP abertas e o sistema  operacional usando o flag SYN do TCP

nmap ­sS ­O 10.0.0.0/24

Similar, mas verificando portas UDP

nmap ­sU ­O 10.0.0.0/24

Assume que o host está online (PN) e usa 4ms de tempo entre frames

nmap ­sS ­PN ­O ­T4   10.0.0.10 

Page 55: Administração de Redes Linux - III

Pausa para o exercício

Instale e use o iptraf e o iftop

Use o nmap para levantar serviços disponíveis em outros hosts na rede

Caso esteja rodando nativamente e não em VM, experimente usar o kismet. Não deixe de configurar no arquivo /etc/kismet/kismet.conf a sua placa de rede sem fio e o driver, na linha indicada por ”source”. Por exemplo, para uma placa IPW2200:

source=ipw2200,eth0,WiFi

Page 56: Administração de Redes Linux - III

ntop

Permite acessar estatísticas completas do tráfego de rede através de uma interface web e excelentes gráficos

http://www.ntop.org/

Top Tools:topntopatopiftophtopapachetopmtop

Page 57: Administração de Redes Linux - III

ntop

Instruções no Ubuntu: Instale o pacote ntop e suas dependências Configure a senha do administrador (usuário admin) do ntop:

sudo ntop –set­admin­password Re­inicie o serviço:

sudo ntop ­u ntop ­d O ntop estará disponível na porta 3000:

http://localhost:3000

Page 58: Administração de Redes Linux - III

Pausa para o exercício

Instale e use o ntop

Page 59: Administração de Redes Linux - III

Cacti

Similar ao ntop, mas usando uma base de dados em banco MySQL e interfaces para SNMP.

É uma opção mais fácil de configurar do que o MRTG, bastante flexível e capaz de integrar o gerenciamento de vários ativos como hosts, switches, roteadores, impressoras, etc.

Suporte a personalização e outros sistemas operacionais

http://www.cacti.net/

Page 60: Administração de Redes Linux - III

Instalando o Cacti no Ubuntu

Instale o pacote mysql­server e defina uma senha para o administrador do banco de dados. Instale também o snmpd:

apt­get install mysql­server snmpd Em /etc/snmp/snmpd.conf, libere o acesso ao snmp através da 

comunidade ”public”. Use outro nome, caso prefira.

com2sec readonly  default    public Garanta que o snmpd está funcionando:

 snmpwalk ­Os ­c public ­v 1 localhost system Verfique os parâmetros de partida do snmpd em /etc/default/snmpd. 

Remova o IP ao final para disponibilizar o SNMP server em outras interfaces também.

SNMPDRUN=yes SNMPDOPTS='­Lsd ­Lf /dev/null ­u snmp ­I ­smux ­p /var/run/snmpd.pid 127.0.0.1'

Page 61: Administração de Redes Linux - III

Instalando o Cacti no Ubuntu

Instale o pacote cacti e suas dependências (várias, mas apache, php, snmp e mysql são as principais). Siga os diálogos de configuração (escolha apache2 como servidor web):

apt­get install cacti

Em caso de erro, reconfigure o pacote com: dpkg­reconfigure cacti

Aponte para http://localhost/cacti/install/ e prossiga a instalação. Ao final, logue com usr/pwd como admin/admin.

Existem atualmente alguns problemas no uso via Firefox 3, fique atento.

Page 62: Administração de Redes Linux - III

Instalando o Cacti no Ubuntu

Basicamente será necessário criar novos hosts SNMP (devices), atribuir gráficos a eles e organizar estes gráficos em trees.

Entre na aba de ”Console”, entre em ”create devices” Escolha ”ucd/net SNMP host” como tipo e adicione o device, 

configurando o SNMP corretamente (versão 1 e ”public” como comunidade)

Adicione gráficos para este host Adicione depois o host num ”Graph tree” e veja o resultado na 

aba de gráficos

Uma boa referência é: http://www.debuntu.org/how­to­monitor­your­servers­with­snmp­and­cacti

Page 63: Administração de Redes Linux - III

Screenshots do Cacti

Page 64: Administração de Redes Linux - III

Screenshots do Cacti

Page 65: Administração de Redes Linux - III

Pausa para o exercício

Instale e use o cacti, criando devices novos baseados em SNMP

Page 66: Administração de Redes Linux - III

66

Dúvidas, comentários, sugestões ?

Imagem: cena do filme Madagascar, da DreamWorks

Page 67: Administração de Redes Linux - III

67

Direitos de cópia

Créditos ­ ShareAlike 2.0Você é livre para

copiar, distribuir, apresentar e executar trabalhosfazer trabalhos derivadosfazer uso comercial deste trabalho

Sob as seguintes condiçõesCréditos. Você deve dar crédito ao autor original.Compartilhe do mesmo modo. Se você alterar, mudar, ou realizar trabalhos usando este como base,você deve redistribuir o trabalhos resultante sob uma licença idêntica a esta.

Para qualquer reuso ou distribuição você deve deixar claro os termos de licença deste trabalho.Qualquer  uma destas condições podem ser abandonadas se você obtiver uma permissão do detentor dos direitos autorais.

Faça uso justo e o direitos dos outros não serão afetados de forma alguma pelas restrições acima.

Texto da licença: http://creativecommons.org/licenses/by­sa/2.0/legalcode

© Copyright 2008Marcelo Barros

[email protected]ções, sugestões e 

traduções são bem vindas!