Projeto Integrador - 2009.2 - Equipe Epsilon

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

24/11/2009

  • Escolha do nome da equipe = Épsilon
  • Instalação do Ubuntu Serv versão 9.10
  • Particionamento do HD:
/dev/sda2 - 10GB - /
/dev/sda3 - 09GB - /home

Atualização dos Pacotes

  • Usado o servidor DHCP do Laboratório Redes I para atualização dos serviços do servidor
sudo apt-get update

Instalando ssh

sudo apt-get install ssh

Configuração de teste na interface eth0

sudo ifconfig 200.135.37.115 netmask 255.255.255.0

Discussão do desenvolvimento do projeto

Teste do GRAPHVIZ

<graphviz>

digraph PI {
   
  CAB -> IER
  IER -> GAR
  GAR -> PRC
  IER -> PRC

} </graphviz>

25/11/2009

Apresentação do projeto, parte de IER

Configurado as interfaces

eth0
address 200.135.37.115
netmask 255.255.255.0
network 200.135.37.0
broadcast 200.135.37.255
gateway 200.135.37.1
dns-nameserves 200.135.37.1
eth1
address 172.115.1.1 
netmask 255.255.255.0
network 172.115.1.0
broadcast 172.115.1.255
eth1.1
address 192.168.1.220 
netmask 255.255.255.0

Configurado resolv.conf

vim /etc/resolv.conf
domain REDES1
search REDES1
nameserver 200.135.37.65


26/11/2009

Instalação de serviços

  • APACHE : é o servidor web mais ultilizado no mundo
sudo apt-get install apache2
  • DHCP : ("Dynamic Host Configuration Protocol" ou "protocolo de configuração dinâmica de endereços de rede") permite que todos os micros da rede recebam suas configurações de rede automaticamente a partir de um servidor central, sem que você precise ficar configurando os endereços manualmente em cada um.
sudo apt-get install dhcpd3-server
  • PHP : é uma linguagem de programação de domínio específico, atua no desenvolvimento web Seu propósito principal é de implementar soluções web velozes, simples e eficientes.
sudo apt-get install php5 php5-mysql
  • MYSQL : é um sistema de banco de dados extremamente rápido e versátil. Permite construir aplicações interativas e complexas, tornando-se extremamente amigável e fácil de usar em comunhão com o PHP . A administração do MySql é via Web através do sistema phpMyAdmin.
sudo apt-get install mysql-server
  • SNMP : O protocolo SNMP é utilizado por sistemas de gestão da rede para comunicar com os elementos da rede.
sudo apt-get install snmp snmpd
  
  • 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.
sudo apt-get install bind9
  • POSTFIX e IMAP : 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. O IMAP é uma técnica de obtenção de e-mails de um servidor de correio usando um cliente de correio electrónico adequado.
sudo apt-get install postfix dovecot-imapd

  • 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.
sudo apt-get install cacti

Configuração DNS

configurado arquivo /etc/bind/named.conf.local

zone "epsilon.sj.ifsc.edu.br" {
 type master;
 file "/etc/bind/epsilon.sj.ifsc.edu.br";
};
zone "37.135.200.in-addr.arpa" {
 type master;
 file "/etc/bind/37.135.200.in-addr.arpa";
};

configurado arquivo /etc/bind/epsilon.sj.ifsc.edu.br

$TTL    86400
; Start of Authority: início de autoridade
@    IN    SOA    dns1.epsilon.sj.ifsc.edu.br. epsilon.sj.ifsc.edu.br. (
 2009112600        ; Serial
 1d        ; Refresh
 4h        ; Retry
 1w        ; Expire
 1d )    ; Negative Cache TTL
;
; Name Server: servidores DNS 
@    IN    NS    dns1 
@    IN    MX    0 mail
@    IN    A   200.135.37.115
;
; Address: endereço
dns1    IN    A    200.135.37.115
mail    IN    A    200.135.37.115
www    IN    A    200.135.37.115
;
; Canonical Name: "epsilon"
web    IN    CNAME    www

configurado arquivo /etc/bind/37.135.200.in-addr.arpa

$TTL    86400
; Start of Authority: início de autoridade
@    IN    SOA    dns1.epsilon.sj.ifsc.edu.br. epsilon.sj.ifsc.edu.br. (
 2009112601        ; Serial
 1d        ; Refresh
 4h        ; Retry
 1w        ; Expire
 1d )    ; Negative Cache TTL
;
; Name Server: servidores DNS 
@    IN    NS    dns1.epsilon.sj.ifsc.edu.br.
;
; Address: endereço
1        IN    PTR    dns1.epsilon.sj.ifsc.edu.br.
3        IN    PTR    mail.epsilon.sj.ifsc.edu.br.
100    IN    PTR    www.epsilon.sj.ifsc.edu.br.

Editado o arquivo /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# Interface externa
auto eth0
iface eth0 inet static
       address 200.135.37.115
       netmask 255.255.255.0
       network 200.135.37.0
       broadcast 200.135.37.255
       gateway 200.135.37.1
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers 200.135.37.1
# Interface Interna
auto eth1
iface eth1 inet static
       address 172.20.1.1
       netmask 255.255.255.0
       network 172.20.1.0
# Interface Virtual
auto vlan1
iface vlan1 inet static
       address 192.168.1.220
       netmask 255.255.255.0
       vlan_raw_device eth1
# Vlan 501
auto vlan501
iface vlan501 inet static
       address 172.21.1.1
         netmask 255.255.255.0
       vlan_raw_device eth1
# Vlan 502
auto vlan502
iface vlan502 inet static
       address 172.22.1.1
       netmask 255.255.255.0
       vlan_raw_device eth1
# Vlan 503
auto vlan503
iface vlan503 inet static
       address 172.23.1.1
       netmask 255.255.255.0
       vlan_raw_device eth1
# Vlan 504
auto vlan504
iface vlan504 inet static
       address 172.24.1.1
       netmask 255.255.255.0
       vlan_raw_device eth1

Criado um script simples para salvar configurações já setadas até o momento:

#!/bin/bash
nome=backup-txt-`date +%Y_%m_%d-_%H_%M`.txt
touch $nome
echo "**** INTERFACES DE REDE ****" >> $nome
echo >> $nome
ifconfig -a >> $nome
echo >> $nome
echo "**** ROTAS ****" >> $nome
echo >> $nome
route -n >> $nome
echo >> $nome
echo "**** Arquivo Resolv.conf ****" >> $nome
echo >> $nome
cat /etc/resolv.conf >> $nome
echo >> $nome
echo "**** HOTSPOT ****" >> $nome
echo >> $nome
cat /usr/local/nocat/nocat.conf >> $nome
echo >> $nome
echo "**** DNS ****" >> $nome
echo  >> $nome
echo "/etc/bind/named.conf.local" >> $nome
cat /etc/bind/named.conf.local >> $nome
echo >> $nome
echo "/etc/bind/epsilon.sj.ifsc.edu.br" >> $nome
cat /etc/bind/epsilon.sj.ifsc.edu.br >> $nome
echo >> $nome
echo "/etc/bins/37.135.200.in-addr.arpa" >> $nome
cat /etc/bind/37.135.200.in-addr.arpa >> $nome
echo >> $nome

Adicionado ao Crontab a execução do script de backup simples e a sincronização do relógio do servidor:

vim /etc/crontab
### Backup 1 - Texto
20 22    * * *   root    /backup/scripts/txback.sh bash
00 12    * * *   root    /backup/scripts/txback.sh bash
00 12    * * 6   root    ntpdate ntp.cais.rnp.br
00 17    * * 1   root    ntpdate ntp.cais.rnp.br

27/11/2009

Configuração Cacti

Configuração SNMP

vim /etc/snmp/snmpd.conf

rocommunity epsilon
syscontact root
syslocation IFSC-SJ - Laboratório Redes I

vim /etc/default/snmpd

export MIBDIRS=/usr/share/snmp/mibs
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 200.135.37.115'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
SNMPDCOMPAT=yes

Configuração no Cacti

Devices Servidor Epsilon

Description: Servidor Epsilon
Hostname: 200.135.37.115
Host Template: Generic SNMP-enabled
Disable Host: not set
Downed Device Detection: SNMP
Ping Timeout Value: 400
Ping Retry Count: 1
SNMP Version: Version 2
SNMP Community: epsilon
SNMP Port: 161
SNMP Timeout: 500
Maximum OID's Per Get Request: 10
Associated Graph Templates:
 *Host MIB - Logged in Users
 *Host MIB - Processes
 *ucd/net - CPU Usage 
 *ucd/net - Load Average 
 *ucd/net - Memory Usage
Associated Data Queries
 *SNMP - Interface Statistics 
 *Unix - Get Mounted Partitions 

Graph Trees

Parent Item: root
Tree Item Type: Host
Host: Servidor Epsilon: 200.135.37.115
Graph Grouping Style: Graph Template

Firewall

  • Instalação do Firewall
sudo apt-get install iptables
  • Definição : é o nome dado ao dispositivo de uma rede de computadores que tem por objetivo aplicar uma política de segurança a um determinado ponto de controle da rede. Sua função consiste em regular o tráfego de dados entre redes distintas e impedir a transmissão e/ou recepção de acessos nocivos ou não autorizados de uma rede para outra. Este conceito inclui os equipamentos de filtros de pacotes e de proxy de aplicações, comumente associados a redes TCP/IP.

Script do firewall

  • Configurado arquivo /etc/init.d/firewall
vim /etc/init.d/firewall

#!/bin/bash
# A interface eth0 está na rede 200.135.37.115/24
IFACE="eth0"
# Ativa o roteamento entre as interfaces de rede
sysctl -w net.ipv4.ip_forward=1
# Limpar antigas configurações
iptables -P  INPUT ACCEPT
iptables -t filter -F
#Bloqueia todas as solicitações de entrada
iptables -P INPUT DROP
#Libera solicitações da interface loopback
iptables -A INPUT -i lo -j ACCEPT
#Libera solicitações que partiram do servidor local
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Ativa o NAT para o acesso à Internet
iptables -t nat -A POSTROUTING -o ${IFACE} -j MASQUERADE
#Libera entrada pela porta 22 - SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#Libera entrada pela porta 443 - HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#Libera entrada pela porta 80 - WWW
iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT
#Libera porta 67 - DHCP
iptables -A INPUT -p udp --dport 67 -j ACCEPT
#Libera porta 53 - DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT
/etc/init.d/firewall bash

30/11/2009

Servidor de Email

Escolhido pela equipe utilizar o RoundCube

  • No Console
wget https://sourceforge.net/projects/roundcubemail/files/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz/download
tar -zxvf roundcubemail-0.3.1.tar.gz
mkdir /var/www/webmail
mv roundcubemail-0.3.1 /var/www/webmail
  • No navegador
equipepsilon.sj.ifsc.edu.br/webmail/roundcubemail-0.3.1/installer
START INSTALLATION
*Instalação dos pacotes faltantes:
apt-get install php5-mcrypt
apt-get install php5-gd
NEXT
General configuration
product_name: Webmail Epsilon
Database setup
chmod 777 temp/
chmod 777 logs/
Database type: MySQL
Database server: mail
Database user name: administrador
Database password: ********
IMAP Settings
sent_mbox: Enviados
trash_mbox: Lixeira
drafts_mbox: Rascunhos
Display settings & user prefs
language: pt_BR
CREATE CONFIG
  • No Console
cd /var/www/webmail/config
vim main.inc.php
* Colado informações geradas no navegador para este arquivo.
touch db.inc.php
* Colado informações geradas no navegador para este arquivo.
CONTINUE
chown www-data logs/ temp/
rm -rf /var/www/webmail/installer

Configuração das Vlans no Switch

telnet 192.168.1.241
create vlan epsilonouro tag 501
create vlan epsilonprata tag 502
create vlan epsilonbronze tag 503
create vlan epsilonap tag 504
config vlan epsilonouro add tagged 1:21-26
config vlan epsilonprata add tagged 1:21-26
config vlan epsilonbronze add tagged 1:21-26
config vlan epsilonap add tagged 1:21-26
save

nao é necessário deixar o Switch configurado o mesmo deve ser ativo via telnet no momento do cadastro do cliente

Configuração do Dhcp

  • configurado arquivo vi /etc/dhcp3/dhcpd.conf
default-lease-time 14400;
max-lease-time 86400;
#ouro
subnet 172.20.1.0 netmask 255.255.255.0 {
     range 172.20.1.1 172.20.1.253;
     option subnet-mask 255.255.255.0;
     option broadcast-address 172.20.1.255;
     option routers 172.20.1.254;
     option domain-name "ouro.epsilon.sj.ifsc.edu.br";
     option domain-name-servers 172.20.1.254;
}
#prata
subnet 172.20.2.0 netmask 255.255.255.0 {
     range 172.20.2.1 172.20.2.253;
     option subnet-mask 255.255.255.0;
     option broadcast-address 172.20.2.255;
     option routers 172.20.2.254;
     option domain-name "prata.epsilon.sj.ifsc.edu.br";
     option domain-name-servers 172.20.2.254;
}
#bronze 
subnet 172.20.3.0 netmask 255.255.255.0 {
     range 172.20.3.1 172.20.3.253;
     option subnet-mask 255.255.255.0;
     option broadcast-address 172.20.3.255;
     option routers 172.20.3.254;
     option domain-name "bronze.epsilon.sj.ifsc.edu.br";
     option domain-name-servers 172.20.3.254;
}
#wifi 
subnet 172.20.4.0 netmask 255.255.255.0 {
     range 172.20.4.1 172.20.4.253;
     option subnet-mask 255.255.255.0;
     option broadcast-address 172.20.4.255;
     option routers 172.20.4.254;
     option domain-name "wifi.epsilon.sj.ifsc.edu.br";
     option domain-name-servers 172.20.4.254;
}

Hotspot

  • Baixado nova versão do Hostpot
wget http://www.sj.ifsc.edu.br/~msobral/IER/pi/NoCatAuth-nightly.tar.gz

Salvo no diretorio /usr/local/NoCatAuth-nightly

01/12/2009

Execução da parte física de Cabeamento

  • Padrão de Cabeamento: 568A.
  • Instalado PathPanel do Armário Secundário.
  • Instalado PathPanel que liga o Switch no Armário Principal.
  • Lançados dois cabos entre o Armário Principal e o Secundário.
  • Lançados dois cabos do Armário Secundário para as tomadas.
  • Instaladas duas tomadas e colocados os espelhos.
  • Identificados os cabos, as portas e tomadas.
  • Feita a planta baixa da distribuição das tomadas dos estandes, armário de telecomunicações, tubulação e cabos.
  • Feita a vista frontal do armário indicando a utilização de cada porta.
  • Realizados testes de certificação nos cabos e alguns apresentaram erros. Serão refeitos.

Script para monitoramento do servidor

#!/bin/bash
data=`date`
echo " "
echo "RELATORIO DIARIO SERV EPSILON"
echo " "
a=`ifconfig -a`
echo "-------------------------------------------------"
echo "Configuracoes de Rede:"
echo "-------------------------------------------------"
echo " "
echo "$a"
echo " "
echo "-------------------------------------------------"
echo "Roteamento"
b=`route -n`
echo "-------------------------------------------------"
echo " "
echo "$b"
echo " "
echo "-------------------------------------------------"
echo "Firewall"
echo "-------------------------------------------------"
echo " "
c=`iptables -L`
echo " "
echo "$c"
echo " "
echo "-------------------------------------------------"
echo "Processador"
echo "-------------------------------------------------"
echo " "
cpu=`cat /proc/cpuinfo | grep name | cut -d ":" -f2`
echo "Processador: $cpu"
usocpu=`top -b -n1 | grep Cpu`
echo " "
echo "Uso do processador: $usocpu"
echo " "
echo "-------------------------------------------------"
echo "Espaco em disco"
echo "-------------------------------------------------"
echo " "
a=`df`
echo "$a"
echo " "
echo "-------------------------------------------------"
echo "Memoria"
echo "-------------------------------------------------"
echo " "
a=`free | grep Mem | cut -d " " -f 9`
memoriatotal=`echo "scale=2;$a/1024" | bc`
echo "Memoria Total = $memoriatotal Mb"
echo " "
a=`free | grep Mem | cut -d " " -f 14`
memoriausada=`echo "scale=2;$a/1024" | bc`
echo "Memoria Usada = $memoriausada Mb"
echo " "
a=`free | grep Mem | cut -d " " -f 20`
memorialivre=`echo "scale=2;$a/1024" | bc`
echo "Memoria Livre = $memorialivre Mb"
echo " "
a=`free | grep Swap | cut -d " " -f 7`
swaptotal=`echo "scale=2;$a/1024" | bc`
echo "Swap Total= $swaptotal Mb"
echo " "
a=`free | grep Swap | cut -d " " -f 13`
swapusada=`echo "scale=2;$a/1024" | bc`
echo "Swap Usada= $swapusada Mb"
echo " "
a=`free | grep Swap | cut -d " " -f 17`
swaplivre=`echo "scale=2;$a/1024" | bc`
echo "Swap Livre= $swaplivre Mb"
echo " "
echo "-------------------------------------------------"
echo "Usuarios"
echo "-------------------------------------------------"
echo " "
usuariosnum=`w |grep -v user | grep -v USER|wc -l`
usuarios=`last -a | cut -d " " -f 1 | head -7 | grep -v reboot |grep -v tmp`
echo "Usuarios conectados no momento: $usuariosnum"
echo "Ultimos usuarios conectados:"
echo "$usuarios"
echo " "
echo "--------------------------------------------------"
echo "Processos"
echo "--------------------------------------------------"
echo " "
processosnum=`ps -A f | wc -l`
echo "Estavam sendo executados $processosnum processos:"
echo " "
processos=`ps -A f`
echo "$processos"
echo " "

02/12/2009

Configuração SSL (Transmissão segura de dados)

  • Instalando pacotes necessários
apt-get install openssl ssl-cert
  • Habilitado Módulo SSL no Apache2
a2enmod ssl
  • Criando Certificado
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf apache.pem
  • Movendo e mudando a permissão do arquivo
mv apache.pem /etc/apache2/apache.pem
chmod 600 /etc/apache2/apache.pem
  • Criando arquivo VirtualHost
vim /etc/apache2/sites-enablesd/ssh
NameVirtualHost *:443
<VirtualHost *:443 >
       ServerName epsilon.sj.ifsc.edu.br
       ServerAdmin webmaster@localhost
       CustomLog /var/log/apache2/access.log combined
       SSLEngine on
       ServerSignature On
       SSLCertificateFile /etc/apache2/apache.pem
       DocumentRoot /var/www
       <Directory />
         Options FollowSymLinks
         AllowOverride None
       </Directory>
       <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
       </Directory>
       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       <Directory "/usr/lib/cgi-bin">
               AllowOverride None
               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
               Order allow,deny
               Allow from all
       </Directory>
       ErrorLog /var/log/apache2/error.log
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
       CustomLog /var/log/apache2/access.log combined
   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>
</VirtualHost>
  • Redirecionamento de portas
vim /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
    RedirectMatch ^/$ https://epsilon.sj.ifsc.edu.br/
</VirtualHost>
  • Habilitando o site com SSH
a2ensite ssl
  • Reiniciando o apache
/etc/init.d/apache2 restart

Configurado Hotspot

cd NoCatAuth-nightly
make gateway
make PREFIX=/usr/local/nocat/authserv authserv

Após esses comandos, o "gateway" estará instalado em /usr/local/nocat, e o "authserv" estará em "/usr/local/nocat/authserv". Execute em seguida o seguinte comando:

make PREFIX=/usr/local/nocat/authserv pgpkey

Editado o arquivo de configuração do "gateway": /usr/local/nocat/nocat,conf. Atente para os seguintes parâmetros de configuração:

AuthServiceAddr endereço_IP_do_gateway
LogoutURL       http://$AuthServiceAddr/logout.html
AllowedWebHosts endereço_IP_do_gateway
RouteOnly 1

Executado o gateway, usando este comando:

/usr/local/nocat/bin/gateway

Editado o arquivo de configuração do "authserv": /usr/local/nocat/authserv/nocat,conf. Atente para os seguintes parâmetros de configuração:

DocumentRoot    /usr/local/nocat/authserv/htdocs
DataSource      Passwd
UserFile            /usr/local/nocat/authserv/etc/passwd
GroupUserFile       /usr/local/nocat/authserv/etc/group
GroupAdminFile    /usr/local/nocat/authserv/etc/groupadm
LocalGateway    endereço_IP_do_gateway

Configurado o Apache para que possa executar o script CGI do authserv. A seguinte linha foi incluída na configuração do servidor default do Apache

Include /usr/local/nocat/authserv/httpd.conf

Copiado o arquivo /usr/local/nocat/authserv/trustedkeys.gpg para o diretório /usr/local/nocat/pgp. Em seguida executado:

chown -R www-data /usr/local/nocat/authserv/trustedkeys.gpg 
chown -R www-data /usr/local/nocat/authserv/pgp
chmod 600 chown -R www-data /usr/local/nocat/pgp

Adicionado usuários ao authserv

/usr/local/nocat/authserv/bin/admintool -c usuário senha
/usr/local/nocat/authserv/bin/admintool -a usuário Nome_de_um_grupo

Testado a instalação.Colocamos um computador na rede protegida (rede interna do NoCat), e acessamos algum sítio. Vimos a página de login do NoCat. Forneçemos o usuário e senha cadastrados no passo 9, e vimos o NoCat autorizar o acesso.

Instalaçao do Perl

apt-get install libapache2-mod-perl2 libnet-netmask-perl