Mudanças entre as edições de "Projeto Integrador - 2010.2 - Equipe Celtics"
(→RADIUS) |
|||
(45 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 19: | Linha 19: | ||
===Cabeamento=== | ===Cabeamento=== | ||
* Passado os cabos do Patch Panel do Armário Principal para o Armário Celtics. | * Passado os cabos do Patch Panel do Armário Principal para o Armário Celtics. | ||
− | * Feitos | + | * Feitos os pontos (um no chão, na parede e aéreo) de acesso (Tomadas). |
* Padrão 568B. | * Padrão 568B. | ||
+ | |||
+ | Equipamentos: | ||
+ | * Placa wifi ATHEROS comunication AR500IXplus | ||
+ | * MODEM D-LINK 500B | ||
+ | * DSLAN - DAS3324 | ||
===Gerência de Rede=== | ===Gerência de Rede=== | ||
* Instalação do Sistema Operacional Ubuntu Server. | * Instalação do Sistema Operacional Ubuntu Server. | ||
− | + | <code>80GB de HD. | |
− | + | 01GB de Memória RAM.</syntaxhighlight> | |
+ | *Configurações de particionamento de Disco | ||
+ | <code> | ||
+ | 40GB para partição / (raiz) | ||
+ | 20GB para partição /var | ||
+ | 15GB para partição /home | ||
+ | 01GB para swap. | ||
+ | </syntaxhighlight> | ||
==Dia: 25/11/2010== | ==Dia: 25/11/2010== | ||
Linha 31: | Linha 43: | ||
*Recebemos o equipamento DSLAM que ficou disponível para estudo. | *Recebemos o equipamento DSLAM que ficou disponível para estudo. | ||
*Realizado a certificação dos cabos. | *Realizado a certificação dos cabos. | ||
+ | *Teste de continuidade. | ||
+ | |||
+ | * Instalado SSH: Acesso remoto. | ||
+ | <code> | ||
+ | root@techspot:~# aptitude install ssh-server. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Dia: 26/11/2010== | ||
+ | |||
+ | * Não teve aula... | ||
+ | |||
+ | |||
+ | ==Dia: 29/11/2010== | ||
+ | |||
+ | == Cabeamento== | ||
+ | * Realizado os testes de continuidade no cabeamento estruturado, feitas as terminações nos pontos exigidos (aéreo, piso e parede) e no Patch panel, efetuado também terminações no rack principal. | ||
+ | |||
+ | *Finalizado cabeamento estruturado. | ||
+ | |||
+ | ==Gerência de rede== | ||
+ | |||
+ | *Não realizamos nenhuma atividade, pois o laboratório apresentou problemas, não foi possível configurar o servidor estávamos sem rede. | ||
+ | |||
+ | ==Dia: 30/11/2010== | ||
+ | |||
+ | ==Gerência de rede== | ||
+ | *Rede Celtics: | ||
+ | |||
+ | Rede externa: | ||
+ | <code> | ||
+ | IP: 200.135.37.102 Mascara: 255.255.255.192 Broadcast: 200.135.37.127 | ||
+ | Rede: 1°IP valido: Ultimo IP valido: | ||
+ | Gateway: 200.135.37.126 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *configuração de rede: | ||
+ | Arquivo '''/etc/network/interfaces''': Configuração das interfaces de rede. | ||
+ | |||
+ | <code> | ||
+ | # 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 | ||
+ | |||
+ | # Rede externa: | ||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 200.135.37.102 | ||
+ | netmask 255.255.255.192 | ||
+ | gateway 200.135.37.126 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | =='''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 UDP/TCP | ||
+ | |||
+ | Instalação e configuração de servidor DNS(BIND9[http://www.isc.org/software/bind]) | ||
+ | |||
+ | <code> | ||
+ | |||
+ | *Instalar | ||
+ | |||
+ | # aptitude update; aptitude install bind9 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | Arquivo '''/etc/bind/named.conf.options:''' | ||
+ | |||
+ | <code> | ||
+ | |||
+ | options { | ||
+ | |||
+ | auth-nxdomain no; # conform to RFC1035 | ||
+ | listen-on-v6 { any; }; | ||
+ | listen-on { any; }; | ||
+ | allow-recursion {127.0.0.0/8; 192.168.1.19; }; | ||
+ | allow-query { any; }; | ||
+ | |||
+ | }; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Arquivo '''/etc/bind/named.conf.local:''' | ||
+ | |||
+ | <code> | ||
+ | |||
+ | // | ||
+ | // 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 "celtics.sj.ifsc.edu.br" { | ||
+ | type master; | ||
+ | file "/etc/bind/celtics.sj.ifsc.edu.br"; | ||
+ | }; | ||
+ | zone "/etc/bind/200.in-addr.arpa" { | ||
+ | type master; | ||
+ | file "/etc/bind/200/etc/bind/200.in-addr.arpa"; | ||
+ | }; | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | Arquivo'''/etc/bind/celtics.sj.ifsc.edu.br:''' Configurações do domínio. | ||
+ | |||
+ | <code> | ||
+ | |||
+ | $TTL 86400 | ||
+ | |||
+ | @ IN SOA dns.celtics.sj.ifsc.edu.br. rafael.celtics.sj.ifsc.edu.br. ( | ||
+ | |||
+ | 2010113000 ; serial | ||
+ | 1d ; refresh | ||
+ | 1h ; retry | ||
+ | 1w ; expire | ||
+ | 1d ; negative cache ttl | ||
+ | ) | ||
+ | |||
+ | @ IN NS dns | ||
+ | @ IN A 200.135.37.102 | ||
+ | dns IN A 200.135.37.102 | ||
+ | ns1 IN A 200.135.37.102 | ||
+ | mail IN A 200.135.37.102 | ||
+ | www IN A 200.135.37.102 | ||
+ | smtp IN CNAME mail.celtics.sj.ifsc.edu.br. | ||
+ | pop IN CNAME mail.celtics.sj.ifsc.edu.br. | ||
+ | imap IN CNAME mail.celtics.sj.ifsc.edu.br. | ||
+ | ss1 IN CNAME www.celtics.sj.ifsc.edu.br. | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | Arquivo'''/etc/bind/db100.64-127.37.135.200.in-addr.arpa:''' Configurações do DNS. | ||
+ | |||
+ | <code> | ||
+ | |||
+ | $TTL 86400 | ||
+ | |||
+ | @ IN SOA dns.celtics.sj.ifsc.edu.br. rafael.celtics.sj.ifsc.edu.br. ( | ||
+ | |||
+ | 2010113000 ; serial | ||
+ | 1d ; refresh | ||
+ | 1h ; retry | ||
+ | 1w ; expire | ||
+ | 1d ; negative cache ttl | ||
+ | ) | ||
+ | |||
+ | @ IN NS dns.celtics.sj.ifsc.edu.br. | ||
+ | 102 IN PTR dns.celtics.sj.ifsc.edu.br. | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | =='''NTP'''== | ||
+ | *NTP(Protocolo de Tempo para Redes). 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. Portas 123UDP/TCP. | ||
+ | |||
+ | *Instalando: | ||
+ | <code> | ||
+ | |||
+ | #aptitude update; aptitude install ntp | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | Arquivo '''/etc/ntp.conf''': Arquivo de configuração: Adicionada a linha abaixo para que o ntp sincronize o horário com os servidor: | ||
+ | <code> | ||
+ | server ntp.cais.rnp.br | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Dia: 01/12/2010== | ||
+ | * Configurado DHCP: | ||
+ | '''DHCP''' é um protocolo para configuração dinâmica de parâmetros de rede como endereço IP, DNS, Gateway etc. Porta 67/UDP. | ||
+ | |||
+ | Instalando: | ||
+ | <code> | ||
+ | # aptitude update; aptitude install dhcp3-server | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Arquivo:'''/etc/dhcp3/dhcpd.conf''' configurações do servidor dhcp. | ||
+ | |||
+ | <code> | ||
+ | ## 2010120102 Termino da configuração | ||
+ | ##Realizado por: Gabriel , Lucas , Cleidiane | ||
+ | |||
+ | # Aceitar atualização dinâmica vinda dos clientes?? Não. | ||
+ | ddns-update-style none; | ||
+ | |||
+ | ## Criar subnet | ||
+ | subnet 192.168.20.0 netmask 255.255.255.0 { | ||
+ | |||
+ | #IP | ||
+ | range 192.168.1.1 192.168.1.100; | ||
+ | #Máscara | ||
+ | #option subnet-mask 255.255.255.0; | ||
+ | #Broadcast | ||
+ | #option broadcast-address 192.168.1.255; | ||
+ | #Rota padrão | ||
+ | option routers 192.168.1.19; | ||
+ | #Servidor DNS | ||
+ | option domain-name-servers 200.135.37.102; | ||
+ | option domain-name "celtics.sj.ifsc.edu.br"; | ||
+ | #Tempo de empréstimo | ||
+ | default-lease-time 3600; | ||
+ | masc-lease-time 14400; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </syntaxhighlight> | ||
+ | *'''SNMP''' - É um protocolo de gerência típica de redes UDP, da camada de aplicação, que facilita o intercâmbio de informação entre os dispositivos de rede, como placas e comutadores. O SNMP possibilita aos administradores de rede gerenciar o desempenho da rede, encontrar e resolver seus eventuais problemas, e fornecer informações para o planejamento de sua expansão, dentre outras. | ||
+ | Instalando: | ||
+ | <code> | ||
+ | #aptitude update; aptitude install snmpd | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | • O arquivo'''/etc/snmp/snmpd.conf''' foi zerado e reconfigurado de acordo com a comunidade de gerência. | ||
+ | <code> | ||
+ | rocommunity celtics | ||
+ | syslocation celtics-TI | ||
+ | syscontact root@celtics.sj.ifsc.edu.br | ||
+ | sysservices 72# example here. | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Dia: 02/12/2010== | ||
+ | |||
+ | [[Imagem:Logo_cacti.png]] | ||
+ | |||
+ | Cacti é uma ferramenta que recolhe e exibe informações sobre o estado de uma rede de computadores através de gráficos. Foi desenvolvido para ser flexível de modo a se adaptar facilmente a diversas necessidades, bem como ser robusto e fácil de usar. Monitora o estado de elementos de rede e programas bem como largura de banda utilizada e uso de CPU. | ||
+ | Pode-se utilizar também o protocolo SNMP para consultar informações em elementos de redes e/ou programas que suportam tal protocolo. | ||
+ | |||
+ | *Instalação do Cacti | ||
+ | apt-get install cacti | ||
+ | |||
+ | • Após instalar a configuração foi feita através da interface web no endereço http://www.celtics.sj.ifsc.edu.br/cacti/ | ||
+ | |||
+ | • Para confirmar que existe comunicação entre agente e gerente, pode se testar a partir do seguinte comando: | ||
+ | <syntaxhighlight lang=bash> | ||
+ | snmpwalk -v2c -cplugincafe 200.135.37.102 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *'''MySQL''' - O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. | ||
+ | Instalação dos serviços PHP, PHPmyadmin, Mysql | ||
+ | apt-get install php5 mysql-server phpmyadmin | ||
+ | |||
+ | Comandos básicos do mysql: | ||
+ | |||
+ | * Logar no banco de dados | ||
+ | <code> | ||
+ | mysql -u root -p | ||
+ | </syntaxhighlight> | ||
+ | * Criar base de dados | ||
+ | <code> | ||
+ | create database; | ||
+ | </syntaxhighlight> | ||
+ | * Usar a base de dados | ||
+ | <code> | ||
+ | mysql> use (nome da base); | ||
+ | </syntaxhighlight> | ||
+ | * Listando as bases criadas | ||
+ | <code> | ||
+ | mysql> show databases; | ||
+ | +--------------------+ | ||
+ | | Database | | ||
+ | +--------------------+ | ||
+ | | information_schema | | ||
+ | | cacti | | ||
+ | | celtics | | ||
+ | | celtics_users | | ||
+ | | mysql | | ||
+ | | radius | | ||
+ | | zm | | ||
+ | +--------------------+ | ||
+ | 7 rows in set (0,00 sec) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Sair do Banco de Dados | ||
+ | <code> | ||
+ | mysql> quit | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *'''NAT''' - NAT também conhecido como masquerading é um protocolo que, como o próprio nome diz, faz a tradução dos endereços Ip e portas TCP da rede local para a Internet. Ou seja, o pacote enviado ou a ser recebido de sua estação de trabalho na sua rede local, vai até o servidor onde é trocado pelo ip do mesmo substituindo o ip da rede local validando assim o envio do pacote na internet, no retorno do pacote a mesma coisa, o pacote chega e o ip do servidor é trocado pelo Ip da estação que fez a requisição do pacote. | ||
+ | |||
+ | *Cofiguração do NAT: Criar um arquivo com o nome "nat" na pasta "init.d" | ||
+ | |||
+ | • Arquivo'''/etc/init.d/nat''': | ||
+ | <code> | ||
+ | #!/bin/bash | ||
+ | # Interfaces | ||
+ | IFACE_INTERNA="eth0" | ||
+ | IFACE_EXTERNA="eth1" | ||
+ | |||
+ | # NAT | ||
+ | iptables -t nat -A POSTROUTING -o ${IFACE_EXTERNA} -j MASQUERADE | ||
+ | |||
+ | # Redirecionamento para o Analisador de Conteúdo | ||
+ | #iptables -t nat -A PREROUTING -i ${IFACE_INTERNA} -p tcp --dport 80 \ | ||
+ | #-j REDIRECT --to-port 8080 | ||
+ | |||
+ | # Bloqueio para acesso direto ao Proxy | ||
+ | #iptables -A INPUT -m tcp -p tcp ! -s 127.0.0.1 --dport 3128 -j DROP | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | • Mudança das permissões do arquivo "nat": | ||
+ | <code> | ||
+ | chmod 700 /etc/init.d/nat | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Ativando o roteamento para o NAT: | ||
+ | • Abrir o arquivo'''/etc/sysctl.conf''': Ir até as linhas entre 25 e 30 do arquivo "sysctl.conf" e descomentar (apagar a '''#''') na linha que tem o comando "#net.ipv4.ip_forward=1" | ||
+ | net.ipv4.ip_forward=1 | ||
+ | |||
+ | ==Dia: 03/12/2010== | ||
+ | |||
+ | *Feito o cabo de ligação do patch panel com o dslan. (cabo manga). | ||
+ | |||
+ | ==Dia: 06/12/2010== | ||
+ | |||
+ | *Colocado o Cacti no ar. | ||
+ | **Gráficos sobre o servidor funcionando. | ||
+ | [[Arquivo:Graph image.png]] | ||
+ | [[Arquivo:Graph_image.php1.png]] | ||
+ | [[Arquivo:Graph_image.php2.png]] | ||
+ | [[Arquivo:Graph_image.5.png]] | ||
+ | [[Arquivo:Graph_image.3.png]] | ||
+ | [[Arquivo:Graph_image.6.png]] | ||
+ | [[Arquivo:Graph_image.1.png]] | ||
+ | [[Arquivo:Graph_image.2.png]] | ||
+ | [[Arquivo:Graph_image.4.png]] | ||
+ | |||
+ | ==Dia: 07/12/2010== | ||
+ | |||
+ | ===Firewall=== | ||
+ | |||
+ | O firewall é usado na filtragem de pacotes, por meio de um conjunto de regras estabelecidas. Essas regras determina que endereços IPs e dados podem estabelecer comunicação e/ou transmitir/receber dados. Para utilizarmos o firewall, temos que instala-lo através do comando: | ||
+ | <code>aptitude install iptables</syntaxhighlight> | ||
+ | |||
+ | *Ativando o roteamento através do comando: | ||
+ | <code>sed -i 's/.*net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/g' /etc/sysctl.conf</syntaxhighlight> | ||
+ | |||
+ | *Em seguida fizemos algumas alterações no script do arquivo NAT para redirecionamento das requisições HTTP. Seguindo o caminho '''/etc/init.d/nat.''' | ||
+ | <code> | ||
+ | #!/bin/bash | ||
+ | # Interfaces | ||
+ | IFACE_INTERNA="eth0" | ||
+ | IFACE_EXTERNA="eth1" | ||
+ | |||
+ | # NAT | ||
+ | iptables -t nat -A POSTROUTING -o ${IFACE_EXTERNA} -j MASQUERADE | ||
+ | |||
+ | # Redirecionamento para o Analisador de Conteúdo | ||
+ | iptables -t nat -A PREROUTING -i ${IFACE_INTERNA} -p tcp --dport 80 \ | ||
+ | -j REDIRECT --to-port 8080 | ||
+ | |||
+ | # Bloqueio para acesso direto ao Proxy | ||
+ | iptables -A INPUT -m tcp -p tcp ! -s 127.0.0.1 --dport 3128 -j DROP | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | *Por último temos que fazer com que o script inicie em primeiro lugar(01) nos niveis de execução de 2 a 5 (2 3 4 5). Assim o script irá iniciar junto com o sistema. Segue o comando abaixo: | ||
+ | <code> | ||
+ | update-rc.d nat start 01 2 3 4 5 .</syntaxhighlight> | ||
+ | |||
+ | ==Dia: 08/12/2010== | ||
+ | |||
+ | ====RADIUS==== | ||
+ | |||
+ | * Instalando o radius: | ||
+ | |||
+ | *Pesquisado o '''Zoneminder''' Software de gerenciamento de câmeras via rede, deverá ser implantado no projeto. | ||
+ | |||
+ | ==Dia: 09/12/2010== | ||
+ | |||
+ | ===Aplicação=== | ||
+ | *Página de entrada do site, onde será feita autenticação do usuário ('''index.html'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | ?> | ||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo2.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | } | ||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Autenticação de Usuários<FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <FORM name="autenticacao" method="POST" action="autentica_bd.php"> | ||
+ | |||
+ | |||
+ | <center> | ||
+ | <br> | ||
+ | <p><FONT COLOR="#FFFFFF">Nome de usuário:</font> | ||
+ | <br><INPUT type="text" name="usuario"> | ||
+ | <br><FONT COLOR="#FFFFFF">Senha:</font> | ||
+ | <br><INPUT type="password" name="senha"> | ||
+ | <br><INPUT type="submit" name="botao" value="Enviar"> | ||
+ | </form> | ||
+ | </center> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Página de autenticação do admin, verifica o login ('''autentica_bd.php'''): | ||
+ | <code> | ||
+ | <html> | ||
+ | <meta http-equiv="content-type" content="text/html; charset=utf-8" /> | ||
+ | |||
+ | <? | ||
+ | session_start(); | ||
+ | $nome = $_POST['usuario']; | ||
+ | $password = $_POST ['senha']; | ||
+ | $conexao = mysql_connect ("localhost", "root", "celta"); | ||
+ | $base_ok = mysql_select_db("celtics_users",$conexao); | ||
+ | $consultar = "select id from admin where login = '$nome' && senha = '$password'"; | ||
+ | $resultado = mysql_query ($consultar,$conexao); | ||
+ | $linhas = mysql_num_rows($resultado); | ||
+ | mysql_close($conexao); | ||
+ | |||
+ | If ($linhas == 1) | ||
+ | { | ||
+ | |||
+ | $_SESSION['usuario']=$nome; | ||
+ | echo "<script>window.location='principal.php';</script>"; | ||
+ | }else{ | ||
+ | echo "<script>window.location='erro.php';</script>"; | ||
+ | } | ||
+ | ?> | ||
+ | </html> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Pagina principal do site ('''principal.php'''): | ||
+ | |||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if (isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | |||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | } | ||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Centro Comercial Celtics</FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <br> | ||
+ | <br> | ||
+ | <font size=5> | ||
+ | |||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/listar.php"><FONT COLOR="#FFFFFF">Listar usuários cadastrados</a> | ||
+ | <br> | ||
+ | <br> | ||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/cadastro.php"><FONT COLOR="#FFFFFF">Cadastrar novos usuários</a> | ||
+ | <br> | ||
+ | <br> | ||
+ | <a href="http://celtics.sj.ifsc.edu.br:8080/?action=stream"><FONT COLOR="#FFFFFF">Monitoramento</a> | ||
+ | <br> | ||
+ | <br> | ||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/sair.php"><FONT COLOR="#FFFFFF"><button>Sair</button></a> | ||
+ | |||
+ | |||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location:index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Pagina de cadastro de usuários do site, onde o admin fará o cadastro ('''cadastro.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if(isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | |||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | } | ||
+ | <hr> | ||
+ | </style> | ||
+ | <FONT COLOR="#FFFFFF"><font face="courier new"> | ||
+ | <h1><center>Centro Comercial Celtics</center></h1> | ||
+ | <hr> | ||
+ | <h2>Cadastro de usuários:</h2> | ||
+ | <table align=center> | ||
+ | <tr> | ||
+ | <form name="formTeste" action="add.php" method="post"> | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | <table> | ||
+ | <tr><td> | ||
+ | <p><FONT COLOR="#FFFFFF"> Nome: <br> | ||
+ | <input type:"text" name="Xnome"> | ||
+ | <p><FONT COLOR="#FFFFFF"> Login: <br> | ||
+ | <input type:"text" name="Xlogin"> | ||
+ | <p><FONT COLOR="#FFFFFF"> Senha: <br> | ||
+ | <input type="password" name="Xsenha"><br> | ||
+ | <br> | ||
+ | <input type="submit" name="b_enviar" value="Gravar"><BR> | ||
+ | </td><td> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | <br> | ||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/principal.php"><FONT COLOR="#FFFFFF">Voltar</a> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Depois de informados os dados do usuário 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'''): | ||
+ | |||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if(isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | |||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | color:#FFFFFF; | ||
+ | } | ||
+ | a:link { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:visited { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:hover { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | } | ||
+ | a:active { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | background-color:#000000; | ||
+ | } | ||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Centro Comercial Celtics</FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <br> | ||
+ | <? | ||
+ | |||
+ | $ID=$_POST['Xid'] ; | ||
+ | $NOME=$_POST['Xnome'] ; | ||
+ | $LOGIN=$_POST['Xlogin'] ; | ||
+ | $SENHA=$_POST['Xsenha'] ; | ||
+ | |||
+ | if (!empty ($NOME) && !empty ($LOGIN) && !empty ($SENHA)) | ||
+ | { | ||
+ | $conexao = mysql_connect("localhost","root","celta") ; | ||
+ | $base_ok = mysql_select_db("celtics_users",$conexao) or die ("erro 1"); | ||
+ | $inserir = "INSERT INTO user (NOME, LOGIN, SENHA) VALUES ('$NOME', '$LOGIN', '$SENHA')"; | ||
+ | $cadastrar = mysql_query($inserir,$conexao) or die("erro 2"); | ||
+ | mysql_close($conexao) or die("Erro fechar conexao"); | ||
+ | if($cadastrar==true) | ||
+ | { | ||
+ | echo "<h2>Usuário cadastrado com sucesso <br></h2>"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar>Lista de usuários</a>"; | ||
+ | }else | ||
+ | { | ||
+ | echo "Erro ao cadastrar usuário"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de usuários</a>"; | ||
+ | } | ||
+ | }else | ||
+ | { | ||
+ | echo "<h2>Erro, favor preencher todos os campos. <br></h2>"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/cadastro.php'>Cadastrar novo usuário</a>"; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else | ||
+ | { | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Dia: 10/12/2010== | ||
+ | |||
+ | ===Listagem de usuários cadastrados=== | ||
+ | *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 usuários já cadastrados, e através dessa página pode-se selecionar um usuário o qual deseja editar ou excluir. Segue o código ('''listar.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if (isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | color: #FFFFFF; | ||
+ | } | ||
+ | a:link { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:visited { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:hover { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | } | ||
+ | a:active { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | background-color:#000000; | ||
+ | } | ||
+ | |||
+ | |||
+ | </style> | ||
+ | <body> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Centro Comercial Celtics</FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <h2>Lista de usuários:</h2> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | <table><tr><td valign="top"> | ||
+ | <? | ||
+ | $conexao = mysql_connect("localhost","root","celta") or die ("ERRO"); | ||
+ | if($conexao) | ||
+ | { | ||
+ | mysql_select_db("celtics_users") or die ("erro 1"); | ||
+ | $query = "SELECT * FROM user" or die ("erro 2"); | ||
+ | $dados = mysql_query($query,$conexao) or die ("erro 3"); | ||
+ | echo "<table border='2'>"; | ||
+ | echo "<th>ID</th>"; | ||
+ | echo "<th>Login</th>"; | ||
+ | |||
+ | while($linha=mysql_fetch_array($dados,MYSQL_ASSOC)) | ||
+ | { | ||
+ | $id = $linha["ID"]; | ||
+ | echo "<tr><td>" . $linha["ID"] . "</td>" ; | ||
+ | echo "<td>" . $linha["NOME"] . "</td>" ; | ||
+ | //echo "<td>" . $linha["SENHA"] . "</td>" ; | ||
+ | echo "<td><a href='certeza.php?id=$id'><button>Excluir</button></a> "; | ||
+ | echo "<a href='editar.php?id=$id'><button>Editar</button></a></td></tr>"; | ||
+ | } | ||
+ | echo "</table>"; | ||
+ | mysql_close($conexao) or die ("erro 5"); | ||
+ | } | ||
+ | ?> | ||
+ | </td><td> | ||
+ | </table> | ||
+ | <br> | ||
+ | <a href='http://www.celtics.sj.ifsc.edu.br/cadastro.php'>Incluir novo usuário</a> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/principal.php">Voltar</a></font> | ||
+ | |||
+ | </font: | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Editando e atualizando usuários=== | ||
+ | *Depois de selecionado um usuário na página de listagem o admin é direcionado para a página de edição de usuários. E então são mostrados os dados que já estão cadastrados do usuário selecionado, podendo alterar a senha do mesmo 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 usuários ('''editar.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if(isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | color: #FFFFFF; | ||
+ | } | ||
+ | </style> | ||
+ | <h1><center><font face="courier new"><FONT COLOR="#FFFFFF">Centro Comercial Celtics</center></h1> | ||
+ | <hr> | ||
+ | <h2>Editando usuários:</h2> | ||
+ | <br> | ||
+ | <br> | ||
+ | <? | ||
+ | $id = $_GET['id']; | ||
+ | $conexao = mysql_connect("localhost","root","celta") ; | ||
+ | mysql_select_db("celtics_users") or die ("erro 1"); | ||
+ | $query = ("select * from user where ID=$id"); | ||
+ | $dados = mysql_query($query,$conexao); | ||
+ | $linha=mysql_fetch_array($dados,MYSQL_ASSOC); | ||
+ | mysql_query($linha); | ||
+ | ?> | ||
+ | <form name="formTeste" action="add2.php?id=<? echo $id ?>" method="post"> | ||
+ | <table> | ||
+ | <tr><td> | ||
+ | <p> ID: <br> | ||
+ | <input type:"readonly" name="id" value="<? echo $linha['ID'] ?>"> | ||
+ | <p> Senha: <br> | ||
+ | <input type="password" name="senha" value="<? echo $linha['SENHA'] ?>"> | ||
+ | <input type="submit" name="b_enviar" value="Gravar"><BR> | ||
+ | </td><td> | ||
+ | </td></tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | |||
+ | <a href="http://www.celtics.sj.ifsc.edu.br/listar.php"><FONT COLOR="#FFFFFF">Voltar</a> | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *Código onde é realizado a atualização do banco de dados ('''add2.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if (isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | color: #FFFFFF; | ||
+ | } | ||
+ | a:link { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:visited { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:hover { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | } | ||
+ | a:active { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | background-color:#000000; | ||
+ | } | ||
+ | |||
+ | |||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Centro Comercial Celtics</FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <br> | ||
+ | <body> | ||
+ | <? | ||
+ | $conexao = mysql_connect("localhost","root","celta") ; | ||
+ | $base_ok = mysql_select_db("celtics_users",$conexao); | ||
+ | $id = $_GET['id']; | ||
+ | $senha=$_POST['senha']; | ||
+ | |||
+ | if (!empty ($id) && !empty ($senha)) | ||
+ | { | ||
+ | $update=mysql_query("UPDATE user SET SENHA='$senha' WHERE ID=$id",$conexao); | ||
+ | if($update==true) | ||
+ | { | ||
+ | echo "<h2>Dados atualizados com sucesso <br></h2>"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de usuários</a>"; | ||
+ | }else | ||
+ | { | ||
+ | echo "Erro ao Atualizar"; | ||
+ | "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de anúncios</a>"; | ||
+ | } | ||
+ | }else | ||
+ | { | ||
+ | echo "<h2>Erro, campos vazios<br></h2>"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php'>Voltar</a>"; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else | ||
+ | { | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Excluindo usuários=== | ||
+ | Segue o código da página para exclusão de usuários ('''excluir.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if(isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | |||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | color:#FFFFFF; | ||
+ | } | ||
+ | a:link { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:visited { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:none; | ||
+ | } | ||
+ | a:hover { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | } | ||
+ | a:active { | ||
+ | color:#FFFFFF; | ||
+ | text-decoration:underline; | ||
+ | background-color:#000000; | ||
+ | } | ||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new"<FONT COLOR="#FFFFFF">Centro Comercial Celtics</FONT></h1> | ||
+ | </center> | ||
+ | <hr> | ||
+ | <br> | ||
+ | |||
+ | <? | ||
+ | $conexao = mysql_connect("localhost","root","celta") ; | ||
+ | $base_ok = mysql_select_db("celtics_users",$conexao) or die ("erro 1"); | ||
+ | $id=$_GET["id"]; | ||
+ | $query = mysql_query("delete from user where ID='$id'"); | ||
+ | mysql_query($query); | ||
+ | |||
+ | if ($query==true) | ||
+ | { | ||
+ | echo "<h2>Usuário excluído com sucesso!<br></h2>"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Voltar</a>"; | ||
+ | }else{ | ||
+ | echo "Erro ao excluir usuário!"; | ||
+ | echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Voltar</a>"; | ||
+ | } | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location: index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ===Botão sair=== | ||
+ | *Na página de cadastro foi colocado links para o usuário sair da seção('''sair.php'''): | ||
+ | <code><? | ||
+ | session_start(); //iniciamos a sessão que foi aberta | ||
+ | session_destroy(); //destruimos a sessão | ||
+ | session_unset(); //limpamos as variaveis globais das sessões | ||
+ | header("Location: index.php"); | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | ===Erro=== | ||
+ | *Na pagina que verifica o login foi criado uma seção de erro, para casos onde o usuário colocar login incorreto, com link para voltar a pagina de autenticação('''erro.php'''): | ||
+ | <code> | ||
+ | <? | ||
+ | session_start(); | ||
+ | if (!isset($_SESSION['usuario'])){ | ||
+ | ?> | ||
+ | |||
+ | ?> | ||
+ | <html> | ||
+ | <meta http-equiv="Content-Type" content="text/html charset=utf-8"> | ||
+ | <style type="text/css"> | ||
+ | body { | ||
+ | background: url('fundo.jpg') fixed no-repeat center; | ||
+ | background-color: #000000; | ||
+ | } | ||
+ | <hr> | ||
+ | </style> | ||
+ | <center> | ||
+ | <h1><font face="courier new" <FONT COLOR="#FFFFFF"> Login inválido! </FONT></h1> | ||
+ | <hr> | ||
+ | <a href="index.php"><FONT COLOR="#FFFFFF"> Voltar </font></a> | ||
+ | </html> | ||
+ | |||
+ | <? | ||
+ | }else{ | ||
+ | header("Location:index.php"); | ||
+ | } | ||
+ | ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==Dia: 13/12/2010== | ||
+ | ==Dia: 14/12/2010== | ||
+ | ==Dia: 15/12/2010== | ||
+ | ==Dia: 16/12/2010== |
Edição atual tal como às 21h33min de 11 de março de 2011
Celtics
Projeto Integrador - Celtics
Dia: 23/11/2010
- Apresentação do projeto pelo professor Ederson Torresini.
- Verificado alguns dos serviços finais que a solução deve prover a usuário.
- ADSL para usuários.
- DSLAM 8 portas por equipe.(DHCP,DNS.)
- Vigilância IP (ferramenta de streaming, sistema de controle de autenticação.)
- Segurança nos dados:(BACKUP, Filtro de Conteúdo/pacotes.)
- Redes separadas(VLAN).Um por administrador e um por cada cliente.)
- Escolhido o nome da equipe Celtics.
Dia: 24/11/2010
Cabeamento
- Passado os cabos do Patch Panel do Armário Principal para o Armário Celtics.
- Feitos os pontos (um no chão, na parede e aéreo) de acesso (Tomadas).
- Padrão 568B.
Equipamentos:
- Placa wifi ATHEROS comunication AR500IXplus
- MODEM D-LINK 500B
- DSLAN - DAS3324
Gerência de Rede
- Instalação do Sistema Operacional Ubuntu Server.
80GB de HD.
01GB de Memória RAM.</syntaxhighlight>
- Configurações de particionamento de Disco
40GB para partição / (raiz)
20GB para partição /var
15GB para partição /home
01GB para swap.
</syntaxhighlight>
Dia: 25/11/2010
- Recebemos o equipamento DSLAM que ficou disponível para estudo.
- Realizado a certificação dos cabos.
- Teste de continuidade.
- Instalado SSH: Acesso remoto.
root@techspot:~# aptitude install ssh-server.
</syntaxhighlight>
Dia: 26/11/2010
- Não teve aula...
Dia: 29/11/2010
Cabeamento
- Realizado os testes de continuidade no cabeamento estruturado, feitas as terminações nos pontos exigidos (aéreo, piso e parede) e no Patch panel, efetuado também terminações no rack principal.
- Finalizado cabeamento estruturado.
Gerência de rede
- Não realizamos nenhuma atividade, pois o laboratório apresentou problemas, não foi possível configurar o servidor estávamos sem rede.
Dia: 30/11/2010
Gerência de rede
- Rede Celtics:
Rede externa:
IP: 200.135.37.102 Mascara: 255.255.255.192 Broadcast: 200.135.37.127
Rede: 1°IP valido: Ultimo IP valido:
Gateway: 200.135.37.126
</syntaxhighlight>
- configuração de rede:
Arquivo /etc/network/interfaces: Configuração das interfaces de rede.
- 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
- Rede externa:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 200.135.37.102
netmask 255.255.255.192
gateway 200.135.37.126
</syntaxhighlight>
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 UDP/TCP
Instalação e configuração de servidor DNS(BIND9[1])
- Instalar
- aptitude update; aptitude install bind9
</syntaxhighlight>
Arquivo /etc/bind/named.conf.options:
options {
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
listen-on { any; };
allow-recursion {127.0.0.0/8; 192.168.1.19; };
allow-query { any; };
};
</syntaxhighlight>
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 "celtics.sj.ifsc.edu.br" {
type master;
file "/etc/bind/celtics.sj.ifsc.edu.br";
};
zone "/etc/bind/200.in-addr.arpa" {
type master;
file "/etc/bind/200/etc/bind/200.in-addr.arpa";
};
</syntaxhighlight>
Arquivo/etc/bind/celtics.sj.ifsc.edu.br: Configurações do domínio.
$TTL 86400
@ IN SOA dns.celtics.sj.ifsc.edu.br. rafael.celtics.sj.ifsc.edu.br. (
2010113000 ; serial
1d ; refresh
1h ; retry
1w ; expire
1d ; negative cache ttl
)
@ IN NS dns
@ IN A 200.135.37.102
dns IN A 200.135.37.102
ns1 IN A 200.135.37.102
mail IN A 200.135.37.102
www IN A 200.135.37.102
smtp IN CNAME mail.celtics.sj.ifsc.edu.br.
pop IN CNAME mail.celtics.sj.ifsc.edu.br.
imap IN CNAME mail.celtics.sj.ifsc.edu.br.
ss1 IN CNAME www.celtics.sj.ifsc.edu.br.
</syntaxhighlight>
Arquivo/etc/bind/db100.64-127.37.135.200.in-addr.arpa: Configurações do DNS.
$TTL 86400
@ IN SOA dns.celtics.sj.ifsc.edu.br. rafael.celtics.sj.ifsc.edu.br. (
2010113000 ; serial
1d ; refresh
1h ; retry
1w ; expire
1d ; negative cache ttl
)
@ IN NS dns.celtics.sj.ifsc.edu.br.
102 IN PTR dns.celtics.sj.ifsc.edu.br.
</syntaxhighlight>
NTP
- NTP(Protocolo de Tempo para Redes). 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. Portas 123UDP/TCP.
- Instalando:
- aptitude update; aptitude install ntp
</syntaxhighlight>
Arquivo /etc/ntp.conf: Arquivo de configuração: Adicionada a linha abaixo para que o ntp sincronize o horário com os servidor:
server ntp.cais.rnp.br
</syntaxhighlight>
Dia: 01/12/2010
- Configurado DHCP:
DHCP é um protocolo para configuração dinâmica de parâmetros de rede como endereço IP, DNS, Gateway etc. Porta 67/UDP.
Instalando:
- aptitude update; aptitude install dhcp3-server
</syntaxhighlight>
Arquivo:/etc/dhcp3/dhcpd.conf configurações do servidor dhcp.
- 2010120102 Termino da configuração
- Realizado por: Gabriel , Lucas , Cleidiane
- Aceitar atualização dinâmica vinda dos clientes?? Não.
ddns-update-style none;
- Criar subnet
subnet 192.168.20.0 netmask 255.255.255.0 {
#IP
range 192.168.1.1 192.168.1.100;
#Máscara
#option subnet-mask 255.255.255.0;
#Broadcast
#option broadcast-address 192.168.1.255;
#Rota padrão
option routers 192.168.1.19;
#Servidor DNS
option domain-name-servers 200.135.37.102;
option domain-name "celtics.sj.ifsc.edu.br";
#Tempo de empréstimo
default-lease-time 3600;
masc-lease-time 14400;
}
</syntaxhighlight>
- SNMP - É um protocolo de gerência típica de redes UDP, da camada de aplicação, que facilita o intercâmbio de informação entre os dispositivos de rede, como placas e comutadores. O SNMP possibilita aos administradores de rede gerenciar o desempenho da rede, encontrar e resolver seus eventuais problemas, e fornecer informações para o planejamento de sua expansão, dentre outras.
Instalando:
- aptitude update; aptitude install snmpd
</syntaxhighlight>
• O arquivo/etc/snmp/snmpd.conf foi zerado e reconfigurado de acordo com a comunidade de gerência.
rocommunity celtics
syslocation celtics-TI
syscontact root@celtics.sj.ifsc.edu.br
sysservices 72# example here.
</syntaxhighlight>
Dia: 02/12/2010
Cacti é uma ferramenta que recolhe e exibe informações sobre o estado de uma rede de computadores através de gráficos. Foi desenvolvido para ser flexível de modo a se adaptar facilmente a diversas necessidades, bem como ser robusto e fácil de usar. Monitora o estado de elementos de rede e programas bem como largura de banda utilizada e uso de CPU.
Pode-se utilizar também o protocolo SNMP para consultar informações em elementos de redes e/ou programas que suportam tal protocolo.
- Instalação do Cacti
apt-get install cacti
• Após instalar a configuração foi feita através da interface web no endereço http://www.celtics.sj.ifsc.edu.br/cacti/
• Para confirmar que existe comunicação entre agente e gerente, pode se testar a partir do seguinte comando:
snmpwalk -v2c -cplugincafe 200.135.37.102
- MySQL - O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface.
Instalação dos serviços PHP, PHPmyadmin, Mysql
apt-get install php5 mysql-server phpmyadmin
Comandos básicos do mysql:
- Logar no banco de dados
mysql -u root -p
</syntaxhighlight>
- Criar base de dados
create database;
</syntaxhighlight>
- Usar a base de dados
mysql> use (nome da base);
</syntaxhighlight>
- Listando as bases criadas
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti |
| celtics |
| celtics_users |
| mysql |
| radius |
| zm |
+--------------------+
7 rows in set (0,00 sec)
</syntaxhighlight>
- Sair do Banco de Dados
mysql> quit
</syntaxhighlight>
- NAT - NAT também conhecido como masquerading é um protocolo que, como o próprio nome diz, faz a tradução dos endereços Ip e portas TCP da rede local para a Internet. Ou seja, o pacote enviado ou a ser recebido de sua estação de trabalho na sua rede local, vai até o servidor onde é trocado pelo ip do mesmo substituindo o ip da rede local validando assim o envio do pacote na internet, no retorno do pacote a mesma coisa, o pacote chega e o ip do servidor é trocado pelo Ip da estação que fez a requisição do pacote.
- Cofiguração do NAT: Criar um arquivo com o nome "nat" na pasta "init.d"
• Arquivo/etc/init.d/nat:
- !/bin/bash
- Interfaces
IFACE_INTERNA="eth0"
IFACE_EXTERNA="eth1"
- NAT
iptables -t nat -A POSTROUTING -o ${IFACE_EXTERNA} -j MASQUERADE
- Redirecionamento para o Analisador de Conteúdo
- iptables -t nat -A PREROUTING -i ${IFACE_INTERNA} -p tcp --dport 80 \
- -j REDIRECT --to-port 8080
- Bloqueio para acesso direto ao Proxy
- iptables -A INPUT -m tcp -p tcp ! -s 127.0.0.1 --dport 3128 -j DROP
exit 0
</syntaxhighlight>
• Mudança das permissões do arquivo "nat":
chmod 700 /etc/init.d/nat
</syntaxhighlight>
- Ativando o roteamento para o NAT:
• Abrir o arquivo/etc/sysctl.conf: Ir até as linhas entre 25 e 30 do arquivo "sysctl.conf" e descomentar (apagar a #) na linha que tem o comando "#net.ipv4.ip_forward=1"
net.ipv4.ip_forward=1
Dia: 03/12/2010
- Feito o cabo de ligação do patch panel com o dslan. (cabo manga).
Dia: 06/12/2010
- Colocado o Cacti no ar.
- Gráficos sobre o servidor funcionando.
Dia: 07/12/2010
Firewall
O firewall é usado na filtragem de pacotes, por meio de um conjunto de regras estabelecidas. Essas regras determina que endereços IPs e dados podem estabelecer comunicação e/ou transmitir/receber dados. Para utilizarmos o firewall, temos que instala-lo através do comando:
aptitude install iptables</syntaxhighlight>
- Ativando o roteamento através do comando:
sed -i 's/.*net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/g' /etc/sysctl.conf</syntaxhighlight>
- Em seguida fizemos algumas alterações no script do arquivo NAT para redirecionamento das requisições HTTP. Seguindo o caminho /etc/init.d/nat.
- !/bin/bash
- Interfaces
IFACE_INTERNA="eth0"
IFACE_EXTERNA="eth1"
- NAT
iptables -t nat -A POSTROUTING -o ${IFACE_EXTERNA} -j MASQUERADE
- Redirecionamento para o Analisador de Conteúdo
iptables -t nat -A PREROUTING -i ${IFACE_INTERNA} -p tcp --dport 80 \
-j REDIRECT --to-port 8080
- Bloqueio para acesso direto ao Proxy
iptables -A INPUT -m tcp -p tcp ! -s 127.0.0.1 --dport 3128 -j DROP
exit 0
</syntaxhighlight>
- Por último temos que fazer com que o script inicie em primeiro lugar(01) nos niveis de execução de 2 a 5 (2 3 4 5). Assim o script irá iniciar junto com o sistema. Segue o comando abaixo:
update-rc.d nat start 01 2 3 4 5 .</syntaxhighlight>
Dia: 08/12/2010
RADIUS
- Instalando o radius:
- Pesquisado o Zoneminder Software de gerenciamento de câmeras via rede, deverá ser implantado no projeto.
Dia: 09/12/2010
Aplicação
- Página de entrada do site, onde será feita autenticação do usuário (index.html):
<?
session_start();
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo2.jpg') fixed no-repeat center;
background-color: #000000;
}
</style>
<font face="courier new"Autenticação de Usuários
<FORM name="autenticacao" method="POST" action="autentica_bd.php">
Nome de usuário:
<INPUT type="text" name="usuario">
Senha:
<INPUT type="password" name="senha">
<INPUT type="submit" name="botao" value="Enviar">
</form>
</html>
</syntaxhighlight>
- Página de autenticação do admin, verifica o login (autentica_bd.php):
<html>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?
session_start();
$nome = $_POST['usuario'];
$password = $_POST ['senha'];
$conexao = mysql_connect ("localhost", "root", "celta");
$base_ok = mysql_select_db("celtics_users",$conexao);
$consultar = "select id from admin where login = '$nome' && senha = '$password'";
$resultado = mysql_query ($consultar,$conexao);
$linhas = mysql_num_rows($resultado);
mysql_close($conexao);
If ($linhas == 1)
{
$_SESSION['usuario']=$nome;
echo "<script>window.location='principal.php';</script>";
}else{
echo "<script>window.location='erro.php';</script>";
}
?>
</html>
</syntaxhighlight>
- Pagina principal do site (principal.php):
<?
session_start();
if (isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
}
</style>
<font face="courier new"Centro Comercial Celtics
<a href="http://www.celtics.sj.ifsc.edu.br/listar.php">Listar usuários cadastrados</a>
<a href="http://www.celtics.sj.ifsc.edu.br/cadastro.php">Cadastrar novos usuários</a>
<a href="http://celtics.sj.ifsc.edu.br:8080/?action=stream">Monitoramento</a>
<a href="http://www.celtics.sj.ifsc.edu.br/sair.php"><button>Sair</button></a>
</html>
<?
}else{
header("Location:index.php");
}
?>
</syntaxhighlight>
- Pagina de cadastro de usuários do site, onde o admin fará o cadastro (cadastro.php):
<?
session_start();
if(isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
}
</style>
Centro Comercial Celtics
Cadastro de usuários:
<form name="formTeste" action="add.php" method="post">
Nome:
<input type:"text" name="Xnome">
Login:
<input type:"text" name="Xlogin">
Senha:
<input type="password" name="Xsenha">
<input type="submit" name="b_enviar" value="Gravar">
<a href="http://www.celtics.sj.ifsc.edu.br/principal.php">Voltar</a>
</body>
</html>
<?
}else{
header("Location: index.php");
}
?>
</syntaxhighlight>
- Depois de informados os dados do usuário 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):
<?
session_start();
if(isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
color:#FFFFFF;
}
a:link {
color:#FFFFFF;
text-decoration:none;
}
a:visited {
color:#FFFFFF;
text-decoration:none;
}
a:hover {
color:#FFFFFF;
text-decoration:underline;
}
a:active {
color:#FFFFFF;
text-decoration:underline;
background-color:#000000;
}
</style>
<font face="courier new"Centro Comercial Celtics
<?
$ID=$_POST['Xid'] ;
$NOME=$_POST['Xnome'] ;
$LOGIN=$_POST['Xlogin'] ;
$SENHA=$_POST['Xsenha'] ;
if (!empty ($NOME) && !empty ($LOGIN) && !empty ($SENHA))
{
$conexao = mysql_connect("localhost","root","celta") ;
$base_ok = mysql_select_db("celtics_users",$conexao) or die ("erro 1");
$inserir = "INSERT INTO user (NOME, LOGIN, SENHA) VALUES ('$NOME', '$LOGIN', '$SENHA')";
$cadastrar = mysql_query($inserir,$conexao) or die("erro 2");
mysql_close($conexao) or die("Erro fechar conexao");
if($cadastrar==true)
{
echo "
Usuário cadastrado com sucesso
";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar>Lista de usuários</a>";
}else
{
echo "Erro ao cadastrar usuário";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de usuários</a>";
}
}else
{
echo "
Erro, favor preencher todos os campos.
";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/cadastro.php'>Cadastrar novo usuário</a>";
}
?>
</body>
</html>
<?
}else
{
header("Location: index.php");
}
?>
</syntaxhighlight>
Dia: 10/12/2010
Listagem de usuários cadastrados
- 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 usuários já cadastrados, e através dessa página pode-se selecionar um usuário o qual deseja editar ou excluir. Segue o código (listar.php):
<?
session_start();
if (isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
color: #FFFFFF;
}
a:link {
color:#FFFFFF;
text-decoration:none;
}
a:visited {
color:#FFFFFF;
text-decoration:none;
}
a:hover {
color:#FFFFFF;
text-decoration:underline;
}
a:active {
color:#FFFFFF;
text-decoration:underline;
background-color:#000000;
}
</style>
<body>
<font face="courier new"Centro Comercial Celtics
Lista de usuários:
<?
$conexao = mysql_connect("localhost","root","celta") or die ("ERRO");
if($conexao)
{
mysql_select_db("celtics_users") or die ("erro 1");
$query = "SELECT * FROM user" or die ("erro 2");
$dados = mysql_query($query,$conexao) or die ("erro 3");
echo "";
echo "";
echo "";
while($linha=mysql_fetch_array($dados,MYSQL_ASSOC))
{
$id = $linha["ID"];
echo "" ;
echo "" ;
//echo "" ;
echo "";
}
echo "ID Login " . $linha["ID"] . " " . $linha["NOME"] . " " . $linha["SENHA"] . " <a href='certeza.php?id=$id'><button>Excluir</button></a> ";
echo "<a href='editar.php?id=$id'><button>Editar</button></a>
";
mysql_close($conexao) or die ("erro 5");
}
?>
<a href='http://www.celtics.sj.ifsc.edu.br/cadastro.php'>Incluir novo usuário</a>
<a href="http://www.celtics.sj.ifsc.edu.br/principal.php">Voltar</a>
</font:
</body>
</html>
<?
}else{
header("Location: index.php");
}
?>
</syntaxhighlight>
Editando e atualizando usuários
- Depois de selecionado um usuário na página de listagem o admin é direcionado para a página de edição de usuários. E então são mostrados os dados que já estão cadastrados do usuário selecionado, podendo alterar a senha do mesmo 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 usuários (editar.php):
<?
session_start();
if(isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
color: #FFFFFF;
}
</style>
Centro Comercial Celtics
Editando usuários:
<?
$id = $_GET['id'];
$conexao = mysql_connect("localhost","root","celta") ;
mysql_select_db("celtics_users") or die ("erro 1");
$query = ("select * from user where ID=$id");
$dados = mysql_query($query,$conexao);
$linha=mysql_fetch_array($dados,MYSQL_ASSOC);
mysql_query($linha);
?>
<form name="formTeste" action="add2.php?id=<? echo $id ?>" method="post">
ID:
<input type:"readonly" name="id" value="<? echo $linha['ID'] ?>">
Senha:
<input type="password" name="senha" value="<? echo $linha['SENHA'] ?>">
<input type="submit" name="b_enviar" value="Gravar">
<a href="http://www.celtics.sj.ifsc.edu.br/listar.php">Voltar</a>
</body>
</html>
<?
}else{
header("Location: index.php");
}
?>
</syntaxhighlight>
- Código onde é realizado a atualização do banco de dados (add2.php):
<?
session_start();
if (isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
color: #FFFFFF;
}
a:link {
color:#FFFFFF;
text-decoration:none;
}
a:visited {
color:#FFFFFF;
text-decoration:none;
}
a:hover {
color:#FFFFFF;
text-decoration:underline;
}
a:active {
color:#FFFFFF;
text-decoration:underline;
background-color:#000000;
}
</style>
<font face="courier new"Centro Comercial Celtics
<body>
<?
$conexao = mysql_connect("localhost","root","celta") ;
$base_ok = mysql_select_db("celtics_users",$conexao);
$id = $_GET['id'];
$senha=$_POST['senha'];
if (!empty ($id) && !empty ($senha))
{
$update=mysql_query("UPDATE user SET SENHA='$senha' WHERE ID=$id",$conexao);
if($update==true)
{
echo "
Dados atualizados com sucesso
";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de usuários</a>";
}else
{
echo "Erro ao Atualizar";
"<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Lista de anúncios</a>";
}
}else
{
echo "
Erro, campos vazios
";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php'>Voltar</a>";
}
?>
</body>
</html>
<?
}else
{
header("Location: index.php");
}
?>
</syntaxhighlight>
Excluindo usuários
Segue o código da página para exclusão de usuários (excluir.php):
<?
session_start();
if(isset($_SESSION['usuario'])){
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
color:#FFFFFF;
}
a:link {
color:#FFFFFF;
text-decoration:none;
}
a:visited {
color:#FFFFFF;
text-decoration:none;
}
a:hover {
color:#FFFFFF;
text-decoration:underline;
}
a:active {
color:#FFFFFF;
text-decoration:underline;
background-color:#000000;
}
</style>
<font face="courier new"Centro Comercial Celtics
<?
$conexao = mysql_connect("localhost","root","celta") ;
$base_ok = mysql_select_db("celtics_users",$conexao) or die ("erro 1");
$id=$_GET["id"];
$query = mysql_query("delete from user where ID='$id'");
mysql_query($query);
if ($query==true)
{
echo "
Usuário excluído com sucesso!
";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Voltar</a>";
}else{
echo "Erro ao excluir usuário!";
echo "<a href='http://www.celtics.sj.ifsc.edu.br/listar.php>Voltar</a>";
}
?>
</body>
</html>
<?
}else{
header("Location: index.php");
}
?>
</syntaxhighlight>
Botão sair
- Na página de cadastro foi colocado links para o usuário sair da seção(sair.php):
<?
session_start(); //iniciamos a sessão que foi aberta
session_destroy(); //destruimos a sessão
session_unset(); //limpamos as variaveis globais das sessões
header("Location: index.php");
?>
</syntaxhighlight>
Erro
- Na pagina que verifica o login foi criado uma seção de erro, para casos onde o usuário colocar login incorreto, com link para voltar a pagina de autenticação(erro.php):
<?
session_start();
if (!isset($_SESSION['usuario'])){
?>
?>
<html>
<meta http-equiv="Content-Type" content="text/html charset=utf-8">
<style type="text/css">
body {
background: url('fundo.jpg') fixed no-repeat center;
background-color: #000000;
}
</style>
<font face="courier new" Login inválido!
<a href="index.php"> Voltar </a>
</html>
<?
}else{
header("Location:index.php");
}
?>
</syntaxhighlight>
Dia: 13/12/2010
Dia: 14/12/2010
Dia: 15/12/2010
Dia: 16/12/2010