Mudanças entre as edições de "Projeto Integrador - 2011.1 - Fenrir"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 587: Linha 587:
 
  mysql_close($conexao);
 
  mysql_close($conexao);
 
}
 
}
 +
?></nowiki>
 +
 +
'''Se você clicar em "Sair", a seguinte página é invocada, encerrando a seção, e redirecionando você para "index.php":
 +
<nowiki><?
 +
session_start();
 +
session_destroy();
 +
header("location: index.php");
 
  ?></nowiki>
 
  ?></nowiki>
  
Linha 742: Linha 749:
 
<?
 
<?
 
}
 
}
 +
?></nowiki>
 +
 +
'''Ao clicar em alterar, a seguinte página aparece''':
 +
''foto alterar''
 +
<nowiki><?
 +
session_start();
 +
if (!isset ($_SESSION['aut'])){
 +
        header("location: index.php");
 +
}else{
 +
 +
$usuario = $_GET['user'];
 +
$cliente = $_GET['cliente'];
 +
$dmn = $_GET['dmn'];
 +
$senha = $_GET['pass'];
 +
$codigo = $_GET['codigo'];
 +
?>
 +
<html>
 +
<head>
 +
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 +
 +
<title>Alteracoes</title>
 +
</head>
 +
<body>
 +
<body background="metal.jpg">
 +
 +
<form name="formoutroteste" action="alterando.php?codigo=<? echo $codigo ; ?>&senha=<? echo $senha ; ?>&cliente=<? echo $cliente ; ?>&dmn=<? echo $dmn ; ?>" method="post">
 +
<p>Usuario <br>
 +
<input type="text" name="a" value="<? echo $usuario ?>">
 +
<p>Senha <br>
 +
<input type="text" name="e" value="<? echo $senha ?>">
 +
<p>Cliente <br>
 +
<input type="text" name="b"value="<? echo $cliente ?>">
 +
<p>Dominio <br>
 +
<input type="text" name="c" value="<? echo $dmn ?>">
 +
 +
<input type="submit" name="a_enviar" value="Alterar">
 +
</form>
 +
</body>
 +
</html>
 +
<?
 +
}
 +
?></nowiki>
 +
 +
'''Ao alterar algum campo(com exceção do usuário, que não pode ser alterado), o administrador é redirecionado para a página "alterando.php", onde as alterações são feitas:'''
 +
<nowiki><?
 +
session_start();
 +
if (!isset ($_SESSION['aut'])){
 +
        header("location: index.php");
 +
}else{
 +
 +
#-------------------------------------------------------------------
 +
#NOVOS VALORES
 +
$usuario = $_POST['a'];
 +
$cliente = $_POST['b'];
 +
$dominio = $_POST['c'];
 +
$senha = $_POST['e'];
 +
#CODIGO PARA LOCALIZAR NO MYSQL
 +
$codigo = $_GET['codigo'];
 +
#VALORES QUE ESTAO NA TABELA (PODEMOS DIZER "ANTIGOS")
 +
$pass = $_GET['senha'];
 +
$domain = $_GET['dmn'];
 +
$client = $_GET['cliente'];
 +
#-------------------------------------------------------------------
 +
#MAY THE MADNESS BEGIN!-----------------------------
 +
#------------------------------------------
 +
#testando se o dominio nao foi escolhido
 +
//conectando no servidor
 +
$conexao = mysql_connect("localhost","fenrir","20bmw11");
 +
 +
//selecao da base de dadosi
 +
$base_ok = mysql_select_db("fenrir",$conexao);
 +
 +
#-------------------------------------------------------
 +
$consulta = "SELECT * from admin";
 +
$resultado = mysql_query($consulta,$conexao);
 +
while($linha = mysql_fetch_array($resultado)){
 +
if ((! $linha['dominio'] == $dominio) || (! $linha['usuario'] == $usuario)) {
 +
 +
#------------------------------------------------
 +
 +
 +
if (($senha != $pass)){
 +
 +
exec("sudo /var/scripts/alt_senha.sh $usuario $senha",$senhaalterada);
 +
}
 +
 +
//if (($cliente != $client)){
 +
// exec("sudo /var/scripts/alt_cliente $client",$clientealterado);
 +
//}
 +
 +
 +
if (($dominio != $domain)){
 +
exec("sudo /var/scripts/alt_dns.sh $domain $dominio",$dominioalterado);
 +
exec("sudo /var/scripts/alt_apache.sh $domain $dominio",$apachealterado);
 +
exec("sudo /var/scripts/alt_postfix.sh $domain $usuario $dominio",$postfixalterado);
 +
 +
}
 +
 +
//Atualiazando o usuario
 +
 +
 +
$atualizar="UPDATE admin SET senha='$senha', dominio='$dominio', cliente='$cliente' WHERE id=$codigo";
 +
mysql_query($atualizar,$conexao);
 +
 +
//conectando no servidor radius
 +
$con_rad = mysql_connect("localhost","freerad","bmwls2011");
 +
//selecao da base de dadosi
 +
$base_ok = mysql_select_db("radius",$con_rad);
 +
$alt_radius = "UPDATE radcheck SET value='$senha' WHERE username='$usuario'";
 +
mysql_query($alt_radius,$con_rad);
 +
 +
//echo mysql_error();
 +
mysql_close($conexao);
 +
mysql_close($con_rad);
 +
header("location: admin.php");
 +
}
 +
}
 +
}
 +
header("location: admin.php");
 
  ?></nowiki>
 
  ?></nowiki>
  

Edição das 21h15min de 11 de julho de 2011

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

Os arquivos de configuração ficam no /etc/postfix As configurações do servidor de email ficm no /etc/postfix/main.cf

#ARQUIVOS MODIFICADOS PARA DOMINIO DA EQUIPE FENRIR
#---------------------------------------------------------------------
#Segundo a documenta��o essa op��o é necessario para o funcionamento do emails alias (emails de subdominios)
best_mx_transport = local
# Maquina onde estáhospedado meu servidor de e-mails 
myhostname = mail.fenrir.sj.edu.br
# Nome do meu Dom�nio
mydomain = fenrir.sj.ifsc.edu.br
# Nome do Dom�nio de origem (quando enviamos e-mails)
myorigin = fenrir.sj.ifsc.edu.br
# Op��o que ativa os dominios virtuais
# Todos os Subdominio devem ser acrescentados no arquivo mydomains
# O comando hash éigual o include. porem no manual do postfix se manda utilizar o hash ao inves do include
virtual_alias_domains = hash:/etc/postfix/mydomains
# Lista de dominios que nosso email pode receber ou seja:
# $mydomain = fenrir.sj.ifsc.edu.br ent�o qualquer e-mail enviado para esse dominio nosso servidor de e-mails reconhecera que na verdade é pra ele esse   e-maa
il
mydestination = $myhostname, $mydomain, $virtual_alias_domains
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Op��o que define por qual interface de rede ele vai receber e-mails 
# No nosso caso ativamos todas, ou seja se ele receber e-mail pela eth0 ou eth1 eth2 tanto faz pra ele não faz difereça
inet_interfaces = all
 
mynetworks_style = subnet
#Op��o que define o que fazer com o e-mail com destino para um subdominio declarado no mydomains
#No nosso caso mandamos redirecionar para usuarios Linux 
alias_maps = hash:/etc/postfix/virtual
#Cria uma pasta para cada usuario e salva cada e-mail em arquivo texto separado
home_mailbox = Maildir/
#
# TODOS AS OUTRAS op��es OPTAMOS POR DEIXAR DEFAULT
#------------------------------------------------------
relayhost =
mailbox_size_limit = 0
recipient_delimiter = + 


arquivo /etc/postfix/mydomains

Todos os subdomínios são inseridos no arquivo /etc/postfix/mydomains, para inclui-los no servidor de email foi feito um arquivo virtual_alias_domains=hash:/etc/postfix/mydomains

fenrir.sj.ifsc.edu.br OK
azaghal.fenrir.sj.ifsc.edu.br OK
marco.fenrir.sj.ifsc.edu.br OK
sextafeira.fenrir.sj.ifsc.edu.br OK
novoteste.fenrir.sj.ifsc.edu.br OK
laksdalkdakljd.fenrir.sj.ifsc.edu.br OK

arquivo /etc/postfix/virtual

Neste arquivo coloco os usuários com os seus subdomínios

fenrir@fenrir.sj.ifsc.edu.br fenrir
azaghal@azaghal.fenrir.sj.ifsc.edu.br azaghal
marco@marco.fenrir.sj.ifsc.edu.br marco
sexta@sextafeira.fenrir.sj.ifsc.edu.br sexta
novoteste@novoteste.fenrir.sj.ifsc.edu.br novoteste
boromir@laksdalkdakljd.fenrir.sj.ifsc.edu.br boromir

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>
<?
}
//abaixo está o código para a imagem de incluir
//<img border="0" src="atualizar.jpg" width="30" height="30"></a><? echo  $linha['usuario']; 
?>
    <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);
}
 ?>

Se você clicar em "Sair", a seguinte página é invocada, encerrando a seção, e redirecionando você para "index.php":

<?
session_start();
session_destroy();
header("location: index.php");
 ?>

Ao clicar em "adicionar um usuário", a pagina é redirecionada para incluir.php, que seve para colocar os dados do novo cliente: foto incluir

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

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<title>Incluir clientes no Servidor Fenrir</title>
</head>
<body>
<body background="metal.jpg">
<form name="formTeste" action="conectar.php" method="get">

<center>
<p>Usuario: <br>
<input type="text" name="usr">
<p>Senha: <br>
<input type="text" name="pass">
<p>Dominio: <br>
<input type="text" name="dm">
<p>Cliente: <br>
<input type="text" name="nm">
<input type="submit" name="b_enviar" value="Enviar">
<p><a href="admin.php">Lista de Clientes</a>
</form>
</center>

</body>
</html>

<?
}
 ?>

Os dados anteriores são enviados pelo método "get", para a página seguinte, conectar.php:

<?
session_start();
if (!isset ($_SESSION['aut'])){
	header("location: index.php");
}else{
 $usuario = trim($_GET['usr']);
 $cliente = trim($_GET['nm']);
 $senha= trim($_GET['pass']);
 $dominio = trim($_GET['dm']);

if ((empty($usuario)) || (empty($cliente)) || (empty($dominio)) || (empty($senha))) {
	
	header("location: erro.php");
	
	}else{
//passando um "filtro" nas variaves
$usuario = strtolower($usuario);
//troca possiveis letras maiusculas por minusculas
$dominio = strtolower($dominio);
$senha = strtolower($senha);

//retira possiveis espaços
$usuario = str_replace(" ","",$usuario);
$senha = str_replace(" ","",$senha);
$dominio = str_replace(" ","",$dominio);
//
//
$conexao = mysql_connect("localhost","fenrir","20bmw11");
$base_ok = mysql_select_db("fenrir",$conexao);



//-----------------------------------
//verifica se já existe um dominio de mesmo nome
//-----------------------------

$consulta = "SELECT * from admin";
$resultado = mysql_query($consulta,$conexao);
while($linha = mysql_fetch_array($resultado)){
if ((! $linha['dominio'] == $dominio) || (! $linha['usuario'] == $usuario)) {


//---------------------------------
//---------------------------------

$inserir = "INSERT INTO admin (usuario,senha,dominio,cliente) VALUES ('$usuario','$senha','$dominio','$cliente')";
//mandando os dados
mysql_query($inserir,$conexao);
//echo mysql_error($conexao)
//-------------------------------------------
//INSERINDO NA TABELA DO RADIUS---------
//----------------------------------



$con_rad = mysql_connect("localhost","freerad","bmwls2011");
$base_ok = mysql_select_db("radius",$con_rad);

$inserir_radius = "INSERT INTO radcheck (username,attribute,op,value) VALUES ('$usuario','password','==','$senha')";

mysql_query($inserir_radius,$con_rad);


mysql_close($con_rad);
mysql_close($conexao);

exec("sudo /var/scripts/add_user.sh $usuario $senha",$adduser);
exec("sudo /var/scripts/add_apache.sh $dominio",$apache);
exec("sudo /var/scripts/add_dns.sh $dominio",$dns);

exec("sudo /var/scripts/add_postfix.sh $dominio $usuario",$postfix);
header("location: admin.php");
}
}

}
}
header("location: admin.php");

?>

Ao clicar em excluir um usuário, a página vai para exluir.php: foto excluir

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


$usuario = $_GET['usuario'];
$codigo = $_GET['codigo'];
$dominio = $_GET['dominio']; 
$cliente = $_GET['cliente']; 
?>
<html>
<head>

<title>Excluir Cliente</title>
</head>
<body>
<body background="metal.jpg">  
Você realmente deseja exclur o cliente <?echo $cliente; ?> ?<br />

<a href="excluir_logica.php?codigo=<? echo $_GET['codigo']; ?>&dominio=<? echo $_GET['dominio']; ?>&usuario=<? echo $_GET['usuario'];?>">Sim</a>
<a href="admin.php">Não</a><br />
</body>
</html>
<?
}
 ?>

Ao clicar em alterar, a seguinte página aparece: foto alterar

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

$usuario = $_GET['user']; 
$cliente = $_GET['cliente']; 
$dmn = $_GET['dmn']; 
$senha = $_GET['pass']; 
$codigo = $_GET['codigo']; 
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<title>Alteracoes</title>
</head>
<body>
<body background="metal.jpg">

<form name="formoutroteste" action="alterando.php?codigo=<? echo $codigo ; ?>&senha=<? echo $senha ; ?>&cliente=<? echo $cliente ; ?>&dmn=<? echo $dmn ; ?>" method="post">
<p>Usuario <br>
<input type="text" name="a" value="<? echo $usuario ?>">
<p>Senha <br>
<input type="text" name="e" value="<? echo $senha ?>">
<p>Cliente <br>
<input type="text" name="b"value="<? echo $cliente ?>">
<p>Dominio <br>
<input type="text" name="c" value="<? echo $dmn ?>">

<input type="submit" name="a_enviar" value="Alterar">
</form>
</body>
</html>
<?
}
?>

Ao alterar algum campo(com exceção do usuário, que não pode ser alterado), o administrador é redirecionado para a página "alterando.php", onde as alterações são feitas:

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

#-------------------------------------------------------------------
#NOVOS VALORES
$usuario = $_POST['a'];
$cliente = $_POST['b'];
$dominio = $_POST['c'];
$senha = $_POST['e'];
#CODIGO PARA LOCALIZAR NO MYSQL
$codigo = $_GET['codigo'];
#VALORES QUE ESTAO NA TABELA (PODEMOS DIZER "ANTIGOS")
$pass = $_GET['senha'];
$domain = $_GET['dmn'];
$client = $_GET['cliente'];
#-------------------------------------------------------------------
#MAY THE MADNESS BEGIN!-----------------------------
#------------------------------------------
#testando se o dominio nao foi escolhido
//conectando no servidor
$conexao = mysql_connect("localhost","fenrir","20bmw11");

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

#-------------------------------------------------------
$consulta = "SELECT * from admin";
$resultado = mysql_query($consulta,$conexao);
while($linha = mysql_fetch_array($resultado)){
if ((! $linha['dominio'] == $dominio) || (! $linha['usuario'] == $usuario)) {

#------------------------------------------------


	if (($senha != $pass)){

	exec("sudo /var/scripts/alt_senha.sh $usuario $senha",$senhaalterada);
	}

	//if (($cliente != $client)){
	//	exec("sudo /var/scripts/alt_cliente $client",$clientealterado);
	//}


	if (($dominio != $domain)){
			exec("sudo /var/scripts/alt_dns.sh $domain $dominio",$dominioalterado);
			exec("sudo /var/scripts/alt_apache.sh $domain $dominio",$apachealterado);
			exec("sudo /var/scripts/alt_postfix.sh $domain $usuario $dominio",$postfixalterado);	

	}		

//Atualiazando o usuario


$atualizar="UPDATE admin SET senha='$senha', dominio='$dominio', cliente='$cliente' WHERE id=$codigo";
mysql_query($atualizar,$conexao);

//conectando no servidor radius
$con_rad = mysql_connect("localhost","freerad","bmwls2011");
//selecao da base de dadosi
$base_ok = mysql_select_db("radius",$con_rad);
$alt_radius = "UPDATE radcheck SET value='$senha' WHERE username='$usuario'";
mysql_query($alt_radius,$con_rad);

//echo mysql_error();
mysql_close($conexao);
mysql_close($con_rad);
header("location: admin.php");
}
}
}
header("location: admin.php");
 ?>

Instalação de Equipamento de Redes

Instalação de Equipamento de Redes

Na parte de instalação de equipamentos de rede foram feitas as configurações dos equipamentos necessários para que houvesse a comunicação entre os laboratórios de Redes 1 (onde ficarão os servidores das equipes) e Meios de Transmissão ( onde será disposta uma área de trabalho), e ainda para que cada equipe pudesse disponibilizar para seus clientes, acesso a internet via DSL. Os equipamentos necessários para essa ligação foram:

-Roteadores

-Modens SHDSL

-Switch

-DSLAM

-Modens DSL

A primeira ligação e configurações que tiveram de ser feita foram dos modens SHDSL e roteadores. Os modens foram configurados a nível 'físico', modificando a pinagem da placa do mesmo, segunda a necessidade requerida. Já para os roteadores foi utilizado um software de gerenciamento utilizado via terminal, para estabelecer as rotas e ip's, o minicom, que requer algumas configurações pelo seu menu. Para entrar com o minicom, fazer no terminial

minicom -s

Para configurar o minicom, selecione a opção : "Configuração da porta serial"

┌─────────────[configuração]──────────────┐
│ Nomes de arquivos e rotas
│ Protocolos de transferência de arquivos
│ Configuração da porta serial
│ Modem e discagem
│ Tela e teclado
│ Salvar configuração como dfl
│ Salvar configuração como
│ Sair
│ Sair do Minicom
└────────────────────────────────────────┘

Em seguida aparecerá:

┌──────────────────────────────────────────────────────────┐
│ A – Dispositivo Serial : /dev/tty1
│ B – Localização do Arquivo de Travamento : /var/lock
│ C – Programa de Entrada :
│ D – Programa de Saída :
│ E – Bps/Paridade/Bits : 38400 8N1
│ F – Controle de Fluxo por Hardware : Sim
│ G – Controle de Fluxo por Software : Não
│
│ Alterar qual configuração?
└──────────────────────────────────────────────────────────┘

Altere as seguintes opções:

Dispositivo Serial : /dev/ttSy0 Bps/Paridade/Bits : 9600 8N1 Controle de Fluxo por Hardware : Não

Após, volte ao menu principal, e salve a configuração como 'Salvar configuração com dfl', e saia do minicom com 'sair'. Agora já é possível acessar o roteador desejado, no caso o roteador cisco 2500, logando com o usuário e senha dos mesmos. Após se logar dar os

seguintes comandos:

enable; configure terminal;

Para configurar a interface serial:

interface serial 0; ip address 10.0.0.2/30; encapsulation ppp; exit;

Para configurar a interface ethernet: interface fastethernet 0; ip address 192.168.0.1/24; exit; exit;

Para salvar as configurações: wr;



Diagrama da rede:


Diagrama da rede1.jpg


Diagrama da rede:

Diagrama da rede1.jpg

Cabeamento Estruturado

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