Planeta Sysadmin

de sysadmins para sysadmins

December 04, 2019

soyadmin.com

Liberada nueva versión de Kali Linux 2019.4 con muchísimas NOVEDADES

Fue anunciada una nueva versión de Kali Linux, la 2019.4, una versión plagada de novedades y mejoras

Todos conocemos lo popular de Kali, una distro famosa por ser utilizada en Hacking ético y Seguridad, Offensive Security lanzó oficialmente Kali Linux 2019.4 la cual puede ser descargada desde su web oficial, haciendo CLICK AQUI

Kali migra su escritorio a XFCE, dejando atras a GNOME, escritorio que generaba algunos problemas de estabilidad y sobre todo rendimiento en la distro.

Entre sus principales características y mejoras se detallan:

  • Nuevo entorno de escritorio predeterminado, Xfce
  • Nuevo tema GTK3 (para Gnome y Xfce)
  • Introducción del modo «Kali Undercover»
  • La documentación de Kali tiene un nuevo hogar y ahora funciona con Git
  • Empaque público: cómo introducir sus herramientas en Kali
  • Kali NetHunter KeX: escritorio completo de Kali en Android
  • BTRFS durante la configuración
  • PowerShell agregado
  • El núcleo se actualiza a la versión 5.3.9
    … Además de las correcciones de errores normales y actualizaciones.

KALI UNDERCOVER: Esta característica te permite usar un theme o piel idéntico a Windows 10, el cual lo emula a la perfección, un detalle que si bien no tiene una función específica serviría para camuflar nuestra distro, como si fuera un modo «incógnito».

Esta nueva versión viene llena de mejoras y funciones, puedes tener más información en su WEB OFICIAL

by Mauro at December 04, 2019 12:47 PM

December 02, 2019

soyadmin.com

Midnight Commander, qué es? cómo se instala? y cómo funciona?

Que es Midnight Commander?
Midnight Commander es una aplicación de Shell, (ssh) que funciona como un administrador de archivos, muy parecido al conocido y ya viejo Norton Commander de DOS, o igualito tambien al Total commander.

Para que sirve Midnight Commander?
MC o Midnight Commander nos facilitará el uso y manejo de archivos dentro de nuestra consola SSH, permitiéndonos desplazarnos y movernos entre nuestros archivo/carpetas para así poder: editar/mover/copiar/pegar/borrar/etc archivos o carpetas.
Esta herramienta nos permite además realizar empaquetados y desempaquetados de archivos comprimidos, ordenar, listar y filtrar archivos o carpetas. Y una característica muy útil, es la posibilidad de realizar conexiones FTP entre servidores, permitiendo el traslado de archivos entre distintos servers.

Como se instala MC?
La instalación es sencilla:

  • CentOS / RHEL y Fedora:
# yum instal mc
  • Debian, Ubuntu, Mint y derivados:
# sudo add-apt-repository universe
# sudo apt update
# sudo apt install mc

Como se ejecuta?

# mc

by Mauro at December 02, 2019 02:09 PM

RooTeando

Escribiendo con un Café 11: Terminal, ese oscuro objeto de deseo.

En este boletín se escribirá sobre la Terminal, donde se mostrará diferentes herramientas para sacar su máximo rendimiento, también se mostrarán unas pocas herramientas para realizar tareas en el terminal de manera mas eficiente. En las Noticias habrá un poco de todo, nuevo modelo de Slimbook, algo sobre Docker, Pinephone, un artículo sobre Docker y Fedora 31, por último una aplicación que se "pasa" al software libre.

En Aprendiendo Python ,muestro algunas herramientas para desarrolla una ...

December 02, 2019 12:00 AM

Entrevista En Diferido 21: Francisco Oldani

Comenzamos una nueva  entrevista con un invitado con perfil de desarrollador, su nombre es Francisco Oldani.

Antes de todo, gracias por aceptar la invitación y apoyar a este proyecto. La primera pregunta es una presentación por parte del entrevistado, para que los lectores te puedan conocer un poco.

Entrevista En Diferido: ¿Te puedes presentar en unas líneas?

 

Francisco Oldani:  Gracias a ti por invitarme.
Soy desarrollador en una empresa pequeña desde hace ya ...

December 02, 2019 12:00 AM

December 01, 2019

Tuxjm el sitio de jmedina

AliExpress standard shipping vs epacket

AliExpress standard shipping vs epacket is the consideration of not only purchasers in the world but also sellers who apply drop ship method to their online stores. It is because AliExpress system gives out similarly periods of delivery time but the shipping cost of each method is different. This article will show you the cause of this difference.

Have you ever ordered a product from AliExpress shipped to your country? It is assumed that you live in Great Britain. Usually, there are two shipping options for you. This product will be delivered to your country in 20-40 days if AliExpress standard shipping vs epacket are applied. If you use epacket, you will have to pay about US$2.77 depending on the destination. This cost may change a little bit according to your location.

AliExpress standard shipping vs epacket

You may wonder why you have to pay the amount while the delivery time period of the two methods is the same. The difference between 20-40 days is up to 20 days, which is quite general so your wonder is completely reasonable. If you have hundreds or thousands of orders, the shipping costs will become a burden.

I will give you a reason so you will see that it is worth paying in this case. Aliexpress Standard Shipping is generally slower, despite what the delivery time says. Also, Aliexpress Standard is tracked only to the country of arrival, it is not tracked all the way to the customer’s door. ePacket is tracked via USPS. However, there was one time I chose epacket but I could not check where my package is. This time I needed to contact the seller and received his support. The notification of delivery time on AliExpress is extremely general and not accurate. Sometimes you will receive the ordered products sooner than expected. But sometimes, products are delivered quite late. According toAliExpress regulation, you can submit an appeal letter if you do not receive your package after 60 days. Please read this article for more information dropshipping aliexpress in pretashop

Through the article about AliExpress standard shipping vs epacket, we can draw a conclusion that you have to pay an extra amount when using epacket. But instead, you can check your order via USPS to know the location of the ordered products. If you choose Aliexpress standard shipping, the shipping cost will be a little bit lower. We all expect that there will be more and more fast and time-saving logistics businesses. They will help drop ship businesses get more profits, as well as, customers can purchase at lower prices in a shorter time.

The post AliExpress standard shipping vs epacket appeared first on Tuxjm el sitio de jmedina.

by admin_tuxjm at December 01, 2019 06:37 AM

November 30, 2019

soyadmin.com

Conocer el tamaño de Directorios y Subdirectorios desde nuestra terminal

Con este comando podremos verificar el tamaño de una carpeta y sus subcarpetas, detallando cada una con su correspondiente tamaño en valor humano.

Una vez que ingresamos a nuestro ssh, el comando es una composición entre du (disk usage) y con el modificador -h para que los valores sean entendibles (human-readable).
Si directamente tiráramos el comando «du -h» esto nos mostraría una lista interminable de todos los directorio/archivos de la carpeta donde nos encontremos, sin hacer lo que realmente necesitamos.

Para poder realizar el desglosamiento y suma de los archivos contenidos en cada directorio se utilizará este comando:

# du -h | grep \/.*\\/ -v

by Mauro at November 30, 2019 01:00 PM

November 27, 2019

soyadmin.com

Particionado de servidores centOS, recomendado para Hostings cPanel

Detallaré las recomendaciones de las particiones que deberemos primero crear y que tamaño utilizar en cada una para no correr riesgos luego con nuestro server ya en producción y tener que andar moviendo el tamaño de las particiones y/o creando una nueva.

Las particiones necesitan estar creadas correctamente en el momento de la instalación de nuestro centOS, son algo primordial y pieza fundamental para el futuro y correcto funcionamiento del servidor.
Una partición sin espacio impacta directamente en el fallo o caída de un servicio o el colapso de la estabilidad del servidor.

Detallare los que para mi son los espacios a utilizar en cada una de las particiones a crear y describiré brevemente para que se utiliza o que función cumple cada una.

Particiones:

1) /: El barra o directorio raíz, es el directorio que esta en el nivel superior del árbol de directorio y archivos, aquí se encuentran las herramientas y métodos para reparar, restaurar, recuperar. Es decir aquí se encuentran las herramientas o scripts para realizar chequeos y reparaciones el sistema.
/ debe tener mínimo 40GB asignados.

2) /boot: Aquí están los archivos de «arranque» de nuestro sistema, aca se alojarán los archivos y datos que se ponen en marcha antes de que el Kernel del server empiece a ejecutar los archivos de usuario.
Aquí está el núcleo de nuestro sistema operativo, que esta dividido entre el kernel del sistema y los programas usuario.
/boot debe tener mínimo 250MB asignados.

3) /usr: Es la segunda sección en cuanto a jerarquía dentro de nuestro server, después del / o directorio Raíz, aquí se almacenarán los datos que se pueden compartir con otros hosts, estos datos serán inalterables o de solo lectura y también es donde se almacena todo el software que instalaremos en el server.
/usr debe tener mínimo 16GB asiganos.

4) /var: Aquí tendremos los archivos y ficheros que se pueden modificar o son «variables», ya sean temporales o fijos.
En esta partición estarán los archivos de LOGS de nuestro sistema y servicios, y será donde recurriremos para saber «que pasa» en nuestro server, ya se para detectar problemas o verificar el funcionamiento.
/var debe tener mínimo 16GB asignados.

5) /home: Aquí tendremos las carpetas de usuarios, donde cada uno podrá almacenar sus archivos y sistemas. Aquí también es donde accederá cada uno de los usuarios a subir su información, y será la porción visible de nuestro server para los clientes.
/home debe tener todo lo que podamos disponer de espacio.

6) /tmp: Es donde se guardan los archivos de ejecución temporal, o nuestros archivos temporales.
/tmp debe tener mínimo 2GB asignados.

7) swap: Es la partición de intercambio, son utilizadas como soporte de memoria virtual, aquí se escriben los datos cuando la memoria RAM se queda saturada o sin espacio.
swap debe tener aproximadamente el doble de la memoria RAM que posea el servidor.

by Mauro at November 27, 2019 09:58 PM

November 26, 2019

Tuxjm el sitio de jmedina

Dropshipping Aliexpress Prestashop

Since Dropshipping Aliexpress Prestashop was released, it has attracted huge attention because of its ability to drop shipping. All works are getting easier and done automatically with the module. All complicated operations now can be completed with one click.

What is the first thing about dropshipping? Actually, this method has existed for a long time, along with traditional businesses. It is the type of business that does not require the seller to have a warehouse or worry about the inventory. In other words, it is selling products of other sellers. Small and medium e-Commerce businesses are interested in this business pattern as it helps save costs of factories and inventory.

Dropshipping Aliexpress Prestashop

Using Dropshipping Aliexpress Prestashop, you can import products you wish from AliExpress to your store. Our module has various options for you to decide on which information and where to import. When an imported product is displayed and ordered successfully on your store, the module will optimize your work by offering an option to automatically complete the order on AliExpress with just one click. AliExpress will deliver products to the address provided by your customers. During the delivery process, you are able to track orders to know the location of the product on the way to customers.

Product import is a pretty flexible task as you can make use of the module’s diversified options. We will not talk about manually importing products to your store because it is so familiar with store owners. We will focus on the ability to input data based on CURL and Cronjob. You can change product prices automatically, for example, increase the original price by 30%, then give them a free shipping fee. The module is also designed to impose tax properly base on country and territory. All functions such as shipping, order, etc. are of Prestashop are still applied so you can manage it easily in the back end.

In order to enhance the power of the module, the store owners need to install an extension to your browser . This  extension’s name is Prestashop Dropshipping  . The primary goal of this extension is the connection between the AliExpress site with your site use module Dropshipping Aliexpress . After installing the extension, you can see the estimated order processing time on the AliExpress site.

We have just run through module Dropshipping Aliexpress Prestashop . If you are working on Prestashop platform, you can try using and test this module to get its pros and cons. Perhaps, you will find a solution with this module. Please let us know if you have any requirements.

 

The post Dropshipping Aliexpress Prestashop appeared first on Tuxjm el sitio de jmedina.

by admin_tuxjm at November 26, 2019 06:55 AM

November 25, 2019

soyadmin.com

Linux limpio y optimizado con BleachBit

BleachBit es un software que nos permitirá limpiar y eliminar la basura de nuestro sistema Linux, liberando así espacio que en algunos casos puede ser muy importante.

BleachBit ha sacado recientemente su nueva versión, funciona de una manera muy sencilla e intuitiva. Este programa borra muchísimos ficheros temporales y que solo están ahí ocupando espacio en nuestra pc. Esto es útil para mantener un sistema limpio y en caso de tener una partición o disco pequeño estar siempre con espacio disponible, o simplemente si te gusta que no haya cosas sueltas y solo ocupando lugar, puedas borrar esos archivos sin problemas.
BleachBit nos ofrece un control, el cual nos permitirá iniciar con privilegios de Root o Super user.

BleachBit provee un modo de escaneo el cual nos permitirá simplemente tener una vista previa de lo que borrará, devolvíendonos un reporte de lo que realizaría y borraría.
A la izquierda del software poseemos un listado con los programas de nuestra PC y sus secciones que generan archivos temporales, haciendo click en ellos nos mostrará a la derecha la descripción de lo que guarda y que consecuencias puede traer borrar esos archivos.

Como se instala:

Debian, Ubuntu y derivados:

# sudo apt-get install bleachbit

Arch Linux y derivados:

# sudo pacman -S bleachbit

OpenSUSE

# sudo zypper install bleachbit

CentOS, RHEL y Fedora

# sudo yum install bleachbit

by Mauro at November 25, 2019 10:34 PM

November 22, 2019

DaboBlog

Hablando de (in)Seguridad en Servidores y Aplicaciones Web en La Laboral

El pasado 4 de noviembre tuve la oportunidad de participar en el evento “Ciberseguridad CIFP La Laboral“, con la colaboración de Fundación Tac e Incibe. Allí hablé de varios temas relacionados con la (in)Seguridad en Servidores y aplicaciones web, desde mi experiencia tanto protegiendo Servers e infraestructuras web en APACHEctl, como desde un enfoque más ofensivo cuando realizo auditorías de Seguridad (por lo general, Pentest caja negra).

Ciberseguridad La Laboral

 

Tal y como se podía leer en la información original del CIFP:

El objetivo es sensibilizar sobre las amenazas a la ciberseguridad, promover la ciberseguridad entre los ciudadanos y las organizaciones y proporcionar recursos para protegerse a sí mismos en línea, a través de la educación y el intercambio de buenas prácticas.

Además de compartir espacio con Maria Goitia, Directora del Centro y Juan Carlos García, Presidente de la Fundación TAC (que hizo una presentación inicial hablando también de cuestiones de Seguridad) e Inés Menendez, profesora del Departamento de Informática del centro que clausuró el evento, tuve el placer de ver en acción al otro ponente invitado, César Granda (@CacharroHacks).

Clic para ampliar

La verdad es que me encantó su ponencia e hizo honor a su nick “Cacharro Hacks” ;) con un maletín lleno de material para Hackear (Piña Wifi, Bad USB, RFID, NFC, etc).

Después fue mi turno para hablar de problemas de seguridad comunes en Servidores y Aplicaciones web. Tras una exposición inicial, luego realice una demo con varios ataques usando tanto la Debian que corre en mi portátil, como otras dos en máquinas virtuales (sí, esta vez no opté por usar algún servidor en producción, sé que le da un toque más “real”, pero ciertamente todo se pudo ver perfectamente y en un entorno más controlado).

Clic para ampliar

Creo que lo mejor para que podáis ver el planteamiento y demo que hice, es que os paséis por esta entrada sobre mi participación en Qurtuba Security Congres de hace dos años, donde tenéis la información necesaria para seguir el hilo y poder ver varias de las herramientas y técnicas que expuse (válida hoy en día).

También hice alusión al Software Libre y su seguridad. En este post de mi participación en las pasadas jornadas de Software Libre y Seguridad organizadas por HackLab Pica Pica, podéis ver la presentación en PDF (que contiene varios enlaces dentro) que mostré en mi introducción.

Para acabar, dar las gracias a la organización y asistentes por contar conmigo para estas jornadas de Ciberseguridad, en especial a José Antonio Sánchez que fue quien contactó inicialmente conmigo y con quien tuve el placer de coincidir impartiendo unas horas de formación en el Curso de Experto de Seguridad Perimetral de la Universidad de Oviedo.

 

La entrada Hablando de (in)Seguridad en Servidores y Aplicaciones Web en La Laboral se publicó primero en DaboBlog.

by David Hernández (Dabo). at November 22, 2019 10:11 AM

November 15, 2019

soyadmin.com

Colección de los mejores temas para tu escritorio Linux del 2019

En este post te brindamos unos excelentes themes para tu escritorio Linux, que es uno de los escritorios más populares del momento.

1) Canta Theme

Canta Theme tiene un aspecto único que ayuda a que sea verdaderamente sobresaliente. El diseño parece material de Google y mantiene los controles de las ventanas al estilo Mac. Más allá de eso, el aspecto logra mantenerse fresco, como poca similitud a otros temas de Linux.

COMO SE INSTALA?

Ubuntu/Mint/Debian
sudo add-apt-repository ppa:noobslab/themes
sudo apt-get update
sudo apt-get install canta-themes

2) Numix Theme

Numix es un theme muy completo, moderno y elegante. Es una gran opción para renovar esteticamente nuestro sistema. Un tema limpio mnimalista y con un gran atractivo visual.

COMO SE INSTALA?

Ubuntu/Mint/Debian
# sudo apt install numix-gtk-theme
Fedora/RedHat:
# sudo dnf install numix-gtk-theme
ArchLinux:
# sudo pacman -S numix-gtk-theme

3) Paper Theme

Paper es un flat theme, diseñado en GTK y emulando el material design de Google, uno de mis preferidos.

COMO SE INSTALA?

Ubuntu/Mint
# sudo add-apt-repository ppa:snwh/pulp
# sudo apt-get update
# sudo apt-get install paper-icon-theme
# sudo apt-get install paper-cursor-theme
# sudo apt-get install paper-gtk-theme

4) Flat Remix

Remix es un tema flat, muy simple y atractivo. Usa colores de alto contraste y bordes definidos. Está basado en material design.

COMO SE INSTALA?

Ubuntu/Mint
# sudo add-apt-repository ppa:daniruiz/flat-remix
# sudo apt-get update
# sudo apt-get install flat-remix-gnome

Fedora/RedHat:
# sudo dnf copr enable daniruiz/flat-remix
# sudo dnf install flat-remix-gnome

5) Vimix

Vimix es un flat theme basado en material design, se adapta a escritorios basados en GTK2 y GTK3 (como Gnome, Unity, Budgie, Pantheon, XFCE, Mate, etc.)

COMO SE INSTALA?

Ubuntu/Mint/Debian
# sudo add-apt-repository ppa:noobslab/themes
# sudo apt-get update
# sudo apt-get install vimix-gtk-themes

6) Arc theme

Arc es uno de mis preferidos, en cada distro donde mudo los instalo como principal. Basado en GTK es muy atractivo. Viene en 3 motivos: Light, Dark y Darker brindándote 3 estilos diferentes sin dejar de ser elegantes.

COMO SE INSTALA?

Ubuntu/Mint/Debian
# sudo apt install arc-theme
ArchLinux:
# sudo pacman -S arc-gtk-theme
Fedora/RedHat:
# sudo dnf install arc-theme

Probalos, con cual te quedás?

by Mauro at November 15, 2019 09:30 PM

ALGORÍTMICA PARA PROGRAMACIÓN de Yamil Armando Cerquera

Título: ALGORÍTMICA PARA PROGRAMACIÓN
Autor: Yamil Armando Cerquera Rojas
Páginas: 188 Páginas
Tamaño: 1.5 MB
Fomato: PDF

Contenido:

Me gustaría arrojar algunas luces para los principiantes, y para los no tan principiantes, sobre la forma «correcta» de escribir programas. Cuando digo «correcta», no me refiero a la mejor, pues desde mi punto de vista no hay mejor, ni peor forma de programar, sino buenos o malos hábitos de programación más cuando se refiere a programación estructurada.

Este texto se encuentra a disposición de todos aquellos que estén interesados en adquirir destreza y habilidad en el desarrollo o solución de problemas básicos, haciendo uso de las herramientas que nos brindan los diferentes lenguajes de programación para ello, conocidas como Estructuras de programación (Asignación, Decisión, Cíclicas y de Selección Múltiple).

Esta cuarta edición es probablemente la más ambiciosa de todas las ampliaciones que he llevado a cabo sobre el libro, por lo que temo que completarla me llevará bastante más tiempo que las anteriores. Por ello he decidido ir liberando las versiones intermedias que vaya generando, con un doble propósito: por un lado, permitir que el material llegue cuanto antes a los lectores, y por otro ir recogiendo comentarios y sugerencias, para poder hacer la obra más útil y completa.

Fuente: Openlibra

by Mauro at November 15, 2019 12:49 PM

RooTeando

Tomando Un Café 69: Dilema software libre y propietario

En este episodio hago una reflexión sobre un  comentario que lei en  Telegram , sobre  el rechazo de un software porque no era libre, comento porque yo apoyo el software libre y no rechazo el software propietario.

Música:Podington_Bear_-_No_Solace

 

Si quieres apoyarme  de forma económica para mis podcast y canales, puedes realizarlo de diferentes formas:
PayPal   https://paypal.me/JoseAJimenez
Programa afiliado de Amazon  https://amzn.to/2Myjet8 , si compras a través de ...

November 15, 2019 07:00 AM

November 14, 2019

soyadmin.com

Eliminar paquetes obsoletos en Debian, Ubuntu, Mint y derivados

De tanto instalar, modificar, probar, instalar programas, etc… van quedando paquetes obsoletos o en desuso los cuales están ahi por estar.

Con un simple comando verificaremos si tenemos paquetes obsoletos:

# dpkg -l | grep -i ^rc

Esto los listará, luego para eliminarlos usamos este comando:

# sudo su
# dpkg -l |grep -i ^rc | cut -d " " -f 3 | xargs dpkg --purge

Siempre como root o superusuario y desde nuestra consola preferida

by Mauro at November 14, 2019 11:15 PM

Usando Clamav para mantener nuestro Equipo sin virus

Clamav es el antivirus que la mayoría utilizamos para nuestros servers, es primordial tener instalado Clamav en nuestro server dado que nos da una capa de seguridad y nos permite hacer escaneos periódicos de nuestros archivos y los archivos de nuestro equipo. También está disponible para ser usado en nuestras PC y en casi todas las distribuciones.

Lo primero será instalar Clamav en nuestros equipos:

- CentOS / RHEL
# sudo yum install clamav clamd
Actualizar: # sudo /usr/bin/freshclam
- Debian, Ubuntu y derivadas
# sudo apt-get install clamav
Actualizar: # sudo freshclam

Para realizar un escaneo a fondo del equipo y enviar los resultados por email:

clamscan -r -i --exclude-dir=^/sys\|^/proc\|^/dev / | mail -s "Resultados del Escaneo del `date +%D`" [email protected]

Para eliminar automáticamente los archivos infectados:

clamscan -r -i --remove --exclude-dir=^/sys\|^/proc\|^/dev / | mail -s "Resultados del Escaneo del `date +%D`" [email protected]

Para mover los archivos infectados a un directorio en lugar de borrarlos:

clamscan -r -i --move=/root/virus/ --exclude-dir=^/sys\|^/proc\|^/dev / | mail -s "Resultados del Escaneo del `date +%D`" [email protected]

IMPORTANTE: Como ven en los ejemplos de escaneo siempre excluyo algunos directorios (-exclude-dir=^/sys|^/proc|^/dev), eso es por la manía que tengo de que algo falle y se terminen perdiendo o rompiendo cosas importantes del sistema. Como todo y siempre digo, cada cual usa estas herramientas bajo su responsabilidad y necesidad.

Simple y muy útil para tener nuestro equipo bien al día.

by Mauro at November 14, 2019 07:25 PM

Como solucionar «Falló el inicio de sesión» en Ubuntu

Me pasó hoy que cuando prendi mi compu al momento de loguearme me indicaba «Falló el inicio de sesión». Luego de tratar unas 22.000 veces el inicio (pensando que estaba mal la contraseña) empecé a sospechar que algo andaba mal, lo confirmé al intentar ingresar como invitado (Guest) ya que me devolvía el mismo error.

A propósito ingresé una contraseña erronea para ver que hacía y ahí si me daba el error clásico de password mal ingresado, ahi me di cuenta que el error no pasaba por los datos de acceso sino que mi Ubuntu andaba fallando. Tras investigar un poco relacioné que el problema venía orientado a una falla con el escritorio luego de un Update

Como lo solucionamos?

Primero hay que aclarar que probé 20 posibles soluciones, en MI caso funcionó esta que explicaré, usando Ubuntu 16.04.
IMPORTANTE: En este procedimiento se reinstala el Escritorio, cada cual lo realiza bajo su responsabilidad.

1) En la pantalla de loguin presionamos Crtl + Alt + F1, de esa manera accederemos a la línea de comandos.

2) Nos logueamos con los datos de root, es decir colocamos usuario y contraseña.

3) Ahora viene el momento de salvación xD, procederemos a reinstalar el escritorio.

# sudo apt-get install --reinstall ubuntu-desktop

4) Terminado el proceso, el cual toma no mas de 2 o 3 minutos, reiniciaremos:

# sudo reboot

Una vez que mi sistema volvió logré que logueara sin problemas.

by Mauro at November 14, 2019 02:03 PM

Instalar phpMyAdmin en tu página web

PhpMyadmin es un manejador de bases de datos, principalmente es una herramienta brindada por nuestro Hosting, es decir es un agregado que encontraremos en el panel de control que nos brinda nuestro Webhosting. Está integrado en casi cualquier servidor, o panel de control (Plesk, cPanel, etc)

Algo que pocos conocen, es que phpMyAdmin puede ser instalada para ser utilizada fuera de cualquier servicio de Hosting, mediante cualquier web o en cualquier subdominio de nuestra página web.

«Muchas veces queremos delegar trabajo a nuestro diseñador web, pero sin que este tenga acceso a todo el contenido del Panel de Hosting, para que quiere nuestro diseñador ver las casillas de correo?, es una excelente herramienta que brinda independencia sin que corra riesgo nuestro servicio» Tal como lo dice nuestro amigo Diego, CEO de Blogdephp.com

1) La instalación es sencilla, nos descargamos el instalador de phpMyadmin, desde su web oficial.

2) Descomprimimos y lo subimos a un subdominio de nuestro host, directamente por ftp. Una vez allí ya puede ser utilizado, navegando la url que elegimos, por ejemplo http://dominio.com/phpmyadmin/

3) Allí permitirá el acceso a la administración de nuestra base de datos, mediante el usuario y password de dicha DB Mysql.

by Mauro at November 14, 2019 12:03 PM

RooTeando

ARM para TODOS 13: Adiós DietPi, Python-Classroom y NEMS

En este audio hablo sobre varios temas, mi adiós a DietPi e instalación de Debian Buster, también hablo sobre dos herramientas descubiertas recientemente; Python-Classroom y NEMS.

Enlace

Scripts de Ayufan  https://github.com/ayufan-rock64

Python-Classroom https://labs.fedoraproject.org/es/python-classroom/

NEMS  https://nemslinux.com/

Música: Podington Bear- Piano I- No solace.

Si quieres realizar una pequeña aportación, se agradecera mucho, estas son las opciones.
Afiliado Amazon https://amzn.to/2Myjet8
PayPal https ...

November 14, 2019 11:00 AM

November 13, 2019

soyadmin.com

¿Como Apagar o Reiniciar nuestro Servidor de manera correcta?

Existen varias maneras de apagar/reiniciar nuestro servidor, de manera correcta. Hasta hay maneras de enviar un aviso a los demás users del servidor que están conectados en ese momento a la consola.

Entre las variadas maneras de reiniciar y apagar un equipo mediante ssh, existen algunas que son las más comunes y que en algunos casos nos pueden salvar de algún dolor de cabeza, evitando que el server haga chequeos o CHKDSK y rebootee rápido sin pasar o hacer acciones.

Como apagamos un servidor:

# shutdown -h now
# shutdown -h now "Apagaremos el servidor en 3, 2, 1..."
# shutdown -h 23:50
# shutdown -h 23:50 "El servidor se apagará a las 23:50"

Como reiniciamos un servidor:

# shutdown -r now     (Reinicia el server)
# shutdown -rf now     (Reinicia el server saltando el FSCK o chequeo de disco)
# shutdown -rF now     (Reinicia el server F mayúsclas fuerza el chequeo de discos)
# shutdown -rf 10:05 "Reiniciamos a las 10:05 sin chequeo de discos"              (Saltar FSCK, con f minúsculas)
# shutdown -rF 10:05 "A las 10:05 reiniciamos para hacer un chequeo de discos"    (Forzando FSCK, se le pasa F mayuscula)
# reboot     (Reinicio normal)

by Mauro at November 13, 2019 07:13 PM

«Chattr» comando para proteger/desproteger archivos mediante SSH

Muchas veces es necesario (para evitar accidentes) proteger archivos importantes en nuestro servidor, más que todo cuando son archivos de configuración específicos de servicios, es recomendable que estos archivos estén protegidos para evitar la edición o modificación de los mismos.

Tenemos un comando llamado chattr el cual modifica los atributos para evitar/permitir que sean editados los archivos que deseemos.

Los comandos a usar con permisos de root son los siguientes, por ejemplo:

# chattr +a nombrearchivo.txt (protege)
# chattr -a nombrearchivo.txt (desprotege y permite editar)
# chattr +i archivo.txt (protege)
# chattr -i archivo.txt (desprotege y permite la edición)

Estos son claros ejemplos de como proteger/desproteger archivos en ssh, para mejorar la sintaxis y ajustarla a lo que necesitemos, podemos ver el manual de uso: «man chattr»

by Mauro at November 13, 2019 12:58 PM

November 11, 2019

RooTeando

Escribiendo con un Café 10: CMS, hola WordPress ¿Hay alguién mas ahí?

El tema central son los CMS ,donde se mostrarán algunos CMS para Python y herramientas para convertir un desarrollo web en un CMS.  También las secciones habituales de Noticias, Mis proyectos, Dime una aplicación, Aprendiendo Python y El preguntón, en este número retomamos la sección de Algo de formación.

Si quieres suscribirte http://tinyletter.com/jajt
Para leer los números anteriores http://tinyletter.com/jajt/archive

November 11, 2019 11:00 AM

November 09, 2019

RooTeando

Entrevista En Diferido 20: Jorge Rúa

Comenzamos una nueva  entrevista con un invitado con un perfil de administrador de sistemas en GNU/Linux y antiguo trabajador de Red Hat, su nombre es Jorge Rúa.

Antes de todo, gracias por aceptar la invitación y apoyar a este proyecto. La primera pregunta es una presentación por parte del entrevistado, para que los lectores te puedan conocer un poco.

Entrevista En Diferido:¿Te puedes presentar en unas líneas?

 

Jorge Rúa:  Buenas, es ...

November 09, 2019 11:00 PM

November 06, 2019

soyadmin.com

WPS Office una de las mejores Suites de Ofimática para Linux

WPS Office es junto a Libreoffice una de las mejores suites de ofimática que se pueden encontrar en Linux, es muy facil de usar y para quien le gusta las comparaciones muy parecido a Microsoft Office.

Hablando de MS Office, WPS Office es completamente compatible con la suite de Windows, pudiendo abrir y guardar perfectamente los formatos doc, xls, docx, xlsx, etc…

La versión actual de WPS Office contiene tres componentes; Writer, Presentation y Spreadsheet como alternativas a Word, PowerPoint y Excel; creada por el desarrollador de software Kingsoft Office en Zhuhai, China

WPS Office está disponible para casi todas las plataformas más utilizadas en la actualidad, esto incluye: Linux, Windows, OS X, iOS y Android. Además podremos encontrarla en 32 y 64bits. Estas características hacen que sea una de las predilectas para los usuarios que necesitan una alternativa en suites de ofimática.

A pesar de estar desarrollada en China, WPS Office es multilenguaje, contando con interfaz en español y diccionarios actualizados por lo que es perfecta para entornos de producción. Tiene una gran compatibilidad con MS Office lo que siempre es necesario dado lo extendido del software de Microsoft lo que la hace perfecta no sólo a nivel usuario sino también para ambientes profesionales.

Aquí puedes descargar la última versión de WPS Office

by Mauro at November 06, 2019 10:39 PM

November 05, 2019

soyadmin.com

Logs cPanel, Exim, FTP y Apache. ¿Dónde están?

Desde sus comienzos, cPanel sigue manteniendo la misma estructura para sus archivos de logs, por lo que es facil reconocer de que servicio es dicho logs.

Logs de Apache:

/usr/local/apache/logs/

Dentro de esta carpeta tenemos los archivos de apache, error_log, access_log, etc

1) Error Log:

/usr/local/apache/logs/error_log

Aqui se verificarán todos los errores de nuestro server

2) Access Log:

/usr/local/apache/logs/access_log

Aqui qedará registro de todos los accesos y peticiones al http que recibe nuestro server.

Logs de Exim

Exim es el Agente de transferencia de mensajes (MTA) y posee 2 archivos de logs

1) exim_mainlog

/var/log/exim_mainlog

Este log registra todo lo que Exim procesa, mails entrates salientes.

2) exim_rejectlog

/var/log/exim_rejectlog

Aqui se registra todos los intentos de conexion hacia Exim que han sido denegados, o rechazados.

Logs de cPanel

/usr/local/cpanel/logs

Este log egistra toda su actividad entre y desde cPanel, whm y webmail

1) access_log

/usr/local/cpanel/logs/access_log

Guarda registro de todo el movimiento de acceso a nuestro cpanel.

2) error_log

/usr/local/cpanel/logs/access_log

Aqui se registran todos los errores de acceso a cPanel, WHM y webmail

Logs FTP

Independientemente del daemon FTP utilizado, cPanel registra conexiones, subidas y descargas. Sin embargo, el servicio FTP no tiene su propio archivo de registro sino que es incorporado al registro de mensajes del servidor.

Su ruta es:

/var/log/messages

by Mauro at November 05, 2019 02:08 PM

November 04, 2019

soyadmin.com

¿Qué hacer si olvidamos el Password de Root de nuestro Servidor centOS o RHEL?

Si alguna vez hemos perdido algún password de correo, facebook, skype, acceso a webs, etc. Para todo esto existe un recordar contraseña y siguiendo un pequeño formulario podremos recibir un nuevo password.

Que pasa cuando la password que hemos perdido es la de nuestro ROOT? Aquí si que tendremos que olvidarnos del botón, recordar contraseña, puesto que para lograr volver acceder a nuestro server deberemos hacer mas que eso. Esto se puede realizar teniendo por supuesto acceso físico al Servidor en cuestión.

Para poder realizar un reseteo del password de Root haremos lo siguiente:

1) Reiniciamos nuestro server y una vez que nos aparece el Grub, seleccionamos el Kernel  y presionamos la tecla E y así editaremos la secuencia de arranque de nuestro server.

2) Nos movemos dentro del panel con las flechas de posición de nuestro teclado hasta la línea que comienza con Kernel, allí volvemos a presionar la tecla E.
Nos vamos al final de la edición de nuestro arranque y colocamos un 1. Quedando algo parecido a esto:

3) Finalmente presionamos la tecla B, nuestro server booteará en modo de simple usuario, donde nos permitirá cambiar el password con el comando:

# passwd
New UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Así lograremos resetear o asignar un nuevo password, luego de eso reiniciamos nuestro server booteando normalmente y ya podremos loguearnos con nuestro password actualizado.

by Mauro at November 04, 2019 11:46 AM

November 01, 2019

soyadmin.com

Puertos TCP/UDP más utilizados.

Hace unos días hablábamos de Estas herramientas para detectar puertos abiertos en Linux y relacionado a eso, también explicábamos como Abrir / Cerrar puertos en Linux utilizando IPTables

Hoy les dejo una recopilación de los puertos más utilizados, con una breve descripción o detalle.

Puerto/protocoloDescripción
n/d / GREGRE (protocolo IP 47) Enrutamiento y acceso remoto
n/d / ESPIPSec ESP (protocolo IP 50) Enrutamiento y acceso remoto
n/d / AHIPSec AH (protocolo IP 51) Enrutamiento y acceso remoto
1/tcp puertoMultiplexor TCP
7/tcp puertoProtocolo Echo (Eco) Reponde con eco a llamadas remotas
7/udp puertoProtocolo Echo (Eco) Reponde con eco a llamadas remotas
9/tcp puertoProtocolo Discard Elimina cualquier dato que recibe
9/udp puertoProtocolo Discard Elimina cualquier dato que recibe
13/tcp puertoProtocolo Daytime Fecha y hora actuales
17/tcp puertoQuote of the Day (Cita del Día)
19/tcp puertoProtocolo Chargen Generador de caractéres
19/udp puertoProtocolo Chargen Generador de caractéres
20/tcp puertoFTP File Transfer Protocol (Protocolo de Transferencia de Ficheros) – datos
21/tcp puertoFTP File Transfer Protocol (Protocolo de Transferencia de Ficheros) – control
22/tcp puertoSSH, scp, SFTP
23/tcp puertoTelnet manejo remoto de equipo, inseguro
25/tcp puertoSMTP Simple Mail Transfer Protocol (Protocolo Simple de Transferencia de Correo)
37/tcp puertotime
43/tcp puertonicname
53/tcp puertoDNS Domain Name System (Sistema de Nombres de Dominio)
53/udp puertoDNS Domain Name System (Sistema de Nombres de Dominio)
67/udp puertoBOOTP BootStrap Protocol (Server), también usado por DHCP
68/udp puertoBOOTP BootStrap Protocol (Client), también usado por DHCP
69/udp puertoTFTP Trivial File Transfer Protocol (Protocolo Trivial de Transferencia de Ficheros)
70/tcp puertoGopher
79/tcp puertoFinger
80/tcp puertoHTTP HyperText Transfer Protocol (Protocolo de Transferencia de HiperTexto) (WWW)
88/tcp puertoKerberos Agente de autenticación
110/tcp puertoPOP3 Post Office Protocol (E-mail)
111/tcp puertosunrpc
113/tcp puertoident (auth) antiguo sistema de identificación
119/tcp puertoNNTP usado en los grupos de noticias de usenet
123/udp puertoNTP Protocolo de sincronización de tiempo
123/tcp puertoNTP Protocolo de sincronización de tiempo
135/tcp puertoepmap
137/tcp puertoNetBIOS Servicio de nombres
137/udp puertoNetBIOS Servicio de nombres
138/tcp puertoNetBIOS Servicio de envío de datagramas
138/udp puertoNetBIOS Servicio de envío de datagramas
139/tcp puertoNetBIOS Servicio de sesiones
139/udp puertoNetBIOS Servicio de sesiones
143/tcp puertoIMAP4 Internet Message Access Protocol (E-mail)
161/tcp puertoSNMP Simple Network Management Protocol
161/udp puertoSNMP Simple Network Management Protocol
162/tcp puertoSNMP-trap
162/udp puertoSNMP-trap
177/tcp puertoXDMCP Protocolo de gestión de displays en X11
177/udp puertoXDMCP Protocolo de gestión de displays en X11
389/tcp puertoLDAP Protocolo de acceso ligero a Bases de Datos
389/udp puertoLDAP Protocolo de acceso ligero a Bases de Datos
443/tcp puertoHTTPS/SSL usado para la transferencia segura de páginas web
445/tcp puertoMicrosoft-DS (Active Directory, compartición en Windows, gusano Sasser, Agobot)
445/udp puertoMicrosoft-DS compartición de ficheros
500/udp puertoIPSec ISAKMP, Autoridad de Seguridad Local
512/tcp puertoexec
513/tcp puertologin
514/udp puertosyslog usado para logs del sistema
520/udp puertoRIP
591/tcp puertoFileMaker 6.0 (alternativa para HTTP, ver puerto 80)
631/tcp puertoCUPS sistema de impresión de Unix
666/tcp puertoidentificación de Doom para jugar sobre TCP
993/tcp puertoIMAP4 sobre SSL (E-mail)
995/tcp puertoEs para ti y para todos
1080/tcp puertoSOCKS Proxy
1337/tcp puertosuele usarse en máquinas comprometidas o infectadas
1352/tcp puertoIBM Lotus Notes/Domino RCP
1433/tcp puertoMicrosoft-SQL-Server
1434/tcp puertoMicrosoft-SQL-Monitor
1434/udp puertoMicrosoft-SQL-Monitor
1494/tcp puertoCitrix MetaFrame Cliente ICA
1512/tcp puertoWINS
1521/tcp puertoOracle listener por defecto
1701/udp puertoEnrutamiento y Acceso Remoto para VPN con L2TP.
1723/tcp puertoEnrutamiento y Acceso Remoto para VPN con PPTP.
1761/tcp puertoNovell Zenworks Remote Control utility
1863/tcp puertoMSN Messenger
1935/???FMS Flash Media Server
2049/tcp puertoNFS Archivos del sistema de red
2082/tcp puertoCPanel puerto por defecto
2086/tcp puertoWeb Host Manager puerto por defecto
2427/updCisco MGCP
3030/tcp puertoNetPanzer
3030/updNetPanzer
3128/tcp puertoHTTP usado por web caches y por defecto en Squid cache
3128/tcp puertoNDL-AAS
3306/tcp puertoMySQL sistema de gestión de bases de datos
3389/tcp puertoRDP (Remote Desktop Protocol)
3396/tcp puertoNovell agente de impresión NDPS
3690/tcp puertoSubversion (sistema de control de versiones)
4662/tcp puertoeMule (aplicación de compartición de ficheros)
4672/udp puertoeMule (aplicación de compartición de ficheros)
4899/tcp puertoRAdmin (Remote Administrator), herramienta de administración remota (normalmente troyanos)
5000/tcp puertoUniversal plug-and-play
5060/udp puertoSession Initiation Protocol (SIP)
5190/tcp puertoAOL y AOL Instant Messenger
5222/tcp puertoJabber/XMPP conexión de cliente
5223/tcp puertoJabber/XMPP puerto por defecto para conexiones de cliente SSL
5269/tcp puertoJabber/XMPP conexión de servidor
5432/tcp puertoPostgreSQL sistema de gestión de bases de datos
5517/tcp puertoSetiqueue proyecto [email protected]
5631/tcp puertoPC-Anywhere protocolo de escritorio remoto
5632/udp puertoPC-Anywhere protocolo de escritorio remoto
5400/tcp puertoVNC protocolo de escritorio remoto (usado sobre HTTP)
5500/tcp puertoVNC protocolo de escritorio remoto (usado sobre HTTP)
5600/tcp puertoVNC protocolo de escritorio remoto (usado sobre HTTP)
5700/tcp puertoVNC protocolo de escritorio remoto (usado sobre HTTP)
5800/tcp puertoVNC protocolo de escritorio remoto (usado sobre HTTP)
5900/tcp puertoVNC protocolo de escritorio remoto (conexión normal)
6000/tcp puertoX11 usado para X-windows
6112/udp puertoBlizzard
6129/tcp puertoDameware Software conexión remota
6346/tcp puertoGnutella compartición de ficheros (Limewire, etc.)
6347/udp puertoGnutella
6348/udp puertoGnutella
6349/udp puertoGnutella
6350/udp puertoGnutella
6355/udp puertoGnutella
6667/tcp puertoIRC IRCU Internet Relay Chat
6881/tcp puertoBitTorrent puerto por defecto
6969/tcp puertoBitTorrent puerto de tracker
7100/tcp puertoServidor de Fuentes X11
7100/udp puertoServidor de Fuentes X11
8000/tcp puertoiRDMI por lo general, usado erróneamente en sustitución de 8080. También utilizado en el servidor de streaming ShoutCast.
8080/tcp puertoHTTP HTTP-ALT ver puerto 80. Tomcat lo usa como puerto por defecto.
8118/tcp puertoprivoxy
9009/tcp puertoPichat peer-to-peer chat server
9898/tcp puertoGusano Dabber (troyano/virus)
10000/tcp puertoWebmin (Administración remota web)
19226/tcp puertoPanda SecurityPuerto de comunicaciones de Panda Agent.
12345/tcp puertoNetBus en:NetBus (troyano/virus)
31337/tcp puertoBack Orifice herramienta de administración remota (por lo general troyanos)

by Mauro at November 01, 2019 02:17 PM

Acelerar nuestro sitio comprimiendo archivos CSS, JavaScript, XML y texto

Con este código podremos comprimir los archivos que salgan de nuestro hosting antes de ser mostrados en el navegador, de esta manera nos ahorramos segundos valiosos y un menos consumo de Bandwith

# vi .htaccess
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript

by Mauro at November 01, 2019 11:56 AM

October 31, 2019

soyadmin.com

Ver el Pronóstico del Tiempo en nuestra Terminal

Sí (aunque no lo creas posible) se puede verificar el pronóstico del tiempo en nuestra terminal sin instalar ninguna aplicación.

Esto se hace mediante wttr.in, un servicio basado en wego el cual nos mostrará el pronóstico del tiempo en código ASCII.

Para ejecutarlo, abrimos nuestra terminal y colocamos:

# curl wttr.in

Nos muestra de forma automática las condiciones del tiempo de nuestra zona, indicando la temperatura, velocidad del viento, lluvias, etc. Esto para el momento actual y para los días siguientes.

Si deseamos podemos escribir la ciudad a la que deseamos verificar:

# curl wttr.in/buenos_aires

Tenes un viaje puedes ver el estado del tiempo de cualquier aeropuerto, usando su código IATA, por ejemplo Aeropuerto Internacional de Ezeiza de Argentina:

# curl wttr.in/eze

Opcional podemos ponerlo en ESPAÑOL, agregándole «?lang=es» al final (sin comillas)

# curl wttr.in/Rosario?lang=es

Por último podemos verificar las fases lunares:

# curl wttr.in/Moon

En el manual o ayudas de wttr.in podemos ver mas:

# curl wttr.in/:help

También para más información podemos consultar la Página de GitHub del proyecto

by Mauro at October 31, 2019 08:02 PM

Solución a: Exim defer (-53): retry time not reached for any host

Es posible que en algunos casos recibamos estos tipos de rechazos al enviar a ciertas direcciones de correos, también podemos verlos en el log de Exim.

¿QUE INDICA ESTE ERROR?

Este error «Exim defer (-53): retry time not reached for any host» indica que Exim ha intentado enviar un correo sin tener éxito. Exim deja el correo en la cola de envíos para intentar nuevamente luego.

Los motivos para que no se entregue el email pueden ser variados, trataremos de abordar los más comunes.

¿CÓMO SE SOLUCIONA?

Lo primero que debemos verificar es que el problema NO sea nuestro.

Muchas veces nuestras IP’s entran en listas negras y son bloqueadas para los envios de correos. Chequeamos que nuestras IP’s no se encuentra en listas negras de SPAM, aca podrás verificarlo: https://mxtoolbox.com/blacklists.aspx

Si alguna de nuestras IP está listada, tendrás la respuesta a tu problema, una vez que soluciones el problema de listado de IP podrás enviar sin problemas.

MI IP ESTÁ LIMPIA, ¿cómo seguimos?

Puede suceder que el servidor destino esté bloqueando nuestras conxiones. Intentaremos ver cuales son los servidores de correo (MX) del servidor destino, esto lo haremos con el comando host

# host outlook.com
outlook.com has address 40.97.148.226
outlook.com has address 40.97.164.146
outlook.com has address 40.97.156.114
outlook.com has address 40.97.161.50
outlook.com has address 40.97.153.146
outlook.com has address 40.97.128.194
outlook.com has address 40.97.160.2
outlook.com mail is handled by 5 outlook-com.olc.protection.outlook.com

Ahora que sabemos los MX de nuestro destinatario, podemos controlar si «llegamos» al servidor de correos usando un telnet hacia el MX, con los puertos 25 – 26 y 587

# telnet outlook-com.olc.protection.outlook.com 25
Trying 104.47.46.33...
Connected to outlook-com.olc.protection.outlook.com.
Escape character is '^]'.
220 BN3NAM04FT013.mail.protection.outlook.com Microsoft ESMTP MAIL Service ready at Wed, 30 Oct 2019 22:53:23 +000

En este caso vemos que la comunicación entre nuestro servidor y el destino funcionan OK.

Si el telnet devuelve error en los 3 puertos más comunes 25 26 y 587 seguramente el destinatarios nos tiene bloqueados en su servidor, tendremos que buscar un medio alternativo de contacto y solicitarles que nos ingresen en sus listas blancas tanto nuestro dominio como las IP de nuestro servidor.

EL TELNET ME FUNCIONA, ¿QUE SIGUE?

Exim tiene una base de datos propia donde registra todos los destinatarios que rechazan conexiones. Cuando un dominio rechaza reiteradas veces nuestros emails, exim lo marca en esta base de datos y no intentará enviar el correo en el futuro, directamente lo rechaza.

Esta base de datos puede estar corrupta o bien por un fallo temporal bloquear un dominio destino válido.

Como limpiamos la base de datos de exim?

Para limpiar la DB de Exim tiramos estos comandos:

# /usr/sbin/exim_tidydb -t 1d /var/spool/exim retry > /dev/null 
# /usr/sbin/exim_tidydb -t 1d /var/spool/exim reject > /dev/null 
# /usr/sbin/exim_tidydb -t 1d /var/spool/exim wait-remote_smtp > /dev/null

# exim_tidydb -t 10m /var/spool/exim retry
# exim_tidydb -t 10m /var/spool/exim wait-remote_smtp

Reiniciamos el exim:

# service exim restart 

Finalmente solo resta probar enviar un email al destinatario conflictivo.

by Mauro at October 31, 2019 12:11 PM

October 30, 2019

soyadmin.com

Logs: Como ver el contenido de btmp y wtmp con utmpdump en CentOS

btmp y wtmp son logs en formato binario, por lo que no pueden ser abiertos o leídos de las maneras tradicionales (vi, vim, tail, etc)

btmp es un log que registra todos los accesos fallidos al sistema.
wtmp es un log que registra los accesos al sistema.

Al estar en binario, es necesario utilizar el comando utmpdump para poder ver el contenido.

# utmpdump /var/log/btmp 
[6] [13503] [    ] [admin   ] [ssh:notty   ] [193.121.163.182      ] [193.32.163.182 ] [mié oct 30 12:05:23 2019 03]
[6] [13945] [    ] [[email protected]] [ssh:notty   ] [66.ip-54-37-68.eu   ] [54.37.68.66    ] [mié oct 30 12:05:49 2019 03]
[6] [14193] [    ] [root    ] [ssh:notty   ] [223.ip-51-77-156.eu ] [51.77.16.223  ] [mié oct 30 12:06:07 2019 03]
[6] [14306] [    ] [odroid  ] [ssh:notty   ] [202.ip-149-56-132.net] [19.56.132.202 ] [mié oct 30 12:06:17 2019 03]
[6] [14306] [    ] [odroid  ] [ssh:notty   ] [202.ip-149-56-132.net] [12.56.132.202 ] [mié 
oct 30 12:06:19 2019 03]
# utmpdump /var/log/wtmp
[8] [35230] [    ] [        ] [pts/1       ] [                    ] [0.0.0.0        ] [mar oct 29 20:02:25 2019 -03]
[7] [11837] [ts/0] [root    ] [pts/0       ] [hosxxxxxxxxxxr] [181.189.222.51 ] [mié oct 30 08:58:04 2019 03]
[7] [62889] [ts/0] [root    ] [pts/0       ] [host1xxxxxxxxxxxxxx] [11.9.222.51 ] [mié oct 30 10:08:05 2019 03]

También podemos ver como actualiza el archivo en tiempo real:

# utmpdump -f /var/log/wtmp

by Mauro at October 30, 2019 08:54 PM

RooTeando

Escribiendo con un Café 09: Telegram,alternativa para WhatsApp que no sirve como WhatsApp

La herramienta de mensajeráa instantánea Telegram será en tema principal de este número, en la sección Dime una aplicación podemos ver un listado de servicio y bots para Telegram. En Aprendiendo Python, veremos diferentes librerías para trabajar con la API de Telegram.

En la sección de los noticias, actualizamos el caso Telegram y la SEC, una nueva funcionalidad en Visual Studio Code y los problemas de GNOME con un troll de patentes. Por último, una ...

October 30, 2019 07:00 PM

Sobre bits

Packer para VMware (Parte 1): Creación de plantilla de Windows automatizada

En la entrada anterior hablamos sobre la creación de plantillas automatizada con Packer y de como podía ésta ayudarnos en la automatización de nuestros despliegues. En la entrada de hoy veremos el uso de Packer para VMware, con el que desplegaremos de forma totalmente automatizada una instalación de Windows Server 2016 en una infraestructura vSphere.

Packer para VMware - Creación de plantilla de Windows automatizada

Escogiendo builder de Packer para VMware

Como comenté en la entrada anterior, existen builders creados por Hashicorp para la gran mayoría de plataformas de virtualización y cloud del mercado. En el caso del plugin de vSphere existe VMware-iso, un builder que permite la creación de imágenes a través de una ISO de sistema operativo.

El handicap de VMware-iso es que se conecta a través de SSH para la interacción con la plataforma, y como sabemos no siempre es adecuado tener el acceso SSH abierto a nuestra infraestructura o incluso se puede dar el caso de que no dispongamos de los permisos necesarios para habilitarlo.

Es por eso que yo me decanto por utilizar vSphere-iso, un builder desarrollado por Jetbrains que utiliza la API nativa de vSphere para realizar todas las operaciones contra la plataforma, por lo que lo único que necesitaremos será un usuario de vSphere con suficientes privilegios para realizar las acciones que necesitemos.

Antes de empezar

La única infraestrucura necesaria para seguir con esta entrada será la siguiente:

  • Una infraestructura vSphere sobre la que realizar el deploy de la plantilla.
  • Una máquina con Packer instalado, tal como vimos en la anterior entrada (puede ser nuestra propia máquina sin problemas).
  • Un servidor DHCP en la VLAN en la que vayamos a desplegar la plantilla (Packer necesita que la plantilla tenga una IP para conectarse por WinRM después de la instalación).

En mi caso voy a ejecutar Packer desde una máquina con CentOS 7, pero el código debería funcionar independientemente de la plataforma que ejecute Packer.

Para hacer todo esto más fácil he creado un repositorio en GitHub con el código que vamos a utilizar en esta entrada, por lo que en algunos archivos solo resaltaré las partes más destacadas que tendremos que editar para hacerlo funcionar. Para que el ejemplo funcione deberemos respetar la estructura de carpetas del «proyecto»:

.
├── setup
│   ├── autounattend.xml
│   ├── setup.ps1
│   └── vmtools.cmd
├── template_ws2016.json
└── vars_ws2016.json

¡Empecemos!

Creando el archivo de variables

Como comenté en la entrada anterior, podemos utilizar variables en nuestras templates que nos ayudarán a crear archivos mucho más reusables y claros. Éstas variables pueden ser definidas tanto en la propia template como en un archivo externo al que llamaremos cuando vayamos a construir nuestra plantilla. Si decidís utilizar los archivos del repositorio como base para vuestra implementación éste es el archivo que más deberéis modificar.

Para esta entrada utilizaremos el archivo vars_ws2016.json que podemos encontrar en el repositorio de GitHub de la entrada.

{
    "vsphere_server": "vcsa.sobrebits.local",
    "vsphere_user": "[email protected]",
    "vsphere_password": "Vsphere.12345",
    "vsphere_template_name": "Template-Windows2016",
    "vsphere_folder": "Templates",
    "vsphere_dc_name": "SobrebitsDatacenter",
    "vsphere_compute_cluster": "SobrebitsCluster",
    "vsphere_host": "esxi01.sobrebits.local",
    "vsphere_portgroup_name": "VM Network",
    "vsphere_datastore": "Datastore1",
    "winadmin_password": "Template.12345",
    "cpu_num": "2",
    "mem_size": "4096",
    "disk_size": "32768",
    "os_iso_path": "[Datastore1]_ISOs/Windows2016.iso",
    "vmtools_iso_path":"[Datastore1]_ISOs/vmtools.iso"
}

He intentado que los nombres de las variables sean lo más autoexplicativos posibles, pero igualmente los repasaremos por si hay dudas:

  • vsphere_server: Servidor vSphere al que nos conectaremos para desplegar la plantilla.
  • vsphere_user: Usuario con el que conectaremos a vSphere.
  • vsphere_password: Password del usuario.
  • vsphere_template_name: Nombre que recibirá la plantilla que creemos.
  • vsphere_folder: Carpeta de vSphere en la que crearemos la plantilla.
  • vsphere_dc_name: Datacenter en el que se ubicará la plantilla.
  • vsphere_compute_cluster: Cluster en el que se ubicará la plantilla.
  • vsphere_host: Servidor que alojará la plantilla.
  • vsphere_portgroup_name: Red (tipo portgroup) que asociaremos a la plantilla.
  • cpu_num: Número de CPUs con los que se creará la plantilla.
  • mem_size: Cantidad de RAM en MB con la que se creará la plantilla.
  • disk_size: Cantidad de disco en MB con el que se creará la plantilla.
  • os_iso_path: Ubicación de la ISO que se montará en la plantilla para la instalación del sistema operativo (un datastore que pueda ver el servidor ESXi que ejecuta la plantilla).
  • vmtools_iso_path: Ubicación de la ISO con las VMware Tools (un datastore que pueda ver el servidor ESXi que ejecuta la plantilla).

Deberemos configurar el archivo de variables para adaptarse a nuestro entorno y a las configuraciones que deseemos para nuestra plantilla. Una vez tengamos las variables definidas ya podemos pasar a diseñar la plantilla de Packer que las utilizará.

Diseñando la plantilla de instalación

Para construir nuestra plantilla de sistema operativo, Packer utiliza un archivo de template en formato Json en el que tenemos que ajustar todas las configuraciones que querremos para la misma. Para esta parte nos centraremos en el archivo template_ws2016.json del repositorio de GitHub y veremos las distintas configuraciones a aplicar.

Vamos a repasar por partes el archivo:

  "variables": {
    "vsphere_server": "",
    "vsphere_user": "",
    "vsphere_password": "",
    "vsphere_template_name": "",
    "vsphere_folder": "",
    "vsphere_dc_name": "",
    "vsphere_compute_cluster": "",
    "vsphere_host": "",
    "vsphere_portgroup_name": "",
    "vsphere_datastore": "",
    "winadmin_password": "",
    "cpu_num": "",
    "mem_size": "",
    "disk_size": "",
    "os_iso_path": "",
    "vmtools_iso_path":""
  },
  "sensitive-variables": ["vsphere_password", "winadmin_password"],

En el primer bloque (variables) declaramos todas las variables que hemos definido en nuestro archivo y que serán necesarias para la ejecución de la plantilla. En el segundo bloque (sensitive-variables) indicamos que vsphere_password y winadmin_password tienen contenido sensible y que no queremos que se muestren sus valores por consola en el momento de la ejecución de Packer.

En la entrada anterior ya hablamos de los builders, que son los encargados de conectarse con nuestra infraestructura y desplegar las plantillas. Veamos como queda nuestro builder de vSphere:

  "builders": [
    {
      "type": "vsphere-iso",

      "vcenter_server":      "{{user `vsphere_server`}}",
      "username":            "{{user `vsphere_user`}}",
      "password":            "{{user `vsphere_password`}}",
      "insecure_connection": "true",

      "vm_name": "{{user `vsphere_template_name`}}",
      "folder" : "{{user `vsphere_folder`}}",
      "datacenter": "{{user `vsphere_dc_name`}}",
      "cluster":     "{{user `vsphere_compute_cluster`}}",
      "host": "{{user `vsphere_host`}}",
      "network": "{{user `vsphere_portgroup_name`}}",
      "datastore": "{{user `vsphere_datastore`}}",
      "convert_to_template": "true",
      "shutdown_command": "C:/Windows/System32/Sysprep/sysprep.exe /oobe /shutdown",

      "guest_os_type": "windows9Server64Guest",

En esta primera parte básicamente nos dedicamos a configurar todos los aspectos relacionados con la infraestructura vSphere que ya hemos explicado en variables. Algunas cosas nuevas son:

  • type: Aquí hemos definido nuestro builder, que para esta entrada como hemos explicado anteriormente será vsphere-iso.
  • insecure_connection: Indicamos que no valide el certificado SSL de nuestro vCenter (mi experiencia me dice que la gran mayoría de infraestructuras vSphere tienen certificado autofirmado).
  • convert_to_template: Definimos que queremos que al finalizar la construcción de la plantilla la marque como template en nuestro vCenter.
  • shutdown_command: Indicamos que para realizar el apagado del sistema operativo al finalizar la construcción de la plantilla se ejecute sysprep para sellar la misma.
  • guest_os_type: Establecemos el tipo de sistema operativo invitado que tendrá nuestra máquina virtual (en este caso Windows Server 2016).

Sigamos con el archivo:

      "communicator": "winrm",
      "winrm_username": "Administrador",
      "winrm_password": "{{user `winadmin_password`}}",

Una vez haya finalizado la instalación, Packer deberá conectarse a la máquina virtual para aplicar las configuraciones que le indiquemos. Aquí estamos definiendo que lo haga por WinRM (tal y como vimos con PowerShell Remoting) utilizando el usuario Administrador y el password definido en nuestro archivo de variables.

      "CPUs":             "{{user `cpu_num`}}",
      "RAM":              "{{user `mem_size`}}",
      "firmware": "bios",

      "disk_controller_type":  "lsilogic-sas",
      "disk_size":        "{{user `disk_size`}}",
      "disk_thin_provisioned": true,

      "network_card": "vmxnet3",

      "iso_paths": [
        "{{user `os_iso_path`}}",
        "{{user `vmtools_iso_path`}}"
      ],

Aquí definimos los recursos de la máquina así como algunas configuraciones de hardware como el tipo de tarjeta, la bios o el formato thin del disco.

Además indicamos las rutas de las iso que se montarán en la plantilla y que ya habíamos definido en el archivo de variables: la iso de Sistema Operativo y la iso de las VMware Tools.

Vamos con la última parte que veremos hoy:

      "floppy_files": [
        "/root/packer/test/setup/autounattend.xml",
        "/root/packer/test/setup/setup.ps1",
        "/root/packer/test/setup/vmtools.cmd"
      ]

Aquí definimos la ubicación de los achivos que pasaremos como floppy cuyo path deberemos editar para que cuadre con la ubicación de la carpeta de nuestro proyecto. Estos archivos serán los encargados de (ahí va spoiler de la próxima entrada):

  • Establecer los parámetros de configuración de la instalación de Windows.
  • Configuración de WinRM para la ejecución de Provisioners.
  • Instalar las VMware Tools.

Conclusión

Y hasta aquí la primera parte de nuestra guía de creación de plantilla de Windows automatizada con Packer. En la próxima entrada acabaremos de descubrir las distintas partes implicadas en la instalación y configuración de nuestra plantilla y descubriremos qué más cosas podremos realizar con ésta.

¡Espero veros por aquí!

La entrada Packer para VMware (Parte 1): Creación de plantilla de Windows automatizada aparece primero en Sobrebits.

by Marc Meseguer at October 30, 2019 04:00 PM

October 28, 2019

RooTeando

Entrevista En Diferido 19: Álex Barredo

Comenzamos una nueva  entrevista con un invitado con un perfil de podcaster , su nombre es Álex Barredo. Creador de mixx.io (https://mixx.io/),  blog, podcast y newsletter.

Antes de todo, gracias por aceptar la invitación y apoyar a este proyecto. La primera pregunta es una presentación por parte del entrevistado, para que los lectores te puedan conocer un poco.

Entrevista en Diferido: ¿Te puedes presentar en unas líneas?

 

Álex Barredo: Buenas a ...

October 28, 2019 10:41 PM

Escribiendo Un Café 09: Telegram, alternativa a WhatsApp que no sirve como WhatsApp

Nuevo boletín cuyo tema principal será Telegram herramienta que ha conseguido hacerse un hueco en el muy competitivo mercado de la herramientas de mensajeria instantanea. En este número podras conocer en que estado esta el asunto de Telegram con SEC, la demanda de GNOME, nueva funcionalidad y otras noticias.

Un repaso con las novedades en mis proyectos , nuevo audio del podcast de Tomando Un Café y nueva entrevista en el canal de Telegram de Entrevista ...

October 28, 2019 10:08 PM

October 27, 2019

RooTeando

Tomando un Café 68: Entrevista David Vaquero

En este episodio volvemos con un invitado, tengo una charla sobre formación con David Vaquero,@dvaquero en Twitter, formador y desarrollador. Hemos estado hablando, un buen rato, sobre  la ingenieria informática, empresas de formación, requisitos para un formador,homologaciones  y algunas "batallitas" sobre formación que hemos vivido .

 

Si quieres apoyarme  de forma económica para mis podcast y canales, puedes realizarlo de diferentes formas:
PayPal   https://paypal.me/JoseAJimenez
Programa afiliado de Amazon   ...

October 27, 2019 11:00 AM

October 25, 2019

debianhackers.net

seguridad, mfa y demás hierbas

Aún recuerdo la primera contraseña que utilicé en serio. Fue para la cuenta en el servidor Unix de la universidad y tenía ocho caracteres que formaban una palabra que no podía deducirse de mi persona. Me sentía completamente seguro. Luego aprendes lo que de verdad significa la seguridad aplicada a la tecnología y los sistemas informáticos y recuerdas aquella primera contraseña con cariño.

Y llega el día en que una buena contraseña (+50 caracteres de todo tipo) ya no es suficiente y descubres la autenticación con dos factores (o 2FA).

usando factores de autenticación

La autenticación con múltiples factores, un escalón por encima de la 2FA implica utilizar dos o más evidencias (o factores) para autenticar a alguien. Las opciones son: conocimiento, algo que sabe, como una contraseña; posesión, algo que tiene; e inherencia, algo que se es.

Contándolo rápidamente y usando el ejemplo de una cuenta de email, el 2FA sería utilizar dos factores, es decir, un factor más además de la contraseña (ese algo que conoces) para verificar que, efectivamente, eres quien dices ser. Así, podemos usar algo que tenemos o algo que somos. Como personalmente estoy en contra del uso de medidas de autenticación biométricas (a ver como cambias de iris…), usaremos algo que tenemos, algo como una contraseña temporal u OTP.

la app de google

Hace ya tiempo que google (quién sino) sacó una app para darte todas las contraseñas temporales que necesitases y, de paso, para que asegurases tu email a la vez que te liaban un poco más en su ecosistema de móvil, apps, email, calendarios y cualquier tipo de servicio que puedas imaginar. Esta app, google authenticator, validaba tu acceso dándote un número de seis cifras que tienes que introducir cada vez que accedas a tus cuentas. Todo muy seguro.

Y parecía que si querías usar un segundo factor de autenticación, o bien ponías tu número de teléfono en todas partes para que te enviasen un email o estabas fuera. Porque si intentas salir del yugo de google, terminar instalando una app así es un gran paso atrás. También hicieron una app para chrome pero, de nuevo, como utilizo firefox no podía usarla.

gauth

El truco radica en que el algoritmo sobre el que descansa la app es público y está perfectamente definido en el RFC 6238 y cualquiera puede usarlo. Tanto es así que un tal Gerard Braad se hizo su propio autenticador de dos factores, lo llamó gauth authenticator y lo publicó en github. Y, no contento con eso, hizo apps para firefox, firefox os, chrome, chromeOS, webOS y android.

Gauth almacena la información de la clave (la descriptción y la clave secreta) en la cache del navegador y lo vincula al perfil con lo que si cambias de navegador, de dispositivo o entras en el modo anónimo, las claves serán diferentes.

uso y disfrute

A mi, con mi tontería, se me han ocurrido tres formas de usar gauth en todos mis dispositivos porque claro, no voy a instalar una app en el móvil o en chrome para tener TOTP. Para disfrutar de la experiencia completa, recomiendo usar un gestor de contraseñas donde guardar los MFA. En mi caso concreto, utilizo keepass y tengo los ficheros en mi nube privada, disponibles desde cualquier lugar.

1. usa la web de gauth

Tan sencillo como eso, accedes a la web de gauth, introduces la clave (obviamente, no es una buena idea meter una descripción muy profusa) y ya puedes tener tu código.

2. instala el código en tu servidor

Te hace falta un dominio, un puñado de bytes disponibles y un git clone. Yo, además, le puse autenticacion extra usando el .htaccess. Una vez hecho esto, accedes a la URL de tu servidor y configuras las claves.

3. <modo paranoico on>

Esta opción también la uso para las claves que necesito en el móvil y con algunas del trabajo, aquellas que considero que merecen especial protección. Consiste en descargarme el código y descomprimirlo en local, ya sea el ordenador o el móvil. Obviamente, los dispositivos donde hago esto tienen el almacenamiento cifrado, ya ni lo considero una medida extra sino que va de serie.

Una vez instalado gauth en local, lo abro desde Firefox y añado las claves. Es lo más parecido a un google authenticator casero que he podido emular.

conclusiones

La única conclusión posible es que, en un mundo tan digitalizado y accesible, que tus datos dependan de una contraseña que seguramente es demasiado sencilla de averiguar es un riesgo.

by Diego Martínez Castañeda at October 25, 2019 08:28 AM

October 19, 2019

debianhackers.net

Keep It Simple Stupid

Hace tiempo que no dedicamos una entrada al principio KISS y a su aplicación al mundo del software. En pocas palabras, software sencillo que hace una cosa y la hace bien. Optimizar recursos. Hacer más con menos. Minimalismo.

La filosofía KISS no implica renunciar, sino optimizar. Significa pensar en qué necesitamos y cómo podemos conseguirlo de la manera más eficiente posible. Un concepto muy extendido cuandose habla de minimalismo en el software es el de bloat o bloatware. El significado de bloated es “hinchado, inflamado” y en este contexto hace referencia a código que añade características o funciones innecesarias que incrementan el uso de recursos. Por supuesto, existe un amplio debate en torno a qué es y que no es bloatware, y se trata de una cuestión fundamentalmente subjetiva. A mi el sentido común me dice que si lo utilizas, no es bloatware. Y por tanto, desde el entorno de escritorio más pesado hasta el gestor de ventanas más minimalista pueden ser considerados bloated, o no. Quizá necesites todas y cada una de las funciones de un gestor de archivos con interfaz GUI o quizá te sirva con ranger. Puede que no necesites que tu gestor de ventanas organice tus ventanas automáticamente. O a lo mejor es algo fundamental para tu flujo de trabajo. Gnome puede ser bloatware, dwm puede ser bloatware.

Disertaciones conceptuales a parte, en esto de programar software sencillo, la gente de suckless hace un trabajo excelente. Entre sus herramientas más famosas se encuentran el gestor de ventanas dwm, la suite suckless-tools (con dmenu y slock a la cabeza), el emulador de terminal st (simple terminal) y el navegador web surf. Hoy vamos a echar un vistazo a dwm y a algunas aplicaciones ligeras que conjugan la mar de bien con un flujo de trabajo minimalista. Casi, casi nos lo podemos tomar como un “aplicaciones ligeras (III)”. Hay infinidad de sitios donde podéis encontrar información sobre dwm, así que no me voy a extender demasiado.

Conceptos básicos sobre dwm:

  1. Es un tiling window manager, organiza ventanas automáticamente según una distribución (“layout”) predefinida para ocupar el máximo espacio posible en pantalla.
  2. Es sencillo (menos de 2000 líneas de código) y modular (hay una buena colección de parches que permiten personalizarlo.
  3. Está escrito en C, y se configura editando un header file (config.h) y recompilando.
  4. En lugar de escritorios virtuales trabaja con tags: la principal diferencia es que una misma ventana puede estar etiquetada en varios tags.

Compilación e instalación

Descargamos el código fuente de la web de suckless:

wget https://dl.suckless.org/dwm/dwm-6.2.tar.gz

Accedemos al directorio y compilamos:

make clean install

Y listo, en 2-3 segundos tenemos dwm compilado con la configuración por defecto. Para personalizarlo, editamos el fichero config.h y recompilamos. Aunque es bastante intuitivo, siempre es recomendable consultar el manual antes de tocar nada.

Aquí os dejo el mío como ejemplo:

/* See LICENSE file for copyright and license details. */
/* appearance */
static const unsigned int borderpx = 2; / border pixel of windows /
static const unsigned int snap = 32; / snap pixel /
static const int showbar = 1; / 0 means no bar /
static const int topbar = 1; / 0means bottom bar /
static const char *fonts[] = { "Cascadia Code:size=11", "Font Awesome:size=11" };
static const char dmenufont[] = "Cascadia Code:size=11";
static const char col_gray1[] = "#2E3440";
static const char col_gray2[] = "#444444";
static const char col_gray3[] = "#bbbbbb";
static const char col_gray4[] = "#F1F1F1";
static const char col_white[] = "#FFFFFF";
static const char col_highlight[] = "#81A1C1";
static const char col_highlight2[] = "#88c0d0";
static const char *colors[][3] = {
/ fg bg border */
[SchemeNorm] = { col_white, col_gray1, col_gray2 },
[SchemeSel] = { col_gray1, col_highlight, col_highlight },
};

/* Gaps */
static const unsigned int gappx = 8;

/* tagging */
static const char *tags[] = { "main", "web", "mail", "docs", "media", "rss", "social", "code", "misc" };

static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
/
/ class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, 0, -1 },
{ "Firefox", NULL, NULL, 1 << 1, 0, -1 },
{ "Keepassx", "^keepassx$", NULL, 0, 1, -1},
{ "Lxrandr", "^lxrandr", NULL, 0, 1, -1},
};

/* layout(s) /
static const float mfact = 0.50; / factor of master area size [0.05..0.95] /
static const int nmaster = 1; / number of clients in master area /
static const int resizehints = 0; / 1 means respect size hints in tiled resizals */

static const Layout layouts[] = {
/* symbol arrange function /
{ "[T]", tile }, / first entry is default /
{ "[F] ", NULL }, / no layout function means floating behavior */
{ "[M]", monocle },
};

/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },

#include <X11/XF86keysym.h>

/* commands /
static char dmenumon[2] = "0"; / component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_highlight, "-sf", col_gray1, NULL };
static const char *termcmd[] = { "st", NULL };
static const char *roficmd[] = { "rofi", "-show", "window", NULL };
static const char *browsercmd[] = { "firefox", NULL };
static const char *officecmd[] = { "libreoffice", NULL };
static const char *editorcmd[] = { "mousepad", NULL };
static const char *filecmd[] = { "pcmanfm","/home/user", NULL };
static const char *configcmd[] = { "st","config", NULL };
static const char *brightdowncmd[] = { "xbacklight","-dec", "5", NULL };
static const char *brightupcmd[] = { "xbacklight","-inc", "5", NULL };
static const char *screencmd[] = { "lxrandr", NULL };
static const char *musiccmd[] = { "spotify", NULL };
static const char *mutecmd[] = { "amixer", "sset", "Master", "toggle", NULL };
static const char *volupcmd[] = { "amixer","sset", "Master", "2%+", NULL };
static const char *voldowncmd[] = { "amixer","sset", "Master", "2%-", NULL };
static const char *lockcmd[] = { "slock", NULL };
static const char *capturecmd[] = { "scrot","-s", NULL };

static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY, XK_F2, spawn, {.v = dmenucmd } },
{ MODKEY, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_Right, focusstack, {.i = +1 } },
{ MODKEY, XK_Left, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_space, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY, XK_q, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_masculine, spawn, {.v = roficmd } },
{ MODKEY|ControlMask, XK_n, spawn, {.v = browsercmd } },
{ MODKEY|ControlMask, XK_o, spawn, {.v = officecmd } },
{ MODKEY|ControlMask, XK_e, spawn, {.v = editorcmd } },
{ MODKEY|ControlMask, XK_h, spawn, {.v = filecmd } },
{ 0, XF86XK_MonBrightnessDown, spawn, {.v = brightdowncmd } },
{ 0, XF86XK_MonBrightnessUp, spawn, {.v = brightupcmd } },
{ 0, XF86XK_AudioMute, spawn, {.v = mutecmd } },
{ 0, XF86XK_AudioRaiseVolume, spawn, {.v = volupcmd } },
{ 0, XF86XK_AudioLowerVolume, spawn, {.v = voldowncmd } },
{ 0, XK_Print, spawn, {.v = capturecmd } },
{ MODKEY|ControlMask, XK_l, spawn, {.v = lockcmd } },
{ MODKEY|ControlMask, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
};

/* button definitions /
/ click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin /
static Button buttons[] = {
/ click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};

Parcheando dwm

La idea detrás de dwm es ofrecer un software sencillo, que hace una cosa y la hace bien. Sin embargo, hay un montón de parches que permiten añadir distintas funcionalidades a dwm. El procedimiento es sencillo:

patch -p1 < parche
make clean install

El parámetro -p se refiere al nivel de directorio en el que se encuentra el código a parchear. Por ejemplo, si estamos en el mismo directorio, utilizaremos -p1. Aviso de que parchear el código fuente de dwm puede romper cosas, si pensáis utilizar más de un parche idlos incorporando uno a uno (parchear, compilar, parchear, compilar…).

Iniciando una sesión gráfica sin gestor de inicio de sesión

a. Instalamos xinit.

b. Creamos el archivo .xinitrc en nuestra /home:

#! /bin/bash

nitrogen --restore &
compton -f -D4 &
redshift -l LAT:LONG &
dunst &
sh /ruta/a/clipmenud &

while true; do
BAT=`cat /sys/class/power_supply/CMB0/capacity`;
BAT_STATUS=`cat /sys/class/power_supply/CMB0/status`;
MEM=$(($(grep -m1 'MemAvailable:' /proc/meminfo | awk '{print $2}') / 1024));
DISK=`df -h | grep home | cut -d ' ' -f 10`;
IP=`ip a s | grep wlp1s0 | grep inet | cut -d ' ' -f 6`;
xsetroot -name " $BAT_STATUS ${BAT}% `date +"%d.%m.%Y"` `date +"%R"` ";
sleep 1m;
done &
exec dwm

Aquí podéis lanzar los programas que necesitéis al inicio. Importante, la última orden debe ser el exec dwm que lanza el gestor de ventanas.

c. Tecleamos startx después de loguearnos con nuestro usuario y contraseña.

KISS software

Estas son las aplicaciones ligeras que utilizo normalmente:

1) Gestor de ventanas: dwm
2) Compositor: compton
3) Demonio de notificaciones: dunst
4) Lanzador de aplicaciones: dmenu
5) Capturas de pantalla: scrot
6) Terminal: st
7) Editor de texto: vim / nano
8) Editor de texto GUI: mousepad
9) Gestor de fondos de escritorio: nitrogen
10) Gestor de temas GTK: lxappearance
11) Herramienta de configuración de monitores: lxrandr + xrandr
12) Navegador de archivos: pcmanfm / ranger
13) Lector RSS: newsbeuter (debian stable) / newsboat (debian testing/sid)
14) Cliente IRC: irssi
15) Cliente FTP: ftp/sftp en terminal / filezilla
16) Visor de imágenes: viewnior
17) Visor de PDF: zathura + tabbed / qpdfview (tiene pestañas)
18) Gestor de portapapeles: clipmenu

Lógicamente, esto no es una lista exhaustiva de todo el software que utilizo. Faltan muchos imprescindibles (GIMP, Inkscape, Darktable, LibreOffice, Calibre…) que no son tan ligeros y que seguro que todos conocéis.

Dudas, sugerencias y/o críticas en los comentarios.

Happy desktop hacking!!

Entradas anteriores:

¿Alguien dijo tiling?

Aplicaciones ligeras

Aplicaciones ligeras (II)

by .deb at October 19, 2019 04:47 PM

October 17, 2019

CloudAdmins.org

Barcelona CLOUDADMINS Month I: OpenNebula Conf (21-22/10)

Este mes de octubre viene “completito”, y seguimos…

 

OpenNebula is the open-source platform of choice in the converged data centre, providing a simple, albeit flexible and powerful, cloud manager that supports traditional IT features and the dynamic provisioning of modern enterprise clouds. With thousands of deployments, OpenNebula has a very wide user base that includes leading companies in banking, technology, telecom and hosting, and research.

OpenNebula Conferences are educational events that serve as a meeting point of cloud users, developers, administrators, integrators and researchers, featuring talks with experiences and use cases. They also include tutorials, lightning talks, and hacking sessions that provide an opportunity to discuss burning ideas, and meet face-to-face to discuss development. Previous speakers include Booking.com, Innologica, King, Nordeus, StorPool, Santander Bank, CentOS, European Space Agency, FermiLab, Puppet, Red Hat, BlackBerry, Telefonica, Akamai, Runtastic, Citrix, Trivago…and many more.

Check details  ->  http://2019.opennebulaconf.com/

 

by Cloudadmin JordiGuijarro at October 17, 2019 05:08 PM

October 14, 2019

soyadmin.com

Linux: ¿Cómo detectar Errores con el Comando DMESG?

Segun la Wikipedia «dmesg (diagnostic message, mensajes de diagnóstico) es un comando presente en los sistemas operativos Unix que lista el buffer de mensajes del núcleo. Este buffer contiene una gran variedad de mensajes importantes generados durante el arranque del sistema y durante la depuración de aplicaciones.»

Traduciendo un poco esto, con dmesg podemos obtener (usando nuestra terminal) la información de arranque nuestro sistema entre otros datos, mensajes del nucleo (kernel) y utilizar esta información para detectar posibles errores de nuestro sistema y del Hardware.

DMESG viene preinstalado en casi cualquier distro, por lo que no es necesario instalar nada.

¿COMO SE USA?

# dmesh | less

Acá vemos que nos muestra toda la información, sin discriminar lo que nos puede dificultar un poco la identificación de errores o posibles problemas, por suerte podemos filtrar el detalle para que nos muestre los posibles fallos o warnings del sistema.

Los filtros los identificaremos como:
emerg – el sistema no se puede usar
alert – se deben tomar medidas de inmediato
crit – condiciones críticas
err – condiciones de error
warn – condiciones de advertencia
notice – condición normal pero significativa
info – informativo
debug – mensajes a nivel de depuración

Podemos filtrar el resultado de dmesg, por ejemplo si deseamos ver las alertas y advertencias críticas:

# dmesg --level=alert,crit

Para ver errores simples y advertencias:

# dmesg --level=err,warn

Podemos buscar las referencias a dispositivos USB en los mensajes del kernel:

# dmesg | grep -i usb

Muestrar todos los puertos series (los cuales están representados por los caracteres tty):

# dmesg | grep -i tty

Mostrar datos de la memoria física (esto es, RAM):

# dmesg | grep -i memory

Buscar módulos:

# dmesg | grep nombre_modulo

Controlar las últimas 35 líneas del DMESG en tiempo real:

# watch "dmesg | tail -35"

DMESG es una herramienta muy útil, más cuando nos es necesario identificar problemas a nivel hardware los cuales en algunos casos son muy dificiles de detectar e impactan directamente en la performance de nuestra PC o SERVIDOR.

by Mauro at October 14, 2019 07:45 PM

Lollypop un atractivo y moderno Reproductor de Audio para Linux

Seguramente cada uno tiene tu reproductor preferido, pero siempre es bueno probar nuevas alternativas, más cuando son MUY BUENAS alternativas.

Lollypop es un reproductor de audio con un diseño moderno, es muy rápido y está inspirado en material desing. Dispone de dos temas uno claro y uno oscuro, lo que te permitirá elegir aquel que mejor case con tu tema de escritorio.

Es un reproductor muy fácil de usar, gratuito y funciona en casi cualquier distribución.

Lollypop organiza y explora nuestra música, álbumes y artistas. Dentro de los álbumes lista todas las canciones de dicho álbum. Nos muestra la carátula del álbum que descargará automáticamente desde Last.fm, Itunes y Spotify.

Permite crear listas de reproducción, además integra la posibilidad de escuchar estaciones de radio online siendo muy fácil agregar, navegar y reproducirlas.

Admite cualquiera de los formatos de audio más comunes: mp3, mp4, ogg, flac, etc.

COMO SE INSTALA: (Ubuntu 18.04/17.10 Linux Mint 19/18/17 y derivadas)

# sudo add-apt-repository ppa:gnumdk/lollypop
# sudo apt-get update
# sudo apt-get install lollypop

Fuente: noobslab.com

by Mauro at October 14, 2019 01:14 PM

October 13, 2019

RooTeando

Escribiendo con un Café 08: Git, el guadían de los cambios

Nuevo número del boletín cuyo tema principal es la herramienta de control de versiones Git. En la noticias informamos sobre Richard Stallman y la Free Software Foundations, los problemas tiene la red TON con la SEC, un nuevo sistema operativo para Smartwatch y por último, un par de enlaces con recursos muy interesantes.

Dime una aplicación, mostraremos diferentes clientes para Git y un IDE con una gran integración con GitHub. En la sección de Aprendiendo ...

October 13, 2019 10:21 PM

Entrevista En Diferido 18: David Vaquero

Comenzamos una nueva  entrevista con un invitado con un perfil de programador , formador y ,desde hacer poco, participa en el podcast de Republica Web.

Antes de todo, gracias por participar y apoyar este proyecto. La primera pregunta es una presentación por parte del entrevistados, para que los lectores te puedan conocer un poco.

Entrevista En Diferido: ¿Te puedes presentar en unas líneas?

 

David Vaquero: Mi nombre es David Vaquero, he sido empresario precoz ...

October 13, 2019 09:00 PM

October 11, 2019

RooTeando

Tomando Un Café 67: Decoradores (en Python)

En este episodio retomo el monográfico de programación,donde hablaré sobre una pequeña introducción Decorador, enfocado en Python, también una explicación sobre la tardanza en grabar este monográfico.

Música:Podington_Bear_-_No_Solace

Web de Linux y Tapas https://linuxytapas.wordpress.com/

Decoradores en Python

Decoradores y sus sintaxis  http://bit.ly/2LwrxbU
Decoradores en Real Python http://bit.ly/2TtelVq
Decoradores con argumentos http://bit.ly/2lKqVUU
6 decoradores que se utilizan en Django http://bit ...

October 11, 2019 08:55 PM

debianhackers.net

Calibre congelado en Debian testing

Me he topado con este mensaje en mi último update en Debian testing:

calibre (4.0.0+really3.48.dfsg-1) unstable; urgency=medium

Due to the removal of Python 2 from Debian, support for necessary modules
to run Calibre >= 4.0.0 are not available.

We recommend users to use upstream Calibre packages to obtain new
features and security fixes, until upstream together with plugin
authors switch to Python3. Until that point Calibre in Debian will be
frozen at the last 3.NN version (3.48) and no further features or security
fixes can be applied
.

— Norbert Preining <[email protected]> Sun, 06 Oct 2019 09:31:44 +0900

Que viene a decir que dado que se va a eliminar Python 2 de Debian, no habrá actualizaciones ni parches de seguridad en Calibre, que queda congelado en la versión 3.48 hasta nueva orden.

Como alternativa, se pueden descargar los binarios de la web de Calibre (versión 4.1.0).

by .deb at October 11, 2019 06:52 AM

October 04, 2019

soyadmin.com

Terminal: Usando Rsync para sincronizar archivos y carpetas

Rsync es segun la wikipedia:
«rsync es una aplicación libre para sistemas de tipo Unix y Microsoft Windows que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.
Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto»

En criollo sería un método que nos permitirá sincornizar el contenido de una carpeta (archivos y subcarpetas de esta) a otra. Rsync nos permitirá copiar los contenidos de una carpeta a otra, sin necesidad de que estemos presentes 🙂

Para hacerlo, es muy sencillo: 

# rsync -aq /directorio/original/ /directorio/destino/

Donde -aq es archivo y desatendido.

Pueden ver las variables y anexos de rsync haciendo un:

# man rsync

Ahora bien, la mejor característica que tiene este comando es la posibilidad de automatizarlo mediante un cron, donde por ejemplo necesitamos que los backups se sincronicen en otra carpeta.

# crontab -e
* */8 * * * rsync -aq /directorio/backups/ /directorio/destino/

Aquí copiará y sincronizará los backups cada 8hs al destino elegido.

by Mauro at October 04, 2019 12:11 PM

October 03, 2019

soyadmin.com

cPanel «se come» algunas bases de datos de clientes, como forzar a que las muestre?

Días pasados tuvimos un extraño caso en uno de nuestros servidores centOS con cPanel donde un cliente me decía que no veía la base de datos que terminaba de crear, verificando mediante phpmyadmin veíamos efectivamente que la base de datos aparecía creada y en perfecto estado pero, el cPanel maravillosamente no las encontraba o no las mostraba en su apartado de Mysql.

Para solucionarlo y forzar al panel para que muestre o actualice, basta con ejecutar este comando mediante SSH:

# /usr/local/cpanel/bin/setupdbmap

Luego de eso, bastará con refrescar el panel de control para que aparezcan las bases de datos faltantes.

by Mauro at October 03, 2019 07:56 PM

Script para reiniciar servicios caídos.

Muchas veces hay procesos que tenemos colgados o se estopean debido a algún error, y nos damos cuenta de que el mismo se detuvo cuando ya tenemos el problema arriba.
Esto es una constante, los servicios de un servidor, más cuando interaccionan con algún panel de control tipo cPanel, se autogestionan y son reiniciados estopeados parados automáticamente.

En algunos casos este proceso de control puede fallar y nos queda un servicio colgueti o esperando alguna acción, cosa que nos daremos cuenta ante el reclamo de algún cliente o ante la mirada aguda sobre el sistema (cosa que no siempre se puede hacer)

Existe una manera fácil y práctica de reiniciar aquellos servicios que se cayeron, mediante un script shell

Vamos a ello:

1) Eligiremos el servicio a monitorizar, hacemos uso del Mysql como enejmplo en este caso:

# vi verificar_myslq.sh
#!/bin/bash
RESTART="/etc/init.d/mysqld restart"
PGREP="/usr/bin/pgrep"
MEMCACHED="mysqld"
# buscamos que exista el proceso
$PGREP ${mysqld}
# sino existe id de proceso y el comando anterior devuelve 0
if [ $? -ne 0 ]
then
# restablecemos mysql y enviamos un email
$RESTART | mail -s "Se reinició Mysql `date "+%c"`" [email protected]
fi

El funcionamiento el script es el siguiente: se hace un chequeo sobre el servicio seleccionado, si el mismo devuelve que esta activo, continua y no hace nada.
En el caso de que el chequeo devuelva que el servicio está stop, se lo reinicia y envía un email.

2) Creamos un cron para el script, con ejecución cada 10 minutos:

# crontab -e
*/10 * * * *  /bin/sh /root/shell_scripts/verify_myslq.sh

by Mauro at October 03, 2019 11:54 AM

October 02, 2019

RooTeando

Tomando Un Café 66: Nushell una shell diferente

En este episodio habló sobre NuShell ,como su nombre indica, es una shell con un funcionamiento diferente donde como caracteristicas principales, el uso de las tuberias y fomato de tabla para presentar los datos.

GitHub https://github.com/nushell/nushell
Libro https://book.nushell.sh

Si quieres apoyarme  de forma económica para mis podcast y canales, puedes realizarlo de diferentes formas:
PayPal   https://paypal.me/JoseAJimenez
Programa afiliado de Amazon  https://amzn.to ...

October 02, 2019 08:00 PM

Sobre bits

Introducción a la creación automática de plantillas con Packer

Algunas de las tareas de automatización que más retorno nos pueden ofrecer (siempre y cuando trabajemos en infraestructuras con mucha generación de VMs) son las que van relacionadas con el despliegue de nuevas máquinas virtuales. En esta entrada conoceremos a Packer, la herramienta que nos permitirá crear y personalizar plantillas de sistema operativo de forma automática en multitud de plataformas y en la que nos apoyaremos en futuras entradas para acercarnos al mundo del IaC.

Introducción a la creación automática de plantillas con Packer

¿Qué es Packer?

Packer es una herramienta de software libre desarrollada por Hashicorp que nos permite crear imágenes de sistema operativo de forma automatizada y utilizando archivos de configuración para tal efecto.

Una vez creada la configuración (que veremos en próximas entradas) Packer se conectará a la infraestructura de destino, creará la máquina virtual y aplicará todas las configuraciones que hayamos definido en nuestros archivos. Todo esto mientras nos tomamos un rico café.

Packer incluye la funcionalidad necesaria para trabajar con las grandes plataformas del mercado sin la necesidad de instalar ningún plugin adicional:

  • Aws.
  • Azure.
  • DigitalOcean.
  • Docker.
  • Google Cloud Platform.
  • Hyper-V.
  • VMware.

Podéis consultar la lista completa aquí.

Además, Packer funciona con todos los grandes sistemas operativos del mercado, permitiéndonos crear imágenes de cualquiera de ellos, así como la capacidad de trabajar con las herramientas de gestión de configuración más importantes como Ansible, Chef o Puppet.

Si queréis más información sobre esta impresionante herramienta os recomiendo que os paséis por su sitio web donde disponen de muchísima información al respecto.

¿Qué ventajas tiene crear plantillas con Packer?

La generación automatizada de plantillas con Packer puede aportarnos muchos beneficios a nuestro flujo de trabajo:

  • Velocidad de aprovisionado: Con Packer nuestras plantillas pueden disponer siempre de las últimas versiones de sistema operativo y de aplicaciones, con lo que podemos desplegar una plantilla siempre lista para su uso en cuestión de segundos o pocos minutos.
  • Consistencia: Utilizando Packer nos aseguramos de que todas las máquinas virtuales que despleguemos partirán de la misma configuración.
  • Consistencia multiplataforma: Siguiendo con el punto anterior, con Packer podemos partir de imágenes idénticas si disponemos de entornos híbridos. En todo momento estaremos seguros que nuestra instancia de Compute Engine de GCP es identica a nuestra máquina virtual de VMware vSphere.
  • Versionado de configuración: Tener nuestras configuraciones en archivos de texto nos permite versionarlas de forma muy sencilla, por ejemplo, con Git, con lo que siempre podremos echar la vista atrás a la hora de hacer troubleshooting de nuestras máquinas.

Cómo funciona Packer

Packer utiliza templates en formato JSON con los que definiremos las distintas configuraciones necesarias para el despliegue, configuración y post procesado de nuestras plantillas.

Una template de Packer dispone de los siguientes elementos de configuración (subrayados los más importantes) para generar nuestras imágenes:

  • Variables (opcional): Una sección de nuestra template en la que podremos definir variables que utilizaremos posteriormente en la misma. Es opcional pero más que recomendable utilizar variables para facilitar el uso de nuestra template. Las variables pueden ser definidas en un archivo separado de nuestra template.
  • Descripción (opcional): Un campo en el que podemos definir qué hace nuestra template.
  • Builders (obligatorio): En esta sección definiremos los «constructores» de nuestra plantilla, esto es, la parte encargada de conectarse con la infraestructura destino (VMware, GCP, AWS…) y que construirá la plantilla.
  • Versión mínima de packer (opcional): Un campo en el que definiremos la mínima versión necesaria de packer necesaria para desplegar nuestra plantilla.
  • Provisioners (opcional): La sección donde configuraremos todo lo necesario para instalar y configurar el software del sistema operativo. Aquí tenemos la opción de hacerlo mediante scripts o con una herramienta externa de gestión de configuración.
  • Post processors (opcional): La sección encargada de definir los pasos posteriores a la creación de la imágen, como subirla a otra infraestructura, renombrar, convertir a plantilla…

Cómo instalar Packer

Existen distintas formas de instalar Packer, podéis consultar todas ellas en su documentación.

De largo la forma más sencilla es descargar sus binarios precompilados y ubicarlos en el path de nuestro usuario. Si queremos conocer las posibles ubicaciones:

  • Linux / MacOS: Desde un terminal ejecutamos echo $PATH.
  • Windows: Desde PowerShell ejecutamos $Env:Path.

Una vez copiados los ejecutables en dichas ubicaciones deberíamos ser capaces de ejecutar desde nuestra terminal el comando packer sin problemas.

Conclusión

Hasta aquí esta entrada introductoria sobre Packer. En próximas entradas empezaremos a construir plantillas de sistema operativo y veremos todo el potencial que oculta esta increíble herramienta.

¡Nos leemos en la próxima!

La entrada Introducción a la creación automática de plantillas con Packer aparece primero en Sobrebits.

by Marc Meseguer at October 02, 2019 01:16 PM

September 30, 2019

RooTeando

Escribiendo con un Café 07: Administración de sistemas, sacrificando tu tiempo para ahorrar tiempo a los demás

Nuevo número del boletín cuyo tema principal es la administración de sistemas y herramientas para  conexión remota, también tenemos algunas noticias relevantes como la renuncia de Richard Stallman, el teléfono Libem 5, un artículo muy interesante sobre los servicios serverless y nuevas versiones de diferentes aplicaciones. En el apartado de Mis proyectos , no hay mucho movimiento, una nueva entrevista en el canal de Telegram Entrevista En Diferido y un audio del podcast ARM para TODOS ...

September 30, 2019 08:12 AM

September 28, 2019

soyadmin.com

Permisos, permisos y más permisos

En búsqueda de la explicación perfecta a los permisos y sus configuraciones, me encontré con este artículo gracias al cual pude resolver algunas dudas y utilizarlo para demostrar y enseñar un poco la metodología de permisos en internet.

En los sistemas operativos tipo POSIX cada elemento del sistema de archivos, como archivos, directorios, enlaces simbólicos, etc., tiene la característica de poseer permisos que lo ubican dentro del mismo. Éstos sirven como uno más de los niveles de seguridad del sistema operativo al impedir que cualquier usuario pueda leer, escribir, ejecutar o acceder a dichos archivos y directorios de manera arbitraria. Estos permisos vistos de manera básica son: lectura (r, read), escritura (w, write) y ejecución (x, execution) y se agrupan en bloques (rwx) para 3 diferentes clases (usuario, grupo y otros).

Los permisos de acceso de cada archivo y directorio del sistema son mostrados por un conjunto de 10 caracteres, los cuales proporcionan información acerca del tipo de elemento, junto con permisos para el usuario y grupo propietario para leer, escribir y ejecutar, como se muestra en el siguiente ejemplo:

-rwxr-xr-x 1 fulano fulano 0 jul 31 18:11 algo.txt

La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden gestionarse a través de modos, los cuales consisten de combinaciones de números de tres dígitos —usuario, grupo y otros— que son manipulados a través de chmod y setfacl.

La asignación de permisos de acceso (de lectura, escritura y ejecución) pueden gestionarse a través de modos, los cuales consisten de combinaciones de números de tres dígitos —usuario, grupo y otros— que son manipulados a través de chmod y setfacl.

Notación simbólica.

El esquema de notación simbólica se compone de 10 caracteres, donde el primer carácter indica el tipo de archivo:

ValorDescripción
Archivo regular.
dDirectorio.
bArchivo especial como dispositivo de bloque.
cArchivo de carácter especial
lEnlace simbólico.
pTubería nombrada (FIFO)
sZócalo de dominio (socket)

Como se mencionó anteriormente, cada clase de permisos es representada por un conjunto de tres caracteres. El primer conjunto de caracteres representa la clase del usuario, el segundo conjunto de tres caracteres representa la clase del grupo y el tercer conjunto representa la clase de «otros» (resto del mundo). Cada uno de los tres caracteres representa permisos de lectura, escritura y ejecución, respectivamente y en ese orden.

Ejemplos:

PermisosDescripción
drwxr-xr-xDirectorio con permiso 755
crw-rw-r–Archivo de carácter especial con permiso 664.
srwxrwxr-xZócalo con permiso 775.
prw-rw-r–Tubería (FIFO) con permiso 664.
rw-r–r–Archivo regular con permiso 644.

Notación octal.

La notación octal consiste de valores de tres a cuatro dígitos en base-8. Con la notación octal de tres dígitos cada número representa un componente diferente de permisos a establecer: clase de usuario, clase de grupo y clase de otros (resto del mundo) respectivamente. Cada uno de estos dígitos es la suma de sus bits que lo componen (en el sistema numeral binario). Como resultado, bits específicos se añaden a la suma conforme son representados por un numeral:

  • El Bit de ejecución (acceso en el caso de directorios) añade 1 a la suma.
  • El bit de escritura añade 2 a la suma
  • El bit de lectura añade 4 a la suma.

Estos valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos específicos. De modo tal puede considerarse la siguiente tabla:

ValorPermisoDescripción
0Nada
1–xSólo ejecución de archivos o acceso a directorios
2-w-Sólo escritura
3-wxEscritura y ejecución de archivos o acceso a directorios
4r–Sólo lectura
5r-xLectura y ejecución de archivos o acceso a directorios
6rw-Lectura y escritura
7rwxLectura, escritura y ejecución de archivos o acceso a directorios

Cabe señalar que el permiso 3 (wx) es el resultado de 1+2 (w+x), que el permiso 5 (rx) es el resultado de 4+1 (r+x), que el permiso 6 (rw) es el resultado de 4+2 (r+w) y que el permiso 7 (rwx) es el resultado de 4+2+1 (r+w+x).

Máscara de usuario.

La máscara de usuario (umask, abreviatura de user mask) es una función que establece los permisos predeterminados para los nuevos archivos y directorios creados en el sistema. Puede establecerse en notación octal de tres o cuatro dígitos o bien en notación simbólica. Puede establecerse cualquier valor para umask, pero debe tomarse en consideración que ésta jamás permitirá crear nuevos archivos ejecutables.

Cuando se utiliza la notación octal de cuatro dígitos, el primer dígito siempre corresponde a los permisos especiales, pero el valor de éste siempre será 0; el segundo dígito corresponde a la máscara de la clase otros; el tercer dígito corresponde a la máscara para la clase de grupo; y el cuarto dígito corresponde a la máscara para la clase de usuario.

.----------- Permisos especiales (siempre es 0 en umask)
| .--------- Clase de otros
| | .------- Clase de grupo
| | | .----- Clase de usuario
| | | |
↓ ↓ ↓ ↓
0 0 2 2

El valor de la máscara de usuario, que se asigna ejecutando umask, corresponde a los bits contrarios del permiso predeterminado que se quiera asignar. Es decir, si por ejemplo se quiere asignar una máscara de usuario equivalente a 0775 (rwxrwxr-x), el valor de la máscara de usuario corresponderá a 0002 (el resultado de la operación 777 menos 775), que será lo mismo que definir u=rwx,g=rwx,o=rx.

Si por ejemplo se quiere asignar una máscara de usuario equivalente a 0744 (rwxr–r–), el valor de la máscara de usuario corresponderá a 0033 (el resultado de la operación 777 menos 744), que será lo mismo que definir u=rwx,g=r,o=r.

Los valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos específicos. De modo tal puede considerarse la siguiente tabla:

Valor octalValor simbólicoDescripción
0rwxLectura, escritura y acceso a directorios
1rw-Lectura y escritura
2r-xLectura y acceso a directorios
3r–Sólo lectura
4-wxEscritura y acceso a directorios
5-w-Sólo escritura
6–xSólo acceso a directorios
7Nada

El valor predeterminado de la máscara de usuario del sistema en CentOS, Fedora™, Red Hat™ Enterprise Linux, openSUSE™ y SUSE™ Linux Enterprise es 0022, es decir se asigna permiso 0755 (-rwxr-xr-x) para nuevos directorios y 0644 (-rw-r–r–) para nuevos archivos. El sistema jamás permite crear nuevos archivos con atributos de ejecución. El valor predeterminado se define en una variable de entorno del archivo /etc/profile y puede ser cambiado por el que el administrador del sistema considere pertinente. El valor también puede establecerse por usuario en el archivo ~/.bash_profile (CentOS, Fedora™ y Red Hat™ Enterprise Linux) o bien en el archivo ~/.profile (openSUSE™ y SUSE™ Linux Enterprise).

El valor predeterminado de la máscara de usuario utilizado por useradd, para la creación de directorios de inicio de usuarios, se define en el archivo /etc/login.defs.

En CentOS, Fedora™ y Red Hat™ Enterprise Linux el valor predeterminado de la máscara de usuario utilizada por useradd es 0077, es decir que los directorios de inicio de cada usuario que sea creado en el sistema tendrá un permiso 0700 (rwx——).

En openSUSE™ y SUSE™ Linux Enterprise el valor predeterminado de la máscara de usuario utilizada por useradd es 0022, es decir 0755 (rwxr-xr-x), debido a que la variable UMASK está deshabilitada con una almohadilla en el archivo /etc/login.defs, pues se recomienda se defina ésta variable en el archivo /etc/default/useradd. Ejemplo:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
UMASK=0077

Para determinar el valor en notación octal para la máscara de usuario predeterminada del sistema, ejecute umask sin opciones ni argumentos.

umask

Para determinar el valor en notación simbólica para la máscara de usuario predeterminada del sistema, ejecute umask con la opción -S (mayúscula), sin argumentos.

umask -S

Para cambiar la mascara de usuario en la sesión activa y procesos hijos, se requiere ejecutar umask con el valor octal deseado. En el siguiente ejemplo, se definirá 0002 (0775, rwxrwxr-x) como máscara de usuario:

umask 0002

Lo anterior también se puede hacer utilizando notación simbólica:

umask u=rwx,g=rwx,o=rx

Permisos adicionales.

Hay una forma de cuatro dígitos. Bajo este esquema el estándar de tres dígitos descrito arriba se convierte en los últimos tres dígitos del conjunto. El primer dígito representa el bit de los permisos adicionales. En sistemas y equipamiento lógico donde es obligatorio incluir este primer dígito del conjunto de cuatro y se prescinde de asignar permisos adicionales, se debe establecer cero como valor de éste. Ejemplo:

chmod 0755 /lo/que/sea

El primer dígito del conjunto de cuatro es también la suma de sus bits que le componen:

  1. El bit pegajoso (sticky bit) añade 1 al total de la suma.
  2. El bit setgid añade 2 al total de la suma.
  3. El bit setuid añade 4 al total de la suma.

El permiso SUID o bit setuid hace que cuando se ha establecido ejecución, el proceso resultante asumirá la identidad del usuario dado en la clase de usuario (propietario del elemento).

El permiso SGID o bit setgid hace que cuando se ha establecido ejecución, el proceso resultante asumirá la identidad del grupo dado en la clase de grupo (propietario del elemento). Cuando setgid ha sido aplicado a un directorio, todos los nuevos archivos creados debajo de este directorio heredarán el grupo propietario de este mismo directorio. Cuando se omite establecer setgid, el comportamiento predeterminado es asignar el mismo grupo del usuario utilizado para crear nuevos archivos o directorios.

El bit pegajoso (sticky bit) significa que un usuario sólo podrá modificar y eliminar archivos y directorios subordinados dentro de un directorio que le pertenezca. En ausencia de éste, se aplican las reglas generales y el derecho de acceso de escritura en si sólo permite al usuario crear, modificar y eliminar archivos y directorios subordinados dentro de un directorio. Los directorios a los cuales se les ha establecido bit pegajoso restringen las modificaciones de los usuarios a sólo adjuntar contenido, manteniendo control total sobre sus propios archivos y permitiendo crear nuevos archivos; sólo permitirá adjuntar o añadir contenido a los archivos de otros usuarios. El bit pegajoso es utilizado en directorios como /tmp y /var/spool/mail.

De modo tal puede considerarse la siguiente tabla:

ValorPermisoDescripción
1— — —tbit pegajoso
2— —sbit setgid
3— —stbit pegajoso + bit setgid
4s — —bit setuid
5s — —tbit setuid + bit pegajoso
6ssbit setuid + bit setgid
7sstbit setuid + bit setgid + bit pegajoso

Cuando un archivo carece de permisos de ejecución o bien si un directorio carece de permiso de acceso en alguna de las clases y se le es asignado un permiso especial, éste se representa con una letra mayúscula.

PermisoClaseEjecutaSin ejecución
setuidUsuariosS
setgidGruposS
pegajoso (sticky)OtrostT

Ejemplos.

Ejemplos permisos regulares.

Valor octalValor umaskClase de UsuarioClase de GrupoClase de Otros
04000377r–
04400337r–r–
04440333r–r–r–
05000277r-x
05500227r-xr-x
05550222r-xr-xr-x
06440133rw-r–r–
06640113rw-rw-r–
06660111rw-rw-rw-
07000077rwx
07110066rwx–x–x
07070070rwxrwx
07440033rwxr–r–
07500027rwxr-x
07550022rwxr-xr-x
07750002rwxrwxr-x
07770000rwxrwxrwx

Ejemplos permisos especiales.

Valor octalClase de UsuarioClase de GrupoClase de Otros
1644rw-r–r-T
2644rw-r-Sr–
3644rw-r-Sr-T
4644rwSr–r–
5644rwSr–r-T
6644rwSr-Sr–
7644rwSr-Sr-T
1777rwxrwxrwt
2755rwxr-sr-x
3755rwxr-sr-t
4755rwsr-xr-x
5755rwsr-xr-t
6755rwsr-sr-x
7755rwsr-sr-t

Uso de chmod.

chmod [opciones] modo archivo

Ejecute lo siguiente:


mkdir -p ~/tmp/
touch ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod 755 ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod u=rw,g=r,o=r ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod u=rw,g-r,o-r ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod u+x,g+rx,o+rx ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod a-x ~/tmp/algo.txt
ls -l ~/tmp/algo.txt
chmod a-w ~/tmp/algo.txt
ls -l ~/tmp/algo.txt

La salida debe ser similar a la siguiente:

Opciones de chmod.

-R Cambia permisos de forma descendente en un directorio dado. Es la única opción de los estándares POSIX.-cMuestra cuáles archivos han cambiado recientemente en una ubicación dada
-f Omite mostrar errores de archivos o directorios que haya sido imposible cambiar
-v Descripción detallada de los mensajes generados por el proceso

Para obtener una descripción completa del uso de chmod, ejecute:

man 1 chmod

Uso de chmod y los enlaces simbólicos.

Cabe señalar que aunque es posible cambiar el propietario y/o grupo al cual pertenece un enlace simbólico con chown y chgrp, chmod jamás cambia los permisos de acceso de enlaces simbólicos, los cuales de cualquier forma carecen de relevancia pues los que importan son los permisos de los archivos o directorios hacia los cuales apuntan. Si ejecuta chmod sobre un enlace simbólico, invariablemente se cambiará el permiso del archivo o directorio hacia el cual apunta. Cuando se aplica chmod de forma descendente en un directorio, éste ignora los enlaces simbólicos que pudiera encontrar en el recorrido.

Fuente: Alcancelibre

by Mauro at September 28, 2019 09:48 PM

Solución a: Problema de actualización de cPanel “Needed system RPMs were not installed”

Hace unos días nos topamos con unos errores en nuestro repositorio de errores de WHM, el cual nos indicaba que existía un problema al actualizar la versión de cPanel.

El error sólo se daba sobre uno de nuestro servidores donde conviven, cPanel, Cloud Linux y CentOS, por lo que me eso reducía la búsqueda a una falla entre los 3 sistemas.

Los errores que recibíamos a nuestra cuenta de correo del host, eran:

“Updating to the latest version of cPanel & WHM 11.40 did not succeed. Basic requirements for cPanel & WHM were unable to be installed. The specific failure was:
Sysup: Needed system RPMs were not installed: screen
For more information on this error, and guidance on resolving the error, please go to go.cpanel.net/sysupfailed”

“An error was detected which prevented updatenow from completing normally.
Please review the enclosed log for further details

—————————————————————————————————-

[20131221.010006] Detected version ‘11.40.0.29’ from version file.
[20131221.010006] Using mirror ‘216.38.56.98’ for host ‘httpupdate.cpanel.net’.
[20131221.010006] Target version set to ‘11.40.1.5’
[20131221.010006] Checking license
[20131221.010006] License file check complete
[20131221.010006] Checking that the RPM DB is OK…
[20131221.010006] glibc-2.5-118.el5_10.2
[20131221.010006] glibc-2.5-118.el5_10.2
[20131221.010006] OK: RPM DB is responding to queries
[20131221.010006] Testing if rpm_is_working RPM is installed
[20131221.010006] package rpm_is_working is not installed
[20131221.010006] Testing if it’s possible to install a simple RPM
[20131221.010006] Preparing… ##################################################
[20131221.010006] rpm_is_working ##################################################
[20131221.010007] Switching to version ‘11.40.1.5’ of updatenow to perform sync.
[20131221.010013] Loaded plugins: fastestmirror, rhnplugin, security
[20131221.010015] Profilename: server04.solo10.com
[20131221.010015] IP:108.59.12.143 Not licensed
[20131221.010015] There was an error communicating with CLN.
[20131221.010015] CLN support will be disabled.
[20131221.010015] Error communicating with server. The message was:
[20131221.010015]
[20131221.010015] Error Message:
[20131221.010015] Please run rhn_register as root on this client
[20131221.010015] Error Class Code: 9
[20131221.010015] Error Class Info: Invalid System Credentials.
[20131221.010015] Explanation:
[20131221.010015] An error has occurred while processing your request. If this problem
[20131221.010015] persists please enter a bug report at helpdesk.cloudlinux.com.
[20131221.010015] If you choose to submit the bug report, please be sure to include
[20131221.010015] details of what you were trying to do when this error occurred and
[20131221.010015] details on how to reproduce this problem.
[20131221.010015]
[20131221.010016] Loading mirror speeds from cached hostfile
[20131221.010017] * rpmforge: mirror.us.leaseweb.net
[20131221.010017] Excluding Packages in global exclude list
[20131221.010020] Finished
[20131221.010020] Setting up Install Process
[20131221.010021] No package screen available.
[20131221.010021] Nothing to do
[20131221.010021] Prelinking shared libraries and binaries: /usr/sbin/prelink -av -mR
[20131221.010047] E Sysup: Needed system RPMs were not installed: screen
[20131221.010047] ***** FATAL: Cannot proceed. Needed system RPMs were not installed.
[20131221.010047] The Administrator will be notified to review this output when this script completes
[20131221.010047] E Detected events which require user notification during updatenow. Will send iContact the log"

Lo que indicaba el error era un problema de RPM’s, que son las dependencias de terceros en cPanel & WHM.

Para solucionarlo encontramos 2 métodos:
1) Metodo sencillo, directamente se chequean y reparan las RPM’s

# /usr/local/cpanel/scripts/check_cpanel_rpms --fix
# /scripts/upcp

2) Cuando el método anterior no funciona, tendremos que reinstalar la fuente del problema, en este caso el LVE o Cloud Linux

# yum remove libwmf-lite lvemanager
# yum install lvemanager# /scripts/upcp

by Mauro at September 28, 2019 02:05 PM

September 27, 2019

soyadmin.com

Cacheo de imágenes con .htaccess

Con .htaccess podemos hacer que sean cacheadas las imágenes, css, javascripts de nuestro sitio, haciendo que cada vez que naveguen nuestra web no tenga que mostrar tooooodos los archivos del sitio.

De esa manera se evita que el servidor web busque y muestre las imágenes los css y cada archivo de nuestro sitio, haciéndolo que directamente lo busque en la cache, lo cual acelerará mucho la carga de nuestra web.

ExpiresActive On
ExpiresByType image/gif A432000
ExpiresByType image/jpg A432000
ExpiresByType image/jpeg A432000
ExpiresByType image/png A432000
ExpiresByType image/ico A432000
ExpiresByType image/bmp A432000
ExpiresByType text/css A432000
ExpiresByType text/javascript A432000
ExpiresByType application/javascript A432000
ExpiresByType application/x-javascript A432000

El código anterior guarda caché de los archivos durante cinco días o 432.000 segundos. Puede cambiar el período de almacenamiento en caché, asegurándose de utilizar el valor expresado en segundos.

by Mauro at September 27, 2019 07:39 PM

Principales módulos de Apache.

Estos son los principales módulos que se agregan a nuestro apache, luego de alguna compilación. Dado que apache consta de 2 partes perfectamente divididas, su core o nucleo de código y luego permite el agregado de infinidad de módulos, lo cual lo hace muy versátil y adaptable a cualquier configuración que necesitemos o que nos soliciten.

Estos son los principales módulos a tener en cuenta:

  • mod_access: El módulo mod_access se utiliza en el control de acceso al servidor.
  • mod_actions: Se utiliza para ejecutar código CGI o una solicitud http
  • mod_alias: Se utiliza para convertir el sistema donde esta instalado el servidor en parte del servidor.
  • mod_asis: Este módulo se utiliza para enviar un documento del servidor sin cabeceras http. Resulta útil para redireccionar a un cliente sin necesidad de utilizar un scrip.
  • mod_auth: Se utiliza para confirmar la autenticación, mediante el nombre de los usuarios y sus contraseñas.
  • mod_auth_anon: Este módulo permite acceder de manera anónima a partes del servidor. Todos los usuarios pueden utilizar un identificador llamado “anonymus” para acceder a ciertas partes del sistema.
  • mod_auth_db: Cuando es necesario automatizar el proceso de autenticación, y no se pueden utilizar archivos DBM, pero si se pueden utilizar otros archivos, como por ejemplo los Berkeles DB, es preciso utilizar el módulo mod_auth_db
  • mod_auth_dbm: Como en el anterior caso, con los archivos de texto .htpasswd y .htaccess en procesos de alta velocidad, se puede ver afectado el rendimiento del servidor. Por lo tanto es necesario automatizar el proceso de autenticación, utilizando archivos DBM, es decir, archivos con contenido clave=valor, que mantienen una tabla indexada con todas las claves del archivo. Pueden utilizar también archivos GDBM, NDBM,SDMM y Berkeley DB.
  • mod_auth_external: Este módulo se utiliza cuando nos vemos en la necesidad de utilizar un sistema de autenticación externo.
  • mod_autoindex: Cuando un cliente hace una petición en un directorio, el servidor busca en el mismo un archivo con algún nombre de los indicados en la directiva DirectoryIndex. Esta es la función del módulo mod_autoindex.
  • mod_cern_meta: Este módulo se encarga de la metainformación. Tiene que ver con las directrices MetaFiles, MetaDir y MetaSuffix.
  • mod_cgi: Cuando compilamos Apache con este módulo, lo hacemos para poder usar programas CGI, así como su configuración.
  • mod_digest: Se utiliza para poder utilizar la autenticación diges.
  • mod_dir: Con este módulo, tenemos la posibilidad de no incluir al final de una solicitud la barra inclinada /. Es  decir, cuando escribimos www.golesparatodos.com/contacto, el servidor lo convertirá a www.golesparatodos.com/contacto/, donde buscará un nombre de archivo indicado en la directriz Director ;Index.
  • mod_env: Permite el envío de variables de entorno a los script CGI o SSI.
  • mod_expires: Este módulo se utiliza para indicar al cliente la cantidad de tiempo que dispone antes de que su solicitud pierda su validez, utilizando para ello las cabeceras http Expires.
  • mod_headers: Nos permite manipular las cabeceras http mediante la directriz Header.
  • mod_imap: Con este módulo, Apache permite la utilización de mapas de imágenes en los programas CGI.
  • mod_include: Se utiliza para los documentos SSI con la directriz inlude, que permite insertar el texto de un fichero dentro de otro.
  • mod_info: Con este módulo podemos visualizar a través de la red la información sobre la configuración y el estado del servidor.
  • mod_log_agent: Apache dispone de módulo para registrar la información del agente de usuario en un archivo independiente.
  • mod_log_config: Este módulo permite el registro de señales de peticiones recibidas por el servidor mod.
  • mod_log_referer: Permite señalar documentos por parte de aquellos que han sido accedidos desde el servidor.
  • mod_mime: Se utiliza para entregarle a los clientes metainformación sobre los documentos.
  • mod_negotiation: Apache se hace cargo mediante éste módulo de la negociación de contenido. Esta consiste en la selección de una versión de documento que corresponda a la mejor de las posibilidades del cliente. Existen dos tipos de mecanismos: mapas de tipos y búsquedas multiviews.
  • mod_setenvif: Este módulo se utiliza para crear variables de entorno personalizadas para ayudar a optimizar ciertas decisiones.
  • mod_spelling: Permite controlar las solicitudes URL mal escritas. Admite errores de una letra procurando localizar el documento pedido.
  • mod_unique_id: Módulo que se asegura que cada petición es única. Para ello utiliza la variable de entorno UNIQUE-ID.

by Mauro at September 27, 2019 02:41 PM

Krita 4 la mejor alternativa a Photoshop para Linux

Para aquellos que les gusta buscar parecidos, Krita podría ser comparado con Photoshop o con GIMP, su principal característica es que es un software Free, Open source y multiplataforma.

Krita es rápido, robusto y que nos dará muchas facilidades a la hora de crear pinturas digitales, una imagen o dibujo desde cero. Este software está disponible en la versión 4 y lleva evolucionando desde hace casi 11 años.

Se incluyen una gran cantidad de pinceles, máscaras, filtros y texturas, otorgándonos las herramientas indispensables, convirtiéndola en una aplicación que merece la pena probar.

Originalmente era una herramienta creada y desarrollada por KDE, hoy en día se encuentra disponible para Linux, Windows y Mac. Soporta múltiples formatos de archivos, incluidos el PSD de Photoshop y también formatos de paletas de colores por ejemplo RGB y CMYK, posee una interfaz muy amena e intuitiva totalmente compatible con tabletas digitalizadoras o tabletas de dibujo.

COMO SE INSTALA: (Ubuntu 18.04/17.10 Linux Mint 19/18/17 y derivadas)

sudo apt-add-repository ppa:kritalime/ppa
sudo apt-get update
sudo apt-get install krita

by Mauro at September 27, 2019 12:18 PM

CloudAdmins.org

Barcelona DEVOPS Month I: Kubernetes Rancher Labs Rodeo (9/10)

Este mes de octubre viene “completito”, y que mejor manera de ponerse en forma…

https:_cdn.evbuc.com_images_52840363_266134466325_2_logo.png

  ATENCIÓN -> https://www.eventbrite.com/e/rancher-rodeo-barcelona-tickets-65814469851

 

Fecha: 09-10-2019 09:30 a 15:00
Lugar:  Sala de Conferencias, CSUC, Edificio Annexus, Gran Capità s/n, Barcelona

 

El CSUC acoge el Rancher Rodeo, un taller gratuito que tiene como objetivo proporcionar a los equipos de DevOps y de TI las habilidades prácticas necesarias para desarrollar y gestionar Kubernetes en cualquier entorno. La formación es a cargo de los expertos técnicos de Rancher y está dirigida a cualquier interesado en aprender a utilizar contenedores o Kubernetes.

El taller incluye una introducción a las aplicaciones Rancher, Docker y Kubernetes, y también muestra los pasos a seguir para desplegar un clúster de Kubernetes.

Los temas clave que se tratarán en la formación son:

  • Descripción y arquitectura de Docker y Kubernetes
  • Instalación y configuración de Rancher Server
  • Despliegue del Clúster de Kubernetes
  • Despliegue y acceso a aplicaciones

Requisitos necesarios para asistir a la formación:

  • Ordenador portátil
  • Tener instalado Vagrant y 6 GB de RAM libres
  • Alternativamente, si desea utilizar un proveedor de cloud computing, es necesario tener acceso y permisos, y estar familiarizado con su uso. Cada asistente es responsable del coste del proveedor de cloud externo.

Agenda

9:30 – 10:00 Registration Open, Breakfast Available
10:00 – 10:45 Rancher Introduction & Marketplace Overview
10:45 – 11:15 Rodeo Introduction & Overview
  • Rodeo Objectives
  • Docker and Kubernetes Overview
11:15 – 11:45 Server Deployment
  • Machine Provisioning
  • Rancher Server Installation
  • Walkthrough of Rancher UI
11:45 – 12:15 Break 12:15 – 13:15 Kubernetes Deployment
  • Kubernetes Installation
  • Exploring the Clusters with Rancher and the CLI
  • Installing Applications from the Catalog
13:15 – 13:30 Q&A 13.30 – 14:00 User case: “Scientific Repositories with Rancher”
led by Miguel Ángel Flores & Joan Caparrós (CSUC) 14:00 – 15:00 Networking Lunch

 

21-22/10

by Cloudadmin JordiGuijarro at September 27, 2019 07:33 AM

September 26, 2019

soyadmin.com

¿Qué Kernel debo usar?

Esta es una duda que muchos usuarios poseemos, más si vamos a usar un dispositivo específico, notebook, servidor, pc de escritorio, etc.

Greg Kroah-Hartman desarrollador activo del Kernel Linux da un par de pautas para saber que Kernel elegir o que kernel se adapta mejora lo que tengamos instalado en nuestro dispositivo y no nos cause problemas.

Lo primero que recomienda es utilizar kernels que son mantenidos por la misma distribución, es decir el kernel original que viene con nuestra distro. Esto lo recomienda ya que este kernel nativo será actualizado junto con la distro en si.

Lo segundo que indica es que la mejor solución para casi cualquier usuario Linux es utilizar el nucleo de su distro. No se debe actualizar el Kernel así porque sí, ni tampoco usar LTS Viejos.

Sobre las distribuciones recomienda las Rolling Release (opensuse, manjaro, antergos, gentoo, etc) ya que estas distros mantienen una constante actualización tanto de distribución como de kernel sin tener que ir esperando versiones LTS. Recibiendo las últimas correcciones y actualizaciones de seguridad.

Si bien algunas distribuciones demoran un poco en actualizar los Kernels (debian, ubuntu, linux mint, etc) Esto no indica que el nucleo de estas distros este desactualizado o con problemas de seguridad. Estos reciben parches de seguridad constantemente logrando siempre el último kernel sin importar la distribución.

La recomendación sería:
Notebook/Pc de escritorio: ültima versión de kernel estable
Servidor: la version LTS más reciente

Si quieren más información pueden ver el artículo escrito por Greg Kroah-Hartman aquí

Que Kernel usas en tu pc? sos de actualizarlo? contanos un poco tu propia experiencia al respecto.

by Mauro at September 26, 2019 10:41 PM

Como cambiar el Directorio Raíz o Document Root de nuestro sitio

Muchas veces es necesario modificar el document root de tu sitio, muchos tenemos la costumbre de NO hacer las instalaciones de aplicaciones directamente en el raíz del sitio entonces a la hora de finalizado el proyecto es necesario realizar un cambio de directorio raíz o document root.

Existen varias maneras de realizarlo, aca explicaremos 2:
1) Crear o editar el archivo .htaccess y hacer la redirección hacia el directorio:

# vi .htaccess

RewriteEngine On
RewriteRule ^$ /nuevo_directorio/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/nuevo_directorio/
RewriteRule ^(.*)$ /nuevo_directorio/$1
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule ^nombresitio.com/(.*[^/])$ http://www.nombresitio.com/$1/ [R=301]

2) Directamente modificando el archivo de configuración de cPanel
Vamos a la ruta de configuración de nuestro dominio en cPanel /var/cpanel/userdata/USUARIO/dominio.com (reemplazamos USUARIO y dominio.com por los datos de nuestro sitio)

Ponemos como ejemplo los datos de soyadmin.com

# vi /var/cpanel/userdata/soyadmin/soyadmin.com
Buscamos "documentroot" y editamos con los datos del nuevo "directorio"
documentroot: /home/nerion/public_html/directorio

Guardamos y tendremos que hacer un rebuild de apache para que «tome» los cambios hechos en la configuración del dominio

# /scripts/rebuildhttpdconf
# /etc/init.d/httpd restart

by Mauro at September 26, 2019 09:15 PM

Libro: Seguridad en UNIX y Redes de Antonio Huerta

Título: SEGURIDAD EN UNIX Y REDES
Autor: Antonio Huerta
Año: 2002
Páginas: 503 páginas
Tamaño: 2.5 MB
Fomato: PDF

Contenido:

El mundo de la seguridad informática es demasiado amplio y complejo como para ser tratado exhaustivamente en ningún trabajo, mucho menos en uno tan simple como este; aquí únicamente he intentado resumir una visión global de diferentes aspectos relacionados con la seguridad, especialmente con Unix y redes de computadores (estas últimas tan de moda hoy en día… Unix, por desgracia, no tanto). Este trabajo está casi completamente extraído de mi proyecto final de carrera, que estudiaba la seguridad en los sistemas Unix y la red de la Universidad Politécnica de Valencia (UPV), de forma que si aparece alguna referencia a «nuestra red» o «nuestros equipos» (aunque he intentado eliminar todos los ejemplos y comentarios relativos a UPV, por motivos obvios) ya sabemos de qué se trata.

A lo largo de este trabajo se va a intentar hacer un repaso de los puntos habituales referentes a seguridad en Unix y redes de computadores (problemas, ataques, defensas…), aplicando el estudio a entornos con requisitos de seguridad medios (universidades, empresas, proveedores de acceso a Internet…); de esta forma se ofrecerá una perspectiva general de la seguridad en entornos Unix, el funcionamiento de sus mecanismos, y su correcta utilización. También se hablará, en menor medida, sobre temas menos técnicos pero que también afectan directamente a la seguridad informática, como puedan ser el problema del personal o la legislación vigente.

El objetivo final de este proyecto sería marcar unas pautas para conseguir un nivel de seguridad aceptable en los sistemas Unix conectados en cualquier red, entendiendo por ‘aceptable’ un nivel de protección suficiente para que la mayoría de potenciales intrusos interesados en los equipos de nuestra organización fracasara ante un ataque contra los mismos. Obviamente, es imposible garantizar una plena seguridad ante cualquier atacante: seguramente un pirata experimentado, con el tiempo suficiente, pagado, o simplemente muy interesado en uno de nuestros equipos, no tendría muchos problemas en acceder a él. Este hecho, aunque preocupante, es casi inevitable; lo evitable es que cualquier persona sea capaz de atacar con éxito un equipo simplemente por haber visto una película, descargado un par de páginas web y ejecutado un programa que ni ha hecho ni entiende.

Fuente: Openlibra

by Mauro at September 26, 2019 05:37 PM

September 23, 2019

www.rootzilopochtli.com

Laboratorio de Pruebas

Sheldon está a un accidente de laboratorio de convertirse en un supervillano – Leonard Hofstadter (The Big Bang Theory)
Foto: Cortesía Warner Channel

Muchas veces, cuando sale una versión nueva de alguna distribución que nos llama la atención y queremos probar, no podemos hacerlo porque, probablemente, el equipo que tenemos es el mismo con el que trabajamos y no podemos reinstalarlo o tenerlo mucho tiempo fuera de circulación.

Una de las maneras más sencillas, creo yo, de poder contar con un laboratorio personal, es utilizando máquinas virtuales con KVM.

Fedora puede entregarnos, desde su instalación, los paquetes necesarios para realizar la configuración de virtualización en nuestro equipo. Tras unos sencillos pasos ya estaremos listos para crear máquinas virtuales.

La forma más sencilla de obtener máquinas virtuales que funciona con KVM, es crearlas a partir de las imágenes que ya vienen preparadas para la nube. El formato que utiliza KVM es qcow2.

Estas imágenes las podemos descargar de la página de openstack:
https://docs.openstack.org/image-guide/obtain-images.html

O de la página de las Cloud Base Images de Fedora:
https://alt.fedoraproject.org/cloud/

Con la imagen descargada, primero la copiamos al directorio de las imagenes de kvm y la personalizamos:

$ sudo cp Fedora-Cloud-Base-30-1.2.x86_64.qcow2 \
  /var/lib/libvirt/images/vmtest01.qcow2
$ sudo virt-customize -a /var/lib/libvirt/images/vmtest01.qcow2 \ 
--hostname vmtest01.mx.redhat.lab  --root-password password:****** \ 
--ssh-inject 'root:file:labkey.pub' --uninstall cloud-init \ 
--selinux-relabel

Con el comando anterior, podemos notar que se le estableció un hostname y una contraseña de root a la VM, además de que se le inyectó una llave pública y se desinstaló cloud-init.
cloud-init es un paquete que inicializa la instancia creada, pero para nuestro caso de pruebas, el efecto que tiene es retrasar el arranque de la VM, por lo que, en lo personal, considero mejor desinstalarlo.

El relabel de SELinux es necesario por la desintalación de dicho paquete.

Después de personalizarlo, podemos importar la VM a nuestro KVM:

$ sudo virt-install --name vmtest01 --memory 1024 --vcpus 1 \ 
--disk /var/lib/libvirt/images/vmtest01.qcow2 \ 
--import --os-variant fedora30 --noautoconsole

Para acceder a la consola ejecutamos:

$ sudo virsh console vmtest01

Los comandos básicos para la VM son:

  • Listar / Apagar / Arrancar la VM
$ sudo virsh list --all
$ sudo virsh [destroy | start] vmtest01
  • Eliminar la VM
$ sudo virsh undefine vmtest01

Espero les sirva… 🙂

by Alex Callejas at September 23, 2019 07:15 PM