[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Max de Mendizábal wrote:
¡Eso! ¡Así se habla! Saludos Max At 07:48 p.m. 03/03/2004, Salvador Ortiz Garcia wrote:On Wed, 2004-03-03 at 17:33, Max de Mendizábal wrote: > Salvador, > Por cierto, no pusiste de donde bajarlo. > Saludos > Max Es que como el aviso recibió mas interés del esperado, estoy haciendo una página con todos los detalles de instalación y configuración. Prometo nuevo aviso en breve. Saludos -- Salvador Ortiz Garcia <sog en msg com mx> Matías Software Group_______________________________________________ Ayuda mailing list Ayuda en linux org mxPara salir de la lista: http://mail.linux.org.mx/cgi-bin/mailman/listinfo/ayuda/
Bueno ahi va una solución que he implantado y me ha funcionado bien en su primera etapa que es la de que todo aquel correo que traiga un archivo que yo especifíque en las reglas (.exe, .com,.zip,etc..) se vaya a un archivo tipo mailbox (borrados.log) en cada home de los usuarios y no a su mailbox normal (como no tienen acceso al servidor ya que reciben sus correos con pop3 no se dan cuenta de este archivo) para posteriormente verificar que tanto se han recibido virus, este filtro (FiltUx 1.0) se encarga de eso, para cada usuario, hay que hacer lo siguiente:
1.- Copiar el filtro a /usr/bin el cual debe pertenecer a root y tener permisos: rwxr-xr-x Para esto utilizo una pequeña regla que es ponerle de nombre al archivo: f<username>.pl por ejemplo en mi caso el filtro se llama forvux.pl
2.- Crear un enlace simbolico del filtro a /usr/adm/sm.bin/3.- Escribir en "cada archivo .forward" del home de cada usuario una línea que contenga:
|/usr/bin/<archivopl>y dejandole al .forward permisos de: rwx------ y debe pertenecer al usuario.
Ahora bien, he terminado FiltUx 2.0 el cual ahora he integrado con ClamAV, lo que hace a diferencia del anterior es: 1.- Si encuentro un correo con archivo del tipo especificado lo grabo en un archivo temporal (que es sobreescrito cada vez) el cual checo con ClamAV para verificar si trae virus o no, si el resultado de la busqueda me arroja un FOUND me indica que se ha encontrado virus y lo mando al archivo mailbox alterno para su posterior verificación, no se si este resultado sea constante, pero lo he estado probando y me ha dado buenos resultados. 2.- Si contiene virus mando un correo a la dirección que me lo ha enviado, pero esto me ha causado algunos retornos ya que los virus enmascaran las direcciones de correo con otra que no existe y pues cuando le envio una notificación se me regresa diciendo que no existe el usuario, me han sugerido que le envie una notificación pero al usuario para decirle: Fulano de tal te ha enviado un correo, este ha sido borrado por que contenia un archivo con virus... etc, etc, etc...
Por lo demas para instalarlo son los mismos pasos, por lo tanto nada mas reemplazo el archivo que esta en /usr/bin por el nuevo, cabe mencionar que el primer filtro lo tengo jalando en el servidor con 115 usuarios activos que le dan mucho uso a su servicio de correo electrónico y no he tenido broncas de ningún tipo.
El segúndo filtro (FiltUx 2.0) apenas lo estoy probando con 2 usuarios e iré gradualmente incrementando el número de usuarios como lo hice con el primero.
El primer filtro tiene el defecto de que si encuentra en el texto la una cadena que incluya name= y un nombre con puto y extensión de las especificadas lo va a tomar como portador de ese archivo, pero digo 115 usuarios y no se han quejado??? a excepción del Depto. de Importación/Exportación que le mandas los Pedimentos comprimidos en formato ZIP le tuve que quitar la restricción a este tipo de formato, lo que me ha gustado es que puedo personalizar y permitir a cada usuario dependiendo de su nivel le llegue o no cierto tipo de archivos, como los famosos autoejecutables de PowerPoint (PPS) que por cierto el Gerente no me ha permitido bloquear... pero bueno.
Espero que le ayude a alguien mas y tambien espero sus comentarios, sugerencia, críticas, reclamos, etc... acerca de estos archivos, no importa que sean mentadas....
P.D. Estoy utilizando Perl 5.8.3 y ClamAV 0.67 Gracias. -- OrvUx Making the Hard...Soft with GNU/Linux. ;)
#!/usr/bin/perl #FiltUx 1.0 #Filtro que manda a un archivo temporal tipo mailbox creado en cada home de cada usuario los #correos electronicos que traigan archivos adjuntos del tipo especificado. #Elaborado por: OrvUx <orvux en ipsgroup1 com> #Licencia GPL #Puede modificar y distribuir este archivo siempre y cuando haga referencia a la Licencia GPL #Reemplazar la cadena orvux por el usuario real. use stricts; use Mail::Internet; use Fcntl ':flock'; my @mail=<>; my $mail; my $intVeces=0; my $strLinea; my $strSubj; my $strPacketReturnBuffer; $mail=Mail::Internet->new(\@mail); foreach $strLinea (@{$mail->body}) { if ($strLinea=~/.*name=.*(\.cmd|\.bat|\.exe|\.vbs|\.zip|\.com|\.scr|\.pif|\.js|\.mp3|\.wav|\.ram|\.avi).*/i) { $intVeces++; } } if ($intVeces == 0) { open F1, ">>/var/spool/mail/orvux" or die "Can't open file orvux"; fcntl(F1,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux"; print F1 $mail->as_mbox_string() or die "Can't Write to file orvux"; fcntl(F1,LOCK_UN,$strPacketReturnBuffer) or die "Can't unlock file orvux"; close F1 or die "Can't close file orvux"; } else { open F2, ">>/home/users/orvux/borrados.log" or die "Can't Open file orvux/borrados.log"; fcntl(F2,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux/borrados.log"; print F2 $mail->as_mbox_string() or die "Can't Write to file orvux/borrados.log"; fcntl(F2,LOCK_UN,$strPacketReturnBuffer) or die "Can't Unlock file orvux/borrados.log"; close F2 or die "Can't Close file orvux/borrados.log"; }
#!/usr/bin/perl #FiltUx 2.0 #Filtro para escanear correos electronicos para detectar la presencia de virus. #Elaborado por: OrvUx <orvux en ipsgroup1 com> #Licencia GPL #Puede modificar y distribuir este archivo siempre y cuando haga referencia a la Licencia GPL #Reemplazar la cadena orvux por el usuario real y root@dominio por la direccion real del #Administrador del servidor. #El archivo sign.orv debe contener la firma. use strict; use Mail::Internet; use MIME::Lite; use Fcntl ':flock'; my $msg; my $mail; my @mail=<>; my $intVeces=0; my $strPacketReturnBuffer; my $strFrom; my $strLinea; my $intVirus=0; my $strSubj; $mail=Mail::Internet->new(\@mail); my $Cabecera=$mail->head(); $strFrom=$Cabecera->get('From:'); $strSubj=$Cabecera->get('Subject:'); foreach $strLinea (@{$mail->body}) { if ($strLinea=~/.*name=.*(\.cmd|\.bat|\.exe|\.vbs|\.zip|\.htm|\.com|\.scr|\.pif|\.js|\.mp3|\.wav|\.ram|\.avi).*/i) { $intVeces++; } } if ($intVeces == 0) { open F1, ">>/var/spool/mail/orvux" or die "Can't open file orvux"; fcntl(F1,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux"; $mail->add_signature('/home/users/orvux/sign.orv'); print F1 $mail->as_mbox_string() or die "Can't Write to file orvux"; fcntl(F1,LOCK_UN,$strPacketReturnBuffer) or die "Can't unlock file orvux"; close F1 or die "Can't close file orvux"; } else { open F3, ">/home/users/orvux/mail.orv" or die "Can't Create file orvux/mail.orv"; fcntl(F3,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux/mail.orv"; print F3 $mail->as_mbox_string() or die "Can't Write to file orvux/mail.orv"; fcntl(F3,LOCK_UN,$strPacketReturnBuffer) or die "Can't Unlock file orvux/mail.orv"; close F3 or die "Can't Close file orvux/mail.orv"; if (! open(ANTIV,"/usr/local/bin/clamscan -i --unzip -m --stdout --no-summary /home/users/orvux/mail.orv |")) { die "No puedo establecer la pipa.\n"; } while(<ANTIV>) { if($_=~/FOUND/i) { #Descomentar la linea siguiente si se quiere obtener el nombre del virus.($Virus) # ($Archivo,$Virus,$Mensaje)=split; $intVirus=1; } last if($intVirus==1); } if ($intVirus == 1) { open F2, ">>/home/users/orvux/borrados.log" or die "Can't Open file orvux/borrados.log"; fcntl(F2,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux/borrados.log"; $mail->add_signature('/home/users/orvux/sign.orv'); print F2 $mail->as_mbox_string() or die "Can't Write to file orvux/borrados.log"; fcntl(F2,LOCK_UN,$packet_return_buffer) or die "Can't Unlock file orvux/borrados.log"; close F2 or die "Can't Close file orvux/borrados.log"; $msg = MIME::Lite->new(From => 'root@dominio', To => $strFrom, Subject => 'Su mensaje contiene virus ('.$strSubj.')', Type => 'TEXT', Data => "Hola:\n\tHemos recibido un mensaje suyo con virus y lo hemos eliminado del buzon de: orvux.\n\tEste proceso es automatico, ninguna persona ha visto su correo.\n\nGracias.\n\nroot\n\n\n-- \nFiltrado con: FiltUx 2.0 (orvux\@ipsgroup1.com)\nVerificado contra virus con: ClamAV 0.67 (http://www.clamav.net/"); $msg->send(); } else { open F1, ">>/var/spool/mail/orvux" or die "Can't open file orvux"; fcntl(F1,LOCK_EX,$strPacketReturnBuffer) or die "Can't lock file orvux"; $mail->add_signature('/home/users/orvux/sign.orv'); print F1 $mail->as_mbox_string() or die "Can't Write to file orvux"; fcntl(F1,LOCK_UN,$packet_return_buffer) or die "Can't unlock file orvux"; close F1 or die "Can't close file orvux"; } }