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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 181: Linha 181:
 
  #Para salvar as configurações:
 
  #Para salvar as configurações:
 
  wr;
 
  wr;
 +
 +
'''Radius'''
 +
 +
Para ter acesso a rede aDSL ou pela rede sem fio  será usado Radius para que os usuários sejam autenticados. O RADIUS é um sistema utilizado para prover uma autenticação centralizada em redes dial-up, VPN's (Virtual Private Network) e redes sem fio.  Ele tem um modelo cliente-servidor, onde o cliente é o Network Access Server (NAS). Esse servidor é responsável por obter a informação sobre o cliente e repassá-la para o servidor RADIUS, além de interpretar a resposta, dando ou não acesso ao cliente. O servidor RADIUS é responsável por receber pedidos de conexão, autenticar o usuário e repassar ao NAS as informações necessárias para esse dar acesso ao usuário na rede.
 +
 +
'''Arquivos configurados:'''
 +
 +
Configurar login e senha para o cliente Radius ( /etc/freeradius
 +
/users ):
 +
 +
“Usúario” Cleartext-Password := "senha"
 +
“Usúario” User-Password := "senha"
 +
 +
Configurando o Servidor PPPoe (/etc/ppp/pppoe-servers-options):
 +
 +
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/teletec.conf
 +
mru 1492
 +
mtu 1492
 +
 +
Configuração do Cliente Radius ( etc/radiusclient/teletec.conf ):
 +
 +
auth_order radius
 +
login_tries 4
 +
login_timeout 60
 +
nologin /etc/nologin
 +
issue /etc/radiusclient/issue
 +
authserver 200.135.37.100
 +
acctserver 200.135.37.100
 +
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
 +
 +
Configurando o IP do Servidor Radius ( /etc/radiusclient/servers ):
 +
 +
200.135.37.100 testing123
 +
 +
Integrando Radius ao Banco de Dados
 +
 +
Primeiro procedimento, instale o  pacote.
 +
 +
apt-get install freeradius-mysql
 +
Edite o arquivo de configuração do freeradius, e descomente a seguinte linha
 +
( /etc/freeradius/radiusd.conf ):
 +
 
 +
$INCLUDE sql.conf
 +
 +
Para entrar no MySQL execute o comando:
 +
 +
mysql -u root -p
 +
 +
Crie uma base de dados somente para o Radius e dê ao usuário Radius a devida permissão para acesso a esta base. No shell do MySQL, execute os comandos:
 +
 +
CREATE DATABASE radius;
 +
GRANT ALL ON radius.* TO freerad@localhost IDENTIFIED BY "senha_do_usuário_freeradius";
 +
exit;
 +
 +
Inserindo informações na base de dados:
 +
 +
mysql -u “usuário” -p “senha do usuário radius” “database” < /etc/freeradius/sql/mysql/schema.sql
 +
mysql -u “usuário” -p “senha do usuário radius” “database” < /etc/freeradius/sql/mysql/nas.sql
 +
 +
Editar o arquivo /etc/freeradius/sql.conf, colocando a senha do usuário Radius:
 +
 +
passwrod = "senha do usuário radius"
 +
 +
E descomente a linha do mesmo arquivo ( /etc/freeradius/sql.conf ) :
 +
 +
readclients = yes
 +
 +
Reinicie o FreeRadius:
 +
 +
service freeradius restart
  
 
== Cabeamento Estruturado ==
 
== Cabeamento Estruturado ==

Edição das 21h14min de 8 de julho de 2011

* Equipe 2 : TELETEC


INTEGRANTES TELETEC

* Daniel Estefano;      estefano.daniel@gmail.com 
* Denis Teixeira;       denisteixeira3@gmail.com 
* Leonardo Oliveira P.; leonardo-op@live.com 
* Odair de Moraes;      odairdmoraes@hotmail.com
* Robson de Carvalho;   rob_carvalho12@hotmail.com
* Vagner Cordeiro.      cordeirotelecom@gmail.com

EMPRESA TELETEC - PROVEDOR DE ACESSO Á INTERNET:

A Empresa Oferece os seguintes serviços: 

# Conta de Usuário para cada cliente;
# Conta de E-mail para cada cliente;
# Uma página Web Padrão;
# Instalação do Modem ADSL e do Cabeamento Estrurado;
# Acesso Wirelles;

Etapas Iniciais de Configurações da Rede

# Instalação do Sistema Operacional:Ubuntu-Server;
# Definido Sistema de Arquivo, Dividido em 3 Partições: 1 Partição Primátia, 1 Partição Secundária e uma Partição para Swap; 
# Definido nome do Domínio: teletec.sj.ifsc.edu.br;
# Criado um Usuário: Tecnico;
# Acesso via SSH ao Servidor Teletec.

Gerencia de Redes: Apache, Postfix e DNS

Configurações do servidor DNS:

- Edição do Arquivo para IP Estático: /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
               address 200.135.37.100
               netmask 255.255.255.192
               gateway 200.135.37.126  

- Edição do Arquivo do servidor DNS /etc/bind/named.conf

Indica todos os arquivos que vai fazer a configuração dele
// 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/servidor.conf";
include "/etc/bind/tecnico.conf";
include "/etc/bind/daniel.conf";

- Edição do Arquivo de servidor DNS: named.conf.local /etc/bind/named.conf.local

É um arquivo padrão do BIND onde foi configurado o o nosso dominino TELETEC.
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918"8;
zone "teletec.sj.ifsc.edu.br." IN {
        type master;
        file "/etc/bind/teletec.zone";
        allow-update { none; };
};

- Edição do Arquivo de DNS Reverso: /etc/bind/37.135.200.in-addr.arpa

O DNS Reverso resolve um endereço IP para um nome de servidor – por exemplo, ele poderia resolver 200.176.3.142 para exemplo.hipotetico.com.br.
$TTL 86400
@	IN   SOA   servidor.teletec.sj.ifsc.edu.br. root (
 		2011061500 ;
 		1d ;
 		1h ;
  		1w ; 
		1d ;
 						    )
       IN   NS    servidor.teletec.sj.ifsc.edu.br.
100    IN   PTR   servidor.teletec.sj.ifsc.edu.br.

- Edição do Arquivo para criar um subdomínio:/etc/bind/teletec.zone

$TTL	86400
@	IN SOA teletec.teletec.sj.ifsc.edu.br root (
			2011062901;
			3H;
			15M;
			1W;
			1D );
	IN NS		teletec.teletec.sj.ifsc.edu.br.
         IN MX  0        mail.teletec.sj.ifsc.edu.br.
localhost	IN A	127.0.0.1
$ORIGIN teletec.sj.ifsc.edu.br.
teletec		A	200.135.37.100
www		A	200.135.37.100
mail		A	200.135.37.100

Instalação de Equipamento de Redes (Modem, Switch e Roteadores)

Configurações:

Instalação:

minicom -s

Configuração do Roteador Cisco 1700:

  • Configuração dos Dois Roteadores Utilizando a ferramenta "Minicon" (Se fosse Windows seria Hyperterminal)
  • Configuração dos dispositivos: Serial e Ethernet
  • Configuração como Protocolo PPP

- "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
└────────────────────────────────────────┘

- "Alteração da Porta Serial"

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

- "Salvar configuração com dfl"

- Configurando a Interface Serial do Roteador:

enable;
configure terminal;
 
#Para configurar a interface serial:
interface serial 0;
ip address 10.0.0.1/30;
encapsulation ppp;
exit;
 
#Para configurar a interface ethernet:
interface fastethernet 0;
ip address 172.18.0.1/24;
exit;
exit;
 
#Para salvar as configurações:
wr;

Radius

Para ter acesso a rede aDSL ou pela rede sem fio será usado Radius para que os usuários sejam autenticados. O RADIUS é um sistema utilizado para prover uma autenticação centralizada em redes dial-up, VPN's (Virtual Private Network) e redes sem fio. Ele tem um modelo cliente-servidor, onde o cliente é o Network Access Server (NAS). Esse servidor é responsável por obter a informação sobre o cliente e repassá-la para o servidor RADIUS, além de interpretar a resposta, dando ou não acesso ao cliente. O servidor RADIUS é responsável por receber pedidos de conexão, autenticar o usuário e repassar ao NAS as informações necessárias para esse dar acesso ao usuário na rede.

Arquivos configurados:

Configurar login e senha para o cliente Radius ( /etc/freeradius /users ):

“Usúario” Cleartext-Password := "senha"
“Usúario” User-Password := "senha"

Configurando o Servidor PPPoe (/etc/ppp/pppoe-servers-options):

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/teletec.conf
mru 1492
mtu 1492

Configuração do Cliente Radius ( etc/radiusclient/teletec.conf ):

auth_order	radius
login_tries	4
login_timeout	60
nologin /etc/nologin
issue	/etc/radiusclient/issue
authserver 	200.135.37.100
acctserver 	200.135.37.100
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

Configurando o IP do Servidor Radius ( /etc/radiusclient/servers ):

200.135.37.100 testing123

Integrando Radius ao Banco de Dados

Primeiro procedimento, instale o pacote.

apt-get install freeradius-mysql

Edite o arquivo de configuração do freeradius, e descomente a seguinte linha ( /etc/freeradius/radiusd.conf ):

$INCLUDE sql.conf

Para entrar no MySQL execute o comando:

mysql -u root -p 

Crie uma base de dados somente para o Radius e dê ao usuário Radius a devida permissão para acesso a esta base. No shell do MySQL, execute os comandos:

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

Inserindo informações na base de dados:

mysql -u “usuário” -p “senha do usuário radius” “database” < /etc/freeradius/sql/mysql/schema.sql
mysql -u “usuário” -p “senha do usuário radius” “database” < /etc/freeradius/sql/mysql/nas.sql

Editar o arquivo /etc/freeradius/sql.conf, colocando a senha do usuário Radius:

passwrod = "senha do usuário radius"

E descomente a linha do mesmo arquivo ( /etc/freeradius/sql.conf ) :

readclients = yes

Reinicie o FreeRadius:

service freeradius restart

Cabeamento Estruturado

Atividades Concluídas:

- o A central telefônica ao DSLAM
- o 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 permitiu a conexão do modem DSL no armário de telecom.
- As tomadas da área de trabalho para conexão com Telefone e o Modem ADSL.

Programação para Redes de Computadores

Os Arquivos Encontram-se dentro da pasta: /var/www/teletec

- Edição do Arquivo Verificação.php:

<?
session_start();
$login = $_POST['login'];
$senha = $_POST['senha'];
if ( ( $login == "Administrador" ) && ( $senha == "orelha1234" ) ){
$_SESSION['autorizado'] = $login;
Header ("Location: principal.php");
}else{
Header ("Location: login.php");
}
?>

- Edição do Arquivo sair.php:

<?
session_start();
session_destroy();
Header ("Location: login.php");
?>

- Edição do arquivo principal.php:

<.?
   .session_start();
   .if (!isset($_SESSION['autorizado'])){
      .header ("Location: login.php");
   .}else{
.?>
<.html>
   <.head>
     <.meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
     <.title>Administrcao de Dominios</title>
   <./head>
<.body>

<.p><a href="sair.php">Sair</a>

<.p>

<.p style="text-align:center;margin-left:auto;margin-right:auto;">Cliente Dominio Acao

<.?
   $conexao = mysql_connect("localhost","www-data","orelha1234");
   $base_ok = mysql_select_db("teletec",$conexao);
   $consulta = "SELECT * from clientes";
   $resultado = mysql_query($consulta,$conexao);
   while($linha = mysql_fetch_array($resultado)){
      $cliente = $linha['cliente'];
      $dominio = $linha['dominio'];
.?>
   <.form>
      <.p style="text-align:center;margin-left:auto;margin-right:auto;">
      <.a name="cliente" id="cliente" href="alterar.php?id=<? echo $linha['dominio'];?>"> <?echo                   $.linha['cliente'];?></a>   

<.? echo $linha['dominio'];?> <a href="excluir.php?id=<? echo $linha['dominio'];?>"> Excluir</a>

  <./form>
<.?
   .}
   .mysql_free_result($resultado);
   .mysql_close($conexao);
.}
.?>
   <.p style="text-align:right;margin-left:auto;margin-right:0;">

<.a href="adicionar.php">Adicionar novo dominio</a>

<./body>
<./html>

- Edição do Arquivo mod-domínio.php:

<.?
session_start();
if (!isset($_SESSION['autorizado'])){
        header ("Location: login.php");
}else{
   $cliente = $_POST['cliente'];
   $dominio = $_POST['dominio'];
   $antigo = $_POST['antigo'];;
   if (empty($dominio)) {
      $dominio = "invalido";
   } 

   if (preg_match('/^[a-z0-9]+/', $dominio)){
   }else{
      $dominio = "invalido";
   } 

   $arquivo = '/etc/bind/named.conf';
   $linhas = array();
   exec("cat $arquivo",$linhas);
   for ($i = 0 ; $i < sizeof($linhas); $i++){
      if ($linhas[$i] == "include \"/etc/bind/$dominio.conf\";"){
         $dominio = "invalido";
      }
   }
   if ($dominio == "invalido"){
      header ("Location: alterar.php");
   }else{ 

      $script = "/etc/teletec/mod-dominio.sh $antigo '$cliente' $dominio";
      exec("$script");
      exec("/etc/init.d/apache2 restart");

      $conexao = mysql_connect("localhost","www-data","orelha1234");
      $base_ok = mysql_select_db("teletec",$conexao);
      $deletar = "DELETE FROM clientes WHERE dominio='$antigo.teletec.sj.ifsc.edu.br'";
      mysql_query($deletar,$conexao);
      mysql_close($conexao); 

      $conexao = mysql_connect("localhost","www-data","orelha1234");
      $base_ok = mysql_select_db("teletec",$conexao);
      $inserir = "INSERT INTO clientes (cliente,dominio) VALUES ('$cliente','$dominio.teletec.sj.ifsc.edu.br')";
      mysql_query($inserir,$conexao);
      mysql_close($conexao);
      header ("Location: http://www.teletec.sj.ifsc.edu.br/principal.php"); 

   }
.}
?.>

- Edição do Arquivo login.php:

.<?
.session_start();
.if (isset($_SESSION['autorizado'])){
.Header ("Location: principal.php");
.}else{
.?>
<.html>
<.head>
  <.meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <.title>Hospedagem Web</title>
<./head>

<.body>

<.p>

<.p>Sistemas de Hospedagem de Sitios Web

<.p>

		<.form name="formTeste" action="verificacao.php" method="post">
			<.p>Usuário:
<.input type="text" name="login"> <.p>Senha:
<.input type="password" name="senha"> <.input type="submit" name="b_enviar" value="Entrar"> <./form>

<.p>

<.?
}
.?>
<./body>
<./html>

- Edição do Arquivo Index.php:

<.?
Header ("Location: login.php");
.?>

- Edição do Arquivo excluir.php:

<.?
session_start();
if (!isset($_SESSION['autorizado'])){ 
	header ("Location: login.php");
}else{
   $id=$_GET['id'];
   $parte1 = explode(".", $id);
   $antigo = $parte1[0];
?.>
<.html>
   <head>
      <.meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
      <.title>Excluir o cliente</title>
   <./head>
<.body>

<.p>Voce realmente deseja excluir o cliente?

  <.p><a href="del-dominio.php?id=<?echo $antigo;?>">Sim</a> <a

.href="principal.php">Nao</a>

<.p>

<?
}
.?>
<./body>
<./html>

- Edição do Arquivo del-dominio.php:

<.?
session_start();
if (!isset($_SESSION['autorizado'])){
        header ("Location: login.php");
}else{
      $dominio = $_GET['id'];
      $script = "/etc/teletec/del-dominio.sh $dominio";
      exec("$script");
      exec("/etc/init.d/apache2 restart");
      $conexao = mysql_connect("localhost","www-data","orelha1234");
      $base_ok = mysql_select_db("teletec",$conexao);
      $deletar = "DELETE FROM clientes WHERE dominio='$dominio.teletec.sj.ifsc.edu.br'";
      mysql_query($deletar,$conexao);
      mysql_close($conexao);
      header ("Location: http://www.teletec.sj.ifsc.edu.br/principal.php");
}
?.>

- Edição do Arquivo alterar.php:

<.?
session_start();
if (!isset($_SESSION['autorizado'])){ 
	header ("Location: login.php");
}else{
   $id=$_GET['id'];
   $parte1 = explode(".", $id);
   $antigo = $parte1[0];
?.>
<.html>
   <.head>
      <.meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
      <.title>Alterar Dominio</title>
   </.head>
<.body>

<.p><.a href="principal.php">Voltar </a>

   <.form name="formTeste" action="mod-dominio.php" method="post">
      <.p>Novo nome do cliente: 
<.input type="text" name="cliente"> <.p>Novo dominio:
<.input type="text" name="dominio"> <.input type="hidden" name="antigo" value="<?echo $antigo;?>"> <.input type="submit" name="b_enviar" value="Alterar"> <./form> <.? } ?.> <./body> <./html>