Script para notificar intrusiones en tu red (Wifi o cableada) con Ubuntu

Este es un script que detecta quien se esta conectandoa tu red, y como comenta su autor Franklin Aliaga, es muy util si usas un Modem Router Inalambrico para detectar personas que se pueden estar conectando a tu red, hoy en dia existen infinidades de metodos para entrar a una red inalambrica asi que hay que estar monitoreando siempre la red, en este caso el script funciona de la siguiente manera, mientras tu estas haciendo tus trabajos hay un demonio que cada 3 min. ejecutara el script y mostrara en una alerta en el panel de notificaciones de tu Ubuntu.

Requisitos:

sudo apt-get install libnotify-bin nmap

Para crear el script sigue los siguientes pasos:

Abre una consola y en tu /home, teclea:

sudo gedit alertared

Copia y pega el siguiente codigo:

#!/bin/bash
#script creado por: franklin aliaga
#si no tienes nmap digita sudo apt-get install nmap
#con este comnado de nmap nos muestra los hosts conectados
#y los guarda en un archivo *.txt

#script mejorado y actualizado por: microstudi (lector de tuxapuntes)

# Modificica esta linea a tu gusto si deseas guardar los temporales en otra ruta.

ARCHIVOS="$HOME/bin/hosts"

/usr/bin/nmap -sP 192.168.2.1/24 -oG $ARCHIVOS/hosts_ip.txt

#aqui cortamos el formato obtenido anteriormente de archivo para solo obtener las ip's
#y mandarlo a otro archivo *.txt
cat $ARCHIVOS/hosts_ip.txt | grep Host | cut -c 7-20 | tr -d "\()" > $ARCHIVOS/host_ip1.txt

#aqui capturamos el numero de lineas que tiene nuestro archivo
#en este caso la cantidad de ip's que hay en el archivo
contador=$(wc -l $ARCHIVOS/host_ip1.txt | cut -c 1-2)

#aqui obtenemos la nuestra ip
ip=$(/sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -c 6-)
echo "Mi ip: $ip"
total=$(expr $contador - 1)

var=0

while [ $var -le $total ]; do
let var=$var+1
#capturamos la ip por linea
linea=$(cat $ARCHIVOS/host_ip1.txt | sed -n "$var p")
if [ $linea != "192.168.2.1" ]; then
if [ $linea != $ip ]; then
/usr/bin/notify-send "Conectado $linea"
#Para enterar-se por la consola también:
echo "Conectado $linea"
fi
fi
done

Guarda el fichero que acabas de crear y en consola teclea:

sudo chmod +x alertared

Despues creamos el demonio:

crontab -e

Y añadimos la linea:

*/3 * * * * /home/tu nombre de usuario/alertared

*Con esto el sistema ejecutara cada 3 minutos el script y nos notificara los intrusos.

Script para integrar un PC con Linux en un dominio Windows

Bonito script para integrar un PC Linux en un dominio Windows, permite hacerlo de moto automatico pero tendras que sustituir las ips y los nombres de los servidores por los de tu red. Para ejecutarlo, debemos hacerlo con privilegios de root.

#!/bin/bash
nombrehost=$1
nombrehostanterior=`cat /etc/hostname`

while [ ! "$nombrehost" ]
do
if [ ! "$nombrehost" ]
    then
      echo "Introduzca un nombre para el equipo (ej.: a5-u02)"
      read nombrehost
      echo $nombrehost
      clear
    else
      echo "El equipo será integrado con el nombre '$nombrehost'"
fi
done
#instalamos el paquete likewise para integrar el equipo en linux
sudo apt-get install likewise-open
###### Control de errores
if [ $? -eq 0 ]
        then
               echo Se ha instalado con exito likewise >> loginstalacion.log
        else
               echo ERROR EN LA INSTALACIÓN DE LIKEWISE!!! o INSTALADO PREVIAMENTE >> loginstalacion.log
fi
#ponemos correctamente los nombres al fichero
sudo echo $nombrehost >> /etc/hostname
###### Control de errores
if [ $? -eq 0 ]
        then
               echo Se ha cambiado el nombre del equipo en /etc/hostname con exito a $nombrehost >> loginstalacion.log
        else
               echo ERROR EN LA ESCRITURA DEL FICHERO /ETC/HOSTNAME >> loginstalacion.log
        exit
fi
#sustituimos en el fichero hosts el anterior nombre por el nuevo
sudo sed s/$nombrehostanterior/$nombrehost/g -i /etc/hosts
if [ $? -eq 0 ]
        then
               echo Se ha cambiado el nombre del equipo en /etc/hosts con exito a $nombrehost >> loginstalacion.log
        else
               echo ERROR EN LA ESCRITURA DEL FICHERO /ETC/HOSTS >> loginstalacion.log
        exit
fi
#insertamos en el fichero hosts unas lineas con la direccion ip del servidor del dominio y su nombre
sudo sed -e '$i 10.10.10.2 servidor.blogofsysadmins.com servidor' -i /etc/hosts
sudo sed -e '$i 10.10.10.3 servidor.blogofsysadmins.com servidor' -i /etc/hosts
if [ $? -eq 0 ]
        then
               echo Se ha cambiado el nombre del servidor del dominio en /etc/hosts con exito >> loginstalacion.log
        else
               echo ERROR EN LA ESCRITURA DE LAS DIRECCIONES DEL SERVIDOR EN EL FICHERO /ETC/HOSTS >> loginstalacion.log
        exit
fi
#si nuestro dominio emplea un servidor de dominio tb debemos modificar el fichero /etc/dhcp3/dhclient.conf.
sudo echo prepend domain-name '"'blogofsysadmins '"' >> /etc/dhcp3/dhclient.conf
sudo echo supersede domain-name-servers 10.10.10.2,10.10.10.3,10.10.10.1';'>> /etc/dhcp3/dhclient.conf
if [ $? -eq 0 ]
        then
               echo Se han añadido los  nombres de los servidores del dominio al final de /etc/dhcp3/dhclient.conf>> loginstalacion.log
        else
               echo ERROR EN LA ESCRITURA DE LAS DIRECCIONES DEL SERVIDOR EN EL FICHERO /ETC/DHCP3/DHCLIENT.CONF >> loginstalacion.log
        exit
fi
#añadimos las direcciones de nuestros servidores de dns al fichero resolv.conf

sudo echo domain blogofsysadmins.com > /etc/resolv.conf
sudo echo search blogofsysadmins.com >> /etc/resolv.conf
sudo echo nameserver 10.10.10.2 >> /etc/resolv.conf
sudo echo nameserver 10.10.10.1 >> /etc/resolv.conf
sudo echo nameserver 10.10.10.3 >> /etc/resolv.conf
if [ $? -eq 0 ]
        then
               echo Se ha modificado el fichero /etc/resolv.conf>> loginstalacion.log
        else
               echo ERROR EN LA ESCRITURA DE LAS DIRECCIONES DEL SERVIDOR EN EL FICHERO /ETC/RESOLV.CONF >> loginstalacion.log
        exit
fi
#modificamos el fichero resolv.conf para que no pueda ser modificado por lanmanager
sudo chattr +i /etc/resolv.conf

#agregamos el equipo al dominio en este caso blogofsysadmins.com con la cuenta que queramos
#sudo domainjoin-cli join NOMBRE_DOMINIO NOMBRE_USUARIO_CON_PERMISOS_
#POR EJEMPLO
sudo domainjoin-cli join blogofsysadmins.com Administrador
#para quitarlo del dominio emplearíamos:
#sudo domainjoin-cli leave

###### Control de errores
if [ $? -eq 0 ]
        then
               echo Se ha unido con exito al dominio >> loginstalacion.log
        else
               echo ERROR, NO SE HA PODIDO UNIR EL EQUIPO AL DOMINIO >> loginstalacion.log
           lwiinfo >> loginstalacion.log
        exit
fi

cat loginstalacion.log