Hoy me he encontrado con un problema. Quiero activar el firewall (ufw) de mi pc de escritorio para permitir las conexiones desde mi portatil esté donde esté. Pero claro, ¿cómo hago que esto ocurra de forma automática?
Lo que voy a hacer es lo siguiente:
- Dar de alta un dominio en https://dondns.es/ddns
- Configurar en mi portatil una tarea para que actualice la ip en el servicio de dns dinámico.
- Crear un script en mi pc de escritorio, para que compruebe cada cierto tiempo la ip del dominio creado en el paso 1 y añada la regla al firewall
El unico requisito a parte de crear la cuenta y el host en https://dondns.es/ddns es tener activado el ufw.
1.- Dar de alta un dominio en https://dondns.es/ddns
Nos metemos en la web, y nos registramos. Una vez hayamos creado la cuenta, creamos un dominio en el formulario
2.- Configurar en mi portatil una tarea para que actualice la ip en el servicio de dns dinámico.
Para que el ddns funcione, podemos o bien bajarnos el cliente correspondiente, o bien hacer una petición get al servicio ddns, esta petición se hace llamando a la siguiente url cambiando el hostname por el hostname que tu hayas elegido:
https://usuario:contraseña@dondns.es/nic/update?hostname=athosufw.dondns.es
Por ejemplo:
athos@athos-Z97P-D3:~$ curl https://email%40dominio.com:tucontraseña@dondns.es/nic/update?hostname=athosufw.dondns.es
{"ok":true,"id":"dondns.es.","rev":"16055-b32d0b07c400a83c1219f49c717e4a0e"}
Fijaros que para introducir las credenciales, lo hacemos entre https:// y la @. A la izquierda de los “:” el usuario y a la derecha la contraseña. Como el usuario es una dirección de correo electrónico, tenemos que codificar la @ y poner un %40
Claro, esto nos ha actualizado la ip una vez, pero nosotros queremos que esto sea automático, así que creamos una tarea programada en cron.
crontab -e
30 * * * * /usr/bin/curl https://email%40dominio.com:tucontraseña@dondns.es/nic/update?hostname=athosufw.dondns.es
0 * * * * /usr/bin/curl https://email%40dominio.com:tucontraseña@dondns.es/nic/update?hostname=athosufw.dondns.es
Aquí he creado dos tareas, para que me actualice la direccion a las horas “en punto” y “a y media”
3. Crear un script en mi pc de escritorio, para que compruebe cada cierto tiempo la ip del dominio creado en el paso 1 y añada la regla al firewall
Ahora tenemos que crear un script en el pc de escritorio que compruebe la dirección ip que tiene ese dominio, y añada la regla a ufw. El script será algo parecido a esto:
Archivo updateIpUfw
#!/bin/bash
IP=`dig athosufw.dondns.es +short`
ufw allow from $IP
Este script, podríamos mejorarlo, haciendo que borrase la ip anterior, para esto, tendríamos que guardar la ip en cada actualización para luego poder borrarla.
Y sólo nos queda hacer que se ejecute el script de forma automática, también con una tarea de cron.
crontab -e
* * * * * /bin/bash /path/al/archivo/updateIpUfw
Y con esto podremos tener nuestro firewall activado, y permitir solamente las conexiones desde la ip que resuelva el dominio que hemos creado.
Hay que tener en cuenta, que según las TTL que tenga el host que creamos, puede tardar un rato en que todo esto tenga efecto, pero por lo menos, podremos tener todo el tráfico cerrado a nuestra máquina de escritorio, salvo esa dirección ip.