Projeto Integrador - 2010.1 - Equipe Café On-Line

De MediaWiki do Campus São José
Revisão de 09h20min de 5 de julho de 2010 por Eris (discussão | contribs) (→‎DNS)
Ir para navegação Ir para pesquisar

Descrição das atividades por datas - Projeto Integrador 2010-1

Dia: 08/6/2010

Criação do nome da equipe: Café On-line.

Cabeamento

  • Foi passado os cabos do Patch Panel do Armário Principal para o Armário Café On-line.
  • Feitos os pontos de acesso (Tomadas).
  • Padrão 568A.

Gerência de Rede

  • Instalação do Sistema Operacional, definido pela equipe.


Hardware do servidor

*Processador:
# lshw -short -c cpu
H/W path         Device      Class       Description
====================================================
/0/4                         processor   Intel(R) Celeron(R) CPU 2.26GHz

*Memoria:
# lshw -short -c memory
H/W path         Device      Class       Description
====================================================
/0/4/5                       memory      16KiB L1 cache
/0/4/6                       memory      256KiB L2 cache
/0/2f                        memory      512MiB System Memory
/0/2f/0                      memory      256MiB DIMM DDR Synchronous 333 MHz (3.0 ns)
/0/2f/1                      memory      256MiB DIMM DDR Synchronous 333 MHz (3.0 ns)

*Rede
# lshw -short -c network
H/W path         Device      Class       Description
====================================================
/0/100/1e/1      eth1        network     RTL-8169 Gigabit Ethernet
/0/100/1e/8      eth0        network     82801DB PRO/100 VE (LOM) Ethernet Controller


*Disco
# lshw -short -c disk
H/W path         Device      Class       Description
====================================================
/0/100/1f.1/0    /dev/sda    disk        41GB Maxtor 6E040L0
/0/100/1f.1/1    /dev/cdrom  disk        CD/DVDW SH-S182D

*Video
# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE 
Chipset Integrated Graphics Device (rev 01)

Para informações adicionais executar
# dmidecode | less

Distribuição utilizada:

# lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 10.04 LTS
Release:        10.04
Codename:       lucid

Utilizamos a Distribuição Ubuntu Server LTS. por ser a de maior familiaridade entre os integrantes da equipe e na "versão" LTS por ter suporte por um período de tempo maior que as demais versões do Ubuntu, possibilitando que a experiencia realizada no projeto possa ser aproveitada no futuro sem grandes alterações.

Particionamento usado:

Partição     "Tamanho"    Tipo       Ponto de montagem
====================================================
/dev/sda1     285MB       EXT3            /boot
/dev/sda2     717MB    Linux/swap 
/dev/sda3     36GB        EXT4            /

Link's uteis: Ubuntu server guide:[1] em pdf[2], Pesquisa no Guia FOCA [3], google/linux [4]

Fotos do Primeiro Dia

Portas das Tomadas do Patch Panel do Armário Café On-line.
Portas do Patch Panel Armário Principal da equipe Café On-line.
Portas que chegam do Armário Principal para o Armário Café On-line.
Rack Armário Principal.
Rack Café On-line.

Dia: 09/6/2010

Cabeamento

  • Verificamos se a parte de cabeamento ta ok.
  • Foi visto que os Patch Panel do Lab. de Transmissão não funcionam muito bem.

Gerência de Rede

Instalação e configuração dos serviços

  • NTP
  • DNS

NTP

  • NTP[5] (Network Time Protocol ou Protocolo de Tempo para Redes). É um protocolo que permite a sincronização dos relógios dos dispositivos de uma rede como servidores, estações de trabalho, roteadores e outros equipamentos à partir de referências de tempo confiável[6] Portas 123TCP/UDP.


  • Instalando e configurando

  1. aptitude update; aptitude install ntp

</syntaxhighlight>

Arquivo /etc/ntp.conf: Arquivo de configuração do daemon ntpd. Abaixo os parâmetros alterados.

  1. Linhas adicionadas para que o ntpd sincronize o horário com os servidores abaixo
  2. servido da rnp

server ntp.cais.rnp.br

  1. servidor "a" do observatório nacional

server a.ntp.br

  1. servidor "b" do observatório nacional

server b.ntp.br

</syntaxhighlight>


link's uteis: [7], guia rápido de configuração do ntp.br [8], manual sobre ntp da rnp[9], documentação no ntp.org [10]

DNS

  • DNS (Domain Name System - Sistema de Nomes de Domínios) é um sistema de gerenciamento de nomes hierárquico e distribuído que permite a "tradução" de nomes de "maquinas" em endereços IP.

Portas utilizadas: 53 TCP/UDP

Instalação e configuração de servidor DNS(BIND9[11])

  • Instalar
  1. aptitude update; aptitude install bind9

</syntaxhighlight> Arquivo /etc/bind/named.conf.options:: Neste arquivo vão configurações "globais" do bind.

options {

              directory "/var/cache/bind";
       version "N/A"; # Não exibe versão do bind
       listen-on-v6 { any; };
          listen-on { any; };
          allow-recursion { 127.0.0.0/8; 192.168.100.0/24; }; # define quem pode faver consultas recursssivas ao servidor
          allow-query { 127.0.0.0/8; 192.168.100.0/24; }; # define quem pode consultar o servidor
          allow-query-cache { any; };

};


</syntaxhighlight>

Arquivo /etc/bind/named.conf.local: Neste arquivo indicamos o domínio a ser configurado e em quais arquivos ficarão as configurações deste e do DNS reverso.

... zone "cafeonline.sj.ifsc.edu.br" {

type master;
file "/etc/bind/dbcafeonline.sj.ifsc.edu.br";

}; zone "100.64-127.37.135.200.in-addr.arpa" {

type master;
file "/etc/bind/db100.64-127.37.135.200.in-addr.arpa";

};

</syntaxhighlight>

Arquivo /etc/bind/dbcafeonline.sj.ifsc.edu.br: Arquivo com as configurações do domínio

$TTL 86400 @ IN SOA server.cafeonline.sj.ifsc.edu.br. admin.cafeonline.sj.ifsc.edu.br. (

   2010063001   ; serial
           1d   ; refresh
           1h   ; retry
           1w   ; expire
           1d   ; negative cache ttl

) @ IN NS server @ IN A 200.135.37.100 @ IN MX 0 mail.cafeonline.sj.ifsc.edu.br. server IN A 200.135.37.100 ns1 IN A 200.135.37.100 mail IN A 200.135.37.100 www IN A 200.135.37.100 smtp IN CNAME mail.cafeonline.sj.ifsc.edu.br. pop IN CNAME mail.cafeonline.sj.ifsc.edu.br. imap IN CNAME mail.cafeonline.sj.ifsc.edu.br. ssl IN CNAME www.cafeonline.sj.ifsc.edu.br. cacti IN CNAME www.cafeonline.sj.ifsc.edu.br. cafeonline.sj.ifsc.edu.br. IN TXT "v=spf1 mx -all"

</syntaxhighlight>

Arquivo /etc/bind/db100.64-127.37.135.200.in-addr.arpa: Arquivo com as configurações do DNS reverso

$TTL 86400

Start of Authority
início de autoridade

@ IN SOA ns1.cafeonline.sj.ifsc.edu.br. admin.cafeonline.sj.ifsc.edu.br. (

 2010070501        ; Serial
 1d        ; Refresh
 4h        ; Retry
 1w        ; Expire
 1d )    ; Negative Cache TTL
Name Server
servidores DNS

@ IN NS ns1.cafeonline.sj.ifsc.edu.br.

Address
endereço

100 IN PTR ns1.cafeonline.sj.ifsc.edu.br.


</syntaxhighlight>

Dia: 10/6/2010

Cabeamento

  • Verificamos a parte dos Patch Panel, apenas uma porta não funciona.


Dia: 11/6/2010

Gerência de Rede

  • Configurado acesso remoto.

SSH[12]: É um protocolo de rede que permite acesso remoto seguro(conexão entre cliente e servidor criptografada), Porta 22TCP.

Instalando e configurando o OpenSSH-Server[13]

  1. aptitude update; aptitude install openssh-server

</syntaxhighlight>

Arquivo /etc/ssh/sshd_config: Neste arquivo de configuração do servidor ssh. Abaixo apenas os parâmetros a adicionar ou alterar.

  1. Lista de usuários que podem solar no servidor

AllowUsers nx cafeonline

  1. porta na qual o serviço ficara ativo

Port 22

  1. Define se o usuario root podo acessar via ssh

PermitRootLogin no

</syntaxhighlight>

Dia 14/6/2010

Aula após o Intervalo, pois tivemos que apresentar um trabalho.

Instalação de Equipamento

  • Implantação dos Modems, como o cabo que interliga os laboratórios chega no RACK da direita, acabamos instalando todos os modems no mesmo lugar onde o fio chegava.
  • Rede interna: 192.168.100.0/24.

Cabeamento

  • Foi feito os Patch Cord.


Fotos certificação do Link físico

Roteador Cisco, Modem Parks e Modem Digitel.
Modems sincronizados
Link de 2Mbps certificado!
Link 64Kbps certificado!
Conexão Modem
Diagrama de interconexão física dos laboratórios.


Dia 15/6/2010

Instalação de Equipamento

  • Inicio das configurações dos modems.

Programação

  • Iniciamos a página de autenticação.

Cabeamento

  • Realizamos testes do link.
  • Apenas uma porta não funciona.


Dia 16/6/2010

Gerência de Rede

  • Instalação do Squid e Dansguardian.
  • Alteramos as regras de roteamento, afim de configurar um proxy transparente.

--Rubia Andrade 21:09, 16 Junho 2010 (BRT)


Aplicação

Criando banco de dados

  • Primeiramente foram criadas as tabelas no mysql:

(colocar comandos usados na criação das tabelas)

Cadastro dos anúncios

  • Segue abaixo o código da página (cadastro.html) onde o admin digitará os dados do anúncio:
<html>
<head>
   <title> Caf&eacute;Online </title>
   </head>
   <body bgcolor="000000" text="FFFFFF">
   <table align=center>
   <tr>
	<h1>Cadastro de an&uacute;ncios</h1>
	<form name="formTeste" action="add.php" method="post">
	<table>
	   <tr><td>
  		<p> T&iacute;tulo: <br>
  		<input type:"text" name="titulo">
  		<p> Nome do cliente: <br>
  		<input type:"text" name="nome">
  		<p> An&uacute;ncio: <br>
  		<textarea rows="2" cols="20" name="texto"></textarea>
  		<p> Link: <br>
  		<input type:"text" name="link">
  		<p> Expira em: <br>
  		<input type:"text"name="validade">
  		<p> Expirado:
  		<input type=checkbox>
		<input type="submit" name="b_enviar" value="Gravar"><BR>
	     </td>
	     <td>
	    	<img src="800x600.gif" border="0" width="600" height="400">
    	     </td>
	   </tr>
</body>
</html>


  • Depois de informados os dados do anúncio o admin é redirecionado para outra pagina onde será feita a conexão com o banco de dados mysql para inserir os dados nas tabelas.

Segue o código (add.php):

<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body bgcolor="000000" text="FFFFFF">
<?

  $titulo=$_POST['titulo'] ;
  $nome=$_POST['nome'] ;
  $texto=$_POST['texto'] ;
  $link=$_POST['link'] ;
  $validade=$_POST['validade'] ;

  if (!empty ($titulo) && !empty ($nome) && !empty ($texto) && !empty ($link) && !empty ($validade))
  {
	$conexao = mysql_connect("localhost","root","cafeonline") ;
	$base_ok = mysql_select_db("cafeonline",$conexao) or die ("erro 1");
	$inserir = "INSERT INTO anuncio (NOMECLIENTE, NOMEANUNCIO, TEXTO, LINK, VALIDADE) VALUES ('$nome', '$titulo', '$texto', '$link', '$validade')";
	$cadastrar = mysql_query($inserir,$conexao) or die("erro 2");
	mysql_close($conexao) or die("Erro fechar conexao");
	if($cadastrar==true)
	{
		echo "<h2>An&uacute;ncio cadastrado com sucesso <br></h2>";	
		echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Ir para lista de an&uacute;ncios</a>";
	}else{
		echo "Erro ao cadastrar an&uacute;ncio";
		echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Ir para lista de anúncios</a>";
	}
  }else{
	  echo "<h2>Erro, campos vazios<br></h2>";
	  echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/cadastro'>Voltar para cadastro</a>";
  }
header("Content-Type: text/html; charset=ISO-8859-1", true);
?>
</body>
</html>


Listagem de anúncios

  • Na página listar.php é feita a conexão com o banco de dados e também a consulta nas tabelas, para fazer a listagem dos anúncios ja cadastrados, e através dessa página pode-se selecionar um anúncio o qual deseja editar ou excluir.
<html>
<head>
	<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
	<title> Caf&eacute; online </title>
</head>
<body bgcolor="000000" text="FFFFFF">
	<h1>Listagem de an&uacute;ncios</h1>
	<table><tr><td>
<?
$conexao = mysql_connect("localhost","root","cafeonline") or die ("ERRO");
if($conexao) // se $conexao é true, ou seja, conectou ao banco de dados, seleciona com qual banco deseja trabalhar.
{
	mysql_select_db("cafeonline") or die ("erro 1"); //seleciona qual o banco
	$query = "SELECT * FROM anuncio" or die ("erro 2"); //seleciona tudo (*), de uma tabela chamada anuncio
	$dados = mysql_query($query,$conexao) or die ("erro 3");

	echo "<table border=1>";
	echo "<tr><td>Nome do cliente</td>";
	echo "<td>T&iacute;tulo do an&uacute;ncio</td>";
	echo "<td>Validade</td>";
	echo "<td>A&ccedil;&otilde;es</td></tr>";
	 
	while($linha=mysql_fetch_array($dados,MYSQL_ASSOC))
	{
	$id = $linha["IDANUNCIO"];	
		echo "<tr><td>" . $linha["NOMECLIENTE"] . "</td>" ;
		echo "<td>" . $linha["NOMEANUNCIO"] . "</td>" ;
		echo "<td>" . $linha["VALIDADE"] . "</td>" ;
		echo "<td><a href='excluir.php?id=$id' style='text-decoration:none'>Excluir&nbsp;&nbsp;</a>";
		echo "<a href='editar.php?id=$id' style='text-decoration:none'>Editar</a></td></tr>";
	}
	echo "</table>";
	echo "<center><a href='http://www.cafeonline.sj.ifsc.edu.br/cadastro'>Incluir novo an&uacute;ncio</a></center>";
	mysql_close($conexao) or die ("erro 5");
}
header("Content-Type: text/html; charset=ISO-8859-1", true); 
?>
</td><td>
<img src="800x600.gif" border="0" width="600" height="400" align="right"></td></tr></table>
</body>
</html>


Editando e atualizando os anúncios

  • Depois de selecionado um anúncio na página de listagem o admin é direcionado para a página de edição de anúncios. E então são mostrados os dados que já estão cadastrados do anúncio selecionado, podendo alterar o que desejar e depois apertando no botão gravar que é direcionado para a página onde será feita a atualização do banco de dados.

Segue o código da página de edição de anúncios (editar.php):

<html>
<head>
	<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
	<title> Caf&eacte; online </title>
</head>
 <body bgcolor="000000" text="FFFFFF">
  <h1>Editar an&uacute;ncio </h1>
  
<?	
	$id = $_GET['id'];
	$conexao = mysql_connect("localhost","root","cafeonline") ;
	mysql_select_db("cafeonline") or die ("erro 1");
	$query = ("select * from anuncio where IDANUNCIO=$id");
	$dados = mysql_query($query,$conexao);
	$linha=mysql_fetch_array($dados,MYSQL_ASSOC);
	mysql_query($linha);
	header("Content-Type: text/html; charset=ISO-8859-1", true);
?>
  <form name="formTeste" action="add2.php?id=<? echo $id ?>" method="post">
	<table>
	   <tr>
    	     <td>
  		<p> T&iacute;tulo: <br>
  		<input type:"text" name="titulo" value="<? echo  $linha['NOMEANUNCIO']  ?>">
  		<p> Nome do cliente: <br>
  		<input type:"text" name="nome" value="<? echo  $linha['NOMECLIENTE']  ?>">
  		<p> An&uacute;ncio: <br>
  		<textarea rows="2" cols="20" name="texto"><? echo  $linha['TEXTO']  ?></textarea>
  		<p> Link: <br>
  		<input type:"text" name="link" value="<? echo  $linha['LINK']  ?>">
  		<p> Expira em: <br>
  		<input type:"text"name="validade" value="<? echo  $linha['VALIDADE']  ?>">
  		<p> Expirado:
  		<input type=checkbox>
		<input type="submit" name="b_enviar" value="Gravar"><BR>
	     </td>
	     <td>
	    	<img src="800x600.gif" border="0" width="600" height="400">
    	     </td>
	   </tr>
</body>
</html>


  • Código onde é feita a atualização do banco de dados (add2.php):
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body bgcolor="000000" text="FFFFFF">
<?
	$conexao = mysql_connect("localhost","root","cafeonline") ;
	$base_ok = mysql_select_db("cafeonline",$conexao);
	$id = $_GET['id'];
	$titulo=$_POST['titulo'] ;
	$nome=$_POST['nome'] ;
	$texto=$_POST['texto'] ;
	$link=$_POST['link'] ;
	$validade=$_POST['validade'] ;
	
	if (!empty ($titulo) && !empty ($nome) && !empty ($texto) && !empty ($link) && !empty ($validade))
	{
		$update=mysql_query("UPDATE anuncio SET NOMECLIENTE='$nome', NOMEANUNCIO='$titulo', TEXTO='$texto', LINK='$link', VALIDADE='$validade' WHERE IDANUNCIO='$id'");
		if($update==true)
		{
				echo "<h2>Dados atualizados com sucesso <br></h2>";	
				echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Ir para lista de an&uacute;ncios</a>";
		}else{
			echo "Erro ao Atualizar";
			"<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Ir para lista de an&uacutencios</a>";
		}
	}else{
		echo "<h2>Erro, campos vazios<br></h2>";
		echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar'>Voltar para lista de an&uacute;ncios</a>";
	}
header("Content-Type: text/html; charset=ISO-8859-1", true);
?>
</body>
</html>


Excluindo anúncios

Segue o código da página para exclusão de anúncios (excluir.php):

<html>
<head><meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" /></head>
<body bgcolor="000000" text="FFFFFF">
<?

$conexao = mysql_connect("localhost","root","cafeonline") ;
$base_ok = mysql_select_db("cafeonline",$conexao) or die ("erro 1");
$id=$_GET["id"]; 
$query = mysql_query("delete from anuncio where IDANUNCIO='$id'");
mysql_query($query);

if ($query==true)
{
	echo "<h2>An&uacute;ncio exlcluido<br></h2>";
	echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Voltar para lista de an&uacute;ncios</a>";
}else{
	echo "Erro ao excluir anúncio";
	echo "<a href='http://www.cafeonline.sj.ifsc.edu.br/listar>Voltar para lista de anúncios</a>";
}
header("Content-Type: text/html; charset=ISO-8859-1", true);
?>
</body>
</html>