El uso de listas de bloqueo de dns para detectar el correo no deseado


Una de las soluciones para el spam es una frecuente actualización - base de datos con las direcciones IP que aparecen a los que se portan mal. Esta base de datos, de preferencia, ser al azar accesibles a alta velocidad. DNS ofrece una solución para eso.

Introducción.
Afortunadamente, internet ha encontrado respuestas para la immens creciente problema del spam. Una solución es una frecuente actualización - base de datos con las direcciones IP que aparecen a los que se portan mal. Esta base de datos, de preferencia, ser al azar accesibles a alta velocidad. DNS ofrece una solución para eso.

las entradas DNS se puede actualizar de forma rápida. También, en su mayoría no hay necesidad de descargar una copia de la (potencialmente grande) base de datos con frecuencia. Si un servidor de correo puede detectar, en una fracción de segundo, que la IP de envío está actualmente en la lista negra, por ejemplo, porque estaba infectado por un virus y se utiliza como open relay, puede effictively bloque de recepción.

Un conocido proveedor de DNSBL spamhouse.org . Para (completo) lista de DNSBL proveedores, mira aquí

Uso
Tanto SMTP servidores y clientes de correo (o buzón de productos de limpieza) puede utilizar este método. La ruta de un mensaje de correo fuimos siempre se almacena, de modo que siempre puedes recuperar la IP de origen. Esta es una parte esencial del protocolo SMTP.

Usando el protocolo POP3, usted puede ver una casilla de correo, en la parte superior (en la cima significa: recuperar sólo el encabezado del mensaje) de las cabeceras de los mensajes, y ver si están en la lista negra, observando el 'Recibido: de somehost (1.2.3.4)' líneas.

a partir de estas bases de datos de spam pueden ser actualizados con frecuencia, se puede detectar una gran cantidad (>50% ?) de spam.

¿Cómo funciona

Básicamente, lo que usted necesita hacer es comprobar en contra de una DNSBL (DNS lista de bloques) de origen, como
www.spamhaus.org. Esto se realiza de la siguiente manera:

Supongamos desea comprobar si la dirección IP 60.70.80.90 es un spammer, que acaba de realizar una consulta DNS sbl.spamhaus.org con el (invertida) de la dirección ip se inserta, como
consulta de dns: 90.80.70.60.sbl.spamhaus.org
si se obtiene un registro, este es un spammer. si vuelve nada, esta ip no está en la lista de spam.

Prueba
Usted puede fácilmente verificar esta usando el comando 'ping'.
si usted quiere hacer:
ping 90.80.70.60.sbl.spamhaus.org, entonces hay dos opciones:
* 'desconocido' mensaje. Esto está bien, la IP no está en la lista negra.
* '127.0.0.x', donde x>1, como 127.0.0.2. X representa un código de estado. Generalmente, los 2 se utiliza para (semi)permanente netblocks, y 4 se usa para 'proxies abiertos' (como: máquinas infectadas por un virus).

Ejemplo
yo uso esta unidad con éxito en un cliente de correo. Lubos ha integrado esta unidad con éxito en un servidor SMTP/POP3 suite.

puede utilizar esta unidad con o sin sinapsis biblioteca de tcp/ip mediante el establecimiento de la {$DEFINE SINAPSIS} directiva.

spamchck.pas

la unidad de spamchck

interfaz

//Consulta el spamhaus.org base de datos de spammers

utiliza las Clases, SysUtils, {$IFDEF SINAPSIS}SynaUtil, SynSock{$ELSE}WinSock{$ENDIF}

tipo
TSpamCheck = class (TObject)
protegido
público
FDNSBL:Cadena //DNS lista de bloques
constructor Create
función IsSpammer (IP:String):Integer sobrecarga
función IsSpammer (MailHeader:TStrings):Integer sobrecarga
fin

aplicación

{ TSpamCheck }

constructor TSpamCheck.Crear
begin
heredado
FDNSBL := 'sbl-xbl.spamhaus.org'
//, alternativamente, utilizar sbl.spamhaus.org (spam) o
// xbl.spamhaus.org (abierto relés, proxys)
// o una fuente alternativa DNSBL de origen.
// el sbl-xbl es la lista combinada.
final

la función de TSpamCheck.IsSpammer(IP: String): Integer
var RevIP:String
i:Integer
p:PHostEnt
begin
//Consulta de la base de datos
//en Primer lugar, la inversa de la IP
Resultado := -1
{$IFDEF SINAPSIS}
si IsIP (IP), a continuación,
{$ENDIF}
begin
//Inversa de la IP
RevIP := '
for i:=0 to 2 do
begin
RevIP := '.' Copia (IP, 1, pos ('.', IP)-1) RevIP
IP := Copy (IP, pos('.', IP) 1, maxint)
fin
RevIP := IP RevIP

//Ahora, la consulta de la base de datos:
RevIP := RevIP '.' FDNSBL
p := GetHostByName (PChar(RevIP))
si se ha Asignado (p) entonces
begin //Resultados como 127.0.0.x donde x > 1
// 127.0.0.2 = spam
// 127.0.0.4 = abrir relé etc.
Resultado := byte(p^.h_addr^.S_un_b.s_b4)
fin
else //no entrada dns encontró, marcar como seguro:
Resultado := 0
fin

final

la función de TSpamCheck.IsSpammer(MailHeader: TStrings): Integer
var v,ip:String
i,i:Integer
begin
//Analizar un encabezado de correo electrónico
//Buscar 'Recibido' encabezado
//extracto de direcciones IP, asumiendo la forma ' Recibido: de (un.b.c.d) por (w.x.y.z)
//Validar esta dirección IP en spamhaus.
i := 0
Resultado := -1
mientras i begin
si pos ('recibido: ', minúsculas (MailHeader[i])) = 1, a continuación,
begin
v := MailHeader[i]
//búsqueda de cabeceras adicionales:
while ((i 1) (MailHeader[i 1]<>') y
(MailHeader[i 1][1]=' ')
begin
inc (i)
v := v MailHeader[i]
fin
//v contiene ahora una línea, encontrar a partir de la dirección ip:
v := minúsculas (v)
//búsqueda de:
//Recibido: de somehost.com (1.2.3.4).
v := copy (v, pos ('desde', v) 4, maxint)
v := copy (v, pos ('(', v) 1, maxint)
v := copy (v, 1, pos (')', v)-1)

si pos ('[', v)>0, entonces
//formato válido también:
//Recibido: de somehost.com (somehost.com [1.2.3.4])
begin
v := copy (v, pos ('[', v) 1, maxint)
v := copy (v, 1, pos (']', v)-1)
fin

Resultado := IsSpammer (v)

//una sola línea recibida es suficiente
si el Resultado > 0, entonces
break
//
fin
inc (i)
fin
fin

.









El uso de listas de bloqueo de dns para detectar el correo no deseado


El uso de listas de bloqueo de dns para detectar el correo no deseado : Multi-millones de consejos para hacer su vida mas facil.


Una de las soluciones para el spam es una frecuente actualizacion - base de datos con las direcciones IP que aparecen a los que se portan mal. Esta base de datos, de preferencia, ser al azar accesibles a alta velocidad. DNS ofrece una solucion para eso.

Introduccion.
Afortunadamente, internet ha encontrado respuestas para la immens creciente problema del spam. Una solucion es una frecuente actualizacion - base de datos con las direcciones IP que aparecen a los que se portan mal. Esta base de datos, de preferencia, ser al azar accesibles a alta velocidad. DNS ofrece una solucion para eso.

las entradas DNS se puede actualizar de forma rapida. Tambien, en su mayoria no hay necesidad de descargar una copia de la (potencialmente grande) base de datos con frecuencia. Si un servidor de correo puede detectar, en una fraccion de segundo, que la IP de envio esta actualmente en la lista negra, por ejemplo, porque estaba infectado por un virus y se utiliza como open relay, puede effictively bloque de recepcion.

Un conocido proveedor de DNSBL spamhouse.org . Para (completo) lista de DNSBL proveedores, mira aqui

Uso
Tanto SMTP servidores y clientes de correo (o buzon de productos de limpieza) puede utilizar este metodo. La ruta de un mensaje de correo fuimos siempre se almacena, de modo que siempre puedes recuperar la IP de origen. Esta es una parte esencial del protocolo SMTP.

Usando el protocolo POP3, usted puede ver una casilla de correo, en la parte superior (en la cima significa: recuperar solo el encabezado del mensaje) de las cabeceras de los mensajes, y ver si estan en la lista negra, observando el 'Recibido: de somehost (1.2.3.4)' lineas.

a partir de estas bases de datos de spam pueden ser actualizados con frecuencia, se puede detectar una gran cantidad (>50% ?) de spam.

¿Como funciona

Basicamente, lo que usted necesita hacer es comprobar en contra de una DNSBL (DNS lista de bloques) de origen, como
www.spamhaus.org. Esto se realiza de la siguiente manera:

Supongamos desea comprobar si la direccion IP 60.70.80.90 es un spammer, que acaba de realizar una consulta DNS sbl.spamhaus.org con el (invertida) de la direccion ip se inserta, como
consulta de dns: 90.80.70.60.sbl.spamhaus.org
si se obtiene un registro, este es un spammer. si vuelve nada, esta ip no esta en la lista de spam.

Prueba
Usted puede facilmente verificar esta usando el comando 'ping'.
si usted quiere hacer:
ping 90.80.70.60.sbl.spamhaus.org, entonces hay dos opciones:
* 'desconocido' mensaje. Esto esta bien, la IP no esta en la lista negra.
* '127.0.0.x', donde x>1, como 127.0.0.2. X representa un codigo de estado. Generalmente, los 2 se utiliza para (semi)permanente netblocks, y 4 se usa para 'proxies abiertos' (como: maquinas infectadas por un virus).

Ejemplo
yo uso esta unidad con exito en un cliente de correo. Lubos ha integrado esta unidad con exito en un servidor SMTP/POP3 suite.

puede utilizar esta unidad con o sin sinapsis biblioteca de tcp/ip mediante el establecimiento de la {$DEFINE SINAPSIS} directiva.

spamchck.pas

la unidad de spamchck

interfaz

//Consulta el spamhaus.org base de datos de spammers

utiliza las Clases, SysUtils, {$IFDEF SINAPSIS}SynaUtil, SynSock{$ELSE}WinSock{$ENDIF}

tipo
TSpamCheck = class (TObject)
protegido
publico
FDNSBL:Cadena //DNS lista de bloques
constructor Create
funcion IsSpammer (IP:String):Integer sobrecarga
funcion IsSpammer (MailHeader:TStrings):Integer sobrecarga
fin

aplicacion

{ TSpamCheck }

constructor TSpamCheck.Crear
begin
heredado
FDNSBL := 'sbl-xbl.spamhaus.org'
//, alternativamente, utilizar sbl.spamhaus.org (spam) o
// xbl.spamhaus.org (abierto reles, proxys)
// o una fuente alternativa DNSBL de origen.
// el sbl-xbl es la lista combinada.
final

la funcion de TSpamCheck.IsSpammer(IP: String): Integer
var RevIP:String
i:Integer
p:PHostEnt
begin
//Consulta de la base de datos
//en Primer lugar, la inversa de la IP
Resultado := -1
{$IFDEF SINAPSIS}
si IsIP (IP), a continuacion,
{$ENDIF}
begin
//Inversa de la IP
RevIP := '
for i:=0 to 2 do
begin
RevIP := '.' Copia (IP, 1, pos ('.', IP)-1) RevIP
IP := Copy (IP, pos('.', IP) 1, maxint)
fin
RevIP := IP RevIP

//Ahora, la consulta de la base de datos:
RevIP := RevIP '.' FDNSBL
p := GetHostByName (PChar(RevIP))
si se ha Asignado (p) entonces
begin //Resultados como 127.0.0.x donde x > 1
// 127.0.0.2 = spam
// 127.0.0.4 = abrir rele etc.
Resultado := byte(p^.h_addr^.S_un_b.s_b4)
fin
else //no entrada dns encontro, marcar como seguro:
Resultado := 0
fin

final

la funcion de TSpamCheck.IsSpammer(MailHeader: TStrings): Integer
var v,ip:String
i,i:Integer
begin
//Analizar un encabezado de correo electronico
//Buscar 'Recibido' encabezado
//extracto de direcciones IP, asumiendo la forma ' Recibido: de (un.b.c.d) por (w.x.y.z)
//Validar esta direccion IP en spamhaus.
i := 0
Resultado := -1
mientras i begin
si pos ('recibido: ', minusculas (MailHeader[i])) = 1, a continuacion,
begin
v := MailHeader[i]
//busqueda de cabeceras adicionales:
while ((i 1) (MailHeader[i 1]<>') y
(MailHeader[i 1][1]=' ')
begin
inc (i)
v := v MailHeader[i]
fin
//v contiene ahora una linea, encontrar a partir de la direccion ip:
v := minusculas (v)
//busqueda de:
//Recibido: de somehost.com (1.2.3.4).
v := copy (v, pos ('desde', v) 4, maxint)
v := copy (v, pos ('(', v) 1, maxint)
v := copy (v, 1, pos (')', v)-1)

si pos ('[', v)>0, entonces
//formato valido tambien:
//Recibido: de somehost.com (somehost.com [1.2.3.4])
begin
v := copy (v, pos ('[', v) 1, maxint)
v := copy (v, 1, pos (']', v)-1)
fin

Resultado := IsSpammer (v)

//una sola linea recibida es suficiente
si el Resultado > 0, entonces
break
//
fin
inc (i)
fin
fin

.


El uso de listas de bloqueo de dns para detectar el correo no deseado

El uso de listas de bloqueo de dns para detectar el correo no deseado : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación