Hace meses, Ronald Escalona un experto en seguridad informática me recomendó el uso de ProtonVPN. Abrí una cuenta gratuita en el sitio pero debes esperar a que te den respuesta luego de unas semanas debido a que el servicio gratuito es por cupos. Luego de recibir la invitación decidí probarlo en mi computadora con Arch Linux.

Logo de ProtonVPN

Configurar ProtonVPN en Arch Linux

ProtonVPN tiene compatibilidad con OpenVPN, desde el sitio de ellos puedes descargar una archivo .ovpn y configurar automáticamente el acceso. Pero al ejecutarlo me conseguí con el error:

Options error: --up script fails with '/etc/openvpn/update-resolv-conf': No such file or directory (errno=2)

Esto es debido a que el archivo de configuración de servidores DNS, ha cambiado en las últimas versiones de OpenVPN. Para ello primero debes instalar el paquete openvpn-update-systemd-resolved desde AUR:

trizen -S openvpn-update-systemd-resolved

En el ejemplo utilizo trizen (un wrapper de pacman) para instalar desde AUR. Una vez finalizada la instalación del paquete, solo debes editar el archivo .ovpn de ProtonVPN y colocar:

setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
script-security 2
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre

Guardas y ¡Listo! Estos cambios permiten que OpenVPN actualice los DNS en las versiones mas nuevas (utilizadas en Arch Linux),  una vez almacenado los cambios, deberías poder conectarte sin problemas.

Sobre el servicio

Hasta los momentos me ha parecido un buen servicio, además por una fuente (que no puedo mencionar) que realizó un estudio de privacidad de VPNs, me comentó que ProtonVPN no guarda registros de su conectados. Siendo uno de los servicios mas seguros del mercado. Se los recomiendo usar.

BigBlueButton es un grandioso software de código abierto que te permite ofrecer un aula virtual compuesta de diversas herramientas para dictar cursos y clases tales como: sala de chat, videoconferencias, llamadas, compartir escritorio, mostrar presentaciones, decidir quien va hablar entre otros. Al estar desarrollado para la plataforma web, muchas de estas herramientas utilizan WebRTC para realizar la transmisión de datos, pero en las últimas versiones de Firefox y Chrome para establecer conexiones directas, se requiere que la transmisión se haga por HTTPS por lo tanto requerirás un certificado para ello, hoy en día lo puedes hacer gratis con Let’s Encrypt.

¿Qué es Let’s Encrypt?

Let’s Encrypt es un servicio apoyado por múltiples organizaciones (entre ellas Mozilla), para brindar certificados de forma gratuita para que puedas ofrecer tus sitios bajo el protocolo HTTPS, el cual, permite servir páginas web de forma cifrada así nadie puede interceptar la información transmitida.

Actualmente Google premia con mejor valoración a aquellas páginas que funcionan con HTTPS y poco a poco será la norma en la web, por lo tanto, es recomendable su uso en un futuro inmediato. Para implementarlo, necesitas algo llamado «certificado»que te permite validar que tu sitio es realmente quien dice ser (evitando usurpaciones de identidad), a pesar de puedes comprar uno, puedes generar un certificado gratis con Let’s Encrypt cada 3 meses.

Let's Encrypt logo

Let’s Encrypt

Generando el certificado para BigBlueButton

Let’s Encrypt incluye una herramienta llamada certbot-auto para generar un certificado firmado por Let’s Encrypt, para validar el dominio utilice el parámetro –webroot, el cual, instala un archivo de comprobación en la raíz de tu servidor web para ser comprobado remotamente y así validar que realmente te encuentras en el servidor de ese dominio (existen otros medios como a través de DNS que omitiremos acá).

Cabe destacar, que el servidor web de BigBlueButton es nginx y posee una configuración para la raíz del dominio y otra para el servidor de BBB, en mi caso certbot no lo detectó y tuve que especificar la ruta de la raíz del servidor web utilizando el parámetro -w, ademas especificar el dominio para el cual deseas crear el certificado con el parámetro -d .

certbot-auto --webroot -w /usr/share/nginx/html -d tu-dominio.com certonly

Y el certificado se debería crear automáticamente en la ruta:

/etc/letsencrypt/live/TU_DOMINIO_WEB/fullchain.pem

Luego podrás seguir los pasos de la guía oficial sobre como Configurar HTTPS en BigBlueButton, previamente te recomiendo hacer un respaldo de cada archivo de configuración antes de modificarlo, pues me parece que es fácil equivocarse, ocasionando que BBB no arranque.

Luego, en el archivo /etc/nginx/sites-available/bigbluebutton debes especificar la ubicación del certificado y de la llave privada colocando las siguientes rutas:

ssl_certificate /etc/letsencrypt/live/tu_dominio_web/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tu_dominio_web/privkey.pem;

Una vez finalizado todos los pasos de la guía,reinicia el servicio y tendrás HTTPS en BigBlueButton, con ello podrás ofrecer la cámara web y diálogos a través de HTML5 sin depender de Flash.

Conclusiones

Espero que te sirva esta guía para tener tu certificado en el servidor de BigBlueButton, con esto asegurarás que el trafico en tu aula virtual esté cifrada y segura. Además, al realizar conexiones directas, notarás que la comunicación es mas rápida, sin retrasos porque algunas comunicaciones se harán directas y no deben pasar a través del servidor.

Internet es un medio de comunicación diseñado para que la información pudiese ser accedida de forma abierta y por cualquiera, pues en los inicios eran pocas las personas con acceso a la red. Pero fue evolucionando y se comenzó a transmitir información delicada como: datos personales, números de tarjeta de crédito, información bancaria, compras, entre otros. Asimismo, evolucionó para ofrecer páginas web seguras y brindar confianza a los usuarios frente a operaciones monetarias, información personal y más.

A continuación te daré unos breves consejos (todo este tema se puede expandir muchísimo) para tener una página web segura.

Alojarse en un servidor seguro

El primer paso es contar con un servidor seguro, esto se traduce principalmente en tener todo el software del sistema operativo y servicios actualizados, pues todos los días se descubren fallas de seguridad que los atacantes pueden correcciones de estas fallas y disminuyes consideradamente cualquier riesgo. Además debe estar configurado para ofrecer sólo los servicios necesarios, por ejemplo, si es solo un servidor web no debería estar el servicio de correo instalado (en caso que no se ofrezca) pues si se descubre un fallo en el mismo, puedes ser víctima de un ataque gracias a una aplicación que no era necesaria que estuviese en ejecución.

Es mandatario contar con un cortafuego (firewall) bien configurado, pues permite controlar las conexiones de red, el acceso al servidor o sistema y más. Este software es esencial para la seguridad, pues permite ocultar o proteger el acceso no autorizado de desconocidos, también de muchos tipos de ataques realizados por conexiones como los es DOS o DDOS donde muchas computadoras empiezan a solicitar más recursos de los que puedes proveer.

Si te parece muy compleja o técnica esta parte, entonces lo mejor es que pagues por un proveedor de alojamiento (hosting) como lo hago yo, de esta manera no pierdes tiempo en ello y te dedicas a otras cosas más importantes. Además, la mayoría de las empresas cuenta con personal capacitado para mantener todo el servidor seguro y recuperarlo ante cualquier desastre.

Cifrado de la comunicación

Cuando visitas una página, los datos deben ir desde tu equipo hasta el servidor donde está la página que vas a visitar, durante el camino existe la posibilidad de que tu información sea leída por terceros si ésta no está cifrada. Por ello debes asegurarte de implementar un protocolo de comunicación como HTTPS que permite transmitir la información de forma segura, pues si alguien tuviese acceso a interceptar tu data, no podrá leerla al estar cifrada (por lo tanto no es entendible).

En la misma compañía donde alojas tu página web segura, puedes solicitar un certificado TLS para implementar HTTPS y cifrar tus comunicaciones. Si andas corto de dinero, puedes utilizar el servicio Let’s Encrypt que te permite generar certificados de forma gratuita y respalda por grandes de Internet como Mozilla.

Páginas web seguras

Si tu navegador muestra HTTPS, tu conexión está cifrada

Tu página web segura o el software web

El software o la aplicación web es la parte donde se debe tener mayor cuidado, pues es la primera capa a la cual el usuario tiene acceso y generalmente donde se empieza a buscar vulnerabilidades. Aquí la principal norma es asumir que todo dato recibido por el usuario puede estar mal o ser maligno, por lo tanto se debe realizar comprobaciones sobre la seguridad de la data recibida: que el origen sea válido, contenido válido, contenido requerido y no se esté recibiendo otro tipos de cosas, entre otros.

El software también tiene que estar diseñado para soportar roles y separar las acciones de usuarios de administradores, e inclusive, cada sistema debería estar aislado para evitar la propagación de fallas o ataques. En realidad existen muchas cosas que se deben tomar en cuenta al desarrollar software, pero realizando auditorías y pruebas pueden verificar que todo esté funcionando bien.

Ejemplo de páginas segura

Por ejemplo, una página web segura para jugar al blackjack online es Casino.com, sitio que cumple con estas normas. Pues para ofrecer su excelente servicio de juegos deben asegurarse que ninguno de los clientes va a hacer trampa y dañe la experiencia del juego. Su software está validado para detectar cualquier anomalía y protegerse ante ella, los servidores están bien asegurados en caso que alguien quisiera saltarse la protección de las aplicaciones, la comunicación se encuentra cifrada y validada a través de su certificado TLS, permitiendo tener una buena partida de apuestas en línea sin problemas.

Espero que con estos consejos entiendas lo mínimo para tener un sitio seguro, recuerda que es una breve introducción al tema, pues existen muchas cosas que se deben comprobar y aplicar, generalmente hecha por muchos profesionales del área. Y por más que quisiéramos, la seguridad total no existe sólo podemos reducir la probabilidad de ser atacados.