Sistemas operativos > Aplicaciones y diccionarios linux
Script reset_iface (detecta y reinicia el driver de una interfce de red)
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 >:D
--- Código: ---#!/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 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
fi
IFACE="$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
--- Fin del código ---
geminis_demon:
Debido a los problemas que se producen con determinadas tarjetas de red al desmontar y volver a montar el driver, he investigado y encontrado la forma de hacer lo mismo de una forma menos agresiva.
Ahora el script en vez de desmontar el driver, lo desvincula del dispositivo en cuestión, y vuelve a vincularlo, de esta forma conseguimos el mismo resultado ("limpiar" la interfaz) sin los efectos secundarios que causaba la versión anterior.
--- Código: ---#!/bin/bash
# Script: reset_iface v2
# Por geminis_demon para Wifislax - SeguridadWireless.Net
Error() {
echo " - ERROR: $1"
exit 1
}
if [ -z "$1" -o "$1" = "-h" ]; then
echo
echo "Este script desmonta y vuelve a montar el driver de una interfaz de red"
echo
echo "EJEMPLO:"
echo " $0 wlan0"
echo
echo "OPCIONES:"
echo " -h Muestra esta ayuda."
echo
if [ -z "$1" ]; then
exit 1
else
exit 0
fi
fi
[ $(id -u) != 0 ] && Error "Este script debe ejecutarse con permisos de ROOT"
[ ! -d "/sys/class/net/$1/device/driver" ] && Error "No existe la interfaz $1"
ID="$(basename "$(ls -l "/sys/class/net/$1/device")")"
OLD_DIR="$(pwd)"
cd "/sys/class/net/$1/device/driver/"
echo -n "$ID" >unbind||Error "Ocurrió un problema al desmontar la interfaz $1"
echo -n "$ID" >bind||Error "Ocurrió un problema al montar la interfaz $1"
echo " - La interfaz $1 ha sido reiniciada"
cd "$OLD_DIR"
--- Fin del código ---
USUARIONUEVO:
ok , a la noche lo actualizo.
najador:
gracias por tus aportes ;D
para poder ejecutarlo ¿como haceis? yo copio lo expuesto reset_iface v2 y al final añado sh
le doy permisos con chmod y bien ;pero como lo ejecutais o como se llama a este script desde consola porque lo llamo de las maneras que conozco y nada no aparece en consola ???
y con clic derecho ejecutar en consola me sale
Advertencia: No fue posible iniciar «/root/Desktop/reset_ifacev2.sh» con los argumentos «/root/Desktop/reset_ifacev2.sh». ???
¿hay alguien que me pueda decir como se llama a este script ?para poder ejecutarlo ;he podido darle permisos con chmod pero no soy capaz de verlo en consola y ejecutarlo
saludos
geminis_demon:
Da igual el nombre o la extensión que le pongas, como si no le quieres poner extensión.
Se ejecuta igual que todos los scripts, abres una terminal y ejecutas:
--- Código: ---./ruta/del/script
--- Fin del código ---
o
--- Código: ---bash /ruta/del/script
--- Fin del código ---
o
--- Código: ---sh /ruta/del/script
--- Fin del código ---
Cualquiera de las 3 formas sirve.
Navegación
[#] Página Siguiente
Ir a la versión completa