Gerência de Redes de Computadores (técnico) (diário 2009-2)

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
A versão imprimível não é mais suportada e pode ter erros de renderização. Atualize os favoritos do seu navegador e use a função de impressão padrão do navegador.

Cronograma

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

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.

<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:

  1. Retângulo (de bordas arredondadas): roteador.
  2. 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

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

  1. 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).
  2. 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).
  3. 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.
  4. 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:

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.

Capítulo 2: Serviços em Rede

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.

<graphviz> digraph DNS { "named.conf" [shape=folder] "named.conf.local" [shape=folder] "redes.sj.ifsc.edu.br" [shape=folder] "2.168.192.in-addr.arpa" [shape=folder]

"named.conf" -> "named.conf.local" [label="include ..."] "named.conf.local" -> "redes.sj.ifsc.edu.br" [label="zone ..."] "named.conf.local" -> "2.168.192.in-addr.arpa" [label="zone ..."] } </graphviz>

24/09: NÃO HOUVE

25/09: DNS e Correio Eletrônico

  • Tópicos: DNS reverso, os protocolos SMTP, POP3 e IMAP.
  • Páginas da apostila: 112 a 114
  • 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

Integração entre os serviços

<graphviz> digraph Integracao { rankdir=LR

"/" [shape=record] "etc/" [shape=record] "dhcp3/" [shape=record] "bind/" [shape=record] "postfix/" [shape=record] "/" -> "etc/" "etc/" -> "dhcp3/" "etc/" -> "bind/" "etc/" -> "postfix/"

"dhcpd.conf" [shape=Mrecord,label="<nome>dhcpd.conf|<dominio>option domain-name redes.sj.ifsc.edu.br|<dns>option domain-name-servers 192.168.2.1"] "redes.sj.ifsc.edu.br" [shape=Mrecord,label="<nome>redes.sj.ifsc.edu.br|<ns>@ IN NS dns1.redes.sj.ifsc.edu.br|<mx>@ IN MX 0 mail.redes.sj.ifsc.edu.br|<nsIP>dns1 IN A 192.168.2.1|<mxIP>mail IN A 192.168.2.101"] "main.cf" [shape=Mrecord,label="<nome>main.cf|<maquina>myhostname = mail.redes.sj.ifsc.edu.br|<dominio>mydomain = redes.sj.ifsc.edu.br|<origem>myorigin = $mydomain|<destino>mydestination = $myhostname, $mydomain"] "dhcp3/" -> "dhcpd.conf":nome "bind/" -> "redes.sj.ifsc.edu.br":nome "postfix/" -> "main.cf":nome "dhcpd.conf":dominio -> "redes.sj.ifsc.edu.br":nome [color=blue] "dhcpd.conf":dns -> "redes.sj.ifsc.edu.br":nsIP [color=blue] "redes.sj.ifsc.edu.br":mx -> "main.cf":maquina [color=blue] "redes.sj.ifsc.edu.br":nome -> "main.cf":dominio [color=blue] } </graphviz>

01/10: Samba

  • Tópicos: compartilhamento de arquivos, domínio Windows.
  • Páginas da apostila: 115 a 117

02/10: Samba

  • Tópicos: atividades com compartilhamento de arquivos, permissões e propriedades.

08/10: Samba e HTTP

  • Tópicos: controle de acesso, túnel seguro, protocolos e serviços complementares.
  • Páginas da apostila: 109 a 112

Exemplo

  • Exemplo de configuração do servidor Samba: dois usuários, joao e maria, funcionários do setor de Contabilidade e Financeiro, respectivamente, querem compartilhar seus documentos na pasta da Contabilidade. Mesmo que seus grupos principais sejam diferentes, o compartilhamento se manterá funcional com a configuração a seguir - onde há o controle de acesso aossciado a uma modificação de permissões e grupo dos arquivos.

<graphviz> digraph Samba {

subgraph clusterUsuarios { label="Usuários" joao [shape=plaintext] maria [shape=plaintext] }

subgraph clusterDiretorios { label="Diretórios" "/" [shape=folder] "home/" [shape=folder] "documentos/" [shape=folder] "contabilidade/" [shape=folder] "etc/" [shape=folder] "samba/" [shape=folder] "/" -> "home/" -> "documentos/" -> "contabilidade/" "/" -> "etc/" -> "samba/" -> "smb.conf" }

subgraph clusterSamba { label="Samba"

"Contabilidade" [shape=Mrecord] }

joao -> "Contabilidade" [color=blue] maria -> "Contabilidade" [color=blue] "Contabilidade" -> "contabilidade/" [color=blue] "smb.conf" -> "Contabilidade" [color=red] }

</graphviz>

Criação dos usuários e grupos

  • Grupos
groupadd contabilidade
groupadd financeiro
  • Usuários
useradd -g contabilidade -G financeiro joao
useradd -g financeiro -G contabilidade maria
  • Senhas
passwd joao
smbpasswd -a joao
passwd maria
smbpasswd -a maria

Criação dos diretórios a serem compartilhados

mkdir -p /home/documentos/contabilidade
mkdir -p /home/documentos/financeiro

Compartilhamento de diretórios via Samba.

  • Modificação do arquivo /etc/samba/smb.conf
[global]
  workgroup = REDES
  ...
[Contabilidade]
  ; Diretório "real"
  path = /home/documentos/contabilidade
  ; Pode ler
  browseable = yes
  ; Pode escrever
  writeable = yes
  ; Trocar o grupo: usuários do grupo aluno (principal ou secundário),
  ;                 ao criar um documento, colocarão o grupo = contabilidade
  force group = +contabilidade
  ; Todos do grupo alunos podem ler e/ou escrever
  create mask = 664
  directory mask = 775
  • Aplicação dos valores modificados
/etc/init.d/samba restart

Testando...

  • Via linha de comando
smbclient -Ujoao //m101/Contabilidade
smbclient -Umaria //m101/Contabilidade
  • Via interface gráfica (Gnome)
nautilus smb://joao@m101/Contabilidade
nautilus smb://joao@m101/Contabilidade

09/10: HTTP

  • Tópicos: Web, HTTP, HTML, URI, Apache.
  • Páginas da apostila: 109 a 112

Compartilhamento com HTTP e DAV

Tarefa: compartilhar o diretório local /tmp para acesso via Web de forma bidirecional (carregar e descarregar arquivos) com controle de acesso (usuário + senha).

  • Criar o arquivo de configuração do Apache /etc/apace2/conf.d/tmp:
Alias /temporario /tmp

<Directory /tmp>
       Dav On

       Options Indexes
       Order allow,deny
       Allow from all
       AuthType Basic

       AuthName "Acesso Restrito"
       AuthUserFile /etc/senhas
       Require user aluno
</Directory>
  • Criar a senha para o usuário acessar via HTTP:
# htpasswd -c -s /etc/senhas usuario
  • Ativar o DAV:
# a2enmod dav dav_fs dav_lock
  • Reiniciar o Apache:
# /etc/init.d/apache2 restart


Capítulo 3: Gerência de Rede

15/10: O que é Gerência de Rede

Latência dos pacotes SIP

Monitoramento

  • Exemplo: script simples para testar a conexão à Internet:
#!/bin/bash

IP=`ifconfig eth0 | grep Bcast | cut -d : -f 2 | cut -d \  -f 1`
if [ "$IP" = "" ]; then
    echo "Problemas na conexão: endereço IP nulo."
    exit -1
else
    echo "Endereço IP válido ($IP): OK."
fi

ROTEADOR=`route -n | grep ^0.0.0.0| cut -d \  -f 10`
if [ "$ROTEADOR" = "" ]; then
    echo "Problemas na conexão: rota-padrão inexistente."
    exit -1
else
    echo -n "Testando a rota-padrão ($ROTEADOR): "
    RESULTADO_PING=`ping -c 1 $ROTEADOR|grep ^"1 packet"|grep "1 received"`
    if [ "$RESULTADO_PING" = "" ]; then
        echo "Problemas na conexão: rota-padrão existe, mas não responde."
        exit -1
    else
        echo "OK."
    fi
fi
  • Teste do dia: continue o script acima, testando também o servidor DNS.

16/10: O que é Gerência de Rede

  • Tópicos: as 5 áreas da gerência de rede:
    1. Monitoramento
    2. Contabilização
    3. Desempenho
    4. Configuração
    5. Segurança

Contabilização

  • Coleta periódica de dados de informações disponíveis em equipamentos de rede, em particular o consumo dos seus recursos.
  • Exemplo de aplicação do protocolo SNMP:

<graphviz> digraph SNMP { rankdir=LR splines=true

Gerente [shape=circle]

subgraph clusterAgentes { label=Agentes Agente_1 [shape=Mrecord] Agente_2 [shape=Mrecord] Agente_3 [shape=Mrecord] }

Gerente -> Agente_1 [label="1: GET"] Agente_1 -> Gerente [label="2: GET Response"] Gerente -> Agente_2 [label=3] Agente_2 -> Gerente [label=4] Gerente -> Agente_3 [label=5] Agente_3 -> Gerente [label=6] } </graphviz>

  • Assumindo que Agente_1 é um sistema GNU/Linux, tem-se a seguir o arquivo da configuração do serviço SNMP, /etc/snmp/snmpd.conf:
rocommunity redes
syscontact root@redes.sj.ifsc.edu.br
syslocation Laboratório de Redes II
  • A coleta dos dados pode ser realizada no gerente via linha de comando, varrendo toda a árvore de atributos:
snmpwalk -v 2c -c redes Agente_1

ou mesmo para coletar um único atributo:

snmpget -v 2c -c redes Agente_1 SysLocation.0

22/10: NÃO HOUVE

23/10: NÃO HOUVE

Capítulo 4: Projeto Final

29/10: Sobre o Projeto Final

O projeto final da disciplina contemplará os estudos realacionados ao sistema operacional GNU/Linux e seus serviços em rede.

Descrição do Projeto

<graphviz> graph Rede { splines = true rankdir = LR

Internet [shape=circle] Roteador [shape=hexagon] Servidor_externo [shape=Mrecord,label="<0>Servidor|<1>Web|<2>Email"]

subgraph clusterLAN { label=LAN switch [shape=record] Servidor_interno [shape=Mrecord,label="<0>Servidor|<1>Arquivos|<4>Gerência"] A [shape=plaintext] B [shape=plaintext] C [shape=plaintext] D [shape=plaintext] E [shape=plaintext] F [shape=plaintext] G [shape=plaintext] H [shape=plaintext] I [shape=plaintext] J [shape=plaintext] } Remoto_1 [shape=plaintext] Remoto_2 [shape=plaintext] Remoto_3 [shape=plaintext]

Remoto_1 -- Internet Remoto_2 -- Internet Remoto_3 -- Internet Internet -- Roteador Roteador -- Servidor_externo Roteador -- switch switch -- Servidor_interno switch -- A switch -- B switch -- C switch -- D switch -- E switch -- F switch -- G switch -- H switch -- I switch -- J } </graphviz>

Endereços de Rede

  • Apenas 1 IP válido: 200.135.37.82
  • Rota Padrão: 200.135.37.254
  • Livre escolha para os endereços internos (DMZ e LAN interna).

Serviços para os Usuários

  • Exclusivos para clientes da rede local:
    • Controle de usuários:
      • A, B, C e D são pessoas do grupo Financeiro.
      • D, E e F são pessoas do grupo Contabilidade.
      • F e G são pessoas do grupo Gerência.
      • G, H, I e J são pessoas do grupo Administrativo.
    • Configuração automática de endereços de rede.
    • Diretórios de nomes de computadores.
      • Configuração do domínio de computadores redes.com.br.
    • Sincronismo de relógio.
    • Compartilhamento de arquivos para uso exclusivamente interno à rede (proteção dos dados), onde:
      • Diretório para troca de arquivos entre setores Financeiro e Contabilidade. Ambos os grups têm acesso completo do diretório, enquanto que os demais não.
      • Diretório para publicação dos balanços e balancetes da Contabilidade para o Financeiro. O grupo Contabilidade tem pleno acesso ao diretório, enquanto que o grupo Financeiro pode apenas ler os documentos. Demais não têm acesso.
      • Diretório público. Qualquer usuário autenticado tem acesso. Este diretório deverá estar disponível na rede local, de preferência via Samba.
      • Os usuários do grupo Gerência sempre terão acesso de leitura aos compartilhamentos acima mencionados.
  • Para todos os usuários:
    • Compartilhamento de arquivos entre usuários locais e remotos. A cada 5 minutos, todos os arquivos do diretório público do servidor interno deverão estar replicados no servidor externo para leitura dos clientes remotos.
    • CMS: Joomla, Drupal, Liferay, Alfresco, TWiki, Mediawiki, Wordpress, etc. Esta ferramenta será usada na defesa final.
    • Webmail.
    • Correio eletrônico.

Serviços Internos à Rede

  • Administração remota dos servidores e roteador, todos operando sobre GNU/Linux.
  • Gerência de monitoramento e contabilização.
  • Roteamento entre todas as redes.
  • Filtragem dos pacotes para reforçar o controle de acesso às redes da empresa.
  • Backup automático dos arquivos importantes dos dois servidores em um diretório reservado do servidor principal (rede local).

Dinâmica das próximas aulas: Líder da Semana

A cada semana, 1 membro da equipe atuará como líder. Ele será responsável por:

  • Intermediar a comunicação entre professor (cliente do "produto") e equipe (prestadores de serviço).
  • Apresentar resultados semanais de evolução do "produto".
  • Organizar-se junto aos outros líderes da semana para deliberar sobre as aulas:
    • Assunto de cada aula.
    • Tempo destinado à aula expositiva (professor) e desenvolvimento do projeto final (alunos).
Equipe 29-30/10 05-06/11 12-13/11 19-20/11
A Priscila
Marjorie
Djeison
Jocassia
B Patrick
Jonas
Carla
Guilherme Nezi
C Fausto
Marcelo
Sanderson
Bruno João
D Sandro
Ramon
Guilherme Sousa
Vitor
E Kalvim
Guilherme
Jonatas
Kalvim
F Arriane
Luiz
Bruno Teófilo
Felipe

Endereços Importantes

  • Servidor de imagens
    • Instalador do Ubuntu Linux server 9.10.
    • Código fonte do Wordpress 2.8.5.
    • Cópia de segurança dos arquivos de configuração do VirtualBox, com respectivo script de criação.

29/10: Desenvolvimento do Projeto Final

Nesta primeira semana, foi requisitado pelos líderes da semana uma aula sobre CMS, com duração de 30min. Após discussão em sala, foi decidido o Wordpress como ferramenta Web de documentação do projeto final.

Wordpress

Considerada uma das melhores ferramentas de blog atuais, o Wordpress possui uma instalação relativamente simples.

A versão instalada foi a brasileira, versão 2.8.5.

Preparação do Ambiente

São necessários dois serviços para o Wordpress:

Instalação dos Serviços
  • Atualização da lista de pacotes
# apt-get update
  • Instalação do Apache - versão 2:
# apt-get install apache2
  • Instalação do PHP - versão 5:
# apt-get install php5 libapache2-mod-php5
  • Instalação do MySQL:
# apt-get install mysql-server
# apt-get install php5-mysql
Criação da Base de Dados
  • Via linha de comando:
# mysql -u root -p
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to meuUsuario@localhost identified by "minhaSenhaSecreta";
mysql> flush privileges;
mysql> quit

Instalação do Wordpress

  • Download da última versão do Wordpress:
# cd /var/www
# wget http://br.wordpress.org/wordpress-2.8.5-pt_BR.zip
# unzip wordpress-2.8.5-pt_BR.zip
# rm -f wordpress-2.8.5-pt_BR.zip
  • Apesar de não ser muito seguro, pode-se atribuir TODO o diretório para o usuário associado ao Apache, www-data (sistema utilizado: Ubuntu Linux 9.10 - versão servidor):
# chown -R www-data:www-data /var/www/wordpress

É recomendado seguir as dicas de instalação publicadas no fórum brasileiro - para prevenir falhas de segurança e/ou má configuração do ambiente.

O restante da instalação continua na Web. Para tanto, basta acessar o diretório /wordpress do seu servidor Web. Exemplo: http://192.168.2.101/wordpress.

05/11: Desenvolvimento do Projeto Final

Na segunda semana, houve dúvidas em roteamento e NAT. A seguir, uma proposta de configuração utilizando script próprio:

  • Comandos de criação do script:
cd /etc/init.d/
vi roteador
chmod 755 roteador 
  • Conteúdo do arquivo /etc/init.d/roteador:
#!/bin/bash

# A interface eth2 está na rede 200.135.37.0/24 (rede com IPs válidos)
IFACE="eth2"

# Ativa o roteamento entre as interfaces de rede
sysctl -w net.ipv4.ip_forward=1

# Ativa o NAT para o acesso à Internet
iptables -t nat -A POSTROUTING -o ${IFACE} -j MASQUERADE
  • Vínculo para iniciar junto com o sistema.
cd ../rc2.d/
ln -s ../init.d/roteador S90roteador

06/11: Desenvolvimento do Projeto Final

Ao final da segunda semana do projeto final, foram revistos conceitos e implementação dos serviços:

12-19/11: Andamento do projeto

  • Ferramentas Web:
    • Cacti
    • Webmail
  • Roteamento e NAT
    • Script de roteamento e NAT (incluindo redirecionamento de portas)

20/11: Defesa do Projeto Final

O conceito final da disciplina será composto por:

  • Primeira prova: possui equivalente a 30% do conceito final.
  • Defesa final do projeto: 70% do conceito final.
    • Média das atividades intermediárias: 10% da defesa final.
    • Avaliação interna do grupo: 20% da defesa final.

26/11: Projeto Integrador

18/12: OpenVPN

Servidor

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/scripts
cd /etc/openvpn/scripts
vi vars
...
export EASY_RSA="/etc/openvpn/certs"
...
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
. vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret /etc/openvpn/certs/ta.key
./build-key ederson
vi /etc/openvpn/ederson.conf
server 172.30.0.0 255.255.255.248
push "route 192.168.1.0 255.255.255.0"
dev tun
port 1194
proto udp
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server.crt
key /etc/openvpn/certs/server.key
dh /etc/openvpn/certs/dh1024.pem
tls-auth /etc/openvpn/certs/ta.key 0
cipher AES-256-CBC
comp-lzo
keepalive 10 120
persist-key
persist-tun
user nobody
group nogroup
/etc/init.d/openvpn restart

Cliente

vi ederson.conf
client
remote technet.sj.ifsc.edu.br
resolv-retry infinite
dev tun
port 1194
proto udp
nobind
ca ca.crt
cert ederson.crt
key ederson.key
tls-auth ta.key 1
ns-cert-type server
cipher AES-256-CBC
comp-lzo
keepalive 10 120
persist-key
persist-tun
/etc/init.d/openvpn restart



Voltar para página principal da disciplina