#!/bin/bash #blocage (et déblocage) rapide d'une adresse IP via /etc/hosts.deny #NB: #- c'est une méthode sale, clairement pas la plus efficiente (ce serait mieux au niveau du firewall), mais qui a son utilité. #- les trucs cools c'est : #qu'on lie une action à l'ip bloquée directement dans /etc/hosts.deny (en l'occurence, envoi d'un mail aux admins) #c'est la syntaxe de hosts.deny qui est acceptée -- normal, c'est ce qu'on utilise ;-) -- et donc on peut mettre des jokers dans l'ip à (dé)bloquer (genre 192.168.*). #facilement adaptable pour bloquer un seul ou plusieurs services (ici on bloque tout accès). admins=toto@hop.fr fic="/etc/hosts.deny" service="ALL:" echo echo "Interdiction d'acces" if [ -n $1 ]; then lockip=$1 fi while [ -z $lockip ]; do echo "IP a (de)bloquer" read lockip done if [ -z "`grep $lockip $fic`" ]; then echo "$service $lockip : spawn (/bin/mail -s '[$HOSTNAME] - connexion refusee pour %h' $admins) &" >>$fic logger -s "[IP_DENY] $lockip : $service INTERDIT sur $HOSTNAME." else sed -i "/$service $lockip/d" $fic logger -s "[IP_DENY] $lockip : $service AUTORISE sur $HOSTNAME." fi