Mudanças entre as edições de "Projeto Integrador - 2009.2 - Equipe Epsilon"
(→25/11) |
|||
(201 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | == | + | =Soluçoes encontradas para o projeto= |
+ | ==Cabeamento Estruturado== | ||
− | + | ===Execução da parte física de Cabeamento=== | |
− | * Instalação do | + | * 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=== | ||
+ | |||
+ | [[Imagem:Diagrama1.png]] | ||
+ | |||
+ | ===Diagrama de Rede Parte Física=== | ||
+ | |||
+ | [[Imagem: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 | * Usado o servidor DHCP do Laboratório Redes I para atualização dos serviços do servidor | ||
sudo apt-get update | sudo apt-get update | ||
− | + | ===Instalando ssh=== | |
sudo apt-get install 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"; | ||
+ | }; | ||
− | * Script | + | 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 |
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
Diagrama de Rede Parte Física
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