Projeto Integrador - 2011.1 - Fenrir

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

Equipe Fenrir

  • Beatriz da Silveira
  • Luana Beatriz da Silva
  • Marco Aurelio
  • Sergio Araujo Stahelin
  • William Jamir Silva

1º Dia - 13/06/2011

  • Atividades
    • Sistema Operacional:Ubuntu-Server
    • Definido Sistema de Arquivo:
    • Nome da Máquina: fenrir
    • Nome do Domínio: fenrir.sj.ifsc.edu.br


2º Dia 14/06/2011

  • Recebemos do Professor Saul as orientações necessarias para realizar a instalação do Cabeamento Estruturado

3º Dia 15/06/2011

  • Equipe foi subdividida em:
    • Sergio e Luana - IER
    • Marco, Beatriz e WIlliam - Gerência de Redes
      • Marco - Apache
      • Beatriz - DNS
      • William - Postfix
  • Status das Atividades
    • DNS
      • Concluido a instalação Básica.
      • Planejando a implentação de sub-dominios
    • Postfix
      • Concluido a instalação Básica.
      • Planejando a implentação de sub-dominios nos endereços de e-mails
    • Apache
      • Concluido a instalação Básica.
      • Planejando a implentação de sub-dominios nas paginas web

Documentação

Gerência de Redes

DNS

arquivo /etc/bind/named.conf

/ This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the 
// structure of BIND configuration files in Debian, *BEFORE* you customize 
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/minastirith.fenrir.zone";
include "/etc/bind/luana.fenrir.zone";
include "/etc/bind/azaghal.fenrir.zone";
include "/etc/bind/marco.fenrir.zone";
include "/etc/bind/sextafeira.fenrir.zone";
include "/etc/bind/novoteste.fenrir.zone";
include "/etc/bind/hello.fenrir.zone";

arquivo /etc/bind/named.conf.local

//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "fenrir.sj.ifsc.edu.br" {
type master;
file "/etc/bind/fenrir.zone";
};
zone "37.135.200.in-addr.arpa" {
       type master;
       file"/etc/bind/37.135.200.in-addr.arpa";
};

arquivo /etc/bind/fenrir.zone

Neste arquivo estão as configurações do Fenrir

$TTL 60
@       IN SOA ns1.fenrir.sj.ifsc.edu.br. root (
               2011061600 ;serial
               60      ;refresh        
               60      ;TTL
               60      ;
               60      ;
)
       IN NS   ns1.fenrir.sj.ifsc.edu.br.
       IN MX   0 mail.fenrir.sj.ifsc.edu.br.
       IN A 200.135.37.99
batman IN NS batman.fenrir.sj.ifsc.edu.br.
sheldon IN NS sheldon.fenrir.sj.ifsc.edu.br.


$ORIGIN         fenrir.sj.ifsc.edu.br.
       A       200.135.37.99
ns1     A       200.135.37.99
www     A       200.135.37.99
mail    A       200.135.37.99
sheldon A       200.135.37.99
batman  A       200.135.37.99

arquivo 37.135.200.in-addr.arpa

Neste arquivo se encontra as configurações do dns reverso para o dominio fenrir

$TTL 86400
@ IN SOA ns1.fenrir.sj.ifsc.edu.br. root (
       2011061600
       60
       60
       60
       60 )
       IN      NS      ns1.fenrir.sj.ifsc.edu.br.
       IN      MX  0   ns1.fenrir.sj.ifsc.edu.br.
99      PTR     fenrir.sj.ifsc.edu.br.

Abaxo estão os scrips, ja comentados, para adicinar remover e alterar o subdominos no dns.

#!/bin/bash
#adicinar subdominio
#subdominio
 
conf=$1

if [ ! "$#" -lt 1 ];
        then
                #Adiciona no named.conf o subdonio

              echo "include \"/etc/bind/$conf.fenrir.zone\";" >> /etc/bind/named.conf
                #Editam dois arquivos modelo de configuracao do dsn substituindo a string "modelo" pelo subdominio

                sed s/modelo/$conf/g /etc/bind/scripsmodelo/modelo.fenrir.config > /etc/bind/$conf.fenrir.config

                sed s/modelo/$conf/g /etc/bind/scripsmodelo/modelo.fenrir.zone > /etc/bind/$conf.fenrir.zone

                #reinicia o servidor
                service bind9 restart

fi


#!/bin/bash
#remover subdominio
#dominio
conf=$1

if [ ! "$#" -lt "1" ]

then
        #retira do named.conf a linha onde o dominio esta localizado. Isso por si só"desativa" o dominio

        sed -i /$conf.fenrir/Id /etc/bind/named.conf
        #para nao acumular lixo no /etc/bind os outros arquivos de configuracao sao remoridos
        rm  /etc/bind/$conf.fenrir.config
        rm /etc/bind/$conf.fenrir.zone

        service bind9 restart
fi


#!/bin/bash
#alterar dominio
#dominio
conf=$1
#novo dominio
conf2=$2
if [ ! "$#" -lt 1 ];
        then
                 #troca o antido dominio pelo novo no named.conf 
                  sed -i s/$conf.fenrir/$conf2.fenrir/g /etc/bind/named.conf 
                 #troca o dominio antigo pelo novo nos arquivos de configuracao
                 sed -i s/$conf/$conf2/g /etc/bind/$conf.fenrir.config
                 sed -i s/$conf/$conf2/g /etc/bind/$conf.fenrir.zone 
                #altera o nome dos arquivos de configuracao
                mv /etc/bind/$conf.fenrir.zone /etc/bind/$conf2.fenrir.zone
                mv /etc/bind/$conf.fenrir.config /etc/bind/$conf2.fenrir.config 
                service bind9 restart

fi

Postfix

RoundClub

Apache

Arquivo default do apache salvo em /etc/apache2/sites-available e em /etc/apache2/sites-enabled

<VirtualHost *:80>
 	ServerAdmin webmaster@localhost

 	DocumentRoot /var/www
 	<Directory />
	 	Options FollowSymLinks
	 	AllowOverride None
	 </Directory>
	 <Directory /var/www/>
 		Options Indexes FollowSymLinks MultiViews
 		AllowOverride None
 		Order allow,deny
 		allow from all
 		
 	</Directory>
 
 	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 	<Directory "/usr/lib/cgi-bin">
 	        AllowOverride None
 	 	Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 	 	Order allow,deny
 	 	Allow from all
 	 </Directory>

	 ErrorLog ${APACHE_LOG_DIR}/error.log

	 # Possible values include: debug, info, notice, warn, error, crit,
	 # alert, emerg.
	 LogLevel warn

	 CustomLog ${APACHE_LOG_DIR}/access.log combined

     Alias /doc/ "/usr/share/doc/"
     <Directory "/usr/share/doc/">
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Deny from all
         Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory>
  
 </VirtualHost>


Ao criar uma página, o seguinte script é executado:


#!/bin/bash
	#Testa se os argumentos existem
if [ ! "$#" -lt "1" ];
	then
	#seta a variável "$dominio" com o valor do primeiro argumento
dominio=$1

	#cria o diretorio de cada subdominio
mkdir /var/www/$dominio
	#copia uma página index padrão para o diretório criando
cp /var/scripts/index.php /var/www/$dominio/ 
	#cria um arquivo vazio, que posteriormente vai conter as informações do subdominio criado
touch /etc/apache2/sites-available/$dominio
	#copia as informações de um arquivo de subdominio padrão, substituindo a palavra "dominiou" pela palavra contida na variável "$dominio"
sed s/dominiou/$dominio/g /var/scripts/hosts > /etc/apache2/sites-available/$dominio

	#ativa o site criado
a2ensite $dominio
	#recarrega o apache
service apache2 reload

fi

 #Fim do programa


Ao alterar uma página, o seguinte script é executado:

#!/bin/bash
	#Verirfica se existem ao menos dois argumentos
if [ ! "$#" -lt "2" ];
	then

#dominio antigo	
	old=$1

#dominio novo
	new=$2

		#criando a pasta nova e movendo os arquivos antigos para ela

		mv /var/www/$old /var/www/$new
				
		#desativando o site antigo
		rm /etc/apache2/sites-enabled/$old
		rm /etc/apache2/sites-available/$old

#criando um arquivo vazio, e em seguida envia o conteudo do arquivo padrao para o novo arquivo, contendo os dados do novo site
		touch /etc/apache2/sites-available/$new
		sed s/dominiou/$new/g /var/scripts/hosts > /etc/apache2/sites-available/$new
		
#ativando o site
			
		a2ensite $new
		service apache2 reload
fi
 #Fim do script


Os scripts acima utilizam o sed para agilizar a criação do arquivo de configuração, usando o arquivo seguinte, substituindo a palavra "dominiou" pelo nome desejado para o submdominio. E em seguinda o copia para sites-available, e o ativando com o comando a2ensite

<VirtualHost *:80>
        ServerName dominiou.fenrir.sj.ifsc.edu.br
        DocumentRoot /var/www/dominiou
        ServerAlias *dominiou.fenrir.sj.ifsc.edu.br
        ErrorLog /var/log/apache2/dominiou-error.log
<Directory /var/www/dominiou>
        Options Indexes
        DirectoryIndex index.html index.php
        order allow,deny
        allow from all
</Directory>
 </VirtualHost>


Ao excluir uma página, o seguinte script é executado:

#!/bin/bash
	#Verifica se exite ao menos um argumento valido
if [ ! "$#" -lt "1" ];
	then
	#Seta a variável "$dominio" com o domínio desejado
dominio=$1
	
	#remove a pasta do arquivo antigo
rm -r /var/www/$dominio
	#remove os arquivos do site antigo
rm /etc/apache2/sites-enabled/$dominio
rm /etc/apache2/sites-available/$dominio
	#recarrega o apache
service apache2 reload 

fi
 #fim do programa

Programação para Redes de Computadores

Todas as páginas têm, como medida de segurança, uma seção(session), para impedir o acesso não autorizado às páginas, que têm caráter administrativo. Segue a configuração de sessão padrão:

<?
session_start();//inicia a sessão
if (isset($_SESSION['aut'])){ //testa se a seção é válida com um laço if - Se não for, vai para a index.php, se for, continua para o resto da página.
header ("location: admin.php");
}else{

//resto da página
}
 ?>


Página index: foto index

<?
session_start();
if (isset($_SESSION['aut'])){
header ("location: admin.php");
}else{
?>
<html>
<head>
  <meta http-equiv="Content-Type"
 content="text/html; charset=utf-8">
  <title>AdministraÃÃo de usuÃrios - Fenrir</title>
  <style type="text/css">
<!--
html, body, form, fieldset {
margin: 0px;
padding: 0;
}
body {
background: #FFF;
color: #000;
font-family: "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
line-height: 140%;
font-size:12px;
color:#fff;
}
#login {
position:absolute;
width:460px;
height:210px;
z-index:1;
left: 50%;
top: 50%;
margin-left:-230px;
margin-top:-105px;
background:url(logo.jpg) center no-repeat #fff;
}
.inputbox {
color: #666;
font-size: 11px;
margin: 2px 0 0 5px;
padding: 2px;
height:15px;
width:166px;
}
 

A seguir, a página admin.php, que funciona como uma página principal, mostrando uma tabela com os clientes cadastrados no sistema, além de dar a opção de incluir, deletar ou alterar os dados dos cadastrados. foto admin

<?
session_start();
if (!isset ( $_SESSION['aut'])){
header ("location: index.php");
}else{

?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

  <title>Servidor Fenrir</title>
  <meta name="generator" content="Amaya, see http://www.w3.org/Amaya/" />
</head>
<style>
tr.linha, div.linha {
	background-color:#75AC68;	
}
</style>
<body>
<body background="metal.jpg"> 

<?
//conectando no servidor


$conexao = mysql_connect("localhost","fenrir","20bmw11");

 //selecao da base de dados
$base_ok = mysql_select_db("fenrir",$conexao);

 //obtendo os registro da tabela contatos
$consulta = "SELECT * from admin";
$resultado = mysql_query($consulta,$conexao);
?>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<p><a href="sair.php">Sair</a></p>

<table border="0" bgcolor=FFFFFF  style="width: 100%" cellpascing="1" cellpadding="0">
		  <caption></caption>
  <col />
  <col />
  <col />
  <col />
  <col />
  <col />
  <tbody>
    <tr>
	<td height="23" background="fundo.jpg" > Usuario </td>
      <td height="23" background="fundo.jpg"> Senha</td>
      <td height="23" background="fundo.jpg" align="center">Dominio </td>
      <td height="23" background="fundo.jpg" align="center">E-mail</td>
      <td height="23" background="fundo.jpg" align="center">Nome</td>
      <td  height="23" background="fundo.jpg" align="center">Acao</td>
	</tr>
<tr>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
      <td> </td>
        </tr>
	<?
 $i=0;
 while($linha = mysql_fetch_array($resultado)){
	$i++;
	if ($i%2==0) $classe = " class='linha'"; else $classe = "";
?>
    <tr <?=$classe?>>

      <td><a href="alterar.php?user=<? echo $linha['usuario'];?>&cliente=<? echo $linha['cliente'];?>&dmn=<? echo $linha['dominio'];?>&codigo=<? echo $linha['id'];?>&pass=<? echo $linha['senha']; ?>"> <? echo  $linha['usuario'];?> </a></td>
      <td> <? echo  $linha['senha']; ?> </td>
      <td> <? echo $linha['dominio']; ?></td>
      <td> <? echo $linha['usuario']; ?>@<? echo $linha['dominio']; ?>.fenrir.sj.ifsc.edu.br </td>
      <td> <? echo  $linha['cliente']; ?> </td>
      <td><a href="excluir.php?usuario=<? echo $linha['usuario'];?>&codigo=<? echo $linha['id']; ?>&dominio=<? echo $linha['dominio'];?>&cliente=<? echo $linha['cliente']; ?>">Excluir </a></td>
<?
}
//BAIXO ESTÁ O CODIGO PARA COLOCAR IMAGEM DE ATUALIZAR NO NOME DO USUARIO
//<img border="0" src="atualizar.jpg" width="30" height="30"></a><? echo  $linha['usuario']; não esquece de fechar com o INTERROGAÇÃO SINAL DE MAIOR !!!!!!!!!!!!!!!!!!
?>
    <tr>
 <td height="23" background="fundo.jpg" >  </td>
      <td height="23" background="fundo.jpg"> </td>
      <td height="23" background="fundo.jpg" align="center"> </td>
      <td height="23" background="fundo.jpg" align="center"></td>
      <td  height="23" background="fundo.jpg" align="center"> . </td>
        </tr>


    </tr>
  </tbody>
</table>

<p></p>

<p></p>

<p></p>

<p></p>

<p><a href="incluir.php"><img border="0" src="cadastro.gif" width="30" height="30" </a>Adicionar Novo Dominio
</body>
</html>
<?
 //liberando a consulta
 mysql_free_result($resultado);

 //fechando a conexao
 mysql_close($conexao);
}
 ?>

Instalação de Equipamento de Redes

Diagrama da rede:

Diagrama da rede1.jpg

Cabeamento Estruturado

Diagrama de rede e esquema de ligações nos Racks: Diagrama Cabe.jpg Legendaa.jpg