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.
Comentários
Postar um comentário