David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

jueves, 12 de noviembre de 2020

Tweaks y botón minimizar en Fedora

Volviendo a Fedora, me he encontrado con que esta distribución ha mejorado bastante desde la última vez que la probé y en esta versión por lo menos estoy obteniendo gratas sorpresas.

Para poder tener el dichoso botón minimzar en gnome, es muy muy facil, como en otras distribuciones vamos a tweaks.

   # yum install gnome-tweaks-tools

Una vez instalado ejecutamos:

   # gnome-tweaks

Se abrirá una ventana de configuración en la que podremos ir a la sección 'Barras de título en las ventanas' y activar el botón minimizar y maximizar.

SaluDOS

sábado, 24 de octubre de 2020

Clonar un disco duro con un simple comando

Supongamos que estamos haciendo una asistencia a un equipo informático y necesitamos clonar un disco duro mecánico para sustituirlo por un SSD, pero que se mantenga el sistema operativo y todos los datos existentes, evitamos el formateado, instalación de sistema operátivo, programas añadidos, etcétera.

En mi caso cuento con una dock para poder conectar por USB un par de discos duros. Se trata de un disco duro de 1 TB con una instalación de Windows 10, lo conectamos en el primer slot y en el segundo conectaremos el disco duro SSD que tiene que ser de igual o mayor tamaño que el anterior.

Al conectarlos, podemos lanzar el comando para localizarlos:

   # fdisk -l

Veremos que se nos han agregado los dos discos duros y la salida será algo así:

Disk /dev/sdb: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: GZX202          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: D4CB46D6-BF41-4EE8-8E56-42D29AA7CB39

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048     534527     532480   260M EFI System
/dev/sdb2      534528     567295      32768    16M Microsoft reserved
/dev/sdb3      567296 1917003775 1916436480 913,8G Microsoft basic data
/dev/sdb4  1917003776 1919010815    2007040   980M Windows recovery environment
/dev/sdb5  1919010816 1953511423   34500608  16,5G Microsoft basic data


Disk /dev/sdc: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: GZX202          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes

Vemos que el disco duro que tiene la instalación de Windows se localiza en /dev/sdb y el disco duro SSD nuevo sin contenido está en /dev/sdc

Para lanzar el clonado tendremos que especificar el origen (if) y el destino (of), así que el comando sería:

   # dd if=/dev/sdb of=/dev/sdc

Esperamos el tiempo que le cueste realizar la clonación y voilá.

SaluDOS

domingo, 20 de septiembre de 2020

Instalar Anydesk en Ubuntu Desktop

Para instalar Anydesk en Ubuntu, primero añadimos el repositorio, para ello primero lanzamos el comando:

   # wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | apt-key add -

 Una vez obtenida la clave, podemos añadir el repositorio:

   # echo "deb http://deb.anydesk.com/ all main" > /etc/apt/sources.list.d/anydesk-stable.list

Ahora ya podemos actualizar e instalar Anydes:

   # apt update

   # apt install anydesk

SaluDOS

viernes, 4 de septiembre de 2020

Que programas instalar en Linux para tener un equipo totalmente funcional (II)

Al hilo de la entrada: https://www.gaizka.net/2020/04/que-programas-instalar-en-linux-para.html en la que proponia una serie de programas que me parecen imprescindibles en Elementary OS, veamos como podríamos instalarlos por bloques, como siempre en la terminal para copiar y pegar:

Lo clasificaremos al igual que la entrada anterior por tipo de programas. Algunos no los incluyo porque conllevan agregar repositorios y se habrá tratado en otras entradas específicas:

- Configuración y administración

# apt install vim wget tilix htop gufw remmina

- Multimedia y gráficos

# apt install vlc audacity gimp kdenlive obs-studio

- Internet, mensajería y ofimática

# apt install firefox telegram-desktop libreoffice

Para la instalación por ejemplo de chrome, es tan facil como hacer la descarga desde el navegador e instalarlo con eddy.

- Programación

# apt install python3.6 code git

En el caso de python habría que específicar la versión que deseamos en caso de necesitar una superior a la 2.7 o la que tenga predeterminada la distribución.

- Seguridad

# apt install keepass2 nmap wireshark

TODOS

apt install vim wget tilix htop gufw remmina vlc audacity gimp kdenlive obs-studio firefox telegram-desktop libreoffice python3.6 code git keepass2 nmap wireshark

SaluDOS


 



martes, 1 de septiembre de 2020

Tweaks y el botón minimizar en elementary OS versión 5 o 6

Al instalarme una nueva versión de Elementary OS, he tenido que volver a configurar todos los programas y entre ellos el famoso Tweaks, para tener algún botón mas en las ventanas y que resulte mas cómodo el minimizar o maximizar. Además hay mas opciones que se pueden modificar cómodamente y algunas son útiles si quieres personalizar mas el comportamiento del entorno gráfico.

Aunque ya tenía por ahí una entrada para versiones anteriores, creo que no está de mas repasarlo. Para instalar Tweaks en la versión 5.1 de Elementary OS llamada Hera solo hay que ejecutar:

Para la versión 5

sudo apt install software-properties-common

sudo add-apt-repository ppa:philip.scott/elementary-tweaks

sudo apt install elementary-tweaks 

Para la versión 6

   # add-apt-repository ppa:philip.scott/pantheon-tweaks 

   # apt update 

   # apt install pantheon-tweaks

SaluDOS 

domingo, 31 de mayo de 2020

Logs en Linux, archivos para dar y tomar

El mundo de los logs en Linux se hace complicado cuando hay que analizar un comportamiento en el servidor, uno de sus servicios o una aplicación concreta. Por ello vamos intentar resumir los ficheros mas importantes, comúnes o útiles, aunque es un tarea complicada.

Veamos, tradicionalmente se han clasificado en categorias como:
   - Logs de sistema
   - Logs de eventos
   - Logs de servicios
   - Logs de aplicaciones

Eso está muy bien y aparece en todos los sitios, pero la realidad es que si vamos a la configuración de rsyslog o syslog-ng por ejemplo, podremos ver un listado extenso de archivos a los que hace referencia:

   /var/log/auth.log - Logs de autenticación.
   /var/log/syslog.log - Logs de sistema
   /var/log/crond.log - Logs de los trabajaos de cron
   /var/log/daemon.log - Logs de servicios en segundo plano
   /var/log/kernel.log - Logs del kernel
   /var/log/lpr.log - Logs de impresión
   /var/log/user.log - Logs de usuario
   /var/log/maillog - Logs relacionados con el servidor de correo
   /var/log/messages - Logs generales de sistema

Si indagamos por internet, podremos obtener un puñado mas de archivos de logs:


   /var/log/httpd/ - Logs de apache
   /var/log/lighttpd/ - Logs de Lighttpd
   /var/log/boot.log - Logs de arranque de sistema
   /var/log/kern.log - Logs de kernel
   /var/log/mysqld.log o /var/log/mysql.log - Logs de MySQL
   /var/log/secure o /var/log/auth.log - Logs de autenticación
   /var/log/utmp or /var/log/wtmp
   /var/log/yum.log Logs de yum
   /var/log/qmail/ - Logs de qmail

Se que es una locura, pero si además incluyes aplicacions la lista puede ser infinita. Si tuviesemos que centrarnos en unos cuantos creo que sería bueno seleccionar los logs mas críticos y relevantes si un día tenemos un problema. Se que no vamos a descubrir nada nuevo, pero veamos esta lista tan habitual:


/var/log/boot.log --- Almacena la informacion relacionada con el arranque y los mensajes que se registran en dicho proceso. Aqui obtendremos información sobre apagados incorrectos, reinicios no planeados o fallos de arranque en general.

/var/log/auth.log o /var/log/secure --- El primer fichero es típico de distribuciones basadas en debian y el segundo en distribuciones basadas en red hat. Contiene todos los eventos relacionados con la autenticación y la autorización de usuarios. Permite revisar intentos fallidos de acceso, fuerza bruta, etcétera. Almacena todo lo relacionado con la seguridad, uso de sudo, inicios de sesión ssh y todos los eventos de autenticación de usuario. Informará sobre intentos de acceso no autorizados o fallidos, además de los inicios de sesión que se han realizado con éxito. También /var/log/faillog o /var/log/btmp contendrán intentos fallidos de acceso. El registro de inicio de sesión y su fin se mantienen en /var/log/wtmp. A este respecto es muy útil /var/log/lastlog que mantiene el último inicio de sesión de cada usuario.

/var/log/messages o /var/log/syslog --- Contiene registros de la actividad general del sistema, almacena mensajes informativos y no críticos. Puede mostrar errores de arranque no relacionados con el kernel y servicios relacionados con las aplicaciones. Suele ser el primer archivo que revisaremos si algo va mal.

/var/log/dmesg --- Almacena mensajes del nucleso relacionados con hardware, dispositivos y sus controladores. Contendrá la detección de los dispositivos, errores de hardware y otros mensajes genéricos.

/var/log/kernel.log o /var/log/kern.log --- Es un archivo importantísimo, contiene todo lo que registra el núcleo. Nos puede ayudar si tenemos un núcleo personalizado, o nuestro servidor presenta problemas de hardware, conectividad, etcétera.


/var/log/cron --- Registra todo lo que tenga que ver con las tareas programadas en cron. Cada vez que se ejecute una tarea programada cron registrará la información relevante, ejecuciones correctas, errores, etcétera.

/var/log/daemon.log --- Registra eventos relevantes de los demonios que estén en ejecución en segundo plano.

/var/log/yum.log --- Almacenará toda la información relevante cuando se instale un nuevo paquete si hemos usado yum. Registra la instalación de componentes del sistema y los paquetes de los repositorios. Es habitual que si un software no se ha instalado correctamente acudamos a este archivo log.

/var/log/maillog o /var/log/mail.log --- Registrará todo lo relacionado con el servicio de correo y de cualquier aplicación que tenga que ver con dicho servicio. Se podrá rastrear los envios y recepciones de correos electrónicos, investigar sobre problemas de entrega de correos, averiguar origen de un correo, spam, etcétera.

/var/log/httpd --- Almacena los registros del servidor apache si lo tenemos instalado. Normalmente se almacena en dos archivos diferentes: error_log y acces_log. En el primero se registrarán los errores relacionados con el servidor, su servicio y el sistema. En el segundo archivo se almacenarán todas las peticiones de acceso recibidas a través de protocolo http. Registrará dirección IP y el ID de los clientes que realizan peticiones de conexión al servidor tanto exitosas como infructuosas.

/var/log/mysqld.log o /var/log/mysql.log --- Almacena los registros del servidor mysql si lo tenemos instalado. El primer archivo es típico de distribuciones basadas en Red Hat y el segundo para las basadas en Debian. Es el archivo de registro con todos los mensajes de depuración, fallo y éxito relacionados con mysql. Se puede registrar desde problemas al iniciar, ejecutar o detener el demonio de mysql, hasta información sobre bloqueos de consultas, consultas de ejecución lenta, etcétera.

En otras entradas trataremos formas de centralizar la información y de poder hacer un análisis mas general o rápido de los logs, por lo menos en un primer paso que nos evite empezar a revisar archivo tras archivo. Podríamos ver desde un logwatch que nos ayuda a obtener un informe un poco mas "humano" de forma puntual o programada, hasta un servidor de logs Nagios o un graylog, con el que podremos centralizar, recopilar y monitorizar, para establecer alertas que nos notifiquen si hay un comportamiento anómalo en nuestros servidores.

SaluDOS

jueves, 14 de mayo de 2020

Powershell en Linux... tal cual suena y funciona.

Si, como lo oyes, estoy trasteando con powershell en linux, estoy ya tan acostumbrado al scripting con powershell en entornos Windows que me he lanzado al vacio.

Veamos como instalarlo. Vamos a la página de Microsoft para descargarlo aquí. En concreto vamos a instalar la versión 6 sobre elementary OS, luego vemos como sería en otras distribuciones.

Vamos a la opción de Linux y después tendremos que elegir la versión concreta, en este caso si miramos en consola lanzando el comando:

   # uname -a

Podremos obtener en la salida que es la versión: 18.04.1-Ubuntu

Así que vamos a esa versión concreta. Como puedes ver hay mas versiones y distribuciones diferentes.

Tomamos la primera opción, copiamos el contenido y lo ejecutamos en consola, sería este:

   # Download the Microsoft repository GPG keys
   wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb

   # Register the Microsoft repository GPG keys
   sudo dpkg -i packages-microsoft-prod.deb

   # Update the list of products
   sudo apt-get update

   # Enable the "universe" repositories
   sudo add-apt-repository universe

   # Install PowerShell
   sudo apt-get install -y powershell

Lo que va detrás del simbolo # serán solo comentarios, por lo que solo se ejecutarán las líneas de comandos.

En el caso de un CentOS 7, por coger otro ejemplo en plan servidor, solo tendríamos que seguir los pasos de la web de Microsoft, serían:

   # Register the Microsoft RedHat repository
   curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo

   # Install PowerShell
   sudo yum install -y powershell

En cualquier caso, para lanzar la consola de powershell:

   # Start PowerShell
   pwsh

Si además tenemos VSCode instalado, quedaría integrada la terminal de powershell sobre el editor de código, una vez instalado powershell, solo tenemos que reiniciar VSCode, al ir a la extensión de Powershell veremos que ya nos abre el terminal integrado.

Prueba a lanzar un get-date y verás que funciona, a partir de ahí depende de tu imaginación...

SaluDOS

sábado, 9 de mayo de 2020

Montando un directorio compartido por NFS

Ultimamente un NAS comercial permite crear un directorio compartido de una forma sencilla. Al agregar una conexión NFS solo tienes que introducir la IP del equipo desde donde quieres conectarte y los permisos que le concedes. Obviamente no es lo mas seguro pero veamoslo por el lado sencillo, solo los comandos a ejecutar para conectar desde un linux a ese directorio.

Supongamos un entorno de laboratorio con los siguientes elementos:

   - NAS, tiene una ip: 192.168.100.252
   - Equipo, tiene una ip: 192.168.100.20, además hemos hecho una reserva en el DHCP para que siempre tenga esa dirección, otra opción es configurar en manual la red del equipo.
   - Directorio compartido: Creamos un directorio llamado Drive, le agregamos conexión NFS para que se pueda conectar la IP del equipo y establecemos permisos de escritura.
   - Al compartir, el NAS nos informará de la ruta que tiene el directorio compartido, supongamos que es: /volume1/Drive

Para conectarnos por NFS, necesitaremos instalar:

En Arch: Documentación oficial aquí.
   # pacman -S nfs-tools

En ElementaryOS:
   # apt install nfs-common
En CentOS:

   # yum install nfs-tools

Una vez que tenemos las utilidades NFS, podemos crear el directorio donde montaremos esa conexión remota:

   # mkdir /mnt/Drive

Tenemos dos opciones, empecemos por la primera, montar a mano el directorio, se puede especificar algún parametro mas pero ya no suele ser necesario:

   # mount 192.168.100.252:/volume1/Drive /mnt/Drive

Si queremos desmontar:

   # umount /mnt/Drive

Lo normal es que tengamos la unidad permanentemente mapeada y simplifiquemos el montaje/desmontaje si nos hiciese falta ejecutarlo, para ello tenemos que editar el fichero fstab y agregar una linea:

   # vim /etc/fstab

   192.168.100.252:/volume1/Drive /mnt/Drive nfs defaults 0 0

Recarga fstab, o bien reiniciando o mejor ejecutando:

   # mount -a

Tras este comando, se ha leido fstab y el punto de montaje se ha efectuado, podremos dirigirnos a /mnt/Drive y operar en el NAS sin necesidad de montarlo manualmente.

Ahora, si hiciese falta, podríamos montar el directorio así:

   # mount /mnt/Drive

O así:

   # mount 192.168.100.252:/volume1/Drive

Por ejemplo podríamos simplificar este último comando si añadimos un nombre en nuestro equipo para la IP, para ello editamos el fichero hosts y añadimos una línea:

   # vim /etc/hosts

   192.168.100.252      NAS01

Con esto, ya podemos hacer referencia al nombre y no a la IP, en todo lo que hemos ejecutado o configurado hasta ahora. Podriamos personalizar el nombre a nuestro antojo, independientemente del nombre que tenga realmente el dispositivo NAS.

En fstab especificariamos:

   NAS01:/volume1/Drive /mnt/Drive nfs defaults 0 0

Recargariamos fstab:

   # mount -a

Seguiriamos pudiendo montar directamente así:

   # mount /mnt/Drive

O así:

   # mount NAS01:/volume1/Drive

SaluDOS

jueves, 7 de mayo de 2020

¿Qué antivirus elegir?

Cuando quieres instalar un antivirus, tanto en tu casa como en los sistemas o empresa que administras, el tema está complicado.

Por un lado no es lo mismo un PC, un smartphone o un servidor, y por otro lado no todos los antivirus tienen soporte para todas las plataformas como Windows, Linux, Android o MacOS.

Si utilizas google o cualquier otro buscador, creo que mas que ayudar empeora a la hora de elegir, ya que la búsqueda tiene condicionantes y sobre todo influye la publicidad o el dinero que haya puesto una u otra empresa de antivirus por detrás.

Además está esa premisa de que lo barato sale caro y muchas veces es difícil saber si un antivirus en su versión gratuita nos va proteger o no.

AV-TEST es un instituto de investigación independiente en temas de seguridad. Aunque es un instituto alemán y no tengo cercanía sobre si nos podemos o no fiar de lo que dicen, cuando he querido comparar me ha ayudado bastante sus análisis. Tiene una trayectoria muy larga y sus rankings y análisis son muy conocidos.

Colaboran con otras instituciones y realizan bastantes estudios, contando con laboratorios de prueba bastante variados. Además diferencian el objetivos de sus análisis contando con pruebas para:

   - Usuarios privados, enlace aquí.
   - Empresas aquí.
   - Elementos IoT aquí.
   - Productos de seguridad en general aquí.

Incluso incluyen artículos y noticias que tratan de ayudar en temas de seguridad, por ejemplo esta noticia que hoy por hoy ayuda bastante sobre el teletrabajo: Trabajar en casa de forma segura o esta sobre las actualizaciones de software: Actualizaciones para mas seguridad.

Muy recomendable ver su atlas aquí. Es una plataforma inteligente que analiza amenazas, como correos electrónicos maliciosos, spam, malware, URLs sospechosas o peligrosas, etcétera. Cuenta con diferentes categorías y datos generales interesantes de conocer.

SaluDOS

lunes, 4 de mayo de 2020

osquery, la navaja suiza del sysadmin

La aplicación osquery es una de esas herramientas open source que cuando eres administrador de sistemas y la descubres, realmente te quedas sin palabras.

Digamos que es una herramienta que va a estar vigilando tu equipo, o los equipos de toda la red que administras o los servidores que tienes que sufrir. El escalado es muy potente, hasta llegar a miles y miles de activos en tu infraestructura.

Se puede instalar en tu propio equipo o en un servidor para controlar que es lo que está pasando en él, independientemente de la plataforma que tengas, está soportado para Windows, Mac OS y Linux. En su página web oficial hay gran cantidad de información, y la documentación es bastante extensa y la puedes consultar aquí.

Si nos centramos en una máquina linux, está soportado sobre bastantes tipos de distribuciones, por ejemplo para instalar en...

Arch y familia:
   # pacman -S osquery

ElementaryOS y familia debian:
   # apt-get install osquery

CentOS y familia Red Hat:
   # yum install osquery

Si lo queremos instalar en un equipo o servidor Windows, podemos ver el proceso aquí y también en la web de chocolatey aquí.

Vale, y que vigila, pues me atrevería a decir de forma atrevida que practicamente todo. Digamos que transforma tu sistema operativo en una base de datos en donde las tablas SQL representan conceptos abstractos como procesos en ejecución, módulos de kernel cargados, plugins de navegador, conexiones de red abiertas, eventos de hardware, etcétera.

Se ejecuta en modo demonio/servicio y se encarga de ir agregando los resultados de las consultas que realiza el programa sobre la máquina como registros de un motor SQLite.

Y ¿como consultamos los parámetros de nuestra maquina en este recolector de información?, pues con simples comandos SQL a través de su consola.

Una vez instalado podríamos arrancar el demonio y activarlo para futuros reinicios:

   # systemctl start osqueryd
   # systemctl enable osqueryd

Para lanzar la consola, ejecutariamos:

   # osqueryi

Y entramos en un shell propio, un CLI, sobre el que podemos lanzar las consultas de forma interactiva. Además es totalmente agnostico de plataforma, por lo que las consultas son genéricas y creo que es ahí donde reside su potencia cuando administras infraestructuras mixtas, tiene una buena adaptabilidad a los diferentes sistemas operativos.

Pongamos algunos ejemplos de comandos y esas consultas para entender como podríamos aprovecharnos de este software, comencemos sacando la ayuda:

   osquery> .help

Si queremos ver las tablas generadas:

   osquery> .tables

Si queremos podemos utilizar pragma table_info, nativo de SQLite, para conocer la información de una tabla concreta con los campos que contiene para poder construir sentencias SQL apropiadas, por ejemplo:

   osquery> pragma table_info('system_info');

Hay que tener en cuenta que dependiendo de la plataforma, habrá bastantes tablas comunes pero se generarán otras tablas especificas para el sistema operativo que está corriendo.

Ejemplos sencillos, genéricos y que se describen por si solos podrian ser:

   osquery> select * from uptime;
   osquery> select * from system_info;
   osquery> select * from os_version;
   osquery> select * from time;
   osquery> select * from crontab;
   osquery> select * from processes;
   osquery> select * from users;
   osquery> select * from kernel_modules;
   osquery> select * from etc_hosts;
   osquery> select * from interface_addresses;
   osquery> select * from routes;
   osquery> select * from process_open_files;
   osquery> select * from syslog_events;

Y ahora veamos ejemplos mas elaborados, algunos extraidos de esta web, para comprender la potencia de este punto único de encuentro para muchas preguntas que nos podemos hacer sobre un equipo, servidor o infraestructura completa.

Para saber cual es el hostname del equipo:

   osquery> select hostname from system_info;

Si por ejemplo queremos obtener información del procesador del sistema, podríamos lanzar algo así:

   osquery> select cpu_type, cpu_brand from system_info;

Si queremos saber como está el almacenamiento local en el punto de montaje raiz:

   osquery> select path, type, round((blocks_available * blocks_size *10e-10),2) as gigs_free from mounts where path='/';

Si queremos conocer los puertos que están a la escucha:

   osquery> select * from listening_ports;

Si queremos encontrar los procesos que están corriendo sobre el puerto 80:

   osquery> select pid from listening ports where port = 80;

Al tratarse de meras consultas SQL, podríamos llegar a generar joins de varias tablas por lo que la información se vuelve mas completa, por ejemplo al hilo de los dos comandos anteriores podemos unir procesos y puertos que están escuchando:

    osquery> select p.pid, p.name, p.state,p.uid, lp.port from processes p join listening_ports lp on p.pid = lp.pid and lp.port=80;
Y si nos vamos a un ejemplo mas trabajado, podríamos por ejemplo querer saber cuales es el top 10 de los procesos que están consumiendo mas CPU:

    osquery> select pid, uid, name, round(((user_time + system_time) / (cpu_time.tsb - cpu_time.itsb)) * 100, 2) as percentage from processes, (select (sum(user) + sum(nice) + sum(system) + sum(idle) * 1.0) as tsb, sum(coalesce(idle, 0)) + sum(coalesce(iowait, 0)) as itsb from cpu_time ) as cpu_time order by user_time+system_time desc limit 10;
Y podriamos hacer lo mismo con el top 10 de los procesos que ocupan mas memoria:

    osquery> select pid, name, round((total_size * '10e-7'), 2) as used from processes order by total_size desc limit 10;

Este ejemplo también es muy interesante, saber quien está logueado en nuestro sistema:

   osquery> select * from loggued_in_users;

Si queremos conocer cuales han sido los últimos inicios de sesión, no solo los actuales:

   osquery> select * from last;

Si queremos salir de la consola:

   osquery> .exit

Y por último, me parece interesante saber donde se encuentran los ficheros mas relevantes de osquery, tanto para distribuciones de la familia de centOS como de debian, estas serían las rutas por defecto:

   - Configuración: /etc/osquery/osquery.conf
   - Logs: /var/log/osquery
   - Binarios: /usr/bin
   - Packs: /usr/share/osquery/packs

Si te estás preguntando que son los packs, digamos que son conjuntos de consultas a modo de reglas para buscar información interesante o mas concreta.

En el caso de Windows todo debería de ir a la ruta: C:\Program Files\osquery

   - Configuración: C:\Program Files\osquery\osquery.conf
   - Logs: C:\Program Files\osquery\log
   - Binarios: C:\Program Files\osquery
   - Packs: C:\Program Files\osquery\packs

Una herramienta que si vemos su potencial instalado y ejecutado en local, imagínate si la despliegas en red y centralizas la información obtenida... Brutal!!!

SaluDOS

BlackArch, todas sus herramientas de seguridad al alcance de la mano

BlackArch es una distribución específica para temas de seguridad, hacking, pentesting, forense, etcétera. Se puede utilizar para investigar y montar laboratorios y realmente es una alternativa bastante buena a Kali Linux si eres mas de filosofía Arch.

Se puede descargar la imagen .iso desde su página web oficial aquí. Lo normal suele ser generar una máquina virtual o instalarlo en un pendrive para lanzarlo en modo liveCD. Una vez que lo estás ejecutando, siempre puedes instalarlo siguiendo estos dos simples pasos:

Primero instalamos el paquete con los scripts de instalación:

   # pacman -S blackarch-install-scripts
 
Una vez instalado este paquete, podrás seguir las instrucciones tras ejecutar:

   # blackarch-install
Antes de efectuar la instalación de Arch es interesante echar un vistazo a la web sobre blackarch-install aquí


En este mismo apartado de descargas de su página web, te explican como puedes llegar a instalarte las herramientas en tu propio equipo, si tienes una distribución basada en Arch linux. Veamos estos sencillos pasos, ya que es muy interesante si te dedicas a la seguridad informática, la descarga puede ser total, por categorías o por herramienta y esto da mucho juego.

Si quieres consultar las herramientas que ofrece, puedes consultarlo en el apartado Tools de su web oficial aquí.

Para empezar vamos a descargar el script strap.sh:


   # curl -O https://blackarch.org/strap.sh

Comprueba siempre el SHA1 para verificar que es el orginal y nada te ha inyectado otro script, la salida de este comando tendrá que coincidir con el SHA1 que nos muestran en la web:

   # sha1sum strap.sh

   Actualmente el valor es: 9c15f5d3d6f3f8ad63a6927ba78ed54f1a52176


Establecemos que se pueda ejecutar el script:

   # chmod +x strap.sh

Y lo ejecutamos:

   # ./strap.sh

En estos momentos ya tendremos configurados los repositorios de BlackArch, como habremos visto en mitad de la salida del script:

   [+] you can change the default mirror under /etc/pacman.d/blackarch-mirrorlist

Este dato es importante si tenemos que llegar a ajustar algo de los repositorios en algún momento. A partir de aqui ya podremos instalar las aplicaciones de BlackArch, veamos algunos ejemplos:

Si lo que queremos es obtener un listado de todas las herramientas disponibles podriamos ejecutar:

   # pacman -Sgg | grep blackarch | cut -d' ' -f2 | sort -u

Si las contamos concatenando con el comando wc veremos que hay, en estos momentos, 2563 herramientas. Ahí queda eso.

   # pacman -Sgg | grep blackarch | cut -d' ' -f2 | sort -u | wc -l


Si buscamos un programa concreto, por ejemplo bettercap, podríamos hacer:

   # pacman -Sgg | grep blackarch | cut -d' ' -f2 | sort -u | grep bettercap

Si buscamos el programa directamente, veremos que nos lo ofrecen los repositorios Community de Arch y también los de BlackArch:

   # pacman -Ss bettercap

Para instalar la herramienta que ofrecen los repositorios de BlackArch tendriamos que ejecutar especificando el repositorio:

   # pacman -S blackarch/bettercap

Si lo que queremos es instalar todas las herramientas, algo que creo que es una locura por la cantidad de ellas:

   # pacman -S blackarch

Podemos consultar las categorias existentes, normalmente cuando vamos a investigar o a hacer un pentesting es razonable buscar una categoría concreta:

   # pacman -Sg | grep blackarch

Y podriamos instalar una categoria concreta así:


   # pacman -S blackarch-<category>

Por ejemplo, para temas de IDS, podríamos instalar la categoría correspondiente:

   # pacman -S blackarch-ids

Y si antes quisieramos ver que contiene, podriamos consultar ese grupo concreto:

   # pacman -Sg blackarch-ids

Veriamos que actualmente contiene:

   blackarch-ids sagan
   blackarch-ids snort
   blackarch-ids suricata
   blackarch-ids suricata-verify

Algunas categorías no tienen mucha cosa, pero te invito a que pruebes con esta, veras que la lista de herramientas es extensa:

   # pacman -Sg blackarch-wireless

Como indican en la documentación oficial, a veces es necesario sobreescribir algunos paquetes o dependencias, por ello si obtenemos "failed to commit transaction" deberemos usar --needed y --overwrite como en el siguiente ejemplo:

    # sudo pacman -Syyu --needed blackarch --overwrite='*'

Si quieres profundizar en blackarch además de su página web oficial, te recomiendo su repositorio oficial en github aquí.

SaluDOS

viernes, 24 de abril de 2020

Como tener la posibilidad de instalar paquetes snap en Linux Arch

Hace unos 3 o 4 años, los paquetes snap se empezaron a convertir en una forma "universal" de instalar paquetes, fuese la distribución que fuese y es verdad que poco a poco lo están consiguiendo. Es muy útil tener esta opción en Arch, así que veamos como agregar snap para realizar instalaciones de este tipo de paquetes.

Lo haremos a través de los paquetes AUR (Arch Users Repository), algo que ya configuramos en el último paso que dimos al terminar de instalar Arch en nuestro equipo en esta entrada.

El proceso de compliación manual es el método de instalación soportado por Arch, así que lo primero que hacemos es clonar el repositorio git de snapd, compilar e instalar:


   # git clone https://aur.archlinux.org/snapd.git
   # cd snapd
   # makepkg -si

Ahora tendremos que habilitar el conector:

   # systemctl enable --now snapd.socket

Para habilitar el típico soporte de snap, tendremos que crear un enlace simbólico:


   # ln -s /var/lib/snapd/snap /snap

Por último o cerramos sesión y volvemos a iniciarla, o lo mas sencillo es reiniciar:


   # reboot

A partir de aqui ya podemos utilizar snap para buscar e instalar un paquete, veamos un ejemplo, buscamos el paquete:

   # snap search telegram

E instalamos:

   # snap install telegram-desktop

SaluDOS

jueves, 23 de abril de 2020

Como descargar mp3 o videos desde youtube en elementaryOS o Ubuntu Desktop

Existen multitud de programas para descargar los videos o audios de youtube, pero creo que cuando tienes un linux entre las manos, este programa es el mejor. Se que es en linea de comandos, pero lo que hace lo hace bien, rápido y permite bastantes variantes. Aqui mostraremos como descargar los videos y audios y varios ejemplos muy sencillos. Como siempre la web del repositorio oficial está aquí donde se puede consultar la funcionalidad completa.

INSTALACIÓN

Primero instalamos el programa, como primera opción está desde los repositorios oficiales:

   # apt install youtube-dl -y

Aunque de esta forma instalamos la última versión, que es lo mas interesante ya que youtube tiende a hacer cambios continuos y si tenemos una versión obsoleta es posible que no podamos descargar.

Si previamente tenemos versión instalada es mejor que la desinstalemos:

   # apt remove youtube-dl

Instalamos desde el repositorio original con la versión: latest

   # curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl

Ajustamos los permisos:

   # chmod a+rx /usr/local/bin/youtube-dl

Si al utilizarlo muestra error de python, recordad que tenemos que tener python instalado y para no tener problemas con la ejecución de este programa y olvidarnos de lanzarlo a través de python como en este ejemplo:

   # python3 /usr/local/bin/youtube-dl

O instalamos python:

   # apt install python-minimal

O podemos hacer un enlace simbólico:

   # ln -s /usr/bin/python3 /usr/local/bin/python

EJEMPLOS DE USO

Tenemos la opción de bajar el video directamente y es así de fácil solo necesitamos la url, es decir dirección web, que nos presenta youtube en nuestro navegador:

   # youtube-dl <url del video en youtube>

Si queremos bajar en un formato concreto, primero podemos consultar los formatos disponibles:

   # youtube-dl -F <url del video en youtube>

Nos mostrará una lista de formatos con un código asociado en la primera columna, la descripción, resolución, etcétera. Si por ejemplo queremos el número 136:

   # youtube-dl -f 136 <url del video en youtube>

Si queremos bajar el audio, por ejemplo en mp3, tendríamos que ejecutar:

   # youtube-dl -x --audio-format mp3 <url del video en youtube>

Para bajar una playlist entera o parte de ella en formato mp3 podriamos- ejecutar:

   # youtube-dl -x --audio-format mp3 --playlist-start 1 --playlist-end 5 <url de la playlist en youtube>

Si quisieramos bajar los videos de la playlist completa, ejecutariamos primero la búsqueda para que nos de los valores posibles de descarga. Nos fijaremos en el señalado como "best":

   # youtube-dl -F --yes-playlist <url de la playlist en youtube>

Y ejecutariamos la descarga por ejemplo para el valor 18 señalado en la búsqueda, obteniendo todos los videos de la lista:

   # youtube-dl -f 18 --yes-playlist <url de la playlist en youtube>


No tiene desperdicio como funciona y lo facil que es bajarte el video que desees para poder verlo mas tarde sin conexión a internet.

SaluDOS

miércoles, 22 de abril de 2020

Que programas instalar en Linux para tener un equipo totalmente funcional (I)

Veamos la lista de programas que instalaríamos para llegar a tener un Linux Arch con el que podamos realizar todas las tareas cotidianas que necesitemos.

Lo clasificaremos por tipo de programas:

- Configuración y administración

   + vim

   + wget

   + lxterminal o tilix

   + htop

   + gufw

   + remmina 

   + Eddy (Elementary)

- Multimedia y gráficos

   + vlc

   + audacity

   + gimp

   + kdenlive

   + obs-studio

- Internet, mensajería y ofimática

   + firefox

   + chromium

   + thunderbird

   + telegram-desktop

   + libreoffice

- Programación

   + python

   + code (VSCode)

   + pycharm 

   + git

- Servidor

   + cups

   + LAMP:
      - apache
      - mariadb
      - php

   + virtualbox
      - tor-browser
      - filezilla
      - rtorrent

   + docker
      - portainer


- Seguridad

   + keepass

   + veracrypt

   + crashplan

   + nmap

   + wireshark

- Juegos

   + gnuchess

   + steam

- Compatibilidad con Windows

   + wine

   + playonlinux

Este último grupo ya casi no lo uso pero es interesante tenerlos en la lista. Creo que no se me olvida ninguno importante. :-)

SaluDOS

martes, 21 de abril de 2020

Pacman es un juego y el gestor de paquetes de Linux Arch

El gestor de paquetes de Arch se llama pacman, efectivamente como el videojuego, parece potente y sencillo de manejar, algo que se agradece si no tienes mucha experiencia y tienes que instalar o actualizar desde la consola.

En este caso vamos a resumir algunos comandos útiles, se puede consultar la documentación oficial aquí. Vamos a poner de ejemplo el grupo de paquetes xorg:

Para buscar paquetes en los respositorios:

   # pacman -Ss xorg

Si queremos información de un paquete:

   # pacman -Si xorg

Si queremos información de un grupo de paquetes, por ejemplo xorg:

   # pacman -Sg xorg

Para sincronizar los repositorios:

   # pacman -Sy

Para instalar un paquete:

   # pacman -S xorg

Al igual que otros gestores de paquetes, para instalar varios paquetes:

   # pacman -S org-server org-server-devel ...

Y si queremos combinar estas dos acciones, en un único comando para sincronizar repositorios y después instalar un paquete:

   # pacman -Sy xorg

Para actualizar el sistema:

   # pacman -Syu

En caso de que sepamos que un paquete está ya instalado, podremos buscarlo con este comando:

   # pacman -Qs xorg

Si lo que queremos es información detallada de un paquete que ya tengamos instalado:

   # pacman -Qi xorg

Y por último en cuanto a la eliminación, para eliminar un paquete sin sus dependencias:

   # pacman -R xorg

Si queremos eliminar un paquete y las dependencias no utilizadas:

   # pacman -Rs xorg

Si tenemos un archivo en una ruta y nos gustaría saber a que paquete pertenece ese archivo:


   # pacman -Qo <rutadelarchivo>

Para localizar los paquetes huérfanos:


   # pacman -Qet

Una cosa que me sorpendió de pacman y que es importante tener en cuenta, es que guarda una caché de las últimas versiones anteriores conforme actualiza paquetes, y NO SE BORRAN. Para eliminar la caché de todos los paquetes no instalados podemos utilizar pacman:

   # pacman -Sc
Pero para trabajar con esta cache tenemos el comando paccache. Para eliminar todos los paquetes anteriores excepto las 3 últimas versiones, que es lo predeterminado:

   # paccache -r

Para establecer el número de versiones anteriores que deseamos guardar, por ejemplo 2:

   # paccache -rk2

Para tratar con los paquetes desinstalados usamos el modificador k, para eliminar todos esos paquetes:

   # paccache -ruk0

Bueno, creo que hasta aquí es mas que suficiente para una primera sencilla inmersión.

SaluDOS

sábado, 18 de abril de 2020

¿Tienes un nuevo portátil, quieres instalar Linux Arch y tienes problemas con grub?

Si tienes un portatil, nuevo y quieres instalar Linux Arch, seguramente te enfrentarás a varios problemas añadidos en el proceso. Un problema común al instalar grub es un mensaje odioso que nos dice: /boot/efi doesn't look like an EFI partition

Tendremos que cambiar el proceso de instalación un poco, así que voy a tratar de resumirlo por fases, según esta entrada en la que explico la instalación inicial.

Es probable que si tiene hardware mas actualizado el disco no se llame /dev/sda, tendrá un nombre del estilo /dev/nvme0n1 o algo similar, serguramente tendremos que cambiar los nombres especificados en la entrada, pongamos un ejemplo:

   /dev/sda   será   /dev/nvme0n1
   /dev/sda1   será   /dev/nvme0n1p1
   /dev/sda2   será   /dev/nvme0n1p2
   /dev/sda3   será   /dev/nvme0n1p3

En el Paso 3 de particionado, antes de crear las particiones, tendremos que especificar que la tabla de particiones la queremos en modo dos, para ello dentro de fdisk pulsamos la letra o. Si pulsamos m veremos que en la ayuda nos dice Create a new label, o create a new empty DOS partition table:

   # fdisk /dev/sda
   > o

Confirmaremos que queremos sobreescribir la tabla de partición existente. Es probable que tengamos que reiniciar para que la tabla se escriba en el disco duro y podamos continuar con los pasos.

Vamos a crear las mismas particiones pero para la partición sda1 la vamos a formatear de otra forma. Ejecutaremos:

   # mkfs.fat -F32 /dev/sda1

En el Paso 4 de instalación y configuración, vamos a montar esta partición de otra forma. Una vez que hemos montado la partición /dev/sda3 en el punto de montaje /mnt ejecutaremos:

   # mkdir -p /mnt/boot/efi
   # mount /dev/sda1 /mnt/boo/efi 


Seguiremos con la instalación y cuando lleguemos a la instalación de grub, cambiaremos un poco los pasos a dar. En mi caso concreto añado intel-ucode pero esto puede variar:

   # pacman -S efibootmgr
   # pacman -S intel-ucode
   # pacman -S grub
   # grub-install --bootloader-id=Arch_Linux --efi-directory=/boot/efi --recheck --target=x86_64-efi
   # grub-mkconfig -o /boot/grub/grub.cfg

Y terminamos la instalación y configuración.

SaluDOS

Linux Arch, seguimos configurando hasta el deseado entorno gráfico

Tras la instalación que realizamos en esta entrada vamos a seguir dando pasos hasta encontrar una configuración que nos encaje. Una vez que tenemos Arch Linux funcionando podríamos seguir las recomendaciones generales oficiales aqui. Veamos los pasos más básicos que suelo dar yo...

RED

Una cosa que no hicimos del todo en la entrada de instalación, porque hay que ir aprendiendo que Arch no es una distribución cualquiera, es que hay que configurar la red, no es algo que pase de forma mágica. Como siempre podríamos consultar la documentación oficial aqui pero vamos a ver mi propia fórmula.

Comprobamos el controlador de red:
   # lspci -k

Deberemos encontrar algo llamado Ethernet Controller y comprobar que está en uso. Seguramente hasta aqui ha ido todo bien.

Imaginemos que necesitamos instalar un paquete como net-tools, para por ejemplo poder hacer un ifconfig y ver la configuración del adaptador de red. Pero no tenemos red, por lo que no podemos hacerlo. Utilizaremos este caso de uso por si se nos ha olvidado algo importante y queremos hacer un apaño, se que no es imprescindible en esta configuración pero lo usaremos a modo de ejemplo.

Para ello volveremos a reiniciar el equipo con el CD de Arch y veremos como agregar estos paquetes siguiendo parte de los pasos que hicimos al realizar la instalación:
   # loadkeys es
   # fdisk -l
   # mount /dev/sda3  /mnt
   # arch-chroot /mnt

   # pacman -S net-tools
   # exit
   # reboot

Ahora configuraremos la red, así que primero miramos como se llama el adaptador:
   # ip link

En mi caso el adaptador de red se llama enp0s3, así que crearemos el archivo de configuración para ese adaptador:
   # vim /etc/systemd/network/wired.network

Y su contenido será el nombre del adaptador y la configuración de IP dinámica:
   [Match]
   Name=enp0s1
   [Network]
   DHCP=ipv4

Es muy probable que tengas otro adaptador de red, esta vez wifi, en mi caso se llama wlp0s20f3, así que repetimos los pasos:

   # vim /etc/systemd/network/wifi.network

Y su contenido será el nombre del adaptador y la configuración de IP dinámica:
   [Match]
   Name=wlp0s20f3
   [Network]
   DHCP=ipv4

Configuramos los DNS:

   # vim /etc/resolv.conf

Y su contenido, por ejemplo:
   nameserver 1.1.1.1
   nameserver 1.0.0.1

Iniciamos el servicio y lo activamos para que se active en el arranque:
   # systemctl start systemd-networkd
   # systemctl enable systemd-networkd

Comprobamos la conectividad haciendo un ping:
   # ping google.es

Si no tenemos conectividad podemos realizar un reinicio:
   # reboot

NUEVO USUARIO

Creo que lo mas importante, antes de empezar a trastear con el sistema, es crear un usuario que nos permita trabajar con la máquina y dejar de usar root.
Creamos el usuario con su propio directorio en home:

   # useradd -m usuario

Y configuramos su contraseña:

   # passwd usuario

Ahora bien, como Arch está absolutamente limpio tenemos que instalar sudo, si, exactamente tal y como has leido, sudo no está disponible :-) y queremos utilizarlo cada vez que vayamos a lanzar un comando con privilegios elevados.

   # pacman -S sudo

Pero para que el nuevo usuario pueda lanzar sudo, tenemos que agregarlo como sudoer. Para ello vamos a ver el contenido del archivo sudoers y decidimos:
   # cat /etc/sudoers

A partir de ## User privilege specification. Veremos la única línea que no está comentada: root ALL=(ALL) ALL y después se defnien varios grupos: wheel y sudo. Vamos a descomentar la primera linea de wheel:
   %wheel ALL=(ALL) ALL

Este cambio habilita a los usuarios que pertenezcan al grupo wheel para que puedan ejecutar comandos con sudo como si fuesen administradores. Solo queda agregar al nuevo usuario a ese grupo:
   # usermod -a -G wheel usuario


Creo que es muy recomendable tener un usuario normal y corriente para el uso cotidiano y/o para hacer pruebas, con los dos primeros comandos de antes lo creamos:
   # useradd -m usuarionormal
   # passwd usuarionormal

ENTORNO GRÁFICO

Ya sabeis que todo lo referente al entorno gráfico podeis consultarlo en la documentación oficial aqui.

Tenemos un montón de alternativas para elegir a nivel de entorno gráfico, pero primero tendremos que instalar el servidor de pantalla. Iremos al tradicional xorg, si lo queremos hacerlo sencillo instalamos todo, incluso el código fuente con el grupo xorg:
   # pacman -S xorg

Si quieres ver que contiene este grupo antes de instalarlo, observarás que no son pocas cosas las que contiene, podrías lanzar este comando:
   # pacman -Sg xorg

Si queremos afinar un poco mas, podriamos de momento instalar:
   # pacman -S xorg-server xorg-xinit xorg-server-utils

Antes de nada, y es algo que se suele pasar por alto, tendremos que ver que gráfica tenemos para instalar los drivers adecuados. Vamos a volver a lanzar el mismo comando de antes y buscamos la línea que empieze por VGA:
   # lspci -k

Salvo que sea una máquina virtual, obtendremos un indicio de la gráfica, pondrá referencia al fabricante, como intel, nvidia o ATI por ejemplo. Si nos vamos a los drivers de código abierto, podemos encontrarlos todos con el comando:
   # pacman -Ss xf86-video

O ya que nos basamos en xorg, podríamos hacer la búsqueda así:
   # pacman -Ss xorg-drivers

Veremos que aparecen vesa, voodoo, intel, ati, los de código abierto de nvidia llamados nouveau, etcétera. Elegimos el mas apropiado para nuestro hardware y lo instalamos, por ejemplo para ATI:
   #  pacman -S xf86-video-ati

Veamos otro ejemplo, si tenemos una nvidia, podremos optar por los drivers propietarios y sus utilidades:
   # pacman -S nvidia nvidia-utils

O podriamos optar por los de código abierto:
   # pacman -S xf86-video-nouveau

Y ahora, al fin, veamos ejemplos de como instalaríamos los entornos de escritorio mas típicos, porque realmente es muy personal la elección. Veamos algunos ejemplos, su instalación y activación. Hay que tener en cuenta si tiene o no soporte oficial, esto se puede ver aqui.  En el nombre del entorno os dejo el link a la documentación oficial.

GNOME: Instalamos los dos grupos y el administrador de pantalla.
   # pacman -S gnome gnome-extra
   # pacman -S gdm
   # systemctl enable gdm
   # reboot

KDE: Instalamos el grupo plasma, el conjunto de aplicaciones y el administrador de pantalla.
   # pacman -S plasma kde-applications
   # pacman -S sddm
   # systemctl enable sddm
   # reboot

XFCE: Instalamos el grupo xfce4, el grupo de plugins con utilidades y el administrador de pantalla.
   # pacman -S xfce4 xfce4-goodies
   # pacman -S lxdm
   # systemctl enable lxdm
   # reboot

BUDGIE:Instalamos el paquete budgie-desktop, el grupo gnome y el administrador de pantalla.
   # pacman -S budgie-desktop gnome
   # pacman -S gdm
   # systemctl enable gdm
   # reboot

Obviamente podemos instalar MATE, CINNAMON, LXDE e incluso PANTHEON.

Por último, para que nos sea mas sencillo de manejar la instalación de paquetes a través del entorno gráfico, podemos instalar el gestor de aplicaciones llamado pamac, tendremos que instalarlo sin ser usuario root, veamos como:

   $ pacman -S --needed base-devel git wget yajl
   $ cd /tmp
   $ git clone https://aur.archlinux.org/package-query.git
   $ cd package-query
   $ makepkg -si && cd /tmp/ $ git clone https://aur.archlinux.org/yaourt.git
   $ cd yaourt
   $ makepkg -si
   $ yaourt -S pamac-aur

A disfrutarlo, pero recuerda que todavía quedará mucho por hacer...

SaluDOS

viernes, 17 de abril de 2020

kdenlive y la edición de videos en elementaryOS

No había probado todavía este programa para montar un video. Dentro de la simplicidad de video que he tenido que realizar, con un fin familiar, me ha sorprendido gratamente. Al final con este tipo de programas solo busco que sea sencillo, poner 4 videos, 4 fotos, una música de fondo y poco mas.

Se puede consultar su web aqui. Por aclarar porque tiene ese nombre, como indican en su página kdenlive es un acrónimo de KDE Non Linear Video Editor, es Freeware y se puede instalar en diferentes sistemas operativos. Para instalarlo en elementaryOS:

   # apt install kdenlive -y

Aparecerá en el menú de Aplicaciones desde donde podremos lanzarlo. Su manejo es sencillo. Tiene bastantes efectos, transiciones y recursos on line que se pueden integrar.

Desde el menú Project con Add Clip podremos introducir los elementos al proyecto, como videos, fotos o audios. Y tenemos disponible la opción de introducir un Clip con título, estabilizar el clip, etcétera.

Desde la lista de efectos de la propia pantalla principal, tenemos efectos para video, audio y personalizados. Se puede ver todos o seleccionar el tipo de efecto que quieres aplicar, es útil ya que la lista es bastante larga.

Si agregas el efecto, en el apartado de propiedades tienes los elementos a configurar, duración, niveles de aplicación, etcétera, dependiendo del efecto seleccionado pueden ser mas o menos propiedades.

En los diferentes tracks de video o audio se pueden ir insertando los elementos agregados al proyecto. Tenemos la herramienta para seleccionar, cortar o espaciar. Se maneja de forma ágil el recortar y recolocar los elementos multimedia.Podemos previsualizar el video, pausarlo, adelantar o atrasar la reproducción y jugar con zonas.

Una vez que tienes el montaje hecho, para exportarlo tenemos el botón Render. Se puede elegir diferentes formatos de video en diferentes calidades, audio o incluso secuencias de imágenes. Se puede lanzar para todo el proyecto para una zona, elegimos la ruta de salida y lo ejecutamos. Puede tardar mas o menos de acuerdo a la complejidad de nuestro montaje Una vez finalizado el proceso ya tenemos el fichero generado para utilizarlo. He probado varios formatos y es verdad que según la calidad y el formato para un video sencillo el tiempo de espera es un poco largo.

Seguro que tiene muchas mas opciones que no he utilizado pero en general me ha parecido un programa mas que adecuado para un uso esporádico o amateur.

Programa recomendable. El último punto a comentar, si quieres poner kdenlive en otro idioma, solo tienes que ir al menú Help y seleccionar Switch Application Language...  Cerrando y abriendo este se presentará en el idioma seleccionado. No he repesado las traducciones pero tienen buena pinta.

SaluDOS

domingo, 12 de abril de 2020

Linux Arch, instalación básica

Creo que cuando ya le has pillado el truco a cualquier distribución linux, es conveniente moverte y salir de tu zona de confort. Cuando ya sabes usar las distribuciones típicas como las que parten de red hat o debian, te has enfrentado a la consola y has ganado la batalla, prueba arch linux. No lo dudes y lanzate al vacio.
Todavia recuerdo esa sensación, el tener una consola delante y no tener una instalación asistida, como hace años, eso sí, en la recta final está un entorno muy estable y para los amantes del entorno gráfico, en la meta encontrareis una distribución que merece la pena conocer.

Veamos los pasos y algunos detalles importantes para ser capaces de instalar esta distribución. Estos pasos son los que sigo yo, pero recuerda que puedes seguir la documentación oficial aqui, ya no lo recuerdo pero creo que no la sigo al pie de la letra pero poco variará.

PASO 1: ARRANQUE

Me salto la parte de descargar la imagen .iso, y crear por ejemplo la máquina virtual o generar el pendrive autoarrancable, supongo que si se va a instalar Arch ya se domina algo así.
Para la creación de este manual he cogido la última imagen existente ahora mismo, la versión 5.5.13

Una vez arrancado el equipo a través de la imagen ISO, aparece el menú que te permite seleccionar varias opciones como arrancar el sistema operativo existente en el caso de que ya haya uno en el disco duro,  hacer un test de memoria RAM u obtener información del hardware. Elegiremos la primera opción: Boot Arch Linux
Una vez arrancado Arch tenemos una consola con acceso de root. Empieza la fiesta.

PASO 2: CONFIGURACIÓN BÁSICA

Lo primero es configurar la distribución del teclado, en mi caso:
   # loadkeys es
Siempre compruebo con la tecla ñ, el guión - o el interrogante ?
Es muy recomendable comprobar la fecha y la hora para evitar cosas raras, así que lanzamos el comando:
   # date

Si tenemos que cambiar la fecha y/o la hora podemos primero comprobar si tenemos conexión a internet:
   #  ping google.es

Si tenemos conexión a internet configuramos la zona y activamos ntp:
   # timedatectl set-timezone Europe/Madrid
   Si no sabes exactamente que zona, puedes listar todas y por ejemplo hacer un grep de la parte que conozcas. De todas formas es mas facil utilizar google :-)
   # timedatectl list-timezones | grep Europe
   # timedatectl set-ntp true

Si no tenemos conexión a internet o simplemente no queremos dar tantas vueltas, miramos el reloj y configuramos de forma manual, por ejemplo con el comando:
   # date --set "2020-04-04 17:21"

PASO 3: PARTICIONADO

Vamos a mostrar los discos y particiones existentes:
   # fdisk -l

Lo normal si el equipo es nuevo o la máquina virtual es de reciente creación, encontraremos por ejemplo:
   Disk /dev/sda --> El disco duro local sobre el que queremos instalar.
   Disk /dev/loop0 --> El disco CD con la imagen ISO desde done estamos instalando.

Si tenemos instalado otro sistema operativo aparecerán mas particiones, pero eso sí hay que tener mucho mucho cuidado con lo que haces.

Comprobamos bien los discos y/o particiones para saber donde instalar. Yo elegiré /dev/sda

La elección de las particiones es un poco personal, yo suelo diferenciar por ejemplo /var de la raiz y a veces también una partición /tmp o /home. Depende un poco del rol de la máquina, si es un puesto de usuario, un servidor, etcétera.

Lo vamos a hacer lo mas sencillo posible para empezar, vamos a crear tres particiones, que son las mínimas imprescindibles:

/ --> Partición raiz, en ella irá todo el sistema operativo, nuestra home, programas y demás contenido de la distribución. Le pondremos el tamaño que nos sobre una vez configuradas las otras dos particiones.

/swap --> Partición de intercambio, aqui cada maestrillo tiene su librillo, y es verdad que tiende a desaparecer en las nuevas distribuciones de otro tipo por las características del los nuevos equipos. Habitualmente se pone la mitad del tamaño de la memoria RAM, yo normalmente la configuraba con el mismo tamaño de la RAM. Actualmente los equipos físicamente tienen tanta memoria RAM que con 1 GB o 2 GB de tamaño es mas que suficiente, incluso 512 MB vale por si llegasemos a ocupar toda la RAM y necesitase el sistema utilizar el disco duro.

/boot --> Partición de arranque, en ella se instalará el gestor de arranque grub. Se suele recomendar diferenciarla, con un tamaño de 512 MB también mas que suficiente, la documentación de Arch recomienda 260 MB

Para crear las particiones en el disco duro sda ejecutaremos:
   # fdisk /dev/sda

Para crear una nueva partición pulsaremos la tecla: n
Para decirle que es primaria pulsaremos la tecla: p
Al mostrarnos el primer sector pulsaremos la tecla: Enter
Para indicarle el último sector, es decir el tamaño, introduciremos: +512M

Esta será la partición de arranque.

Para crear una nueva partición pulsaremos la tecla: n
Para decirle que es primaria pulsaremos la tecla: p
Al mostrarnos el primer sector pulsaremos la tecla: Enter
Para decirle el último sector, es decir el tamaño, introduciremos: +1024M
(se puede poner tambien +1G)

Esta será la partición de intercambio.

Para crear la partición raiz seguimos los mismos pasos, pero para decirle el tamaño pulsaremos la tecla: Enter, así seleccionamos el resto del tamaño.

Antes de salir de fdisk hay que escribir los cambios realizados así que pulsaremos la tecla: w
Comprobamos la tabla de particiones:
   # fdisk -l

Veremos que se han creado:
   /dev/sda1
   /dev/sda2
   /dev/sda3

Creamos el sistema de archivos en las particiones: ext4
   # mkfs.ext4 /dev/sda1
   # mkfs.ext4 /dev/sda3

Activamos swap en la partición de 2G:
   # mkswap /dev/sda2
   # swapon /dev/sda2

Comprobamos con free que la partición swap está activa:
   # free

La instalación la realizaremos sobre la partición /dev/sda2 en el siguiente paso.

PASO 4: INSTALACIÓN Y CONFIGURACIÓN
Como estamos ejecutando desde un liveCD, vamos a montar la partición raiz para poder trabajar sobre ella:
   # mount /dev/sda3 /mnt

La partición de arranque, la mapeamos en un directorio que previamente habremos creado en la raiz:
   # mkdir /mnt/boot
   # mount /dev/sda1 /mnt/boot

Instalamos justo lo imprescindible para que se pueda ejecutar el sistema operativo, los paquetes base, el kernel de linux y un firmware genérico:
   # pacstrap /mnt base linux linux-firmware

Piensa que mas adelante podrás personalizar e instalar nuevos paquetes para dejar todo como quieras. De momento con esto Arch debería funcionar.

Crearemos un archivo fstab
   # genfstab -U /mnt >> /mnt/etc/fstab

Cambiamos la raiz al nuevo sistema instalado:
   # arch-chroot /mnt

Configuramos la zona horaria del nuevo sistema, recuerda que depende de donde vivas tendrás que adaptar la región y ciudad, primero mostramos la información de zonas y luego configuramos:
   # ls /usr/share/zoneinfo
   En mi caso es /Europe/Madrid:
   # ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Configuramos el reloj:
   # hwclock --systohc --utc

Configuramos la configuración local y el idioma del sistema. En mi caso:
   # locale-gen
   # echo LANG=es_ES.UTF-8 > /etc/locale.conf

Configuramos la distribución de teclado:
   # echo KEYMAP=es > /etc/vconsole.conf

Configuramos el nombre del equipo, por ejemplo ARCH:
   # echo ArchLinux > /etc/hostname

Instalamos un editor de texto, la tradición me obliga a que sea vim:
   # pacman -S vim

Configuramos el fichero hosts:
   # vim /etc/hosts
   Introducimos el siguiente contenido:
   127.0.0.1   localhost
   ::1              localhost
   127.0.0.1   ArchLinux.local ArchLinux

Cambiamos la contraseña de root:
   # passwd

Instalamos el gestor de arranque con pacman:
   # pacman -S grub
   # grub-install /dev/sda
   # grub-mkconfig -o /boot/grub/grub.cfg

Por si acaso actualizamos el sistema:
   # pacman -Syu

Salimos del sistema de archivos que acabamos de instalar con exit y desmontamos la unidad:
   # exit
   # umount -R /mnt

Reiniciamos:
   # reboot

Y ya deberíamos de poder entrar en Arch con el usuario root y la contraseña que hemos introducido al cambiarla. Eso sí, consola pura y dura, sin entorno gráfico, eso para la próxima entrega.

SaluDOS

sábado, 28 de marzo de 2020

Control remoto a servidores Windows desde elementary OS

Sigo tratando de obtener un equipo plataformado en linux con el que sea capaz de realizar mi día a día como administrador de sistemas e incluso que pudiese ser adaptado a usuario final.

En mi caso parece sencillo, pero cuando mezclas plataforma Windows con Linux, almacenamientos, switches o routers todo se complica aunque poco a poco vamos recorriendo el camino. Además de mis labores de administrador también tengo funciones de usuario final, correo, ofimática, etcétera.

En esta entrada nos centraremos en un punto importante, el poder coger control remoto de los servidores. En Windows hay muchas herramientas que son muy útiles, de las cuales a día de hoy yo destacaría dos:

   - Microsoft Remote Desktop Connection Manager (RDCMan), con posibilidad de agrupar conexiones RDP. Muy útil cuando tienes mucho servidor Windows que administar.

   - MobaXTerm, con versión gratuita con límite de conexiones, para entornos pequeños es perfecto y con versión de pago bastante asequible. Además de RDP, te permite configurar conexiones ssh, vnc y un largo etcétera de opciones, agrupar las conexiones, realizar scp de forma directa, establecer entorno gráfico para conexiones linux y muchas mas opciones.

Hay que tener en cuenta que cuando te conectas a un servidor Linux, un switch o un almacenamiento necesitas por ejemplo ssh, no vale solo con RDP. :-)

Ahora bien, cuando se trata de conectarte desde un programa sobre plataforma Linux, aunque también hay bastantes opciones la mejor a mi personalmente me parece Remmina. Esta es su página web y ofrece la posibilidad de configurar conexiones RDP, SSH y VNC.

Como dicen directamente en su página web, se puede instalar en cualquier sistema operativo, tiene multiples funcionalidades, plugins y además es libre con copyleft.

Para instalarla en elementary OS solo tenemos que ejecutar:

   # apt install remmina -y

Ya podemos abrir desde las aplicaciones el programa. Tiene un interfaz absolutamente reducido y con las opciones imprescindibles para manejarlo. Me encanta.

Al hacer clic sobre el botón + podremos agregar conexiones, definiendo todos los parámetros necesarios. Para agrupar las conexiones, solo tienes que escribir el nombre del nuevo grupo, este se agregará después a la lista de conexiones. En las siguientes conexiones creadas, podrás elegir a que grupo pertenece. Se pueden crear agrupaciones como: Switches, Windows Servers, Linux Servers, Routers, Firewalls, etcétera. De tal forma que agrupando por tipo de elemento de red cuando vayas a conectarte, a un servidor windows o linux, sabes claramente a que agrupación tienes que ir.

En el botón de opciones, podremos ir a preferencias para establecer el comportamiento de la aplicación. Creo que solo destacaría un detalle, cuando creas una conexión si falla algo y no funciona, la sensación que da Remmina es que no se puede editar esa conexión. Una vez que la has creado, haces doble clic sobre la conexión y directamente trata de establecerla.

Obviamente se puede editar la conexión, así que la primera opción que me parece interesante configurar en las preferencias: Ve a la ficha opciones y en la opción: 'Double-click action' selecciona edit settings. De esta forma cada vez que lances una conexión, primero aparecerá la configuración de la conexión, si necesitas cambiar algo lo cambias y después puedes conectar o guardar y conectar dependiendo de si has editado o no alguna opción.

Habitualmente, según la resolución de la conexión remota necesitamos ajustarla cuando ya estamos en control remoto, por ello asegurate que la opcón 'remmember last view mode for each connection' está activada. De esta forma los ajustes que realizas en directo serán recordados.

Se puede también establecer el directorio para la captura de pantalla, resoluciones y teclas rápidas. Hay bastante que puedes retocar.

Si quieres apoyar al desarrollo de la aplicación, marca la opción 'Send periodic usage statistics to remmina developers'. Yo a nivel personal lo tengo activado porque manejo tres cosas en casa, pero a nivel profesional nunca lo activo. No quiero que se envie nada a nadie.

Opciones interesantes a tener claras como las quieres configurar son por ejemplo las de apariencia, si se ven las barras de herramientas en formato pantalla completa, botones o menús, la vista predeterminada a aplicar, etcétera. Las opciones de teclado por ejemplo yo no las configuro, no necesito grandes atajos del teclado, me meto en el elemento de red que estoy manejando y me ovido de todo. Pero supongo que son útiles para otras personas.

Opciones varias sobre ssh, terminal o RDP hay también unas cuantas. Creo que cuando manejas el terminal si que es interesante que el esquema de colores te resulte útil, pero esto es ya muy personal.

Una opción importante es el mapa de teclas en las conexiones remotas a servidores que están en otros paises o con otros idiomas. A mi me pasa con teclados con distribución inglesas y francesa. Por lo tanto la opción 'Keyboard layout' hay que tenerla presente.

Y poco mas que comentar, creo que es una herramienta muy útil para centralizar las conexiones de toda tu infraestructura y sencilla de manejar.

SaluDOS

jueves, 26 de marzo de 2020

Algunos comandos útiles para Linux (I)

Se que hay miles de páginas que resumen cientos de comandos a utilizar en Linux, pero como el título del blog dice: estos son mis apuntes. :-)

Voy a tratar de recopilar los comandos habituales mas frecuentes cuando trabajas en un terminal Linux. Aumentaremos poco a poco el nivel en varias entregas y empezaremos por los más básicos. Espero que sean útiles.

Para profundizar en los comandos y ver opciones disponibles con diferentes argumentos, prueba a mostrar la ayuda con --help.

   Por ejemplo:

      # clear --help


TERMINAL...

   Para limpiar el terminal, subes hasta arriba todos los comandos anteriores y dejan de verse, pero están ahí. Si el terminal es una ventana en entorno gráfico puedes utilizar la barra de desplazamiento para verlos.

      # clear

   Para reiniciar la sesión del terminal, reinicia la sesión, por lo que se pierde totalmente los comandos y resultados anteriores.

      # reset

   Para ver el historial de los comandos utilizados. Tiene opciones interesantes que veremos en otro momento.

      # history

   Conocer la ruta en la que nos encontramos, muy útil cuando vas entrando en mil directorios y ya no te acuerdas de donde estás.

      # pwd

   Listar directorios y archivos:

      # ls

   Listar directorios y archivos con detalles (-l) y mostrando ocultos (-a). Profundizaremos en el resto de opciones con mas tranquilidad en otro momento, este es el mas utilizado.

      # ls -la

   Para desplazarnos por los directorios podemos utilizar el comando cd (change directory):

      # cd /root

   Si queremos volver a la raiz del sistema de archivos:

      # cd /

   Si queremos subir un nivel hacia arriba:

      # cd ..


SISTEMA...

   Conocer la arquitectura y versión del kernel, con la opción all (-a) veremos toda la información excepto procesador y hardware si es desconocida.

      # uname -a

   Usuarios conectados al equipo en este momento. Con la opción all (-a) veremos toda la información. Se puede abreviar ejecutando w mostrando la información mas relevante, como que es lo que el usuario está haciendo

      # who -a
      # w

   Cuando administras un servidor, con diferentes usuarios, muchas veces pierdes la noción de quien eres, por eso podemos preguntarle al sistema, especialmente útil si el prompt no te muestra con que usuario estás logueado.

      # whoami

   Mostrar la fecha del sistema en este momento. Se puede cambiar el formato o incluso reestablecer la fecha, para mas adelante.

      # date

   A veces viene bien ver cuantos meses o años lleva un servidor linux funcionando de forma ininterrumpida.

      # uptime

   Si queremos mostrar la actividad del procesador, memoria y mostrar las tareas que maneja el kernal en tiempo real podemos usar el siguiente comando, recuerda pulsar la tecla 'q' o 'ctrl+c' para salir.

      # top

   Si además queremos saber lo que está haciendo el kernel con respecto a un usuario concreto, podemos añadir:

      # top -u aliasdelusuario

   Para mostrar la actividad del usuario en el sistema, general de todos o especificando el usuario concreto:

      # last
      # last aliasdelusuario

   Para realizar búsquedas de ficheros o directorios dentro del sistema de ficheros, el comando find busca ficheros, directorios y cadenas de caracteres. Por ejemplo, buscamos el texto usb empeando en la raiz:

      # find / -name usb

   Por último, para conocer los ficheros abiertos por el sistema, lsof es muy útil (ls open files):

      #  lsof

   Se puede especificar el usuario para el que deseamos consultar los ficheros abiertos:

      # lsof -u aliasdelusuario


HARDWARE...

   Aunque algunas distribuciones no tienen este comando, se puede instalar:

      # apt install hwinfo

   Para mostrar información sobre el hardware del equipo, deberemos ejecutar concatenando con more para paginar la salida. Ojo, porque lo que vomita el comando es muy muy extenso pero tiene información muy útil.

      # hwinfo | more

   Se puede mostrar un resumen añadiendo --short

      # hwinfo --short

   Para ver información de algo concreto, se puede añadir el elemento. En la opción anterior obtenemos el resumen en relación a los diferentes items existentes como cpu, memory, network o storage:

      # hwinfo --memory
      # hwinfo --cpu

   Para ver como tenemos la memoria RAM y el swap tenemos este comando que es un clásico. Si se te amontona ver la información en Kilobytes, puedes mostrarlo en formato "humano" añadiendo -h.

      # free
      # free -h

   Para mostrar las particiones y como está el espacio en el sistema de ficheros. En formato humano solo tenemos que añadir -h. Es muy interesante porque muestra tamaño, espacio usado, libre y el punto de montaje.

      # df -h

   Aunque fdisk es mucho mas que un comando que muestre cosas, sirve para modificar discos y particiones, de momento podemos listar las particiones, algo muy util en nuestro día a día:

      # fdisk -l

   /proc, en este directorio vamos a encontrar cosas muy interesantes, aunque muchas ya las hemos visto con los comandos anteriores. Si listamos su contenido, veremos ficheros virtuales como cpuinfo o meminfo. Tenemos que mostrar su contenido con cat:

      # cat /proc/cpuinfo
      # cat /proc/meminfo
      # cat /proc/version
      # cat /proc/partitions

De momento dejamos aqui esta primera entrega.

SaluDOS


martes, 24 de marzo de 2020

El mundo del revés: Microsoft Teams en Linux...

Experimentando en el plataformado de un equipo con elementary OS que sea capaz de suplir a Windows 10, acabo de tener una sensación muy extraña.

Vaya por delante que sigo enamorado de Libre Office.

Está claro que con las nuevas versiones on line de Microsoft Office, a través de un navegador tipo firefox o chrome, se simplifica mucho el poder utilizar Office en una distribución Linux. Aunque es todo en línea, como la información realmente está en onedrive y en mi caso no utilizo formatos y plantillas que se me descuadren al utilizar las versiones on line, todo va bastante bien.

Al entrar a Microsoft Teams, me ha ofrecido la posibilidad de bajar el cliente para linux, y aunque ya hacía tiempo que venía evitándolo, me he lanzado al vacio. Así, sin pensármelo dos veces.

He bajado el paquete .deb para 64 bits, Eddy, el gestor de paquetes, ha interceptado la descarga y lo ha instalado sin complicaciones. Está ha disposición también paquete .rpm para distribuciones con base Red Hat.

Sorprendentemente he abierto la aplicación, he introducido mis credenciales y listo, Teams en elementary OS. Sin palabras, sentimientos encontrados al probar la aplicación.

Como esta aplicación concentra todo, chat, calendario, reuniones, acceso a onenote y onedrive, planner, etcétera. Y al acceder a los archivos de onedrive, podemos abrir pdfs, docx o xlsx. Dentro de la propia aplicación, abre la suite de ofimática on line embebida en la ventana de Teams. Es decir, en una única ventana tenemos la suite ofimática de Microsoft. Lo que estaba claro es que por ejemplo los archivos access no puede abrirlos, pero bueno, el avance es brutal.

Seguiremos experimetando. Esperemos que estos avances y acercamientos de Microsoft hacía las distribuciones linux no estropen nada de nuestro espíritu de libertad y pasión por el software libre.

SaluDOS.

domingo, 22 de marzo de 2020

Como tener Telegram Desktop en Elementary OS

Una vez que tenemos snap instalado en nuestra distribución, podemos instalar cientos de programas de la forma mas sencilla. Veamos el ejemplo con telegram desktop.

   # snap install telegram-desktop

Una vez que obtenamos el siguiente mensaje:

   telegram-desktop 1.9.21 from Telegram FZ-LLC (telegram.desktop) installed

Ya podemos utilizar Telegram. A disfrutarlo!!!

SaluDOS.

sábado, 14 de marzo de 2020

Como instalar Anydesk en elementary OS

Vamos a instalar el programa de control remoto Anydesk en la distribución elementary OS en su versión Hera.

Se que el rey de la fiesta es Teamviewer para esta funcionalidad, pero yo sigo pensando que Anydesk es un buen candidato y llegado el momento de un uso profesional su licenciamiento no es disparatado.

Veamos que pasos seguir para instalarlo. Primero añadimos la clave para confiar en el proveedor de aplicaciones:

   # wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | apt-key add -

Añadimos el repositorio:


   # echo "deb http://deb.anydesk.com/ all main" > /etc/apt/sources.list.d/anydesk-stable.list


Actualizamos la caché de apt:

   # apt update


E instalamos el programa:

   # apt install anydesk

Y ya lo tenemos en el menú Aplicaciones.

SaluDOS.

viernes, 13 de marzo de 2020

PyCharm en elementary OS

Pycharm es uno de esos IDE que realmente no te decepcionan en su versión community, aunque todo sea dicho de paso la versión de pago no es muy cara.

Veamos como instalarlo en elementary OS en su versión Hera.

Actualizamos nuestro sistema operativo e instalamos snap:

   # apt update -y

   # apt install snapd -y

Reiniciamos para que las rutas de snap se actualicen correctamente.

Ya podemos realizar la instalación de pycharm:

   # snap install pycharm-community --classic


A teclear en python :-)

SaluDOS.