Planeta Sysadmin

de sysadmins para sysadmins

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

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 24, 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 24, 2019 01:15 AM

September 23, 2019

RooTeando

Entrevista En Diferido 17: Andros Fenollosa y Javier Archeni

Comenzamos una nueva  entrevista un poco especial porque será doble, dos entrevistados, con un perfil  desarrolladores web y podcaster, cuyos nombre son Andros Fenollosa y Javier Archeni.

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:¿Os podríais presentar en unas líneas?

 

Andros Fenollosa: Me llamado Andros Fenollosa. A nivel ...

September 23, 2019 06:00 AM

September 20, 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 September 20, 2019 12:30 PM

September 19, 2019

soyadmin.com

Instalar fuentes de Google Fonts en Debian, Ubuntu, Linux Mint y derivados

Descargar e instalar las fuentes de Google Fonts en nuestro Linux es muy fácil, existe una aplicación llamada TypeCatcher

TypeCatcher nos facilita la descarga e instalación de la fuente, tiene un visor donde muestra el estilo de letra y con solo apretar un botón descarga e instala.

La instalación de TypeCatcher es sencilla:

# sudo apt-get install typecatcher

Abrimos luego TypeCatcher y veremos una interfaz en español muy intuitiva:

El funcionamiento es sencillo, buscamos la fuente en el listado de la izquierda, una vez elegida la que queremos hacemos click en el botón de descarga e instalación, con eso ya podemos disfrutar de esta fuente en nuestro sistema.

by Mauro at September 19, 2019 12:41 PM

September 18, 2019

RooTeando

Escribiendo Un Café 06: La programación no es solo picar código

Ha salido un nuevo boletín donde escribo  Noticias, Linux,Python,formación, hardware y algo mas. El tema principal de este boletín  son las herramientas que ayudan a desarrollar mejor código; depuradores,testing,linting o profiler.  Se muestra alguna herramientas de este tipo disponible para Python.

Si quieres suscribirte y recibir los boletines 

powered by TinyLetter

 

Si quieres leer todos los boletines anteriores, en el siguiente enlace.

https://tinyletter.com ...

September 18, 2019 09:00 PM

Sobre bits

Cómo ocultar la barra de progreso en PowerShell y PowerCLI

Cuando ejecutamos un cmdlet en PowerShell de forma interactiva y éste realiza una tarea que puede ser larga es de agradecer que el mismo muestre una barra de progreso de la ejecución del mismo para ver en qué punto estamos en todo momento. No obstante, si ejecutamos un script de PowerShell de forma programada y logeamos la salida del mismo ésto hará que se nos ensucie el archivo de log de forma innecesaria. En la entrada de hoy veremos un sencillo truco para ocultar la barra de progreso en PowerShell y PowerCLI.

$ProgressPreference, la encargada de ocultar la barra de progreso en PowerShell

Muchos de los comportamientos que tiene nuestra consola de PowerShell son configurables a través de las llamadas preference variables. Para ocultar la barra de progreso en PowerShell podremos utilizar la variable $ProgressPreference. Si mostramos el contenido de la variable en nuestra consola deberíamos ver el estado actual de la misma:

PS C:\>$ProgressPreference
Continue

El valor por defecto de la variable es Continue, pero éstos son los valores que le podemos asignar:

  • Stop: Para la ejecución y muestra un error en el caso de que se vaya a utilizar una barra de progreso.
  • Inquire: No muestra la barra de progreso y pregunta al usuario si quiere continuar.
  • Continue: Muestra la barra de progreso y continua con la ejecución.
  • SilentlyContinue: No muestra la barra de progreso pero continua con la ejecución.

A decir verdad no se me ocurre la utilidad de las primeras dos opciones, no obstante la que nos interesa para esta entrada es SilentlyContinue. Ahora sí, si queremos ocultar la barra de progreso en PowerShell y PowerCLI ejecutaremos en nuestra consola:

PS C:\>$ProgressPreference = 'SilentlyContinue'

Si a posteriori ejecutamos algún cmdlet que muestre barra de progreso como, por ejemplo, New-Snapshot de PowerCLI veremos como éste ya no muestra barra de progreso.

Hay que tener en cuenta que si cerramos y abrimos nuestra consola la variable volverá a coger su valor por defecto, es decir, Continue. Si queremos alterar éste comportamiento podemos añadir la línea anterior a nuestro perfil de PowerShell como vimos en entradas anteriores, o bien si se trata de la ejecución de un script, dar el valor deseado a la variable al principio de éste.

Conclusión

Si bien como decía en la introducción cuando ejecutamos una sesión interactiva ver la barra de progreso nos puede ser útil, en ejecución de scripts y sobretodo si son programados es más un estorbo que otra cosa, por lo que $ProgressPreference nos puede ayudar a tener ejecuciones más limpias de nuestros scripts.

Espero que os sirva.

¡Hasta la próxima!

La entrada Cómo ocultar la barra de progreso en PowerShell y PowerCLI aparece primero en Sobrebits.

by Marc Meseguer at September 18, 2019 01:29 PM

September 16, 2019

RooTeando

Entrevista En Diferido 16: José Miguel Parrella

Comenzamos una nueva  entrevista a José Miguel Parrella, @bureado en Twitter, empleado en Microsoft donde trabaja con Azure y tecnologías OpenSource. 

Antes de todo, gracias por participar y apoyar 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 podrías presentar en unas líneas?

 

JMP:  Hola y gracias por invitarme. Mi nombre es José Miguel y ...

September 16, 2019 02:38 PM

September 13, 2019

soyadmin.com

Cambiar el /home de un Usuario

Para poder cambiar el directorio home de un usuario usaremos el comando usermod

# usermod -d /nuevohome/usuario usuario

Cambiar el /home y copiar el contenido del usuario:

# usermod -d -m /nuevohome/usuario usuario

Para más info podemos ver más del uso de esta herramienta

# man usermod

by Mauro at September 13, 2019 01:46 PM

Script Bash para limpieza de temporales

Bueno acá presentamos un script que sirve para limpieza de temporales directamente tomando como eje el directorio o partición /TMP

El script funciona rastreando y eliminando ciertos archivos temporales, se ejecuta mediante cron.

Vamos al script propiamente dicho, el cual en mi caso lo he creado dentro de la carpeta /etc/cron.hourly/ para que de esa manera se ejecute cada 1 hr automáticamente.

Creamos el archivo, ejemplo:

# vi scriptlimpia.sh
#!/bin/bash

# Nos movemos a /tmp
cd /tmp
ls | grep 'pTh*' | xargs rm -fv

# Limpia restos de Gallery2
ls | grep '[0-9].inc*' | xargs rm -fv

# Limpia archvos de sesiones PHP
ls | grep 'sess_*' | xargs rm -fv

# Limpia uploads fallidos de vBulletin
ls | grep 'vbupload*' | xargs rm -fv

# Limpia upload de archivos php fallidos
ls | grep 'php*' | xargs rm -fv

# Limpia conversiones fallidas de ImageMagick .
ls | grep 'magick*' | xargs rm -fv

Se puede probar el script ejecutándolo mediante:

# bash /etc/cron.hourly/scriptlimpia.sh

Espero que es sirva!

by Mauro at September 13, 2019 01:37 AM

September 12, 2019

soyadmin.com

Ver tiempo de ejecución de servicios o procesos

Puede que en algún momento necesitemos saber o conocer cuánto tiempo lleva abierto o en ejecución un proceso o servicio

Con el comando etime (elapsed time) podemos ver el tiempo de ejecución que lleva un servicio. Este comando por si solo no hace nada pero concatenado con PS nos puede devolver el tiempo de un servicio, sabiendo previamente el PID de dicho servicio.

# ps -p PID -o etime=
# ps -p 2586 -o etime=
02:25

by Mauro at September 12, 2019 02:05 PM

Sobre bits

Primeros pasos con PowerCLI para vCloud Director

Hasta hoy cuando en este blog he hablado de PowerCLI siempre lo he hecho referente a su interacción con VMware vSphere (ESXi + vCenter), pero ni mucho menos PowerCLI se limita a ejecutar acciones únicamente contra esta plataforma. En la entrada de hoy exploraremos el uso de PowerCLI para vCloud Director, una herramienta que acostumbro a usar y que si sois usuarios o administradores de la plataforma seguro os ayuda a gestionar mejor vuestras infraestructuras.

Primeros pasos con PowerCLI para vCloud Director

¿Qué es vCloud Director?

Si bien a VMware se la conoce especialmente por vSphere, ésta tiene una gran cantidad de productos la mar de interesantes en el mercado (muchas apoyadas en vSpere).

vCloud Director es una plataforma de VMware con la que se ofrecen las características necesarias para crear un servicio de Cloud, ya sea para que un proveedor de servicios ofrezca un servicio de Cloud público como para que un cliente final ofrezca un servicio de Cloud privado para su empresa, encima de una plataforma tan conocida como VMware vSphere.

Los cmdlets de PowerCLI para vCloud Director

Cuando instalamos PowerCLI en nuestra máquina con el módulo VMware.PowerCLI instalamos todos estos módulos:

  • Windows TerminalVMware.DeployAutomation
  • VMware.ImageBuilder
  • VMware.PowerCLI
  • VMware.Vim
  • VMware.VimAutomation.Cis.Core
  • VMware.VimAutomation.Cloud
  • VMware.VimAutomation.Common
  • VMware.VimAutomation.Core
  • VMware.VimAutomation.Hcx
  • VMware.VimAutomation.HorizonView
  • VMware.VimAutomation.License
  • VMware.VimAutomation.Nsxt
  • VMware.VimAutomation.Sdk
  • VMware.VimAutomation.Security
  • VMware.VimAutomation.Srm
  • VMware.VimAutomation.Storage
  • VMware.VimAutomation.StorageUtility
  • VMware.VimAutomation.Vds
  • VMware.VimAutomation.Vmc
  • VMware.VimAutomation.vROps
  • VMware.VumAutomation

Para interactuar con vCloud Director utilizaremos el módulo VMware.VimAutomation.Cloud, cuyos cmdlets podemos listar, como siempre, con Get-Command:

Get-Command -Module VMware.VimAutomation.Cloud

Utilizando PowerCLI para vCloud Director como usuario

Cuando interactuamos con PowerCLI para vCloud Director en modo usuario podremos realizar tareas relacionadas con la administración de nuestras máquinas virtuales, vApps, Edge Gateways…

Lo primero que deberemos hacer será conectarnos a nuestra organización. Para ello utilizaremos el cmdlet Connect-CIServer, que tiene un uso muy similar al mítico Connect-VIServer:

# Conectamos a la infraestructura
Connect-CIServer -Server vcloud.sobrebits.com -Org sobrebits_Org

# Cuando hemos acabado las respectivas acciones desconectamos
Disconnect-CIServer -Server vcloud.sobrebits.com -Confirm:$false

Lo importante aquí es tener en cuenta que será necesario especificar siempre el parámetro -Org para entrar en modo usuario.

Ahora que ya tenemos conexión contra nuestra organización podemos realizar toda clase de operativa directamente desde nuestra consola favorita. Veamos algunos de los cmdlets más interesantes:

  • Trabajar con nuestras vApps y VMs:
# Listar, crear, parar o eliminar vApps
Get-CIVApp
New-CIVApp
Stop-CIVApp
Remove-CIVApp

# Listar, crear, parar o eliminar VMs 
Get-CIVM
New-CIVM
Stop-CIVM
Remove-CIVM
  • Interactuar con catálogos, plantillas y medios:
# Listar catálogos
Get-Catalog

# Listar, crear o eliminar plantillas de vApp
Get-CIVAppTemplate
New-CIVAppTemplate
Remove-CIVAppTemplate

# Listar archivos de medios
Get-Media
  • Interactuar con nuestros firewalls virtuales y redes:
# Listar nuestros Edge Gateways
Get-EdgeGateway

# Listar, crear, modificar o eliminar Org Networks
Get-OrgVdcNetwork
New-OrgVdcNetwork
Set-OrgVdcNetwork
Remove-OrgVdcNetwork

Utilizándolo como administrador

Cuando utilizamos vCloud Director como administrador encontramos dos diferencias básicas respecto a la interacción como usuario:

  • Tenemos visibilidad sobre todos los recursos de la plataforma: Esto quiere decir que si, por ejemplo, utilizamos Get-CIVApp en este modo podremos listar las vApps de todas las organizaciones de la infraestructura.
  • Podremos interactuar contra elementos de la infraestructura que no son visibles para el usuario.

Aquí van algunas de las cosas interesantes que podemos hacer:

# Listar los detalles del Provider VDC
Get-ProviderVDC

# Listar y añadir Datastores
Get-CIDatastore
Add-CIDatastore

# Hacer búsquedas avanzadas sobre la infraestructura
Search-Cloud
Get-CIView

Conclusión

Muchas de las cosas que hemos visto sobre PowerCLI en el blog pueden ser traducidas a PowerCLI para vCloud Director, espero que con esta entrada introductoria y con lo visto en anteriores entradas os ayude a llevar también la automatización a ésta plataforma. Os recomiendo que tanto si sois usuarios como administradores de la misma le deis una oportunidad.

¡Nos leemos en la próxima!

La entrada Primeros pasos con PowerCLI para vCloud Director aparece primero en Sobrebits.

by Marc Meseguer at September 12, 2019 12:05 PM

September 11, 2019

soyadmin.com

Terminal: Cambiar el directorio de Mysql (por ejemplo de /var/lib/ a /hd2)

Muchas veces, la mayoría de ellas por cuestiones de espacio, es necesario mover el directorio de base de datos a una carpeta distinta.
Esto también puede ser aplicable a un disco totalmente nuevo. Según lei por ahi tener mysql operando en un disco distinto al resto de aplicaciones y donde no conviva con servicios, mejora considerablemente la performance. De esta manera poseemos configurado los servers de host en nuestra empresa.

1) A modo preventivo y como seguridad lo primero sería hacer un respaldo de todas las bases de datos:

# mysqldump --all-databases | gzip > /home/respaldogeneral.sql.gz

2) Para evitar problemas de reinicio del servicio, si usamos algún panel de control debemos estopear el servicio de Mysql y evitar que este se reactive automáticamente (por ejemplo si tenemos WHM ingresamos en Service Manager y vamos a estopear el chequeo de Mysql)

También lo paramos via SSH

# service mysql stop

3) Ahora vamos en si crear el nuevo directorio para mysql, y moveremos el contenido:

# mkdir /hd2/mysql
# mv /var/lib/mysql /hd2/mysql
# chown -R mysql:mysql /hd2/mysql/mysql
# ln -s /hd2/mysql/mysql /var/lib/mysql

4) Por último hay que verificar el archivo de configuración de mysql:

# vi /etc/my.cnf

Buscamos en una de las primeras filas
datadir=/var/lib/mysql
Y lo reemplazamos por el nuevo directorio:
datadir=/hd2/mysql

5) Iniciamos y chequeamos el funcionamiento de Mysql y de los sites.-
Volvemos a activar el monitor de Mysql en en nuestro panel de control.

# service mysql start

by Mauro at September 11, 2019 10:28 PM

Actualizar la Zona Horaria en CentOS

Para ver la zona horaria en nuestro server, lo hacemos mediante el comando date:

# date +%Z
CET

Para cambiar la zona horaria de nuestro server lo que vamos a hacer es:
1) Verificar si tzdata se encuentra instalado y actualizado

# yum install tzdata

2) Actualizamos la zona horaria, editando el archivo Localtime# cp /usr/share/zoneinfo/UTC /etc/localtime

# date +%Z
UTC

by Mauro at September 11, 2019 02:25 PM

September 10, 2019

soyadmin.com

Ficheros de logs en Plesk Linux

En este post comentaremos la ubicación de los logs más utilizados de un Server Linux, funcionando con Plesk como Panel de Control

Logs de Instalación de Plesk:

/tmp/autoinstaller3.log

Logs de la actualización del panel de control Plesk y otras aplicaciones:

/tmp/psa-'nombre-aplicacion'...log

Errores y logs de accesos a Plesk:

/usr/local/psa/admin/logs/httpsd_access_log
/var/log/sw-cp-server/error_log

Logs de la migración de Plesk:

/usr/local/psa/PMM/logs/migration.log

Logs de WachDog:

/usr/local/psa/var/modules/watchdog/log/monit.log

Logs del servidor apache en Plesk:

/var/log/httpd/access_log
/var/log/httpd/error_log

Logs de Apache Suexec en Plesk:

/var/log/httpd/suexec_log

Logs de accesos y errores de una página web:

/var/www/vhosts/domain.tld/statistics/logs/access_log
/var/www/vhosts/domain.tld/statistics/logs/error_log

Logs de MySQL en Plesk:

/var/lib/mysql/server.hostname.err (definido /etc/my.cnf)

Logs de Named (Bind) en Plesk:

/var/log/messages

Los del mail (Qmail y Postfix) en Plesk:

/usr/local/psa/var/log/maillog

Logs FTP en Plesk:

/var/log/plesk/xferlog

Logs del servidor en Plesk:

/var/log/messages

Logs de Horde Webmail:

/var/log/psa-horde/psa-horde.log

Logs del Cronjob:

/var/log/cron

Logs SSH:

/var/log/secure

Logs de Mailman:

/var/log/mailman/

Logs de Tomcat:

/var/log/tomcat5/catalina.out

Logs de Backup Plesk:

/usr/local/psa/PMM/sessions/

by Mauro at September 10, 2019 08:21 PM

Solución a: MySQL failing to start with message “Can’t find file: ‘./mysql/plugin.frm’ (errno: 23)”

Hace unos días tuvimos un problema con el servicio de mysql, el cual le costaba reiniciar.

Mysql devolvía el siguiente log:

131224 06:04:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 23)
131224 6:04:53 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibqcFQMW' (Errcode: 23)
131224 6:04:53 InnoDB: Error: unable to create temporary file; errno: 23
131224 6:04:53 [ERROR] Plugin 'InnoDB' init function returned error.
131224 6:04:53 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131224 6:04:53 [ERROR] Can't create IP socket: Too many open files in system
131224 6:04:53 [ERROR] Aborting131224 6:04:53 [Note] /usr/libexec/mysqld: Shutdown complete131224 06:04:53 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

El error parece indicar que no se encuentra el archivo «./mysql/plugin.frm» pero esto no es correcto dado que al final del mensaje del error se registra un:

‘[ERROR] Can’t create IP socket: Too many open files in system‘.

Este error final y causante de la falla indica que el servidor esta con problemas para atender dicha petición:

# perror 23
OS error code 23: Too many open files in system

Para incrementar este valor y así lograr levantar el Mysql debemos hacer:

# vi /etc/sysctl.conf
Buscamos fs.file-max = 65536 y lo incrementamos por ejemplo a 200000
Guardamos la edición del archivo y ejecutamos:
# sysctl -p para aplicar la configuración modificada.
Ahora si podremos reiniciar el servicio de mysql normalmente.

PD: Es recomendable que luego de un reinicio del server completo volvamos el valor de fs.file-max a 65536

by Mauro at September 10, 2019 01:15 PM

September 09, 2019

RooTeando

Tomando Un Café 65: Charla con Carlos Castillo

Volvemos con una entrevista a Carlos Castillo, fotografo, podcaster y usuario de Apple, donde hablamos de hardware, sistemas y mas cosas. Un usuario de Linux y un usuario de Apple hablando sobre Apple .

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 ese enlace,recibire una pequeña comisión ...

September 09, 2019 10:00 AM

September 06, 2019

soyadmin.com

CRIPTOGRAFÍA Y SEGURIDAD EN COMPUTADORES de Manuel López

Título: CRIPTOGRAFÍA Y SEGURIDAD EN COMPUTADORES
Autor: Manuel López
Páginas: 304 Páginas
Tamaño: 1.5 MB
Fomato: PDF

Contenido:

Hace ya diez años que publiqué la primera edición de Criptografía y Seguridad en Computadores. Muchas cosas han pasado desde entonces, pero hay dos que no han cambiado: la constante actualización de la obra, y la excelente acogida dispensada por los lectores.

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 September 06, 2019 09:49 PM

Windows: Exportar la configuración y conexiones de PuTTy

PuTTY es un emulador de terminal, un programa que permite conectar con máquinas remotas y ejecutar programas a distancia. PuTTY se conecta como cliente a múltiples protocolos, como SSH, Telnet o Rlogin.

La ventana principal de PuTTY es la de configuración, que contiene un completo árbol de opciones. Las básicas están en el primer apartado, Session: introduce allí la dirección del servidor, el puerto y el tipo de conexión. Luego, haz clic en Open para establecer la conexión.

Una de las caracteríscas o funciones que posee PuTTy es la posibilidad de recordar o mantener un registro de las conexiones realizadas, donde sólo con un click estaríamos ingresando a nuestra conexión remota.

Para aquellos que poseemos muchisimos servidores o conexiones, el hecho de tener que reingresar todas las conexiones debido a que cambiamos de pc o formateamos, es un dolor de cabeza para muchos.(Como casi lo fue para mi)

Por suerte blogueando por ahi, encontré una manera sencilla de realizar un backup y restore de la configuración de puTTy.

1) Debemos ingresar a nuestro registro
Vamos a Inicio – Ejecutar
Escribimos regedit y le damos aceptar.

2) Una vez dentro del registro de Windows, vamos a buscar la cadena de puTTy

HKEY_CURRENT_USER
Software
SimonTatham
Putty

Allí hacemos click derecho en dicho registro y lo exportamos, lo cual nos generará un archivo .reg.

Este archivo .reg es el que restauraremos en la nueva PC. Teniendo ya instalado PuTTy simplemente le hacemos doble clic para que restaure.

by Mauro at September 06, 2019 09:44 PM

Dale a Gimp la apariencia de Photoshop

Con este interesante Tweak podremos darle un tuneo a nuestro Gimp, no solo en apariencia similar a Photoshop, sino también en íconos, atajos del teclado y ubicación de paneles. Funciona bajo cualquier distro Linux y rama, comprobado.

Algunos dirán que con la opción de ventana unificada (como yo lo uso) es suficiente, pero para algunos nostálgicos o bien para animar a saltar la brecha les sirve y mucho este tweak con el cual dejarán a su Gimp totalmente sabor Photoshop.

Este tuneo fue realizado por Martin Owens y es muy fácil de usar, simplemente realizamos un par de cambios rápidos y ya tendremos nuestro Gimp muy parecido a esto (directamente desde mi Xubuntu con GIMP 2.9)

La verdad sorprendente el cambio, todos los íconos y los paneles, hermoso incluso para mi que no uso ni usé nunca Photoshop.-

Vamos a Instalarlo en GIMP 2.8:

1) Descargamos el zip con el contenido desde DevianArt

2) Hacemos un respaldo de la configuración actual:
Se puede usar nuestro gestor de archivos (RECORDAR QUE LOS DIRECTORIOS ESTÁN OCULTOS) o bien desde la terminal con: (reemplazar USER por el usuario de esa PC)

mv /home/USER/.gimp-2.8 /home/USER/.gimp-2.8-backup

3) Descomprimimos el contenido del Zip dentro de nuestro /home, veremos que nos crea una nueva carpeta llamada .gimp-2.8 y con eso estaría completo.

Vamos a instalarlo en GIMP 2.9:

1) Descargamos el zip con el contenido desde DevianArt

2) Hacemos un respaldo de la configuración actual:
Se puede usar nuestro gestor de archivos (RECORDAR QUE LOS DIRECTORIOS ESTÁN OCULTOS) o bien desde la terminal con: (reemplazar USER por el usuario de esa PC)

mv /home/USER/.config/GIMP/2.9 /home/USER/.config/GIMP/2.9.backup

3) Descomprimimos el contenido del Zip dentro de /home/.config/GIMP/, nos creará un directorio llamado .gimp-2.8 que deberemos renombrar luego a 2.9 con eso ya estaría.

Deshacer los cambios:

GIMP 2.8 (reemplazar USER por el usuario de esa PC)

rm -r /home/USER/.gimp-2.8
mv /home/USER/.gimp-2.8-backup /home/USER/.gimp-2.8

GIMP 2.9 (reemplazar USER por el usuario de esa PC)

rm -r /home/USER/.config/GIMP/2.9
mv /home/USER/.config/GIMP/2.9-backup /home/USER/.config/GIMP/2.9

Fuente

by Mauro at September 06, 2019 12:20 PM

September 05, 2019

soyadmin.com

Solución al error «The root filesystem on /dev/sda1 needs a manual fsck» «initramfs» al iniciar Ubuntu y Linux Mint

Luego de una actualización de Ubuntu mi PC empezó a dar un error que no permitía iniciar el sistema.

El error indicaba:

"The root filesystem on /dev/sda1 needs a manual fsck"

(initramfs)

Este tipo de errores se da cuando queda corrupto un archivo de sistema, el cual probablemente fue modificado por la actualización previa. (Valla uno a saber)

SOLUCIÓN:

Para solucionar este problema booteamos nuestro equipo con un Live CD o Live USB, abrimos una terminal y realizamos un chequeo de la partición informada en el error con fsck

# sudo fsck /dev/sda1

Este proceso puede demorar un tiempo en finalizar, cuando termine podremos ingresar sin problemas a nuestra PC.

by Mauro at September 05, 2019 01:41 PM

Sobre bits

Parar VMs con PowerCLI de forma masiva y programada

Con PowerCLI se pueden hacer multitud de cosas contra una infraestructura vSphere. Yo partifcularmente disfruto especialmente con las que me ayudan a lograr que la infraestructura se mantenga controlada a lo largo de los meses puesto que, como he dicho muchas veces por aquí, conseguirlo se vuelve cada vez más difícil según vas sumando manos que la administren u operen con ella. En anteriores entradas hemos visto, por ejemplo, cómo controlar las VMs sin VMware Tools o con snapshots antiguos, y en la entrada de hoy veremos cómo parar VMs con PowerCLI que se supone que no deberían estar corriendo de forma perpetua.

Parar VMs con PowerCLI

¿Por qué parar VMs con PowerCLI?

Existen varios motivos por los que querríamos automatizar la parada de VMs con PowerCLI:

  • Asegurarnos de que VMs no productivas no consuman los recursos de las que sí lo son.
  • Parar VMs que no se utilizan durante todas las franjas horarias.
  • Controlar el gasto de nuestra infraestructura de pago por uso generado por nuestras máquinas de test.

En nuestro caso fue la última de las opciones la que nos hizo implementar esta medida, puesto que tenemos una carpeta de vSphere de test donde muy frecuentemente las máquinas quedaban encendidas después de su último uso durante semanas o meses, incurriendo en costes de licenciamiento en nuestra infraestructura absolutamente innecesarios.

Cmdlets implicados

Realizar esta automatización nos llevará muy pocas líneas de código. Para parar las máquinas virtuales nos valdremos de dos cmdlets de PowerCLI:

  • Shutdown-VMGuest: Para parar máquinas virtuales con VMware Tools «de forma amigable».
  • Stop-VM: Para parar máquinas virtuales sin VMware Tools, en este caso de forma un poco más «agresiva».

Manos a la obra

Ya podemos empezar a construir el script. Primero definiremos un área de configuración:

#### Configuración ####
# Conexión a vCenter
$VcenterIp = "192.168.168.168"
$VcenterCreds = Import-Clixml -Path "$PSScriptRoot\Credenciales\VMware.xml"
# Carpetas con VMs de pruebas
$VmFolders = 'Test','Pruebas'

Nada que no hayamos hecho varias veces en entradas del blog, pero vamos a repasarlo:

  • Líneas 3-4: Definimos los parámetros de conexión a vCenter, IP del servidor y las credenciales tal como vimos en entradas anteriores.
  • 6: Definimos las distintas carpetas de vSphere que querremos parar.

Y ahora podemos pasar a la acción:

#### Cuerpo ####
# Conectamos al vCenter
Connect-VIServer -Server $VcenterIp -Credential $VcenterCreds -WarningAction SilentlyContinue | Out-Null

# Recorremos las carpetas
ForEach ($VmFolder in $VmFolders) {
    # Obtenemos las VMs encendidas
    $VMs = Get-Folder $VmFolder | Get-VM | Where-Object PowerState -eq 'PoweredOn'
    # Recorremos las VMs
    ForEach ($VM in $VMs) {
        # Obtenemos el estado de las tools
        $VmTools = $VM.ExtensionData.config.tools.toolsVersion

        # Apagamos forzosamente si no hay tools o amigablemente si sí que hay
        If ($VmTools -eq 0) {
            $VM | Stop-VM -Confirm:$false
        }
        Else {
            $VM | Shutdown-VMGuest -Confirm:$false
        }
    }
}

# Desconectamos del vCenter
Disconnect-VIServer -Confirm:$false

Aquí ya tenemos algo más que explicar:

  • Línea 3: Conectamos a la infraestructura vSphere con los datos de la sección de configuración.
  • 6-22: Recorremos las carpetas de VMs definidas en la sección de configuración.
    • 8: Obtenemos todas las VMs encendidas de la carpeta.
    • 10-20: Recorremos las VMs una a una.
  • 25: Desconectamos de la infraestructura.

Como siempre, programaremos la ejecución del script de PowerShell como habitualmente y lo ajustaremos a la periodicidad con la que queremos que se apaguen las VMs, en el caso de las VMs de test nosotros las apagamos cada noche.

Conclusión

A partir del script que os propongo podéis realizar las modificaciones que a vosotros os vengan bien, apagando VMs concretas y no carpetas, apagando todas las VMs de un servidor… Como siempre el límite es nuestra imaginación.

Espero que el script os sea de ayuda. ¡Hasta la próxima!

La entrada Parar VMs con PowerCLI de forma masiva y programada aparece primero en Sobrebits.

by Marc Meseguer at September 05, 2019 01:04 PM

September 03, 2019

soyadmin.com

Solución a: Ubuntu actualiza extremadamente lento (mirrors)

Luego de instalar Ubuntu 19 noté que la actualización del sistema era extremadamente lenta, a tal punto que no descargaba ni 10kb/s era eterna, demorando horas/días en finalizar.

En este caso la solución fue cambiar los mirrors, en mi caso el mirror de mi país no era el más veloz. Esto sirve para Ubuntu y todas sus derivadas

1) Vamos a «Actualización de Software» y damos a «Configuración»

2) Elegimos «Software de Ubuntu» y debemos cambiar el Mirror de descarga en «Descargar desde» en mi caso el servidor de Argentina no era el más rápido (vaya uno a saber porque)

Hacemos click en el desplegable y luego en «Otros«

3) En este caso haremos un escaneo de los mirrors para dejar que el sistema detecte y elija el mirror que mejor responde, hacemos click en «Seleccionar el mejor servidor»

4) Hará un escaneo y buscará los mejores servidores de descarga.

5) Veremos que detecta y marca el mejor servidor, una vez que lo marca damos a «Elegir servidor»

6) Nos pedirá autenticación y por último cuando damos a cerrar nos pedirá que demos a «Recargar» para actualizar la información.

Este último paso suele demorar varios minutos.

Ahora si, la actualización descargará a valores más aceptables.

by Mauro at September 03, 2019 11:07 PM

September 02, 2019

soyadmin.com

Como abrir 2 cuentas de Skype en Linux

En este post enserñaremos a abrir 2 cuentas de skype en la misma PC, utlizando skypeforlinux.

El procedimiento es sencillo, abrimos una terminal y colocamos:

# skypeforlinux --secondary --datapath=/home/user/.Skype/profile2/

De esa manera se abrirá pararelamente una nueva ventana de Skype pidiendo datos.

by Mauro at September 02, 2019 08:03 PM

August 30, 2019

RooTeando

Tomando Un Café 64: Mis canales de Telegram,documentación en Linux, Sampler y mi última compra

En este audio hablaré sobre la nueva periodicidad para dos de mis canales Un Día Una Aplicación y Un Python Al Dia, una herramienta que monitoriza comandos de Shell llamado Sampler, también hablo sobre mi última compra unos auriculares bluetooth redmi airdots . Por último hablaré sobre la documentación en Linux ¿Es buena o mala? 


Recomendación veraniega.

Podcast sobre Filosofía: La filosofía no sirve para nada
Feed https://www.ivoox.com/podcast-filosofia-no-sirve-para-nada_fg_f1703682_filtro_1.xml

Canal de ...

August 30, 2019 03:00 PM

soyadmin.com

Solución a: Teamviewer «No está listo. Compruebe su conexión» en Linux

Reinstale mi PC y luego de instalar Teamviewer me percaté que nunca conectaba, chequeando internet estaba todo ok pero teamviewer como que no recibía Internet…

El error era este:

Empecé a chequear lo básico, que el firewall no estuviera bloqueando, etc y descubrí que no era un tema de internet o bloqueos, sino que el Demonio de Teamviewer no estaba funcionando o activo.

¿Cómo se soluciona?

Para solucionarlo es necesario reiniciar/activar el demonio de teamviewer.

Debian / Ubuntu / Mint derivadas

# sudo teamviewer daemon stop
# sudo teamviewer daemon start

Arch, Manjaro y derivadas…

# systemctl enable teamviewerd
# systemctl start teamviewerd

En cualquier distro lo mejor es reiniciar luego de tirar los comandos y teamviewer puede demorar 1 minuto aproximadamente en conectar la primera vez.

by Mauro at August 30, 2019 12:32 PM

August 29, 2019

www.rootzilopochtli.com

Markdownéalo

Desde hace mucho tiempo he visto en github y gitlab archivos con la extensión “.md” y creí que era un documento exclusivamente orientado para desarrolladores…hace un par de semanas…markdown se convirtió en la herramienta más importante de mi trabajo.

Markdown o md ha facilitado mi vida debido a que si añado algunos símbolos en mis notas, con la ayuda de una extensión de mi navegador un programa OpenSource (como pandoc) puedo “transformarlo” en una gama bastante amplia de formatos como pdf o mails.

Solo como un pequeño recordatorio, tal como Wikipedia nos lo menciona, Markdown es un lenguaje de marcado ligero con sintaxis de texto plano. Lo que realmente significa es que con el uso de algunos símbolos puedes crear un documento con varios formatos más amigables.

Confía en mi, una vez que aprendes a usar Markdown, cualquier actividad para tomar notas se convertirá, en alguna forma, más fácil y mejor que antes…

¿Cómo funciona?

De hecho puedes aprender las siguientes 8 reglas o tomar un pequeño curso en Tutorial Markdown

  1. Crea un archivo con la extensión “md”: “ejemplo.md”, puedes usar cualquier editor de texto (inclusive Microsoft Word, pero recuerda guardarlo como un archivo md)

2. Escribe lo que sea que quieras escribir como usualmente lo haces:

3. Añade al título un “# ” antes del texto # Este es un título, los subtítulos tienen ## Subtítulo, y un tercer subtítulo ### Tercer Subtítulo y así sucesivamente (nótese que hay un espacio entre los númerales “#” y antes de la primera palabra)

4. Si quieres poner un texto en bold solo pon el texto entre dos asteríscos **Esto es bold**

5. Para ítalica escribe _quiero ver esto en itálica_

6. Para insertar un link como este Markdown Tutorial solo escribe [Markdown Tutorial](https://www.markdowntutorial.com/)

7. Las citas textuales son escritas con “> ” antes del texto que quieres compartir. (Aquí hay otro espacio entre el signo de Mayor-que)

8. Ahora estás listo para escribir en Markdown, pero me temo que hay muchas más funciones que encontrarás conforme utilizas MD, si tienes 15 minutos puedes invertirlos en este tutorial de Markdown

¿Ahora qué sigue? ¿Cuál es el punto de aprender esto?

De hecho, con estas reglas simples ahora puedes escribir lo que quieras y transformarlo en casi cualquier formato que puedas utilizar. Te comparto un texto simple y cómo puedes utilizarlo en diferentes formatos, recueda que solo necesitamos escribir en .md una vez y, después…¡a conquistar el mundo!

  1. Tomar notas simples con Turtl

2. PDF

3. Mail

by Xico Islas at August 29, 2019 05:24 PM

August 26, 2019

soyadmin.com

Solución a: FTP «ECONNREFUSED – Connection refused by server» y «[ERROR] Unable to start a standalone server: [Address already in use]» con cPanel (centOS, RHEL)

Los FTP de uno de los servidores empezaron a fallar, buscando conexión el error que devolvía el filezilla era este:

Estado:    Falló intento de conexión con "ECONNREFUSED - Connection refused by server".

Al tratarse de algo masivo lo primero que trate de buscar es un posible bloqueo por parte del firewall o las IPTABLES del puerto 21 (responsable del FTP). Descartando esto ya vi que el problema me haría renegar, y así fue.

Me voy al Log y veia esto:

# grep pure-ftpd /var/log/messages

Jan 27 19:44:38 servername pure-ftpd: ([email protected]?) [ERROR] Unable to start a standalone server: [Address already in use]

Y ahi empezó la odisea, para salir del paso lo primero que hice fue pasar del pure-ftp al pro-ftp y así reestablecer el servicio a los clientes, esto lo haces desde el WHM en Home » Service Configuration » FTP Server Selection, esto mientras buscaba información y leia logs para ver que habia pasado con mi FTP muerto.

Cuando intentaba reiniciar el servicio mediante WHM este me daba estos errores:

Waiting for “ftpserver” to restart …………………………………………………………………………waiting for “ftpserver” to initialize ………finished.

Service Status:
pure-ftpd (/usr/sbin/pure-ftpd -O clf:/var/log/xferlog --daemonize -A -c50 -B -C8 -D -E -fftp -H -I15 -lextauth:/var/run/ftpd.sock -L10000:8 -m4 -s -S21 -U133:022 -u100 -i -Oxferlog:/usr/local/apache/domlogs/ftpxferlog -o -k99 -Z -Y1 -JHIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3) running as root with PID 645701 (process table check method)
pure-authd (/usr/sbin/pure-authd -s /var/run/ftpd.sock -r /usr/local/cpanel/bin/pureauth) running as root with PID 645706 (pidfile check method)

The service “ftpserver” failed to send the expected response to host “127.0.0.1” and port “21” because an error: Timed out while trying to connect.

Startup Log:
Starting pure-config.pl: Running: /usr/sbin/pure-ftpd -O clf:/var/log/xferlog --daemonize -A -c50 -B -C8 -D -E -fftp -H -I15 -lextauth:/var/run/ftpd.sock -L10000:8 -m4 -s -S21 -U133:022 -u100 -i -Oxferlog:/usr/local/apache/domlogs/ftpxferlog -o -k99 -Z -Y1 -JHIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
[  OK  ]
Starting pure-authd:

Log Messages:
Jan 27 22:28:14 soyadmin proftpd[604688]: xxxxxxxx
Jan 27 22:27:51 soyadmin proftpd[604425]: xxxxxxxxxx
Jan 27 22:27:06 soyadmin proftpd[602374]: xxxxxxxxxxx
Jan 27 22:26:32 soyadmin proftpd[602316]: xxxxxxxxxxxxxxxxx
Jan 27 19:25:40 soyadmin proftpd[600550]: xxxxxxxx

ftpserver has failed. Please contact your system administrator if the service does not automagically recover

Finalmente encontré la solución luego de probar mil configuraciones y posibles parches.

Solución:

En la configuración del pure-ftp editamos:

# vi /etc/pure-ftpd.conf
Comentamos la linea
# CallUploadScript yes

Volvemos a colocar el pure-ftpd como motor FTP dentro del cPanel, en Home » Service Configuration » FTP Server Selection y ya veremos que con esa simple modificación queda todo listo y funcionando.

by Mauro at August 26, 2019 02:00 PM

August 23, 2019

soyadmin.com

Exim: Los comandos más útiles para gestión y control

Exim es uno de los servidores de correo más utlizados en la actualidad, su performance y seguridad lo hacen el más elegidos de la actualidad.

En este post te enseñaremos varios comandos para poder resolver problemas o detectar spam y gestionar nuestro servidor de correo, un recuento muy util que cualquier sysadmin debería tener.

Verificar la cantidad de correos en cola de un dominio

# exim -bp | grep 'dominio.com'

Ver la cantidad de correos en cola

# exim -bpc

Listar el número de correos en estado «Frozen»

# exim -bpr | grep frozen | wc -l

Eliminar los correos en estado «Frozen»

# exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm

Eliminar un correo sin enviar un correo de error al remitente

# exim -Mrm ID

Eliminar un correo enviando un correo de error al remitente

# exim -Mg ID

Forzar el envío de un correo en concreto

# exim -M ID

Escanear el log de exim y listar la cantidad de correos enviados por cada cuenta de email del servidor

# cat /var/log/exim_mainlog | grep "A\=dovecot_login" | awk -F"A=dovecot_login:" {'print $2'} | cut -f1 -d' ' | sort | uniq -c | sort -n | awk {'print $1, " correos enviados por " , $2'}

Escanear el log de exim y listar la cantidad de correos enviados por un dominio

# grep dominio.com /var/log/exim_mainlog | grep dovecot_login | awk -F"dovecot_login:" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n

Detectar correos enviados por phpmail

# find ./ -name \*.php -exec grep -l "mail(" {} \;

Ver la cabecera de un correo

# exim -Mvh ID

Eliminar los todos los correos que hay en cola

# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

Eliminar correos de una dirección de correo que están en cola

# for i in $(exim -bp|grep [email protected]|grep -|grep @|awk {'print $3'});do exim -Mrm $i;done

Ver el cuerpo de un correo

# exim -Mvb ID

Ver el log de un correo

# exim -Mvl ID

Forzar el envio de la cola de correo

# exim -qf

Cuántos correos hay en la cola, listado por cuenta de correo

# exim -bp|awk 'NF>1{print $4}' | sort | uniq -c |sort -nk1

Cuántos correos hay en la cola, listado por dominio

# exim -bp | /usr/sbin/exiqsumm

Explorar el log de exim buscando cuentas atacadas por fuerza bruta

# awk -F"ffff:" '/FAILED/ {IP[$NF]++;}END{ for ( host in IP ) print IP[host]" "host}' /var/log/maillog | awk '{ if ( $1 > 99 ) print $0}' | sort -nk1 | sed 's#]##' > IPS; for IP in `awk '{print $2}' IPS`; do echo -n $(grep $IP IPS); echo -n " - Failed users: "; grep $IP /var/log/maillog | awk -F"user=" '/FAILED/ {print $2}' | cut -d, -f1 | sort | uniq | wc -l; done

Ver la cantidad de conexiones IMAP por usuario

# ps -ef |grep imap | awk '{print $1}' | sort | uniq -c | sort -g -k 1 | tail

by Mauro at August 23, 2019 03:05 PM

August 21, 2019

soyadmin.com

Como recibir un email cada vez que el usuario Root loguea a nuestro server

Hace unos días enseñábamos a controlar los accesos erroneos al usuario Root, y así poder identificar que IP’s están atacando al ssh.

Hoy explicaremos, para ustedes que quieren aun más seguridad en sus servidores, como hacer que el server nos envíe un email cada vez que el usuario root logra una conexión exitosa al SSH Shell de nuestros servidores.

1) Lo que deberemos hacer es editar el archivo .bash_profile

# vi /root/.bash_profile

2) Normalmente el archivo .bash_profile, se encuentra protegido para edición, tal como comentábamos aqui, es sencillo desproteger el acceso para permitirnos la edición del mismo:

# chattr -i /root/.bash_profile

3) Agregamos al final del archivo esta línea:

echo ‘OJO Alguien se ha conectado Mediante Root el :’ `date` `who` | mail -s “Ojo acceso Root” [email protected]

Donde:
«Date» nos mostrará fecha y hora del acceso
«Who», entre muchas cosas nos indicará el IP del que ha logrado acceder.
«mail -s» enviará un correo con el asunto y la dirección de email ingresada

En resumen, los pasos son los siguientes:

# chattr -i /root/.bash_profile
# vi /root/.bash_profile
echo ‘OJO Alguien se ha conectado Mediante Root el :’ `date` `who` | mail -s “Ojo acceso Root” [email protected]
# chattr +i /root/.bash_profile

by Mauro at August 21, 2019 09:28 PM

August 20, 2019

Tuxjm el sitio de jmedina

Bootstrap mega menu on hover

Bootstrap mega menu on hover ” is the keyword for which many people search when creating a mega menu. It is simply understood that the menu is created with bootstrap and its submenu items appear on hover instead of click effect. Usually, click effect is just applied on mobile because there is no way to hover on mobile devices. Conversely, hover effect is popularly applied on desktop since it reduces user operations.

Bootstrap mega menu on hover

If you are interested in our previous article “ bootstrap mega menu full width ”, the example in this article will be similar to the previous one. You are able to create the hover effect by using css or js. Regarding CSS, you can use this syntax :hover, for instance,

<li class=”menu”><a href=”#”>Menu</a><ul class=”sub-menu”><li><a href=””>Sub menu</a></li></ul></li>

If the submenu is hidden by default and appears on hover, you can use the following css: Menu:hover .sub-menu {display:block}

Besides using css, you can also use js by detecting mouse hover events. Here we have two more methods to deal with the submenu appearance. The first way is when hovering on a menu item, a class will be added and when hovering over the menu item, this class will be removed. In addition, CSS is in use as well to show and hide submenus.

$(“menu”).hover(function(){
$(this).addClass(“active”);
}, function(){
$(this).removeClass(“active”);
});

.menu .sub-menu {display:none}

.menu.active  .sub-menu {display:block}

The second technique is when hovering on a menu item, some attributes of js such as .show() will be applied.

For example,

$(“menu”).hover(function(){
$(“ sub-menu”).show();
}, function(){
$(“ sub-menu”).hide();
});

Now, we will come back to our primary task related to creating a “ bootstrap mega menu on hover ”. An integral tool in this article, as well as the previous one, is a bootstrap plugin.You can download this plugin here. We will not spend more time on integrating this plugin because there are various articles as well as detailed guidance on this taskon its homepage. In this article, we will introduce to you about how to use attributes ofcss and js so you will have options applied to different cases. You can download the file we share below. The whole code snippet is put in index.html file, please open this file and check.

đây là một đoạn code đơn giản, bạn có thể copy  cho vào dự án của bạn

This is just a simple code snippet, you can copy and paste in your project.

<!DOCTYPE html>
<html>
<head>
<link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css”>
<style>
* {
box-sizing: border-box;
}

body {
margin: 0;
}

.navbar {
overflow: hidden;
background-color: #333;
font-family: Arial, Helvetica, sans-serif;
}

.navbar a {
float: left;
font-size: 16px;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

.dropdown {
float: left;
overflow: hidden;
}

.dropdown .dropbtn {
font-size: 16px;
border: none;
outline: none;
color: white;
padding: 14px 16px;
background-color: inherit;
font: inherit;
margin: 0;
}

.navbar a:hover, .dropdown:hover .dropbtn {
background-color: red;
}

.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
width: 100%;
left: 0;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}

.dropdown-content .header {
background: red;
padding: 16px;
color: white;
}

.dropdown:hover .dropdown-content {
display: block;
}

/* Create three equal columns that floats next to each other */
.column {
float: left;
width: 33.33%;
padding: 10px;
background-color: #ccc;
height: 250px;
}

.column a {
float: none;
color: black;
padding: 16px;
text-decoration: none;
display: block;
text-align: left;
}

.column a:hover {
background-color: #ddd;
}

/* Clear floats after the columns */
.row:after {
content: “”;
display: table;
clear: both;
}

/* Responsive layout – makes the three columns stack on top of each other instead of next to each other */
@media screen and (max-width: 600px) {
.column {
width: 100%;
height: auto;
}
}
</style>
</head>
<body>

<div class=”navbar”>
<a href=”#home”>Home</a>
<a href=”#news”>News</a>
<div class=”dropdown”>
<button class=”dropbtn”>Dropdown
<i class=”fa fa-caret-down”></i>
</button>
<div class=”dropdown-content”>
<div class=”header”>
<h2>Mega Menu</h2>
</div>
<div class=”row”>
<div class=”column”>
<h3>Category 1</h3>
<a href=”#”>Link 1</a>
<a href=”#”>Link 2</a>
<a href=”#”>Link 3</a>
</div>
<div class=”column”>
<h3>Category 2</h3>
<a href=”#”>Link 1</a>
<a href=”#”>Link 2</a>
<a href=”#”>Link 3</a>
</div>
<div class=”column”>
<h3>Category 3</h3>
<a href=”#”>Link 1</a>
<a href=”#”>Link 2</a>
<a href=”#”>Link 3</a>
</div>
</div>
</div>
</div>
</div>

<div style=”padding:16px”>
<h3>Responsive Mega Menu (Full-width dropdown in navbar)</h3>
<p>Hover over the “Dropdown” link to see the mega menu.</p>
<p>Resize the browser window to see the responsive effect.</p>
</div>

</body>
</html>

This code can be used for your projects but not your customers who have no experience in html. For these clients, you should create a plugin that allows them to configure such as editing images, text content, etc. If you are using Prestashop source code, I suggest that you should use PrestaShop Mega Menu module. When using this module, you can create different menu types such as dropdown, html, image, or products. There is no problem if you are not skillful in code. The only thing you need to do is combining your creativity and the plugin’s configurations to build up your own menu. If you encounter any problem when using the module, the support team is always willing to help you using the plugin in the most satisfying way.

 

 

 

The post Bootstrap mega menu on hover appeared first on Tuxjm el sitio de jmedina.

by admin_tuxjm at August 20, 2019 09:43 AM

August 19, 2019

RooTeando

Tomando Un Café 63: Errores en cursos

Volvemos del modo vacaciones con un audio sobre errores cometidos y vistos en cursos, he elaborado la siguiente  lista de diez  errores.

1  Cambio de Chip, un formador es un formador y tiene unas cualidades y caracteristicas.
2- Perfil y requisitos de los alumnos.
3- Centrarse en el alumno.
4- No dar suficiente información al alumno.
5- Poca preparación.
6- Improvisación.
7- Cada formato para su contenido.
8- Comunicación con el formador.
9- Falta de ...

August 19, 2019 05:30 PM

August 16, 2019

soyadmin.com

Activar o Desactivar SELinux en CentOS y RHEL

Hace unos días explicábamos de que se trata SELinux, hoy la idea es verificar nuestros servidores para buscar si SELinux está o no activo y en caso de necesitarlo activar/desactivarlo.

Hay algunos Sysadmins que tienen sus propios sistemas de seguridad y prefieren que SELinux esté desactivado, o en sistemas especiales es necesario que esté off para que haya una compatibilidad.

Lo primero es ver en que estado se encuentra SELinux

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 23
Policy from config file:        targeted

Para activar o desactivarlo solo basta en «tocar» la configuración de SELinux

# vi /etc/selinux/config
SELINUX=disable o enable (según lo necesitemos)

También es posible cambiar el estado de SELinux temporalmente a «enforcing» o «permissive» utilizando el comando «setenforce»
Enforcing: Es el modo activo, si algo sucede en el sistema que viola una de las reglas o políticas de SELinux, la bloqueará y registrará en los logs.
Permissive: Este modo no bloqueará ni negará nada, por mas que haya violaciones a SELinux lo único que hará es registrarlo en los logs, permitiendo todo.

Para poner a SELinux en estado «permissive» (mostrar advertencias en lugar de aplicar políticas):

# setenforce 0

Para poner a SELinux en estado «enforcing» (aplicar políticas):

# setenforce 1

Esto es ideal para realizar pruebas, poner a SELinux temporalmente activado o desactivado. Es temporal porque si reiniciamos nuestro sistema SELinux volverá a la configuración que poseíamos antes de usar e modo «enforcing» o «permissive«.

by Mauro at August 16, 2019 03:14 PM

August 12, 2019

soyadmin.com

Solución a: “/dev/null is not a character device” al reiniciar SSH

Este error resultó ser muy común en varios servidores, con la gravedad de que deja de estar operativo el servicio SSH, el archivo /dev/null cambia y pasa a ser un archivo de caracteres incorrectos y Linux no puede interpretarlo.

Error:

# /etc/init.d/sshd restart
Restarting Secure Shell server: sshd failed!
/dev/null is not a character device!.

Solución:

Eliminamos el archivo /dev/null
# rm -f /dev/null
Volvemos a crearlo
# mknod /dev/null c 1 3

Finalmente reiniciamos el servicio de SSH y guala! arreglado el problemita.

# /etc/init.d/sshd restart
Stopping sshd:              [  OK  ]
Starting sshd:              [  OK  ]

by Mauro at August 12, 2019 12:39 PM

August 09, 2019

soyadmin.com

ATAQUES A APLICACIONES WEB de UOC

Título: ATAQUE A APLICACIONES WEB
Autor:
UOC (Universidad Abierta de Catalunia)
Páginas: 74 Páginas
Tamaño: 2.4 MB
Fomato: PDF

Contenido:

En este manual de seguridad informática publicado por la UOC dentro de su línea de cursos homónima encontramos los diversos aspectos a tener en cuenta en el ámbito de las aplicaciones web.

Algunos de los epígrafes aquí tratados son los siguientes:

Ataques de inyección de scripts
Ataques de inyección de código
Ataques de Path Tansversal
Ataques de inyección de ficheros
Google Hacking
Seguridad por ocultación

FUENTE: Openlibra

by Mauro at August 09, 2019 12:52 PM

August 06, 2019

soyadmin.com

Los mejores Docks para Linux

Un dock es un complemento para nuestro escritorio, también podría ser una barra de herramientas donde se colocan los lanzadores de nuestros programas preferidos, favoritos o los que usamos con más frecuencia.

Los docks fueron «tomados» de Mac y se hicieron muy populares en las distribuciones Linux, ya que brindan animaciones, sombras, transparencias y muchas opciones para mejorar la visual y poder iniciar nuestras aplicaciones frecuentes.

En este post te presentamos alguno de los mejores Docks disponibles para Linux.

Simdock

Simdock es un dock sencillo y muy fácil de instalar/usar. Es muy liviano y atractivo, pero de lo que carece Simdock es de la posibilidad de configurarlo.

Si lo que requieres es sencillez y facilidad, es para ti.

# sudo add-apt-repository ppa:onli/simdock
# sudo apt-get update
# sudo apt-get install simdock

Docky

Docky es uno de los mejores docks, muy atractivo y fácil de utilizar. Con muchas opciones de configuración. No solo puede colocar lanzadores de aplicaciones, sino que docky permite utilizar docklets para mostrar información de nuestro sistema, la hora, el clima, etc.

Docky viene en la mayoría de los repositorios Linux

# sudo apt-get install docky

Avant Window Navigator

Avant Window Navigator, es uno de los docks más atractivos y utilizados. Es extremadamente fácil de configurar y muy intuitivo. Permite agregar lanzadores del software que deseemos y también agregar útiles applets los cuales permitirán por ejemplo controlar el uso de CPU, la hora, etc.

Awn está disponible en casi todos los repositorios de las principales distribuciones Linux

# sudo apt-get install awn

Plank

Plank es uno de los docks más utilizados, muy fácil de configurar y con muchas opciones para facilitarnos el uso.

Es muy elegante y nos dará un atractivo a nuestro escritorio, Plank hace lo que promete, un excelente lanzador de aplicaciones con las opciones justas y al alcance de cualquier usuario.

# sudo apt install plank

DockBarX

DockBarX es un dock muy flexible y atractivo. Nos permite tener una barra de herramientas perfectamente funcional y con varias opciones de configuración

# sudo add-apt-repository ppa:xuzhen666/dockbarx
# sudo apt-get update
# sudo apt-get install dockbarx

Cairo Dock

Cairo es uno de los docks más avanzados, con una configuración extremadamente detallada y muuuchos applets para darle una funcionalidad extra a nuestro Dock

Ofrece la posiblidad de utilizar themes y sus efectos son impresionantes. Ofrece la posibilidad de modificar cada una de las características y agregar información mediante applets.

# sudo add-apt-repository ppa:cairo-dock-team/ppa
# sudo apt-get update
# sudo apt-get install cairo-dock cairo-dock-plug-ins

Usas dock en tu escritorio? cual? contanos linuxero!

by Mauro at August 06, 2019 09:25 PM

August 05, 2019

soyadmin.com

Como comprobar que cantidad de RAM tenemos en nuestro equipo? 4 maneras sencillas desde nuestra consola

Detallamos 4 Comandos para verificar la memoria RAM instalada en nuestra PC, simple desde nuestra consola.

1) Con vmstat obtenemos un resumen de nuestra ram, detalla la cantidad el uso y mucha más información

# vmstat -s
      8149780 K memoria total
      2804540 K memoria usada
      3315720 K memoria activa
      1860160 K memoria inactiva
      2641200 K memoria libre
       137952 K memoria de búfer
      2566088 K caché de intercambio
      4999164 K total de intercambio
            0 K intercambio usado
      4999164 K intercambio libre
       354930 tics de CPU de usuario no-«nice»
         1352 tics de CPU del usuario «nice»
       108402 tics de CPU del sistema
      4946231 tics de CPU de inactividad
         4129 tics de CPU de espera E/S
            0 tics de CPU de IRQ
        12378 tics de CPU de softirq
            0 tics de CPU robados
      1747322 páginas en entrada
      1934465 páginas en salida
            0 páginas intercambiadas
            0 páginas cambiadas
     16600528 interrupciones
     43502133 cambios de contexto de CPU
   1565032161 tiempo de arranque
        10249 bifurcaciones

2) TOP, con el comando TOP podemos también verificar la cantidad de RAM que posee nuestro equipo

# top

top - 18:07:23 up  1:58,  1 user,  load average: 0,19, 0,37, 0,54
Tareas: 251 total,   2 ejecutar,  181 hibernar,    0 detener,    0 zombie
%Cpu(s):  2,4 usuario,  1,2 sist,  0,0 adecuado, 96,3 inact,  0,0 en espera,  0,0 hardw int,  0,1 softw int,  0,0 robar tiempo
KiB Mem :  8149780 total,  2600096 libre,  2839576 usado,  2710108 búfer/caché
KiB Intercambio:  4999164 total,  4999164 libre,        0 usado.  5002212 dispon Mem

3) Verificando el archivo /proc/meminfo. Meminfo es un archivo de sistema que nos detalla toda la información de nuestra RAM

# cat /proc/meminfo |grep MemTotal
MemTotal:        8149780 kB

4) Con el comando free, el comando free también nos brinda información de nuestra RAM y SWAP.

# free -g
              total usado libre compartido búfer/caché disponible
Memoria:           7           2           2           0           2           4
Swap:             4           0           4

by Mauro at August 05, 2019 09:18 PM

Algoritmos y programación en Pascal

Título: Algoritmos y programación en Pascal
Páginas: 557 Páginas
Tamaño: 6.5 MB
Fomato: PDF

Contenido:

Este libro trata sobre métodos de resolución de problemas mediante el desarrollo de algoritmos y estructuras de datos, desde el principio y paso a paso, y su materialización en programas de computador.

Desde luego, no es el primer libro sobre este tema; de hecho, ha habido en los últimos quince años un gran aluvión de textos sobre algoritmos y sobre programación. La razón para ello ha sido sin lugar a dudas doble: por un lado, la difusión que estos temas han tenido y siguen teniendo, integrándose en los estudios más diversos; por otro, la evolución que está experimentando el desarrollo de algoritmos y programas, pasando de ser un arte (reinventado por cada programador a base de técnicas personales, estrechamente vinculadas con su lenguaje de programación) a una actividad más científica, metodológica y disciplinada.

Fuente: Openlibra

by Mauro at August 05, 2019 02:52 PM

Cambiando privilegios o permisos de un Usuario sobre una base de datos Mysql

Me encontré con un problemita en el que se me requería asignar/modificar permisos a un usuario ya creado en Mysql, esto mediante SSH. Existe una manera sencilla de hacerlo:

1) Conectamos al servidor de mysql

# mysql -uroot -p'CONTRASEÑA'

2) Listamos los usuarios

mysql> select user,password,host from mysql.user;

3) Verificamos que permisos tiene el usuario y luego Sigue limpiar los atributos o permisos que tiene dicho usuario

mysql> show grants for ‘usuario’@‘127.0.0.1’;
mysql> revoke all privileges on database.* from ‘usuario’@‘127.0.0.1’;

4) Asignamos los nuevos privilegios de usuario

mysql> grant SELECT,INSERT,UPDATE,DELETE ON ‘database’.* TO ‘usuario’@‘127.0.0.1’;

5) Finalizamos el proceso haciendo un flush para que tome los cambios

mysql> flush privileges;

by Mauro at August 05, 2019 01:16 PM

August 04, 2019

RooTeando

Entrevista En Diferido 15: David Ochobits

Hoy empezamos una nueva entrevista con David, administrador de sistemas y creador del blog https://www.ochobitshacenunbyte.com/

Antes de todo, gracias por participar y apoyar 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 podrías presentar en unas líneas?

 

David: Me llamo David y soy ante todo padre de familia antes que otra cosa. Luego vendría ...

August 04, 2019 10:28 PM