Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

11 de abril de 2015

Obtener número de serie en Windows

Para obtener el número de serie de una máquina desde Windows (en Linux suele ser sencillo usando el comando dmidecode y buscando la cadena "Serial Number"), podemos usar el comando msinfo32 para sacar una información completa del sistema o bien directamente en la línea de comandos con:
wmic bios get computername
Para obtener el modelo del servidor podemos usar
wmic csproduct get name
Si has llegado hasta aquí buscando la forma de obtener el número de serie de Windows, prueba con el comando
wmic os get serialnumber
No todos los PCs o servidores proporcionan esta información, ni todas las versiones de Windows, pero en muchos casos nos servirá.

Fuentes:
How to find computer serial number
Useful WMIC Queries
Get computer name using serial number of server remotely

Etiquetas: , ,

8 de abril de 2015

Buscar usuarios que puedan logarse en un sistema Linux

Un mini script para buscar usuarios que puedan logarse en el sistema y no sea root:
for usuario in `grep -v -e "nologin$\|false$" passwd|awk -F":" '{ print $1 }'`;
do
 grep -E "^${usuario}:[^*\!]:" /etc/shadow|grep -v -e '^root:'
done;

Se aceptan sugerencias y correcciones

Etiquetas: , ,

Algunos parámetros útiles en SSH

Para que ssh no pregunte si debe agregar al fichero .ssh/known_hosts la máquina a la que nos vamos a conectar por primera vez, cosa especialmente cansina si nos conectamos a decenas de máquinas, debemos usar el parámetro -o StrictHostKeyChecking=no El mensaje que muestra SSH al conectar por primera vez a un host suele ser de este tipo:
The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 
Usando el parámetro -o StrictHostKeyChecking=no al ejecutar SSH se evita la dichosa pregunta. Ejemplo:
ssh -o StrictHostKeyChecking=no usuario@servidor
Si nos conectamos a servidores que pueden estar apagados, no necesitaremos esperar el timeout por defecto reduciendo el tiempo con el parámetro -o ConnectTimeout=segundos
ssh -o ConnectTimeout=5 usuario@servidor

Etiquetas: , ,

7 de abril de 2015

Registro de traps SNMP en rsyslog en Debian 6

Una receta ultra simplificada de cómo registrar traps SNMP en rsyslog. Concretamente he usado Debian 6 pero no debe cambiar mucho en otras versiones. Primero debemos instalar el paquete snmpd en Debian, deshabilitar el demonio del servidor snmpd y habilitar el de snmptrapd modificando el fichero /etc/default/snmpd de esta forma:
SNMPDRUN=no
TRAPDRUN=yes
En el fichero /etc/snmp/snmptrapd.conf debemos configurar la comunidad de la que recibiremos los traps, por ejemplo: authCommunity log public Reiniciamos el servicio snmpd con service snmpd restart y debemos tener el proceso snmptrapd en ejecución y el puerto UDP 162 a la escucha. Para que rsyslog filtre el mensaje que snmptrapd generará en el log del sistema podemos poner una regla como la siguiente en /etc/rsyslog.conf:
if ($programname == 'snmptrapd') then /var/log/snmptrapd.log
& ~
La cadena "& ~" sirve para que al aplicarse la regla de filtrado del if el mensaje se guarde en el fichero indicado y no se apliquen más reglas que dupliquen el mensaje en otros ficheros de log.
Para probar a enviar traps y ver si funciona, he usado este código que he encontrado en The Linux Documentation Project:
use strict;
use vars qw($session $error $response);

use Net::SNMP;

($session, $error) = Net::SNMP->session(
   -hostname  => shift || '192.168.1.12',
   -community => shift || 'public',
   -port      => shift || 162 
);

if (!defined($session)) {
   printf("ERROR: %s.\n", $error);
   exit 1;
}

my $count = 0;

$response = 1;
while ( $response ) {
   $response = $session->trap();
   $count++;
   sleep 5;
   print "Sending trap ($count)\n";
}

$session->close();
exit 0;


Etiquetas: , , ,