martes, 29 de diciembre de 2020

Crear un tunel SSH para la conexión a un servidor MySQL detrás de un firewall con Windows utilizando Putty

 

Es posible implementar un túnel SSH en Windows gracias al uso de herramientas de terceros como Putty.

Para la verificación de la conexión a la base de datos en lugar de la herramienta básica de línea de comando (que también debe funcionar normalmente) se utilizará MySQL Workbench que es la herramienta de administración gráfica que provee el motor de bases de datos.


Implementando.

Crear la especificación del túnel en Putty.

Este paso sólo es necesario realizarlo una única vez mientras se configura el perfil en Putty, en ocasiones posteriores sólo será necesario invocarlo.

Ejecute Putty.exe.



En la Session (lado izquierdo) especifique la siguiente información.

1. Nombre del servidor SSH.  desarrollo.com para este ejemplo.

2. Puerto del servicio SSH.  Es el puerto 22 por defecto.  Elija además el tipo de conexión (Connection type) SSH.

3. Especifique un nombre para almacenar la sesión (Saved Sessions).  MiTunel para este ejemplo.

4. Presione el botón guardar (Save) para almacenar la configuración recién especificada.




En las opciones de Connection > SSH elija la casilla de verificación Don’t start a shell para evitar que se cree una consola de comandos interactiva ya que sólo se desea crear el tunel.




Connection > SSH > Tunnels en Putty.exe

Determine la información relacionada con los lados del tunel.

5. Especifique el puerto local desde el cual se iniciará el tunel.  3307 en este caso.

6. Especifique el destino y su puerto donde terminará el tunel.  localhost:3306 para este ejemplo.

Presione el botón agregar (Add) para almacenar los extremos del tunel.

Finalmente almacena la configuración establecida regresando a la sección de Session y presionando el botón de guardar (Save).

Establecer un túnel previamente especificado.

Esto se puede hacer de dos maneras, una desde la interfaz gráfica de Putty seleccionando MiTunel en la lista de las sesiones guardadas (Saved Sessions), presionando el botón cargar (Load) y abriendo la sesión presionando el botón (Open).

Una segunda alternativa es desde la línea de comando ejecutando la siguiente instrucción.

C:rutaaputty.exe -load MiTunel

En ambos casos el resultado es el mismo, aparecerá una ventana de login para realizar la autenticación con el servidor remoto (6).

Autenticación de usuario por Putty



Realizar la conexión a MySQL a través del tunel SSH.

Como se mencionó inicialmente para la verificación de la conexión se utilizará MySQL Workbench.

Conexión a la BD

Debe tenerse muy en cuenta que gracias al tunel recién creado, la aplicación cliente de la base de datos interpretará que el motor de base de datos se encuentra ubicado localmente (9) y que su puerto es el 3307 (10) -ver 5 y 6-.








martes, 22 de septiembre de 2020

8.4 El Errante: las bestias de la guerra. - ¡Piratas de agua dulce! / profanación.

 Atrapados, su camino se desvía al sur, al desierto. Lejos de la esperanza.


Anteriormente:

–La fortaleza de Elt –susurró Shárika.
Aquella obra de ingeniería, construida con el mejor alabastro de Ákrita, consistía al mismo tiempo puente y paso fronterizo del este de Xhantia con Lican. La luz de las antorchas se reflejaba con más nitidez en sus resplandecientes muros que en las agitadas aguas del río Bram. Las murallas coronadas de almenas rodeaban todo el perímetro del ancho puente obligando a las rutas mercantes a pasar por la fortaleza para cruzar la frontera. El núcleo de la fortaleza estaba situado en el centro del puente en forma rectangular y rematado con una ancha torre cuadrada en el lado oeste en donde se alojaban los aposentos privados de Elt y su familia.
«El puente del Destino.», pensó Sebral. Pero todas las esperanzas que podrían tener se esfumaron al tomar de nuevo conciencia de su situación: Encerrados junto a varios cadáveres en una sólida jaula, sobre un traqueteante carromato; rodeados por los furiosos esclavistas, que no dudarían en acabar con ellos al más mínimo indicio de fuga; presos por férreos grilletes, a excepción de Saera; sin fuerzas y mal nutridos; sin la energía suficiente para poder conjurar varios hechizos que en otro tiempo les hubiera salvado de apuros peores.
Desesperanzado dio un bufido que se mezcló con el último suspiro de Thomas.
El legionario había muerto.
Y él no había podido hacer nada para remediarlo.

...leer más.


Ahora:

Hubo un tiempo en que aquello no habría pasado. Lamentándose de su dilatada inactividad en el uso de la magia el antaño poderoso Sebral se juró a sí mismo que volvería a tomar posesión de su extinto poder y posición en las artes mágicas; que no en vano fueron de gran ayuda cuando tomaron el trono de Ákrita.
–Olvídate de ello –ordenó a Saera tan pronto como se percató del odio que emanaba de su rostro. La furia mezclada con un profundo sentimiento de venganza era palpable en la reducida jaula.
–¿Cómo? –Preguntó la princesa.
–Se lo que piensas: Quieres venganza; que paguen por lo que han hecho; acabar de una vez por todas con aquellos que tanto mal te han procurado.
Saera no respondió.
–Destierra esos pensamientos de tu mente princesa. La venganza sólo produce más violencia y dolor. Hay ya suficiente mal en el mundo como para desear aumentarlo. Es competencia de los dioses decidir sobre la vida y la muerte. Medítalo profusamente pues de ello puede depender tu futuro.
Horas de meditación después alcanzaron un estrecho puente de piedra que sobre un gran arco se alzaba varios metros sobre el río Bram; el cual después volvería a virar bruscamente hacia el norte para bañar el Puente del Destino.
Pasaron el olvidado puente y pocos metros después pararon la marcha.
–¿Dónde estamos? –Preguntó Ermis.
–En el Paso Libre –Respondió Shárika mirando por entre uno de los rotos de la lona que les cubría la jaula.
–¿El Paso Libre? Nunca había oído hablar de él.
–Es parte una antigua ruta mercante que unía los reinos del norte con los reinos del sur; la cual, bordeando la Cordillera de Panthas, atravesaba las ahora Cañadas de Liorot. A modo de gran cortafuego cruza en recto los bosques del sur de Xhantia y Lican, dividiendo así el reino oculto de las amazonas.
–¿Por qué se llama el Paso Libre? –Preguntó de nuevo Ermis recalcando el adjetivo Libre.
–Porque según un antiguo tratado ninguna amazona intervendrá en nada de lo que en él acontezca. Una medida inteligente la de acampar aquí antes de que salga el Sol –añadió.
La lona fue retirada entre risas y la puerta se abrió para permitir que dos fuertes brazos arrastraran afuera a la debilitada Shárika.
El esclavista la arrojó al suelo sonriente y luego se tumbó sobre ella.
Primero sus manos recorrieron su cara, sus labios; pronto bajaron para manosear sin arte ni gracia la curvatura de sus pechos semidesnudos. Con un alarde de impaciencia el esclavista arrancó los restos de sus vestiduras para poder deleitarse aun más con la vista. Con sus manos abrió las piernas de la legionaria mientras su baba salpicaba el rostro de una esclava sumisa. Su verga penetró brutalmente produciendo una mueca de dolor en su víctima.
Durante el tiempo que duró aquella humillación Neamer buscaba distanciar su mente de todo lo que le estaba sucediendo: Intentó rememorar aquellos tiempos de gloria en la que era la gladiadora más famosa. Su ingreso en la Legión. Las pobres muestras de afecto que había recibido de alguno de sus pretendientes. Sus caras, sus manos, sus besos. El rostro del Errante la besó con delicadeza en la frente; besos más cortos y rápidos le cubrieron la mejilla alcanzando su oreja izquierda. Pequeños mordiscos en ella la colmaban de una extraña sensación de impaciencia. Deseaba besarlo, acariciarlo. Él la besó con ternura en los labios; sus lenguas se encontraron y danzaron juntas. La recostó sobre una confortable cama de plumas.
La eyaculación del esclavista la obligó a volver a la realidad. Tan amable como antes aquel hombre le escupió en la cara para después añadir:
–¡Qué asco! ¡Huele a muerto! –Dejándola sola sobre la mancillada tierra.

miércoles, 2 de septiembre de 2020

Arreglar subtítulos

 Quitar los caracteres extraños de los subtítulos.

Buscas los subtítulos y cuando al final los consigues ves con cara de culo torcido que en lugar de ver tildes ves caracteres extraños y donde debía haber una ñ hay otra cosa rara, y suma y sigue. Pues eso tiene fácil solución.

El archivo de los subtítulos (con extensión srt) no es más que un archivo de texto normal (con su formato de tiempo y texto particular) que en lugar de una extensión txt tiene una srt. Y ya está. Esta simplicidad nos permite abrirlo con un simple bloc de notas (con 'abrir con' o cambiándole la extensión a txt y luego volverla a cambiar) y poder trapichear por dentro. La codificación de estos archivos suele ser UTF-8, pero hay algunos que están en otra codificación y hay que cambiarla. Además, y esto sucede recientemente -o por lo menos a mí-, ahora tiene que ser «UTF-8 con bom», porque si no no hacemos nada.

¿Cómo los cambiamos? 
Fácil: abrimos el archivo con el bloc de notas y sin tocarlo (sin reescribir nada de dentro) hacemos un «guardar como» para poder así guardarlo con el mismo nombre pero cambiando la codificación. Tal y como pongo en la captura de abajo.




Repito; os indico lo de "UTF-8 con BOM" porque, con ese mismo archivo sin ir más lejos, lo hice con el UTF-8 normal y no se arreglaba nada. 



domingo, 30 de agosto de 2020

Algunos comandos básicos de Linux

 No son todos los que son pero...

...pero bien seguro que os serán de pequeña ayuda. Pues hay veces que lo más simple se nos olvida y parece lo más complicado. Otras veces buscamos hacer algo que debería ser sencillo y no lo encontramos. Esta es una recopilación de apuntes sobre Linux que me fue, y sigue siendo, de ayuda cada vez que navego en ese sistema. Espero os sean de ayuda.




Comprobar versión:
lsb_release -a


editores:

nano

vi

gedit

cat


Actualizar sistema:

1. refrescar lista de actualizaciones: 'apt update -y'

2. actualizar aplicaciones y paquetes instalados: 'apt upgrade -y'


Comprobar si hay un paquete instalado: apt-cache policy paquete ej:#apt-cache policy samba


Instalación de paquetes ya descargados:

dpkg es, sobre todo, la herramienta para instalar un paquete Debian ya disponible (porque no descarga nada). Para hacer esto utilizamos su opción -i o --install.

Ejemplo instalación de un paquete con dpkg  '# dpkg -i man-db_2.7.0.2-5_amd64.deb'


Instalación normal de paquetes: #apt install nombrePaquete

Reinstalación (pq a veces se quedan dañados):#apt reinstall nombrePaquete

Eliminar paquete: #apt remove nombrePaquete

Limpiar temporales: #apt autoremove


Cambiar nombre de ordenador: 'nano /etc/hostname'

Ver nombre del ordenador: 'hostname'


Crear usuario: 

#adduser nombreUsuario     o #useradd nombreUsuario

ejemplo de crear usuario con otra carpeta home diferente: #adduser --home /home/al-03-04/mgarcia mgarcia

#passwd nombreUsuario //el password del usuario

-Crear usuario sin acceso al shell (pero sí se podrá logear):

#useradd -m -s /sbin/nologin nombreUsuario


Borrar usuario:

#deluser nombreUsuario (opciones -f [fuerza aunque esté logeado, no recomendable] -r [borra home y mail])

-Borrar usuario y su home y su mail: #deluser --remove-home jperez

#userdel nombreUsuario


Crear grupo:


#addgroup nombreGrupo


Añadir usuario a grupo:

#usermod -a -G nombreGrupo nombreUsuario

 ejemplo: #usermod -a -G acceso jordi


Añadir usuario al grupo sudoers (administradores):

#usermod -aG sudo nombreUsuario


Bloquear usuario deshabilitándolo (no se podrá logear):

#usermod -L nombreUsuario


Desbloquear, habilitar, usuario:

#usermod -U nombreUsuario


Ver los datos relativos a un usuario: #id nombreUsuario

O también (sin que aparezcan los id): #groups nombreUsuario


Ver lista de usuarios:

#cat /etc/passwd

#more /etc/passwd

#less /etc/passwd


Ver lista grupos:

#cat /etc/group

#more /etc/group

#less /etc/group


Comprobar configuracion de red: 'ifconfig' o 'ip -a'

-Si no funciona ifconfig instalar las utilidades de red: 'apt install net-tools'


Configurar tarjeta de red:

--------------------------

SI TENEMOS LA CONFIGURACIÓN POR EL MÉTODO GRÁFICO DEBEMOS CONFIGURARLO CON ÉL. De lo contrario al reiniciar la máquina volverá a dominar el demonio network-manager. 

Si queremos hacerlo por el shell:

 A.- si funciona el servicio network-manager (el modo gráfico) hay que pararlo: 'service network-manager stop'

 B.- apagar el interface de red: 'ifconfig enp0s3 down' o 'ifdown enp0s3' (siendo enp0s3 el interface)

  1.- Configurar IPS y Gateway: 'nano /etc/network/interfaces'

  2.- Configurar DNS: 'nano /etc/resolv.conf' aunque hemos visto que tambien podemos añadirlos en el interfaces con 'dns-nameservers 192.168.x.x 8.8.8.8' y 'dns-search dominio.local'

  3.- activar el interface de red: 'ifconfig enp0s3 up' o 'ifup enp0s3'

PERO SI ESTÁ POR MÉTODO GRÁFICO HACERLO CON EL:

 1.- desactivas la interface con un clic de ratón.

 2.- entras en el administrador de red y configuras ips, gateway y dns

 3.- vuelves a activar la interface con otro clic.


Uso de nslookup:

en el shell escribes 'nslookup' y entras en el programa modo comando tras decirte el servidor dns que usa.

>dominio ->y te da nombre y dirección ip.

>ip ->y te da nombre del dominio y ip. (así sabremos que tiene la inversa configurada).

ejemplo: nslookup pc1.tudominio.org


Si no funciona nslookup-> instalacion de nslookup: 'apt install dnsutils'


Comprobar tamaño de directorios: comando 'du'

Tamaño total del disco de un directorio--> du -sh /directorio


Mostrar la utilización del disco: comando 'df'

df -h->en formato legible para los humanos

df -hT /etc->muestra la información de /etc en formato legible.


Ordenar líneas del archivo: comando 'sort'

-r: invierte orden

-n: valor alfabétrico convertido a número.

-f: no discrimina mayúsculas y minúsculas.

-t: separador de campo.

-k: busca según número de columna y la orden.


Ver paginando (por páginas): comando 'more'

-núm: número de líneas

-p: limpia pantalla al pasar página.


Para cortar, separar campos, carácteres y bytes: comando 'cut'

-b-> por bytes

-c-> por carácteres

-d->define el limitador

-f->indica los campos que queremos


Busca patrones dentro de archivos: comando 'grep'

-w ->busca las palabras

-n ->numera las líneas de salida

...


Indicar líneas, palabras y bytes: comando 'wc'

-l: cuenta las líneas.

-w: cuenta las palabras.

-c: cuenta los bytes

-m: cuenta los carácteres.


ejemplos: ls -l grep ^d | sort | more -18

cat /etc/group | cut -d: -f1,3,4 | sort -t: -k 2,2n | more -18



Volver a entorno gráfico:

startx

ctrol+alt+f7 Ubuntu

ctrol+alt+f8 kubuntu


Para pasar el teclado a español: setxkbmap es sundeadkeys


Luego para pasar el sistema a español:

apt-get update && apt-get -y full-upgrade

dpkg-reconfigure locales  ..y seleccionar es_ES.UTF-8

dpkg-reconfigure tzdata  ..y seleccionar europa/madrid para poner bien la zona horaria.


Problema de sudo su en Debian 10 solucionado:

 Escribir en el terminal "su -"->pide clave del root (aunque este esté deshabilitado) y entonces ya pasas a estar como root. ES IMPORTANTE EL GUIÓN DESPUÉS DE SU PUES SINO NO ES EL ROOT COMPLETO (sería sin el hyphen). Así luego ya puedes habilitar root e incluso meter el usuario en el grupo sudoers que no estaba antes:

#usermod -aG sudo usuario (y ya le funcionará el #sudo su)

#usermod -U root (y NO SIRVE PARA DESBLOQUEAR EL LOGIN DE root)

 Desbloquedo del login de root:

#nano etc/pam.d/gdm-autologin Y #nano etc/pam.d/gdm-password->y donde pone != root lo dejamos debemos poner simplemente # al principio de esas dos líneas dejándolas como comentario. 

Porque esta línea lo que indica es que el login es correcto si el usuario es distinto de root. Si cambiaramos != por = diriamos que solo root puede logear, impidiendo así que entren el resto de usuarios. Así lo mejor es dejarla comentada y sin funcionalidad y todos podrán entrar.


miércoles, 26 de agosto de 2020

Reparar ciertos USBs dañados

Un pequeño salvavidas de nuestra información.

Porque es una putada que aquello que tengamos en el USB se pierda si no hay otra copia. O que se pierda el mismo USB que tus euros te ha costado sin saber porque. Pues a veces tiene solución. Comprobemos los siguientes supuestos.

A -Al conectar el USB se escucha el sonido pero no aparece la memoria en el explorador:

Ponemos Admi en el buscador y ya aparece

O simplemente desde el explorador abrimos el menú de 'Este equipo'




  Vamos a administración de discos (dentro de administración de equipos). Lo buscamos pues aparecerá abajo; nos dice su partición y su sistema de archivos pero veremos que esta unidad no tiene letra alguna (H:, por ejemplo) debemos pulsar clic derecho sobre ella y pulsar, en el menú, "cambiar la letra y rutas de acceso de unidad". En la ventana que aparece pulsamos agregar y en la siguiente le ponemos la letra que deseemos o la que nos ponga por defecto: marcando (viene por defecto) "Agregar la letra de unidad siguiente" y pudiendo elegir a su derecha cual será. Pulsamos Aceptar.

Y ya aparece identificado en el explorador y se puede usar. Incluso si quiere volverlo a formatear.

Debo avisar que los métodos siguientes BORRAN TODOS LOS DATOS QUE TENGAN EN EL USB. 

B -Al conectar la memoria no muestra su capacidad real, aunque sí la letra de la unidad.

 Vamos a administración de discos que está en Administración de Equipos. Para acceder a él basta con poner en el buscador 'administra' y suele ser la primera opción. O desde el Explorador de Windows, botón derecho sobre Equipo y elegimos 'Administrar'. 

Se nos abre el programa y seleccionamos Administración de discos y en la parte inferior de la columna central nos da la información del disco que corresponde al usb.

 

 Vemos que el disco que corresponde aparece particionado -es decir, una unidad física está dividida en varias unidades lógicas y una de ellas está sin formato (ahí, perdida)-. Le damos clic derecho/eliminar volumen OJO PORQUE ESTO ELEMINARÁ TODOS LOS DATOS QUE TENGAMOS EN EL USB. 

 También es posible eliminar directamente la partición (ver https://sarlaukajop.blogspot.com/2020/03/eliminar-particiones-usb.html) y después extender la partición activa (desde el adminitrador de equipos)

Ya podemos formatearlo, pero no directamente en explorador pues no nos dejará.

A- Usamos Rufus, que es un programa creado para crear usbs autoejecutables para instalaciones de sistemas operativos: seleccionamos el dispositivo. En elección de arranque seleccionamos 'No auto-ejecutable'. Elegimos el sistema de archivos (NTFS, por ejemplo); y pulsamos 'Empezar'.

Ahora ya podemos formatearla desde el sistema de windows, cosa que antes no podíamos. Y así le quitamos también los archivos de autoarranque que se crearon con Rufus.




B-  Usamos la consola CMD.

Escribimos diskpart y pulsamos enter. Aparece una nueva pantalla terminal en la que estamos dentro de la aplicación diskpart.

Vamos a ver cuantos dispositivos de almacenamiento hay conectados al PC->escribimos 'list volume'

Aparecen todos en una tabla con el número de columen, letra, etiqueta, tipo de sistema de archivos, etc.

Escribimos 'select volume 5' siendo el 5 el volumen del usb problemático. Así actuaremos sobre ese volumen.

Escribimos 'format fs=ntfs quick', para formatearlo en NTFS de forma rápida.

Y en unos segundos podremos verla en el explorador e incluso formatearla desde él.





--Conectamos el USB y, tras el sonido, nos avisa una pantalla que formateemos el disco para poder usarlo:


No podremos directamente en explorador pues no nos dejará. Deberemos usar el método A o B anterior.


--Cuando pasamos el número de escritura en la memoria aparece protección contra escritura.

Desde Ubuntu sin problema para formatearla.


--Al final debemos reparar algunos sectores dañados de la memoria. Lo hacemos con chkdsk, desde CMD.

Escribiremos en el terminal 'chkdsk H: /f', siendo H la letra de la unidad del usb.

miércoles, 5 de agosto de 2020

Arreglando el problema del superusuario (root) en Debian 10

¿De verdad era necesario ocultar así el root?


Si estás aquí ya sabes usar Linux. En mayor o menor medida has usado alguna de sus versiones ubuntu, xubunto, debian, etc.. y sabrás de la existencia de una cuenta de superusuario cuyo nombre es root. Estarás acostumbrado a que "este usuario no se usa más que para cosas muy importantes y puntuales" dejándolo relegado a un administrador cuyo login es mejor no usar. Es decir, que no inicias sesión directamente con él. ¿no? Ni de coña: yo personalmente casi siempre inicio sesión con root y me olvido del resto de usuarios. Quizás porque yo lo hago en máquinas virtuales con interés más didáctico que práctico, todo puede ser.


Pero os habréis dado cuenta que en el Debian 10 (si pasaba en los anteriores a mí no me pasó) el root está con el login deshabilitado. Al instalar el sistema debes configurar su password pero luego no hay forma de logearte con él. 

Además existe otro pequeño problema, que es que el usuario que creas no está dentro de grupo sudoers (no está dentro del grupo de administradores, para los que vienen de Windows) por lo que no puede ejecutar instrucciones que requieran de ese perfil (pj: sudo apt install net-tools) ni tampoco puede hacer su "sudo su" para dejarle el perfil sudo activo. Así pues ¿cómo podemos ejercer de root o sudoer?


-Problema de sudo su en Debian 10 solucionado


Escribir en el terminal "su -"->pide clave del root (aunque este esté deshabilitado) y entonces ya pasas a estar como root. 

ES IMPORTANTE EL GUIÓN DESPUÉS DE "SU" PUES SINO NO ES EL ROOT COMPLETO (sería sin el hyphen, tilde o virgulilla). Estarías como root pero sin tener acceso permanente al directorio bash (donde están las instrucciones que sueles ejecutar como root) y no podrías ejecutarlas donde quisieras.


Así luego ya puedes meter el usuario en el grupo sudoers que no estaba antes:

#usermod -aG sudo nombreDeUsuario (y ya le funcionará el #sudo su, porque así lo incluimos en el grupo sudoers)


Y ya que estamos en modo sudo podríamos desbloquear el login del root, ¿no? Se haría con esto:

#usermod -U root (que así desbloquearíamos al usuario root pero NO SIRVE PARA DESBLOQUEAR EL LOGIN DE root)


En rojo las órdenes indicadas y en azul las que se pueden usar para ver los grupos a los que pertenece el usuario sark



Así pues, tras mucho buscar, nos damos cuenta que no es que la cuenta root esté deshabilitada para el login si no que la configuración de la autenticación y passwords es la que lo impide...


-Desbloqueo del login de root en Debian 10


En la carpeta etc/pamd.d existen varios archivos que debemos modificar manualmente. Esto lo podemos hacer con el comando nano o gedit. Son los archivos gdm-autologin y gdm-password. Que deberíamos hacer así:



 #nano etc/pam.d/gdm-autologin o nano gdm-autologin (si ya estamos en la carpeta pam.d) -> y donde pone != root lo dejamos como = root.


Y #nano etc/pam.d/gdm-password->y donde pone != root lo dejamos como = root (lo mismo que en el otro, vaya).



Así aparece.

Así debe quedar




pero ¡ERROR---SI LO HACEMOS ASÍ! porque lo que indicamos es que el login es correcto si el usuario es root. Impidiendo así que entren el resto de usuarios. Probarlo y veréis.


Debemos poner simplemente # al principio de esas dos líneas dejándolas como comentario. Tal y como muestra la imagen siguiente.



De esta forma la línea queda 'comentada', sin efecto, y no requiere ni que sea root ni que no lo sea para que el login sea correcto. 


Y así es como solucionamos el 'problema' de no poder entrar con root directamente en Debian 10.


Fuentes:

https://wiki.debian.org/es/sudo

https://www.comoinstalarlinux.com/que-hacer-despues-de-instalar-debian-10/

https://www.youtube.com/watch?v=L5FM9xnVKEs