certificados caducados en openvpn

27 de junio de 2010

Cuando tienes más de 100 usuarios que pueden entrar por VPN a tú empresa es difícil controlar cuando les caducan sus certificados. El siguiente script muestra todos los certificados que caducan este año. Ahora ya puedes decidir si quieres renovarle o no el certificado al usuario.

#/bin/bash

list=`ls /etc/openvpn/keys/*.crt`
actual=`date '+%Y'`

list () {
   for i in $list ; do
      fecha=`cat $i | grep After`
      fecha="${fecha/Not After :/}"
      fecha="${fecha/GMT/}"
      if [ "$1" != full ]; then
        if [ "$fecha" != "${fecha/$actual/}" ]; then
            echo $i : $fecha
         fi
      else
         echo $i : $fecha
      fi
   done

}

ayuda () {
   echo "listcert v0.1b, por amperis"
   echo
   echo "Uso: listcert [opcion]"
   echo
   echo "-f, --full    Lista la fecha de todos los certificados"
   echo "-e, --expire  Lista los certificados que caducan este año"
   echo "--help        Muestra esta misma ayuda"
   echo
}

case $1 in
   -f | --full)
      list full
      ;;

   -e | --expire)
      list expire
      ;;
   *)
      ayuda
      ;;
esac

Ahora puede programar un cron para que te envie un report cada mes:
root@vpn:~# crontab -l
@monthly /etc/openvpn/keys/listcerts.sh -e | mail -s "Usuarios VPN que caducan proximamente" sysadmin@miempresa.com