«Producir y nutrir,
producir y no poseer,
obrar y no retener,
acrecentar y no regir,
son el misterio de la vida.»
Creando un servicio personal de OpenVPN
He decidido, por fin, crear mi propio servicio VPN. Los motivos principales son poder asegurar navegación privada y cercionarme que uso un servicio de confianza 100% auditado… por mi.
Requisitos
- servicio OpenVPN
- usando docker
- servidor Centos 7
- reutilizando alguna configuración existente
- pero sin reutilizar imágenes publicadas en el Docker Hub, por celo en la seguridad
- poder conectar desde máquinas Linux y teléfonos Android
La configuración elegida es una creada por Kyle Manna: https://github.com/kylemanna/docker-openvpn/ ¡Gracias Kyle!
Procedimiento de instalación y configuración del servidor
En este caso usamos CentOS 7, pero como no está disponible docker-compose he tenido que retro-portarlo y lo tenéis disponible en un repositorio específico.
Preparación:
cd /etc/yum.repos.d ; wget https://copr.fedorainfracloud.org/coprs/olea/docker-compose/repo/epel-7/olea-docker-compose-epel-7.repo
yum install -y docker docker-compose
yum install -y docker-lvm-plugin.x86_64 docker-latest.x86_64
yum upgrade -y
groupadd docker
usermod -G docker -a USUARIO
echo "VG=sys" > /etc/sysconfig/docker-storage-setup
docker-storage-setup
systemctl enable docker
systemctl start docker
Si docker ha podido arrancar entonces probablemente está listo para empezar a trabajar.
Obviamente también hay que configurar el DNS del servicio VPN.MISERVIDOR.COM en el servidor correspondiente.
Entrando en materia:
mkdir servicio-VPN.MISERVIDOR.COM
cd servicio-VPN.MISERVIDOR.COM
git clone https://github.com/kylemanna/docker-openvpn
cat <<EOF > docker-compose.yml
version: '2'
services:
openvpn:
build:
context: docker-openvpn/
cap_add:
- NET_ADMIN
image: Mi-ID/openvpn
ports:
- "1194:1194/udp"
restart: always
volumes:
- ./openvpn/conf:/etc/openvpn
EOF
Y continuando con las instrucciones indicadas:
- construimos localmente la imagen docker desde cero de una sola vez:
docker-compose run --rm openvpn ovpn_genconfig -u udp://VPN.MISERVIDOR.COM
- iniciamos la AC local propia (se nos pedirá la contraseña de la clave privada):
docker-compose run --rm openvpn ovpn_initpki
- finalmente lanzamos el contenedor:
docker-compose up -d openvpn
Procedimiento de altas de usuarios
- Alta del usuario:
docker-compose run --rm openvpn easyrsa build-client-full USUARIO nopass
- generación de la configuración local de OpenVPN para el mismo usuario:
docker-compose run --rm openvpn ovpn_getclient USUARIO > USUARIO.ovpn
- Este fichero lo copiaremos a nuestra máquina porque es el que nos habilitará el acceso VPN.
Problema importando configuraciones de OpenVPN y NetworkManager
Personalmente me he encontrado el problema varias veces de que el GUI de configuración de NetworkManager no es capaz de importar los certificados criptográficos al configurar una conexión VPN importando ficheros ovpn. Tras investigarlo varias veces he concluido que se debe a un bug documentado que en mi caso no está resuelto en NetworkManager-openvpn-gnome-1.0.8-2.fc23 pero sí en NetworkManager-openvpn-gnome-1.2.4-2.fc24.
Si aún os encontráis con ese problema habría dos alternativas: o actualizar a una versión reciente de NM o conectarse manualmente desde el CLI:
sudo /usr/sbin/openvpn --config USUARIO.ovpn
Conferencia: HackLab Almería, un modelo de dinamización tecnológica hiperlocal
El 24 de noviembre he sido invitado a charlar para hablar de la experiencia de HackLab Almería en un evento en Antequera organizado por IBM. He aprovechado para seguir trabajando en el material retrospectiva del HackLab Almería que preparé para el GDG Spain Summit y lo he adaptado a formato de transparencias con mi agradecido Slidy.
Las transparencias están disponibles en http://olea.org/conferencias/doc-conf-20161124-Encuentro-IBM/
Además voy a tener la oportunidad de volver a impartir la conferencia en un par más de ocasiones así que creo que refinaré más aún este material, que también me sirve para profundizar la retrospectiva de los dos años largos que he dedicado a «la movida HackLab Almería».
Gracias a Haroldo Díaz Armas por la invitación, a Elisa Martín Garijo por sugerir mi persona y a Javier Bentabol por su entusiasmo con nosotros.
Retrospectiva HackLab Almería 2012-2015 y pico
Este fin de semana tuve el privilegio de ser invitado por GDG Spain y en particular por ALMO para presentar en el Spanish GDG Summit 2016 la experiencia de la actividad en el HackLab Almería:
Aunque llegué muy inseguro porque soy muy crítico con los que considero fracasos míos, al conocer las vicisitudes de los grupos locales del GDG comprobé que a nosotros no nos va tan mal y que tenemos experiencias muy interesantes para terceros.
De paso me ha servido para reconsiderar parte del trabajo hecho y para documentar más claramente nuestras cosas para nuestra propia gente: creo que es buena idea que todos le demos un repaso.
Es posible que haya algún error y alguna carencia. Todas las opiniones son absolutamente personales y no todo el mundo ha de compartirlas. No tengo tanto interés en discutir las afirmaciones como de corregir errores o inconsistencias. Tened presente de que no es una memoria completa de actividades porque eso sería enooorme, sólo una retrospectiva esquemática.
Está escrita en formato de mapa-mental usando Freemind 1.0.1. El formato tal vez os parezca engorroso, pero las restricciones de tiempo y de presentación de la información no me han permitido nada mejor. Lamento las molestias. Podéis descargar el fichero que incluye el mapa desde aquí: 201609-GDG-Experiencia_HackLabAl.zip
PS: esta misma entrada ha sido publicada en el foro del HackLab Almería.

