Script reset_iface (detecta y reinicia el driver de una interfce de red)

Autor: geminis_demon

Buenas.

Pues eso, este script detecta el driver de la interface que se le pase como parámetro, y lo reinicia (lo desmonta y lo vuelve a montar).

Esto es útil a la ora de realizar una auditoría, ya que al desmontar y volver a montar el driver te aseguras de que la interface está “limpia”, no está siendo usada por ningún proceso y no está fijada a ningún canal.

La idea de hacer el script me vino al leer un comentario de Alister que decía que el hacía eso siempre antes de comenzar una auditoría, y me pareció buena idea  hacer un script que automatice el proceso

Code:
#!/bin/bash
# Script: reset_iface # Por geminis_demon para Wifislax-# SeguridadWireless.Net

if [ $(id -u) != 0 ]; then
echo “ERROR: Este script debe ejecutarse con permisos de ROOT”
exit 1
fi

if [ -z “$1” -o “$1” = “-h” ]; then
echo
echo “Este script desmonta y vuelve a montar el driver de una interface” echo “de red”
echo 
echo “USO:”
echo ” $0 interface”
echo
echo “OPCIONES:”
echo ” -h  Muestra esta ayuda.”
echo 
if [ -z “$1” ]; then
exit 1
else
exit 0
fi
fiIFACE=”$1″

if [ ! “$(ip link|grep ” $IFACE: “)” ]; then
echo
echo ” – ERROR: No existe la interface \”$IFACE\””
echo
exit 1
fi

DRIVER=”$(basename “$(ls -l “/sys/class/net/$IFACE/device/driver”)”)”

if [ ! “$DRIVER” ]; then 
echo
echo ” – ERROR: No ha sido posible encontrar el driver de $IFACE”
echo
exit 1
fi

echo
echo ” – La interface $IFACE utiliza el driver $DRIVER”

rmmod -f “$DRIVER” && modprobe “$DRIVER”

if [ $? = 0 ]; then 
echo ” – El driver $DRIVER ha sido reiniciado”
echo
fi