Alfamídia Linux: Administração de Redes em ambiente Linux I
UNIDADE 1 - CONCEITOS BÁSICOS DE REDES... 3 1.1 TCP/IP - O INÍCIO... 3 1.2 ENTENDENDO O IP... 3 1.3 ENTENDENDO O GATEWAY DE REDE... 5 1.4 O SERVIDOR DNS... 6 1.5 ARP E RARP... 6 1.6 CONFIGURANDO IP E MÁSCARA... 6 1.7 CONFIGURANDO O GATEWAY... 8 1.8 CONFIGURAÇÃO DOS DNS SERVERS... 8 1.9 CONFIGURAÇÃO ESTÁTICA DA REDE... 9 1.10 ARQUIVO HOSTS... 9 1.11 COMANDO HOSTNAME... 10 1.12 O ARQUIVO NSSWITCH.CONF... 10 1.13 FERRAMENTAS DE CONSULTA... 10 UNIDADE 2 - SERVIÇOS DE REDE... 12 2.1 COMANDOS DE REDE... 12
Unidade 1 - CONCEITOS BÁSICOS DE REDES Atualmente, praticamente todos temos uma ligação com alguma rede, que seja uma rede em casa, no trabalho, um wi-fi em um ponto comercial ou diretamente a internet. Contudo, para administradores, é altamente importante que aprendamos a entender o que efetivamente é uma rede, e como podemos configura-la. Desta forma, vamos a alguns conceitos importantes sobre redes de computadores, com ênfase no sistema GNU/Linux. 1.1 TCP/IP - O Início O protocolo TCP/IP é um dos protocolos mais difundidos e utilizados para configuração e montagem de redes atualmente. Antigamente, este protocolo era utilizado como um padrão militar para troca de informações. Contudo, hoje ele tornou-se o padrão mundial, utilizado inclusive para a internet. O TCP Transmission Control Protocol, é orientado a conexões, transporta informações por meio de handshaking. Caso algum erro aconteça durante a comunicação ele, automaticamente, reenvia a informação. Esse protocolo garante o envio das mensagens. Podemos citar alguns serviços de rede que utilizam o protocolo TCP como: Smtp, ftp, telnet. Já o Protocolo IP Internet Protocol, descrito pela RFC 791, é responsável por estabelecer o endereçamento e pela definição de datagramas. 1.2 Entendendo o IP Um endereçamento IP é composto por 04 octetos e uma máscara, que irão determinar quantos endereços serão destinados a host e quantos são destinados a rede. Como em qualquer sistema que utilize um protocolo TCP/IP, os sistemas GNU/Linux precisam de um endereço IP para termos acesso a rede. O endereço IP está presente em todas as máquinas, mesmo nas que não tem acesso a rede ou internet. Isso é possível pois em todo GNU/Linux há uma interface de rede lógica, chamada de loopback(lo), que tem o endereço IP 127.0.0.1, e que sempre deve estar configurada. A loopback também atende no endereço 0.0.0.0. A interface loopback existe para que possamos efetuar testes de conectividade, sistemas WEB e quaisquer funções de comunicação com o mundo exterior, sem ter efetivamente, uma conexão com a rede ou internet. 3
A internet é totalmente endereçada através de números IP's, e, ao contrário do que pensamos em alguns momentos, não depende dos servidores DNS. Eles servem apenas para facilitar nosso a internet, permitindo que naveguemos através de nomes e não de números. Desta forma, para conseguirmos entendermos como a internet funciona, precisamos entender como funcionam os números IP. Para efetuarmos a configuração de um endereço IP, temos alguns agentes envolvidos no processo. Um dos principais é a netmask ou máscara de rede, que é formada por um número de 32 bits, que é utilizado para separar redes, e determinar quem serão nosso Host, nossa Rede e nosso Broadcast. Host Endereço disponibilizado para que um dispositivo possa acessar a rede Rede Um endereço de rede, em conjunto com uma netmask delimita qual será o começo e o fim da rede Broadcast Normalmente é o último endereço da rede, utilizado para que uma máquina possa falar com todas as outras. 255.0.0.0 8 Bits 11111111.00000000.00000000.00000000 255.255.0.0 16 Bits 11111111.11111111.00000000.00000000 255.255.255.0 24 Bits 11111111.11111111.11111111.00000000 As subdivisões acima indicam como funcionam as máscaras. Existem três classes de netmask: Classe A: 11111111.00000000.00000000.00000000 Classe B: 11111111.11111111.00000000.00000000 Classe C: 11111111.11111111.11111111.00000000 Ainda compreendendo estes números, temos dois tipos de IP's: IP Público Endereço válido para internet; 4
IP Privado Chamados de endereços inválidos, são utilizados em Lan's ou Wlan's. 10.0.0.0 CLASSE A 172.16.0.0 CLASSE B 192.168.0.0 CLASSE C Outro conceito importante para que possamos melhor entender o papel das classes, é conhecermos a função do NAT Network Address Translation. O NAT é uma técnica que foi desenvolvida devido ao número limitado de endereços IP's, do padrão IPV4, atualmente disponíveis. Com o crescimento da internet, nos deparamos com um problema, que seria o esgotamento dos endereços IP's. Com isso, foi acelerada a criação de uma nova tecnologia, chamada de IPV6, que seria responsável por um número praticamente inesgotável de endereços. Contudo, utilizando-nos das técnicas de NAT, a implantação desta tecnologia foi retardada. Contudo, no atual cenário, voltamos a nos deparar com este problema, e a implantação do IPV6 segue a passos largos. 1.3 Entendendo o Gateway de Rede 5
O gateway, de forma rápida é pratica, é um Host, que conhece outros Hosts, que por sua vez conhecem outros Hosts. O principal papel de um gateway é levar os pacotes TCP/IP para outras redes que os hosts originais não conhecem. Fazendo a translação ou nat entre redes diferentes (com máscaras não semelhantes). 1.4 O Servidor DNS O servidor DNS, que como mencionamos anteriormente, não faz parte da configuração essencial da rede. Pois caso nosso Gateway conheça os hosts de internet, ele poderá encaminhar nosso acesso normalmente. O DNS apenas é um facilitador, para que não tenhamos que conhecer diversos números de hosts. 1.5 ARP e RARP ARP e RARP são dois protocolos de rede. Vamos conhecer um pouco mais sobre os dois: ARP Responsável por converter um endereço IP para o endereço físico da Interface que o possui (MAC Address) RARP Exatamente o contrário do ARP, o RARP converte MAC Address em endereços IP. 01.f Configurando a Rede Para configurarmos a rede em um sistema GNU/Linux, temos, basicamente, três etapas: * Configuração do endereço IP e Netmask; * Configuração do Gateway; * Configuração do DNS; 1.6 Configurando IP e Máscara Para começarmos a configuração de uma interface de rede, iremos utilizarmo-nos do comando #ifconfig. Para descobrirmos todas as interfaces de rede presentes no sistema, utilizamos o comando da seguinte forma: #ifconfig -a 6
root@francovaio:~# ifconfig -a eth0 Link encap:ethernet Endereço de HW 78:84:3c:98:54:79 UP BROADCAST MULTICAST MTU:1500 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:65536 Métrica:1 pacotes RX:2244 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:2244 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:201820 (201.8 KB) TX bytes:201820 (201.8 KB) Para atribuirmos um endereço IP para uma placa de rede, utilizamos a seguinte sintaxe: #ifconfig eth0 192.168.1.63 Desta forma, iremos atribuir a interface eth0 o IP 192.168.1.63. O comando ifconfig automaticamente efetua o cálculo de netmask. Contudo, caso você deseje utilizar uma máscara diferente, você deverá utilizar a seguinte sintaxe: #ifconfig eth0 192.168.1.63 netmask 255.255.254.0 7
Para ativarmos ou desativarmos uma interface de rede, podemos utilizar os seguintes comandos: #ifconfig eth0 up (Habilita a interface) #ifconfig eth0 down (desabilita a interface) Uma alternativa para ativarmos e desativarmos as interfaces são os comandos ifup e ifdown. 1.7 Configurando o Gateway Vamos agora definir o Gateway, para que nossos pacotes saibam para onde devem ir. Para definilo, iremos utilizar o comando route. O comando route permite que configuremos todas as rotas de nosso sistema. Para definir o gateway, utilizamos a seguinte sintaxe: #route add default gw <ip_do_gateway> Desta forma, iremos definir a rota default de saída da rede. Para vermos todas as rotas definidas, usamos o comando route da seguinte forma: #route -n Caso precisemos deletar a rota default, a sintaxe é: #route del default 1.8 Configuração dos DNS Servers Para que não tenhamos que decorar uma infinidade de endereços IP, vamos efetuar a configuração dos nossos DNSs Servers. Por padrão, a configuração de Dns fica salva em um arquivo específico, localizado no diretório /etc, e chamado resolv.conf. Ao editarmos este arquivo, deveremos inserir uma linha como a seguinte: nameserver 8.8.8.8 Desta forma iremos configurar a rede para utilizar o DNS informando. Podemos utilizar alguns outros parâmetros, como um resolvedor de nomes do domínio de sua rede por exemplo, e mais servidores DNS. 8
1.9 Configuração Estática da Rede As configurações que vimos até o momento não são fixas, e caso ocorra um novo boot na máquina, as mesmas serão perdidas. Para evitar este problema, iremos configurar a rede de forma estática. Iremos verificar esta configuração no sistema GNU/Debian. No GNU/Debian, os arquivos de configuração de rede ficam localizados no diretório /etc/network. O arquivo responsável pela configuração é o arquivo interfaces. Uma configuração básica de rede pode ser a seguinte: auto lo iface lo inet loopback #configuração da loopback auto eth0 iface eth0 inet static address 192.168.1.63 netmask 255.255.255.0 broadcast 192.168.1.255 network 192.168.1.0 gateway 192.168.1.3 Caso você esteja utilizando um sistema baseado em Red Hat, os aquivos de configuração de rede estarão localizados no diretório /etc/sysconfig/networking. A sintaxe dos arquivos são um pouco diferentes. Contudo, recomenda-se a utilização do aplicativo netconfig para efetuar a configuração da rede. 1.10 Arquivo Hosts No módulo anterior, vimos que podemos criar apelidos para os comandos do GNU/Linux. Podemos também criar apelidos para os endereços de rede, de forma a facilitar a utilização dos mesmos em nosso sistema. 9
Para isto, iremos utilizar o arquivo hosts, que está localizado no diretório /etc. A sintaxe padrão deste arquivo é: IP APELIDO APELIDO 192.168.1.63 francovaio notefranco 1.11 Comando Hostname Nosso sistema GNU/Linux possui um nome, que é reconhecido pela rede, de acordo com sua configuração. Para efetuarmos alterações neste nome, utilizamos o comando hostname. Sua sintaxe básica é: #hostname NOVONOME Para que a alteração seja feita de forma permanente, utilizamos o arquivo /etc/hostname. Sua sintaxe básica é: FQDN HOSTNAME 1.12 O arquivo nsswitch.conf Para definirmos qual será a ordem de busca por logins válidos no sistema, iremos utilizar o arquivo /etc/nsswitch.conf. Sua sintaxe básica é: passwd: compat group: compat shadow: compat 1.13 Ferramentas de Consulta O comando dig é o acrônimo para Domain Information Groper, que significa algo como aquele que busca por informações de domínio escuro, e ao mesmo tempo, a palavra dig, em inglês, significa literalmente escavar. 10
Sua sintaxe básica é: #dig registro.br Contudo, ele possui diversas opções, que poderão ser verificadas no man do comando. 11
Unidade 2 - SERVIÇOS DE REDE Serviço de rede é o que está disponível para ser acessado pelo usuário. No TCP/IP, cada serviço é associado a um número chamado porta que é onde o servidor espera pelas conexões dos computadores clientes. Uma porta de rede pode se referenciada tanto pelo número como pelo nome do serviço. Abaixo, alguns exemplos de portas padrões usadas em serviços TCP/IP: 21 - FTP (transferência de arquivos) 23 - telnet (terminal virtual remotping o) 25 - SMTP (envio de e-mails) 53 - DNS (resolvedor de nomes) 79 - finger (detalhes sobre usuários do sistema) 80 - HTTP (protocolo www - transferência de páginas Internet) 110 - pop-3 (recebimento de mensagens) 119 nntp (usado por programas de notícias) O arquivo padrão responsável pelo mapeamento do nome dos serviços e das portas mais utilizadas é o /etc/services. 2.1 Comandos de Rede Temos diversos comandos que podem ser utilizados para nos fornece informações e configurações em nossa rede. Alguns foram vistos acima, e a abaixo temos alguns dos mais comuns: #who Comando que mostra os usuários conectados a máquina. Pode ser utilizado também o comando w para exibir maiores informações #ftp Cliente para conexão a servidores ftp #whoami mostra qual o usuário atual da sessão #dnsdomainname Mostra o nome de domínio de sua rede #talk Programa para conversação em tempo real com outros usuários local ou remotamente. 12
talk [usuário] [tty]ou talk [usuário@host] usuário - Nome de login do usuário tty - O nome de terminal onde o usuário está conectado Para uma conversa remota, você deve utilizar o <nome_de_usuário>@<hostname> do outro computador. Para autorizar o recebimento das mensagens por outros usuários, você deverá autorizalas com o comando mesg. #ping Comando para verificar se um host está disponível na rede. #traceroute Traça uma rota até um destino. #netstat - Mostra conexões de rede, tabela de roteamento, estatísticas de interfaces, conexões masquerade, e mensagens. #wall Envia uma mensagem a todos os usuários do sistema. Ele lê um arquivo e exibe para todos os usuários. utilização exclusiva do root. #ethtool - Com a ferramenta ethtool é possível verificar quais são as interfaces, mudar velocidade, alterar forma de negociação e é até mesmo verificar qual interface está localizada fisicamente. 13