OpenVPN en Centos
enero 16, 2011 5 comentarios
Durante los últimos dos meses me he encontrado repentinamente al menos en cuatro ocasiones ante la necesidad de instalar OpenVPN en Centos. Siempre ha sido un requerimiento de alguna tarea más grande o más «importante», algo como para no perder el tiempo en ello. Sin embargo, el repositorio oficial de Centos no incluye el paquete de OpenVPN, lo cual nos obliga a ejecutar una serie de pasos adicionales. Aqui les dejo una guia de estos pasos que se les ahorrará tiempo a muchos y a mi mismo como referencia futura pues según las probabilidades pronto me tocará otra instalación de OpenVPN en Centos.
– Agregar estas líneas a /etc/yum.conf para utilizar el repositorio Dag
[dag] name=Repositorio Dag para Red Hat Enterprise Linux, Centos, Fedora baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1
– Instalar las llaves GPG para el repositorio Dag, de otra forma mostrará un error cuando se intente instalar un paquete.
cd /var/tmp wget [archivo-correspondiente-a-mi-instalacion] rpm -Uhv [archivo-correspondiente-a-mi-instalacion]
cat /etc/redhat-release
En mi caso particular, el último de los sistemas instalados fue CentOS release 5.5 (Final), luego el comando quedó asi:
cd /var/tmp wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm rpm -Uhv rpmforge-release-0.5.2-2.el5.rf.i386.rpm
Instalar las bibliotecas requeridas para OpenVPN:
yum install lzo lzo-devel zlib zlib-devel
– Y al final instalar OpenVPN:
yum install openvpn
– Copiar para /etc/openvpn los archivos de configuración de muestra:
cp -r /usr/share/doc/openvpn-2.1.4/easy-rsa/ /etc/openvpn/ cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/ cp -r /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/openssl /etc/openvpn
– Configurar como servidor o cliente: el programa es el mismo para ambas, la función es determinada por el contenido del archivo de configuración. Al final de los pasos anteriores OpenVPN se instaló como servicio, o sea, tiene ya un script en /etc/init.d y en Centos se puede manipular asi:
service openvpn [start | stop | restart ]
Para arrancar el servicio cuando reinicie el servidor:
chkconfig openvpn on
El servicio lee cualquier archivo en /etc/openvpn con extensión .cnf e inicia el servicio basado en este.
– El próximo paso es crear los certificados y las llaves (en caso de ser servidor) y los archivos de configuración, lo cual no repetiré aquí pues está muy bien documentado en el sitio de openvpn . Garantizar primero permiso de ejecución a los scripts en el directorio easy-rsa:
cd /etc/openvpn/easy-rsa/2.0 chmod +x clean-all chmod +x build* chmod +x vars chmod +x whichopensslcnf chmod +x pkitool
Configurar el servidor como un router a través de la VPN
– Primero activar el reenvio de paquetes: editar /etc/sysctl.conf y adicionar la linea:
net.ipv4.ip_forward = 1
El siguiente comando lo activa de forma inmediata pero no sobrevive a un reinicio:
echo 1 > /proc/sys/net/ipv4/ip_forward
– Activar las reglas de NAT de iptables. El siguiente ejemplo debe ajustarlo a su configuración específica, aqui se asume el siguiente escenario:
Subred OpenVPN: 10.8.1.1/24
IP local del servidor: 192.168.0.2
Subred local (LAN): 192.168.0.0/24
Gateway de la LAN: 192.168.0.1
DNS: 192.168.0.1
Desde el shell ejecutar:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -j SNAT --to 192.168.0.2 iptables -A FORWARD -d 10.8.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -s 10.8.1.0/24 -j ACCEPT
Guardar las reglas:
service iptables save
y asegurar que el servicio iptables se arranque automático al iniciar el servidor:
chkconfig iptables on
Listo!
Amigo desde hace dos dias estoy buscando la forma de hacer esto mismo pero descargando el repo completo para la pc, dime si tienes algun script o algo, Ya lo estoy haciendo con los repos normales, pero no he encontrado la forma de hacerloo con los de DAG. Alguna idea??
Gracias de antemano
Saludos
Fidel
He seguido su tutorial para instalar OpenVPN pero falla al iniciar el servicio.
Donde puedo chequear log u otra informacion que me de una pista del error?
Muchas Gracias,
Diego
/var/log/messages
Soy nuevo en VPN y Linux, Realize una website y esta alojada en GoDaddy mi cliente me pidio que el site permitiera hacer una consulta de estados de cuenta en linea a sus clientes. Para eso debo accesar un webservice en el servidor del cliente, pero el quiere que se haga con una VPN por motivos de seguridad.
Alguien me puede orientar paso a paso como debo hacerlo?
P.D. Alguien me dijo que comprara en godaddy un servidor dedicado asi que ya lo hice pero no se como hacer nada
hola buena tarde, soy nuevo en estos de las redes privadas virtuales podria asesorarme de como creear una paso a paso