Servidor com OpenVPN


Primeiramente gostaria de salientar que não sou o autor principal do conteúdo deste artigo. A minha intenção é de mostrar o que outros autores tem realizado (referenciando links para o conteúdo original) neste blog até como um guia pessoal para uso próprio e ainda compartilhar minhas anotações e pequenas modificações que realizo no conteúdo, desejando que possa ajudar mais alguém em algum lugar.
First and foremost, I take no credit for any of this post’s content. I am really just taking what others have done (which I have links to bellow) and am putting it on my blog for a personal reference and hopefully the small changes that I made to their guides will help someone somewhere.

link: https://help.ubuntu.com/12.04/serverguide/openvpn.html

Vamos começar instalando o pacote openvpn:
sudo apt-get install openvpn

Depois configure o básico:
sudo mkdir /etc/openvpn/easy-rsa/ 
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/


Utilize o script de criação de certificados criado pelo nosso artigo sobre configuração de CA com o comando:
sudo /etc/ssl/CA/sign.sh CommonName senha casenha
copie as configurações modelo:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ 
sudo gzip -d /etc/openvpn/server.conf.gz

Escolha uma rede privada conforme o link: http://en.wikipedia.org/wiki/Private_network
Eu escolhi uma que é pouco utilizada: 172.16.0.0/12 (255.240.0.0)

sudo mkdir /etc/openvpn/keys
sudo cp /etc/ssl/CA/cacert.pem /etc/openvpn/keys
sudo cp /etc/ssl/CA/certs/vpn.edifast.com.br.crt /etc/openvpn/keys
sudo cp /etc/ssl/CA/private/vpn.edifast.com.br.key /etc/openvpn/keys
sudo cp /etc/ssl/CA/private/vpn.edifast.com.br.dh2048.pem /etc/openvpn/keys

sudo openvpn --genkey --secret /etc/openvpn/keys/ta.key
sudo chown nobody:nogroup /etc/openvpn/keys/ta.key
sudo chmod 600 /etc/openvpn/keys/ta.key

Ajuste as configurações:
sudo gedit /etc/openvpn/server.conf


port 1194
proto udp
dev tun
ca keys/cacert.pem
cert keys/vpn.edifast.com.br.crt
key keys/vpn.edifast.com.br.key
dh keys/vpn.edifast.com.br.dh2048.pem
ifconfig-pool-persist ipp.txt
server 172.16.0.0 255.255.255.0
user nobody group nogroup
keepalive 10 120
tls-auth /etc/openvpn/keys/ta.key 0
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log
verb 3
plugin /usr/lib/openvpn/openvpn-auth-pam.so login

;push "route 172.16.0.0 255.255.255.0"
;push "route 177.71.182.210 255.255.255.255"
;route 177.71.182.210 255.255.255.255 172.16.0.1

;push "redirect-gateway def1"
;push "dhcp-option DNS 172.16.0.9"


Caso queira pode-se criar ainda chaves TSA para cada servidor com o comando:
cd /etc/openvpn/
sudo openvpn --genkey --secret ta.key

Inicio o serviço com o comando:
sudo /etc/init.d/openvpn start
ou
sudo service openvpn restart

E verifique a interface:
sudo ifconfig tun0

Altere para iniciar o serviço automaticamente:
sudo nano /etc/default/openvpn

AUTOSTART="server"


NÃO FUNCIOUNOU o NAT !!!!

Modulos necessários:
sudo modprobe iptable_nat
sudo gedit /etc/modules
iptable_nat


Para habilitar o servidor para redirecionar o trafego de rede para a internet rode o comando:
sudo iptables -I FORWARD -i tun0 -o eth0  -s 172.16.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED  -j ACCEPT
sudo iptables -t nat -I POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE

sudo mkdir  /etc/iptables
sudo bash -c "iptables-save > /etc/iptables/rules"

sudo gedit /etc/network/if-pre-up.d/firewall 
#!/bin/sh 
/sbin/iptables-restore <  /etc/iptables/rules

sudo chmod +x /etc/network/if-pre-up.d/firewall


sudo iptables -L -v -t nat

Habilitar trafegos: http://workaround.org/openvpn-faq
sudo iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -i tun0 -j ACCEPT
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A FORWARD -o tun0 -j ACCEPT 
sudo iptables -t nat -A PREROUTING -d 177.71.182.210 -j DNAT --to-destination 127.0.0.1
sudo iptables -t nat -A PREROUTING -s 172.16.0.0/24 -d 177.71.182.210 -j DNAT --to-destination 172.16.0.1

sudo gedit /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1


sudo sysctl -p /etc/sysctl.conf
sysctl net.ipv4.ip_forward

link: https://wiki.archlinux.org/index.php/OpenVPN#Advanced_L3_IP_routing
sudo gedit /etc/rc.local
ip link set dev eth0 promisc on

link: http://www.gaggl.com/2013/04/openvpn-forward-all-client-traffic-through-tunnel-using-ufw/

sudo gedit /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

sudo gedit /etc/ufw/before.rules
add the following code after the header and before the "*filter" line

# NAT (Network Address Translation) table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from clients to eth0
-A POSTROUTING -s 172.16.0.0/24 -o eth0 -j MASQUERADE
# don't delete the "COMMIT" line or the NAT table rules above won't be processed
COMMIT


sudo ufw allow 1194
sudo service ufw start
 

Clientes Ubuntu devem ter a seguinte configuração:

sudo mkdir /etc/openvpn/keys
sudo scp -i ~/.ssh/amazon.pem ubuntu@amazon.edifast.com.br:/etc/ssl/CA/cacert.pem /etc/openvpn/keys/ca.edifast.com.br.pem
sudo scp -i ~/.ssh/amazon.pem ubuntu@amazon.edifast.com.br:/etc/ssl/CA/certs/bee.crt /etc/openvpn/keys
sudo scp -i ~/.ssh/amazon.pem ubuntu@amazon.edifast.com.br:/etc/ssl/CA/private/bee.key /etc/openvpn/keys
sudo chmod 660 /etc/openvpn/keys/*


sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
sudo nano /etc/openvpn/client.conf


ca keys/ca.edifast.com.br.pem
cert keys/bee.crt
key keys/bee.keyclient
remote vpn.edifast.com.br 1194
auth-user-pass

Inicio o serviço com o comando:
sudo /etc/init.d/openvpn start

E verifique a interface
:
sudo ifconfig tun0

E as rotas:
netstat -rn


No android siga os tutoriais:
Antes: 
Novo: 







Configuração do network-manager-openvpn

sudo apt-get install network-manager-openvpn




No windows o arquivo de configuração é:
notepad " C:\Program Files\OpenVPN\config\client.ovpn"

client
dev tun
proto udp
remote vpn.edifast.com.br 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.edifast.com.br.pem"
cert "C:\\Program Files\\OpenVPN\\config\\spider.crt"
key "C:\\Program Files\\OpenVPN\\config\\spider.key"
ns-cert-type server
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
comp-lzo
verb 3


auth-user-pass

Checar a tabela de roteamento:
route print -4
netstat -rn



ping 172.16.0.1 


O URL específico do gadget não foi encontrado



Comments