Mudanças entre as edições de "Gerência de Redes de Computadores (técnico) (diário 2009-2)"
Linha 330: | Linha 330: | ||
{ | { | ||
rankdir=LR | rankdir=LR | ||
− | splines= | + | splines=false |
subgraph clusterServidores | subgraph clusterServidores |
Edição das 10h10min de 30 de setembro de 2009
Cronograma
- Vide plano de ensino.
Capítulo 1: Visão Geral de S.O. em Rede e Serviços
30/07: NÃO HOUVE
31/07: NÃO HOUVE
06/08: NÃO HOUVE
07/08: NÃO HOUVE
13/08: História dos Sistemas Operacionais e Redes de Computadores
- Tópicos: história, evolução dos sistemas operacionais e das linguagens de programação, primeiros comandos no S.O. GNU/Linux.
- Páginas da apostila: 11-15
- Para consulta: dicionário de comandos *nix.
- Referências externas:
14/08: Instalação do Sistema Operacional Ubuntu Linux
- Tópicos: Ubuntu 9.04 versão servidor, particionamento, pacotes, usuários, shell ou interpretador de comandos.
- Páginas da apostila: 15-20
20/08: Atividades com o interpretador de comandos
Comandos recomendados: ls, mkdir, touch, ls, man, find, xargs, expr, grep, cut, adduser, groupadd, passwd, tar, which, umask, last, ntpdate, w.
- Quantas entradas (diretórios, arquivos, etc.) existem no sistema de arquivos global (o sistema como um todo)? Destas, quantas são diretórios?
find / | wc -l
find / -type d | wc -l
- No diretório /etc, quantos arquivos existem com a terminação .conf? Como realizar uma cópia de segurança (backup) dos mesmos? O comando xargs pode auxiliar na resposta, ou alternativamente utilizando argumentos do próprio comando find.
find /etc -type f -name \*conf | wc -l
mkdir /var/backup find /etc -type f -name \*conf -exec cp {} /var/backup \;
- Informe a quantidade de processos que os usuários root e aluno estão rodando num determinado tempo do sistema.
ps aux > /tmp/fotografia.txt grep ^root /tmp/fotografia.txt | wc -l grep ^aluno /tmp/fotografia.txt | wc -l
- Crie um usuário chamado ger que pertencerá aos grupos ifsc (principal) e root (secundário). Mostre o resultado de duas formas: manipulando diretamente os arquivos ou utilizando ferramentas de sistema.
groupadd ifsc groupadd root useradd -g ifsc -G root ger passwd ger
- Compacte o diretório /etc no arquivo /var/backups/etc.tar (comando tar). Em seguida, compacte-o ainda mais com o comando gzip. Realize o mesmo procedimento utilizando apenas um programa para processar o pedido.
tar cvf /var/backups/etc.tar /etc gzip /var/backups/etc.tar
tar czvf /var/backups/etc.tar.gz /etc
- Restrinja o acesso ao comando ping (o comando which pode ajudar a encontrar o seu endereço absoluto) para somente o usuário root.
chmod 700 /bin/ping
- Para o usuário ger, criado anteriormente, inverta a ordem dos grupos: primeiramente root e em seguida ifsc. O que muda ao se criarem novos arquivos?
usermod -g root ger usermod -G ifsc ger
- Para que serve o comando umask? Como utilizá-lo para garantir que todo arquivo criado por um certo usuário, como GER por exemplo, tenha apenas acesso de leitura+escrita ao dono?
Complemento das permissões de arquivos novos.
umask 077
- É possível criar um soft link (ou apenas link) para outro soft link? Crie um arquivo no diretório /tmp, aponte um link para o mesmo e faça os testes. Ao mudar o conteúdo do link, muda a data de modificação do arquivo original? Por quê?
sim.
Muda a data, porque é o mesmo arquivo.
- O comando last informa as últimas sessões de usuário do sistema, além de (re)inícios do sistema. Quantas vezes o sistema foi reiniciado? Informe hora e data. (Caso não haja nenhuma informação, reinicie manualmente o sistema com o comando reboot para registrar alguma ação).
last | grep ^reboot | cut -c 40-55
- Quantos usuários estão conectados no sistema? Informe usuários e o nome do seu terminal de acesso. Todos os terminais de acesso, uma vez que são dispositivos, existem no diretório correspondente, /dev?
expr `w | wc -l` - 2
sim, existem.
- O que representa o diretório /proc/1, que sempre existe em todo sistema Linux (com configurações comuns)?
É a descrição do processo número 1; ou seja, o processo /sbin/init.
21/08: Atividades com o interpretador de comandos
- Tópicos: proposta de solução para os problemas apresentados no dia anterior.
27/08: Do início do sistema aos serviços em rede
- Tópicos: início do sistema, bootstrap loader, o processo init, scripts de início, máscara de rede.
- Páginas da apostila: 101-106
- Iniciando um Ubuntu Linux: os passos até a configuração de rede.
28/08: Redes locais e remotas
- Tópicos: endereço IP, máscara de rede, broadcast, roteamento e tabela de roteamento.
- Atividades:
- Identifique os endereços de rede e de broadcast para as combinações IP válido/máscara de rede:
- 216.45.234.65/26
- 145.43.78.231/29
- 172.31.146.190/23
- 10.0.0.0/30
- 171.34.84.33/20
- Segmente as seguintes redes em 8 sub-redes de igual tamanho:
- 200.216.45.0/25
- 10.20.32.0/20
- Segmente as seguintes redes em 4 sub-redes para conter, respectivamente, 6, 14, 30 e 20 computadores:
- 200.125.45.0/24
- 172.16.64.0/18
- Segmente a rede 10.0.0.0/8 conforme a figura abaixo. Para cada sub-rede apresente, na resposta:
- Endereços de rede;
- IPs válidos;
- Máscara de rede;
- Broadcast;
- Roteamento de estações e roteadores.
- Identifique os endereços de rede e de broadcast para as combinações IP válido/máscara de rede:
<graphviz> graph Rede { antialias=true
Internet [shape=diamond] central [shape=Mrecord] R1 [shape=Mrecord] R2 [shape=Mrecord] R3 [shape=Mrecord] R4 [shape=Mrecord]
Internet -- central [label="192.168.2.1/24"] central -- R1 central -- R2 central -- R3 central -- R4 R1 -- "RedeA: 30 estações" R2 -- "RedeB: 60 estações" R3 -- "RedeC: 40 estações" R4 -- "RedeD: 150 estações" } </graphviz>
Nomenclatura:
- Retângulo (de bordas arredondadas): roteador.
- Elipse: rede de estações.
03/09 Serviços básicos locais e em rede
- Tópicos: agendamento de tarefas, MAC, ARP, sincronização de relógio em rede.
- Páginas da apostila: 77-78
- Referências externas:
- Configuração dinâmica de rede vista em aula:
ifconfig eth1 192.168.2.101 netmask 255.255.255.0 route add default gw 192.168.2.1 echo "nameserver 172.18.0.1" > /etc/resolv.conf
- Configuração estática de rede vista em aula - equivalente à dinâmica:
vi /etc/network/interfaces
com o conteúdo:
auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 192.168.2.101 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.1 dns-nameservers 172.18.0.1
e aplicando a configuração com:
/etc/init.d/networking restart
04/09: Logs do sistema
- Tópicos: registro de eventos (logs).
- Referências externas:
Exemplos de linhas para o arquivo de configuração /etc/syslog.conf:
mail.info /var/log/mail.info *.emerg * auth,authpriv.* root kern.warn @servidorPrincipal
10/09: Preparativos para a primeira prova
- Confira a prova realizada no semestre passado, bem como a atividade preparatória (que explica a tarefa). Realize as questões utilizando os comandos do S.O. ao invés de manipular os arquivos de configuração - serão necessários os comandos ifconfig, route e traceroute (se houver, caso contrário instale-o com o comando apt-get). Para o exercício, utilize a imagem .ISO do Ubuntu Linux 9.04 (endereço temporário).
- Some os uids de todos os usuários que possuem senha válida no sistema (ignorando, portanto, as senhas * ou !, que são formas de bloquear o usuário).
- O serviço NTP é um serviço de rede utilizado para sincronizar a hora dos computadores, ajustando-os para a hora certa do seu fuso horário. Com o comando ntpdate, sincronize o relógio com um dos principais servidores de hora do Brasil, o servidor ntp.cais.rnp.br. Atenção a relógios demasiadamente atrasados/adiantados: como isso é potencialmente prejudicial ao sistema, poderá ser necessário forçar esta operação. Após isso, verifique e informe, em segundos, quanto tempo o relógio local estava distante do relógio remoto.
- Atividades com os comandos wget, tar, gzip, gunzip e scp.
11/09: Primeira prova
Questão 0
- Instale o sistema operacional Ubuntu Linux 9.04 versão servidor, com as seguintes características:
- Particionamento com pelo menos 1,5GB para armazenamento de arquivos e 500MB para swap.
- Configure a interface de rede Ethernet para:
- Sub-rede: "192.168.2.0/25".
- Rota-padrão: primeiro IP válido da sub-rede.
- Servidor DNS: "172.18.0.1".
- Instale o pacote unzip para ler a primeira questão - ou utilize o sistema "real" do computador.
- Descarregue a primeira questão discursiva da prova:
- Primeira turma: http://192.168.2.101/questao1/questao1A.zip (senha: BoaSorte)
- Segunda turma: http://192.168.2.101/questao1/questao1B.zip (senha: Pegadinha)
Prova Alternativa
- Instale o S.O. com o seguinte particionamento:
- 1,8GB sistema de arquivos
- 0,3GB de área de troca
- Crie um usuário chamado ger pertencente aos grupos ifsc, 2009.2 e admin. Este usuário e os grupos serão usados posteriormente.
- Crie um diretório chamado /etc/init.d/scriptsNovos, cujo acesso de leitura e escrita é exclusivo do usuário ger e grupo adm. Dentro dele, crie um script chamado quemTrocouDeUsuario, que informa todas as operações de mudança de usuário do dia (su). Essa operação deve ser realizada periodicamente uma vez ao dia, e o resultado (a quantidade) deve ser jogada em um arquivo de log. Ao longo dos dias, esse arquivo conterá, em números, as operações de troca de usuário - uma informação por linha. Somente o usuário root ou todos do grupo adm podem executar esse script e jogar o resultado no arquivo final. A seguir, o exemplo de formato do arquivo de saída:
Dia 13/10: 7 operações de troca de usuário. Dia 14/10: 3 operações de troca de usuário.
17/09: DHCP
- Tópicos: configuração automática de endereços de rede.
- Páginas da apostila: 128 a 130
- Referência externa: ISC DHCP
- Exemplo de configuração:
# Relacionado a negociação entre cliente e servidor DHCP: DHCPACK e DHCPNAK # Para tanto, veja a RFC 2131 authoritative; # Tempos de "aluguel" default-lease-time 14400; max-lease-time 86400; # Escopo da sub-rede subnet 192.168.2.0 netmask 255.255.255.128 { # IP range 192.168.2.1 192.168.2.99; # Máscara de rede option subnet-mask 255.255.255.128; # Endereço de difusão option broadcast-address 192.168.2.127; # Rota(s) option routers 192.168.2.126; # Servidor(es) DNS option domain-name-servers 192.168.2.100; # Domínio DNS option domain-name "redes.sj.ifsc.edu.br"; }
Exercício
Informar, a cada minuto, quais clientes solicitaram e receberam com sucesso os endereços de rede via DHCP.
- Proposta de solução: segundo o protocolo DHCP, o sucesso de tal operação termina com uma mensagem DHCPACK, evento registrado no sistema via syslog. Consultando a configuração padrão do serviço syslog, vê-se que tais mensagens, DHCPACK, serão armazenadas no arquivo /var/log/syslog (Ubuntu Linux 9.04). Como a informação é regularmente enviada a cada minuto, convém portanto informar apenas os eventos do último minuto. Faz-se necessário, pois, usar também o serviço cron para agendar a tarefa.
- Tarefa 0: direcionar as mensagens DHCPACK para o administrador. Foi utilizada a facility local0 e a prioridade info para tal:
# vi /etc/syslog.conf ... local0.info /dev/xconsole
- Tarefa 1: o script:
# vi /usr/local/sbin/ultimosClientesDHCP #!/bin/bash AGORA=echo `LANG=en date +"%b %e %H:%M"` sleep 60 grep DHCPACK /var/log/syslog | grep "$AGORA" | logger -p local0.info
- Tarefa 2: agendamento da tarefa:
# vi /etc/crontab ... * * * * * root /usr/local/sbin/ultimosClientesDHCP
Explicando: como interessa informar ao usuário o que ocorreu no último minuto, pode-se usar duas abordagens: calcular qual o minuto anterior para pesquisar nos logs, o que é relativamente trabalhoso, ou esperar 1min (60s) e coletar o minuto atual. Na próxima execução, o próximo minuto será analisado, e assim por diante (ao invés de coletar o minuto anterior, fazer o mesmo com o atual).
Observação: é preciso que o serviço syslog possua permissões de escrita nos terminais do administrador, no caso o root. Para não comprometer a segurança, foi utilizado o terminal /dev/xconsole (projetado para este tipo de mensagem) para apresentar os resultados periodicamente.
18/09: DNS
Tópicos: serviço global de nomes/domínios, autoridade/delegação de domínios, servidores raiz.
- Páginas da apostila: 106-109
- Arquivo de exemplo named.conf.local:
zone "redes.sj.ifsc.edu.br" { type master; file "/etc/bind/redes.sj.ifsc.edu.br"; }; zone "2.168.192.in-addr.arpa" { type master; file "/etc/bind/2.168.192.in-addr.arpa"; };
- Arquivo redes.sj.ifsc.edu.br:
$TTL 86400 ; Start of Authority: início de autoridade @ IN SOA dns1.redes.sj.ifsc.edu.br. ederson.redes.sj.ifsc.edu.br. ( 2009040100 ; Serial 1d ; Refresh 4h ; Retry 1w ; Expire 1d ) ; Negative Cache TTL ; ; Name Server: servidores DNS @ IN NS dns1 @ IN NS dns2 @ IN MX 0 mail ; ; Address: endereço dns1 IN A 192.168.2.1 dns2 IN A 192.168.2.2 mail IN A 192.168.2.3 www IN A 192.168.2.100 ftp IN A 192.168.2.101 ; ; Canonical Name: "apelido" web IN CNAME www
- Arquivo 2.168.192.in-addr.arpa:
$TTL 86400 ; Start of Authority: início de autoridade @ IN SOA dns1.redes.sj.ifsc.edu.br. ederson.redes.sj.ifsc.edu.br. ( 2009040101 ; Serial 1d ; Refresh 4h ; Retry 1w ; Expire 1d ) ; Negative Cache TTL ; ; Name Server: servidores DNS @ IN NS dns1.redes.sj.ifsc.edu.br. @ IN NS dns2.redes.sj.ifsc.edu.br. ; ; Address: endereço 1 IN PTR dns1.redes.sj.ifsc.edu.br. 2 IN PTR dns2.redes.sj.ifsc.edu.br. 3 IN PTR mail.redes.sj.ifsc.edu.br. 100 IN PTR www.redes.sj.ifsc.edu.br. 101 IN PTR ftp.redes.sj.ifsc.edu.br.
24/09: NÃO HOUVE
- Celebração do Centenário do IFSC no campus São José.
25/09: DNS e Correio Eletrônico
- Tópicos: DNS reverso, os protocolos SMTP, POP3 e IMAP.
- Utilizados os protocolos SMTP e IMAP para envio e recebimento de emails, respectivamente.
- Exemplo: João <joao@google.com> envia um email para Maria <maria@yahoo.com
<graphviz> digraph SMTPeIMAP { rankdir=LR splines=false
subgraph clusterServidores { label=Servidores Google [shape=record,label="<0>google.com|<dns>DNS|<smtp>SMTP|<imap>IMAP|<pop3>POP3"] Yahoo [shape=record,label="<0>yahoo.com|<dns>DNS|<smtp>SMTP|<imap>IMAP|<pop3>POP3"] } subgraph clusterClientes { label=Clientes Joao [shape=Mrecord,label="<0>João|<email>joao@google.com"] Maria [shape=Mrecord,label="<0>Maria|<email>maria@yahoo.com"] } Joao:email -> Google:dns [label="1: A smtp.google.com"] Joao:email -> Google:smtp [label="2"] Google:smtp -> Yahoo:dns [label="3: NS yahoo.com"] Google:smtp -> Yahoo:dns [label="4: MX yahoo.com"] Google:smtp -> Yahoo:dns [label="5: A mx.mail.yahoo.com"] Google:smtp -> Yahoo:smtp [label="6"] Maria:email -> Yahoo:dns [label="7: A pop3.yahoo.com"] Maria:email -> Yahoo:pop3 [label="8"] } </graphviz>
- Utilizadas as implementações postfix e uw-imapd
apt-get install postfix vi /etc/postfix/main.cf ... myhostname = mail.redes.sj.ifsc.edu.br myorigin = redes.sj.ifsc.edu.br mydestination = mail, mail.redes.sj.ifsc.edu.br, redes.sj.ifsc.edu.br, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 #default_transport = error #relay_transport = error
apt-get install uw-imapd
01/10
02/10
08/10
09/10
15/10: Gerência de Rede
16/10
22/10
23/10
29/10
30/10
05/11
06/11
12/11
13/11
19/11
20/11
26/11: Projeto Integrador
- Deste dia até o final das aulas (18/12), haverá o Projeto Integrador.