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

viernes, 5 de junio de 2020

Crear Volumen Persistente en Docker

¿Como dice el dicho? ¿Lo bueno, si breve, dos veces bueno?
Vamos con algo breve entonces... pero 2 veces bueno ¬¬

Iniciar contenedor con volumen persistente:

sudo docker run --name VirtualArdillasConVolumen00 -v ~/DatosArdillasLocal:/DatosArdillasContenedor -it ubuntu:latest /bin/bash

--name es para elegir el nombre del contenedor (en este caso VirtualArdillasConVolumen)

-v para elegir el volumen persistente que vamos a montar

~/DatosArdillasLocal es la ruta local de la maquina donde va a crear el volumen con la información persistente (en mi caso /home/ardillasenlared/DatosArdillasLocal)

DatosArdillasContenedor es el volumen del contenedor donde guarda la información que quedará almacenada localmente

ubuntu:latest es la imagen de Docker Hub a partir de la cual se va a generar el contenedor

/bin/bash es para que arranque el contenedor con una shell bash 

Ingresamos al volumen y creamos 3 archivos:

cd DatosArdillasContenedor/

touch Ardillas00 Ardillas01 Ardillas02

ls

Ahora salimos del contenedor:

exit

Lo eliminamos:

sudo docker rm iddelcontendor (podemos ver el ID haciendo sudo docker ps -a)


Y volvemos a generar otro contenedor con otro nombre pero con el mismo volumen para ver si siguen estando los archivos:

sudo docker run --name VirtualArdillasConVolumen01 -v ~/DatosArdillasLocal:/DatosArdillasContenedor -it ubuntu:latest /bin/bash

Ingresamos al volumen:

cd DatosArdillasContenedor/

Y listamos los archivos a ver si están:

ls

Vemos que están. Para probar creamos uno mas:

touch Ardillas03

Salimos de nuevo del contenedor:

exit

Lo borramos:

docker rm iddelcontendor

Y ahora verificamos en nuestra maquina local si están los archivos (los del primer contenedor mas los del segundo):

cd DatosArdillasLocal/

ls

Y vemos que nos figuran todos.

Excelente, ¿no?

Antes de irme no quiero dejar de recomendarles estos 4 posts históricos del blog:

Instalar y configurar FTP en Debian con ProFTPd

Instalar y configurar proxy Squid en Debian y Ubuntu

Quitar bloqueo automático de pantalla en Ubuntu

Sincronizar la hora en Manjaro Linux Ascella

Nada mas.

COMPARTI, ¿que te cuesta?

Arrivederci (?)

miércoles, 3 de junio de 2020

Subir imagen de Docker a Docker Hub

Recién buscaba como instalar Ubuntu con Docker (mas precisamente, como crear un contenedor con Ubuntu 20.04 a partir de una imagen de Docker Oficial), y la mayoría de los resultados me decía como instalar Docker en Ubuntu. Así que, si buscabas lo mismo que yo, este es el lugar.

¿Para que nos puede servir tener un contenedor con Ubuntu? Para un millón de cosas, pero por ejemplo, en un entorno de pruebas, en lugar de crear 2 o 3 máquinas virtuales con VirtualBox y Ubuntu podríamos simplemente crear 2 o 3 contenedores con dicho sistema operativo, algo que sería muchísimo mas rápido y práctico. Y yendo un poco mas lejos, podríamos tener una imagen de Ubuntu con todo lo necesario para que solamente tengamos que descargarla, levantar el contenedor y ya tendríamos todo a disposición. Esto es lo que vamos a hacer en este post.

Primero vamos al Docker Hub y buscamos la imagen Oficial de Ubuntu.
En este caso vamos a instalar la ultima (que es la 20.04) con el siguiente comando:

sudo docker pull ubuntu:latest

Si quisieramos otra versión podríamos revisar las etiquetas  y ver que por ejemplo para instalar la 19.10 deberíamos usar docker pull ubuntu:19.10 o si quisieramos la Bionic que es la 18.04 deberíamos ejecutar docker pull ubuntu:bionic.

Luego de ejecutar el comando aguardamos unos minutos dependiendo nuestra conexión y quedará descargada:


Para chequear:

sudo docker images


Ahora vamos a levantar un contenedor a partir de dicha imagen, llamado VirtualUbuntu00 y al mismo tiempo vamos a iniciar una shell de bash en el contenedor:

sudo docker run --name VirtualUbuntu00 -it ubuntu:latest /bin/bash

Vamos a verificar la versión del Kernel del mismo con:

uname -a


martes, 2 de junio de 2020

Desconectar Usuario Remoto Linux

Estamos sentados frente a nuestro Kubuntu 20.04, muy lindo por cierto, tranquilos, relajados, seguros de que nadie nos está espiando... Hasta que una voz nos dice al oído, susurrando, "hay usuarios conectados a tu computadora". "¿Que?", pensas. "¿Y como puedo saber si hay alguien conectado a mi computadora?"

Tranquilo.

Ardillas en la red te da la respuesta. Y no solo eso, sino que ademas te dirá como desconectarlo.

Para ver quien esta conectado a mi computadora ejecuto el siguiente comando:

who

Lo que mostrará algo como:


Acá vemos 3 personas conectadas, son sus respectivas IPs y sus respectivas consolas:

ardillasenlared tty1         2020-05-25 05:46 (:0) <- Este soy yo
ardillasenlared pts/2        2020-05-28 12:43 (192.168.2.107)
ardillasenlared pts/4        2020-05-29 10:17 (192.168.2.112)
ardillasenlared pts/5        2020-05-29 10:17 (192.168.2.111)

También vemos el día y la hora de conexión y que en todos los casos se utilizó el usuario ardillasenlared.

Supongamos que queremos desconectar al usuario que tiene la IP 192.168.2.111 y la consola pts/5.
Vamos a buscar el PID de su shell:

ps -ax | grep pts/5


Vemos la siguiente linea:

 47145 pts/5    Ss+    0:00 -bash

Donde nos indica el PID del proceso bash correspondiente a la consola pts/5.
Entonces procedemos a matar dicho proceso:

kill -9 47145

Ejecutamos nuevamente who y vemos que el usuario de la consola pts/5 y la IP 192.168.2.111 no está mas:


Y al usuario remoto le aparecerá el siguiente cartel:


Listo, ya podes desconectarlos a todos ¬¬

¿Ademas queres banearle la IP? Ejecuta:

sudo iptables -I INPUT 1 -s 192.168.2.111 -j DROP

Con esto no podrá volver a conectarse desde esa IP. Si te arrepentís:

sudo iptables -I INPUT 1 -s 192.168.2.111 -j ACCEPT


Interesante, ¿no?

COMPARTÍ, ¿que te cuesta?

Chau chau chauuuuu

lunes, 1 de junio de 2020

Instalar Kubernetes en Azure

Bueno vamos a probar Kubernetes en Azure, así de una, sin vueltas, sin caretearla (?).
Para empezar ingresamos al Portal de Azure con nuestras credenciales y en "Inicio" a la izquierda vamos a ver los servicios que nos ofrece Azure para desplegar.
Uno de ellos es "Servicios de Kubernetes", clickeamos ahí:


Luego vamos a crear nuestro primer cluster haciendo click en "Agregar" o "Crear Servicio de Kubernetes":


Elegimos nuestra suscripción, creamos un nuevo grupo de recursos o resource group, elegimos el nombre del cluster y la región. Y mas abajo elegimos el tamaño del nodo y la cantidad, este paso es muy importante, porque al definir el tamaño del nodo básicamente estamos eligiendo las especificaciones técnicas (cpu, memoria, disco) que van a tener las maquinas virtuales que van a formar los nodos del cluster y esto no se podrá cambiar después de crearlo. El numero de nodos si se puede cambiar.
En mi caso elijo la maquina virtual mas barata que es la DS2 v2, que tiene un 2 CPU y 7GB de RAM.



Fijense que a la derecha aparecen los precios de las virtuales (Costo Mensual Estimado):



domingo, 31 de mayo de 2020

Cambiar Hostname en Ubuntu Server

A mas de uno le habrá pasado de querer cambiar el nombre de la virtual de Ubuntu Server.

Aquí van los pasos a seguir:

Primero chequeamos el hostname actual:

hostname

o

cat /etc/hostname


Vemos que en mi caso, la virtual se llama debian01 (si, también funciona con Debian, increíble,¿no?)

Para cambiarlo ejecutamos:

sudo hostnamectl set-hostname nuevonombre

Para chequear el cambio ejecuto:

hostnamectl


Vemos que tomo el cambio (Static hostname) pero en el prompt me sigue apareciendo el viejo.
Entonces vamos a reiniciar:

sudo reboot

IMPORTANTE: En el caso de Ubuntu Server para que el cambio persista luego del reinicio tenemos que editar el siguiente archivo:

sudo nano /etc/cloud/cloud.cfg

Y cambiar el parámetro preserve_hostname de false a true

Y reiniciar.

Al iniciar nuevamente la virtual vemos que toma el nuevo hostname (ardilla-nb):


Y listo, ya quedó cambiado.

Aprovecho para indicar como corregir el error que me aparece a continuación:

unable to resolve host 
sudo: unable to resolve host ardilla-nb: Nombre o servicio desconocido

Esto es porque no lo agregué al archivo /etc/hosts. Entonces lo edito:

sudo nano /etc/hosts

Y luego le agrego mi hostname nuevo:


Reinicio con sudo reboot

Y listo, ya no aparece:


Esto fue todo, sencillo... pero emotivo (?)

COMPARTI de una vez, ¿que te cuesta?

Te mando un beso (?).

sábado, 30 de mayo de 2020

Rollback de Deployments y Namespace en Kubernetes

Hola Ardillas, para estos posts largos prefiero ir directamente al asunto y evitar chistes como el del hacker, así que arranquemos.

Para los que no quieren leer todo (aunque lo recomiendo) podríamos dividir el post en 3 grandes títulos que voy a marcarlos en mayúscula, azul y subrayado así TITULO
Los títulos son:
CREAR NAMESPACE
CREAR DEPLOYMENT
ROLLBACK DE UN DEPLOYMENT

Antes de avanzar con el post de rollback de un deployment en si vamos a ver que tengo corriendo actualmente en mi cluster de Kubernetes:

Para ver un listado de lo que tenemos corriendo en el cluster:

kubectl get all


Fijense que diferencia los PODs, de los servicios, de los deployments y las replicas.

Ver detalle de todos los PODs en el namespaces actual:

kubectl get pods -o wide


Ver detalle de todos los PODs en todos los namespaces:

kubectl get pods --all-namespaces  


En este caso vemos los mismos ya que tengo solo un namespace (los otros que aparecen son del sistema).

Ver cantidad de replicas:

kubectl get rs


Ver historial de cambios de un deployment:

kubectl rollout history deployment/nombredeldeploy



jueves, 28 de mayo de 2020

OpenFortiVPN desde terminal, y aprende a usar tmux

Bueno, después del post de Kubernetes quedé exhausto (?), así que vamos con algo livianito, algo así como una ensalada informática (?).

Estás en tu casa, yo se que te encantan éstas situaciones, que las visualizas. Estás en tu casa, aburrido, en cuarentena, no hay nada en la tele, hace 10 minutos que pasas los canales y no encontras nada que te llame la atención. ¿Entonces que haces?. Pensas, "creo que este es un buen momento para adelantar algo de trabajo". Ya se que no es cierto, pero usemos la imaginación, necesito un pie para meter lo que viene en el post, ¿si?. Bueno, pensas, ¡que bonito sería trabajar este domingo desde casa! (así, con signos de exclamación y todo).
Te dirigís hacia tu maquina, la encendes (me encanta contar el paso a paso, perdón), inicia tu Kubuntu 20.04 y te dispones a trabajar. Pero te das cuenta de algo, no tenes acceso a los servidores de la oficina desde tu casa, empezas a sudar, pero de inmediato recordas que no habías conectado la VPN, cuando chequeas te das cuenta que el panorama es peor de lo que imaginabas, porque... no tenes un cliente VPN instalado. Entras en crisis, estás llorando desconsoladamente como un niño, te sonas la nariz con una servilleta y entras a Ardillas en la red para ver si hay una solución a tu problema. Entonces vas a la ventana de la derecha en el blog, donde dice "buscar en este blog" y escribis "cliente VPN Fortinet", o simplemente VPN, y aparece este post guiñandote el ojo, que te va a permitir conectarte a la VPN de tu trabajo, y seguir adelante este domingo sin tristezas...

Si bien existe una versión oficial de FortiClient para Linux a la que es posible acceder por CLI la verdad es que no la probé, y siendo que OpenFortiVPN siempre me pareció simple, fácil y la verdad es que nunca me dio problemas, prefiero recomendar este cliente para las conexiones VPN SSL con Fortinet.
De todas formas les dejo algunos links para todas las Plataformas:
El FortiClient para Windows lo pueden descargar desde este link.
Para OSX desde este link.
Para Android lo pueden descargar de aca.
Para Linux (Ubuntu, Fedora y Centos) pero con entorno gráfico pueden seguir estos pasos.
Y si tienen otra plataforma pueden acceder directamente a esta pagina.

Luego de darles las opciones oficiales, procedemos con la instalación del cliente en cuestión.

INSTALAR OPENFORTIVPN

Para instalar (en Debian):

sudo apt-get install openfortivpn


Para ver la ayuda:

man openfortivpn

Para conectarte:

sudo openfortivpn HOSTNAME:PUERTO -u USUARIO


Facilisimo, ¿no?

INSTALAR TMUX

Y ahora vamos con tmux que es un software que nos permite lanzar múltiples terminales (ventanas y paneles) dentro de una única pantalla. Muy útil cuando tenes que hacer varias cosas en simultaneo desde la terminal.

Para instalar tmux:

sudo apt-get install tmux

Para crear una ventana:

Primero escribimos tmux para ingresar a la aplicación y luego pulsamos:

Ctrl+B c

Abajo en la franja verde vamos viendo las terminales que creamos. Por ejemplo, yo cree 4:

0:bash 1:bash 2:bash 3:bash


El asterisco nos marca en que ventana estamos ubicados.

Para movernos a la ventana 1 presionamos:

Ctrl+B 1

En esta ventana dejo corriendo el cliente VPN:


Luego me dirijo a la ventana 2:

Ctrl+B 2

Y dejo corriendo un TOP:


Bueno, y así con todo ¬¬

Para listar todas las ventanas:

Ctrl+B w

Para cambiar el nombre de una ventana:

Ctrl+B ,

Para dividir paneles verticalmente:

Ctrl+B %


Para dividir paneles horizontalmente:

Ctrl+B  » + h

Para cambiar entre paneles:

Ctrl+B  tecla de flecha


Para cerrar la ventana actual:

Ctrl+B &

Para cerrar en panel actual:

Ctrl+B » + X

Bueno, esto fue todo, sencillo, pero emotivo (?).
No se porque sos tan egoísta y no compartís, pero tenes que saber que com par tir, extender la mano a tus hermanos, com par tir para hacer un mundo nueeevo.

Perdón, chau.

PD: No me juzguen ni lo cuenten.

lunes, 25 de mayo de 2020

Kubernetes para principiantes

Bueno, ya vimos Ansible, ya vimos Docker y ahora vamos con Kubernetes.
No, hoy no te voy a hacer el chiste del hacker, aunque si, me sigue causando gracia.
Hoy vamos al grano, porque es un post largo que creo que les va a resultar útil.

Kubernetes (K8s) es un proyecto open source que nació en Google y sirve para orquestar contenedores (Docker), aunque no nos permite crear imágenes, ni subirlas al registry, solo sirve para gestionarlos. Es un buen complemento, sino el ideal, de Docker (motor de contenedores) para los entornos de producción grandes en donde Docker solo, no puede escalar.
Distribuye de la mejor forma posible la carga de todos los NODOS.

POD: La unidad mas chica en Kubernetes es un POD, que agrupa dentro suyo diferentes contenedores (en general uno solo) que tienen un componente (kubelet) "que le avisa" al NODO MASTER si la aplicación se encuentra o no corriendo. Y si no esta corriendo entonces Kubernetes levanta una nueva para mantener la cantidad de replicas que configuramos para que se encuentren corriendo. Estas instancias se levantan en base a una imagen, como los containers de Docker.
Los PODs por definición son stateless, y Kubernetes los crea o destruye de manera constante en función de las necesidades. Si los PODs deben tener datos persistentes, deben utilizarse volúmenes.
Los containers levantados en el mismo POD comparten el stack de red y pueden hablar entre si, así como también pueden compartir un volumen y acceder a la misma información. Cada POD tiene su propia direccion IP.
La desventaja de que los containers dentro del POD compartan el stack de red es que no podes tener 2 containers adentro del mismo POD escuchando en el mismo puerto, porque al tener la misma red hay colisión de puertos, pero esto se resuelve poniendo esos 2 containers en PODs diferentes.

NODO: Un NODO conjunto de PODs.

NODO MASTER: Se encargan de coordinar el clúster. Tiene que haber mínimo uno por cluster. Generalmente no ejecutan contenedores, sino que deciden en qué nodo se ejecuta cada contenedor. Usualmente son 3 nodos para alta disponibilidad. Esto es debido a etcd, que guarda el estado global del clúster y su información es crítica. Si hay 3 nodos de etcd y se pierde uno, el sistema puede seguir funcionando, ya que los dos nodos restantes pueden seguir verificándose el uno al otro. Pero ya no se puede perder ningún otro. Por eso, los nodos de etcd se escalan siempre de dos en dos, si hay 3 se puede perder 1, si hay 5 se pueden perder 2 y así sucesivamente.

El NODO MASTER ejecuta los siguientes procesos:
- kube-apiserver que es la forma en la que interactuamos con los otros NODOS del cluster.
- Kubernetes Controller (kube-controller) que compara el estado actual del cluster con el estado que debería tener (chequea por ejemplo si la cantidad de PODs que hay en un NODO es la que debería haber, y sino los levanta).
- Kubernetes Scheduler (kube-scheduler) que es el que se encarga de escuchar al controller y cuando el controller le avisa que le faltan PODs, el scheduler se fija en que NODO pueden estar mejor ubicados y los levanta ahí.
- etcd que es una base de datos que se utiliza para mantener la configuración global del clúster. La información contenida en etcd es crítica y debe tenerse siempre un plan de copias de seguridad.

NODO MINION (WORKERS): Se encargan de la ejecución de los contenedores desplegados en el clúster. Tienen instalado el agente de Kubernetes llamado kubelet (que se encarga de monitorizar que un contenedor se inicie, funcione correctamente y en caso de error, reiniciarlo inmediatamente) y un kube-proxy, que gestiona la red virtual y las IPs virtuales que de cada contenedor.

CLUSTER: Es un conjunto de NODOS.
Entre sus principales funciones se encuentran:
. Permite Escalar
. Permite balanceo de carga
. Reparación automática del contenedor (si falla o muere, el cluster automáticamente levanta uno nuevo)
. Distribución inteligente de la carga de trabajo
. Permite almacenamiento persistente en la nube
. Optimiza nuestros recursos
Para entornos de Workstation se puede usar Minikube .

SERVICES: Los PODs no son visibles más allá de su propio contenedor. Para solucionar esto, existen los services, que son objetos que permiten reenviar tráfico de red a un conjunto de PODs, lo cual nos permite acceder a nuestras aplicaciones. Los services utilizan servidores DNS instalados en la red para registrarse en esta y permitir el acceso por nombres de servicio a sus PODs, facilitando el descubrimiento de los mismos.

VOLUMENES PERSISTENTES: Es una pieza de almacenamiento en el cluster que sirve para guardar los datos de nuestros PODs. Su ciclo de vida es independiente de los PODs individuales.

LABELS/SELECTORS: Los selectors son filtros de las etiquetas. Las labels son muy útiles cuando por ejemplo manejamos 500 contenedores que hacen de webserver y cuya etiqueta es webserver, entonces, si queremos eliminarlos a todos ponemos que borre todo lo que tenga esa etiqueta en lugar de borrar uno por uno.

En Kubernetes, podemos exponer nuestras aplicaciones de varias maneras:
ClusterIP, es el servicio que se genera de forma predeterminada y nos permite acceder a los servicios dentro del clúster. Este servicio no es accesible desde Internet, para que lo sea necesitaríamos habilitar el acceso a través del proxy de Kubernetes.
- Usando un servicio de tipo Kubernetes NodePort, que expone la aplicación en un puerto a través de cada uno de sus nodos. Sólo un servicio por puerto. No es para ambientes en Producción.
- Usando un servicio de tipo Kubernetes LoadBalancer, que crea un balanceador de carga externo que apunta a un servicio Kubernetes en su clúster.
- Usando un Kubernetes Ingress Controller, que permite un enrutamiento HTTP basado en host o URL. Ingress no es un tipo de servicio como el resto, se trata más de un enrutador que permite la entrada al clúster y gestionar el acceso a múltiples servicios. Hay que tener en cuenta que un Ingress Controller generalmente no elimina la necesidad de un LoadBalancer externo: el Ingress Controller solo agrega una capa adicional de enrutamiento y control detrás del balanceador de carga.
Estos son los patrones básicos para enrutar el tráfico externo a su clúster Kubernetes.

MINIKUBE: Es un proyecto que nos permite probar Kubernetes en una maquina local y utiliza maquinas virtuales de Virtual Box (por defecto). Kubernetes necesita al menos 3 nodos para funcionar, lo cual no siempre es posible en una maquina local. Para eso se creó Minikube, que es una versión reducida de Kubernetes, que corre en una única máquina virtual que hace de maestro y esclavo a la vez.
Ademas de Minikube también necesitara instalar kubectl para poder comunicarse con el servidor Kubernetes.

Kubernetes tiene también una parte Web, con un dashboard que permite monitorizar y gestionar el clúster. Minikube viene instalado con uno por defecto.

DEPLOYMENT: Para mantener los PODs prestando servicio sin interrupción utilizamos los deployments, acá definimos cuantas replicas queremos, como queremos desplegarlos, como queremos escalar y Kubernetes se encarga de mantener el clúster funcionando. Los deployments crean replication controllers que por defecto mantienen el número de réplicas que especificamos en el despliegue, pero nos permitirán cambiar este numero a futuro si así lo deseamos.

Bueno, hasta acá toda la teoría, pero estas aburrido, ¿no?
Queres tocar, queres poner manos a la obra, queres revolcarte en este chiquero (?).
Empecemos:


viernes, 22 de mayo de 2020

Speedtest desde tu terminal, y de paso juga

Plena cuarentena. Internet se vuelve mas indispensable que nunca. Te sobra plata (?), no sabes que hacer, entonces se te ocurre que quizás sea una buena idea aumentar la velocidad de tu conexión para navegar mas rápido, para ver videos mas rápido (?).
Pero en el medio de tanta euforia, te surge una duda que no te deja dormir, son las 22hs y no te dormís, las 23 y no te dormís, y así sucesivamente. Tu duda es: ¿tendré la velocidad que contraté?
Impaciente, te levantas de la cama, te dirigís hacia tu maquina, la encendes y cuando vas a abrir el navegador para hacer un Speedtest... te das cuenta de que no tenes interfaz gráfica, solo una terminal...
¿Y por que no tenes interfaz gráfica? Porque sos hacker... y ya sabes...
¿Y como jugas juegos sin interfaz gráfica? Los hackers no juegan, hackean.
Entonces, ¿como hago para saber que velocidad tiene mi conexión de internet desde la terminal, sin interfaz gráfica?

Muy fácil, con speedtest-cli, para la cartera de la dama y el bolsillo del caballero (?).

Para instalar:

sudo apt-get install speedtest-cli


Si no te funciona podes probar con estos comandos:

sudo apt-get install python-pip
sudo pip install speedtest-cli

Para hacer el test:

speedtest-cli


Como verán, a mi mucha plata no me sobra ¬¬

¿Te vas a ir otra vez sin compartir? ¿Como dormís por las noches? 
No seas egoísta, ¿que te cuesta?

Cariños (?)

PD: ¿Queres jugar desde la terminal, no? Yo se que queres.

Toma:

NINVADERS

Instalar: sudo apt install ninvaders
Ejecutar: ninvaders


TETRIS:

Instalarsudo apt install bsdgames
Ejecutartetris-bsd


nSNAKE:

Instalarsudo apt install nsnake
Ejecutar: nsnake


PACMAN:

Instalarsudo apt install pacman4console
Ejecutarpacman4console


¿Y ahora que esperas para compartir?

jueves, 21 de mayo de 2020

Ocultar archivo usando esteganografia en Linux

Yo se que el post anterior te dejó pensando, se que ahora estás empezando a creer en vos mismo y está naciendo en vos un nuevo hacker.
Y si alguien te dice que no... Nunca dejes que nadie te diga que no sos un hacker 
Pero mi querida ardilla, yo quiero que vayas mas allá, quiero que sueñes conmigo, quiero que ahora te imagines que sos un espía, un espía que maneja información confidencial, toda guardada en un archivo txt (?). Y tu misión es copiar ese archivo con esa información en el escritorio de Ramón (?). Pero Ramón comparte la PC con su esposa y sus hijos, y el archivo tiene que si o si quedar en su escritorio, aunque nadie, excepto Ramón, puede acceder a esa información, ¿como haces?

Usando esteganografía, muy fácil, ¿no?.

Ahora, ¿que carajo es la esteganografía?.
Según Wikipedia, la esteganografía (del griego στεγανος steganos, "cubierto" u "oculto", y γραφος graphos, "escritura") trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, para ser enviados y que no se perciba el hecho.
Impresionante.

Ahora que tiene que ver Ramón, la esposa, la esteganografia... Ni idea, pero me pareció que tenía que hacer una intro ¬¬
No, mentira. Lo que vamos a hacer es valernos de la esteganografia para poder dejar el archivo .txt con la información confidencial en el escritorio de Ramón, y que su esposa y sus hijos no se den cuenta.

Para ello, vamos a usar un software llamado Outguess. Que se encuentra en los repositorios de nuestro GNU/Linux Debian.

Para instalarlo:

sudo apt-get install outguess


Para ocultar archivo:

outguess -k "clavesecreta" -d /root/textooculto.txt /root/ImagenOriginal.jpg /root/ImagenConTextoOculto.jpg

Acá lo que hacemos es ocultar el archivo textooculto.txt dentro del archivo de imagen ImagenOriginal.jpg. La unión de ambos dará como resultado el archivo ImagenConTextoOculto.jpg que al abrirlo veremos la imagen, pero que dentro suyo, tendrá albergando en su interior (?) el archivo textooculto.txt.
La clavesecreta es la que nos va a pedir luego cuando necesitemos "desocultarlo".


Para "desocultarlo":

outguess -k "clavesecreta" -r /root/ImagenConTextoOculto.jpg ArchivoOcultoDesocultado.txt

Luego de esto, veremos el archivo que teníamos que aparentemente era solo una imagen (ImagenConTextoOculto.jpg) y el archivo .txt con la información que habíamos agregado antes (ArchivoOcultoDesocultado.txt).


No lo podes creer, ya lo sé. Esto de internet es una locura (?).
Ya sos un espía, tene cuidado.

Compartí de una vez, dale hermano, no seas egoísta, ¿que te cuesta?

Te mando un beso (?).

miércoles, 20 de mayo de 2020

Saber tu IP Publica desde la terminal

Imaginemos esta situación, estas frente a la terminal, una pantalla negra con miles de letras bajando cual Matrix, y pensas: "¿Cual sera la ip publica de esta maquina? Quiero hackearla"


Porque sos hacker, y los hackers hackean (?).
Si, sos hacker, nunca dejes que nadie te diga que no lo sos, porque lo sos, mi querida ardilla.


Perdón, me deje llevar ¬¬

Vamos a lo nuestro, ¿como sabes la IP Publica de tu maquina desde la terminal?
Muy fácil! Ejecutando cualquiera de estos comandos:

curl https://ipinfo.io/ip

curl ifconfig.io

curl ipecho.net/plain; echo

curl icanhazip.com


Increíble, ¿no?
Pero hay mas, también podes verla a través de lynx, que es un navegador web que funciona desde la terminal.

Para instalarlo en Debian:

apt-get install lynx

Para ingresar a la pagina de Cual es mi ip:

lynx www.cualesmiip.com

Te va a preguntas si permitis las cookies:



Pones Y

Y luego:



Tremendo, no se puede creer.
Compartí, dale, no seas egoísta, ¿que te cuesta?
Hoy por ti mañana por mi (?).

Abrazo de Gol (?).