OpenVPN Linux – Resumo facil e agil das configuracoes

Instalar e Criar as chaves

Minha versao servidor:
[root@jupiter openvpn]# openvpn –version
OpenVPN 2.4.9 x86_64-redhat-linux-gnu [Fedora EPEL patched] [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 24 2020
library versions: OpenSSL 1.0.2k-fips 26 Jan 2017, LZO 2.06

Minha versao cliente linux:
[root@~]# openvpn –version
OpenVPN 2.4.11 x86_64-redhat-linux-gnu [Fedora EPEL patched] [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 21 2021
library versions: OpenSSL 1.0.2k-fips 26 Jan 2017, LZO 2.06

Minha versao Windao:
OpenVPN GUI v 11.25.0.0

LADO SERVIDOR:

1 – Instalar openvpn

[root@jupiter ips]# yum install epel-release -y
[root@jupiter ips]# yum install -y wget openvpn

2 – Instalar Easy RSA

[root@jupiter ips]# wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.8.tar.gz
[root@jupiter ips]# tar -xf v3.0.8.tar.gz
[root@jupiter ips]# cd /etc/openvpn/
[root@jupiter ips]# mkdir /etc/openvpn/easy-rsa
[root@jupiter ips]# mv /root/easy-rsa-3.0.8 /etc/openvpn/easy-rsa

4 - Criandos as chaves no server, certificados, etc

[root@jupiter ips]# cd /etc/ppenvpn\easy-rsa
[root@jupiter ips]# . ./vars
[root@jupiter ips]# ./clean-all
[root@jupiter ips]# ./build-ca
[root@jupiter ips]# ./build-key-server server

4 – Configuracao do servidor (seu arquivo tem que estar assim)

[root@jupiter ips]# cat /etc/openvpn/server.conf
port 1195
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
# range de trabalho da sua VPN
server 10.8.0.0 255.255.255.0
push "route 192.168.254.0 255.255.255.0"
dh /etc/openvpn/dh2048.pem
persist-key
persist-tun
comp-lzo
user root
group wheel
client-to-client
# setar ip fixo/ static para os clientes da vpn
client-config-dir /etc/openvpn/ips
max-clients 10
status /var/log/openvpn/status.log
log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

5 – Gerando chaves para o cliente:

[root@jupiter ips]# source ./vars
[root@jupiter ips]# ./build-key client1

6 – Mostrando as chaves geradas (usuaremos para criar o arquivo na maq cliente):


[root@jupiter ips]# cat /etc/openvpn/easy-rsa/keys/cliente1.key
[root@jupiter ips]# cat /etc/openvpn/easy-rsa/keys/sanjosepc.crt
[root@jupiter ips]# cat /etc/openvpn/easy-rsa/keys/ca.crt

7 – Criacao do arquivo tem que ser com o mesmo nome do certificado com o conteudo do ip

[root@jupiter ips]# mkdir /etc/openvpn/ips
[root@jupiter ips]# cat client1
ifconfig-push 10.8.0.177 10.8.0.178

8 – Os ips devem seguir a subnet /30 e os pares de escolha estao abaixo (no exemplo acima escolhi o 177 e 178):


[  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]

9 – Criando os arquivos de log


[root@jupiter ips]# touch /var/log/openvpn/openvpn.log
[root@jupiter ips]# touch /var/log/openvpn/status.log

Ativando no boot e, iniciando (server eh porque demos o nome do arquvio da vpn de server)

[root@jupiter ips]#systemctl enable openvpn@server
[root@jupiter ips]#systemctl restart openvpn@server

10 – Firewall adequacoes:

Obs: minha eth0 eh minha la do servidor (dhcp para rede) e o tun0 eh a openvpn criada


iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

———————————————————————————-

LADO CLIENTE:

Windows:

1 – baixar o openvpn, criar um atalho na area de trabalho e IMPORTANTE nas propriedades setar para abrir como Administrador (caso contrario algumas vezes a rota nao eh criada corretamente no windows).
2 – Ir em C:\Program Files\OpenVPN\config criar um diretorio com o nome da sua VPN, exemplo Escritorio
3 – Criar um arquivo chamado escritorio.ovpv dentro de C:\Program Files\OpenVPN\config\Escritorio contendo:


client
dev tun
proto tcp-client
# ip fixo ou dns do seu servidor openvpn
remote servidor.dns.com.br
port 1190
nobind
persist-key
persist-tun
tls-client
remote-cert-tls server
verb 1
# as redes do outro lado que quer atingir
route 10.66.0.0 255.255.255.0
route 192.168.2.0 255.255.255.0
mute 10
cipher AES-256-CBC
auth SHA1
auth-nocache
# se tivesse autenticacao de usuario e senha habilitariamos abaixo
#auth-user-pass

#auth-user-pass secret


-----BEGIN CERTIFICATE-----
calo seu certificado CA aqui
-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
cola seu certificado do client1 aqui (as vezes tem algo mais nesse arquivo mas eh necessarios somente colar o Begin ao END
-----END CERTIFICATE-----


-----BEGIN ENCRYPTED PRIVATE KEY-----
cola a key do client1 aqui
-----END ENCRYPTED PRIVATE KEY-----

4 – Abre a OpenVPN gui e com botao direito localiza escritorio e mande conectar

NO LINUX:
1 – Depois de instalar openvpn
2 – Criar o arquivo cliente

[root@client1 ~]# cat /etc/openvpn/escritorio.conf
client
dev tun
proto udp
# ip ou dns do servidor openvpn
remote servidor.dns.com.br
port 1195
nobind
persist-key
persist-tun
remote-cert-tls escritorio
resolv-retry infinite
comp-lzo
keepalive 10 120
ca /etc/openvpn/client/ca.crt
cert /etc/openvpn/client/escritorio.crt
key /etc/openvpn/client/escritorio.key

2 – Disponibilizar os arquivos como listados:

[root@client1 ~]# ls /etc/openvpn/client/
ca.crt
escritorio.crt
escritorio.key

3 – Iniciar o servico

[root@client1 ips]#systemctl enable openvpn@escritorio
[root@client1 ips]#systemctl restart openvpn@escritorio

Deixe um comentário