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