Aula 02 – Redes Linux 2.1 Arquivos de configuração de redes no Linux 2.1.1 /etc/hostname Armazena o nome do computador (não ocorre no padrão RedHat/Conectiva). # cat /etc/hostname server.linux.org.br 2.1.2 /etc/hosts Contém uma lista de endereços IP e nomes de computadores da rede local para serem “resolvidos” localmente. # cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 172.16.9.1 server.linux.org.br server 172.16.9.2 aluno1.linux.org.br aluno2 172.16.9.3 aluno3.linux.org.br aluno3 172.16.9.4 aluno4.linux.org.br aluno4 2.1.3 /etc/hosts.equiv Contém uma lista de nomes de computadores (obrigatório) e usuários (opcional) que têm permissão para executar os comandos de rlogin, rcp e rsh no computador local. # cat /etc/hosts.equiv # hostname aluno2 aluno3 aluno4 2.1.4 /home/<usuario>/.rhosts Contém uma lista de nomes de computadores (obrigatório) e usuários (opcional) que têm permissão para executar os comandos de rlogin, rcp e rsh no computador local. Ele deve ter permissão de leitura e escrita somente pelo usuário dono. # cat /home/<usuario>/.rhosts aluno2 aluno3 aluno4
2.1.5 /etc/networks Contém uma lista dos nomes das redes de computadores e dos endereços IP das redes e ou subredes a qual o computador faz parte. Não é mais utilizado nas distribuiçoes atuais. # cat /etc/networks loopnet 127.0.0.1 linux.org.br 172.16.9.0 2.1.6 /etc/host.conf Informa quais serviços utilizar para solucionar os nomes de computadores e em que ordem. A opção “multi on” determina que um computador pode ter múltiplos endereços IP. # /etc/host.conf order hosts,bind multi on 2.1.7 /etc/resolv.conf Neste arquivo é configurado o cliente de DNS, que contém o nome de domínio do servidor de DNS e seu endereço IP. # /etc/resolv.conf search linux.org.br nameserver 172.16.9.1 2.1.8 /etc/nsswitch.conf Especifica onde adquirir tipos diferentes de dados, arquivos ou banco de dados usados pelos servidores. passwd: files nisplus nis shadow: files nisplus nis group: files nisplus nis hosts: files nisplus nis dns bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files nisplus nis rpc: files
services: files nisplus nis netgroup: files nisplus nis publickey: nisplus automount: files nisplus nis aliases: files nisplus 2.1.9 /etc/sysconfig/network No padrão RedHat e seus derivados, define o nome do computador, o nome do domínio (DNS), o nome do domínio NIS, o roteador e se a rede será ativada ou não na inicialização do Linux. Em outras distribuições, esse arquivo pode ter outro nome, formato e localização. # cat /etc/sysconfig/network NETWORKING=yes # FORWARD_IPV4=no # not used anymore. see /etc/sysctl.conf HOSTNAME="server.linux.org.br" GATEWAY=172.16.9.1 NAMESERVER=172.16.9.1 2.1.10 /etc/sysconfig/networkscripts/ifcfglo No padrão RedHat e seus derivados, define o dispositivo da interface de loopback, o seu endereço IP, a sua máscara de rede, o seu endereço de rede, o seu endereço de broadcast e se está ativada ou não na inicialização do Linux. Em outras distribuições, esse arquivo pode ter outro nome, formato e localização. # cat /etc/sysconfig/networkscripts/ifcfglo DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback 2.1.11 /etc/sysconfig/networkscripts/ifcfgeth0 No padrão RedHat e seus derivados, define o dispositivo da interface de rede, o seu endereço IP, a sua máscara de rede, o seu endereço de rede, o seu endereço de broadcast e se está ativada ou não na inicialização do Linux. Em outras distribuições, esse arquivo pode ter outro nome, formato e localização.
# cat /etc/sysconfig/networkscripts/ifcfgeth0 # Realtek|RTL8139(AS)
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp GATEWAY=172.16.9.1 NAMESERVER=172.16.9.1 2.1.12 /etc/network/interfaces Tratase do arquivo de definição das interfaces de rede na família Debian (Debian, Ubuntu, Kurumin e etc.), a diferença com a família RedHat fica por conta de que o arquivo “interfaces” estão definidas todas as interfaces de rede, já no padrão RedHat há um arquivo para cada interface. $ cat /etc/network/interfaces auto lo iface lo inet loopback 2.1.13 /etc/rc.d/rc.inet1 Tratase do arquivo de definição das interfaces de rede na família Slackware (Slaxkware, Slax e etc.). $ cat /etc/rc.d/rc.inet1 IPADDR[0] = “10.1.1.10” NETMASK[0] = “255.255.255.0” USE_DHCP[0] = “” DHCP_HOSTNAME = “” GATEWAY = “10.1.1.3” 2.1.14 /etc/rc.d/rc.local No padrão RedHat e seus derivados, é o último script a ser executado, sendo possível incluir comandos ou scripts adicionais nele. Por exemplo, caso seja desejado inicializar servidores adicionais. Por padrão /etc/rc.d/ rc.local simplismente cria uma mensagem de acesso ao sistema com a versão do kernel e o tipo de máquina. Em outras distribuições, esse arquivo pode ter outro nome, formato e localização. cat /etc/rc.local #!/bin/sh e # rc.local # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # In order to enable or disable this script just change the execution # bits.
# By default this script does nothing. #exit 0 /home/usuario/firewall.sh /home/usuario//wireless.sh 2.2 Comandos utilizados pelo TCP/IP no Linux Comandos utilizados com maior freqüência para manipular configurações de rede no Linux. 2.2.1 ifconfig
Exibe e manipula a configuração das interfaces de rede. É usado para configurar (e posteriormente manter) as inter faces de rede. É usado durante o boot para configurar a maioria delas para um estado usável. Depois disto, é normalmente somente necessário durante depurações ou quando for necessária uma configuração fina do sistema. Se nenhum argumento for informado, ifconfig somente mostra o estado das interfaces correntemente definidas. Se um argumento interface for informado, ele mostra somente o estado da interface informada. De outra forma ele assume que os parâmetros devem ser configurados. Se o primeiro argumento após o nome da interface for reconhecido como um nome de uma família de endereçamento suportada, esta família de endereçamento é usada na decodificação e apresentação de todos os endereços de protocolos. Opções: interface: O nome da interface de rede. Usualmente é um nome como eth0 , sl3 ou algo parecido: um nome de driver de dispositivo seguido por um número. up: Esta flag causa a ativação da interface. É especificada implici tamente se a interface receber um novo endereço (veja abaixo). down: Esta flag desativa o driver desta interface, é util quando alguma coisa começar a ter problemas. []arp: Habilita ou desabilita o uso do protocolo ARP para esta inter face. Se o sinal de menos () estiver presente a opção é desli gada. []allmulti: Habilita ou desabilita o modo promiscuous da interface. Isto significa que todos os frames passarão pela camada de rede do kernel, permitindo monitoração da rede. Ex: # ifconfig # ifconfig eth0
# ifconfig lo # ifconfig eth0 arp # ifconfig eth0 allmulti # ifconfig eth0 down # ifconfig eth0 up # ifconfig eth0 promisc # ifconfig eth0 172.16.9.1 netmask 255.255.0.0 up # ifconfig eth0 hw ether 00:11:22:33:44:55 2.2.2 netstat Exibe o status da rede. Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões mascaradas. Mostra informações do subsistema de rede do Linux.
Você pode ver o estado das conexões de rede através da listagem dos sockets abertos. Esta é a operacao padrão: se você não especificar nenhuma família de endereços, os sockets ativos de todas as famílias de endereços configuradas serão mostrados. Opções: e: obterá informações adicionais (userid). v: poderá fazer com que o netstat reclame sobre famílias de endereços conhecidas que não sejam suportadas pelo kernel. o: mostra algumas informações adicionais sobre temporizadores de rede.
a: mostra todos os sockets, incluindo sockets de servidores. A família de endereços inet mostrará
sockets raw, udp e tcp. r, route: Com a opção r, route voce obterá as tabelas de roteamento do kernel no mesmo formato usado por route e. netstat er usará o formato de apresentação do comando route. Por favor veja route(8) para maiores detalhes. i, interface iface: Se voce usar a opção i, interfaces, uma tabela de todas (ou da iface especificada) as interfaces de rede será mostrada. A saída usa o formato ifconfig e, e é descrita em ifconfig(8). netstat ei mostrará uma tabela ou uma entrada de interface como ifconfig mostra. Com a chave a , você pode incluir interfaces que não estejam configuradas (i.e. não tem a flag U=UP configurada). M, masquerade: Uma lista de todas as sessões mascaradas também pode ser vista. Com a chave e você pode incluir mais algumas informações sobre numeração sequencial e deltas, causados por reescritas de dados em sessões FTP (comando PORT). O suporte a mascaramento é usado para esconder máquinas em endereços de rede não oficiais do resto do mundo, como descrito em ipfw(4),ipfwadm(8) e ipfw (8). s, statistics: Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que são lidas a partir de /proc/net/snmp.
Ex: # netstat a 2.2.3 ping Indica se um computador remoto pode ser alcançado. Ex: # ping 172.16.9.9 # ping www.uniderp.br 7.9.4 nslookup Questiona o serviço de nome de domínio DNS. Ex: # nslookup 2.2.4 traceroute Traça a rota percorrida por pacotes até o computador de destino. Exibe a rota tomada pelos pacotes para uma máquina da rede. A Internet é uma grande e complexa aglomeração de máquinas de rede, conectadas por gateways. Traçar a rota que um pacote segue (ou achar o gateway que está descartando os seus pacotes) pode ser difícil. O traceroute utiliza o campo `time to live' do protocolo IP e tenta obter uma resposta ICMP TIME_EXCEEDED de cada gateway no caminho para alguma máquina. O único parâmetro obrigatório é o nome da máquina de destino ou o seu número IP. O tamanho pré definido do datagrama de procura é de 38 bytes, mas isto pode ser aumentado especificando um tamanho de pacote (em bytes) depois do nome da máquina de destino. l : Exibe o valor ttl dos pacotes retornados. Isto é útil para verificar roteamento assimétrico. m ttl_max: Define o `timetolive' máximo (número máximo de pontos) usado nos pacotes de procura de saída. O valor prédefinido é de 30 pontos (o mesmo valor prédefinido usado em conexões TCP). n: Exibe os endereços dos pontos numericamente ao invés de simbolicamente e numericamente (evita uma procura endereçoparanome em um servidor de nomes para cada gateway encontrado no caminho). p porta: Define o número base da porta UDP usada nas procuras (prédefinido como 33434). traceroute espera que nada esteja aguardando nas portas UDP de base até base+pontos1 na máquina de destino (senão uma mensagem ICMP PORT_UNREACHABLE irá ser retornada para terminar o traçamento de rota). Se alguma coisa estiver aguardando em uma porta no alcance prédefinido, esta opção pode ser usada para escolher um alcance de portas fora de uso.
q perguntas: Define o número de procuras por ``ttl'' como perguntas (prédefinido como três
r: Ignora as tabelas de roteamento normais e envia diretamente para uma máquina em uma rede anexa. Se a máquina não estiver em uma rede diretamente anexa, um erro é retornado. Esta opção pode ser usada para contatar uma máquina local através de uma interface que não tem nenhuma rota através dela (ex., depois que uma interface foi descartada pelo routed(8)). s end_origem: Usa o seguinte endereço IP (que deve ser dado como número, não como nome de máquina) como o endereço de origem nos pacotes de procura. Em máquinas com mais de um endereço IP, esta opção pode ser usada para forçar o endereço de origem a ser outro que não o endereço IP da interface pela qual o pacote de procura está sendo enviado. Se o endereço IP não é um endereço de uma das interfaces daquela máquina, então um erro é retornado e nada é enviado. t serviço: Define o campo typeofservice nos pacotes de procura para o valor seguinte (prédefinido como zero). O valor deve ser um inteiro decimal no alcance de 0 a 255. Esta opção pode ser usada para descobrir se diferentes typeofservice resultam em diferentes caminhos. (Se você não está usando um sistema 4.3BSDTahoe ou subseqüente, isto pode ser inútil, já que os serviços normais de rede como telnet e ftp não deixam você controlar o serviço). Nem todos os valores de serviço são válidos ou significativos veja a especificação do IP para as definições. Valores úteis são provavelmente `t 16' (baixa espera) e `t 8' (alta saída).
v: Saída detalhada. Pacotes ICMP recebidos além de TIME_EXCEEDED e UNREACHABLE são
listados.
w: Define o tempo (em segundos) de espera pela resposta de uma procura (prédefinido como 3
segundos). Ex: # traceroute 172.16.9.1 # traceroute aluno1.labinfo.local # traceroute aluno1 2.2.4 route Exibe e/ou manipula a tabela de roteamento IP. Route manipula a tabela de roteamento IP do kernel. Seu principal uso é configurar rotas estáticas para hosts ou redes especificadas através de uma interface, após a mesma ter sido configurada com o programa ifconfig. v: flag para detalhamento (não usada). n: mostra endereços numéricos, sem tentar resolver o nomes simbólicos das máquinas. Útil se você esta tentando determinar por que a rota para o seu servidor de nomes sumiu. e: use o formato netstat(8) na apresentação da tabela de roteamento. ee: produzira uma linha bem grande com todos os parâmetros da tabela de roteamento. del: remove uma rota.
add: adiciona uma rota. alvo: A máquina ou rede destino. Você pode fornecer endereços IP em formato decimal separado por pontos ou nomes de máquinas/redes. Ex: # route add net 192.1.68.1.0 netmask 255.255.255.0 dev eth0 # route add default gw # route add default gw 192.168.1.1 # route del default gw 192.168.1.1 2.2.5 arp
Manipula o cachê ARP do sistema.arp manipula o cache ARP do kernel de várias maneiras. As principais opções são deleção de uma entrada de mapeamento de endereço e configuração manual de um endereço. Para propósitos de depuração, o programa arp também permite um dump completo do cache ARP. Ex: # arp 2.2.6 iwconfig e wlist O iwconfig é similar ao comando ifconfig, mas é usado para redes wifi. Com este comando podese verificar diversas características das redes wireless. Com o comando iwconfig serão listados os dispositivos de rede sem fio que o sistema Linux já reconheceu. Após executar este comando, o retorno será o seguinte: # iwconfig lo no wireless extensions. wlan0 IEEE 802.11g ESSID:"xxx" Nickname:"yyy" Mode:Managed Frequency:2.462 GHz Access Point: 00:02:2D:0F:7B:48 Bit Rate:11 Mb/s TxPower:18 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:3132333435 Security mode:restricted Power Management:off Link Quality=45/94 Signal level=50 dBm Noise level=95 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:878 eth0 no wireless extensions. sit0 no wireless extensions. A chave WEP está ativa e mostra o retorno criptografado (há como quebrar esta criptografia muito fácil, dependendo da quantidade de pacotes que esta AP está trafegando).
Listando as redes disponíveis, assim como no Windows, você pode listar as redes wifi disponíveis com o comando: # iwlist wlan0 scan Determinando CHANNEL e AP para associação e chave de criptografia, muitas vezes encontrase mais de um ACCESS POINT. Como fazer para definir qual delas você quer se conectar? # iwconfig AP 00:02:2D:0F:7B:48 Para determinar qual AP será associado com o comando: # iwlist wlan0 scan Para determinar o CHANNEL temse opção de 11 canais liberados pela ANATEL. No exemplo a seguir usase o canal 11 para que ocorra menos interferências. Uma boa prática quando existe mais de um Access Point é utilizar a topologia de triângulo, forçando os canais 1, 6, 11. # iwconfig wlan0 channel 11 Notamos ainda que o AP do exemplo está com KEY ON, ou seja, está utilizando WEP, que pode ser ativada usando o comando: # iwconfig wlan0 key s:12345 Outro exemplo de interface wireless detectada com o comando iwconfig: # iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. wlan0 IEEE 802.11bg ESSID:"xxx" Mode:Managed Frequency:2.437 GHz Access Point: 00:AA:CC:EE:FF:94 Bit Rate=5.5 Mb/s TxPower=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Encryption key:78D63CF7602B341FD889D3F289B26AC102033486B0CE4BC7B65D8395959A 9
CF0A [3] Security mode:open Power Management:off Link Quality=78/100 Signal level:32 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 pan0 no wireless extensions.