Pular para o conteúdo principal

Tunel entre servidores utilizando VPN

Tunel com OpenVPN

Introdução


Iremos utilizar o OpenVPN conectando duas unidades o nosso firewall e o nosso servidor Virtualizado em nosso parceiro ( empresa modelo ) para que haja comunicação direta entre redes.


Ambiente

O nosso ambiente é duas maquinas Centos.

O servidor de virtualização será nosso servidor VPN onde que o cliente nosso firewall será nosso cliente que solicitará VPN.

Lembrando que esse ambiente é fiquiticio.

Configuração


Iremos realizar a instalação nos dois servidores dos seguintes pacotes:
# yum install openssl openvpn

Ativando serviço para que seja inicializado:
# chkconfig openvpn on

Lembrando que tem que fazer a liberação das portas no arquivo "/etc/sysconfig/iptables", cada tunel criada assumira uma porta diferente, vale ressaltar que terá que realizar liberação manual no arquivo.

Configuração do Servidor


Iremos gerar a chave de segurança:
# openvpn --genkey --secret   \  /etc/openvpn/chave


# cat /etc/openvpn/chave
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
bb39667536a6ab223bd7e3829c95aae5
50ee016324eca4d98822e53517fc7124
036716b9b3e509af29e9344f001231ea
1e5f671a3c73bd48da1617eb0181daa7
3c28d3ddf1e97e9a903592e9d2f6b47c
4a77d885d97b68076b74d23ffec44c24
ab1d06de7109a27a51e3b1c3060c3851
b3aed5b1c6c5c2546dad5e506ed931d1
4e3c6009b85ba8e844afe53bfc809dc1
223f959c4fe9a17c6dd563159b537516
d3c26031097e746eafc1c92059c3dba3
1a15ca928472e0b304b10d7b99929977
e17f6c1d1dfdaf816d2b9ad0e6ac0e8e
e20f87d0a93cd31f902ab7d5c9969506
e879ec6e958bcfe40d8a98cec27c0303
e5a5ff42c3b4b2e7fa4d843045faab32
-----END OpenVPN Static key V1-----

Iremos editar o arquivo de configuração do servidor:
# vi /etc/openvpn/server.conf


dev tun
ifconfig 10.0.0.1 10.0.0.2
secret /etc/openvpn/chave

# Aqui colocamos o ip do servidor da WAN.
local 187.33.43...

-------------------------------------------------------------------------------------------------

# service openvpn restart

-------------------------------------------------------------------------------------------------

# tail -f /var/log/messages
Jul 30 17:32:36 virt01-novatelecom openvpn[10594]: OpenVPN 2.3.2 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Sep 12 2013
Jul 30 17:32:36 virt01-novatelecom openvpn[10594]: TUN/TAP device tun0 opened
Jul 30 17:32:36 virt01-novatelecom openvpn[10594]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Jul 30 17:32:36 virt01-novatelecom openvpn[10594]: /sbin/ip link set dev tun0 up mtu 1500
Jul 30 17:32:36 virt01-novatelecom kernel: tun0: Disabled Privacy Extensions
Jul 30 17:32:36 virt01-novatelecom openvpn[10594]: /sbin/ip addr add dev tun0 local 10.0.0.1 peer 10.0.0.2
Jul 30 17:32:36 virt01-novatelecom openvpn[10601]: UDPv4 link local (bound): [AF_INET]187.33.43.178:1194
Jul 30 17:32:36 virt01-novatelecom openvpn[10601]: UDPv4 link remote: [undef]

# ifconfig

Pronto a interface de ponte será a tun onde que através dela terá trafego para outra rede.

Logo na sequencia foi reiniciado e vimos o log do serviço que já está ok.

Configuração do Cliente


No cliente a gente exportara a chave para a maquina firewall com o comando:
# IP DO SERVIDOR COPIANDO A CHAVE PARA CLIENTE
# scp root@187.33.43...:/etc/openvpn/chave  /etc/openvpn
-------------------------------------------------------------------------------------------------

E o arquivo de configuração do cliente ficará dessa forma:
# vi /etc/openvpn/client.conf
dev tun
ifconfig 10.0.0.1 10.0.0.2
secret /etc/openvpn/chave

# IP DO SERVIDOR VPN
remote 187.33.43...

Pronto agora iremos liberar a porta do vpn no iptables nos dois servidores editando o arquivo de configuração do iptables:
# vim /etc/sysconfig/iptables
...
-------------------------------------------------------------------------------------------------
# Liberação de entrada de pacotes VPN
-A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
...
-------------------------------------------------------------------------------------------------# Negando as demais
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Lembrando que a outras regras junto nesse arquivo que não a necessidade de mostrarmos.

Reiniciando o serviço:
# service openvpn restart

Checando os logs:
Servidor:
Jul 30 18:09:21 virt01-novatelecom openvpn[12116]: /sbin/ip link set dev tun0 up mtu 1500
Jul 30 18:09:21 virt01-novatelecom openvpn[12116]: /sbin/ip addr add dev tun0 local 10.0.0.1 peer 10.0.0.2
Jul 30 18:09:21 virt01-novatelecom openvpn[12121]: UDPv4 link local (bound): [AF_INET]187.33.43.178:1194
Jul 30 18:09:21 virt01-novatelecom openvpn[12121]: UDPv4 link remote: [undef]
Jul 30 18:11:30 virt01-novatelecom openvpn[12121]: Peer Connection Initiated with [AF_INET]177.139.190.229:1194
Jul 30 18:11:31 virt01-novatelecom openvpn[12121]: Initialization Sequence Completed
-------------------------------------------------------------------------------------------------

Cliente:
Jul 30 18:08:10 serv-firewall openvpn[22576]: /sbin/ip addr add dev tun0 local 10.0.0.2 peer 10.0.0.1
Jul 30 18:08:10 serv-firewall openvpn[22581]: UDPv4 link local (bound): [undef]
Jul 30 18:08:10 serv-firewall openvpn[22581]: UDPv4 link remote: [AF_INET]187.33.43.178:1194
Jul 30 18:09:32 serv-firewall openvpn[22581]: event_wait : Interrupted system call (code=4)
Jul 30 18:09:32 serv-firewall openvpn[22581]: /sbin/ip addr del dev tun0 local 10.0.0.2 peer 10.0.0.1
Jul 30 18:09:32 serv-firewall openvpn[22581]: SIGTERM[hard,] received, process exiting
Jul 30 18:09:34 serv-firewall openvpn[22620]: OpenVPN 2.3.2 i686-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Sep 12 2013
Jul 30 18:09:34 serv-firewall openvpn[22620]: TUN/TAP device tun0 opened
Jul 30 18:09:34 serv-firewall kernel: tun0: Disabled Privacy Extensions
Jul 30 18:09:34 serv-firewall openvpn[22620]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Jul 30 18:09:34 serv-firewall openvpn[22620]: /sbin/ip link set dev tun0 up mtu 1500
Jul 30 18:09:34 serv-firewall openvpn[22620]: /sbin/ip addr add dev tun0 local 10.0.0.2 peer 10.0.0.1
Jul 30 18:09:34 serv-firewall openvpn[22626]: UDPv4 link local (bound): [undef]
Jul 30 18:09:34 serv-firewall openvpn[22626]: UDPv4 link remote: [AF_INET]187.33.43.178:1194
Jul 30 18:11:36 serv-firewall openvpn[22626]: Peer Connection Initiated with [AF_INET]187.33.43...:1194
Jul 30 18:11:37 serv-firewall openvpn[22626]: Initialization Sequence Completed

Pronto.

Testando


Os testes se baseia em pings na ambas as pontas através dos ips definidos na criação do tunel:
Servidor:
[root@virt01-novatelecom /]# ping 10.0.0.2 -c 2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=7.30 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=6.40 ms


--- 10.0.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 6.407/6.856/7.305/0.449 ms
-------------------------------------------------------------------------------------------------

Cliente:
[root@serv-firewall ~]# ping 10.0.0.1 -c 2
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=6.24 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=6.35 ms


--- 10.0.0.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 6.246/6.302/6.358/0.056 ms

Pronto de uma forma muito simples configuramos nossa VPN.

Conclusão


VPN é a tecnologia mais utilizada e segura para interligar redes de longa distância através de um canal seguro e barato.

Bibliografia


IBM Develop - http://www.ibm.com/developerworks/br/library/l-ipsec/

Comentários

Postagens mais visitadas deste blog

QOS Intermediário - Implantação em cliente real

Implantação de QOS - Intermediário Introdução Nessa etapa seguiremos novamente o caminho do controle de tráfego, mas com uma pitada mais avançada delimitando por classes e em tempo real. Nessa video aula trará um pouco de shell-script junto com controle de tráfego e passando um pouco que vai ser um dos próximos tópicos que é o ZABBIX. O video realmente ficou extenso, porque tentei documentar ao máximo cada parte e explicar o porque da utilização de cada função.

Zabbix - Entendendo Agentes

Zabbix Agente - Instalação e configuração Introdução O Zabbix trabalha em sua estrutura basicamente duas funções como: Gerente - Zabbix que armazena informações e entre outras, agindo como Servidor ) Agente - Zabbix instalado em hosts que coleta informações para serem enviadas ao gerente.  O que iremos entender nesse tutorial é os modos como os agentes trabalha ativo e passivo. Ativo - Ele envia os dados para o servidor ( gerente ), muito utilizado quando o host está em outras redes através de firewall. Passivo - Ele aguarda solicitação do servidor ( gerente ) para a entrega dos dados. A configuração do agente e de acordo com as nossas necessidades no momento.

IDS Sistema detecção de intrusão - FAIL2BAN

IDS com FAIL2BAN Introdução IDS é um sistema de detecção de intrusos que podemos implementar em dois segmentos em rede e sistema. Iremos abordar o fail2ban, uma poderosa ferramenta contra tentativas de força bruta ( meio de ataque através de diversas tentativas de acesso ), esse serviço é muito utilizado em servidores que respondem diretamente a internet, a configuração acaba sendo muito útil para bloqueio sendo sua principal vantagem a velocidade. Funcionamento Partindo de analises rigorosas de log como tentativas repetitivas de falhas como por exemplo em uma tentativa de acesso via SSH em nosso firewall: Jun 28 20:24:13 serv-firewall unix_chkpwd[1491]: password check failed for user (root) Jun 28 20:24:13 serv-firewall sshd[1489]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost= 192.168.122.1 user= root Jun 28 20:24:15 serv-firewall sshd[1489]: Failed password for root from 192.168.122.1 port