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

¿Necesito una VPN?

Con el pretexto de aumentar nuestra seguridad y privacidad, nos asaltan los anuncios sobre servicios que ofrecen VPN`s bien de forma gratuita o de pago. Pero realmente ¿necesito una VPN?
Cada usuario tiene unas necesidades, para saber si necesitamos una VPN deberemos conocer como funciona y cuales son sus ventajas y sus inconvenientes.

El anagrama V.P.N. (Virtual Private Network) significa Red Privada Virtual. Es una tecnología de encriptación que permite crear una red con acceso limitado utilizando una red publica.


Explicación gráfica del funcionamiento de una VPN

La necesidad de conectar distintas sedes, distantes entre si. Plantea la duda de como conectarlas e integrarlas dentro de la red para compartir entre todas servidores, impresoras, si no es posible crear una red propia. Una de las redes que se pueden utilizar es Internet, pero es una red abierta y accesible a todo el mundo. Una VPN crea una protección y una identificación para que las distintas sedes o equipos realicen sus conexiones de forma privada a través de una red publica, mediante software o hardware.

Torres de alta tensión
En algunos casos los tensores que unen las torres de alta tensión llevan dentro una fibra óptica que permiten la conexión entre los distintos centros de transformación, estos pueden estar a cientos de kilómetros. Con está interconexión entre distintos centros puedes crear una red privada física y no virtual

Repetidor de telefonía móvil
Los repetidores de telefonía móvil, repetidores de televisión etc.. Pueden crear una red interna mediante enlaces de micro-ondas. Esto permite conectarse entre las distintas estaciones en una red privada, no accesible por terceras personas. Si la red fallará tambien se pueden interconectar a través de enlaces satelitales



¿A ti que estas leyendo esto en que te puede ser necesario adquirir una VPN?
  • Si viajas mucho y es habitual que te conectes a Wifi`s publicas es muy probable que debas contratar una VPN para tus dispositivos. Es muy recomendable que tus interacciones con Internet se realicen de forma encriptada para evitar ataques 'man in the middle' . No sabes quien puede estas "escuchando" dentro de una red publica.
Free Wifi


  • Si tienes una pequeña empresa o un hogar en el cual quieres tener acceso a tus servidores locales, NAS, Plex, Home Assistant, Pi-Hole, DLNA..... O quieres añadir más seguridad, controlando y filtrando donde navegan tus empleados o menores mediante un servidor de filtrado parental Y quieres garantizar que tus conexiones son seguras y fiables, trabajando con equipos externos como si te encontraras en la oficina o en tu casa. En este caso tienes la opción de contratar o crear tu propio servidor VPN, por ejemplo con una Raspberry o un viejo ordenador.

  • Muchos, por no decir todos los servicios de contenido audiovisual on-line penalizan la compartición de cuentas. Una de las soluciones puede ser conectarse todos aquellos usuarios que se encuentran compartiendo la misma cuenta a una VPN para crear un "hogar" y que servicio no nos penalice.
  • Evitar filtros de navegación. Ciertas operadoras penalizan el uso de ciertas aplicaciones o servicios p2p como torrent. Para evitar o controlar el uso de grandes cantidades de datos. Al encriptar nuestra navegación, la operadora desconoce que servicios o protocolos estamos utilizando para descargar datos.

  • Puede ser que el contenido al que quieres acceder se encuentre censurado en tu país. Si utilizas la VPN que te ofrecen ciertos navegadores tales como: Opera, Firefox, Edge o Brave, podrás acceder a internet o ser visible en un país distinto de donde te encuentras realmente y sortear el bloqueo geográfico. Recuerda que al utilizar una Red Privada Virtual es como si navegaras por la red de redes en un submarino y solo seras visible cuando emerges después del servidor de la VPN. Por ejemplo, no es posible ver cierto contenido de fútbol en una plataforma en un país latino si es de pago, pero en Alemania esa misma plataforma lo ofrece de forma gratuita. En este caso solo estarán protegidas las conexiones que realices mediante el navegador y no las que realices en otras aplicaciones.
Captura de pantalla Brave VPN

  • Si eres muy celoso de tu intimidad y quieres que no te rastreen. Aunque en este caso se pueden implementar otras medidas para evitar que tengan controlado.

    • Navegar siempre por páginas seguras: https://
Conexión no segura


    • Utilizar la red Tor para ofuscar tu localización real
    • Utilizar navegadores que nos protegerán de rastreadores maliciosos como: Vivaldi o Brave.
    • Realizar conexiones al servidor mediante terminal utilizando el protocolo SSH.
    • Utilizar APP oficiales.
    • Utilizar aplicaciones de mensajería seguras, como Telegram o Signal

Escanear todos los sistemas dentro de nuestro rango con Nmap

Nmap es un programa de código abierto y multiplataforma que sirve para efectuar rastreo de puertos.

En este caso vamos a realizar un escaneo de todos los dispositivos conectados a nuestro rango de IP. Para que nos muestre en un archivo que puertos se encuentran abiertos, y por lo tanto una puerta de entrada a posibles ciberataques. 

Captura de pantalla ejecución nmap a través de Virtualbox corriendo el sistema operativo Kali

Te dejo un ejemplo, para utilizar en terminal Linux, para realizar un escaneo a todos los equipos que se encuentren en nuestra LAN.

Si solo quieres realizar un escaneo a un equipo, cambiaremos <comienzo de nuestro rango ip>/24 por el numero de IP del equipo que queremos analizar, por ejemplo 192.168.5.12

sudo nmap -p- --open -T5 -v -n -A -sV -Pn -sS <comienzo de nuestro rango ip>/24 -oX Descargas/escaneo.xml

  • sudo: permite ejecutar comandos con privilegios de «super usuario».
  • nmap: es la herramienta que vas a utilizar para realizar el escaneo de puertos.
  • -p- : hace referencia a los puertos.
  • --open: sirve para seleccionar únicamente los puertos que están abiertos.
  • -T5: hace referencia al temporizador del escaneo. Puede ir de 0 a 5, donde 0 es menos agresivo y lento y 5 es más agresivo y rápido.
  • -v: aplica verbose, para ver los resultados según va escaneando.
  • -n: no aplica resolución DNS, lo que genera más ruido y ralentiza el escaneo.
  • -A: detecta el sistema operativo y los servicios. 
  • -sV: descubre las versiones de los servicios.
  • -Pn: evita el descubrimiento de host, que puede ralentizar el análisis.
  • -sS: realiza la comunicación a través del protocolo TCP más rápida.
  • <comienzo de nuestro rango ip>/24 Buscaremos en toda nuestra red. Si nuestro equipo se encuentra en la dirección IP 192.168.5.12 y la mascara de subred fuera 255.255.255.0, nuestro rango IP seria 192.168.5.0/24
  • -oX se utiliza para exportar a un archivo y el resto del comando hace referencia a la ubicación en la que se va a descargar un archivo denominado «escaneo.xml», donde se guardarán todos los puertos abiertos que ha encontrado el escaneo.
🔔 Es posible que le lleve tiempo rastrear todos los servicios y todos los equipos de la red. Con esta configuración obtendremos mucha información de todos los dispositivos que se encuentran en nuestra LAN

Para facilitar su visualización utilizaremos el comando xsltproc

xsltproc Descargas/escaneo.xml -o escaneo.html


Resultado en html del un escaneo de puertos realizado con nmap
 

Cannot open access to console, the root account is locked.

Qué hacer si al arrancar nuestra RaspBerry no nos permite abrir la consola por que la cuenta del root esta bloqueada:

Cannot open access to console, the root account is locked.
Cannot open access to console, the root account is locked.

En mi caso estaba añadiendo Montar disco duro usb en linux
Una vez editado el archivo  /etc/fstab reinicie la el servidor y ya no fue posible iniciar sesión a través de ssh. Al conectar la pantalla y el teclado a la RaspBerry me aparecia el mensaje: Cannot open access to console, the root account is locked.

La solución es muy simple: 
  • Extraemos la tarjeta sd 
  • y la introducimos en el lector de otro ordenador, 
  • accedemos a la tarjeta en la partición /boot. 
  • Una vez dentro buscamos la carpeta y el archivo /etc/fstab 
  • como root, o permisos de administrador y borraremos y/o editamos la linea errónea. 
Si usamos un navegador de archivos, deberemos abrir la carpeta en modo root
Si usamos un navegador de archivos, deberemos abrir la carpeta en modo root


Una vez guardado los cambios volveremos a colocar la tarjeta SD en nuestro pequeño servidor y este arrancara sin problemas.

 

Instalar servidor MiniDLNA

Vamos a instalar un servidor DLNA en, por ejemplo Raspberry, para utilizarla de servidor multimedia para poder ver nuestros archivos en nuestra SmartTV. La tecnología DLNA es admitida por la mayoría de dispositivos multimedia actuales, a diferencia de utilizar un servidor PLEX en la que tenemos que instalar la APP en nuestra SmartTV y registrándose en su plataforma.

Es un servidor muy sobrio y de un consumo de recursos muy reducido, el aspecto es el de un explorador de archivos, y su reproductor multimedia muy simple. Pero cumple su función de servidor de videos, música e imágenes en nuestra red local.

También podríamos instalar nuestro servidor DLNA en un viejo ordenador en el que hubiéramos instalado un Linux con alguna de las múltiples distribuciones basadas en Debian.

Accedemos a nuestra Raspberry o nuestro servidor casero a traves de SSH e instalamos con privilegios de root la aplicación MiniDLNA también conocida como ReadyMedia

sudo apt-get install minidlna

 Iniciaremos el servicio:

sudo service minidlna start

Y habilitaremos minidlna para que el servicio sea levantado cuando iniciemos nuestro servidor local 

sudo service minidlna enable

Deberemos acceder al archivo de configuración para indicarle, entre otras cosas, la ruta donde se encuentran los archivos que queremos mostrar en nuestra LAN. Estos se pueden encontrar en un disco duro externo que habremos conectado a través del puerto USB de nuestro servidor doméstico.

sudo nano /etc/minidlna.conf

Accederemos a un archivo de texto plano donde cambiaremos

  • Ubicación de los archivos de video
media_dir=V,/media/downloads/videos
  • Ubicación de los archivos de música: 
media_dir=A,/media/downloads/musica
  • Ubicación de los archivos de imagen
media_dir=P,/media/downloads/fotos

  • Ubicación de la base de datos que almacenará los archivos que se mostraran
db_dir=/var/cache/minidlna

  •  Si queréis almacenar logs de lo que pasa en el servidor tienen que descomentar esta línea. Los logs los podréis encontrar en la ubicación.
log_dir=/var/log

  •  Puerto en el que escuchara el pequeño servidor web, que nos mostrara una pequeña información de nuestro servidor. No podremos realizar ninguna acción, como por ejemplo la de configuración
port=8200


MiniDLNA status

  •  Nombre con el que se anunciara en nuestros clientes multimedia
friendly_name=Pi

  • Seleccionamos la opción yes. De este modo, cuando se borre o copie contenido del servidor se actualizará la información de la base de datos

inotify=yes

  •  Definimos los nombres que deben tener las caratulas de un audio o vídeo. Si queremos definir una caratula para una película podemos hacerlo guardando una imagen con el nombre cover.jpg o Cover.jpg en la carpeta que contiene la película. El tamaño recomendado es de 160×160 pixeles
album_art_names=cover.jpg/cover.jpg

  • En esta linea configuramos el intervalo de segundos que nuestro servidor anunciara su presencia en la red. Un buen intervalo serian cada 60 segundos
notify_interval=60

Una vez modificado el archivo a nuestro gusto, lo guardaremos y reiniciaremos el demonio para que la nueva configuración tenga efecto:

sudo service minidlna restart

MiniDLNA usa la propiedad del Kernel inotify para detectar las modificaciones en cada una de las carpetas que almacena contenido. Al detectarse una modificación se actualiza el contenido de la base de datos /var/cache/minidlna/files.db.


Para que inotify pueda monitorizar las modificaciones tendremos que cambiar sus límites. Para fijar un nuevo límite ejecutaremos el siguiente comando:

sudo echo 65538 > /proc/sys/fs/inotify/max_user_watches 

sudo service minidlna restart

Si por alguna razón deseamos reconstruir la base de datos:

sudo service minidlna force-reload

Y listo ya tendríamos un servidor multimedia en nuestra red local y podríamos ver nuestros videos en nuestro:

  • SmartTV
Botón Source, Entrada externa o Fuente

 


  • En otros dispositivos podemos utilizar el reproductor multimedia VLC 
Accederemos a Plug’n’Play Universal y esperamos a que VLC encuentre nuestro servidor miniDLNA y nos permita reproducir su contenido.

Actualizar Pi-Hole

En una entrada anterior ya recomendamos la utilización de Pi-Hole para realizar un bloqueo por denegación de DNS de direcciones maliciosas o la publicidad de las páginas que visitamos o de los equipos que queremos monitorizar.
Para actualizarlo, accederemos a través de SSH al terminal donde tendremos corriendo Pi-hole y ejecutaremos la instrucción:

pihole -up 1

Y ya está, ha sido sencillo. 

  [i] Checking for updates...

  [i] Pi-hole Core:     update available

  [i] Web Interface:    update available

  [i] FTL:              update available


  [i] Pi-hole core files out of date, updating local repo.

  [✓] Check for existing repository in /etc/.pihole

  [i] Update repo in /etc/.pihole...HEAD is now at cbc3fbd Merge pull request #3989 from pi-hole/release/v5.2.3

  [✓] Update repo in /etc/.pihole


  [i] If you had made any changes in '/etc/.pihole/', they have been stashed using 'git stash'


  [i] Pi-hole Web Admin files out of date, updating local repo.

  [✓] Check for existing repository in /var/www/html/admin

  [i] Update repo in /var/www/html/admin...HEAD is now at 3ff33a3 Merge pull request #1704 from pi-hole/release/v5.3

  [✓] Update repo in /var/www/html/admin


  [i] If you had made any changes in '/var/www/html/admin/', they have been stashed using 'git stash'


  [i] FTL out of date, it will be updated by the installer.


  [✓] Root user check


        .;;,.

        .ccccc:,.

         :cccclll:.      ..,,

          :ccccclll.   ;ooodc

           'ccll:;ll .oooodc

             .;cll.;;looo:.

                 .. ','.

                .',,,,,,'.

              .',,,,,,,,,,.

            .',,,,,,,,,,,,....

          ....''',,,,,,,'.......

        .........  ....  .........

        ..........      ..........

        ..........      ..........

        .........  ....  .........

          ........,,,,,,,'......

            ....',,,,,,,,,,,,.

               .',,,,,,,,,'.

                .',,,,,,'.

                  ..'''.


  [✓] Update local cache of available packages

  [i] Existing PHP installation detected : PHP version 7.4.3

  [i] Performing unattended setup, no whiptail dialogs will be displayed


  [✓] Checking apt-get for upgraded packages... 19 updates available

  [i] It is recommended to update your OS after installing the Pi-hole!


  [i] Installer Dependency checks...

  [✓] Checking for dhcpcd5

  [✓] Checking for git

  [✓] Checking for iproute2

  [✓] Checking for whiptail

  [✓] Checking for dnsutils


  [✓] Supported OS detected

  [i] SELinux not detected

  [i] Performing reconfiguration, skipping download of local repos

  [✓] Resetting repository within /etc/.pihole...

  [✓] Resetting repository within /var/www/html/admin...

  [i] Main Dependency checks...

  [✓] Checking for cron

  [✓] Checking for curl

  [✓] Checking for iputils-ping

  [✓] Checking for lsof

  [✓] Checking for netcat

  [✓] Checking for psmisc

  [✓] Checking for sudo

  [✓] Checking for unzip

  [✓] Checking for wget

  [✓] Checking for idn2

  [✓] Checking for sqlite3

  [✓] Checking for libcap2-bin

  [✓] Checking for dns-root-data

  [✓] Checking for libcap2

  [✓] Checking for lighttpd

  [✓] Checking for php7.4-common

  [✓] Checking for php7.4-cgi

  [✓] Checking for php7.4-sqlite3

  [✓] Checking for php7.4-xml

  [✓] Checking for php7.4-json

  [✓] Checking for php7.4-intl


  [✓] Enabling lighttpd service to start on reboot...

  [✓] Checking for user 'pihole'


  [i] FTL Checks...


  [✓] Detected x86_64 processor

  [i] Checking for existing FTL binary...

  [✓] Downloading and Installing FTL

  [✓] Installing scripts from /etc/.pihole


  [i] Installing configs from /etc/.pihole...

  [i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!

  [✓] Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf


  [i] Installing blocking page...

  [✓] Creating directory for blocking page, and copying files

  [i] Backing up index.lighttpd.html

      No default index.lighttpd.html file found... not backing up


  [✓] Installing sudoer file


  [✓] Installing latest Cron script


  [✓] Installing latest logrotate script

  [i] Backing up /etc/dnsmasq.conf to /etc/dnsmasq.conf.old

  [✓] man pages installed and database updated

  [i] Testing if systemd-resolved is enabled

  [i] Systemd-resolved does not need to be restarted

  [✓] Restarting lighttpd service...

  [✓] Enabling lighttpd service to start on reboot...

  [i] Restarting services...

  [✓] Enabling pihole-FTL service to start on reboot...

  [✓] Restarting pihole-FTL service...

  [✓] Deleting existing list cache

  [i] Neutrino emissions detected...

  [✓] Pulling blocklist source list into range


  [✓] Preparing new gravity database

  [i] Using libz compression


  [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

  [✓] Status: Retrieval successful

  [i] Received 58568 domains


  [i] Target: https://mirror1.malwaredomains.com/files/justdomains

  [✗] Status: Not found

  [✗] List download failed: no cached list available


  [i] Target: https://www.sunshine.it/blacklist.txt

  [✓] Status: Retrieval successful

  [i] Received 82108 domains


  [✓] Storing downloaded domains in new gravity database

  [✓] Building tree

  [✓] Swapping databases

  [i] Number of gravity domains: 140676 (131363 unique domains)

  [i] Number of exact blacklisted domains: 6

  [i] Number of regex blacklist filters: 0

  [i] Number of exact whitelisted domains: 16

  [i] Number of regex whitelist filters: 1

  [✓] Flushing DNS cache

  [✓] Cleaning up stray matter


  [✓] DNS service is listening

     [✓] UDP (IPv4)

     [✓] TCP (IPv4)

     [✓] UDP (IPv6)

     [✓] TCP (IPv6)


  [✓] Pi-hole blocking is enabled


  [i] The install log is located at: /etc/pihole/install.log

Update Complete! 


  Current Pi-hole version is v5.2.3.

  Current AdminLTE version is v5.3.

  Current FTL version is v5.4.

Como borrar las claves almacenadas ssh de un equipo

Al iniciar la conexión ssh con un nuevo servidor, nos advierte que no es de confianza y si queremos almacenar las claves. Esta asociación es almacenada y nos permitirá encriptar las conexiones con el ordenador que queremos conectarnos.

sudo ssh 192.168.100.2 -l enfaseterminal
The authenticity of host '192.168.0.4 (192.168.100.2)' can't be established.
ECDSA key fingerprint is SHA256:EAM0qnIeDoo4cjNdWxkvbiRpc+5TREn4eaJ6+6WvT0U.
Are you sure you want to continue connecting (yes/no)?

En los siguientes inicios de sesion a traves de ssh no nos pedirá esta confirmación de seguridad, por que la asociación ya ha sido almacenada. 
Pero si en algún momento la confianza entre el servidor y el cliente se corrompe. La conexión no será posible.


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@                                   WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!                                                              @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.


Por una reinstalación del equipo o una actualización del sistema....., la clave maestra se modificara, y por lo tanto no coincidirá con la que nuestro cliente tiene almacenada, y por lo tanto la conexión ya no será segura, y no se permitirá. Esto requiere por nuestra parte una doble confirmación.
Tendremos que almacenar los datos almacenados de nuestro servidor.

Primero tendremos que borrar de la base de datos la dirección ip y la clave maestra a ella asociada.

sudo ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.100.2"

Y nos responderá, la dirección ip del servidor ha sido encontrada y borrada del almacén y archivo actulizado. Pero por si fuera necesario se ha guardado una copia del original.

 # Host 192.168.100.2 found: line 2
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

Y Segundo, al volver a conectar nos pedirá confirmación para almacenar el servidor SSH  y su clave SHA256.

sudo ssh 192.168.100.2 -l enfaseterminal
The authenticity of host '192.168.0.4 (192.168.100.2)' can't be established.
ECDSA key fingerprint is SHA256:EAM0qnIeDoo4cjNdWxkvbiRpc+5TREn4eaJ6+6WvT0U.
Are you sure you want to continue connecting (yes/no)?

Temas relacionados:


 

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

Pi-Hole Aumentando nuestra seguridad y privacidad

Un servidor DNS es aquel que nos da información de la dirección ip (números raros, pero fundamentales para la comunicación a través de internet) donde se encuentra el dominio que hemos escrito en nuestro navegador.

ping google.es

En el caso que queramos acceder a www.google.es, nuestro navegador solicitará a un servidor DNS que dirección tiene este dominio y donde se encuentra
Dominio www.google.es Dirección IP 172.217.168.163

 Pi-Hole es: Bloqueo de anuncios en toda la red Pi-hole®

Página web Pi-Hole

La idea es que nuestros dispositivos realicen las peticiones DNS a Pi-Hole y este filtre las direcciones que resulten dañinas y/o contienen publicidad. Y realice la petición de las direcciones a un servidor principal siempre y cuando no se encuentre registrado en su caché acelerando el tiempo de carga de la solicitud.
En definitiva este servidor DNS caché "casero" nos filtrará el contenido publicitario, muchas veces molesto, y acelerará la carga de las páginas que vemos habitualmente en nuestro navegador.

En este caso instalaremos Pi-Hole en una Raspberry para todos los dispositivos que tenemos en casa se conecten a nuestro filtro de publicidad.

Teniendo en cuenta que nuestra Raspberry tenga una dirección estática accederemos a su terminal a través del protocolo ssh y ejecutaremos el comando
curl -sSL https://install.pi-hole.net | bash
Lanzará la instalación

Instalando Pi-Hole



Advertencia instalación


  • Nos advierte que nuestro servidor ha de tener una dirección estática.


Dirección estática servidor Pi-Hole


  • Nuestro servidor ha de solicitar la informador a un DNS primario, en este apartado elegiremos uno de la lista.Yo os recomendaría Quad9. Servidor DNS creado por IBM, que nos ofrece una alta velocidad de resolución de peticiones, no guardará registro y bloqueará direcciones peligrosas


Servidores DNS

En https://firebog.net/ podremos encontrar más catalogos de blacklist. Si nos bloquean el acceso de una pagina y consideramos que no es maliciosa, siempre podremos incluirla en la whitelist.


Servidores listas negras de páginas publicidad

  • Que versión de IP, ipv4 ipv6, queremos que sean filtradas. Lo más normal es dejar marcadas las dos, nos filtrará las direcciones ip antiguas y las que puedan incorporarse en un futuro.


Filtrar ipv4 ipv6

  • ¿Deseamos instalar el interface de administración web? Es recomendable para una administración más visual y nos permite ver estadísticas de páginas permitidas y bloqueadas por cada dispositivo que se conecte a nuestro servidor DNS.


¿Deseamos instalar el interface de administración web?
¿Instalar lighttpd necesario para el interface web?


  • ¿Crear un archivo log con todos los eventos y errores que ocurran?




  • Definir el tipo de privacidad. Puede que no estés interesado en saber o que otras personas sepan qué páginas visitas y las navegaciones queden registradas.


Definir privacidad


  • Información final sobre la dirección DNS, donde se van a guardar el registro de eventos y, en qué dirección se encuentra la administración web del servidor que hemos creado: http://pi.hole/admin y su contraseña inicial que podremos cambiar más adelante.



Ya tendremos nuestro servidor DNS caché instalado. Solo nos quedaría cambiar las direcciones DNS de los dispositivos que queramos proteger y/o filtrar a nuestro recién instalado servidor Pi-Hole


Nuestros equipos quedarán protegidos y mucha de la publicidad que se muestra en páginas web y videos a partir de ahora no se mostrará. En mi caso 9,4% de las peticiones web que se realizan mientras navego han sido bloqueadas, menos publicidad más privacidad.


Bloqueo de anuncios en toda la red Pi-hole® 

Emulador terminal ssh navegador Chrome

Si eres usuario habitual del navegador Chrome de Google, añadir más acciones que la mera navegación, a través de las extensiones es una opción interesante.
Buceando en las extensiones disponibles encontre Secure Shell Extension creada por Google. 


Chrome web store


Un emulador de terminal ssh, que nos permite añadir conexiones al estilo PuTTY. La ventaja en este caso es que no tenemos que abandonar el navegador ni añadir una aplicación a nuestro sistema operativo.

Secure Shell Extension Chrome


Además de guardar las credenciales para nuestras conexiones ssh más habituales, nos permite muchas más opciones: cambiar el color del fondo o añadir una imagen, cambiar el color y el tamaño de la letra, añadir hojas de estilos personalizadas ... 

Configuracion Secure Shell Extension


Actualizar nuestro sistema Linux

Mantener nuestro sistema actualizado nos brinda más funcionalidad, corrección de posibles errores en versiones previas y sobre todo mayor seguridad.
En este caso vamos a actualizar una Raspberry, la cual no tiene conectado ningún periférico y tenemos administrarlo de forma remota.
Accedemos mediante ssh
ssh <dirección ip raspberry> -l <nombre usuario>
Los siguientes pasos son similares, para nuestra administración en local o en remoto
Actualizamos los repositorios que se encuentran listados en el archivo /etc/apt/sources.list. Realizamos la comprobación si nuestros paquetes tienen una versión mejorada.
sudo apt-get update
Aun no hemos actualizado nuestro sistema. Esta tarea la realizaremos con el comando:
sudo apt-get dist-upgrade
Actualizando paquetes instalados en Raspberry
Actualizando paquetes instalados en Raspberry

Otra forma seria
sudo apt-get upgrade 
Entre las dos opciones que tenemos,  dist-upgrade nos facilitará la actualización resolviendo posibles conflictos con las dependencias.
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.


dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.

Ejecutar aplicaciones modo gráfico a través de una conexión ssh

Es posible que en la administración de otro equipo tengamos que iniciar una aplicación en modo gráfico.
Cuando nos conectemos de forma remota a otro equipo utilizando ssh, añadiremos la opción -X
ssh <dirección ip host> -X -l <nombre usuario al que nos vamos a conectar>
 En este caso podríamos iniciar Firefox y se mostraria en nuestra pantalla pero toda la ejecución se realizaría en el equipo esclavo.
Si no incluimos la opción -X y queremos iniciar una aplicación en modo gráfico nos notificarian un error.
firefox
Error: no DISPLAY environment variable specified

Como crear redes virtuales VLAN

Com crear redes virtuales o VLAN en switch, conmutadores o routers Cisco a través de la linea de comandos utilizando el protocolo SSH.
Switch>enable
Switch#configure terminal
Switch(config)#vlan 1
Switch(config-vlan)#
Utilizando simulador Packet Tracer de Cisco 

Acceder a otra maquina utilizando protocolo ssh

Podemos acceder al terminal de otra maquina utilizando el protocolo ssh

sudo ssh <ip maquina a la que queremos conectarnos> -l <nombre del usuario con el cual nos queremos conectar>

Utilizando sudo nos permitirá aceptar la certificación de la maquina a la que queremos conectarnos aunque esta sea desconocida.
Al agregar la opción -l indicamos con que usuario nos queremos conectar. Si omitimos esta opción se nos preguntará con que usuario nos queremos hacer login