Projeto Integrador - 2009.1 - Equipe Zeus
Cabeamento Estruturado
- Pontos na sala de meios de transmissão (CAB);
- Dois Patch Panel no Rack na sala de transmissão;
- 1 Patch Cord;
- Teste de continuidade realizada no patch cord OK;
- Passagem do cabo UTP que interliga a sala de redes1 com meios de transmissão em conjunto com os outros grupos;
Instalação de Equipamentos de Rede
- Configurado switch 192.168.1.230;
- Configurado as portas 7-11;
- Criado as VLANs para hóspedes (20), usuários (25) e visitantes (100);
- VLAN 20: IP - 10.2.1.1;
Broadcast - 10.2.1.255; Mascara - 255.255.255.0;
- VLAN 25: IP - 10.2.2.1;
Broadcast - 10.2.2.255; Mascara - 255.255.255.0;
- VLAN 100: IP - 10.2.10.1;
Broadcast - 10.2.10.255; Mascara - 255.255.255.0;
Gerência de Rede
Sistema Operacional
- Configurando o Servidor (GER);
- Instalado o sistema operacional UBUNTU versão 8.10.
- Configuração da eth0.
- IP do servidor: 200.135.37.111;
- Broadcast - 200.135.37.127;
- Mascara - 255.255.255.192;
DHCP
DHCP é a sigla para Dynamic Host Configuration Protocol. Trata-se de um protocolo utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente.
- Configuração do DHCP;
- apt-get install dhcp3
subnet 10.2.1.0 netmask 255.255.255.0 { range 10.2.1.50 10.2.1.60; option subnet-mask 255.255.255.0; option broadcast-address 10.2.1.255; option routers 10.2.1.1; option domain-name-servers 200.135.37.111 } subnet 10.2.2.0 netmask 255.255.255.0 { range 10.2.2.50 10.2.2.60; option subnet-mask 255.255.255.0; option broadcast-address 10.2.2.255; option routers 10.2.2.1; option domain-name-servers 200.135.37.111; } subnet 10.2.10.0 netmask 255.255.255.0 { range 10.2.10.50 10.2.10.60; option subnet-mask 255.255.255.0; option broadcast-address 10.2.10.255; option routers 10.2.10.1; option domain-name-servers 200.135.37.111; }
DNS
DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP, ou seja, faz a conversão de nomes em endereços IP's.
- Configurado o DNS.
- apt-get install bind9
- Abrir o aquivo named.conf.local:
Seguem abaixo as configurações necessárias que devem ser configuradas dentro do mesmo.
named.conf.local
zone "zeus.sj.ifsc.edu.br" { type master; file "/etc/bind/zeus"; }; zone "37.135.200.in-addr.arpa" {
type master;
file "/etc/bind/37.135.200.in-addr.arpa";
};
- Criamos um arquivo com o nome de zeus, seguem abaixo as configurações que devem conter no arquivo.
zeus
$TTL 86400
; Start of Authority: início de autoridade @ IN SOA dns1.zeus.sj.ifsc.edu.br. admin.zeus.sj.ifsc.edu.br. ( 2009040100 ; Serial 1d ; Refresh 4h ; Retry 1w ; Expire 1d ) ; Negative Cache TTL ; ; Name Server: servidores DNS @ IN NS dns1 @ IN MX 0 mail ; ; Address: endereço dns1 IN A 200.135.37.111 mail IN A 200.135.37.111 www IN A 200.135.37.111 ; ; Canonical Name: "apelido" web IN CNAME www
- É necessário criar o DNS reverso onde o nome é composto pelos 3 primeiros octetos de forma reversa e mais .in-addr.arpa seguem abaixo as configurações necessárias.
Ressalto que somente o servidor precisará configurar o DNS reverso.
37.135.200.in-addr.arpa
$TTL 86400
; Start of Authority: início de autoridade
@ IN SOA dns1.zeus.sj.ifsc.edu.br. admin.zeus.sj.ifsc.edu.br. (
2009062201 ; Serial
1d ; Refresh
4h ; Retry
1w ; Expire
1d ) ; Negative Cache TTL
;
; Name Server: servidores DNS
@ IN NS dns1.zeus.
;
; Address: endereço
111 IN PTR dns1.zeus.sj.ifsc.edu.br.
111 IN PTR mail.zeus.sj.ifsc.edu.br.
111 IN PTR www.zeus.sj.ifsc.edu.br
resolv.conf
- Colocar o domínio utilizado.
domain zeus.sj.ifsc.edu.br nameserver 127.0.0.1
Postifix
O Postfix é um agente de transferência de emails (MTA), um software livre para envio e entrega de emails. Rápido e fácil de administrar, é uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.
Configuração:
myhostname = mail.zeus.sj.ifsc.edu.br mydomain = zeus.sj.ifsc.edu.br alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = zeus.sj.ifsc.edu.br mydestination = zeus.sj.ifsc.edu.br, localhost.zeus.sj.ifsc.edu.br, localhost, mail.zeus.ifsc.edu.br mynetworks = 127.0.0.1/32
SSH
O SSH (Secure SHell) é um protocolo que permite a você acessar virtualmente o servidor como se você estivesse em um terminal (no prompt do DOS, por exemplo). Se você preferir, considere como o SSH como um computador controlando outro computador.
Utilizado para acessar remotamente o servidor.
apt-get install sshd
Apache - Servidor Web
apt-get install apache2
Não é necessário configurar, somente incuir o site (páginas e imagens)no /var/www. Ressalto que o site precisa excluir o arquivo index.html que estará dentro do /var/www e renomear o site inicial para index, senão o por default aparecerá uma página em branco.
SMTP/IMAP - Servidor de e-mail
SMTP - padrão internacional utilizado para transfência de correspondências eletrônicas (email) entre computadores.
IMAP - protocolo padrão utilizado por leitores de email para ter acesso às mensagens que chegam ao servidor de email.
- apt-get install -uw imapd
- apt-get install postifix
- apt-get install mailx
- Configurado arquivo main.cf;
myhostname = mail.zeus.sj.ifsc.edu.br mydomain = zeus.sj.ifsc.edu.br alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = zeus.sj.ifsc.edu.br mydestination = zeus.sj.ifsc.edu.br, localhost.zeus.sj.ifsc.edu.br, localhost, mail.zeus.ifsc.edu.br relayhost = mynetworks = 127.0.0.1/32
SNMP
Utilizado para monitoração da rede a ferramenta Cacti. O Cacti recolhe dados referente a rede e mostra gráfico onde podemos observar a quantidade de memória utilizada, a utilização de partições, tráfego das interfaces, quantidade de processos que estão rodando entre outros. Para instalar o Cacti e o utilizamos os comandos abaixo.
- apt-get install snmpd
- apt-get install cacti
- Configurado arquivo /etc/snmp/snmpd.conf;
rocommunity zeus syslocation Laboratório de redes 1 syscontact zeus@zeus.sj.ifsc.edu.br sysservices 72
Ressalto que não podemos esquecer de escolher uma comunidade e decreve-lá no campo "rocommunity", pois no Cacti será solicitado a comunidade que deve ser utilizada.
Acesso ao nosso Cacti http://www.zeus.sj.ifsc.edu.br/cacti
Radius
O radius é uma ferramenta utilizada para a autenticação de usuários seja na rede cabeada ou na rede sem fio. Pode ser utilizado com um banco de dados MySQL, para que o mesmo busque usuário e senha ou pode-se usar o arquivo de texto users da mesma forma determinando usuário e senha. Utilizaremos o arquivo de texto users devido a facilidade de implementar.
- Baixando o pacote
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz
- Compilador e biblioteca
make gcc g++ libssl-dev
- Preparando a compilação
./configure --prefix=/usr/local freeradius-server2.1.6 --exe-prefix=/usr/local freeradius-server2.1.6
- Compilando
make make install
Após isso é necessário a configuração de dois arquivos o clients.conf e o users
- Clients.conf
Arquivo onde é cadastrado os equipamentos que irão se conectar a rede.
- Users
Arquivo onde é cadastrado os usuários que podem se conectar a rede, é necessário determinar dentro do users o login e senha que será utilizado por cada usuário.
Segue abaixo a configuração de cada um desses arquivos.
- Configurado arquivo clients.conf;
client proxy{ ipaddr = 200.135.37.115 secret = proxy nastype = other
}
- Configurado arquivo users;
- Formato utilizado para que possamos identificar e excluir os arquivos foi o seguinte.
- O login e senha que estão abaixo serão os respectivos login e senha do usuário para que o mesmo possa se autenticar na rede cabeada ou sem fio.
- O "X" é onde você deve identificar em qual VLAN cairá o usuário após a autenticação.
- #2009-07-30 é a data de saída do hóspede
- 22222222222 é a senha que deverá ser utilizada pelo usuário para a autenticação.
#2009-07-30 22222222222 login@zeus.sj.ifsc.edu.br Cleartext-Password :="senha" Tunnel-Type = "VLAN", Tunnel-Medium-Type = "IEEE-802", Tunnel-Private-Group-ID = "X" zeus@zeus.sj.ifsc.edu.br Cleartext-Password :="123" Tunnel-Type = "VLAN", Tunnel-Medium-Type = "IEEE-802", Tunnel-Private-Group-ID = "20"
Crontab
- Utilizamos o crontab para agendarmos uma tarefa para realizar o checkout, todos os dias ao meio dia é executado um scrit onde é procurado todos os usuários onde a data de saída é igual a data de hoje, esses usuários são excluídos do users e do relatório de ocupação.
Utilizamos o comando sed –i, onde o mesmo localiza e exclui um determinado número de linhas a partir do parâmetro citado para a busca
Tafera Agendada
Utilizamos o seguinte parâmetro para agendar a tarefa para todos os dias as 12h o usuário root executar a tarefa. Os parâmetros são determinados dentro do arquivo crontab em /etc.
00 12 * * * root /etc/freeradius/cron
Script (Crontab)
Criamos um script para incluirmos no cron onde o mesmo irá verificar se a data do users (data de saída do hóspede) é igual a data de hoje, se for igual o comando sed -i irá excluir as 5 linhas do users e assim bloqueando o acesso daquele usuário, pois sem o cadastro no users não tem como o usuário autenticar. Segue abaixo o script.
#!/bin/bash data=`date +%F` sed -i /\#$data/,+5d /etc/freeradius/users
Iptables
O que é iptables/firewall Firewall
O Firewall é um programa que tem como objetivo proteger a máquina contra acessos indesejados, tráfego indesejado, proteger serviços que estejam rodando na máquina e bloquear a passagem de coisas que você não deseja receber (como conexões vindas da Internet para sua segura rede local, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais).
Iptables
O iptables é um firewall em nível de pacotes e funciona baseado no endereço/porta de origem/destino do pacote, prioridade, etc. Ele funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar.
bloqueia tudo
iptables -P INPUT DROP
libera o minimo
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
libera aplicativo TCP
iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT
http
iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT
Liberar aplicativo UDP
DHCP
iptables -A INPUT -p udp --dport 67 -j ACCEPT
radius (autenticacao via proxy = 200.135.37.115) iptables -A INPUT -p udp –dport 1812 -j ACCEPT
NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Programação para Redes de Computadores
PHP
Uma linguagem do lado do servidor é aquela que se executa no servidor web, justo antes da página ser enviada através da Internet ao cliente. As páginas que se executam no servidor podem realizar acessos a bases de dados, conexões em rede, e outras tarefas para criar a página final que será vista pelo cliente. O cliente somente recebe uma página com o código HTML resultante da execução da PHP. Como a página resultante contém unicamente código HTML, é compatível com todos os navegadores.
Segue abaixo o comando para instalar o PHP.
- apt-get install php5
A página foi criada em HTML e PHP.
Banco de dados
Bancos de dados (ou bases de dados), são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.
Segue abaixo o comando para a instalação do banco de dados MySQL.
- apt-get install mysql-server
Utilizamos o MySQL-Query-Browser
Segue abaixo o comando para a instalação do banco de dados MySQL-Query-Browser.
- apt-get install mysql-query-server
O nosso banco de dados utiliza MySQL como linguagem.
Referências Bibliográficas
Apostilas
- Linux Básico, Gerência, Segurança e Monitoramento de Redes - Odilson Tadeu Valle