OpenVPN is an application to securely tunnel IP networks over a single UDP or TCP port. It can be used to access remote sites, make secure point-to-point connections, enhance wireless security, etc.
OpenVPN uses all of the encryption, authentication, and certification features provided by the OpenSSL library (any cipher, key size, or HMAC digest).
OpenVPN may use static, pre-shared keys or TLS-based dynamic key exchange. It also supports VPNs with dynamic endpoints (DHCP or dial-up clients), tunnels over NAT or connection-oriented stateful firewalls (such as Linux's iptables).
aptitude install openvpn
el directorio de instalacion es
/etc/openvpn
creas, si no esta creado un fichero que se llame home.up y dentro le pones la ruta a donde tu quieres que vaya por la lan
en mi caso
#!/bin/sh route add -net 192.168.10.0 netmask 255.255.255.0 gw $5
el segundo fichero a configurar es el siguiente
openvpn-startup.sh
y quedaría así
#!/bin/sh # A sample OpenVPN startup script # for Linux. # openvpn config file directory dir=/etc/openvpn # load the firewall #$dir/firewall.sh # load TUN/TAP kernel module modprobe tun # enable IP forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Invoke openvpn for each VPN tunnel # in daemon mode. Alternatively, # you could remove "--daemon" from # the command line and add "daemon" # to the config file. # # Each tunnel should run on a separate # UDP port. Use the "port" option # to control this. Like all of # OpenVPN's options, you can # specify "--port 8000" on the command # line or "port 8000" in the config # file. openvpn --cd $dir --daemon --config static-home.conf #openvpn --cd $dir --daemon --config vpn2.conf #openvpn --cd $dir --daemon --config vpn2.conf
el tercer fichero a configurar es el siguiente
static-home.conf
y modifica el IP de la red externa que quieres hacerle VPN
# Our OpenVPN peer is the office gateway. remote 200.55.x.y
abres el puerto 1194 para openvpn
# OpenVPN 2.0 uses UDP port 1194 by default # (official port assignment by iana.org 11/04). # OpenVPN 1.x uses UDP port 5000 by default. # Each OpenVPN tunnel must use # a different port number. # lport or rport can be used # to denote different ports # for local and remote. ; port 1194
y para finalizar, pornes un par de reglas en tu iptables
#-- DEFINICION DE VARIABLES --# ETH_WAN="eth0" ETH_LAN="eth1" #-- OpenVpn --# iptables -A FORWARD -i $ETH_WAN -s 10.0.0.0/255.255.255.0 -j ACCEPT iptables -A INPUT -i $ETH_WAN -p udp --dport 1194 -j ACCEPT iptables -A OUTPUT -o $ETH_WAN -p udp --sport 1194 -j ACCEPT iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT iptables -A FORWARD -o tun+ -j ACCEPT iptables -A FORWARD -i $ETH_LAN -j ACCEPT
ahora en el otro servidor de la vpn, haces el mismo procedimiento, pero lo que varía es el rango de ip definido en el fichero home.up
ejemplo, haremos vpn entre dos redes red1 público 200.55.x.y privado 10.0.0.0/24
red2 púlbico 200.55.a.b privado 192.168.0.0/24
esta configuracion es para acceder desde la red 10.0 hasta la 192.168 cuando en el fichero home.up en el otro server pongas el otro ip como indico accederas desed 192.168 hasta 10.0
suerte
whilo