|
Guión para saber el nombre de usuario autenticado pop-before-smtp |
|
|
|
|
Escrito por Guillermo Gómez S.
|
|
domingo, 12 de septiembre de 2004 |
Introducción
Si tiene instalado pop-before-smtp en su servidor de email smtp para permitir el relevo de mensajes a usuarios externos autenticados de esta forma, valorar¡ este guión ya que le permitir¡ saber quién est¡ autenticado adem¡s de conocer la dirección IP.
Contenido de pbs-ip-login.sh
#!/bin/bash
# Programa que lista las IP de pop-before-smtp con su respectivo login
# de usuario para seguridad
#
function maillog_del_dia
{
# Funcion encargada de recoger el log del servidor email en un archivo
# Formato fecha debe incluir un espacio cuando es
# un digito de tal que la fecha se ve asi : Sep 3
# o cuando es de dos digitos : Sep 12
# Para ello se usa el formato %e de date
fecha="$(date +%b' '%e)"
# maillog del dia
grep "$fecha" /var/log/maillog > /tmp/maillog$$
# Complementamos esta funcion con la generacion de un archivo con la lista
# de IPs que se encuentran autenticadas para este instante
# ip autenticadas pop-before-smtp
pop-before-smtp --list | grep -v : > /tmp/ips$$
}
function recoger_basura
{
# Funcion para eliminar los temporales que sirven de entrada
# a este programa
rm -f /tmp/maillog$$
rm -f /tmp/ips$$
function login_pop_de_ip
{
# Esta es la funcion que devuelve la cadena con el nombre de usuario
# autenticado.
# Puede customizar este comando grep para que se acomode a su archivo
# de registro de correo y a su programa pop-before-smtp si no es el
# suministrado por http://popbsmtp.sourceforge.net
grep -m 1 '.*pop3d.*LOGIN.*'$1'.*' /tmp/maillog$$
}
function login_imap_de_ip
{
# Esta funcion es paralela a la anterior pero reconoce los login
# IMAP, recuerde que toda la magia aqui es saber usar grep para busqueda
# de patrones en archivos y que el programa esta basado en el
# analisis de archivos de registro
grep -m 1 '.*imap.*LOGIN.*'$1'.*' /tmp/maillog$$
}
# Punto de entrada del programa pbs-ip-login.sh
# Captura de datos en archivos para posterior procesamiento
# "Tomo una foto del estado actual"
maillog_del_dia
# Procesamiento de los archivos capturados
#
# Lo mas importante de este guion esta aqui
# Note como se toma la entrada del lazo desde un archivo
while read linea; do
login_pop_de_ip $linea
login_imap_de_ip $linea
done < /tmp/ips$$
#
recoger_basura
# v0.1 Version inicial, se escanea directamente /var/log/maillog
# v0.2 Se incorporo maillog_del_dia para no buscar en todo el maillog
# Se incorporo recoger basura
Gomix |