martes, 31 de marzo de 2020

redireccionar todos los comandos de bash de los usuarios al log messages (syslog) ( centos7 y centos 6 y derivados)

Un problema bien común, es que aveces no encontramos los comandos que ejecuto algún usuario dentro del log messages o bien secure o audit de una forma rápida o sencilla y es complicado hacer el tracking con bash history

Para esto hay varias formas de resolverlo

En centos 7 tenermos el siguiente comando (variable) 
[root@localhost ~]# shopt -s syslog_history
 
 para deshabilitara podemos usar : use shopt -u syslog_history 

  • Para hacer el cambio persistente en todas las sesiones de bash es necesario agregar al final del archivo /etc/bashrc file: shopt -s syslog_history

Hay otro método para copiar todos los comandos ejecutados por los usuarios a  syslog.
La cual es utilizar "trap" como parte de la programación de bash, personalmente es mi metodo preferido

  • Hay que agregar las siguientes lineas ya sea en el bash profile; ~/.bash_profile y/o en /etc/profile para que sea de forma global, personalmente lo realice cree el archivo dentro en /etc/profile.d/user-activity.sh  a manera de script y se agregan las siguentes lineas:
PORT=`who am i | awk '{ print $5 }' | sed 's/(//g' | sed 's/)//g'`
logger -p local7.notice -t "bash $LOGNAME $$" User $LOGNAME logged from $PORT
function history_to_syslog
{
declare cmd
declare p_dir
declare LOG_NAME
cmd=$(history 1)
cmd=$(echo $cmd |awk '{print substr($0,length($1)+2)}')
p_dir=$(pwd)
LOG_NAME=$(echo $LOGNAME)
if [ "$cmd" != "$old_command" ]; then
logger -p local7.notice -- SESSION = $$, from_remote_host = $PORT,  USER = $LOG_NAME,  PWD = $p_dir, CMD = "${cmd}"
fi
old_command=$cmd
}
trap history_to_syslog DEBUG || EXIT
 
bien otra forma seria la siguiente donde cambia el orden de los eventos
 
function bash_syslog
{
   declare COMMAND
   declare HOSTNAME
   declare IP_ADDR
   COMMAND=\$(fc -ln -0)
   HOSTNAME=\$(hostname)
   IP_ADDR=\$(ip addr show | grep "inet " | grep -v 127.0.0. | head -1 | cut -d" " -f6 | cut -d/ -f1)

   logger -p local4.info -t bash_syslog -i -- "\$HOSTNAME:\$IP_ADDR:\${USER}:\${SUDO_USER}:\${COMMAND}"
}
trap bash_syslog DEBUG 
 
Nota: Esta solución  creara un nuevo proceso por cada comando que se ejecute por lo cual pudiera afectar ligeramente el perfomance del servidor, para salvar el log messages en un archivo de log particular , agregaremos la siguiente linea en  /etc/syslog.conf (para RHEL4/5) o /etc/rsyslog.conf (para RHEL6):

local7.notice                           /var/log/cmd.log
  • Esto tambien manda a log todos los comandos a /var/log/messages .
  • To para evitar que  los comandos se vayan a  /var/log/messages , agrega la siguiente linea a /etc/syslog.conf (para RHEL4/5) or /etc/rsyslog.conf (para RHEL6/7):
*.info;mail.none;authpriv.none;cron.none;local7.!notice                     /var/log/messages
  • esto evitara que los mensajes con prioridad notice o mas altar se vayan al log /var/log/messages .
# service syslog restart
  • Centos 6
# service rsyslog restart
 
articulo original y traducido de :
https://access.redhat.com/solutions/20707
license GPL  

lunes, 10 de febrero de 2020

Cómo reparar el sistema de archivos en modo de rescate para centos,linux o bien xfs y ext4

Hay varios metodos recientemente vi el link para recuperar el grub o los filesystems 
les dejo el link: https://www.supergrubdisk.org/

pero que pasa con los sistemas de archivos como XFS o EXT
Nota: Asegurate de tener una copia de seguridad 
de los datos presentes en el sistema de archivos, 
antes de realizar la reparación del sistema de archivos 
 
 Para ejecutar el sistema de reparación en EXT o XFS 

 1. Iniciar el sistema desde el DVD o el disco de inicio o bien en modo single user

○ Para RHEL6: seleccione Rescate del sistema instalado. Luego ir al paso 2.

Rescate el sistema instalado <--- Seleccione

○ Para RHEL7 y 8: seleccione Solución de problemas, 
luego Rescate un sistema Red Hat Enterprise Linux. 
Luego vaya al Paso 4. 
El siguiente ejemplo es para RHEL 7, pero también se aplica a RHEL8


Solución de problemas <--- Seleccionar

Rescatar un sistema Red Hat Enterprise Linux <--- Seleccionar

2. Cuando se solicite el idioma y el teclado, 
proporcione la información pertinente para el sistema.
3. Cuando se  solicite habilitar los dispositivos de red en el sistema,
  selecciona: No
4. Selecciona Omitir después.
5. Si utiliza RAID de software, hay que inicializar primero RAID.

#mdadm --assemble --scan
 
6. Si se usa LVM, hay que activar los volúmenes para escanearlos.

sh-3.1 # lvm vgchange -ay

7. Finalmente hay que ejecutar la verificación en el dispositivo 
que contiene el sistema de archivos.
(este es el paso que repara el sistema de archivos)
 
 ○ Para el sistema de archivos EXT

sh-3.1 # e2fsck -fv / dev / mapper / <vg> - <lv> o bien /dev/mapper/rhel-home
por poner un ejemplo o
sh-3.1 # e2fsck -fv / dev / <dispositivo SD> --- AQUI IRIA EL DEVICE COMO SDA1
 
 ○ y es casi el mismo caso para el sistema de archivos XFS

sh-4.2 # xfs_repair / dev / mapper / <vg> - <lv> /dev/mapper/rhel-home
o
sh-4.2 # xfs_repair / dev / <dispositivo SD>


Nota: puede ser que se tenga que volver a crear el registro si xfs_repair
 no se ejecuta. Esto se puede hacer ejecutando xfs_repair -L.

8. salimos del modo rescate con exit y reiniciamos de forma normal



cambiar la zona horaria en red hat 8 / centos 8

Saludos
es muy sencillo cambiar la zona horaria y ver la configuracion y sincronizacion
el comando aplica para red hat 7 y red hat 8 y sus derivados y algunas otras distros linux
para saber el estatus actual utilizaremos el comando timedatectl

y para encontrar nuestra zona horaria tzselect,
el primer comando nos va a mostrar la configuración actual y en el segundo nos llevara por una serie de opciones encontrar nuestra zona horaria, en mi caso México
seria opcion 2 --> opcion 32 y luego opcion 1 para la zona centro 


al final nos va arrojar  America/Mexico_City



Ahora bien ya que tenemos nuestra zona seleccionada debemos cambiarla en el sistema utilizando
timedatectl set-timezone America/Mexico_City







Si tenemos servicio de NTP o chorny activo también se vera reflejado para efectos de la sincronizacion via NTP