Sistema Operacional Linux > Configuração de Redes www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito
Introdução O Linux foi criado por Linus Torvalds em 1991, na época em que era estudante de Ciência da Computação na Universidade de Helsinque (Finlândia). Trata-se de um SO de código aberto, sendo que é proibida a comercialização do seu kernel. Obs.: Embora seu kernel seja de código aberto, existem distribuições comerciais, a exemplo do Red Hat. 2
Estrutura de Diretórios 3
Estrutura de Diretórios /bin /boot /dev /etc /home binários essenciais do usuário arquivos estáticos de boot arquivos de dispositivos (devices) arquivos de configuração pastas dos usuários do sistema Raíz / /media ponto de montagem temporário de mídias removíveis /mnt ponto de montagem temporário para sistemas de arquivos /opt softwares adicionados pelo usuário /sbin binários do sistema /tmp arquivos temporários /usr utilitários e aplicações multi-usuário /var arquivos variáveis e de log /root diretório home do superusuário (root) /proc arquivos e documentos do kernel 4
Comandos Básicos (Revisão) Há comandos básicos que são fundamentais para a navegação na árvore de diretórios do Linux, para a manipulação de arquivos/diretórios e definição de privilégios de acesso (usuários). cd, pwd, ls mkdir, rmdir cp, rm, mv touch, cat, grep chmod, chown, chgrp Obs.: Digite man <comando> para acessar o manual com informações detalhadas dos comandos e seus parâmetros (opções). Obs.: Para editar um arquivo qualquer ou de configuração deve ser utilizado um editor de texto, por ex.: vi ou nano. useradd, userdel, groupadd, groupdel, passwd 5
Comandos Básicos (Revisão) Revisão de Manipulação de Arquivos e Diretórios shbbrito@host:~# mkdir Teste shbbrito@host:~# touch./teste/arquivo1.txt./teste/arquivo2.txt shbbrito@host:~# cd Teste shbbrito@host:~/teste# ls l total 0 -rw-rw-r-- 1 shbbrito shbbrito 0 Mai 11 14:53 arquivo1.txt -rw-rw-r - 1 shbbrito shbbrito 0 Mai 11 14:53 arquivo2.txt U G O shbbrito@host:~/teste# rm arquivo1.txt shbbrito@host:~/teste# cd.. shbbrito@host:~# rm rf./teste shbbrito@host:~# nano script.sh (...) Executa o Editor de Texto NANO shbbrito@host:~# chmod +x./script.sh shbbrito@host:~# ls -l total 0 -rwxrwxr-x 1 shbbrito shbbrito 0 Mai 11 14:53 script.sh shbbrito@host:~#./script.sh (...) Executa o Script 6
Comandos Básicos p/ Redes São vários os comandos/ferramentas disponíveis para visualizar e configurar redes no Linux, sendo os principais: ip ifconfig route arp hostname Obs.: Embora o comando ifconfig (pacote net-tools) seja amplamente utilizado em praticamente todas as distribuições Linux, ele está descontinuado desde 2001. A ferramenta ip (pacote iproute2) é a mais atual e suporta novos recursos. Obs.: A configuração através dos comandos é volátil, ou seja, é perdida durante o boot do sistema, sendo necessário utilizar o script de inicialização (/etc/rc.local). Já as alterações realizadas nos arquivos de configuração são mantidas no boot. 7
Comandos Básicos p/ Redes ip (Link) 01. root@host:/# ip link show 02. root@host:/# ip link set dev eth0 up 03. root@host:/# ip link set dev eth1 down #--- Descrição #--- 01: Exibir informações de conectividade da interface #--- 02: Habilitar a interface eth0 #--- 03: Desabilitar a interface eth1 8
Comandos Básicos p/ Redes ip (IPv4) 01. root@host:/# ip address show 02. root@host:/# ip address add 192.168.0.1/24 dev eth0 03. root@host:/# ip address del 192.168.0.1/24 dev eth0 04. root@host:/# ip neighbor show 05. root@host:/# ip route add 0.0.0.0/0 via 10.100.1.2 06. root@host:/# ip route del 0.0.0.0/0 via 10.100.1.2 #--- Descrição #--- 01: Exibir as configurações de IPv4 nas interfaces #--- 02: Configurar endereço IPv4 na interface eth0 #--- 03: Remover endereço IPv4 na interface eth0 #--- 04: Exibir a tabela de vizinhança (ARP) #--- 05: Inserir a rede 0.0.0.0/0 via gateway 10.100.1.2 #--- 06: Remover a rede 0.0.0.0/0 via gateway 10.100.1.2 9
Comandos Básicos p/ Redes ip (IPv6) 01. root@host:/# ip -6 address show 02. root@host:/# ip -6 address add 2001:db8:cafe::1/64 dev eth0 03. root@host:/# ip -6 address del 2001:db8:cafe::1/64 dev eth0 04. root@host:/# ip -6 neighbor show 05. root@host:/# ip -6 route add ::/0 via 2001:db8:cafe::f 06. root@host:/# ip -6 route del ::/0 via 2001:db8:cafe::f #--- Descrição #--- 01: Exibir as configurações de IPv6 nas interfaces #--- 02: Configurar endereço IPv6 na interface eth0 #--- 03: Remover endereço IPv6 na interface eth0 #--- 04: Exibir a tabela de vizinhança (NDP) #--- 05: Inserir a rede ::/0 via gateway 2001:db8:cafe::f #--- 06: Remover a rede ::/0 via gateway 2001:db8:cafe::f 10
Comandos Básicos p/ Redes ifconfig (IPv4) 01. root@host:/# ifconfig eth0 02. root@host:/# ifconfig eth0 up 03. root@host:/# ifconfig eth1 down 04. root@host:/# ifconfig eth0 192.168.0.1/24 05. root@host:/# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 06. root@host:/# ifconfig eth0 0.0.0.0/32 #--- Descrição #--- 01: Exibir configurações da interface eth0 #--- 02: Habilitar a interface eth0 #--- 03: Desabilitar a interface eth1 #--- 04: Configurar endereço IPv4 na interface eth0 #--- 05: Configurar endereço IPv4 na interface eth0 #--- 06: Remover endereço IPv4 na interface eth0 (msg erro) 11
Comandos Básicos p/ Redes ifconfig (IPv6) 01. root@host:/# ifconfig eth0 02. root@host:/# ifconfig eth0 up 03. root@host:/# ifconfig eth1 down 04. root@host:/# ifconfig eth0 inet6 add 2001:db8:cafe::1/64 05. root@host:/# ifconfig eth0 inet6 del 2001:db8:cafe::1/64 #--- Descrição #--- 01: Exibir configurações da interface eth0 #--- 02: Habilitar a interface eth0 #--- 03: Desabilitar a interface eth1 #--- 04: Configurar endereço IPv6 na interface eth0 #--- 05: Remover endereço IPv6 na interface eth0 12
Comandos Básicos p/ Redes route (IPv4) 01. root@host:/# route n 02. root@host:/# route add default gw 192.168.0.254 03. root@host:/# route del default gw 192.168.0.254 04. root@host:/# route add net 10.0.0.0/8 gw 192.168.0.254 05. root@host:/# route del net 10.0.0.0/8 gw 192.168.0.254 #--- Descrição #--- 01: Exibir a tabela de roteamento #--- 02: Inserir o gateway 192.168.0.254 #--- 03: Remover o gateway 192.168.0.254 #--- 04: Inserir a rede 10.0.0.0/8 via gateway 192.168.0.254 #--- 05: Remover a rede 10.0.0.0/8 via gateway 192.168.0.254 13
Comandos Básicos p/ Redes route (IPv6) 01. root@host:/# route -6 n 02. root@host:/# route -6 add default gw 2001:db8::f 03. root@host:/# route -6 del default gw 2001:db8::f 04. root@host:/# route -6 add 2001:db8:cafe::/64 gw 2001:db8::f 05. root@host:/# route -6 del 2001:db8:cafe::/64 gw 2001:db8::f #--- Descrição #--- 01: Exibir a tabela de roteamento #--- 02: Inserir o gateway 2001:db8::f #--- 03: Remover o gateway 2001:db8::f #--- 04: Inserir a rede 2001:db8:cafe::/64 via gateway 2001:db8::f #--- 05: Remover a rede 2001:db8:cafe::/64 via gateway 2001:db8::f 14
Comandos Básicos p/ Redes arp root@host:/# arp -n Address HWtype HWaddress Flags Mask Iface 192.168.7.254 ether 20:aa:4b:31:5f:f7 C wlan0 root@host:/# arp d 192.168.7.254 root@host:/# arp s 192.168.7.200 aa:aa:aa:aa:aa:aa #--- Del Manual #--- Add Manual root@host:/# arp n Address HWtype HWaddress Flags Mask Iface 192.168.7.200 ehter aa:aa:aa:aa:aa:aa CM wlan0 192.168.7.254 ether (incomplete) wlan0 15
Comandos Básicos p/ Redes hostname root@host:/# hostname Host #--- Exibir o nome do host root@host:/# hostname Nome root@nome:/# #--- Trocar o nome do host 16
Arquivos de Configuração Os seguintes arquivos de configuração são comuns nas distribuições Linux baseadas em Debian e Red Hat: /etc/hosts Contém associações de IPs com nomes de hosts, lembrando que essas associações são criadas e têm valor apenas localmente. /etc/resolv.conf Contém o endereço de um ou mais servidores DNS (internos ou externos) que serão utilizados no processo de resolução de nomes. (*) O conteúdo do arquivo /etc/hosts tem precedência sobre o arquivo /etc/resolv.conf 17
Arquivos de Configuração Os seguintes arquivos de configuração são exclusivos das distribuições Linux baseadas em Debian: /etc/hostname Trata-se de um arquivo bastante simples que contém apenas o nome do host local. /etc/network/interfaces Contém todas as configurações de rede das interfaces físicas (e também lógicas) que existem instaladas no computador. (*) O arquivo de configuração geral da rede em distribuições baseadas no RedHat fica localizado em /etc/sysconfig/network ; Os arquivos das interfaces ficam em /etc/sysconfig/network-scripts/ifcfg-xxx. 18
Exemplos de Arquivos de Configuração /etc/hosts 127.0.0.1 localhost 192.168.0.1 host1 192.168.0.2 host2.nome.com.br ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 2001:db8:cafe::1 host1 2001:db8:cafe::2 host2.nome.com.br 19
Exemplos de Arquivos de Configuração /etc/resolv.conf search labcisco.com.br nameserver 208.67.220.220 nameserver 208.67.222.222 20
Exemplos de Arquivos de Configuração /etc/network/interfaces #--- IPv4 Estático auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 Endereçamento Estático #--- IPv6 Estático auto eth1 iface eth1 inet6 static address 2001:db8:cafe::1 netmask 64 gateway 2001:db8:cafe::f 21
Exemplos de Arquivos de Configuração /etc/network/interfaces #--- IPv4 DHCP auto eth0 iface eth0 inet dhcp #--- IPv6 DHCP auto eth1 iface eth1 inet6 dhcp Endereçamento Dinâmico #--- IPv6 SLAAC auto eth2 iface eth2 inet6 auto 22
Outros Comandos Além dos comandos/ferramentas já vistos, há outros disponíveis para visualizar e diagnosticar redes no Linux: ping traceroute, tracepath, mtr nslookup, host, dig netstat, nmap whois 23
Sistema Operacional Linux > Acesso Terminal Remoto via SSH www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito
Acesso Terminal Remoto via SSH Tradicionalmente o Linux é instalado em servidores sem nenhuma interface gráfica (GUI), de maneira que toda sua configuração é realizada via linha de comando (CLI); Essa característica é importante para facilitar o processo de configuração e gerência do servidor através de acesso remoto, seja pela rede local (LAN) ou mesmo pela Internet (WAN); Para acesso remoto ao servidor é importante o uso de um protocolo seguro que faça criptografia do tráfego, por isso o SSH (Secure Shell) é a solução recomendada. 25
Acesso Terminal Remoto via SSH 1. Instalação do Serviço SSH root@host:/# apt-get install openssh-server A primeira etapa consiste na instalação do pacote openssh-server para que o Linux possa ser posteriormente configurado para aceitar acessos remotos via SSH. Essa tarefa é simples e rápida através do APT (Debian). 26
Acesso Terminal Remoto via SSH 2. Edição do Arquivo de Configuração (...) Conteúdo Omitido Port 22 ListenAddress 2001:db8:cafe::1 ListenAddress 192.168.221.1 ListenAddress 203.0.113.1 (...) DenyUsers user03 user04 AllowUsers user01 user02 DenyGroups group3 group4 AllowGroups group1 group2 (...) PermitRootLogin no (...) A segunda etapa é realizar as configurações gerais do serviço SSH para permitir o acesso terminal seguro a partir da rede local ou externa, através da edição do arquivo /etc/ssh/sshd_config. 27
Acesso Terminal Remoto via SSH 3. Manipulação do Serviço SSH root@host:/# service sshd start [ ok ] Starting Open SSH Server: sshd. Quando um novo serviço é instalado no Debian, ele passa a ser automaticamente inicializado em caso de boot do servidor. A ferramenta update-rc.d pode ser utilizada para remover/adicionar serviços no processo de inicialização automática. Por fim, basta iniciar o serviço para que o servidor permita conexões terminais seguras a partir de outras máquinas executando um cliente SSH. Vale lembrar que o serviço SSH, por padrão, opera na porta 22/TCP. 28
www.labcisco.com.br ::: shbbrito@labcisco.com.br