Mudanças entre as edições de "Gerência de Redes de Computadores (técnico) (diário 2009-2)"
(219 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 207: | Linha 207: | ||
Dia 14/10: 3 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== | ==17/09: DHCP== | ||
* Tópicos: configuração automática de endereços de rede. | * Tópicos: configuração automática de endereços de rede. | ||
Linha 543: | Linha 544: | ||
# /etc/init.d/apache2 restart | # /etc/init.d/apache2 restart | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | =Capítulo 3: Gerência de Rede= | |
− | + | ==15/10: O que é Gerência de Rede== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==15/10: Gerência de Rede== | ||
[[Imagem:Antes_e_depois_da_troca_da_antena.png|thumb|300px|Latência dos pacotes SIP]] | [[Imagem:Antes_e_depois_da_troca_da_antena.png|thumb|300px|Latência dos pacotes SIP]] | ||
* Referências extenas: | * Referências extenas: | ||
Linha 630: | Linha 581: | ||
* Teste do dia: continue o ''script'' acima, testando também o servidor DNS. | * Teste do dia: continue o ''script'' acima, testando também o servidor DNS. | ||
− | ==16/10: Gerência de Rede== | + | ==16/10: O que é Gerência de Rede== |
* Tópicos: as 5 áreas da gerência de rede: | * Tópicos: as 5 áreas da gerência de rede: | ||
*# Monitoramento | *# Monitoramento | ||
Linha 637: | Linha 588: | ||
*# Configuração | *# Configuração | ||
*# Segurança | *# Segurança | ||
− | * | + | |
+ | * Referência externa: [http://www.rnp.br/newsgen/9708/n3-2.html RNP: Introdução a Gerenciamento de Redes TCP/IP] | ||
+ | |||
+ | ===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> | <graphviz> | ||
digraph SNMP | digraph SNMP | ||
Linha 649: | Linha 606: | ||
{ | { | ||
label=Agentes | label=Agentes | ||
− | + | Agente_1 [shape=Mrecord] | |
− | + | Agente_2 [shape=Mrecord] | |
− | + | Agente_3 [shape=Mrecord] | |
} | } | ||
− | Gerente -> | + | Gerente -> Agente_1 [label="1: GET"] |
− | + | Agente_1 -> Gerente [label="2: GET Response"] | |
− | Gerente -> | + | Gerente -> Agente_2 [label=3] |
− | Gerente -> | + | Agente_2 -> Gerente [label=4] |
+ | Gerente -> Agente_3 [label=5] | ||
+ | Agente_3 -> Gerente [label=6] | ||
} | } | ||
</graphviz> | </graphviz> | ||
− | * | + | * Assumindo que Agente_1 é um sistema GNU/Linux, tem-se a seguir o arquivo da configuração do serviço SNMP, <tt>/etc/snmp/snmpd.conf</tt>: |
− | |||
rocommunity redes | rocommunity redes | ||
syscontact root@redes.sj.ifsc.edu.br | syscontact root@redes.sj.ifsc.edu.br | ||
syslocation Laboratório de Redes II | 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== | ==22/10: NÃO HOUVE== | ||
Linha 673: | Linha 633: | ||
==23/10: NÃO HOUVE== | ==23/10: NÃO HOUVE== | ||
− | ==29/10: Projeto Final da | + | =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 <tt>redes.com.br</tt>. | ||
+ | ** 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). | ||
+ | |||
+ | {|width="100%" style="background-color: #F0FFF0; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 100%; border: 1px solid #B1CDEB; text-align: left; padding-left: 7px" | ||
+ | | '''Equipe''' || '''29-30/10''' || '''05-06/11''' || '''12-13/11''' || '''19-20/11''' | ||
+ | |- | ||
+ | | rowspan="4" | A || Priscila | ||
+ | |- | ||
+ | | || Marjorie | ||
+ | |- | ||
+ | | || || Djeison | ||
+ | |- | ||
+ | | || || || Jocassia | ||
+ | |- | ||
+ | | rowspan="4" | B || Patrick | ||
+ | |- | ||
+ | | || Jonas | ||
+ | |- | ||
+ | | || || Carla | ||
+ | |- | ||
+ | | || || || Guilherme Nezi | ||
+ | |- | ||
+ | | rowspan="4" | C || Fausto | ||
+ | |- | ||
+ | | || Marcelo | ||
+ | |- | ||
+ | | || || Sanderson | ||
+ | |- | ||
+ | | || || || Bruno João | ||
+ | |- | ||
+ | | rowspan="4" | D || Sandro | ||
+ | |- | ||
+ | | || Ramon | ||
+ | |- | ||
+ | | || || Guilherme Sousa | ||
+ | |- | ||
+ | | || || || Vitor | ||
+ | |- | ||
+ | | rowspan="4" | E || Kalvim | ||
+ | |- | ||
+ | | || Guilherme | ||
+ | |- | ||
+ | | || || Jonatas | ||
+ | |- | ||
+ | | || || || Kalvim | ||
+ | |- | ||
+ | | rowspan="4" | F || Arriane | ||
+ | |- | ||
+ | | || Luiz | ||
+ | |- | ||
+ | | || || Bruno Teófilo | ||
+ | |- | ||
+ | | || || || Felipe | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ===Endereços Importantes=== | ||
+ | * [http://192.168.2.101 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 [http://br.wordpress.org brasileira, versão 2.8.5]. | ||
+ | |||
+ | ====Preparação do Ambiente==== | ||
+ | São necessários dois serviços para o Wordpress: | ||
+ | * Web: pode-se utilizar o [http://httpd.apache.org Apache] que, segundo o [http://news.netcraft.com/archives/2009/10/17/october_2009_web_server_survey.html relatório do Netcraft de outubro de 2009], está em 50% dos servidores. | ||
+ | * Banco de dados: o também conhecido [http://www.mysql.org MySQL] é uma ótima pedida, pois o desenvolvimento do Wordpress está projetado para este banco de dados. | ||
+ | |||
+ | =====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, <tt>www-data</tt> (sistema utilizado: [http://www.ubuntu.com 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 [http://br.forums.wordpress.org/ 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 <tt>/wordpress</tt> 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 <tt>/etc/init.d/roteador</tt>: | ||
+ | #!/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: | ||
+ | * [[#17/09: DHCP|DHCP]] | ||
+ | * [[#18/09: DNS|DNS]] | ||
+ | |||
+ | ==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== | ==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== | ==26/11: Projeto Integrador== | ||
* Deste dia até o final das aulas (18/12), haverá o [[Projeto Integrador - 2009.2|Projeto Integrador]]. | * Deste dia até o final das aulas (18/12), haverá o [[Projeto Integrador - 2009.2|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|Gerência de Redes de Computadores (técnico) (página)|página principal da disciplina}} |
Edição atual tal como às 11h49min de 5 de fevereiro de 2010
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.
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
- 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.
- 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
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:
- Monitoramento
- Contabilização
- Desempenho
- Configuração
- Segurança
- Referência externa: RNP: Introdução a Gerenciamento de Redes TCP/IP
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.
- Controle de usuários:
- 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:
- Web: pode-se utilizar o Apache que, segundo o relatório do Netcraft de outubro de 2009, está em 50% dos servidores.
- Banco de dados: o também conhecido MySQL é uma ótima pedida, pois o desenvolvimento do Wordpress está projetado para este banco de dados.
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
- Deste dia até o final das aulas (18/12), haverá o 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