Gerência de Redes de Computadores (técnico) (diário 2010-1)
- Endereço encurtado: http://bit.ly/gar20101
- Diário de acordo com o plano de ensino.
Projeto da Disciplina
A disciplina está orientada à resolução de um "grande" problema: projeto e implementação de duas redes de computadores interligadas via Internet - atendendo matriz e filial de uma mesma empresa. Estas duas redes deverão prover serviços internos a cada uma das unidades, bem como serviços de uso externo (outra unidade e/ou funcionários em trânsito).
A ideia é permitir que os funcionários possam trabalhar de qualquer ponto da Internet com o mínimo de perda de acesso aos dados. Ou seja, o acesso virtual à rede (serviços, ferramentas e dados) deverá ser equivalente ao acesso físico - dentro da matriz ou da filial.
Para fins didáticos, serão usados apenas 4 computadores para criar o ambiente interno da empresa: <graphviz> graph Empresa {
Internet [shape=diamond]
subgraph clusterMatriz { label=Matriz cliente_Matriz [label=Cliente] servidor_Matriz [label=Servidor, shape=Mrecord]
servidor_Matriz -- cliente_Matriz }
subgraph clusterFilial { label=Filial cliente_Filial [label=Cliente] servidor_Filial [label=Servidor, shape=Mrecord]
servidor_Filial -- cliente_Filial }
Internet -- servidor_Matriz Internet -- servidor_Filial
} </graphviz>
Serviços
Cada unidade deverá ter serviços que provejam o ambiente de trabalho aos seus usuários:
- Transparentes ao usuário final:
- Facilitadores: serviços de automatização dos processos de configuração dos componentes da rede, bem como localização de serviços voltados aos usuários.
- Diretórios e Bancos de Dados: organização de dados para acesso fácil, rápido e controlado.
- Acesso remoto: o controle central das duas redes, em particular dos servidores, será realizado pelo administrador de redes da matriz.
- Gerência: garantia de qualidade dos serviços prestados.
- De uso direto do usuário final:
- Compartilhamento: troca de arquivos entre os usuários.
- Serviços específicos: se possível, encapsulados em ferramentas mais genéricas para veiculação através da rede. Exemplo: aplicativos para ERP, CRM e BI via ambiente Web ou através de túneis seguros.
- Comunicação: texto, voz e vídeo - de forma síncrona ou não.
Observações
- Tráfego não controlado (via Internet) deverá, sempre que possível, ser protegido de terceiros utilizando criptografia.
- Informação útil a toda a empresa deverá estar armazenada no servidor da matriz. Ao servidor da filial, somente deverão residir informações desta unidade.
- O acesso aos dados deverá ser o mais transparente possível ao usuário final. Cabe apenas ao administrador de rede e/ou de sistemas conhecer todos as vias de tráfego da informação.
Visão Geral de Administração de Sistemas e de Rede
09/02: História dos S.O.s e Linguagens de Programação
- Tópicos: história e evolução dos sistemas operacionais e das redes de computadores.
- Páginas da apostila: 11-15
- Para consulta: dicionário de comandos *nix.
- Referências externas:
10/02: Instalação de S.O.s Linux
- Sistemas instalados: Ubuntu Linux 9.10 como servidor.
- Instalação mínima.
- Recomendações de particionamento para servidores - em particular o uso de LVM.
12/02: Intepretador de Comandos
- Tópicos: interpretador de comandos bash, criação de um script shell:
#!/bin/bash
...
Atividade 1
O problema: contar quantos usuários do sistema possuem a expressão adm em seu nome de login?
Proposta de solução
Há várias formas de resolver o problema. Uma delas consiste em:
- Listar todos os usuários do sistema. Para fins didáticos, serão considerados apenas os usuários do arquivo /etc/passwd.
- Filtrar, deste arquivo, apenas os nomes de login.
- Filtrar apenas os usuários com a expressão adm.
- Contar as ocorrências.
Como o processo é sequencial, esse problema pode ser resolvido via script shell, aqui denominado usuariosAdm:
vi usuariosAdm
cujo conteúdo é:
#!/bin/bash
echo "Há:"
cat /etc/passwd | cut -d : -f 1 | grep adm | wc -l
echo "usuários com a expressão adm em seu nome de login."
Para executar o script, é preciso liberar a execução para, em seguida, rodar o script como um programa regular:
chmod 755 usuariosAdm ./usuariosAdm
19/02: Intepretador de Comandos
Atividade 1
Montar um shell script que apresenta, sequencialmente, os estados do processador, memória e espaço em disco em todas as partições montadas. Variante: criar um menu para que o usuário possa escolher entre apenas um destes itens.
Proposta de solução
- Original:
#!/bin/bash
echo "Estado do processador:"
top -n 1 -b | head -n 3
echo ""
echo "Estado da memória:"
free
echo ""
echo "Espaço em disco:"
df -h
- Variante:
#!/bin/bash
Atividade 2
Montar um shell script para apresentar a quantidade de bytes enviados e recebidos em todas as interfaces de rede Ethernet. O interessante é que sejam coletados estes dados de 10 em 10s cinco vezes antes de encerrar o programa. Variante: apresentar, a cada 10s, apenas os bytes enviados e recebidos neste período de tempo - ao invés do acumulado apresentado originalmente pelo sistema.
Proposta de solução
- Original:
#!/bin/bash
date
echo "Situação da interface de rede eth0:"
ifconfig eth0 | head -n 8 | tail -n 1
sleep 10
echo ""
date
echo "Situação da interface de rede eth0:"
ifconfig eth0 | head -n 8 | tail -n 1
sleep 10
echo ""
date
echo "Situação da interface de rede eth0:"
ifconfig eth0 | head -n 8 | tail -n 1
sleep 10
echo ""
date
echo "Situação da interface de rede eth0:"
ifconfig eth0 | head -n 8 | tail -n 1
sleep 10
echo ""
date
echo "Situação da interface de rede eth0:"
ifconfig eth0 | head -n 8 | tail -n 1
- Variante:
#!/bin/bash
Atividade 3
Criar um script que salvaguarda (backup) os dados pessoais de um usuário, compactando-os e deixando apenas acessíveis ao administrador root, e o remove do sistema. Variante: remover os grupos vazios - que originalmente eram "povoados" apenas pelo usuário removido.
Proposta de solução
- Original:
#!/bin/bash
# Descobrir qual o usuário a ser removido.
echo -n "Por favor, digite o nome do usuário: "
read USUARIO
# Descobrir qual é o dir. pessoal deste usuário.
DIR=`cat /etc/passwd | grep $USUARIO | cut -d : -f 6`
# Dirigir-se até o diretório pessoal do usuário.
echo "Avançando até o diretório $DIR..."
sleep 2
cd $DIR
# Escolher um diretório para "backups" de usuários.
echo "Criando um diretório de backups..."
sleep 2
mkdir /var/backups/usuariosAntigos
chmod 700 /var/backups/usuariosAntigos
chown root /var/backups/usuariosAntigos
# Fazer um "backup" deste diretório em um único arquivo.
# Compactar o "backup".
echo "Criando o backup e compactando-o..."
sleep 2
tar czf /var/backups/usuariosAntigos/$USUARIO.tar.gz .
# Proteger o acesso ao "backup".
echo "Protegendo o backup..."
sleep 2
chmod 400 /var/backups/usuariosAntigos/$USUARIO.tar.gz
# Apagar o diretório original.
cd ..
echo "Prestes a apagar o diretório $DIR em 5 segundos..."
echo "Problemas? Ctrl+C para cancelar a operação..."
sleep 5
rm -rf $DIR
# Apagar o usuário original.
echo "Apagando o usuário $USUARIO..."
sleep 2
userdel $USUARIO
echo "Usuário apagado com sucesso."
- Variante:
#!/bin/bash
24/02: Início do Sistema e Scripts
Descrição do início do sistema para o sistema instalado: Ubuntu Linux versão 9.10.
digraph Inicio {
Kernel -> "/" Kernel -> "/sbin/init" "/" -> "/sbin/init" "/sbin/init" -> "/etc/init/*" "/etc/init/*" -> "/etc/init.d/rcS" -> "/etc/rcS.d/S*" -> "/etc/init.d/rc <runlevel>" "/etc/init/*" -> "/etc/init.d/rc <runlevel>" -> "/etc/rc<runlevel>.d/S*" }
</graphviz>Revisão dos Conceitos de Redes de Computadores
26/03: Redes Locais
- Tópicos: Arquiteturas de rede, protocolo IP, cálculo de máscara de rede.
- Referência externa: IEEE OUI and Company_id Assignments.
03/03: Máscara de Rede
A máscara de rede, na prática, define os limites da sub-rede a ela aplicada; ou seja, a faixa de IPs associados à sub-rede. Um cenário interessante para o estudo está descrito abaixo, onde a sub-rede 10.0.0.0/24 foi segmentada para comportar todas as sub-redes expostas no exemplo.
Na sub-rede em vermelho, como há 14 computadores, a máscara de rede /28 (255.255.255.240) é suficiente para comportar todos os IPs, que podem ser os primeiros da sub-rede original: 10.0.0.0/28.
graph rede10 { rankdir="LR"
C01 -- S01 S02 -- C02 S03 -- C03 S04 -- C04 S05 -- C05 S06 -- C06 S07 -- C07 S08 -- C08 S09 -- C09 S10 -- C10 S11 -- C11 S12 -- C12 S13 -- C13 S14 -- C14
S01 -- S02 [color="red"] S01 -- S03 [color="red"] S01 -- S04 [color="red"] S01 -- S05 [color="red"] S01 -- S06 [color="red"] S01 -- S07 [color="red"] S01 -- S08 [color="red"] S01 -- S09 [color="red"] S01 -- S10 [color="red"] S01 -- S11 [color="red"] S01 -- S12 [color="red"] S01 -- S13 [color="red"] S01 -- S14 [color="red"] }
</graphviz>- Legenda:
- S: servidor
- C: cliente
05/03: Configuração de Rede
10/03: Redes Remotas
Serviços em Rede: Facilitadores
12/03: Relógio e Agendamento de Tarefas
17/03: Registros do Sistema e Prova Prática
19/03: DHCP e Zeroconf
Serviços em Rede: Diretórios
24/03: DNS e LDAP
Serviços em Rede: Compartilhamento
26/03: NFS e SMB
31/03: SMB
07/04: Prova Prática
09/04: HTTP
14/04: HTTP
- Tópicos: Autenticação, HTTPS.
16/04: HTTP
- Aplicações Web.
23/04: HTTP
- Tópicos: DAV, controle de versão.
Serviços em Rede: Comunicação
28/04: Correio Eletrônico
30/04: Comunicação Instantânea
- Tópicos: XMPP, protocolos proprietários, redes sociais.
05/05: VoIP
07/05: VoIP
Serviços em Rede: Acesso Remoto
12/05: SSH, VNC, RDP
- O futuro: computação em nuvem, virtualização, mobilidade.
14/05: Prova Prática
Gerência de Rede
19/05: Conceitos
- Tópicos: SNMP.
21/05: Scritps
26/05: Monitoramento
28/05: Contabilização
02/06: Contabilização
04/06: Segurança
- Tópicos: backup.
- Ferramentas: rsync, amanda, bacula, etckeeper + (git | bazaar | mercurial).
09/06: Segurança
11/06: Prova Prática
Projeto Integrador
16/06 até 09/07: Projeto Integrador
- Conheça o projeto do semestre anterior
- Para este semestre