Cuando hablamos de verificar la integridad de un archivo (huella digital del archivo), estamos hablando de verificar que los datos de una copia son exactamente iguales a los del archivo original. Esta verificación nos permite evitar problemas de corrupción de datos y asegurarnos que los datos han sido almacenados correctamente. Comprobar la integridad de un fichero consiste en averiguar si algún dato del archivo ha variado desde su creación. El archivo puede haber sido modificado por error, por cortes en la comunicación o, en el peor de los casos, porque un atacante haya inyectado código malicioso. Entonces SHA256 es una forma rápida de comprobar que efectivamente dos archivos son idénticos, lo que permite comprobar rápidamente si un archivo a sido manipulado o fue corrompido.
Para este ejemplo llamaremos al SCRIPT «integridad.sh» para ejecutarlo se debe indicar el servidor que servira como base para generar los HASH de archivos. Se invocara como : «bash integridad.sh servi000»
MUY IMPORTANTE : PARA PODER REALIZAR LA VERIFICACIÓN, DESDE EL SERVIDOR EN QUE SE EJECUTARA EL SCRIPT DEBE TENER RELACIÓN DE CONFIANZA CON LOS SERVIDORES A REVISAR. ESTO PARA EJECUTAR LOS COMANDOS VÍA SSH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#!/bin/bash # pivotte => corresponde al servidor que servira como base # para generar los HASH (firma de archivos) a verificar pivote=$1 # En este archivos se ingresaran todos los componentes # O archivos que se verificaran, la ruta debe ser completa replicas=/dat01/home/syg/replicas.txt # En este archivo "servidores.txt" se ingresan todos los # servidores que se verificaran integridad de archivos servidor=/dat01/home/syg/servidores.txt # Corresponde a los archivos con su respectivo HASH # Estos son obtenidos del servidor BASE (pivote) integrid=/dat01/home/syg/integridad.txt # En este archivo "informes.txt" quedara el resultado # De la revision, solo guarda las diferencias detectadas informes=/dat01/home/syg/informes.txt # Para comenzar el proceso se eliminan los archivos # "integridad.txt" y "informes.txt" rm -f $integrid $informes 1> /dev/null 2> /dev/null # Aqui se leen las lineas del archivos "replicas.txt" # El resultado se guarda en "integridad.txt" con su respectivo HASH for replicas in $(cat $replicas) do ssh $pivote md5sum $replicas >> $integrid done # Aqui se leen los servidores a chequear # Tambien se copia el archivo de integridad para su chequeo (ruta remota) # Se debe ingressar ruta completa del comando "md5sum" en el servidor remoto # Tambien la ruta completa donde esta el archivo de integridad en el servidor remoto for server in $(cat $servidor) do echo "<< $server >>" >> $informes scp /dat01/home/syg/integridad.txt $server:/home/syg ssh $server /usr/bin/md5sum --quiet -c /home/syg/integridad.txt >> $informes done |