Projeto Integrador - 2011.1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Sobre o Projeto

No semestre 2011-1 será desenvolvido o projeto da infraestrutura de rede de uma empresa provedora de acesso para condomínios. Prédios comerciais e condomínios residenciais podem contratar essa empresa para prover acesso a Internet a seus associados. A cobertura implantada pelo provedor se compõe de acessos aDSL aproveitando os ramais telefônicos das residências ou escritórios, e também de uma rede sem-fio nas áreas comuns. O provedor se responsabiliza por instalar toda a infraestrutura de rede física necessária, porém os membros do condomínio podem aderir ou não ao plano de serviços oferecido pelo provedor. A figura abaixo ilustra a infraestrutura de rede típica do provedor e de um cliente.

Pi-2011-1a.png


Datas importantes

  • Início do projeto: 13/06/2011.
  • Entrega Física, Enlace e Rede: ??/07/2011.
  • Apresentação final e entrega da camada de Aplicação: 12/07/2011.

Equipes

Equipe Fenrir Teletec Bigodes Falcon JallesNet
Subdomínio fenrir.sj.ifsc.edu.br teletec.sj.ifsc.edu.br bigodes.sj.ifsc.edu.br falcon.sj.ifsc.edu.br jallesnet.sj.ifsc.edu.br
IP válido 200.135.37.99 200.135.37.100 200.135.37.101 200.135.37.102 200.135.37.103
Alunos Beatriz da Silveira Daniel Estefano Ademir de Souza Guilherme Correa Dimas Duarte
Luana Beatriz Denis Teixeira Amarildo Junior Rodrigo Shmitt Felipe Ricardo
Marco Aurelio Leonardo Oliveira P. Augusto Buttemberg Mauricio Machado Jalles Vides
Sergio Stahelin Odair de Moraes Daniel Arndt Luiz Gustavo Gabriel Silveira
William Jamir Robson de Carvalho Evandro Schutz Everton Cardoso
Vagner Cordeiro Maicon Guesser Clailton Francisco

Orientação e Material de Apoio

Cabeamento Estruturado

  • Para a disciplina de cabeamento estruturado cada equipe receberá uma rack para montagem da infraestrutura de cabeamento para uma rede de um cliente.

Produto a entregar

  • cada equipe deverá entregar o cabeamento que interlige:
    • A central telefônica ao DSLAM
    • O DSLAM ao armário de telecom da equipe, através de uma linha telefone + DSL
    • o armário da equipe a uma área de trabalho.
  • O cabeamento deverá permitir a conexão do modem DSL no armário de telecom.
  • As tomadas da área de trabalho devem permitir a conexão de telefone ou DSL.

Bibliografia

  • Caetano, S. C. - Apostila Cabeamento Estruturado – IFSC
  • José M. S. Pinheiro. Guia Completo de Cabeamento Estruturado. Editora Campus, 2003.

Instalação de Equipamentos de Rede

Deve-se implantar a infraestrutura indicada na apresentação do Projeto Integrador:

Podem ser identificadas três tarefas:

  1. Criar o link Ponto-a-ponto com modems SHDSL
  2. Implantar a rede sem-fio do cliente.
  3. Ativar os links aDSL, criando uma infraestrutura de acesso baseada em PPPoE.

Material disponível

O seguinte equipamento será usado no projeto:

  • 01 Access Point por equipe
  • 01 modem/roteador aDSL por equipe
  • 01 DSLAM a ser compartilhado entre equipes
  • 01 computador por equipe a ser usado como servidor
  • 02 roteadores a serem compartilhados entre equipes
  • 02 modems SHDSL a serem compartilhados entre equipes
  • 02 switches Ethernet gerenciáveis (D-link DES-3526) a serem compartilhados entre equipes

Acesso aDSL

O DSLAM foi configurado no momento com IP 192.168.1.245.

  • Cada link aDSL deve ter taxa de downstream de 4 Mbps e upstream de 400 kbps.
  • Devem-se estabelecer links PPPoE, sendo que os usuários precisarão ser autenticados em um servidor Radius.
    • ... esse requisito depende de ativar um AC PPPoE para atender os links dos usuários DSL. O AC precisará ser instalado em um computador a parte que ficará no lab. de Meios e será cmompartilhando entre as equipes.

Dslam-1.png
Exemplo de uso do DSLAM (retirado do Guia Rápido de Instalação)


A configuração do DSLAM pode ser feita de duas formas:

  1. Usando a aplicação de gerência EMS:
    • No computador do professor (lab. de Redes) logue na conta aluno e execute a máquina virtual Windows.
    • Em outro computador, de onde você irá gerenciar o DSLAM, baixar o EMS e instalá-lo em uma máquina virtual Windows.
    • Certifique-se de que a interface do Windows esteja configurada. Se não estiver, desligue a máquina virtual, ponha a interface da máquina virtual em modo bridge, boote o Windows e configure sua interface de rede local com IP 192.168.100+número_do_micro, com gateway 192.168.1.1 e DNS 200.135.37.65.
    • Execute o EMSClient (Menu Iniciar -> Todos os Programas -> EMS Client), e forneça o IP 192.168.1.101, com usuário root e senha admin123.
    • Você verá o DSLAM, e poderá assim configurá-lo por essa interface.
    • Leia o manual do EMS.
  2. Usando a interface CLI (Command Line Interface):
    • Via console serial, ou ...
    • Via telnet: telnet 192.168.1.245, com usuário ier e senha admin.
  • ... mas note que essa interface é pobremente documentada !

Configuração do DSLAM e modems aDSL

Equipes que receberam um roteador aDSL: Fenrir, Jallesnet, Teletec, Bigodes. (em 01/07/2011)

Para funcionarem os links aDSL, alguns cuidados devem ser tomados:

  1. As portas do DSLAM estão ativadas para operar com ADSL2+, com parâmetros Port 0, VPI 8 e VCI 35 (configuração do ATM).
  2. O modem adsl deve ser configurado com encapsulamento SNAP/LLC e modo PPPoE, com NAT ativado (ver interface WAN)
  3. Para o link ser estabelecido e o computador onde está o modem poder acessar a Internet, deve-se instalar um AC PPPoE. Esse AC pode ficar no computador AC-server (que fica no lab. de Meios).

A configuração do AC já foi vista durante o semestre:

Para facilitar, foi instalado no computador AC-server o software do servidor PPPoE (apt-get install pppoe).

Notem que o PPPoE deverá autenticar o acesso no servidor Radius, o que se pode fazer com o plugin pppd-radius.

Pi-2011-1-meios.png
Diagrama lógico da rede de cada equipe quando concluída.


Atenção:

  • Para configurar o DSLAM, deve-se fazer com que a máquina virtual Windows no computador do professor tenha uma rota para a rede 192.168.0.0/24. O DSLAM tem IP 192.168.0.245 nessa subrede, que será mantida para fins de gerência. O link ponto-a-ponto via roteadores e modems SHDSL pode ser usado para alcançar essa subrede.

Autenticação com Radius

Os acessos via aDSL ou pela rede sem-fio devem ser autenticados. Cada usuário (cliente do provedor) deve ser identificado por um email no domínio do provedor (ex: juquinha@jallesnet.sj.ifsc.edu.br). Cada equipe deve possuir o serviço Radius instalado e configurado em seu servidor.

Para que os acessos aDSL sejam autenticados, deve-se usar o serviço Radius. Essa é uma prática usual na criação de infraestrutura de acesso de dados para assinantes desde a época do acesso discado (dialup), sendo Radius o serviço adotado. Para ativá-lo são necessários dois componentes:

  1. Um servidor Radius, que atenderá pedidos de autenticação e responderá com uma mensagem de aceitação ou recusa. Esse serviço é implementado pelo software FreeRadius, e deve residir no servidor de cada equipe.
    • Teste antes se seu servidor Radius está autenticando usuários ! Você pode fazer isso rodando o seguinte comando no AC PPPoE (que fica em Ac-server):
      radtest seu_usuario sua_senha IP_do_seu_servidor_Radius 1 segredo_do_seu_servidor_Radius
      

      Por exemplo, para testar meu servidor Radius, que fica em 192.168.1.1, eu fiz assim:
      radtest prof blabla 192.168.1.1 1 ier-teste
      

      Obs: o segredo do servidor Radius fica guardado em /etc/freeradius/clients.conf, lá no servidor Radius.
  2. Um ou mais clientes Radius, que consultarão o servidor Radius para autenticar usuários. O cliente Radius roda em equipamentos que provêem os enlaces de dados dos usuários. No caso do Projeto Integrador, ele ficará no computador AC e trabalhará de forma integrada com o servidor PPPoE. O software necessário se chama plugin Radius para pppd, e já está instalado pois no Ubuntu ele faz parte do software pppd. Quanto às informacoes contidas no roteiro da aula de 13/05 há alguns acréscimos (que já foram realizados):
    1. Instalar os softwares radiusclient1 e libradius1:
      apt-get install libradius1 radiusclient1
      
    2. A configuracao do servidor PPPoE precisa ser esta:
      require-chap
      auth
      lcp-echo-interval 10
      lcp-echo-failure 2
      ms-dns IP_do_seu_servidor_DNS
      netmask 255.255.255.0
      noipdefault
      debug
      kdebug 4
      plugin radius.so
      plugin radattr.so
      radius-config-file /etc/radiusclient/radius.conf
      mru 1492
      mtu 1492
      
    3. O arquivo /etc/ppp/chap-secrets pode ficar vazio.
    4. A configuracao do cliente Radius (/etc/radiusclient/radius.conf) foi preparado com o seguinte conteúdo:
      auth_order	radius
      login_tries	4
      login_timeout	60
      nologin /etc/nologin
      issue	/etc/radiusclient/issue
      authserver 	127.0.0.1
      acctserver 	127.0.0.1
      servers		/etc/radiusclient/servers
      dictionary 	/etc/radiusclient/dictionary
      login_radius	/usr/sbin/login.radius
      seqfile		/var/run/radius.seq
      mapfile		/etc/radiusclient/port-id-map
      default_realm
      radius_timeout	10
      radius_retries	3
      login_local	/bin/login
      
    5. O arquivo /etc/radiusclient/servers foi criado com o seguinte conteúdo:
      192.168.1.1 ier-teste
      

Integrando ao MySQL

Primeiramente instale o pacote.

apt-get install freeradius-mysql

Edite o arquivo de configuração do freeradius, /etc/freeradius/raidusd.conf, e descomente as seguintes linhas:

$INCLUDE sql.conf

Entre no MySQL:

mysql -u root -p

Crie a base de dados para o FreeRadius e dê ao usuário freerad a devida permissão para acesso a esta base. No shell do MySQL:

CREATE DATABASE radius;
GRANT ALL ON radius.* TO freerad@localhost IDENTIFIED BY "senha_do_usuario_freerad";
exit;

"Poupule" a base de dados:

mysql -u freerad -psenha_do_usuario_freerad radius < /etc/freeradius/sql/mysql/schema.sql
mysql -u freerad -psenha_do_usuario_freerad radius < /etc/freeradius/sql/mysql/nas.sql

Faça uma varredura no log do FreeRadius em busca de possíveis problemas, se houver os corrija. Para testar faça uma consulta de autenticação como indicado acima.

A rede sem-fio

A rede sem-fio deve ser implantada com um AP que autentique os usuários usando WPA-EAP (WPA Enterprise), com EAP TTLS. Isso deve aproveitar a infraestrutura de autenticação com Radius que foi criada para o aDSL. Para ativá-la deve-se fazer o seguinte:

  1. Instalar o AP na rede do laboratório de Meios. Pode-se aproveitar aquele AP que está sendo usado como switch para interligar o DSLAM, roteador e AC. Esse AP deve ser configurado com Segurança do tipo WPA-EAP, usando o proxy Radius que roda no AC (192.168.0.1, com secret "ier").
  2. O proxy Radius do AC deve ser configurado para aceitar pedidos de autenticação vindos do AP (ver /etc/freeradius/clients.conf ... e não esqueçam de reiniciar o Radius após modificar esse arquivo).
  3. Os servidores Radius das equipes devem ser configurados para fazerem autenticação eap do tipo ttls. Leiam o arquivo /etc/freeradius/eap.conf para entender como fazer isso. Há também no site do Freeradius uma boa documentação.
  4. Para testar o funcionamento do WPA-EAP usem um laptop com um supplicant. O wpa_supplicant usado no Linux dá conta do recado.

Produto a entregar

Relatório contendo:

  1. Diagrama da rede implantada (use o software dia ou o Visio).
  2. Descrição de como foi atendido cada requisito do projeto
  3. Descrição das configurações feitas em cada equipamento, de forma a poderem ser reproduzidas por qualquer pessoa com formação técnica.

Bibliografia

Gerência de Rede

Aqui deve-se dar suporte para os serviços mínimos necessários para contemplar a proposta. Podem ser identificadas três tarefas:

  1. Configurar o servidor DNS (Domain Name System).
  2. Configurar o servidor Apache.
  3. Configurar o servidor Postfix.

Deve-se ter em mente que para todos os serviços será necessário a configuração de múltiplos domínios, permitindo que cada condomínio tenha seus serviços independente dos demais. Lembrando que todos os serviços deverão ser configurados pelo portal desenvolvido em Programação, que gerará um arquivo txt o qual deve-se inserir nos respetivos arquivos de configuração dos respectivos serviços. Em seguida deve-se reiniciar os mesmos, para isto deve-se ter permissão adequado, o que se consegue com o sudoers, arquivo que controla qual usuário tem permissão para fazer o que. http://www.go2linux.org/sudoers-how-to

Atividade para o primeiro dia

  1. Trazer um pen-drive de no mínimo 1 GB.
  2. Criar um disco de inicialização a partir de uma imagem do Ubuntu-Server.
  3. Escolher a máquina que será utilizada.
  4. 'Bootar' pelo pen-drive.
  5. Definir o sistema de arquivo e partições necessárias. Definir também qual será o nome do domínio e nome de máquina.
  6. Instalar o Ubuntu-Server.
  7. Atualizar.

Configurações dos servidores

Para o caso do Bind e Apache já vimos em sala a configuração para múltiplos domínios. No caso do Apache basta 'jogar' um novo arquivo de configuração no diretório específico. No caso do Bind é altamente recomendado o uso do 'include', com isto pode-se incluir vários arquivos de configuração sem a necessidade de edição do arquivo principal. Já para o caso do Postfix, ainda não visto em sala, tem-se algumas dicas para iniciar a configuração. Lembrem-se que deve-se fazer alguns testes preliminares com estes serviços, para depois implementar as respectivas necessidades na programação em PHP. Exemplo mais completo de configuração do Postfix:

vi /usr/share/postfix/main.cf.dist

Manual completo de configuração:

man 5 postconf

No Postfix não existe a diretiva 'include', portanto, para poder-se editar externamente, com razoável facilidade o arquivo deve-se montar o arquivo em blocos e depois uni-los, por exemplo, do seguinte modo (ref: http://www.seaglass.com/postfix/faq.html#exinc):

cat file1 file2 file3 > main.cf.new
mv main.cf.new main.cf

Exemplo de Configuração do Postfix

Editar o main.cf (vi /etc/postfix/main.cf) e alterar e/ou acrescentar as seguintes diretivas, além das já definidas em sala de aula:

virtual_alias_domains = hash:/etc/postfix/mydomains
alias_maps = hash:/etc/posfix/virtual
mydestination = $myhostname
myorigin = $myhostname

Editar (criar) o mydomains (vi /etc/postfix/mydomains) do seguinte modo:

meu_dominio.sj.ifsc.edu.br OK
subdominio1.meu_dominio.sj.ifsc.edu.br OK
subdominio2.meu_dominio.sj.ifsc.edu.br OK

Editar (criar) o virtual (vi /etc/postfix/virtual) do seguinte modo:

meu_dominio.sj.ifsc.edu.br Principal
user@meu_dominio.sj.ifsc.edu.br user

subdominio1.meu_dominio.sj.ifsc.edu.br Subdominio1
user1@subdominio1.meu_dominio.sj.ifsc.edu.br user1
user2@subdominio1.meu_dominio.sj.ifsc.edu.br user2
............

subdominio2.meu_dominio.sj.ifsc.edu.br Subdominio2
user3@subdominio2.meu_dominio.sj.ifsc.edu.br user3
user4@subdominio2.meu_dominio.sj.ifsc.edu.br user4

Obs: A primeira linha de cada bloco declara o domínio com um comentário sobre o mesmo. As demais linhas do bloco declaram os usuários pertencentes ao domínio, com o seguinte formato: o primeiro campo é o e-mail do usuário e o segundo é o usuário cadastrado no Linux (/etc/passwd).

Executar os comandos para releitura e reinicialização:

postmap /etc/postfix/virtual
postmap /etc/postfix/mydomains
service postfix restart

Programação para Redes de Computadores

Desenvolver em PHP um sistema para a administração de domínios virtuais. O sistema permitirá, através de uma interface web amigável:

  • Criar, alterar e excluir um domínio no arquivo de zonas do serviço de domínios (Bind)
  • Criar, alterar e excluir um domínio virtual no servidor web (Apache)
  • Criar, alterar e excluir um domínio virtual no servidor de email (Postfix)
Prc-pi2011-1.png

Para o desenvolvimento do sistema talvez seja necessário fazer uso de shell scripts, expressões regulares (p.e. com o sed)[1] e garantir permissões extras, via sudoers, ao usuário do servidor web.

Requisitos de software

  • Servidor web Apache
  • Sistema de Gerenciamento de Banco de Dados (MySQL)
  • Módulo PHP para Apache e MySQL
  • phpMyAdmin para administrar a base de dados MySQL através de uma interface web amigável

Bibliografia