Es mas facil de lo que parece.
Instalando y configurando OpenVpn en router huaweig HG556aInstalamos un firmware al router yo he optado por lede-17.01.0-r3205-59508e3-brcm63xx-generic-HG556a-B-squashfs-cfe.bin en modo recuperación.
Modo de instalación recomendado:- Con el router apagado pulsar botón de RESTART y mantenerlo pulsado.
- Encender el router y seguir con el botón apretado durante 20 segundos.
- Soltar el botón.
- Conectamos por ethernet con un cable de datos cruzado. el router con el pc.
- Configurar la IP del ordenador como 192.168.1.2 y máscara de subred 255.255.255.0
- Abrir el navegador y acceder a http://192.168.1.1
Configuramos una contraseña para que se pueda acceder por ssh.
Nos dirigimos hacia network >> interfaces
Editamos la conexión lan, por defecto la dirección ip fija, es 192.168.1.1, yo la cambio por 192.168.3.1, guardamos los cambios.
Nos volemos a conectar ahora por ssh hacia 192.168.3.1, para ello hay que volver a configurar la IP del ordenador como 192.168.1.2 y máscara de subred 255.255.255.0 y conectarnos por ethernet.
# ssh root@192.168.3.1
root@192.168.3.1's password:
BusyBox v1.25.1 () built-in shell (ash)
_________
/ /\ _ ___ ___ ___
/ LE / \ | | | __| \| __|
/ DE / \ | |__| _|| |) | _|
/________/ LE \ |____|___|___/|___| lede-project.org
\ \ DE /
\ LE \ / -----------------------------------------------------------
\ DE \ / Reboot (17.01.0, r3205-59508e3)
\________\/ -----------------------------------------------------------
root@LEDE:~#
Y seguimos con lo que dice en la
https://lede-project.org/docs/howto/openvpn.serverInstalar los paquetes necesarios OpenVPN + nano que es un editor de texto plano.
Recuerda que #= escribir una orden o conjunto en la ventana del terminal, en nuestro caso la conexión ssh con el router.
# opkg update && opkg install openvpn-openssl openvpn-easy-rsa luci-app-openvpn nano
# opkg update && opkg install openvpn-openssl openvpn-easy-rsa luci-app-openvpn nano ipset
Creamos los certificados y llaves para el uso de los mismos.
# cd /etc/easy-rsa
# source vars
# clean-all
# build-ca
# build-dh
# build-key-server myvpn
# openvpn --genkey --secret /etc/easy-rsa/keys/ta.key
Configuramos la red y el cortafuegos.
uci set network.vpn0="interface"
uci set network.vpn0.ifname="tun0"
uci set network.vpn0.proto="none"
uci set network.vpn0.auto="1"
uci commit network
uci add firewall rule
uci set firewall.@rule[-1].name="Allow-OpenVPN-Inbound"
uci set firewall.@rule[-1].target="ACCEPT"
uci set firewall.@rule[-1].src="wan"
uci set firewall.@rule[-1].proto="udp"
uci set firewall.@rule[-1].dest_port="1194"
uci add firewall zone
uci set firewall.@zone[-1].name="vpn"
uci set firewall.@zone[-1].input="ACCEPT"
uci set firewall.@zone[-1].forward="ACCEPT"
uci set firewall.@zone[-1].output="ACCEPT"
uci set firewall.@zone[-1].masq="1"
uci set firewall.@zone[-1].network="vpn0"
uci add firewall forwarding
uci set firewall.@forwarding[-1].src="vpn"
uci set firewall.@forwarding[-1].dest="wan"
uci add firewall forwarding
uci set firewall.@forwarding[-1].src="vpn"
uci set firewall.@forwarding[-1].dest="lan"
uci commit firewall
Actualizar las configuraciones de red y cortafuegos.
/etc/init.d/network reload
/etc/init.d/firewall reload
Habilitamos el reenvío de paquetes
echo 1 >/proc/sys/net/ipv4/ip_forward
Creamos el archivo de configuración de openvpn
echo >/etc/config/openvpn
Escribimos el archivo de configuración de openvpn
nano /etc/config/openvpn
Control+C Copiamos el texto
Control+V Pegamos el texto
Control+X salimos de nano, confirmamos con
y los cambios + la tecla INTRO
Contenido del archivo /etc/config/openvpn
config openvpn 'myvpn'
option enabled '1'
option dev 'tun'
option port '1194'
option proto 'udp'
option status '/var/log/openvpn_status.log'
option log '/tmp/openvpn.log'
option verb '3'
option mute '5'
option keepalive '10 120'
option persist_key '1'
option persist_tun '1'
option user 'nobody'
option group 'nogroup'
option ca '/etc/easy-rsa/keys/ca.crt'
option cert '/etc/easy-rsa/keys/myvpn.crt'
option key '/etc/easy-rsa/keys/myvpn.key'
option dh '/etc/easy-rsa/keys/dh2048.pem'
option mode 'server'
option tls_server '1'
option tls_auth '/etc/easy-rsa/keys/ta.key 0'
option server '10.8.0.0 255.255.255.0'
option topology 'subnet'
option route_gateway 'dhcp'
option client_to_client '1'
list push 'persist-key'
list push 'persist-tun'
list push 'redirect-gateway def1'
# allow your clients to access to your network
list push 'route 192.168.3.0 255.255.255.0'
# push DNS to your clients
list push 'dhcp-option DNS 192.168.3.1'
option comp_lzo 'no'
Iniciamos openvpny activamos el servicio
/etc/init.d/openvpn start
/etc/init.d/openvpn enable
Vemos si nos ha salido todo bien, y esta trabajando.
cat /tmp/openvpn.log
# ssh root@192.168.3.1
root@192.168.3.1's password:
BusyBox v1.25.1 () built-in shell (ash)
_________
/ /\ _ ___ ___ ___
/ LE / \ | | | __| \| __|
/ DE / \ | |__| _|| |) | _|
/________/ LE \ |____|___|___/|___| lede-project.org
\ \ DE /
\ LE \ / -----------------------------------------------------------
\ DE \ / Reboot (17.01.0, r3205-59508e3)
\________\/ -----------------------------------------------------------
root@LEDE:~# cat /tmp/openvpn.log
Mon Mar 20 00:37:12 2017 OpenVPN 2.4.0 mips-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD]
Mon Mar 20 00:37:12 2017 library versions: OpenSSL 1.0.2k 26 Jan 2017, LZO 2.09
Mon Mar 20 00:37:12 2017 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Mon Mar 20 00:37:12 2017 Diffie-Hellman initialized with 2048 bit key
Mon Mar 20 00:37:12 2017 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Mar 20 00:37:12 2017 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Mar 20 00:37:12 2017 TUN/TAP device tun0 opened
Mon Mar 20 00:37:12 2017 TUN/TAP TX queue length set to 100
Mon Mar 20 00:37:12 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Mar 20 00:37:12 2017 /sbin/ifconfig tun0 10.8.0.1 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Mon Mar 20 00:37:12 2017 Could not determine IPv4/IPv6 protocol. Using AF_INET
Mon Mar 20 00:37:12 2017 Socket Buffers: R=[159744->159744] S=[159744->159744]
Mon Mar 20 00:37:12 2017 UDPv4 link local (bound): [AF_INET][undef]:1194
Mon Mar 20 00:37:12 2017 UDPv4 link remote: [AF_UNSPEC]
Mon Mar 20 00:37:12 2017 GID set to nogroup
Mon Mar 20 00:37:12 2017 UID set to nobody
Mon Mar 20 00:37:12 2017 MULTI: multi_init called, r=256 v=256
Mon Mar 20 00:37:12 2017 IFCONFIG POOL: base=10.8.0.2 size=252, ipv6=0
Mon Mar 20 00:37:12 2017 Initialization Sequence Completed
root@LEDE:~#
Configuración de clientes.Creamos un archivo de configuración /etc/easy-rsa/keys/Default.txt donde tendremos que HOST_NAME por el nombre host de redireccion de ddns
*Falta instalar paquetes ddns y configuración del mismo.*
client
dev tun
proto udp
remote HOST_NAME 1194
resolv-retry infinite
nobind
mute-replay-warnings
ns-cert-type server
key-direction 1
verb 1
mute 20
comp-lzo
# uncomment for Windows 7 clients
#route-method exe
#route-delay 2
Yo lo tengo del siguiente modo.
client
dev tun
proto udp
remote vpn-openwrt.ddns.net 1194
resolv-retry infinite
nobind
mute-replay-warnings
ns-cert-type server
key-direction 1
verb 1
mute 20
comp-lzo
# uncomment for Windows 7 clients
#route-method exe
#route-delay 2
Descargamos el archivo MakeOpenVPN.sh y damos permisos
wget --no-check-certificate https://gist.githubusercontent.com/coolaj86/4120d90e57d1d01cd59f/raw/331d70d718746d567f2b3ac0c0c2801c901eecc4/MakeOpenVPN.sh /etc/easy-rsa/keys/MakeOpenVPN.sh
chmod +x /etc/easy-rsa/keys/MakeOpenVPN.sh
Creamos los certificados para cada cliente, usando un nombre diferente para cada uno.
cd /etc/easy-rsa
source vars
build-key-pkcs12 myuser
openssl rsa -in /etc/easy-rsa/keys/myuser.key -des3 -out /etc/easy-rsa/keys/myuser.3des.key
Finalmente ejecutamos MakeOpenVPN.sh para generar los certificados de los clientes existentes.
/etc/easy-rsa/keys/MakeOpenVPN.sh
Desde la interfaz gráfica entrando con el navegador web
Red > Dhcp y dns
Desmarcamos la casilla Local Service Only
Salu2