Mudanças entre as edições de "ARC60808-2014-2"
Linha 743: | Linha 743: | ||
# Faça um script que faça o ''backup'' de todo o conteúdo do diretório '''/home''', utilizando o comando '''tar'''. Agende este script para executar toda a meia noite de segunda a sexta-faira. O nome do arquivo de backup deve conter o nome do dia da semana. | # Faça um script que faça o ''backup'' de todo o conteúdo do diretório '''/home''', utilizando o comando '''tar'''. Agende este script para executar toda a meia noite de segunda a sexta-faira. O nome do arquivo de backup deve conter o nome do dia da semana. | ||
# Confira o '''log''' do '''cron'''. Quais são os detalhes deste arquivo? | # Confira o '''log''' do '''cron'''. Quais são os detalhes deste arquivo? | ||
− | {{Collapse bottom | + | {{Collapse bottom}} |
{{Collapse top | Aula 19 (10/9/2014): Políticas de Backup}} | {{Collapse top | Aula 19 (10/9/2014): Políticas de Backup}} | ||
Linha 752: | Linha 752: | ||
[http://www.bacula.org/en/ Bacula ® - The Open Source Network Backup Solution ] | [http://www.bacula.org/en/ Bacula ® - The Open Source Network Backup Solution ] | ||
− | {{Collapse bottom | | + | {{Collapse bottom}} |
+ | |||
+ | {{Collapse top | Aula 20 (12/9/2014): Interfaces de rede e rotas estáticas}} | ||
+ | |||
+ | [[Media:Gerencia_de_redes.pdf|Apostila]], capítulo 22. | ||
+ | |||
+ | {{Collapse top | Interfaces de rede e roteamento estático}} | ||
+ | Interface de rede é qualquer dispositivo (físico ou lógico) capaz de transmitir e receber datagramas IP. Interfaces de rede ethernet são o exemplo mais comum, mas há também interfaces PPP (seriais), interfaces tipo túnel e interfaces ''loopback''. De forma geral, essas interfaces podem ser configuradas com um endereço IP e uma máscara de rede, e serem ativadas ou desabilitadas. Em sistemas operacionais Unix a configuração de interfaces de rede se faz com o programa [http://manpages.ubuntu.com/manpages/karmic/pt_BR/man8/ifconfig.8.html ifconfig]: | ||
+ | |||
+ | Para mostrar todas as interfaces: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig -a | ||
+ | dsl0 Link encap:Point-to-Point Protocol | ||
+ | inet addr:189.30.70.200 P-t-P:200.138.242.254 Mask:255.255.255.255 | ||
+ | UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 | ||
+ | RX packets:34260226 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:37195398 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions:0 txqueuelen:3 | ||
+ | RX bytes:19484812547 (18582.1 Mb) TX bytes:10848608575 (10346.0 Mb) | ||
+ | |||
+ | eth1 Link encap:Ethernet HWaddr 00:19:D1:7D:C9:A9 | ||
+ | inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 | ||
+ | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
+ | RX packets:37283974 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:42055625 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions:0 txqueuelen:1000 | ||
+ | RX bytes:20939614658 (19969.5 Mb) TX bytes:18284980569 (17437.9 Mb) | ||
+ | Interrupt:16 Base address:0xc000 | ||
+ | |||
+ | lo Link encap:Local Loopback | ||
+ | inet addr:127.0.0.1 Mask:255.0.0.0 | ||
+ | UP LOOPBACK RUNNING MTU:16436 Metric:1 | ||
+ | RX packets:273050 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:273050 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions:0 txqueuelen:0 | ||
+ | RX bytes:21564572 (20.5 Mb) TX bytes:21564572 (20.5 Mb) | ||
+ | root@gerencia:~> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Para configurar uma interface de rede (que fica automaticamente ativada): | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig eth1 192.168.1.100 netmask 255.255.255.0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Para desativar uma interface: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig eth1 down | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Para ativar uma interface: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig eth1 up | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Ao se configurar uma interface de rede, cria-se uma rota automática para a subrede diretamente acessível via aquela interface. Isto se chama '''''roteamento mínimo'''''. | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig eth1 192.168.10.0 netmask 255.255.0.0 | ||
+ | root@gerencia:~> netstat -rn | ||
+ | Kernel IP routing table | ||
+ | Destination Gateway Genmask Flags MSS Window irtt Iface | ||
+ | 192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 | ||
+ | 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo | ||
+ | root@gerencia:~> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Pode-se associar mais de um endereço a uma mesma interface de rede. Isto se chama '''''IP alias''''': | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> ifconfig eth1:0 192.168.1.110 netmask 255.255.255.0 | ||
+ | root@gerencia:~> ifconfig eth1:1 192.168.2.100 netmask 255.255.255.0 | ||
+ | root@gerencia:~> ifconfig -a | ||
+ | eth1 Link encap:Ethernet HWaddr 00:19:D1:7D:C9:A9 | ||
+ | inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 | ||
+ | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
+ | RX packets:37295731 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:42068558 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions:0 txqueuelen:1000 | ||
+ | RX bytes:20942258027 (19972.0 Mb) TX bytes:18294794452 (17447.2 Mb) | ||
+ | Interrupt:16 Base address:0xc000 | ||
+ | |||
+ | eth1:0 Link encap:Ethernet HWaddr 00:19:D1:7D:C9:A9 | ||
+ | inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0 | ||
+ | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
+ | Interrupt:16 Base address:0xc000 | ||
+ | |||
+ | eth1:1 Link encap:Ethernet HWaddr 00:19:D1:7D:C9:A9 | ||
+ | inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0 | ||
+ | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
+ | Interrupt:16 Base address:0xc000 | ||
+ | root@gerencia:~> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Configuração no boot ==== | ||
+ | |||
+ | Todo sistema operacional possui alguma forma de configurar suas interfaces de rede, para que sejam automaticamente ativadas no boot com seus endereços IP. Por exemplo, em sistemas Linux Ubuntu (descrito em maiores detalhes em seu [https://help.ubuntu.com/12.04/serverguide/network-configuration.html manual online]). | ||
+ | |||
+ | A configuração de rede se concentra no arquivo [http://manpages.ubuntu.com/manpages/karmic/man5/interfaces.5.html /etc/network/interfaces]: | ||
+ | |||
+ | <syntaxhighlight lang=text> | ||
+ | # This file describes the network interfaces available on your system | ||
+ | # and how to activate them. For more information, see interfaces(5). | ||
+ | |||
+ | # The loopback network interface | ||
+ | auto lo eth1 | ||
+ | iface lo inet loopback | ||
+ | address 127.0.0.1 | ||
+ | netmask 255.0.0.0 | ||
+ | |||
+ | # a interface ethernet eth1 | ||
+ | iface eth1 inet static | ||
+ | address 192.168.1.100 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.1.254 | ||
+ | dns-nameservers 200.135.37.65 | ||
+ | |||
+ | # apelido para eth1 | ||
+ | iface eth1:0 inet static | ||
+ | address 192.168.5.100 | ||
+ | netmask 255.255.255.0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Esses arquivo é lido pelos scripts [http://manpages.ubuntu.com/manpages/karmic/en/man8/ifup.8.html ifup] e [http://manpages.ubuntu.com/manpages/karmic/en/man8/ifdown.8.html ifdown]. Esses scripts servem para ativar ou parar interfaces específicas, fazendo todas as operações necessárias para isto: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | # Ativa a interface eth1 | ||
+ | ifup eth1 | ||
+ | |||
+ | # Desativa a interface eth1 | ||
+ | ifdown eth1 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Para ativar, desativar ou recarregar as configurações de todas as interfaces de rede: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | # desativa todas as interfaces de rede | ||
+ | sudo /etc/init.d/networking stop | ||
+ | |||
+ | # ativa todas as interfaces de rede | ||
+ | sudo /etc/init.d/networking start | ||
+ | |||
+ | # recarrega as configurações de todas as interfaces de rede | ||
+ | sudo /etc/init.d/networking restart | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Rotas estáticas === | ||
+ | |||
+ | Ver capítulo 23 da [[Media:Gerencia_de_redes.pdf|apostila]]. | ||
+ | |||
+ | Rotas estáticas podem ser adicionadas a uma tabela de roteamento. Nos sistemas operacionais Unix, usa-se o programa [http://manpages.ubuntu.com/manpages/karmic/en/man8/route.8.html route]: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | # adiciona uma rota para a rede 10.0.0.0/24 via o gateway 192.168.1.254 | ||
+ | route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.254 | ||
+ | |||
+ | # adiciona uma rota para a rede 172.18.0.0/16 via a interface PPP pp0 | ||
+ | route add -net 172.18.0.0 netmask 255.255.0.0 dev ppp0 | ||
+ | |||
+ | # adiciona a rota default via o gateway 192.168.1.254 | ||
+ | route add -net default gw 192.168.1.254 | ||
+ | |||
+ | # adiciona uma rota para o host 192.168.1.101 via o gateway 192.168.1.253 | ||
+ | route add -host 192.168.1.101 gw 192.168.1.253 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Para configurar a máquina para repassar pacotes entre as interfaces (rotear) deve-se setar o bit do ip_forward, com o comando: | ||
+ | echo 1 > /proc/sys/net/ipv4/ip_forward | ||
+ | |||
+ | A tabela de rotas pode ser consultada com o programa [http://manpages.ubuntu.com/manpages/karmic/en/man8/netstat.8.html netstat]: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | root@gerencia:~> netstat -rn | ||
+ | Kernel IP routing table | ||
+ | Destination Gateway Genmask Flags MSS Window irtt Iface | ||
+ | 10.0.0.0 192.168.1.254 255.255.255.0 U 0 0 0 eth1 | ||
+ | 192.168.1.101 192.168.1.253 255.255.255.0 UH 0 0 0 eth1 | ||
+ | 172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ppp0 | ||
+ | 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 | ||
+ | 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo | ||
+ | 0.0.0.0 192.168.1.254 0.0.0.0 U 0 0 0 eth1 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Rotas podem ser removidas também com '''''route''''': | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | # remove a rota para 10.0.0.0/24 | ||
+ | route delete -net 10.0.0.0 netmask 255.255.255.0 | ||
+ | |||
+ | # remove a rota para o host 192.168.1.101 | ||
+ | route delete -host 192.168.1.101 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Coleta e análise de tráfego === | ||
+ | |||
+ | Uma ferramenta básica de análise de tráfego de rede faz a coleta das PDUs por interfaces de rede, revelando as informações nelas contidas. Dois programas bastante populares | ||
+ | para essa finalidade são: | ||
+ | |||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man8/tcpdump.8.html tcpdump]: um analisador de tráfego em modo texto<syntaxhighlight lang=bash> | ||
+ | lab01:/data/tmp # tcpdump -i dsl0 -ln tcp port 80 | ||
+ | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode | ||
+ | listening on dsl0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes | ||
+ | 22:14:37.797702 IP 74.125.47.136.80 > 201.35.226.9.21688: F 3660173220:3660173220(0) ack 4262495618 win 122 <nop,nop,timestamp 403588225 348814601> | ||
+ | 22:14:37.836844 IP 201.35.226.9.21688 > 74.125.47.136.80: . ack 1 win 54 <nop,nop,timestamp 348874613 403588225> | ||
+ | 22:14:38.410477 IP 201.35.226.9.21688 > 74.125.47.136.80: F 1:1(0) ack 1 win 54 <nop,nop,timestamp 348874756 403588225> | ||
+ | 22:14:38.770653 IP 74.125.47.136.80 > 201.35.226.9.21688: . ack 2 win 122 <nop,nop,timestamp 403589203 348874756> | ||
+ | 22:14:39.906734 IP 64.233.163.83.80 > 201.35.226.9.23018: P 534213879:534214123(244) ack 1779175654 win 133 <nop,nop,timestamp 2294865159 348870211> | ||
+ | </syntaxhighlight> | ||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man1/wireshark.1.html wireshark]: o equivalente em modo gráfico (porém com muitas outras funcionalidades) | ||
+ | |||
+ | Outros programas úteis (ou ao menos interessantes): | ||
+ | |||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man8/iptraf.8.html iptraf]: gera estatísticas de tráfego por interfaces de rede | ||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man8/iftop.8.html iftop]: mostra os fluxos em uma interface de rede | ||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man1/nstreams.1.html nstreams]: analisa a saída do ''tcpdump'', e revela os fluxos em uma rede | ||
+ | * [http://manpages.ubuntu.com/manpages/karmic/en/man1/driftnet.1.html driftnet]: analisa o tráfego em uma interface, e captura imagens, videos e audio | ||
+ | |||
+ | === NAT === | ||
+ | |||
+ | A tradução de endereço de rede (NAT - Network Address Translation), proposta pela [http://www.faqs.org/rfcs/rfc1631.html RFC 1631] em 1994, é uma função de rede criada para contornar o problema da escassez de endereços IP. Com a explosão no crescimento da Internet, e o mau aproveitamento dos endereços IP (agravado pelo endereçamento hierárquico), percebeu-se que o esgotamento de endereços poderia ser logo alcançado a não ser que algumas medidas fossem tomadas. Esse problema somente seria eliminado com a reformulação do protocolo IP, de forma a aumentar o espaço de endereços, que resultou na proposta do [http://www.faqs.org/rfcs/rfc2460.html IPv6] em 1998. Porém no início dos anos 1990 a preocupação era mais imediata, e pensou-se em uma solução provisória para possibilitar a expansão da rede porém reduzindo-se a pressão por endereços IP. O NAT surgiu assim como uma técnica com intenção de ser usada temporariamente, enquanto soluções definitivas não se consolidassem. Ainda hoje NAT é usado em larga escala, e somente deve ser deixado de lado quando IPv6 for adotado mundialmente (o que deve demorar). | ||
+ | |||
+ | NAT parte de um princípio simples: endereços IP podem ser compartilhados por nodos em uma rede. Para isto, usam-se endereços IP ditos não roteáveis (também chamados de inválidos) em uma rede, sendo que um ou mais endereços IP roteáveis (válidos) são usados na interface externa roteador que a liga a Internet. Endereços não roteáveis pertencem às subredes 10.0.0.0/8, 192.168.0.0/16 e 172.16.0.0/12, e correspondem a faixas de endereços que não foram alocados a nenhuma organização e, portanto, não constam das tabelas de roteamento dos roteadores na Internet. A figura abaixo mostra uma visão geral de uma rede em que usa NAT: | ||
+ | |||
+ | [[Imagem:Nat-exemplo.png]] | ||
+ | |||
+ | Para ser possível compartilhar um endereço IP, NAT faz mapeamentos ''(IP origem, port origem, protocolo transporte)'' -> ''(IP do NAT, port do NAT, , protocolo transporte)'', sendo ''protocolo de transporte'' TCP ou UDP. Assim, para cada par ''(IP origem, port origem TCP ou UDP)'' o NAT deve associar um par ''(IP do NAT, port do NAT TCP ou UDP)'' (que evidentemente deve ser único). Assim, por exemplo, se o roteador ou firewall onde ocorre o NAT possui apenas um endeerço IP roteável, ele é capaz em tese de fazer até 65535 mapeamentos para o TCP (essa é a quantidade de ports que ele pode possui), e o mesmo para o UDP. Na prática é um pouco menos, pois se limitam os ports que podem ser usados para o NAT. Note que o NAT definido dessa forma viola a independência entre camadas, uma vez que o roteamento passa a depender de informação da camada de transporte. | ||
+ | |||
+ | ==== NAT no Linux ==== | ||
+ | |||
+ | Ver capítulo 35, seção 4, da [[Media:Gerencia_de_redes.pdf|apostila]]. | ||
+ | |||
+ | O NAT no Linux se configura com [http://manpages.ubuntu.com/manpages/jaunty/man8/iptables.8.html iptables]. As regras devem ser postas na tabela ''nat'', e aplicadas a chain ''POSTROUTING'', como no seguinte exemplo: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE ;Habilita o NAT | ||
+ | iptables -t nat -L ;Lista as atuais regras da tabela NAT | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | A regra acima faz com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface ''eth0'' deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth0 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth0. O alvo ''MASQUERADE'' foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar. | ||
+ | |||
+ | === Atividade === | ||
+ | |||
+ | '''A)''' Configurar interface de rede | ||
+ | |||
+ | # No VirtualBox ajuste as configurações (''settings'') de sua máquina virtual, com a mesma desligada. Clique em settings - Rede - Adaptador 1 - Conectado a: Placa em modo Bridge - Nome : eth0 - Avançado - Endereço de MAC: "Gera um novo endereço de MAC aleatório" (ícone verde a direita). | ||
+ | # Na máquina virtual apagar todo o conteúdo do arquivo /etc/udev/rules.d/70-persistent-net.rules. NÃO apague o arquivo. Reinicie a máquina. | ||
+ | # Verifique a configuração de sua interface de rede eth0, na sua máquina virtual. Se necessário corrija-a assim: ip 192.168.2.X, sendo X o número do computador + 100 (exemplo: para o micro 2 X=102), roteador default = 192.168.2.1. '''Nameserver''' 200.135.37.65. | ||
+ | ## Teste a comunicação do seu computador, fazendo ''ping 192.168.2.1''. Tente pingar outras máquinas da rede. | ||
+ | ## Tente também pingar o IP 200.135.37.65. | ||
+ | ## Veja a tabela de rotas, usando ''netstat -rn''. | ||
+ | ## Verifique a rota seguida pelos datagramas enviados, usando ''traceroute -n 200.135.37.65''. | ||
+ | # Configure sua máquina virtual para que a informação de rede, configurada manualmente acima, fique permanente. Quer dizer, no próximo boot essa configuração deve ser ativada automaticamente. | ||
+ | # Adicione um ''IP alias'' a sua interface eth0. Esse novo IP deve ser configurado para 10.0.0.X/24 (X = item 3). | ||
+ | ## Tente pingar os computadores de seus colegas, usando ambos endereços: da rede 192.168.2.0/24 e da rede 10.0.0/24. | ||
+ | ## Enquanto acontecem os pings, visualize o tráfego pela interface eth0, usando o programa [http://manpages.ubuntu.com/manpages/karmic/en/man8/tcpdump.8.html tcpdump]: <syntaxhighlight lang=bash> | ||
+ | # Mostra o tráfego ICMP que passa pela interface eth1 | ||
+ | tcpdump -i eth1 -ln icmp | ||
+ | </syntaxhighlight> | ||
+ | ## Pense em uma utilidade para ''IP alias'' ... | ||
+ | |||
+ | '''B)''' Coleta de tráfego | ||
+ | #Faça um ou mais pings para algum(ns) sítios e, com o uso de parâmetros apropriados, faça com que o ''tcpdump'': | ||
+ | **Capture todos os pacotes da rede. | ||
+ | **Capture somente os pacotes gerados por sua máquina. | ||
+ | **Capture somente pacotes destinados à sua máquina. | ||
+ | **Capture pacotes destinados ou originados da máquina 200.135.37.65. | ||
+ | **Faça com que os pacotes capturados anteriormente sejam salvos num arquivo, chamado “pacotes_capturados“. | ||
+ | |||
+ | '''C)''' Tabelas estáticas de roteamento | ||
+ | |||
+ | [[Imagem:Diagrama_para_construir_tabelas_de_roteamento_com_maquinas_virtuais-rede-2.jpg]] | ||
+ | |||
+ | #Configure as interfaces de rede (uma interface virtual – ip alias) de sua máquina servidora, conforme números de IPs sugeridos na. Todas as máscaras de rede devem ser 255.255.255.0 ou /24. Não configure gateway. | ||
+ | #Configure sua máquina virtual servidora para rotear pacotes. | ||
+ | #Configure sua máquina virtual cliente para ser seu cliente de rede, conforme Figura. | ||
+ | #Montar as tabelas estáticas de roteamento de modo que todas as máquinas tenham acesso entre si (“pingando” ente elas). | ||
+ | #Faça testes. Se houver problemas usar tcpdump para monitorar individualmente as interfaces e verificar onde está o problema. Lembre-se que os pacotes devem ter rota de ida e volta, portanto o problema pode ser no seu roteador ou de seu vizinho. Uma boa sequência de testes é: | ||
+ | ##Pingar entre cliente e roteador. | ||
+ | ##Do cliente pingar a interface externa do roteador. | ||
+ | ##Do cliente pingar a máquina do professor. Se funcionar até aqui seu roteador estará corretamente configurado. | ||
+ | ##Do roteador pingar a interface externa de outro roteador. | ||
+ | ##Do roteador pingar outro cliente. | ||
+ | ##Do seu cliente pingar outro cliente. | ||
+ | |||
+ | '''D)''' NAT | ||
+ | #Desfaça as tabelas de roteamento e configure a máquina servidora para fazer NAT, nos mesmos moldes do item '''C)'''. | ||
+ | #A partir do cliente faça testes “pingando” para redes externas e para as redes dos colegas. | ||
+ | #Qual é a diferença de “comportamento” quando comparado ao cenário das tabelas estáticas de roteamento? | ||
+ | {{Collapse bottom}} | ||
=Exercícios de fixação / Desafios= | =Exercícios de fixação / Desafios= |
Edição das 15h54min de 10 de setembro de 2014
Professores: Odilson Tadeu Valle e Tulio Alberton Ribeiro
Encontros: 2ª feira, 4ª feira e 6ª feira entre 13h30 às 15h20 turma A e 15h40 às 17h30 turma B
Atendimento paralelo: Odilson 3ª feira das 9h40 às 10h35 e 4ª das 14h25 às 15h20. Local: Lab. de Desenvolvimento.
Email: odilson@ifsc.edu.br e tulio.alberton@ifsc.edu.br
IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação e aguardar o parecer da coordenação.
Referências bibliográficas
- Odilson T. Valle . Administração de Redes com Linux: Fundamentos e Práticas. 1. ed. Florianópolis: Publicação do IF-SC, 2010. v. 1000. 302p .
- Valle, Odilson Tadeu. Gerência de Redes. IFSC - Unidade São José. 2009.
- Guia Foca Linux (intermediário ou avançado)
- Demais referências contidas na página principal de GER.
Material de Apoio
Site para treinar comandos básicos. Simula um terminal shell do Linux. Não apresenta todas as funcionalidades do shell normal.
Site para treinar desenvolvimento de shell scripts.
Cronograma de atividades
Diário de aulas proposto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Diário de aulas
Aula 1 - 30/7/14: Apresentação da disciplina |
---|
|
Aula 2,3,4 - 1,4,6/8/14: Revisão dos comandos básicos |
---|
Objetivo: Revisão dos comandos básicos, familiarização e fixação do conteúdo. Material Auxiliar (Comandos básicos 01) (Comandos básicos 02 ) ( Slides Aula Introdução ao Linux Tulio.)
|
Aula 5 - 8/8/14: Editor VI |
---|
Objetivo: Familiarização com o editor e ser capaz de executar comandos simples, porém úteis para manipulação de arquivos. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula.
|
Aula 6 - 11/8/14: Lógica de Programação |
---|
Introdução à Lógica de Programação Introdução ao Shell (Slides Prof. Gustavo Introdução ao Shell, Slides Prof. Glauco Introdução ao Shell). Objetivo: Criar um script Shell com comandos básicos e que seja capaz de executar tarefas simples. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula. ROTEIRO:
Gabarito:
|
Aula 7,8,9 - 13,15,18/8/14: Shell Script |
---|
Objetivo: Ser capaz de implementar as estruturas de teste if, while e for, para a execução de tarefas simples no Linux. ROTEIRO:
Gabarito Ex. 3:
|
Aula 10 - 20/8/14: Dúvidas e preparação para avaliação |
---|
Aula 11 - 22/8/14: Dúvidas e Festival de Música |
---|
Aula 12 - 25/8/14: Usuários e grupos |
---|
Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional. Apostila, páginas 61 a 65. Slides Aula Tulio: Slides Aula Usuários, Grupos e Permissões Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações:
As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de bases de dados de usuários). Dentre elas, a mais simples é composta pelo arquivo /etc/passwd: root:x:0:0:root:/root:/bin/bash sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash Acima um exemplo de arquivo /etc/passwd Cada linha desse arquivo define uma conta de usuário no seguinte formato: nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell O campo senha em /etc/passwd pode assumir os valores:
O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:
Um exemplo do arquivo /etc/shadow segue abaixo: root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922:::::: suse-ncc:!:13922:0:99999:7::: uucp:*:13922:::::: wwwrun:*:13922:::::: roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7::: Exercício: quando a senha do usuário roberto irá expirar ? Um grupo é um conjunto de usuários definido da seguinte forma:
Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo /etc/group a mais simples delas: root:x:0: trusted:x:42: tty:x:5: utmp:x:22: uucp:x:14: video:x:33:roberto www:x:8:roberto users:x:100: radiusd:!:108: vboxusers:!:1000: Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em /etc/passwd), ou que aparecem listados em /etc/group. Gerenciamento de usuários e gruposPara gerenciar usuários e grupos podem-se editar diretamente os arquivos /etc/passwd, /etc/shadow e /etc/group, porém existem utilitários que facilitam essa tarefa:
Esses utilitários usam os arquivos /etc/login.defs e /etc/default/useradd para obter seus parâmetros padrão. O /etc/adduser.conf tem o mesmo intuito mas é seta exclusivamente os parâmetros do comando adduser. O arquivo /etc/login.defs contém uma série de diretivas e padrões que serão utilizados na criação das próximas contas de usuários. Seu principal conteúdo é: MAIL_DIR dir # Diretório de e-mail PASS_MAX_DAYS 99999 #Número de dias até que a senha expire PASS_MIN_DAYS 0 #Número mínimo de dias entre duas trocas senha PASS_MIN_LEN 5 #Número mínimo de caracteres para composição da senha PASS_WARN_AGE 7 #Número de dias para notificação da expiração da senha UID_MIN 500 #Número mínimo para UID UID_MAX 60000 #Número máximo para UID GID_MIN 500 #Número mínimo para GID GID_MAX 60000 #Número máximo para GID CREATE_HOME yes #Criar ou não o diretório home Como o login.defs o arquivo /etc/default/useradd contém padrões para criação de contas. Seu principal conteúdo é: GROUP=100 #GID primário para os usuários criados HOME=/home #Diretório a partir do qual serão criados os “homes” INACTIVE=-1 #Quantos dias após a expiração da senha a conta é desativada EXPIRE=AAAA/MM/DD #Dia da expiração da conta SHEL=/bin/bash #Shell atribuído ao usuário. SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários. GROUPS=video,dialout CREATE_MAIL_SPOOL=no O /etc/adduser.conf também possui uma série de padrões que funcionam especificamente para o comando adduser: DSHELL=/bin/bash #Shell atribuído ao usuário. DHOME=/home #Diretório a partir do qual serão criados os “homes” SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários. FIRST_UID=1000 #Número mínimo para UID LAST_UID=29999 #Número máximo para UID FIRST_GID=1000 #Número mínimo para GID LAST_GID=29999 #Número máximo para GID QUOTAUSER="" #Se o sistema de cotas estiver funcional, pode atribuir quota ao usuário criado. AtividadeObs.: Na máquina virtual (ARC-2-servidor) é possível ter vários usuários logados simultaneamente, para isto basta logar o primeiro usuário (aluno) normalmente e, para os demais usuários, abrir novos terminais com as teclas: <Alt> + <F2>, <Alt> + <F3>, <Alt> + <F4> .... Para retornar a um dos usuários logados basta digitar o conjunto de teclas (<Alt> + <F?>) do respectivo usuário.
|
Aula 13 - 27/8/14: Primeira avaliação |
---|
Aula 14 - 29/8/14: Permissões |
---|
Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa. Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos. O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes. Quando se executa ls -l em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte: > ls -l total 403196 drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/ -rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2 -rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2 -rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe -rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe > As colunas que aparecem na listagem são:
O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10). Existem três modos distintos de permissão de acesso: leitura (read), escrita (write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito (de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de execução somente se aplica a arquivos que podem ser executados, obviamente, como programas já compilados ou script shell. Os valores válidos para cada uma das colunas são os seguintes:
A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório. A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários:
Há também o utilitário umask, que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos:
Atividade
|
Aula 15 (1/09/2014): Instalação de Pacotes |
---|
Slide). Página oficial do apt-get É necessário estar com e rede funcional
|
Aula 16 (3/09/2014): Sistema de arquivos |
---|
Material para consulta: Gerência de Redes páginas 51 a 57. (Slide Prof. Glauco [1]) Comandos importantes:cfdisk: aplicativo para particionamento de discos. Ex: cfdisk /dev/sdb. Obs.: clique em Gravar ao final. mkfs.ext4: formata uma determinada partição com o sistema de arquivos do tipo ext4. Ex: mkfs.ext4 /dev/sdb1. mount: monta partição. Ex: mount /dev/sdb1 /dados. umount: desmonta partição. Ex: umount /dados. df: mostra as partições montadas e seus pontos (diretórios) de montagem. Ex: df -h Roteiro de atividades
|
Aula 17 (5/9/2014): Cotas em Disco |
---|
Material para consulta: Gerência de Redes páginas 68 à 70.
|
Aula 18 (8/9/2014): Agendamento de Tarefas |
---|
Material para consulta: Apostila, capítulo 19. Utilize o crontab para executar as seguintes tarefas:
|
Aula 19 (10/9/2014): Políticas de Backup |
---|
Apostila, capítulo 20. AMANDA, the Advanced Maryland Automatic Network Disk Archiver |
Aula 20 (12/9/2014): Interfaces de rede e rotas estáticas | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Apostila, capítulo 22.
Exercícios de fixação / Desafios
|