Sie sind auf Seite 1von 9

FAILOVER ENTRE PORTO DE VILA DO CONDE E PRDIO SEDE

FLVIO FERREIRA FIGUEIREDO ERISSON MAIA MARQUES

Fevereiro/2013

Controle de Verso

Controle do Documento Atualizaes Data Atualizao 21/02/2013

Autor Flvio Ferreira

Verso 1.0

Referncia

Revises Data Reviso

Revisor

Cargo

FAILOVER ENTRE PORTO DE VILA DO CONDE E PRDIO SEDE

Figura 1: Failover Servidores Envolvidos: Servidor em PVC: firewallpvc.cdp.com.br 192.168.2.253 201.90.19.39 funo: gateway, route, firewall, proxy, vpn client. Servidor na SEDE: vpnsede.cdp.com.br 192.168.4.115 200.164.71.108 200.174.176.195 funo: vpn server. Arquivos utilizados: failover Arquivo responsvel pelo monitoramento dos Links. failover.log Arquivo que registra tudo e salva em LOG. embratel.sh Arquivo responsvel por ativar o Link da Embratel. oi.sh Arquivo responsvel por retornar o Link da OI. firewall Liberar e/ou restringir acessos. Objetivo: O Failover entre os Links Oi e Embratel tem por objetivo manter o Porto de Vila do Conde operacional quando o Link principal ficar totalmente inoperante. Breve descritivo: A rede do Porto de Vila do Conde atualmente est conectada a Rede da CDP SEDE atravs de um Link de dados dedicado da OI com a velocidade de 2 Mbps, quando o Link apresentar instabilidade ou completa inoperncia, o acesso modificado automaticamente (failover) pelo sistema de monitoramento do arquivo failover que ser realizado uma VPN atravs do Link da Embratel de 1 Mbps para o servidor vpnsede.cdp.com.br, que ser feito atravs do arquivo embratel.sh, com isso toda e qualquer sada para internet ser feito pelo Link da Embratel.

Funcionamento: O arquivo failover ficar pingando 50 vezes para o IP do registro.br para verificar a conectividade do link princial da OI. Caso esse trfego seja interrompido por qualquer motivo, o script da embratel executado e com isso fazendo a devidas alteraes de rota de entrada e sada do servidor e ativando o Link da Embratel que vai se conectar via VPN na Sede (vpnsede.cdp.com.br) e receber o seguinte IP: 192.168.4.131 que o mesmo est liberado no Firewall para acessar os principais sistemas. Para que a redundncia funcione nos computadores clientes se faz necessrio que o gateway e proxy utilizados seja o 192.168.2.253. Abaixo segue o esquema da Rede/VPN:

Figura 2: Esquema da Rede PVC -> Sede Contedo dos arquivos:


failover: #!/bin/bash ###################################################################### # # Script: failover # Funcao: Executa a troca de link automtico entre OI x Embratel. # # Autores: Flvio Ferreira Figueiredo / Erisson Maia Marques # Data: 21/01/2013 #

# Versao: 1.0.0 # Ultima modificacao: 21/01/2013 # Modificacao realizada: Nenhuma. # # DATE=`date +%x` TIME=`date +%X` LOG="/root/failover.log" DIV="===== ===== =====" IP_WAN="www.registro.br" IP_OI="192.168.2.92" IP_EMB="201.90.19.33" CONN="embratel" echo "[$DATE $TIME] Iniciando verificacao de internet com o servidor $IP_WAN" >> $LOG echo "" >> $LOG echo $DIV >> $LOG while test "1"="1" do if (ping -I eth0 -c 50 $IP_WAN >> $LOG); then echo "" >> $LOG echo "[`date +%x` `date +%X`] Internet: ON !" >> $LOG echo "" >> $LOG if [ $CONN == oi ]; then (sh /root/oi.sh > /dev/null) CONN=embratel echo "[`date +%x` `date +%X`] Voltando com o link da OI" >> $LOG fi sleep 15 else if [ $CONN == embratel ]; then (sh /root/embratel.sh > /dev/null) CONN="oi" echo "rodou o script embratel e setou variavel $CONN " echo "" >> $LOG echo "[`date +%x` `date +%X`] Failover para Embratel !" >> $LOG echo $DIV >> $LOG echo "" >> $LOG else echo "Link da OI Fora! Operando com o link da Embratel!!!" >> $LOG fi fi done Embratel.sh: #!/bin/bash LOG="/var/log/failover/embratel.log" echo "[`date +%x` `date +%X`] Executando o script de redundncia Embratel!!!" >> $LOG route del default gw 192.168.2.254

route add default gw 201.90.19.33 sleep 05 pon tunnel sleep 05 iptables -t nat -s 192.168.4.115 -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE squid3 -k reconfigure Oi.sh: LOG="/var/log/failover/oi.log" echo "[`date +%x` `date +%X`] Executando o script que retorana para oi. Link Ok!!!" >> $LOG route del default gw 201.90.19.33 route del -net 192.168.4.0/24 dev ppp0 poff tunnel route add default gw 192.168.2.254 iptables -t nat -F squid3 -k reconfigure

Firewall:
#!/bin/sh #Configurao do Firewall atravs do iptables #Autoria do Script #"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" #"| Script de Firewall - IPTABLES" #"| Criado por: Flvio Ferreira Figueiredo" #"| flavio@flavioferreira.com.br" #"| Uso: /etc/init.d/firewall #"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" #Interfaces de Rede LAN=eth0 WAN=eth1 REDE="192.168.2.0/16" PROGRAMA="/etc/init.d/firewall" IPTABLES="/sbin/iptables" # Os diversos mdulos do iptables so chamdos atravs do modprobe modprobe ip_tables modprobe iptable_nat modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ipt_LOG modprobe ipt_REJECT modprobe ipt_MASQUERADE modprobe ipt_state modprobe ipt_multiport modprobe iptable_mangle modprobe ipt_tos modprobe ipt_limit modprobe ipt_mark modprobe ipt_MARK modprobe ip_gre

case "$1" in start) #mensagem de inicializao echo "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" echo echo "=========================================================|" echo "| INICIANDO A CONFIGURAO DO FIREWALL NETFILTER ATRAVS |" echo "| DO IPTABLES |" echo "=========================================================|" echo echo ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" $IPTABLES -F $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -t mangle -F $IPTABLES -t nat -F $IPTABLES -X $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT # ativar o redirecionamento no arquivo ip_forward echo "1" > /proc/sys/net/ipv4/ip_forward echo "ativado o redirecionamento no arquivo ip_forward" echo "ON .................................................[ OK ]" #habilitando o fluxo interno entre os processos iptables -I INPUT -i lo -j ACCEPT iptables -I OUTPUT -o lo -j ACCEPT echo "Ativado conexoes ja estabilizadas" echo "ON .................................................[ OK ]" #Aceita conexoes ja estabilizadas iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT iptables -I INPUT -m state --state RELATED -j ACCEPT iptables -I OUTPUT -p icmp -o $LAN -j ACCEPT iptables -I OUTPUT -p icmp -o $WAN -j ACCEPT iptables -I INPUT -p icmp -j ACCEPT iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT echo "ativado as portas abertas para estabelecer conexes" echo "ativado a liberao das portas principais do servidor $HOSTNAME" echo "ON .................................................[ OK ]" #Abre para Rede Local iptables -A INPUT -p tcp --syn -s 192.168.2.0/255.255.255.0 -j ACCEPT iptables -A INPUT -p tcp --syn -s 192.168.4.0/255.255.255.0 -j ACCEPT #SSH INTERNO iptables -I INPUT -p tcp -i $LAN --dport 22 -j ACCEPT iptables -I OUTPUT -p tcp -o $LAN --dport 22 -j ACCEPT

#SSH2 EXTERNO iptables -A INPUT -p tcp -i $WAN -s 0.0.0.0/0 --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -o $WAN -s 0.0.0.0/0 --dport 22 -j ACCEPT #Habilitando porta de DNS iptables -A INPUT -p tcp -s 0/0 --dport 53 -j ACCEPT iptables -A INPUT -p udp -s 0/0 --source-port 53 -j ACCEPT # Liberar NF iptables -A INPUT -p tcp -i eth1 --dport 1124 -j ACCEPT iptables -A INPUT -p tcp -i ppp+ --dport 1124 -j ACCEPT iptables -A OUTPUT -p tcp -o $WAN --dport 1124 -j ACCEPT iptables -A OUTPUT -p tcp -o ppp+ --dport 1124 -j ACCEPT #Liberando FINPAC iptables -A INPUT -p tcp --dport 1521 -j ACCEPT iptables -A INPUT -p tcp -i ppp0 --source-port 1521 -j ACCEPT iptables -A INPUT -p tcp --source-port 1521 -j ACCEPT iptables -A INPUT -p tcp -s 0.0.0.0/0 --source-port 1521 -j ACCEPT iptables -A OUTPUT -p tcp --dport 1521 -j ACCEPT iptables -A OUTPUT -p udp --dport 1521 -j ACCEPT #proxy iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #Lendo liberando entrada e saida do protocolo GRE iptables -A INPUT -j ACCEPT -p gre iptables -A OUTPUT -j ACCEPT -p gre iptables -A INPUT -p 47 -j ACCEPT iptables -A OUTPUT -p 47 -j ACCEPT # Aceitar conexoes a VPN. iptables -A INPUT -i ppp+ -j ACCEPT iptables -A INPUT -p gre -j ACCEPT iptables -A INPUT -p 47 -j ACCEPT iptables -A INPUT -p tcp --source-port 1723 -j ACCEPT iptables -A INPUT -p tcp -s 0.0.0.0/0 --source-port 1723 -j ACCEPT # forward VPN connections to our VPN server "batman": iptables -A FORWARD -p tcp -d 192.168.2.253 --dport 1723 -j ACCEPT iptables -A FORWARD -i $LAN -p gre -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Bloqueio do SSH por fora bruta iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP echo "ativado o bloqueio a tentativa de ataque do tipo SSH-BRUT-FORCE" echo "ON .................................................[ OK ]" #Bloqueio de scanners ocultos (Shealt Scan) $IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK, FIN, -m limit --limit 1/s -j ACCEPT echo "bloqueado scanners ocultos" echo "ON .................................................[ OK ]"

# ativar o mascaramento Embratel iptables -t nat -s 192.168.4.115 -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo "ativando mascaramento embratel" echo "ON .................................................[ OK ]" echo "Ativando LOG dos Servios ..........................[ OK ]" iptables -A INPUT -p tcp --dport 22 --syn -j LOG iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix " Acesso SSH pela porta 22 " iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix " Acesso WEB pela porta 80 " iptables -A INPUT -p tcp -i eth1 --dport 53 -j LOG --log-prefix " Acesso DNS pela porta 53 " iptables -A OUTPUT -p tcp -o eth1 -j LOG --log-prefix " OUTPUT na eth1 " iptables -A OUTPUT -p tcp --dport 22 -j LOG --log-prefix " OUTPUT SSH pela porta 22 " iptables -A OUTPUT -p tcp --dport 80 -j LOG --log-prefix " OUTPUT WEB pela porta 80 " iptables -A OUTPUT -p icmp -j LOG --log-prefix " OUTPUT ICMP-PING " iptables -A FORWARD -p icmp -j LOG --log-prefix " ICMP PING " ;; stop) $IPTABLES -F $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -t mangle -F $IPTABLES -t nat -F $IPTABLES -X $IPTABLES -Z $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT echo "Regras do Firewall Limpas..." ;; restart) $PROGRAMA stop $PROGRAMA start ;; *) $PROGRAMA restart exit 1 esac exit 0

Das könnte Ihnen auch gefallen