Download - Administração de Redes Linux - III
Pósgradaduação em redes de computadores
Administração de redes Unix/Linux
Marcelo Barros de [email protected]
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
Pósgradaduação em redes de computadores
Fundamentos de TCP/IP
Protocolos do TCP/IP
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
Organização dos protocolos TCP/IP
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
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
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)
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
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 diaadia 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
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
Hosts em redes locais diferentes
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
Gateway default e roteadores necessários
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)
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
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 ?
Protocolo ARP
Mensagem Arp Replay enviada como resposta, caso o “dono” do IP seja encontrado
Eu respondo !
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 subredes locais, o default gateway é usado, se estiver configurado
O MAC precisa ser único dentro da rede física
Vendo a tabela arp: arp a
Quadro ethernet (RFC 894)
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
É o mais comum e todos devem poder receber e enviar
Quadro IEEE802 (RFC 1042)
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
Menos comum e todos devem pelo menos ser capazes de receber
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 subredes: 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
IP Addressing
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
Classes de endereçamento
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
IP Header
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
IP Header
The current protocol version is 4, so IP is sometimes called IPv4.
The header length is the number of 32bit words in the header, including any options. Since this is a 4bit field, it limits the header to 60 bytes.
The typeofservice field (TOS) is composed of a 3bit 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
IP Header
The total length field is the total length of the IP datagram in bytes. Since this is a 16bit 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 timetolive 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
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 32bit values addresses used in IPv4.
The final field, the options, is a variablelength 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
TCP Header
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
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 32bit words. This is required because the length of the options field is variable. With a 4bit field, TCP is limited to a 60byte header.
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
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
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 16bit 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
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.
TCP Connection Establishment
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
A criação de uma conexão TCP envolve 3 passos
TCP Connection Termination
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
A finalização da conexão TCP envolve quatros passos
TCP State Transition Diagram
Fonte: TCP/IP Illustrated Volume 1, Richard Stevens
UDP Header
Cabeçalho mais simples já que o UDP não precisa garantir a entrega nem tem controle de fluxo
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
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)
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 34113418, RFC 2576 Forte segurança (criptografia)
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
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
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
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
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') readonly readwrite trap
SNMP v3 prevê formas mais securas de autenticação e criptografia
Pósgradaduação em redes de computadores
Analisadores de rede
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/
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/
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] & (tcpsyn|tcpfin) != 0"
tcpflow
Permite salvar os fluxos de comunicação TCP em arquivos independentes, com seguinte notação:
a.b.c.d.porta1x.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>
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
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.
IPTraf
Excelente monitor de conexões para terminal
Permite identificar problemas e taxas facilmente
http://iptraf.seul.org/
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://exparrot.com/~pdw/iftop/
kismet
Ferramenta de terminal para análise de tráfego de rede wireless
http://www.kismetwireless.net/
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/
nmap
Verifica toda uma subrede, 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
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
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
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 –setadminpassword Reinicie o serviço:
sudo ntop u ntop d O ntop estará disponível na porta 3000:
http://localhost:3000
Pausa para o exercício
Instale e use o ntop
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/
Instalando o Cacti no Ubuntu
Instale o pacote mysqlserver e defina uma senha para o administrador do banco de dados. Instale também o snmpd:
aptget install mysqlserver 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'
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):
aptget install cacti
Em caso de erro, reconfigure o pacote com: dpkgreconfigure 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.
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/howtomonitoryourserverswithsnmpandcacti
Screenshots do Cacti
Screenshots do Cacti
Pausa para o exercício
Instale e use o cacti, criando devices novos baseados em SNMP
66
Dúvidas, comentários, sugestões ?
Imagem: cena do filme Madagascar, da DreamWorks
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/bysa/2.0/legalcode
© Copyright 2008Marcelo Barros
[email protected]ções, sugestões e
traduções são bem vindas!