Esta guía detalla los pasos para implementar SNMPv3 en un entorno CentOS 7.5, abarcando la configuración del agente SNMP (snmpd) y del demonio receptor de traps (snmptrapd).
El primer paso consiste en instalar el paquete principle y sus dependencias mediante el gestor de paquetes yum.
sudo yum install net-snmp snmpd snmptrapd
Para configurar el agente SNMPv3, se debe crear un usuario con autenticación y encriptación. Se utilizarán los algoritmos SHA para autenticación y AES para privacidad, con un nombre de usuario y contraseñas de ejemplo. El siguiente comando crea el usuario y modifica los archivos de configuración necesarios.
net-snmp-create-v3-user -a SHA -A miClaveAuth -x AES -X miClavePriv monitor
Tras ejecutar este comando, se agregan líneas a los archivos de configuración en /var/lib/net-snmp/snmpd.conf y /etc/snmp/snmpd.conf. A continuación, se inicia el servicio del agente SNMP.
sudo systemctl start snmpd
sudo systemctl enable snmpd
Para verificar el funcionamiento, se puede usar snmpwalk para consultar un OID específico, como el nombre del sistema. Se deben proporcionar los parámetros de versión, usuario, nivel de seguridad y claves de autenticación y privacidad.
snmpwalk -v 3 -u monitor -l authPriv -a SHA -A miClaveAuth -x AES -X miClavePriv 192.168.1.10 sysName.0
Una respuesta exitosa confirma que el agente SNMP está operativo. Los parámetros clave incluyen -v para la versión, -l para el nivel de seguridad (como authPriv), y los algoritmos y conrtaseñas correspondientes.
Para configurar el receptor de traps, primero se debe obtener el identificador de motor (engineID) del dispositivo que enviará traps. Esto se logra mediante una consulta SNMP al host remoto.
snmpwalk -v 3 -u monitor -l authPriv -a SHA -A miClaveAuth -x AES -X miClavePriv 192.168.1.20 snmpEngineID.0
El resultado proporciona el engineID en formato hexadecimal. Luego, se edita el archivo de configuración /etc/snmp/snmptrapd.conf para definir el usuario y las políticas de autorización.
createUser -e 0x80001f8880e08faf1f9cfb0c6100000000 monitor SHA "miClaveAuth" AES "miClavePriv"
authuser log,execute,net monitor
Se crea un archivo de registro para almacenar los traps recibidos y se inicia el demonio snmprtapd en modo depuración para visualizar los datos.
touch /var/log/snmptraps.log
snmptrapd -d -Lsd -On -f
Para probar, desde el host emisor (192.168.1.20), se envía un trap utilizando el usuario configurado y el engineID local.
snmptrap -v 3 -e 0x80001f8880e08faf1f9cfb0c6100000001 -u monitor -l authPriv -a SHA -A 'miClaveAuth' -x AES -X 'miClavePriv' 192.168.1.10 ''
El demonio snmptrapd mostrará los detalles del trap recibido en su salida estándar o en el archivo de registro, confirmando que la configuración es correcta.