Mostrando entradas con la etiqueta cat. Mostrar todas las entradas
Mostrando entradas con la etiqueta cat. Mostrar todas las entradas

Duck DNS servicio gratuito de DDNS

Aunque desde hace tiempo se implementó la ipv6 las operadoras de acceso a Internet no lo implementan en los hogares, aun continuamos con la ipv4 y por tanto nuestros router's aún tienen direcciones públicas dinámicas.
Para el "internet de las cosas", servidores VPN, servidores web, Nubes personales, nuestra propia red de vigilancia de cámaras..... Es complicado no tener una ip estática a la que acceder.

Entre las DDNS que nos ofrecen, de forma gratuita, acceso estable a nuestra ip dinámica, es DuckDNS.
Su página minimalista y muy simple. 




Una vez que nos hemos dado de alta nos mostrará el token que nos han asignado y podremos crear un subdominio que utilizaremos para acceder a nuestra ip dinámica.


Asignamos un nombre. Puesto que vamos a utilizar este para acceder desde internet a un servicio, o servidor que tengamos instalado en nuestra casa o empresa, no debería ser fácilmente reconocible, e incluso deberia ser ofuscado y complejo. Y por puesto no compartirlo de forma pública.

Al crear nuestro subdominio, automáticamente reconoce nuestra dirección ip. Accediendo al dirección creada el servidor DNS redirigirá a nuestro navegador a la ip registrada. Podemos crear hasta cinco subdominios con distintos nombre y podremos asignarles cinco direcciones diferentes.

DuckDNS dispone de herramientas para poder actualizar la dirección ip dinámica de nuestro servidor.


Tenemos distintos scripts,  programas para instalar, dependiendo de nuestro sistema operativo. También podemos implementarlo en nuestro router.

Si por ejemplo disponemos una Raspberry y la utilizamos como servidor, tambien la podemos utilizar para comunicar a DuckDNS nuestra nueva dirección pública.

Accederemos a nuestra Raspberry a través de la pasarela ssh

ssh pi@raspberrypi

Creamos un directorio, accedemos a él y creamos un nuevo archivo llamado duck.sh.

mkdir duckdns
cd duckdns
nano duck.sh

Copiamos el script que le informará a nuestro DDNS de nuestra dirección actual. Si hemos registrado un subdominio nos personaliza el script con dicho subdominio, nuestro TOKEN y solo tendremos que copiar y pegar.

echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=" | curl -k -o ~/duckdns/duck.log -K -

Guardamos crtl+o y salimos del editor crtl+x . Y le otorgamos privilegios de ejecución.

chmod 700 duck.sh

Añadimos una línea en el cron que ejecutará nuestro script cada cinco minutos, manteniendo la relación de nuestro subdominio con la ip de nuestro servidor actualizada

crontab -e

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Probamos que que todo está correcto, ejecutando nuestro archivo y comprobando que nuestro archivo de eventos ha recogido el ok.

cat duck.log

Los directorio en Linux

Un anuncio decía que pasabamos mas de media vida buscando. En sistemas basado en Linux hay un sitio en cada carpeta y cada carpeta contiene:

  • / La raíz  del árbol de directorios. No determina ninguna unidad como podría ser en MS-DOS o Windows c: ó d: . Por que las distintas unidades se encuentran en otra carpeta y se acceden desde ella, pero siempre colgará de la raíz.
  • /bin contiene ficheros de comandos ejecutables utilizables por todos los usuarios. Aquí tenemos los programas que pueden lanzar todos los usuarios del sistema. Incluye también los binarios que permiten la ejecución de varias utilidades estándar de la terminal de Linux, concretamente cat, cd, cp, echo, grep, gzip, kill, ls, mv, rm, ping, su, ps, tar y vi.
  • /boot Este directorio incluye todos los ejecutables y archivos que son necesarios en el proceso de arranque del sistema, y que deberán ser utilizados antes que que el kernel empiece a dar las órdenes de ejecución de los diferentes módulos del sistema. Es también donde se encuentra el gestor de arranque GRUB.
  • /dev Este directorio incluye todos los dispositivos de almacenamiento, en forma de archivos, conectados al sistema, es decir, cualquier disco duro conectado, partición, memoria USB, o CDROM conectado al sistema y que el sistema pueda entender como un volumen lógico de almacenamiento.
  • /etc contiene los ficheros de configuración y utilidades para la administración. Tanto del sistema operativo con de las diversas aplicaciones que fuéramos instalando.
  • /home es un directorio donde se encuentran los directorios personales y los archivos particulares de configuración de los usuarios del sistema.
/home/user1/home/user2
  • /lib contiene librerías y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin únicamente. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, referida a las bibliotecas para aplicaciones de 64 bits.
  • /media contiene todas las unidades físicas que tenemos montadas: discos duros, unidades de DVD, pen drives, etc.
  • /opt sirve para admitir ficheros nuevos creados tras la modificación del sistema. Es un punto de montaje desde el que se instalan los paquetes de aplicación adicionales. Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por ejemplo, aquellas que compilamos a mano.
  • /proc Este directorio contiene información de los procesos y aplicaciones que se están ejecutando en un momento determinado en el sistema, pero realmente no guarda nada como tal, ya que lo que almacena son archivos virtuales, por lo que el contenido de este directorio es nulo. Básicamente son listas de eventos del sistema operativo que se generan en el momento de acceder a ellos, y que no existen dentro del directorio como tales. No deberíamos modificar el contenido de este directorio.
  • /sbin es para ejecutables de uso exclusivo por el root tales como el arranque, tareas de restauración, reparación, etc.. Son los necesarios para arrancar y montar el directorio /usr.
  • srv Sirve para almacenar archivos y directorios relativos a servidores que puedas tener instalados dentro de tu sistema, ya sea un servidor web www, un servidor FTP, CVS, etc.
Así, por ejemplo, en el caso de tener instalado un servidor web, sería buena idea tener el directorio web público dentro de /srv, tal como así:
/srv/www
  • /tmp es donde se almacenan los archivos temporales.
  • /usr contiene utilidades y programas generales de usuario:
    • /usr/bin contiene programas de uso general.
    • /usr/share contiene archivos compartibles, independientes de la arquitectura.
      • /usr/share/doc contiene cierta documentación del sistema.
      • /usr/share/man contiene los manuales.
    • /usr/etc contiene archivos de configuración de uso global.
    • /usr/include contiene las cabeceras de C y C++.
    • /usr/lib contiene las bibliotecas de nuestros programas.
    • /usr/sbin contiene los programas de administración del sistema.
    • /usr/src contiene los códigos fuente de nuestros programas.
  • /var contiene ficheros para el administrador. Este directorio contiene información variable, como registros, datos de los servidores, etc.