Mudanças entre as edições de "Projeto Integrador - 2009.2 - Equipe Epsilon"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(160 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
=24/11/2009=
+
=Soluçoes encontradas para o projeto=
 +
==Cabeamento Estruturado==
  
==Escolha do nome da equipe = Épsilon==
+
===Execução da parte física de Cabeamento===
  
==Instalação do Servidor Ubuntu versão 9.10==
+
* Padrão de Cabeamento: 568A.
                         
+
 
* Usado o servidor DHCP do Laboratório Redes I para atualização dos serviços do servidor
+
* Instalado PathPanel do Armário Secundário.
 +
 
 +
* Instalado PathPanel que liga o Switch no Armário Principal.
 +
 
 +
* Instalado o AP no armário principal.
 +
 
 +
* Feito no Laboratório de Meios o cabo que liga o Path Panel ao Acess Point.
 +
 
 +
* 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.
 +
 
 +
* Feito os cordões de manobra para interligações.
 +
 
 +
* Identificados os cabos, as portas e tomadas no Laboratório de Meios e no Laboratório de Redes I.
 +
 
 +
* 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.
 +
 
 +
* Feita a lista de materiais.
 +
 
 +
* Realizados testes de certificação nos cabos e todos ok.
 +
 
 +
==Instalação de Equipamentos de Rede==
 +
 
 +
* Instalado o switch D-Link 3526 no laboratório de Meios.
 +
 
 +
* Instalar os Access Points, definindo suas configurações de rede.
 +
 
 +
* Configurado a VLAN do AP , pois as demais serão configuradas pelo script.
 +
 
 +
Laboratório de Redes
 +
 
 +
telnet 192.168.1.241
 +
create vlan epsilonap tag 501
 +
config vlan epsilonap add tagged 26
 +
config vlan epsilonap add tagged 24
 +
save
 +
 
 +
Laboratório de Meios
 +
 
 +
telnet 192.168.1.240
 +
create vlan epsilonap tag 501
 +
config vlan epsilonap add untagged 24
 +
config vlan epsilonap add tagged 26
 +
save
  
sudo apt-get update
+
*Fica configurado somente a Vlan do AP, as demais Vlas são configuradas na hora do cadastro atravez do script. Lembra do que os clientes Wifi usam a mesma vlan , já os clientes dos estades usam Vlans diferentes para isolar sua rede.
  
==Instalando ssh==
+
===Diagrama de Rede Parte lógica===
  
sudo apt-get install ssh
+
[[Imagem:Diagrama1.png]]
  
==Configuração de teste na interface eth0==
+
===Diagrama de Rede Parte Física===
sudo ifconfig 200.135.37.115 netmask 255.255.255.0
 
  
==Discussão do desenvolvimento do projeto==
+
[[Imagem:Diagramacerto.png]]
  
==Teste do GRAPHVIZ==
+
===Configurado Nocat===
  
<graphviz>
+
* Baixado versão do Hostpot
 
   
 
   
  digraph PI {
+
  wget http://www.sj.ifsc.edu.br/~msobral/IER/pi/NoCatAuth-nightly.tar.gz
   
+
 
  CAB -> IER
+
Salvo no diretorio /usr/local/NoCatAuth-nightly
  IER -> GAR
+
 
  GAR -> PRC
+
cd NoCatAuth-nightly
  IER -> PRC
+
make gateway
}
+
make PREFIX=/usr/local/nocat/authserv authserv
</graphviz>
+
 
 +
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 200.135.37.115
 +
LogoutURL      http://$AuthServiceAddr/logout.html
 +
AllowedWebHosts 200.135.37.115
 +
RouteOnly 1
  
=25/11/2009=
+
Executado o gateway, usando este comando:
  
==Apresentação do projeto, parte de IER==
+
/usr/local/nocat/bin/gateway
  
==Configurado as interfaces==
+
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    200.135.37.115
 +
InternalDevice vlan501
 +
 
 +
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
 
   
 
   
  eth0
+
  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 alguma pagina web. Vimos a página de login do NoCat.
 +
Fornecemos o usuário e senha cadastrados no passo 9, e vimos o NoCat autorizar
 +
o acesso.
 +
 
 +
==Gerencia de Rede==
 +
 
 +
===Sistema Operacional===
 +
 
 +
* Instalação do Ubuntu Serv versão 9.10 Enterprise
 +
 
 +
* Particionamento do HD:
 +
/dev/sda2 - 10GB - /
 +
/dev/sda3 - 09GB - /home
 +
 
 +
* Usuários adminepsilon e adminepsilon2
 +
 
 +
===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
 +
 
 +
 
 +
 
 +
===Configurado as interfaces===
 +
 +
# Interface externa
 +
auto eth0
 +
iface eth0 inet static
 
  address 200.135.37.115
 
  address 200.135.37.115
 
  netmask 255.255.255.0
 
  netmask 255.255.255.0
Linha 43: Linha 163:
 
  broadcast 200.135.37.255
 
  broadcast 200.135.37.255
 
  gateway 200.135.37.1
 
  gateway 200.135.37.1
  dns-nameserves 200.135.37.1
+
  dns-nameservers 200.135.37.1
 
+
# Interface Interna
  eth1
+
auto eth1
  address 172.115.1.1  
+
  iface eth1 inet static
 +
  address 172.24.1.1
 +
netmask 255.255.255.0
 +
network 172.20.1.0
 +
broadcast 172.20.1.255
 +
#dns-nameservers 200.135.37.1
 +
#gateway 200.135.37.1
 +
# Interface Virtual
 +
auto vlan1
 +
iface vlan1 inet static
 +
address 192.168.1.1
 +
netmask 255.255.255.0
 +
network 192.168.1.0
 +
vlan_raw_device eth1
 +
#Vlan 501 - AP
 +
auto vlan501
 +
iface vlan501 inet static
 +
address 10.10.0.1
 
  netmask 255.255.255.0
 
  netmask 255.255.255.0
  network 172.115.1.0
+
  vlan_raw_device eth1
  broadcast 172.115.1.255
+
  #Vlan 599 - teste
 
+
auto vlan599
  eth1.1
+
  iface vlan599 inet static
  address 192.168.1.220
+
  address 192.168.0.250
 
  netmask 255.255.255.0
 
  netmask 255.255.255.0
 +
vlan_raw_device eth2
  
==Instalado Hotspot no servidor==
+
===Configurado resolv.conf===
 
 
wget http://nocat.net/downloads/NoCatAuth/NocatAuth-nightty.tgz
 
 
 
==Configurado resolv.conf==
 
  
 
  vim /etc/resolv.conf
 
  vim /etc/resolv.conf
Linha 66: Linha 200:
 
  nameserver 200.135.37.65
 
  nameserver 200.135.37.65
  
* Sequencia de comandos para o hotspot
+
===Rotas===
 
tar zvxf NocatAuth-x.xx.tar.gz
 
cd NocatAuth-x.xx
 
make gateway
 
cd /usr/local/nocat
 
vim nocat.conf
 
  *verifcado linhas
 
  22 alterado GatewayName Epsilon 
 
  125
 
  130
 
  141
 
  150
 
  160
 
  168
 
  176
 
  183 alterado como RoteOnly 1
 
  193
 
  201 alterado como MemberOnly 1
 
  211
 
  226
 
  
* Hotspot ainda precisa ser configurado em alguns tópicos.
+
route -n
 +
Kernel IP routing table
 +
Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
 +
200.135.37.0    0.0.0.0        255.255.255.0  U    0      0        0 eth0
 +
172.24.1.0      0.0.0.0        255.255.255.0  U    0      0        0 eth1
 +
10.10.0.0      0.0.0.0        255.255.255.0  U    0      0        0 vlan501
 +
192.168.1.0    0.0.0.0        255.255.255.0  U    0      0        0 vlan1
 +
0.0.0.0        200.135.37.1    0.0.0.0        UG    100    0        0 eth0
  
=26/11/2009=
+
===Instalação de serviços===
  
==Instalação de serviços==
+
* APACHE : é o servidor web mais utilizado no mundo
 
 
* APACHE
 
 
   
 
   
 
  sudo apt-get install apache2
 
  sudo apt-get install apache2
  
* DHCP
+
* 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
 
  sudo apt-get install dhcpd3-server
  
* PHP
+
* 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
 
  sudo apt-get install php5 php5-mysql
  
* 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
 
  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
+
* 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
 
  sudo apt-get install bind9
  
* POSTFIX e IMAP
+
* 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
 
  sudo apt-get install postfix dovecot-imapd
 
+
* CACTI
+
* 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
 
  sudo apt-get install cacti
  
==Configuração DNS==
+
===Configuração DNS===
  
 
configurado arquivo /etc/bind/named.conf.local
 
configurado arquivo /etc/bind/named.conf.local
Linha 178: Linha 301:
 
  100    IN    PTR    www.epsilon.sj.ifsc.edu.br.
 
  100    IN    PTR    www.epsilon.sj.ifsc.edu.br.
  
==Editado o arquivo /etc/network/interfaces==
+
===Adicionado ao Crontab a execução do script de que fará backup e relatorios e a sincronização do relógio do servidor:===
  
  # The loopback network interface
+
vim /etc/crontab
  auto lo
+
  iface lo inet loopback
+
  ## Script para Relatorios, Backup e arquivo texto dos arquivos editados
 +
21 22  * * * root      /backup/scripts/script.sh
 +
01 12  * * * root      /backup/scripts/script.sh
 +
 +
  00 12    * * 6  root    ntpdate ntp.cais.rnp.br
 +
  00 17    * * 1  root    ntpdate ntp.cais.rnp.br
  
# Interface externa
+
===Script que desencadeia a execução de outros serviços===
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
+
  vim /backup/scripts/script.sh
  
  auto eth1
+
  #!/bin/bash
  iface eth1 inet static
+
        address 172.20.1.1
+
  #Relatório Diário
        netmask 255.255.255.0
+
nome=relatorio-`date +%Y_%m_%d-%H_%M`
        network 172.20.1.0
+
touch /backup/scripts/$nome
 
+
bash /backup/scripts/relat.sh >> /backup/scripts/$nome
  # Interface Virtual
+
cat /backup/scripts/$nome | mail -s "$nome" adminepsilon
 +
rm /backup/scripts/$nome
 +
 +
 +
## Backup TXT dos arquivos
 +
bash /backup/scripts/txback.sh
 +
a=`ls /backup/textos/ | tail -1`
 +
cat /backup/textos/$a | mail -s "Backup `date +%Y_%m_%d-%H_%M`" adminepsilon
 +
 +
 +
  ## Backup dos arquivos /etc /var/log /var/www /usr
 +
bash /backup/scripts/scback.sh
 +
echo "Criado backup das pastas /etc /var/log /var/www /usr, neste momento no diretório /backup/arquivos" | mail -s "Backup de arquivos realizado" adminepsilon
  
auto vlan1
+
====Relatório diário====
iface vlan1 inet static
 
        address 192.168.1.220
 
        netmask 255.255.255.0
 
        vlan_raw_device eth1
 
  
  # Vlan 501
+
  vim /backup/scripts/relat.sh
  
  auto vlan501
+
  #!/bin/bash
  iface vlan501 inet static
+
data=`date`
        address 172.21.1.1
+
echo " "
          netmask 255.255.255.0
+
  echo "RELATORIO DIARIO SERV EPSILON"
        vlan_raw_device eth1
+
echo " "
 
+
a=`ifconfig -a`
  # Vlan 502
+
echo "-------------------------------------------------"
 
+
echo "Configuracoes de Rede:"
  auto vlan502
+
echo "-------------------------------------------------"
  iface vlan502 inet static
+
echo " "
        address 172.22.1.1
+
echo "$a"
        netmask 255.255.255.0
+
echo " "
        vlan_raw_device eth1
+
echo "-------------------------------------------------"
 
+
echo "Roteamento"
  # Vlan 503
+
b=`route -n`
 
+
echo "-------------------------------------------------"
  auto vlan503
+
echo " "
  iface vlan503 inet static
+
echo "$b"
        address 172.23.1.1
+
echo " "
        netmask 255.255.255.0
+
echo "-------------------------------------------------"
        vlan_raw_device eth1
+
echo "Firewall"
 
+
echo "-------------------------------------------------"
  # Vlan 504
+
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 " "
  
auto vlan504
+
====Backup TXT dos arquivos====
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:==
+
vim /backup/scripts/txback.sh
  
 
  #!/bin/bash
 
  #!/bin/bash
 +
echo "Criando arquivo de backup txt..."
 
  nome=backup-txt-`date +%Y_%m_%d-_%H_%M`.txt
 
  nome=backup-txt-`date +%Y_%m_%d-_%H_%M`.txt
 
  touch $nome
 
  touch $nome
 +
sleep 2
 
  echo "**** INTERFACES DE REDE ****" >> $nome
 
  echo "**** INTERFACES DE REDE ****" >> $nome
 
  echo >> $nome
 
  echo >> $nome
Linha 275: Linha 469:
 
  cat /etc/bind/37.135.200.in-addr.arpa >> $nome
 
  cat /etc/bind/37.135.200.in-addr.arpa >> $nome
 
  echo >> $nome
 
  echo >> $nome
 +
echo "**** SNMP ****" >> $nome
 +
echo >> $nome
 +
cat /etc/snmp/snmpd.conf >> $nome
 +
echo >> $nome
 +
echo "**** CRONTAB ****" >> $nome
 +
echo >> $nome
 +
cat /etc/crontab >> $nome
 +
echo >> $nome
 +
echo >> $nome
 +
echo "**** FIREWALL ****" >> $nome
 +
echo >> $nome
 +
cat /etc/init.d/firewall >> $nome
 +
echo >> $nome
 +
mv $nome /backup/textos
 +
echo "Arquivo txt de backup criado com o nome de $nome."
 +
sleep 1
 +
echo "Este arquivo está salvo no diretorio /backup/textos"
  
==Adicionado ao Crontab a execução do script de backup simples e a sincronização do relógio do servidor:==
+
====Backup dos arquivos====
  
  vim /etc/crontab
+
  vim /backup/scripts/
### Backup 1 - Texto
+
 
20 22    * * *  root    /backup/scripts/txback.sh bash
+
  #!/bin/bash
  00 12    * * *  root    /backup/scripts/txback.sh bash
+
  DATA=`date +%Y%m%d-%H%M`
  ### Backup 1 - Texto
+
  ARQUIVO="backuparquivos-$DATA"
  20 22    * * * root    /backup/scripts/txback.sh bash
+
  DIRETORIOS="/etc /usr /var/log /var/www"
  00 12    * * *  root    /backup/scripts/txback.sh bash
+
  tar zcf /backup/arquivos/$ARQUIVO $DIRETORIOS
  
=27/11/2009=
 
==Configuração Cacti==
 
 
===Configuração SNMP===
 
===Configuração SNMP===
  
Linha 306: Linha 515:
  
 
===Configuração no Cacti===
 
===Configuração no Cacti===
====Devices Servidor Epsilon====
+
 
  Description: Servidor Epsilon
 
  Description: Servidor Epsilon
 
  Hostname: 200.135.37.115
 
  Hostname: 200.135.37.115
Linha 328: Linha 537:
 
   *SNMP - Interface Statistics  
 
   *SNMP - Interface Statistics  
 
   *Unix - Get Mounted Partitions  
 
   *Unix - Get Mounted Partitions  
====Graph Trees====
+
 
 +
Graph Trees
 
  Parent Item: root
 
  Parent Item: root
 
  Tree Item Type: Host
 
  Tree Item Type: Host
 
  Host: Servidor Epsilon: 200.135.37.115
 
  Host: Servidor Epsilon: 200.135.37.115
 
  Graph Grouping Style: Graph Template
 
  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
 +
iptables -t nat -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
 +
#Libera o acesso ao Hotspot
 +
iptables -I INPUT 3 -p tcp -i vlan501 --dport 5280 -j ACCEPT
 +
 +
/etc/init.d/firewall bash
 +
 +
===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 do Dhcp===
 +
 +
* configurado arquivo /etc/dhcp3/dhcpd.conf
 +
 +
vim /etc/dhcp3/dhcpd.conf
 +
 +
default-lease-time 14400;
 +
max-lease-time 86400;
 +
#wifi   
 +
subnet 10.10.0.0 netmask 255.255.255.0 {
 +
      range 10.10.0.2 10.10.0.254;
 +
      option subnet-mask 255.255.255.0;
 +
      option broadcast-address 10.10.0.255;
 +
      option routers 10.10.0.1;
 +
      option domain-name "wifi.epsilon.sj.ifsc.edu.br";
 +
      option domain-name-servers 10.10.0.1;
 +
}
 +
 +
subnet 192.168.0.0 netmask 255.255.255.0 {
 +
        range 192.168.0.2 192.168.0.60;
 +
        option subnet-mask 255.255.255.0;
 +
        option broadcast-address 192.168.0.255;
 +
        option routers 200.135.37.115;
 +
        option domain-name "epsilon@sj.ifsc.edu.br";
 +
        option domain-name-servers 200.135.37.115;
 +
 +
}
 +
 +
===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
 +
 +
===Configuração do TC===
 +
 +
Script para configuração do tc:
 +
 +
/etc/init.d/cntrltrafego
 +
 +
#!/bin/bash
 +
TAXA=4000 # 4Mbps
 +
UMPOR=`expr $TAXA / 100`
 +
OURO=`expr $UMPOR \* 60` # 60% da taxa de transmissao
 +
PRATA=`expr $UMPOR \* 25` # 25% da taxa de transmissao
 +
BRONZE=`expr $UMPOR \* 15` # 15% da taxa de transmissao
 +
DEV=eth1
 +
tc qdisc del dev ${DEV} root 2>/dev/null
 +
tc qdisc add dev ${DEV} root handle 1:0 htb default 12
 +
tc class add dev ${DEV} parent 1:0 classid 1:1 htb rate ${TAXA}kbps ceil ${TAXA}kbps
 +
tc class add dev ${DEV} parent 1:1 classid 1:10 htb rate ${OURO}kbps ceil ${TAXA}kbps
 +
tc class add dev ${DEV} parent 1:1 classid 1:11 htb rate ${PRATA}kbps ceil ${TAXA}kbps
 +
tc class add dev ${DEV} parent 1:1 classid 1:12 htb rate ${BRONZE}kbps ceil ${TAXA}kbps
 +
tc qdisc add dev ${DEV} parent 1:10 handle 10: sfq perturb 10
 +
tc qdisc add dev ${DEV} parent 1:11 handle 11: sfq perturb 10
 +
tc qdisc add dev ${DEV} parent 1:12 handle 12: sfq perturb 10
 +
# 172.21.1.0/24 REDE OURO
 +
# 172.22.1.0/24 REDE PRATA
 +
# 172.23.1.0/24 REDE BRONZE
 +
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.0/18 flowid 1:10
 +
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.64.0/18 flowid 1:11
 +
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.128.0/18 flowid 1:12
 +
 +
==Programação para Redes de Computadores==
 +
 +
* Desenvolvido script para configurar as interfaces e dhcp no servidor
 +
 +
* Vlans no switch são criadas via telnet através da aplicação php
 +
 +
* Usuários da rede Wifi são configurados no hotspot através da aplicação php

Edição atual tal como às 13h55min de 17 de dezembro de 2009

Soluçoes encontradas para o projeto

Cabeamento Estruturado

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.
  • Instalado o AP no armário principal.
  • Feito no Laboratório de Meios o cabo que liga o Path Panel ao Acess Point.
  • 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.
  • Feito os cordões de manobra para interligações.
  • Identificados os cabos, as portas e tomadas no Laboratório de Meios e no Laboratório de Redes I.
  • 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.
  • Feita a lista de materiais.
  • Realizados testes de certificação nos cabos e todos ok.

Instalação de Equipamentos de Rede

  • Instalado o switch D-Link 3526 no laboratório de Meios.
  • Instalar os Access Points, definindo suas configurações de rede.
  • Configurado a VLAN do AP , pois as demais serão configuradas pelo script.

Laboratório de Redes

telnet 192.168.1.241
create vlan epsilonap tag 501
config vlan epsilonap add tagged 26
config vlan epsilonap add tagged 24
save

Laboratório de Meios

telnet 192.168.1.240
create vlan epsilonap tag 501
config vlan epsilonap add untagged 24
config vlan epsilonap add tagged 26
save
  • Fica configurado somente a Vlan do AP, as demais Vlas são configuradas na hora do cadastro atravez do script. Lembra do que os clientes Wifi usam a mesma vlan , já os clientes dos estades usam Vlans diferentes para isolar sua rede.

Diagrama de Rede Parte lógica

Diagrama1.png

Diagrama de Rede Parte Física

Diagramacerto.png

Configurado Nocat

  • Baixado 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

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 200.135.37.115
LogoutURL       http://$AuthServiceAddr/logout.html
AllowedWebHosts 200.135.37.115
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    200.135.37.115
InternalDevice vlan501

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 alguma pagina web. Vimos a página de login do NoCat. Fornecemos o usuário e senha cadastrados no passo 9, e vimos o NoCat autorizar o acesso.

Gerencia de Rede

Sistema Operacional

  • Instalação do Ubuntu Serv versão 9.10 Enterprise
  • Particionamento do HD:
/dev/sda2 - 10GB - /
/dev/sda3 - 09GB - /home
  • Usuários adminepsilon e adminepsilon2

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


Configurado as interfaces

# 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-nameservers 200.135.37.1
# Interface Interna
auto eth1
iface eth1 inet static
address 172.24.1.1
netmask 255.255.255.0
network 172.20.1.0
broadcast 172.20.1.255
#dns-nameservers 200.135.37.1
#gateway 200.135.37.1
# Interface Virtual
auto vlan1
iface vlan1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
vlan_raw_device eth1
#Vlan 501 - AP
auto vlan501
iface vlan501 inet static
address 10.10.0.1
netmask 255.255.255.0
vlan_raw_device eth1 
#Vlan 599 - teste 
auto vlan599
iface vlan599 inet static
address 192.168.0.250
netmask 255.255.255.0
vlan_raw_device eth2

Configurado resolv.conf

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

Rotas

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
200.135.37.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.24.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 vlan501
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vlan1
0.0.0.0         200.135.37.1    0.0.0.0         UG    100    0        0 eth0

Instalação de serviços

  • APACHE : é o servidor web mais utilizado 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.

Adicionado ao Crontab a execução do script de que fará backup e relatorios e a sincronização do relógio do servidor:

vim /etc/crontab

## Script para Relatorios, Backup e arquivo texto dos arquivos editados
21 22   * * * root      /backup/scripts/script.sh
01 12   * * * root      /backup/scripts/script.sh

00 12    * * 6   root    ntpdate ntp.cais.rnp.br
00 17    * * 1   root    ntpdate ntp.cais.rnp.br

Script que desencadeia a execução de outros serviços

vim /backup/scripts/script.sh
#!/bin/bash

#Relatório Diário
nome=relatorio-`date +%Y_%m_%d-%H_%M`
touch /backup/scripts/$nome
bash /backup/scripts/relat.sh >> /backup/scripts/$nome
cat /backup/scripts/$nome | mail -s "$nome" adminepsilon
rm /backup/scripts/$nome


## Backup TXT dos arquivos
bash /backup/scripts/txback.sh
a=`ls /backup/textos/ | tail -1`
cat /backup/textos/$a | mail -s "Backup `date +%Y_%m_%d-%H_%M`" adminepsilon 


## Backup dos arquivos /etc /var/log /var/www /usr
bash /backup/scripts/scback.sh
echo "Criado backup das pastas /etc /var/log /var/www /usr, neste momento no diretório /backup/arquivos" | mail -s "Backup de arquivos realizado" adminepsilon

Relatório diário

vim /backup/scripts/relat.sh 
#!/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 " "

Backup TXT dos arquivos

vim /backup/scripts/txback.sh
#!/bin/bash
echo "Criando arquivo de backup txt..."
nome=backup-txt-`date +%Y_%m_%d-_%H_%M`.txt
touch $nome
sleep 2
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
echo "**** SNMP ****" >> $nome
echo >> $nome
cat /etc/snmp/snmpd.conf >> $nome
echo >> $nome
echo "**** CRONTAB ****" >> $nome
echo >> $nome
cat /etc/crontab >> $nome
echo >> $nome
echo >> $nome
echo "**** FIREWALL ****" >> $nome
echo >> $nome
cat /etc/init.d/firewall >> $nome
echo >> $nome
mv $nome /backup/textos
echo "Arquivo txt de backup criado com o nome de $nome."
sleep 1
echo "Este arquivo está salvo no diretorio /backup/textos"

Backup dos arquivos

vim /backup/scripts/
#!/bin/bash
DATA=`date +%Y%m%d-%H%M`
ARQUIVO="backuparquivos-$DATA"
DIRETORIOS="/etc /usr /var/log /var/www"
tar zcf /backup/arquivos/$ARQUIVO $DIRETORIOS

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

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
iptables -t nat -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
#Libera o acesso ao Hotspot
iptables -I INPUT 3 -p tcp -i vlan501 --dport 5280 -j ACCEPT
/etc/init.d/firewall bash

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 do Dhcp

  • configurado arquivo /etc/dhcp3/dhcpd.conf
vim /etc/dhcp3/dhcpd.conf

default-lease-time 14400;
max-lease-time 86400;
#wifi     
subnet 10.10.0.0 netmask 255.255.255.0 {
     range 10.10.0.2 10.10.0.254;
     option subnet-mask 255.255.255.0;
     option broadcast-address 10.10.0.255;
     option routers 10.10.0.1;
     option domain-name "wifi.epsilon.sj.ifsc.edu.br";
     option domain-name-servers 10.10.0.1;
}

subnet 192.168.0.0 netmask 255.255.255.0 {
       range 192.168.0.2 192.168.0.60;
       option subnet-mask 255.255.255.0;
       option broadcast-address 192.168.0.255;
       option routers 200.135.37.115;
       option domain-name "epsilon@sj.ifsc.edu.br";
       option domain-name-servers 200.135.37.115;

}

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

Configuração do TC

Script para configuração do tc:

/etc/init.d/cntrltrafego

#!/bin/bash
TAXA=4000 # 4Mbps
UMPOR=`expr $TAXA / 100`
OURO=`expr $UMPOR \* 60` # 60% da taxa de transmissao
PRATA=`expr $UMPOR \* 25` # 25% da taxa de transmissao
BRONZE=`expr $UMPOR \* 15` # 15% da taxa de transmissao
DEV=eth1
tc qdisc del dev ${DEV} root 2>/dev/null
tc qdisc add dev ${DEV} root handle 1:0 htb default 12
tc class add dev ${DEV} parent 1:0 classid 1:1 htb rate ${TAXA}kbps ceil ${TAXA}kbps
tc class add dev ${DEV} parent 1:1 classid 1:10 htb rate ${OURO}kbps ceil ${TAXA}kbps
tc class add dev ${DEV} parent 1:1 classid 1:11 htb rate ${PRATA}kbps ceil ${TAXA}kbps
tc class add dev ${DEV} parent 1:1 classid 1:12 htb rate ${BRONZE}kbps ceil ${TAXA}kbps
tc qdisc add dev ${DEV} parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev ${DEV} parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev ${DEV} parent 1:12 handle 12: sfq perturb 10
# 172.21.1.0/24 REDE OURO
# 172.22.1.0/24 REDE PRATA
# 172.23.1.0/24 REDE BRONZE
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.0/18 flowid 1:10
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.64.0/18 flowid 1:11
tc filter add dev ${DEV} protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.128.0/18 flowid 1:12

Programação para Redes de Computadores

  • Desenvolvido script para configurar as interfaces e dhcp no servidor
  • Vlans no switch são criadas via telnet através da aplicação php
  • Usuários da rede Wifi são configurados no hotspot através da aplicação php