Gerência de Redes de Computadores (técnico) (diário 2010-2)
- Endereço encurtado: http://bit.ly/gar20102
Sobre a disciplina
- Dinâmica das atividade práticas: os alunos serão organizados em duplas para atuar como roteadores e servidores em rede.
- Avaliação: 4 provas práticas de conteúdo cumulativo.
Visão geral de administração de sistemas e de rede
- Revisão dos conceitos de sistemas operacionais e arquitetura TCP/IP, endereçamento e roteamento IP e interpretador de comandos.
- O sistema operacional em rede, não de rede.
- Processos locais são serviços em rede.
28/07: 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.
- Referências externas:
02/08: Instalação de S.O. GNU/Linux
- Sistemas instalados: Ubuntu Linux 9.10 como servidor.
- Instalação mínima.
- Recomendações de particionamento para servidores - em particular o uso de vários pontos de montagem.
04/08: Usuários, processos e dados
- Tópicos: comandos de administração de usuários, grupos e senhas de usuários, processos e de sistemas de arquivos.
- Para consulta: dicionário de comandos *nix.
09/08: Do início do sistema à configuração de rede
Descrição do início do sistema para o sistema instalado: Ubuntu Linux versão 9.10.
digraph Inicio {
subgraph clusterKernel { label="S.O." Kernel [shape=Mrecord] Kernel -> "/" [label=1,color=blue] Kernel -> "/sbin/init" [label=3,color=blue] "/" -> Kernel [label=2] subgraph clusterInit { label="init" "/sbin/init" -> "/etc/init/*" [label=4,color=blue] "/etc/init/*" -> "/etc/init.d/rcS" [label=5,color=blue] "/etc/init.d/rcS" -> "/etc/rcS.d/S*" [label=6,color=blue] "/etc/rcS.d/S*" -> "/etc/init/*" [label=7] "/etc/init/*" -> "/etc/init.d/rc <runlevel>" [label=8,color=blue] "/etc/init.d/rc <runlevel>" -> "/etc/rc<runlevel>.d/S*" [label=9,color=blue] } } }
</graphviz>Referência externa: Guia Foca GNU/Linux - intermediário - Rede
11/08: Segmentação de redes
- Atividades: segmente as seguintes sub-redes abaixo conforme as máscaras de rede.
- 10.20.032.0 de /21 para /23.
- 200.25.137.160 de / 28 para /30.
- 172.31.0.0 de /25 para /28.
- 192.167.46.0 de /23 para /28.
- 192.168.4.0/24 para 3 sub-redes, onde na primeira deve haver pelo 30 IPs válidos, na segunda 100 IPs válidos e na terceira 4 IPs.
16/08: Segmentação de redes
Configuração realizada sobre o protocolo IP:
- Endereçamento.
- Roteamento estático.
- NAT.
graph redes { rankdir=LR A [shape=Mrecord,label="<0>Cliente|172.31.0.1/19"] B [shape=Mrecord,label="<0>Cliente|<1>172.31.0.2/19"] C [shape=Mrecord,label="<2>172.31.128.2/19|<0>Roteador|<1>172.31.0.2/19"] A:1 -- C:1 [color=blue] B:1 -- C:1 [color=blue]
D [shape=Mrecord,label="<0>Cliente|172.31.32.1/19"] E [shape=Mrecord,label="<0>Cliente|<1>172.31.32.2/19"] F [shape=Mrecord,label="<1>172.31.32.3/19|<0>Roteador|<2>172.31.128.1/19"] D:1 -- F:1 [color=blue] E:1 -- F:1 [color=blue]
G [shape=Mrecord,label="<0>Cliente|172.31.64.1/19"] H [shape=Mrecord,label="<0>Cliente|<1>172.64.0.2/19"] I [shape=Mrecord,label="<2>172.31.128.3/19|<0>Roteador|<1>172.64.0.2/19"] G:1 -- I:1 [color=blue] H:1 -- I:1 [color=blue]
J [shape=Mrecord,label="<0>Cliente|172.31.96.1/19"] K [shape=Mrecord,label="<0>Cliente|<1>172.31.96.2/19"] L [shape=Mrecord,label="<1>172.31.96.3/19|<0>Roteador|<2>172.31.128.4/19"] J:1 -- L:1 [color=blue] K:1 -- L:1 [color=blue]
C:2 -- F:2 [color=red] C:2 -- I:2 [color=red] C:2 -- L:2 [color=red] F:2 -- I:2 [color=red] F:2 -- L:2 [color=red] I:2 -- L:2 [color=red] }
</graphviz>Legenda:
- Azul: redes entre estações e roteador.
- Vermelho: rede entre roteadores.
18/08: Simulado de prova
23/08: Revisão de comandos básicos de S.O.
- Revisão de comandos de manipulação de usuários e grupos, listagem de processos e pontos de montagem.
25/08: Prova
Para responder à prova, assuma o seguinte conjunto de usuários:
- João e Maria pertencem apenas ao grupo A.
- Isaac e Jacó pertencem apenas a B.
- Beatriz e Pedro pertencem apenas a C.
- José pertence a A e B.
- Lucas pertence a A e C.
- Mateus pertence a B e C.
- Aarão pertence a A, B e C.
Questões:
- Jacó e Maria devem ter acesso pleno a /home/documentos. Isaac pode apenas ler o mesmo diretório.
- Aarão e Beatriz podem ler /var/log/* (todos os arquivos do diretório).
- Ao iniciar o sistema, deve rodar um script contando quantos processos correntes há para, em seguida, gerar um arquivo-relatório armazenando todos essas contagens.
- Quantos e quais processos, atualmente, são do usuário root? Crie um script que informa tais valores.
- Quantas partições há no sistema corrente? Informe tipos e tamanhos.
- Bônus: Crie uma partição do tipo EXT3 para abrigar os sites, os quais ficarão no diretório /var/www. Monte a referida partição.
- Configure a 5a. sub-rede da classe cheia (classful network) 172.14.37.0/25, a qual foi dividida usando a nova máscara /28. Identifique máscara e um IP válido.
- Segmente a rede 192.168.24.0/25 em 3 partes, onde cada uma deve conter:
- pelo menos 10 IPs.
- pelo menos 20 IPs.
- pelo menos 50 IPs.
Serviços em rede
- Catálogo de protocolos conhecidos: arquivo /etc/protocols.
- Catálogo de serviços conhecidos (well known ports): arquivo /etc/services.
- Comandos úteis para monitoramento de serviços e portas "abertas":
netstat -lnut
lsof -n | grep <porta>
fuser -v -n tcp <porta>
fuser -v -n udp <porta>
Assumindo o S.O. Ubuntu Linux:
Serviço | Porta/Protocolo | Programa principal | Arquivo de configuração principal | Arquivo de Registro |
NTP | 123/UDP | /usr/sbin/ntpd | /etc/ntp.conf | /var/log/syslog |
Cron | (serviço local) | /usr/sbin/cron | /etc/crontab | /var/log/syslog |
Syslog | 514/UDP | /usr/sbin/rsyslogd | /etc/rsyslog.conf | /var/log/messages |
DHCP | 67/UDP | /usr/sbin/dhcpd | /etc/dhcp3/dhcpd.conf | /var/log/syslog |
DNS | 53/UDP | /usr/sbin/named | /etc/bind/named.conf | /var/log/daemon.log |
SMB | 137/UDP, 138/UDP, 139/TCP, 445/TCP | /usr/sbin/smbd, /usr/sbin/nmbd | /etc/samba/smb.conf | /var/log/samba/log.smbd, /var/log/samba/log.nmbd |
HTTP | 80/TCP, 443/TCP | /usr/sbin/apache2 | /etc/apache2/apache2.conf | /var/log/apache2/access.log |
SMTP | 25/TCP | /usr/lib/postfix/master | /etc/postfix/main.cf | /var/log/mail.log |
IMAP | 143/TCP | /usr/lib/dovecot/imap | /var/log/auth.log |
30/08: Serviços de sistema e relógio
NTP
- Sincronização do relógio com NTP.
Cron
- Agendamento de tarefas com cron.
Syslog
- Registro de eventos, ou logs, através do syslog.
Obs.: a documentação do Foca Linux, guia de referência, está baseada na distribuição Debian GNU/Linux, ligeiramente diferente do Ubuntu Linux usado em aula; contudo, há equivalência entre ambos em praticamente todo o conteúdo abordado neste curso, como por exemplo o caso dos daemons syslogd e klogd e o rsyslogd.
01/09: DHCP
- Necessidade: configuração facilitada em rede.
- Proposta de solução: distribuição automatizada de endereços de redes através de ponto/serviço central.
- Protocolo: Dynamic Host Configuration Protocol.
- Porta: 67/UDP.
- Diálogo (em vermelho broadcast e em azul unicast):
- Implementação: ISC.
digraph DHCP { Servidor [shape=circle] Cliente [shape=plaintext]
Cliente -> Servidor [label="1: Discover",color=red] Servidor -> Cliente [label="2: Offer",color=blue] Cliente -> Servidor [label="3: Request",color=blue] Servidor -> Cliente [label="4: ACK",color=blue] }
</graphviz>Servidor
- Instalação e configuração:
aptitude install dhcp3-server
vi /etc/dhcp3/dhcpd.conf
- Conteúdo do arquivo /etc/dhcp3/dhcpd.conf:
# Sem integração entre DHCP e DNS. ddns-update-style none; # Rede local: 192.168.2.0/24 subnet 192.168.2.0 netmask 255.255.255.0 { # IP range 192.168.2.200 192.168.2.219; # Máscara de rede option subnet-mask 255.255.255.0; # Broadcast option broadcast-address 192.168.2.255; # Rota-padrão option routers 192.168.2.1; # Servidor(es) DNS: OpenDNS e Google option domain-name-servers 208.67.222.222, 8.8.8.8; # Tempo de aluguel default-lease-time 3600; max-lease-time 14400; } # OPCIONAL: Um cliente em especial ganhará sempre o mesmo IP host clienteEspecial { hardware ethernet 08:00:27:60:13:78; fixed-address 192.168.2.220; }
- Monitoramento do serviço:
tail -f /var/log/syslog &
tail -f /var/lib/dhcp3/dhcpd.leases &
- Aplicação dos valores (do arquivo):
/etc/init.d/dhcp3-server restart
Por fim, confirme se o serviço está rodando.
Cliente
- Instalação e configuração:
aptitude install dhcp3-client
vi /etc/network/interfaces
- Conteúdo do arquivo /etc/network/interfaces:
# Interfaces loopback auto lo iface lo inet looback # Interface Ethernet 0 auto eth0 iface eth0 inet dhcp
- Aplicação dos valores (do arquivo):
/etc/init.d/networking restart
Colaboração: Karine.
06/09: DHCP
- Revisão do assunto.
08/09: Correção da prova
13/09: DNS
Um dos serviços mais importantes da Internet, uma vez que é responsável pela tradução de nomes de computadores - e seus domínios - em IPs e vice-versa em escala global.
Servidor
Este é um dos serviços mais delicados em sua configuração, uma vez que as falhas de configuração não inviabilizam o processo de rodar; ou seja, mesmo com má configuração o servidor iniciará. É preciso, portanto, estar sempre atento aos registros do serviço - no caso, o arquivo /var/log/daemon.log.
Como o arquivo principal /etc/bind/named.conf faz apenas referências a outros 3 arquivos, o primeiro arquivo de fato a ser modificado é /etc/bind/named.conf.options:
options { ... listen-on-v6 { any; }; listen-on { any; }; allow-recursion { 127.0.0.0/8; SUB-REDE/MÁSCARA; }; allow-query { any; }; allow-query-cache { any; }; };
Enquanto que o arquivo anterior tratava do serviço em linhas gerais, no arquivo /etc/bind/named.conf.local será criado o domínio redes.com.br e seu reverso:
... zone "redes.com.br" { type master; file "/etc/bind/redes.com.br"; }; zone "2.168.192.in-addr.arpa" { type master; file "/etc/bind/2.168.192.in-addr.arpa"; };
Próxima etapa: as informações específicas de domínio em /etc/bind/redes.com.br:
$TTL 86400 @ IN SOA ns1.redes.com.br. ederson.redes.com.br. ( 2010033101 ; serial 1d ; refresh 1h ; retry 1w ; expire 1d ; negative cache ttl ) @ IN NS ns1 ns1 IN A 192.168.2.101 www IN CNAME ns1 web IN CNAME ns1
e seu reverso, arquivo /etc/bind/2.168.192.in-addr.arpa:
$TTL 86400 @ IN SOA ns1.redes.com.br. ederson.com.br. ( 2010033101 ; serial 1d ; refresh 1h ; retry 1w ; expire 1d ; negative cache ttl ) @ IN NS ns1.redes.com.br. 1.0.0 IN PTR ns1
Nota: como o serviço pode rodar com má configuração, é interessante (re)iniciar o serviço com um monitor dos registros:
tail -f /var/log/daemon.log &
em uma janela, enquanto que na outra:
/etc/init.d/bind9 restart
Além disso, ferramentas como dig permitem consultas específicas aos registros criados (SOA, NS, MX, e outros).
Cliente
A configuração do cliente é feita de duas formas. Na forma manual, basta editar o arquivo /etc/resolv.conf:
search redes.com.br nameserver 127.0.0.1
Na forma automática, tanto o servidor DNS quanto os domínios de busca já são atribuídos pelo serviço anterior, DHCP.
digraph DNS { rankdir=LR
subgraph clusterDireto { label="redes.com.br" ns1 [shape=circle] www [shape=record] servidor [shape=record]
www -> ns1 [label=CNAME] servidor -> ns1 [label=CNAME] }
subgraph clusterReverso { label="2.168.192.in-addr.arpa" "101" [shape=record] }
ns1 -> "101" [label=A] "10.1" -> ns1 [label=PTR] }
</graphviz>