Bash: encuentra todas las direcciones IP que se han utilizado para un intento de acceso no autorizado

Bash: encuentra todas las direcciones IP que se han utilizado para un intento de acceso no autorizado

Estoy trabajando en mi máquina virtual en bash. Se me pide que encuentre todas las direcciones IP que se han utilizado para intentar acceder a la máquina sin autorización, utilizando el archivo auth.log. Parece que no encuentro ninguna respuesta a mi problema. Aquí hay un ejemplo :ingrese la descripción de la imagen aquí

todas las líneas devueltas deben escribirse en mi archivo compartido /mnt/analyse/traitement/cueillette.txt. Por favor ayuda ! Gracias

Respuesta1

No es necesario conectar grep a grep (eso es casi siempre una señal de que está adoptando un enfoque ineficiente y equivocado. sedSolo es suficiente para esta tarea. o awk. o perl), y eso sudo su root cates simplemente una tontería.

Prueba esto:

$ sudo sed -n -E -e '/sshd.*authentication failure/{s/^.*rhost=([0-9.]+).*/\1/p}' \ 
    /media/sf_partageAuth/auth.log > /mnt/analyse/traitement/cueillette.txt 

Por cada línea que coincida con "fallo de autenticación" (nota,no"auténticoficatión"), este sedscript elimina todo desde el principio de la línea hasta (incluido) rhost=, y todo lo que sigue a la dirección IP, luego imprime la línea.

Utiliza la opción sed's -Epara expresiones regulares extendidas, de modo que ()y +funcione sin necesidad de escapar.

Tenga en cuenta que si bien el sedcomando se ejecuta como root con sudo, la redirección de salida no lo es; eso se realiza en su shell original no root. Si también necesita privilegios de root para escribir en el archivo de salida, ejecute teecon sudo, por ejemplo:

$ sudo sed -n -E -e '/sshd.*authentication failure/{s/^.*rhost=([0-9.]+).*/\1/p}' \
    /media/sf_partageAuth/auth.log | 
    sudo tee /mnt/analyse/traitement/cueillette.txt > /dev/null

información relacionada