Não realizamos nenhuma configuração no servidor devido a prova de Gerência.
5 22/11/2013
Na aula de cabeamento estruturado realizamos as instalações externa do nosso projeto, segue logo abaixo as imagens:
Nessa primeira imagem temos um switch, por ele chega o link da RPN através do CPD do IFSC, onde o patch cord cinza cria comunicação com o patch painel acima em laranja, no nosso caso EC12.
Do rack central EC12, passa um cabo UTP CAT6 até o rack direito no conector EC12, em seguida esse mesmo cabo irá para o DSLAN na entrada UP1.
Nessa imagem temos o rack com o DSLAN, responsável pela comunicação (rede e telefonia) vindo da operadora, onde irá simular uma central pública em nosso projeto.
Nosso DSLAN é um D-LINK DAS 3324, é através do patch cord vermelho que o mesmo está recebendo o sinal de comunicação da operadora.
Ao observar a imagem, temos dois cabos azuis, o primeiro cabo é responsável pela saída de linha telefônica do DSLAN para rack. O segundo cabo é responsável por dados e voz.
O cabo responsável por dados e voz é instalado no patch painel com as nomenclaturas SA SB e SC, onde saem mais 3 patch cord com as identificações ED02, ED03 e ED04 (ED= esquerdo direito + número da porta, ex:01)
Ao chegar no rack ED02, ED03 e ED04 interligamos 3 cabos correspondentes ao mesmo para o LA, LB e LC, onde irá se converter em um único cabo UTP CAT6, divido em 3 pares, somente para linha telefônica, interligado com o laboratório de cabeamento estruturado que é responsável pelo condomínio e instalação do servidor.
6 23/11/2013
6.1 Sábado
7 24/11/2013
7.1 Domingo
8 25/11/2013
8.1 DHCP
Com essa configuração, cada morador terá uma faixa de IP limitada, onde qualquer IP que ele conecte dentro dessa faixa, irá ter o mesmo pacote de serviço automaticamente.
O serviço DHCP.
Configuração no arquivo /etc/dhcp/dhcpd.conf.
authoritative;# Integração com Syslog
log-facilitylocal7;# Integração com DNS
ddns-update-stylenone;# Tempos de "aluguel"
default-lease-time3600;
max-lease-time14400;#abaixo seguira as sub redes#Rede sem fio
subnet192.168.110.0netmask255.255.255.0{range192.168.110.100192.168.110.199;optionrouters192.168.110.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.110.254;}#Apartamento 1
subnet192.168.120.0netmask255.255.255.0{range192.168.120.100192.168.120.199;optionrouters192.168.120.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.120.254;}#Apartamento 2
subnet192.168.130.0netmask255.255.255.0{range192.168.130.100192.168.130.199;optionrouters192.168.130.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.130.254;}#Apartamento 3
subnet192.168.140.0netmask255.255.255.0{range192.168.140.100192.168.140.199;optionrouters192.168.140.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.140.254;}#Apartamento 4
subnet192.168.150.0netmask255.255.255.0{range192.168.150.100192.168.150.199;optionrouters192.168.150.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.150.254;}#Apartamento 5
subnet192.168.160.0netmask255.255.255.0{range192.168.160.100192.168.160.199;optionrouters192.168.160.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.160.254;}#Apartamento 6
subnet192.168.170.0netmask255.255.255.0{range192.168.170.100192.168.170.199;optionrouters192.168.170.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.170.254;}#Apartamento 7
subnet192.168.180.0netmask255.255.255.0{range192.168.180.100192.168.180.199;optionrouters192.168.180.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.180.254;}#Apartamento 8
subnet192.168.190.0netmask255.255.255.0{range192.168.190.100192.168.190.199;optionrouters192.168.190.254
domain-name"supervaca.sj.ifsc.edu.br";domain-name-servers192.168.190.254;}
8.2 Interfaces
Após professor liber Ip 200.135.37.96, copiar configurações do arquivo /etc/network/interfaces1 para o /etc/network/interfaces com o cp ou cat
Realizamos a configuração do roetador D-LINK 500b para testar o link externo, para isso utilizamos os seguintes parâmetros:
->Ligado ao DSLAM e ao computador pelo patch painel ED04 e RI13.
->No terminal foi adicionado um alias
"ifconfig eth0:0 10.1.1.2/24"
"ifup eth0:0"
Acessando a interface gráfica dele para o teste de acesso por pppoe em Advanced Setup> Wan foi ajustado como:
PORT:0
VPI: 8
VCI: 35
ServiceCategory: UBR WITHOUT PCR
PPP over Ethernet (PPPoE) e Encapsulation Mode por LLC/SNAP-Bridging
Usuário e senha de acordo com o provedor.
habilitado: Use Static IP Address 192.168.1.158
habilitado: Bridge PPPoE Frames Between WAN and Local Ports (Default Enabled)
habilitado linhas abaixo
Enable NAT
Enable WAN Service
Deletado a rota padrão:
Root@supervaca:/#routedeletedefault
Adicionado rota para o roteador.
Root@supervaca:/#routeadddefaultqw10.1.1.1
10.1 O Servidor fará autenticação PPPoE e o roteador fará brigding
Foi realizada a autenticação PPPoE com os IP válidos distribuídos pelos professores, editando os arquivos interfaces e supervaca
o modem ja havia sido configurado como bridging durante a aula do Marcelo Sobral.
Foi colocado os servidores dentro dos racks para o acesso remoto via SSH, onde o professor Ederson ficou de liberar o acesso remoto pela rede externa.
->Ás 22:05 foi feito o primeiro acesso externo
->Ás 22:10 o acesso caiu.
12 29/11/2013
Iniciamos a instalação dos pares metálicos da linha telefônica no rack do servidor B.
Passamos a comunicação do PABX DIGISTAR, onde iremos usar três pontos de ramais.
Conectamos 3 entradas de RJ45 no rack para ser utilizado tanto telefone ou internet, onde foram distribuidos pela sala em pontos distintos com cabos UTP CAT6.
-> A função desses três pontos com entrada RJ45 irá depender da necessidade do usuário, por exemplo:
Caso o usuário da tomada 1 (TO1) desejar utilizar telefone, iremos trocar a posição do cabo de manobra, onde uma ponta irá conectada no TO1 e a outra no R20 ( ponto de ramal). Caso deseje utilizar a rede, basta tirar do ponto de ramal o mesmo cabo e conectar no switch.
Realizamos a instalação do switch e gerenciamento da VLAN.
Cada apartamento possui uma Vlan.
O wifi possui uma vlan própria.
Os cabos de comunicação entre os servidores, no caso os pares de fibra óptica támbem possui uma vlan própria.
18 05/12/2013
tc.sh- /home/aluno - Geany
#! /bin/bash/# variaveis: pode mexer a vontadeIFACE=“ETH0
VELOCIDADE=”25”
BLOCOS=“20”
blocos=$(echo“25*0.2|bc”)#20%WIFI=$(echo“25*0.05|bc)# 5% do totalBLOCO="1"#CÓDIGO: evitar mexer### ponto de partida: recurso (queue discipline, ou qdisc)
tcqdiscdeldev${IFACE}roothandle1:0htbdefailt100
tcqdiscadddev${IFACE}root
## classe principal: abarca todo o recurso
tcclassadddev${IFACE}parent1:0classid1:1htbrate${velocidade}## CLASSES DE VALOR ESTÁTICO: BLOCOS
tcqdiscadddev${IFACE}parent1:1classid1:100htbrate${BLOCOS}mbitprio0
iptables-tmangle-AFORWARD-s10.0.0.0/29-jCLASSIFY--to-class1:100
##CLASSE DE VALOR DINÂMICO (POR PACOTE): apto 1
tcqdiscadddev${IFACE}parent1:1classid1:200htbrate${1}mbitprio1
iptables-tmangle-AFORWARD-s${BLOCOS}.1.0/29-jCLASSIFY--to-class1:200
##CLASSE DE VALOR DINÂMICO (POR PACOTE): apto 2
tcqdiscadddev${IFACE}parent1:1classid1:300htbrate${2}mbitprio2
iptables-tmangle-AFORWARD-s${BLOCOS}.2.0/29-jCLASSIFY--to-class1:300
##CLASSE DE VALOR DINÂMICO (POR PACOTE): apto 3
tcqdiscadddev${IFACE}parent1:1classid1:400htbrate${3}mbitprio3
iptables-tmangle-AFORWARD-s${BLOCOS}.3.0/29-jCLASSIFY--to-class1:400
## CLASSES DE VALOR ESTÁTICO: wifi
tcqdiscadddev${IFACE}parent1:1classid1:1000htbrate${WIFI}mbitprio9
19 06/12/2013
Finalizamos a identificação dos cabos.
Realizamos a instalação da central PABX DIGISTAR, onde a mesma irá operar como central pública.
A Central DIGISTAR fornece 3 pontos de ramais para os três servidores, usando como tronco a saida PHONE do DSLAN.
Dos ramais 20,21 e 22 os cabos de manobra são interligados com as entradas EA EB e EC.
As entradas EA EB e EC estão conectadas via DSLAN, sendo assim utilizam as saídas LA LB e LC e conectam no servidor A nos pontos LP1, LP2 e LP3.
Com cabos de manobras interligamos essas saídas com a entradas que darão linha telefonica para nosso servidor, no caso LS2.
Da saida LS2 é conectado via cabo UTP CAT5 em nosso servidor bloco B.
No bloco B chega apenas um ponto "LD" onde há dados e voz, nele foi conectado um Y para dividir em dois a linha, um para dados "DD1 e outro para voz "TEL1".
No caso da saida de voz foi necessário utilizar um filtro ADSL, por chegar pacotes de dados e interferir no sinal de voz.
As tomadas TO1, T2 e TO3 são reservadas para os condôminos, onde em cada apartamento terá uma saida, ou para internet ou para telefone.
A cada servidor são interligados 4 pares de fibra ótpica para comunicação entre os 3 blocos. Neste caso estaremos utilizando um par do condominio A e outro para o condominio C, onde os mesmos estão conectados em um conversor de mídia e consequentemente no switch.
Realizamos a idnetificação das fontes de cada equipamento.
A saida DD1 é conectada na entrada LINE do modem D'link 500B e a saida Ethernet é conectada na ETH0 do servidor e em seguida sai um cabo da ETH1 do servdior para a porta 24 do switch.
Utilizando a saida TEL1 com o filtro, a mesma é conectada na central interna no TRONCO 1 e da central sai um cabo UTP CAT5 dividido em 3 pares para os ramais R20, R21 e R22.
23 10/12/2013
Realizamos a criação de pagina de autenticação que faz integração com o radius.
Conseguimos ter acesso a rede WIFI com FREERADIUS como autenticação, onde por via interface controlamos as contas de usuários e plano que poderão ser utilizados.
Existe 3 tipos de plano, são os pacotes comuns, popular e VIP, que irá ser distribuido de acordo com a mensalidade do usuário mensalmente de acordo com a taxa de transmissão.
#!/bin/bash#Variaveis: pode mexerIFACE="eth1"VELOCIDADE="25"BLOCOS=$(echo"25 * 0.2"|bc)# 20% do totalWIFI=$(echo"25 * 0.05"|bc)# 5% do totalBLOCO="168"#Código:evitar mexer###Ponto de partida: recurso#tc qdisc del dev ${IFACE} root#tc qdisc add dev ${IFACE} root handle 1:0 htb default 100##Classe Principal: abarca todo o recurso#
tcclassadddev${IFACE}parent1:0classid1:1htbrate${VELOCIDADE}kbit
##Classes de valor estático: blocos
tcclassadddev${IFACE}parent1:1classid1:100htbrate${BLOCOS}kbitprio0
iptables-tmagle-AFORWARD-s192.168.0.0/29-jCLASSIFY--to-class1:100
##Classe de Valor Dinamico (por pacote): apto 1
tcclassadddev${IFACE}parent1:1classid1:200htbrate${1}kbitprio1
iptables-tmagle-AFORWARD-s192.${BLOCO}.120.0/29-jCLASSIFY--to-class1:200
##Classe de Valor Dinamico (por pacote): apto 2
tcclassadddev${IFACE}parent1:1classid1:300htbrate${2}kbitprio2
iptables-tmagle-AFORWARD-s192.${BLOCO}.130.0/29-jCLASSIFY--to-class1:300
##Classe de Valor Dinamico (por pacote): apto 3
tcclassadddev${IFACE}parent1:1classid1:400htbrate${3}kbitprio3
iptables-tmagle-AFORWARD-s192.${BLOCO}.140.0/29-jCLASSIFY--to-class1:400
##Classe de valor estático: rede sem fio
tcclassadddev${IFACE}parent1:1classid1:1000htbrate${WIFI}kbitprio9
iptables-tmagle-AFORWARD-s192.${BLOCO}.110.0/29-jCLASSIFY--to-class1:400
Paginas para acesso ao usario admin onde pode-se cadastrar excluir ou atulizar banco de dados que conversa com servidor radius
index.php onde é inserido usuario e senha
essa pagina encaminha para testaLogin.php
testaLogin.php faz o teste de usuário, senha dentro do banco freeradius caso correto encaminha para listaUsuario.php, caso errado fica na página index.
ListaUsuario.php: lista todos usuários adicionados, nesta pagina há possibilidade de detalhes de usuários, criar novo usuario, atualizar ou excluir, e detalhes apenas mostra senha, taxa e outras informações, já nas outras páginas citadas, ele terá que mexer junto ao TC pois cda pagina inclui um caminho para aplicar regras em TC, aplicaRegras.php.
segue as páginas
Lista de Usuário
<?php
session_start();$logado=0;if(isset($_SESSION['nivel_login'])&&($_SESSION['nivel_login']>0)){$logado=1;}
?>
<!DOCTYPEhtml>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf8">
<title></title>
<script>
functionconfirmExcluir(indice){if(confirm('Deseja excluir este usuário?')){location.assign("excluiRegistro.php?indice="+indice);}}functioneditar(indice){location.assign("novoUsuario.php?indice="+indice);}functionnovo(){location.assign("novoUsuario.php");}functionlogon(){location.assign("index.php");}functionlogoff(){location.assign("logoff.php");}functiondetalhe(indice){location.assign("detalhe.php?indice="+indice);}</script>
</head>
<style>
body
{
background-image:url('img/fundo.gif')}
</style>
<body>
<center>
<?php
if($logado){?>
<buttontype="button"onclick="return logoff();">Logoff</button>
<?php
}else{?>
<buttontype="button"onclick="return logon();">Logon</button>
<?php
}?>
<h3>Usuários</h3>
<?php
if($logado){?>
<buttontype="button"onclick="return novo();">NovoUsuário</button>
<?php
}?>
<br>
<br>
<table>
<tr>
<td>Usuario</td>
<td>Plano</td>
<td></td>
</tr><?php
$con=mysqli_connect("localhost","root","supervaca","freeradius");$query=" select usuario.id as usuario_pk, usuario.username as usuario_nome, plano.nome as plano_nome from radcheck as usuario inner join tb_plano as plano on usuario.plano_fk = plano.plano_pk order by usuario.username ";$result=mysqli_query($con,$query);while($row=mysqli_fetch_array($result)){?>
<tr>
<td><?=$row['usuario_nome']?></td>
<td><?=$row['plano_nome']?></td>
<td>
<buttontype="button"onclick="detalhe(<?=$row['usuario_pk']?>)">Detalhe</button>
<?
if($logado){?>
<buttontype="button"onclick="editar(<?=$row['usuario_pk']?>);">Editar</button><buttontype="button"onclick="confirmExcluir(<?=$row['usuario_pk']?>);">Excluir</button>
<?
}?>
</td>
</tr><?php
}?></td>
</tr>
<?php
include'aplicaRegras.php';?>
</body>
</html>
<?php
session_start();if(!isset($_SESSION['nivel_login'])||($_SESSION['nivel_login']<1)){header('Location:index.php');}
extract($_POST);$con=mysqli_connect("localhost","root","supervaca","freeradius");
//seachaveprimariaexisteeédiferentedezero
//significaqueumregistroexistenteseráeditado
if(isset($usuario_pk)&&($usuario_pk!=0)){$query=" UPDATE radcheck SET username='".$campo_nome."',value='".$campo_senha."', plano_fk=".$campo_plano." WHERE id = ".$usuario_pk;//echo$query;}
//casoachvenãoexista,umnovoregistroseráinserido
else{
/*
$query=" INSERT INTO radcheck (username, attribute, op, value, plano_fk) VALUES ('".$campo_nome."', 'Cleartext-Password', ':=', '".$campo_senha."', ".$campo_plano.") ";*/
$query=" INSERT INTO radcheck (username, attribute, op, value, plano_fk) VALUES ('".$campo_nome."', 'Cleartext-Password', ':=', '".$campo_senha."', ".$campo_plano.") ";}
//casoainserçãoouediçãotenhasidorealizadocomsucesso,
//apaginaprincipaléchamada
if(mysqli_query($con,$query)){header('Location: listaUsuarios.php');}else{echo("Não foi possível inserir os dados no Banco");}
?>
<?php
include'aplicaRegras.php';
?>
Aplica regras, aplicando no TC
<?php
$conn=mysqli_connect("localhost","root","supervaca","freeradius");$argumentos='';$query='SELECT * FROM radcheck inner join tb_plano on radcheck.plano_fk = tb_plano.plano_pk order by radcheck.username';$result=mysqli_query($conn,$query);while($row=mysqli_fetch_array($result)){$argumentos=$argumentos." ".$row['taxa'];}echo"sudo /usr/local/bin/tc.sh".$argumentos;
?>
31 18/12/2013
31.2 18 de Dezembro de 2013, 17:50hrs, todos os servidores estão no ar
Obs: Alguém desligou o disjuntor.
FIM DE PROJETO
Agradecimento:
"Ao querido prof° Ederson T. (BOI), que foi nosso pai durante todo o semestre, sempre esteve a nossa disposição para qualquer tipo de dúvida"
"Ao prof° Saul, tendo apenas 1 mês para acabar as aulas e início de projeto fez um milagre, passou todo o conteúdo que não vimos desde o início de projeto"
" Ao prof° Tio Sobral que assumiu as aulas do Juliano, que teve a paciência de repetir a instalação do AP mesmo depois de ter configurado tudo certinho."
" Ao prof° Glauco que graças a ele a página de autenticação funcionou!!!"
Alunos: Ana Paula Hoog
Douglas Steimbach Pacheco
Fabio Rodrigues
Thiago Henrique