viernes, 20 de febrero de 2015

Progamar Iptables para cancelar usuarios por Mac Address

Esto es parte de un trabajo cuyo objetivo es limitar el acceso a la red WiFi de usuarios con Smartphones.

creamos el archivo del script y le damos atributo ejecutable:

touch /etc/rc.d/rc.Dropmac
chmod +x /etc/rc.d/rc.Dropmac



#!/bin/bash +x
# Usaríamos inotify para lanzar nuestro script pero considerando que dhcpd.leases tiene modificaciones permanentes  por todas las vlans, estariamos reiniciando el firewall a cada segundo
#####
# inotifywait -m -e modify,close_write /var/lib/dhcpd/
#
# iptables -N CELU > /dev/null 2> /dev/null
# Borramos manualmente las entradas en la cadena CELU
echo "#!/bin/bash">/etc/rc.d/rc.drop
iptables -S |grep CELU|grep INPUT|sed 's/-A/iptables -D/g'>>/etc/rc.d/rc.drop
/etc/rc.d/rc.drop
#
iptables -F CELU
iptables -A CELU -j LOG --log-prefix "--ANDROID"
iptables -A CELU -j DROP
cat /var/lib/dhcpd/dhcpd.leases|grep android -3|grep hardware|awk '{print $3}'| cut -f1| sort | tr -d ';'|uniq>>/etc/rc.d/vlan.acl
cat /var/lib/dhcpd/dhcpd.leases|grep Phone -3|grep hardware|awk '{print $3}'| cut -f1| sort | tr -d ';'|uniq>>/etc/rc.d/vlan.acl
for MAC in `cat /etc/rc.d/vlan.acl|sort|uniq`;
do
iptables -I INPUT -i vlan110 -m mac --mac-source $MAC -j CELU
done
editamos el cron e ingresamos nuestro script:
#crontab -e
*/15 * * * * /etc/rc.d/rc.Dropmac