Implementando as config. no servidor Filial, e conclusões

# vi /etc/openvpn/server_filial_vpn1.ovpn

Realize as seguintes alterações no arquivo:

# Server VPN (Filial)
# VPN1 – Link Primário (WLAN)
# Endereço que o servidor matriz está em listening
remote 10.10.10.1

# Modo Cliente
tls-client

ifconfig 172.16.0.2 172.16.0.1

# Certificado do cliente
cert /etc/openvpn/certs/server_filial.crt

# Chave do cliente
key /etc/openvpn/keys/server_filial.key
ns-cert-type server

A ultima opção foi adicionada ao arquivo e conforme Morimoto, serve como proteção adicional para o que servidor filial (cliente VPN) realize a verificação do certificado do servidor matriz no momento da conexão, protegendo o cliente VPN de ataques do tipo man-in-the-middle. Esta verificação é semelhante aquela realizada pelo software cliente do OpenSSH, ao checar o arquivo known_hosts contido no subdiretório .ssh antes de realizar a conexão ao servidor SSH.

Continuando com as configurações, iremos copiar o arquivo referente a VPN1 para implementar a configuração da VPN2.

# cp /etc/openvpn/server_filial_vpn1.ovpn /etc/openvpn/server_filial_vpn2.ovpn
# vi /etc/openvpn/server_filial_vpn2.ovpn

# Server VPN (Filial)
# VPN2 – Link Secundário (ADSL)
# Interface VPN
dev tun1

# Endereço que o servidor matriz está em listening
remote 200.100.50.50

# Porta Origem e Destino (conexao ao servidor)
port 63010

ifconfig 172.31.0.2 172.31.0.1

Realizaremos as alterações no script vpn1.sh, salientando que, conforme citado anteriormente este script não substitui o script de firewall que deve existir em seu servidor, ele apenas insere regras para que o roteamento possa ocorrer entre a matriz e filial.

Além das alterações indicadas abaixo, você poderá excluir as linhas que inserem e excluem regras na chain INPUT, ou seja, “iptables -I INPUT ….” e “iptables -D INPUT …”, regras desnecessárias para o cliente.

# cd /etc/rc.d/
# vi vpn1.sh


LAN_MATRIZ=”192.168.0.0/24″

/usr/local/sbin/openvpn –config /etc/openvpn/server_filial_vpn1.ovpn
sleep 3
route add -net $LAN_MATRIZ dev $LAN_VPN

Copie o arquivo acima para vpn2.sh:

# cp /etc/rc.d/vpn1.sh /etc/rc.d/vpn2.sh
# vi /etc/rc.d/vpn2.sh

Realize as seguintes modificações (em negrito). Conforme exposto no tópico de configuração do servidor matriz, este script não possui o comando route add -net $LAN_MATRIZ dev $LAN_VPN, por isso deixei ele comentado para enfatizar bem essa diferença entre o script vpn1.sh e vpn2.sh (utilizado em ambos servidores).

#!/bin/sh
LAN_VPN=”tun1″

/usr/local/sbin/openvpn –config /etc/openvpn/server_filial_vpn2.ovpn
sleep 3
# route add -net $LAN_MATRIZ dev $LAN_VPN

O script de alta disponibilidade do servidor filial não necessitará de muitas modificações, portanto, vamos a elas:

Criaremos as alterações no arquivo de script de alta disponibilidade:

# cd /etc/rc.d
# vi ha-filial-matriz.sh

# HA – Filial -> Matriz
#
# por Waldemar Dibiazi Junior <waldemar_jr@hotmail.com>
#

LAN_MATRIZ=”192.168.0.0/24″

log=”/var/log/ha_vpn-filial-matriz.log”

# Interfaces VPN (filial) e enderecos IP das interfaces VPN (matriz)
if_addr_server[0]=”tun0:172.16.0.1″
if_addr_server[1]=”tun1:172.31.0.1″

drop_route(){
# Obtendo valor atual de Rota
get_tun
$r del -net $LAN_MATRIZ dev $tun 2> /dev/null
}

add_route(){
# Obtendo valor atual da Rota
get_tun
$r add -net $LAN_MATRIZ dev $tun 2> /dev/null
}

done

Para finalizar as configurações, realize a seguinte alteração no script rc.local:

# vi /etc/rc.d/rc.local


sh /etc/rc.d/ha-filial-matriz.sh &

Conclusões

A alta disponibilidade de serviços é extremamente importante em ambientes, onde os mesmos são de vital importância para o desenvolvimento das atividades de uma empresa.

A indiscutível estabilidade e recursos do OpenVPN aliada ao uso de shell scripts permitiram a implementação de VPN’s redundantes utilizando recurso de alta disponibilidade.

Por Waldemar Dibiazi Junior <waldemar_jr [at]hotmail.com>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X