InglésFrancésEspañol

icono de página de OnWorks

avenger - Online en la nube

Ejecute avenger en el proveedor de alojamiento gratuito OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando avenger que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


vengador - Mail Avenger

DESCRIPCIÓN


Mail Avenger es un SMTP (Simple Mail Transport
Protocolo) servidor diseñado para permitirle filtrar y combatir el SPAM antes aceptar correo entrante
desde una máquina cliente. vengador es el script que se ejecuta en nombre de cada usuario para decidir si
para aceptar correo entrante.

Cuando un cliente intenta enviar correo a un usuario en el sistema, el demonio SMTP vengador,
asmtpd, ejecuta avenger para procesar el archivo .avenger / rcpt en el directorio de inicio del usuario. Ese
archivo, un script de shell con acceso a funciones especiales, determina cómo el servidor SMTP
debe continuar. Los posibles resultados son:

· Acepte provisionalmente el correo, recurriendo a las reglas predeterminadas del sistema

· Acepte el correo inmediatamente sin más controles

· Rechaza el correo inmediatamente

· Aplazar el correo, diciéndole al cliente que lo reenvíe más tarde

· Redirigir el procesamiento a otro nombre local. El nombre puede ser otra dirección de correo electrónico
perteneciente al usuario actual, o una dirección de correo electrónico perteneciente al especial
AvengerUsuario usuario. En el último caso, avenger se volverá a ejecutar con un ID de usuario diferente,
y por lo tanto puede, por ejemplo, emplear utilidades que mantengan el estado en múltiples usuarios.
(suponiendo que todos redireccionen el procesamiento de la misma manera).

· Ejecute una regla de "prueba corporal". Con este resultado, la transacción SMTP continúa
recibir todo el contenido del mensaje de correo, después de lo cual se ejecuta un programa en el
contenido del mensaje de correo. Ese programa puede decidir, en función de los contenidos, si
aceptar, rechazar, aplazar o descartar silenciosamente el mensaje.

Normalmente, Mail Avenger debe configurarse para tener un Separador personaje, permitiendo a cada
usuario para mantener varias direcciones de correo electrónico. Con sendmail, Separador suele ser "+",
con qmail es típicamente "-". Si el separador es "+", cualquier correo electrónico enviado a
usuario +ext@tu anfitrión serán procesados ​​por archivos en usuario's .vengador directorio.

Avenger primero busca un archivo llamado rcpt + ext en un usuario .vengador directorio, luego para
rcpt + predeterminado. Si ext sí mismo contiene el carácter separador, por ejemplo
usuario +ext1+ext2@tu anfitrión, el vengador comprobará primero rcpt + ext1 + ext2, entonces para
rcpt + ext1 + predeterminado, entonces para rcpt + predeterminado. El mismo algoritmo se extiende de forma arbitraria
muchos caracteres separadores. (Si el separador es "-", simplemente reemplace "+" con "-" en todo
la descripción anterior, incluidos los nombres de archivos como rcpt-predeterminado.)

Si el correo es rechazado por el destinatario, verifica pero la dirección del remitente de un mensaje es local
y Correo de usuario es 1 en asmtpd.conf (que no es el predeterminado), luego, antes de rechazar el correo,
avenger se ejecutará en nombre del usuario remitente. En este caso, la dirección será
analizado como arriba, pero avenger buscará reglas en archivos que comiencen mail en lugar de RCPT.
Este mecanismo puede ser utilizado por usuarios locales que deseen retransmitir correo a través del servidor desde
una dirección IP que no es de confianza.

Usando el mail archivos de configuración, cada usuario puede, por ejemplo, configurar un correo + ... presentar
aceptar correo de una dirección IP en la que él o ella confía, incluso si esa dirección no es de confianza para
todos los usuarios. (Alternativamente, utilizando herramientas como macutil, un usuario puede configurar la retransmisión de
correo en el que el remitente del sobre contiene un código criptográfico, verificado por el correo + ...
texto.)

Salida de error de un script avenger rcpt + ext or correo + ext es redirigido a un archivo llamado
log + ext en el mismo directorio, para su uso en depuración.

AVENGER SINTAXIS


Los archivos de configuración de Avenger son simplemente scripts de shell, que utilizan la sintaxis descrita en sh(1).
Cada línea del archivo contiene una asignación de variable, comando o función para ejecutar.
Además, los scripts pueden hacer uso de una serie de funciones y variables específicas de avenger.
Esta sección describe las funciones del vengador. Las siguientes dos secciones describen variables.

error
Ciertas condiciones de error hacen que Mail Avenger rechace el correo de forma predeterminada, a menos que el
El mensaje se acepta explícitamente a través de un aceptar o exitoso prueba corporal cheque. Estas
las condiciones están indicadas por el CORREO_ERROR variable de entorno que se describe a continuación. Si
su secuencia de comandos rechaza el correo o cae en el comportamiento predeterminado, hay
a menudo no hay razón para ejecutar pruebas en un mensaje que terminará siendo rechazado de cualquier manera.
error sale inmediatamente con el error predeterminado si el valor predeterminado fuera rechazar o
aplazar el correo.

aceptar [mensaje]
Acepta inmediatamente el mensaje (sin volver a las reglas predeterminadas). Si
se proporciona el mensaje, se devolverá al cliente SMTP. El mensaje predeterminado es
"OK".

rechazar [mensaje]
Rechaza el correo, con mensaje. (El mensaje predeterminado es "comando rechazado por política
razones").

aplazar [mensaje]
Rechace el correo con un código de error temporal, para que un cliente de correo legítimo
intente reenviarlo más tarde. El predeterminado para mensaje es "error temporal en
Procesando".

prueba corporal comando [arg ...]
Acepte el comando SMTP "RCPT" actual. Sin embargo, una vez que se ha enviado todo el mensaje de correo
recibido con el comando SMTP "DATA", ejecute comando con el mensaje como estándar
aporte. Dependiendo del estado de salida de comando volver al comando "DATOS" del cliente
ya sea éxito, fracaso temporal o permanente. El código de salida 0 significa aceptar el correo,
100 significa rechazar, 111 significa rechazar con un código de error temporal (es decir, aplazar el correo).
Ver la descripción de prueba corporal en la descripción de la interfaz asmtpd / avenger para más
información sobre prueba corporal (ya que esta función invoca directamente prueba corporal en asmtpd).

Salida de error de comando será redirigido al mismo archivo de registro que la salida del
rcpt + ... guión del vengador que invoca el prueba corporal función. Salida estándar de comando
se incluirá como diagnóstico el mensaje de rebote si el código de salida difiere o rechaza
el correo.

Tenga en cuenta que comando y los argumentos pasados ​​a prueba corporal será ejecutado por el shell.
Por lo tanto, es importante no pasar ningún argumento que pueda contener shell
metacaracteres como ">" y "$".

reorientar local
Finalice el procesamiento y vuelva a ejecutar avenger como si el correo se estuviera enviando a otra
nombre de usuario local (posiblemente perteneciente al especial AvengerUsuario usuario). Ver el
descripción de reorientar en la descripción de la interfaz asmtpd / avenger para más
información sobre reorientar (ya que esta función invoca directamente reorientar en asmtpd).

lista gris [clave de remitente]
Este comando difiere el correo la primera vez que se recibe un correo de un remitente en particular en un
dirección IP particular. Sin embargo, después de un cierto intervalo, lista_gris_retraso, Si el
cliente reenvía el correo, será aceptado. Además, a partir de ese momento, todos
Se aceptará inmediatamente el correo de ese remitente y dirección IP, a menos que el remitente
deja de enviar correo por un período de listagris_ttl2 o más. Sin embargo, si después de enviar
el correo inicial rechazado, el cliente no vuelve a intentarlo dentro de un período de
listagris_ttl1, se borrará cualquier registro del cliente y la próxima vez
intenta enviar correo, será rechazado de nuevo.

Los parámetros se pueden ajustar configurando variables en el script. Los valores predeterminados
son:

greylist_delay = 30m # Tiempo de espera antes de permitir el mensaje
greylist_ttl1 = 5h # Cuánto tiempo se deben recordar los remitentes por primera vez
greylist_ttl2 = 36D # ¿Cuánto tiempo se deben recordar los remitentes correctos?

m significa minutos, h horas, y D dias. Para obtener una lista completa de sufijos permitidos, consulte
la documentación para dbutil(1) (en particular para el --expirar opción).

clave de remitente, si se proporciona, se utiliza para identificar al remitente. El valor predeterminado es
"$ CLIENT_IP $ RECIPIENT $ SENDER". Si, por ejemplo, quisiera grabar solo el primer
24 bits de dirección IP y no le importaba el destinatario, podría usar el comando:

lista gris "$ {CLIENT_IP%. *} $ SENDER "

setvars
Todas las funciones que establecen una variable mediante una consulta externa a asmtpd son
realizado de forma asincrónica. setvars en realidad espera resultados y establece los valores de
esas variables. De esta forma, una serie de solicitudes potencialmente lentas (como DNS
búsquedas) se pueden iniciar al mismo tiempo y sus latencias se superponen. Sin embargo, uno
debe recordar llamar setvars, o bien variables que deberían contener los resultados de
las operaciones permanecerán sin configurar.

dns var tipo nombre de dominio
Realiza una búsqueda de DNS de nombre de dominio para registros de tipo tipoy asigna el resultado
a variable var cuando usted llama setvars. tipo debe ser uno de a, mx, ptro txt (más bajo-
solo caso).

rbl [-ipf] var dominio
Busca el remitente de correo actual en una lista de agujeros negros en tiempo real (RBL). dominio son los
nombre de dominio de la RBL (por ejemplo, "bl.spamcop.net"). Si el remitente aparece en la lista, establezca var a
el resultado de la búsqueda de DNS la próxima vez que llame setvars. -i busca la IP del remitente
dirección (el valor predeterminado si no se especifican opciones). -p busca el dominio del remitente
nombre (registro DNS PTR verificado). -f busca el nombre de dominio del remitente del sobre en el
RBL.

spf0 var [mecanismo spf ...]
spf var [mecanismo spf ...]
Prueba al remitente con una consulta arbitraria formulada en el lenguaje SPF. Esto es un
poderosa forma de incluir en la lista blanca o en la lista negra a determinados remitentes. Por ejemplo, suponga que
desea aceptar cualquier correo de las máquinas en la lista mantenida por trust-forwarder.org,
aceptar correo de cualquier nombre de máquina que termine en "yahoo.com" rechazar cualquier correo de usuarios en el
spamcop RBL, y para otros usuarios recurren a las reglas predeterminadas para todo el sistema. usted
podría usar lo siguiente RCPT archivo:

spf MYSPF + incluyen: spf.trusted-forwarder.org \
+ ptr: yahoo.com -exists:% {ir} .bl.spamcop.net? todos
setvars
caso "$ MYSPF" en
aprobar)
aceptar "me gustas"
;;
fallar)
rechazar "no me gustas"
;;
error)
# Nota, en cambio, podría caer por defecto aquí
aplazar "Error de DNS temporal"
;;
esac

Tenga en cuenta que los comandos spf0 y spf son sinónimos, pero spf está en desuso, porque en un
lanzamiento posterior de Mail Avenger spf se convertirá en sinónimo de spf1.

spf1 var [mecanismo spf ...]
Realiza las mismas pruebas que el spf directiva, pero devuelve las cadenas de resultados Ninguna,
Neutro, Pass, Fallar, falla suave, Error de temperaturay Error permanente en lugar de ninguna, neutral,
pass, fallar, falla suave, errory desconocido.

AVENGER VARIABLES


Estas variables las establece el script avenger. Además, asmtpd establece una serie de
variables de entorno antes de ejecutar avenger. Estos se documentan en la siguiente sección,
AMBIENTE.

FILEX
La extensión del archivo que se está procesando actualmente. Por ejemplo, si archivo rcpt + ext is
en proceso, se establecerá en "+ ext". Vacío al procesar solo RCPT (o mail).
También puede contener tu préstamo estudiantil cuando se ejecuta un archivo de reglas predeterminado para algún sufijo.

PREFIJO
SUFIJO
Suponiendo que el separador es "+", al procesar un archivo rcpt + base + predeterminado or
correo + base + predeterminado, PREFIJO se establece a bases, mientras SUFIJO se establece en la parte del
nombre para el cual tu préstamo estudiantil fue sustituido. Cuando el archivo no termina con tu préstamo estudiantil,
SUFIJO esta vacio. Cuando el archivo es solo RCPT sin extensión, ambos PREFIJO y SUFIJO
están vacíos. Cuando SUFIJO sí mismo contiene un carácter "+", SUFIJO1 contiene a la parte
of SUFIJO después del primer carácter "+", SUFIJO2 contiene la parte después de la segunda
"+", y así sucesivamente para cada carácter "+" del sufijo.

MEDIO AMBIENTE


AUTH_USUARIO
Si Mail Avenger se compiló con soporte SASL (que no es el predeterminado, a menos que
suministró el --habilitar-sasl argumento para "configurar"), y si el cliente
se autentica en el servidor usando SASL, luego AUTH_USUARIO se establecerá en el nombre del
usuario autenticado.

MODO VENGADOR
Configúrelo en "rcpt" cuando pruebe si un destinatario debe recibir correo. Establecer como "correo"
(posiblemente después de que falle una comprobación "rcpt") al comprobar si se debe retransmitir el correo (posiblemente
en nombre de un usuario local).

AVUSUARIO
El nombre de usuario local efectivo para el que se ejecuta avenger. Normalmente, esto será
lo mismo que:

$ USER $ {PREFIX + $ SEPARATOR} $ PREFIX \
$ {SUFIJO + $ SEPARADOR} $ SUFIJO

Sin embargo, para archivos especiales de Vengadores como desconocido y tu préstamo estudiantil, puede contener útiles
información, porque a diferencia de la DESTINATARIO_LOCAL Variable ambiental, AVUSUARIO refleja
sustituciones del Mail Avenger dominios y alias archivos.

CLIENTE
Esta variable contiene el nombre de la máquina cliente, como se informa normalmente en
Encabezados "Recibidos:". Su valor tiene la forma:

[usuario@]fortaleza

usuario es el nombre de usuario para la conexión informada por el cliente, si el cliente
admite el protocolo de identificación RFC 1413; de lo contrario, se omite. fortaleza es un
nombre de host DNS verificado para la IP, si asmtpd pudo encontrar uno. De lo contrario, es simplemente
la dirección IP numérica.

CLIENT_COLONSPACE
Establézcalo en 1 si el cliente incluyó un espacio entre dos puntos en el comando "MAIL FROM:"
o "RCPT TO:" y el "<" posterior que comienza con una dirección de correo electrónico.

CLIENTE_DNSFAIL
If Permitir error de DNS se establece en 1 en el asmtpd.conf archivo y resolviendo la IP del cliente a un
hostname devuelve un error temporal, luego esta variable se establecerá en una descripción de
el error.

CLIENTE_HELO
Establezca el argumento que el cliente proporcionó al comando SMTP "HELO" o "EHLO".

CLIENTE_IP
Establecer en la dirección IP del cliente.

NOMBRE DEL CLIENTE
Establezca el nombre DNS verificado del cliente, si asmtpd puede encontrar uno.

CLIENTE_NETHOPS
Establezca el número de saltos de red entre el servidor y el cliente, si asmtpd puede obtener
el cliente o su firewall para devolver un destino ICMP inalcanzable (paquete de tipo 3)
en respuesta a una sonda UDP. Si esto está configurado o no, dependerá del firewall
configuraciones.

CLIENT_NETPATH
Configure tantos saltos de red intermediarios como asmtpd pueda determinar entre el servidor
y el cliente. Qué tan cerca del cliente puede sondear asmtpd dependerá de los firewalls.

CLIENT_PIPELINING
Establézcalo en 1 si el cliente escribió datos después del SMTP Hola or EHLO comando, antes
recibiendo su respuesta. Un cliente SMTP correcto no debe "canalizar" comandos hasta
después de recibir el resultado de la Hola comando y verificando que el servidor acepta
comandos canalizados.

CLIENTE_PUERTO
El número de puerto TCP del cliente.

CLIENTE_POST
Establézcalo en 1 si el cliente envió un comando "POST" en algún momento durante la sesión SMTP.
"POST" no es un comando SMTP válido; es un comando HTTP. Sin embargo, una técnica para
enviar spam implica explotar un proxy web abierto para "publicar" una sesión SMTP en un correo
servidor. Los encabezados HTTP iniciales (incluido el comando HTTP post) simplemente causan SMTP
errores de sintaxis, mientras que el cuerpo del comando POST contiene comandos SMTP. Comprobando
los CLIENTE_POST variable de entorno, para rechazar el correo enviado de esta manera.

CLIENTE_REVIP
El valor de CLIENTE_IP con el orden de los bytes invertido. Adecuado para anteponer
a ".in-addr.arpa" o un dominio RBL para realizar una búsqueda de DNS basada en la dirección IP.

CLIENTE_SYNFP
Contiene una huella digital, que abstrae el contenido del paquete TCP SYN inicial que
cliente enviado para establecer la conexión TCP. El contenido exacto de los paquetes SYN
depende del sistema operativo y la versión del cliente y, por lo tanto, puede revelar
información interesante sobre el tipo de cliente que se conecta a su servidor de correo. los
El formato de la huella dactilar es:

wwww:ttt:D:ss:OOO

Donde los campos son los siguientes:

wwww
el tamaño de la ventana TCP inicial

ttt la IP ttl del paquete recibido

D el bit de IP "no fragmentar"

ss tamaño total del paquete SYN (incluido el encabezado IP)

OOO una lista separada por comas de opciones de TCP, como se muestra a continuación:

N Opción NOP

Wnnn
opción de escala de ventana con valor nnn

Mnnn
valor máximo del tamaño del segmento nnn

S ACK selectivo OK

T opción de marca de tiempo

T0 opción de marca de tiempo con valor cero

CLIENTE_SYNOS
Si asmtpd puede adivinar el sistema operativo del cliente basándose en CLIENTE_SYNFP, se establecerá
CLIENTE_SYNOS al valor de esa suposición. Por ejemplo, para incluir en la lista gris el correo de Windows
máquinas, puede ejecutar:

match -q "* Windows *" "$ CLIENT_SYNOS" && lista gris

DATOS_BYTES
Esta variable no es realmente una variable vengador, ya que solo está disponible en prueba corporal
comandos. Especifica el número de bytes de mensaje transferidos en el SMTP DATA
comando, pero después de convertir secuencias CR NL a NL. En términos generales, así es como
hay muchos bytes en el mensaje, incluidos todos los encabezados después del X-Avenger :, SPF-
Recibido o Recibido: encabezado.

ETCDIR
El valor de EtcDir desde el archivo de configuración asmtpd (o / etc / vengador por defecto).

EXT Cuando avenger corre en nombre de un usuario EXT se establece en la parte de la dirección que
determina el sufijo de la RCPT or mail expediente. Por ejemplo, suponga Separador es "-"
y el destinatario es list-subscribe @fortaleza, donde el fortaleza no es un dominio virtual. Si el
Archivo de alias contiene:

lista: usuario-mylist

Luego, avenger se ejecutará en nombre del "usuario" (porque la expansión de alias produce usuario-
mylist-suscribirse). EXT se establecerá en mylist-suscribirse.

Tenga en cuenta que EXT está vacío cuando no hay sufijo, y que es igual al nombre de
el archivo del sistema que se procesa cuando avenger se ejecuta en un archivo del sistema. Igual que RECIPIENTE,
esta variable no está configurada para prueba corporal comandos.

HOST
Establecido en el nombre del host local, según lo especificado por el NombreHost directiva en
vengador.conf.

CORREO_ERROR
Esta variable se establece cuando la disposición SPF del remitente es fallar, o cuando asmtpd es
incapaz de enviar un mensaje de rebote a la dirección del remitente. En cualquier caso, Mail Avenger
rechazará el correo si la secuencia de comandos no es la predeterminada.

MSGID
Una cadena generada aleatoriamente para este mensaje, que puede ser útil para correlacionar llamadas
para rcpt scripts con bodytest scripts. Tenga en cuenta que esto no está relacionado con el ID de mensaje
encabezado en el mensaje, pero aparece en el encabezado Recibido que Mail Avenger
inserciones.

MI IP
Dirección IP del extremo local de la conexión SMTP TCP.

MI PUERTO
Número de puerto TCP del extremo local de la conexión SMTP TCP. Normalmente será 25.

RECIPIENTE
El destinatario del sobre del mensaje. Tenga en cuenta que esta variable de entorno no es
obsequio para prueba corporal programas, ya que dichos programas pueden ejecutarse en nombre de múltiples
usuarios.

RECIPIENT_HOST
La parte de dominio de RECIPIENTE, doblado a minúsculas, es decir, fortaleza when RECIPIENTE is
local@fortaleza. No presente para prueba corporal programas, como se indica en la descripción de
RECIPIENTE.

DESTINATARIO_LOCAL
La parte local de RECIPIENTE, doblado a minúsculas, es decir, local when RECIPIENTE is
local@fortaleza. No presente para prueba corporal programas, como se indica en la descripción de
RECIPIENTE.

REMITENTE
El remitente envolope de este mensaje de correo (es decir, el argumento proporcionado por el cliente a
el comando SMTP "MAIL FROM:".)

REMITENTE_HOST
La parte del nombre de host de REMITENTE, convertido a minúsculas (es decir, fortaleza in usuario@fortaleza).

REMITENTE_LOCAL
La parte local de REMITENTE, convertido a minúsculas (es decir, usuario in usuario@fortaleza).

REMITENTE_MXES
Una lista de registros MX de DNS para REMITENTE_HOST, si ese nombre de host tiene registros MX.

SENDER_BUNCERES
Para los remitentes de sobres que no están vacíos, asmtpd intenta ver si es posible entregar
rebotar mensajes para el remitente. Que no, SENDER_BUNCERES está configurado en un SMTP de tres dígitos
código de error. Si el primer dígito es 4, el error fue temporal. Si el primer dígito es
5, el error fue permanente. Tenga en cuenta que se considera no aceptar mensajes de rebote
a CORREO_ERROR como se describe anteriormente, y hará que el correo sea rechazado de forma predeterminada.

SEPARADOR
El valor de Separador desde el archivo de configuración asmtpd. No hay defecto
(SEPARADOR no se configurará si no Separador se especifica en el archivo de configuración).
Sin embargo, debe configurarse para "+" con sendmail y "-" con qmail.

SPF0
SPF El resultado de realizar una verificación SPF en el mensaje. Será uno de: ninguna, neutral,
pass, fallar, falla suave, erroro desconocido. Tenga en cuenta que SPF0 y SPF son sinónimos, pero
SPF está en desuso ya que una versión futura de Mail Avenger hará SPF sinónimo de
SPF1.

SPF1
También el resultado de realizar una verificación SPF en el mensaje, pero devuelve nombres diferentes
para que los resultados sean compatibles con las revisiones más recientes del protocolo SPF
especificación. Los nuevos nombres son Ninguna, Neutro, Pass, Fallar, falla suave, Error de temperaturay
Error permanente.

SPF_EXPL
La cadena de explicación que acompaña a un estado de SPF incorrecto.

SSL_CIPHER
Si Mail Avenger ha sido compilado con soporte para el comando STARTTLS (usando el
--habilitar-ssl opción de "configurar"), y el cliente se está comunicando a través de SSL / TLS,
esta variable contendrá una descripción textual del algoritmo.

SSL_CIPHER_BITS
SSL_ALG_BITS
SSL_CIPHER_BITS contiene el número de bits de clave secreta utilizados por los cifrados SSL / TLS.
SSL_ALG_BITS es el número de bits que utiliza el algoritmo. Por ejemplo, si eres
utilizando RC128 de 4 bits con 88 bits enviados en texto sin cifrar, SSL_CIPHER_BITS solo tendrá 40,
ya que esa es la seguridad efectiva, mientras SSL_ALG_BITS serán 128.

EMISOR_SSL
SSL_ISSUER_DN
Si el cliente se ha autenticado correctamente mediante un certificado SSL,
EMISOR_SSL se establecerá en el nombre común del firmante del certificado, mientras que SSL_ISSUER_DN
se establecerá en una representación compacta del nombre distinguido completo del firmante. los
El nombre distinguido completo está en el formato de salida del comando:

openssl x509 -noout -emisor -in cert.pem

Tenga en cuenta que esta variable es principalmente útil si el certificado SSLCA archivo que le ha dado a Mail
Avenger contiene más de una autoridad de certificación o firma otros certificados de CA.
Mail Avenger no aceptará certificados de cliente si no reconoce al firmante
del certificado.

SSL_ASUNTO
SSL_SUBJECT_DN
Si el cliente se ha autenticado correctamente mediante un certificado SSL,
SSL_ASUNTO se establecerá en el nombre común del cliente en el certificado, mientras que
SSL_SUBJECT_DN se establecerá en una representación compacta de la totalidad del cliente
nombre distinguido. El nombre distinguido completo está en el formato de salida del comando:

openssl x509 -noout -subject -in cert.pem

SSL_VERSIÓN
La versión del protocolo SSL / TLS en uso.

UFLINE
Una línea "De" de mbox adecuada para anteponer el mensaje antes de pasar el mensaje
a un programa de entrega. (Esto es sobre todo útil para las reglas de pruebas corporales).

USUARIO
El nombre del usuario con el que se ejecuta avenger.

AVENGER / ASMTPD INTERFAZ


avenger es solo un simple script de shell. Puede inspeccionar el archivo para ver qué está haciendo.
La mayoría de las operaciones interesantes ocurren en asmtpd o en programas externos
engendrado de vengador. Esta sección documenta la interfaz entre asmtpd y avenger.

avenger hereda un socket de dominio Unix conectado a asmtpd en su entrada estándar y
producción. Envía comandos a asmtpd a través de este socket y, de manera similar, lee las respuestas de
eso. Para evitar mezclar mensajes hacia y desde asmtpd con la salida de otros
programas que ejecuta, sin embargo, el script de shell avenger reorganiza sus descriptores de archivo para
que toda la comunicación hacia y desde asmtpd ocurre a través del descriptor de archivo número 3.

Cada comando consta de una sola línea, seguida de una nueva línea (excepto el volvemos mando,
que opcionalmente puede tomar varias líneas). Puede que haya o no una respuesta, posiblemente
dependiendo del resultado del comando. La mayoría de las respuestas constan de cero o más líneas de
la forma

VARIABLE=propuesta de

VARIABLE suele ser un nombre de variable que se proporcionó como parte del comando. los
El script de avenger shell registra los resultados configurando la variable de entorno VARIABLE a
propuesta de, de modo que se pueda acceder a él mediante líneas posteriores del script.

Las respuestas se envían en el orden en que se recibieron los comandos correspondientes. Sin embargo,
asmtpd ejecuta solicitudes de forma asincrónica. Por tanto, se pueden realizar varios
operaciones (como solicitudes de DNS o pruebas de SPF) simplemente escribiendo varios comandos para
asmtpd antes de recibir cualquiera de las respuestas.

Los "." El comando no es operativo, pero asmtpd se hace eco del "." de vuelta al vengador como respuesta. Esta
permite sincronizar el estado del proceso vengador después de emitir uno o más comandos.
Por ejemplo, uno podría emitir varias búsquedas de DNS para verificar varios RBL (tiempo real
listas de agujeros negros), luego emita un . comando, luego espere respuestas. Cuando el . Vuelve,
todos los comandos anteriores también se habrán completado. El vengador setvars el comando simplemente envía
un ".", luego se repite hasta que vuelve a leer el ".", estableciendo variables de cualquier
comandos cuyas respuestas lee en el proceso.

Están disponibles los siguientes comandos:

. El . El comando simplemente se repite mediante asmtpd.

prueba corporal comando
Finaliza la secuencia de comandos de vengador actual. Especifica que asmtpd debe recibir todo el cuerpo
del mensaje, luego ejecute comando (con el mismo ID de usuario que el vengador actual
script) con todo el mensaje de correo como entrada estándar. asmtpd luego responde a
el comando SMTP "DATA" basado en el estado de salida de comando como sigue:

0 Si comando sale con estado 0, asmtpd responderá al comando "DATOS" con
éxito (código SMTP 250), y pasará el mensaje a sendmail (o lo que sea que
se ha configurado como Sendmail in asmtpd.conf) Para entrega.

99 Si comando sale con el estado 99, asmtpd seguirá respondiendo al comando "DATOS"
con un código de respuesta 250 exitoso, pero no pondrá en cola los datos. Cualquiera comando
debe haber hecho algo con los datos o el mensaje se perderá.

100 (también 64, 65, 70, 76, 77, 78, 112)
If comando salidas con el estado 100 (o cualquiera de los estados de salida anteriores), el vengador
rechazar el correo con un error de SMTP duro (código 554). Si comando escribió la salida en su
salida estándar, esta salida se devolverá al cliente de correo. De lo contrario,
asmtpd proporcionará el texto "contenido del mensaje rechazado".

111 (o cualquier otro estado de salida)
If comando sale con el estado 111, el resultado es el mismo que el estado de salida 100,
excepto que asmtpd usará un código de error temporal (451) en lugar de 554.

señal
If comando sale anormalmente debido a una señal, asmtpd también usará 451, pero en
este caso no devolverá la salida del programa al cliente. En cambio lo hará
devolver una descripción del problema.

Tenga en cuenta que asmtpd solo puede ejecutar una prueba corporal comando por mensaje. Si hay varios
destinatarios de un mensaje, todos deben ejecutar el mismo prueba corporal bajo el mismo ID de usuario. Si
dos usuarios desean ejecutar diferentes prueba corporal comandos, o incluso ejecutar el mismo comando bajo
diferentes ID de usuario, asmtpd aplazará el segundo comando SMTP "RCPT" con el mensaje:

452 enviar una copia separada del mensaje a este usuario

Esto hará que el cliente de correo vuelva a enviar el mensaje más tarde al segundo usuario. Para
Evite obligar a los clientes a enviar múltiples copias de mensajes, puede colocar prueba corporal
comandos en archivos de todo el sistema (como el tu préstamo estudiantil archivo de reglas), o utilice un reorientar
comando para redirigir al AvengerUsuario, para que se puedan ejecutar comandos para varios usuarios
bajo el AvengerUsuario ID de usuario.

Tenga en cuenta que el descriptor de archivo 0 heredado por comando está abierto tanto para lectura como para
escribiendo. Por lo tanto, es posible modificar el mensaje antes de que sea puesto en cola por el local.
MTA. El comando edinplace(1) es útil para ejecutar mensajes a través de filtros de spam
que anotan los mensajes antes de ponerlos en cola.

dns-a VARIABLE nombre de dominio
Solicita que asmtpd realice una búsqueda de DNS para registros A (dirección IPv4) en nombre de dominio.
Si existe tal registro A, la respuesta es una lista de una o más direcciones IP:

VARIABLE=Dirección IP ...

Si no existe tal registro A, la respuesta es simplemente:

VARIABLE=

Con el guión estándar de vengador, esto establece VARIABLE a la cadena vacía. Si hay
un error temporal en la resolución de nombres DNS, no hay respuesta y, por lo tanto, con el
script de vengador predeterminado VARIABLE permanecerá desarmado.

Al verificar cosas como RBL, es aconsejable no rechazar el correo debido a una
error de DNS temporal. Puede usar la construcción de shell $ {VARIABLE-tu préstamo estudiantil} $ para regresar
$VARIABLE when VARIABLE está configurado, y tu préstamo estudiantil when VARIABLE no está configurado. similar
${VARIABLE+para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.} devoluciones para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. if VARIABLE se establece, y la cadena vacía en caso contrario.

Por ejemplo, si bad-senders.org contenía una RBL de hosts remitentes no deseados:

echo dns-a BADSENDER "$ SENDER_HOST" .bad-senders.org> & 3
setvars
prueba -n "$ BADSENDER" && rechazar "$ SENDER_HOST es un remitente incorrecto"
prueba -z "$ {BADSENDER + set}" \
&& aplazar "$ SENDER_HOST.bad-senders.org: error de DNS"

Tenga en cuenta que al usar el script avenger, ya existe una función rbl verificar
RBL.

dns-mx VARIABLE nombre de dominio
Similar a dns-a, pero busca registros MX. Una respuesta exitosa es de la forma:

VARIABLE=Prioridad 1:anfitrión-1 [Prioridad 2:anfitrión-2 ...]

Dónde Prioridad 1 es la prioridad MX de anfitrión-1. Como antes, una cadena vacía indica
no existen registros MX y si no hay respuesta indica un error.

dns-ptr VARIABLE Dirección IP
Devuelve una lista de nombres de host DNS verificados para Dirección IP. Como antes, una cadena vacía
for VARIABLE indica que no existen registros PTR y si no hay respuesta indica un error.

dns-txt VARIABLE nombre de dominio
Similar al otro dns comandos, pero busca un registro de tipo TXT. Si varios TXT
existen registros, devuelve solo uno. Establece algunas restricciones en los registros TXT, por
ejemplo no devolverá uno que contenga un carácter de nueva línea.

ruta de red VARIABLE Dirección IP
Mapea los saltos de la red a Dirección IP (esto es similar al sistema traceroute
utilidad, pero más eficiente). La respuesta es de la forma:

VARIABLE=#tiendas salto1 salto2 ...

#tiendas es el número total de saltos de red a Dirección IP si asmtpd puede resolver esto.
(No siempre podrá hacerlo si Dirección IP está detrás de un firewall.) Si asmtpd no puede
averigua esto, el valor es -1. salto1 y los argumentos restantes son las direcciones
de enrutadores en el camino a Dirección IP.

reorientar local
Termina el proceso vengador actual y, en su lugar, procesa el correo como si fuera
siendo enviado a local. Este comando solo está disponible en el modo "rcpt", a diferencia de
modo "correo" (en el que asmtpd ejecuta avenger para ver si debe retransmitir correo para un local
usuario en una máquina cliente no local).

local puede ser un nombre de usuario local o un nombre de usuario local seguido del separador
personaje y una extensión. El nombre se asigna mediante el alias (especificado por
Archivo de alias in asmtpd.conf).

Tenga en cuenta que mientras el AvengerUsuario el usuario puede redirigir a otros usuarios, los usuarios normales pueden
solo redirigir a ellos mismos o al AvengerUsuario.

volvemos código explicación
or
volvemos código-explicación
código-explicación
código explicación
Especifica la respuesta SMTP deseada. También evita el procesamiento posterior del mensaje.
con conjuntos de reglas predeterminados en todo el sistema (como suele ocurrir cuando avenger simplemente sale con
estado 0). código debe ser un número de tres dígitos que comience con 2, 4 o 5. (generalmente 250 para
éxito, 451 para aplazar correo y 554 para rechazar correo).

La primera forma de este comando (con un espacio entre código y explicación) da un
explicación de una sola línea junto con el código de resultado. En la segunda forma, vengador
especifica una respuesta de varias líneas. En este caso, todas las líneas menos la última deben contener un -
entre las código y explicación, mientras que la última línea debe contener un espacio. (Nota
que el volvemos la palabra clave solo aparece en la primera línea; después de comenzar a emitir un
volvemos comando, no se pueden emitir más comandos.)

spf VARIABLE Mecanismo SPF ...
spf0 VARIABLE Mecanismo SPF ...
spf1 VARIABLE Mecanismo SPF ...
Evalúa el cliente de correo basado en mecanismos SPF. Regresará:

VARIABLE=disposición

donde, para spf0, disposición es uno de: ninguna, neutral, pass, fallar, falla suave, error,
or desconocido (aunque la disposición ninguna es realmente imposible). Para spf1, la
equivalente disposición Los Nombres son Ninguna, Neutro, Pass, Fallar, falla suave, Error de temperatura,
Error permanente. (En la actualidad spf es sinónimo de spf0, pero se recomienda que evite
usando spf ya que en una versión futura puede convertirse en un alias para spf1.)

Como ejemplo, suponga que su nombre de usuario es "joe", Separador es "+", y tienes
suscrito a varias listas de correo de yahoo usando la dirección de correo electrónico "joe + yahoo". Si
los spammers comenzaron a enviar correo a "joe + yahoo", querrás rechazar todo el correo
esa dirección excepto la que se origina en las computadoras de yahoo. Las computadoras de Yahoo podrían
corresponden a cualquier cosa que termine en ".yahoo.com" o que comparta un prefijo de dirección IP de 24 bits con
cualquiera de los registros MX de yahoo.com. Esto se puede lograr con el siguiente script en
$ HOME / .avenger / rcpt + yahoo:

echo spf YAHOO ptr: yahoo.com mx: yahoo.com/24 -todos> & 3
setvars
caso "$ YAHOO" en
fallar)
rechazar "Lo sentimos, este alias privado solo para listas de Yahoo"
;;
error)
aplazar "Lo sentimos, error temporal de DNS"
;;
esac

EJEMPLOS


Si nunca utiliza su dirección de correo electrónico como remitente de un sobre, puede rechazar todos los rebotes a
esa dirección con estos comandos en tu RCPT archivo:

prueba -z "$ SENDER" \
&& rechazar "<$ RECIPIENT> no es un remitente válido;" \
"no debería recibir rebotes"

La siguiente secuencia de comandos ejecuta spamassassin (un filtro de spam popular, disponible en
<http://www.spamassassin.org/>) en el cuerpo de un mensaje, a menos que el remitente del mensaje
tiene una disposición de pase SPF o ya va a ser rechazado por defecto.

# La siguiente línea pasa inmediatamente al rechazo predeterminado
# disposición cuando el correo tiene una disposición SPF de falla o el
# remitente no acepta mensajes devueltos.
error

prueba "$ SPF" = aprobado \
|| prueba corporal edinplace -x 111 spamassassin -e 100

La siguiente secuencia de comandos acepta inmediatamente cualquier correo de cualquier máquina en MIT o NYU (proporcionado
MAIL_ERROR no está configurado), "listas grises" máquinas que no están en uno de esos dominios, y si el
greylist pasa, cae a las reglas predeterminadas para todo el sistema:

error

spf TRUSTED ptr: nyu.edu ptr: mit.edu? all
setvars
test pass = "$ TRUSTED" && aceptar Remitente de confianza OK

greylist_delay = 5m
lista gris

La siguiente secuencia de comandos rechaza el correo de los clientes que han emitido un comando "POST" de SMTP
(que no existe) o utilizó una canalización de comandos agresiva y prematura. Si el cliente
poner un espacio después de los dos puntos en los comandos MAIL FROM: o RCPT TO: SMTP, enumera las
mensaje usando una clave que incluye la huella dactilar SYN y los primeros 24 bits de la dirección IP.
Si la disposición SPF del mensaje es un error, pospone el mensaje. Si el SPF
La disposición del mensaje es softfail o none, ejecuta el cuerpo del mensaje a través de
spamasassin.

error

prueba -n "$ CLIENT_POST" -o -n "$ CLIENT_PIPELINING" \
&& rechazar "no spam, por favor"

prueba -n "$ CLIENT_COLONSPACE" \
&& lista gris "$ {CLIENT_IP%. *} $ CLIENT_SYNFP $ SENDER"

caso "$ SPF" en
error)
aplazar "Error temporal en el procesamiento de registros SPF"
;;
softfail | ninguno)
prueba corporal edinplace -x 111 spamassassin -e 100
;;
esac

Si configura su MACUTIL_SENDER la variable de entorno sea "user+bounce+*@your.host.com"
y enviar correo con macutil --enviar correo, puede crear lo siguiente rcpt + rebote + predeterminado a
aceptar correo solo a direcciones de devolución válidas.

macutil: marque "$ SUFIJO"> / dev / null \
|| rechazar "<$ RECIPIENT> .. usuario desconocido"

Junto con esta secuencia de comandos, es posible que desee rechazar los mensajes de rebote a su
direcciones de correo electrónico con su RCPT script, como se describe en el primer ejemplo.

Este ejemplo es un poco más complicado y muestra cómo usar un bodytest para rechazar correo
basado en el contenido del mensaje. El objetivo de esta configuración es comprobar cada mensaje con el
Software antivirus ClamAV (desdehttp://www.clamav.net/>) y el correo spamassassin
filtrar. Si el mensaje contiene un virus o está marcado como spam, debe rechazarse con
una explicación del problema. Construimos un script de shell, $ HOME / .avenger / body, correr
estas pruebas en los cuerpos de los mensajes. El script se puede invocar con la línea

prueba corporal $ HOME / .avenger / body

en tu $ INICIO / .avenger / rcpt expediente. O, alternativamente, el script podría configurarse para ejecutarse
en todo el sistema / etc / avenger / default archivo (en cuyo caso desea asegurarse de que el
AvengerUsuario puede escribir su propio directorio de inicio, para almacenar archivos spamassassin). los
El guión es el siguiente:

#!/ Bin / sh
out = "` clamscan -i --no-summary --mbox - 2> & 1` "
si prueba "$?" = 1; luego
echo Este mensaje parece estar infectado con un virus
printf "% s \ n" "$ out" \
| sed -e '/ Advertencia: / d' -e 's / ^ [^:] *: //' | sort -u
salir de 100
fi

out = "` edinplace -x 111 spamassassin -e 100` "
caso "$?" en
0)
salir de 0
;;
100).
echo Lo sentimos, spamassassin ha marcado su mensaje como spam
mientras lee abc; hacer
test "$ a $ b" = "Análisis de contenido" && break
done
leer un
leer un
leer un
mientras lee abc; hacer
caso "$ a" en
"")
break
;;
- *)
;;
[0-9] *)
printf "% s \ n" "$ c"
;;
*)
printf "% s \ n" "$ a $ b $ c"
;;
esac
done
salir de 100
;;
*)
si prueba -n "$ out"; luego
eco spamassassin fracaso:
printf "% s \ n" "$ out"
más
error del sistema de eco en spamassassin
fi
salir de 111
;;
esac

La primera mitad de este script ejecuta el comprobador de virus clamscan, almacenando la salida en
variable de salida. clamscan sale con el código 1 cuando se encuentra un virus, sale 0 en caso de éxito y
utiliza otros códigos de error para indicar varios errores del sistema. Solo queremos rechazar el correo si
clamscan sale con el código 1. Cuando esto sucede, tomamos la salida de clamscan, la formateamos
de una manera más agradable (eliminando las advertencias) y envíelo a la salida estándar. Un
ejemplo de una transacción SMTP que utiliza este bodytest y la detección de un virus se verá como
esto (probado con la cadena de prueba EICAR especial que marca un positivo con la mayoría de los virus
juego de damas):

DATOS
354 ingrese correo, termine con "." en una línea por sí mismo
Asunto: prueba eicar

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
554-Este mensaje parece estar infectado con un virus
554 Eicar-Test-Signature ENCONTRADO

Si la comprobación de virus falla, la secuencia de comandos ejecuta el mensaje a través de spamassassin para comprobar si
correo no deseado. Tenga en cuenta que spamassassin modifica el mensaje de correo, por lo que debemos ejecutarlo con
edinplace. Tenga en cuenta también que clamscan leerá hasta el final del archivo de entrada, pero esto es
bien, ya que edinplace rebobina su entrada estándar. Usamos el -e bandera para decirle spamassassin
para salir 100 en spam. Entonces, si spamassassin sale 0, aceptamos el correo. Si sale con
cualquier cosa menos 100, algo salió mal y aplazamos temporalmente el correo. Tenga en cuenta que
También podría ser posible aceptar el correo en este punto, pero dado que spamassassin edita el
archivo en su lugar, el mensaje puede ser truncado si spamassassin sale inesperadamente.

Si spamassassin sale 100, rechazamos el correo. También informamos sobre por qué spamassassin ha
rechazó el correo. Aquí nuevamente aprovechamos el hecho de que edinplace rebobina su
entrada estándar tanto antes como después de procesar un mensaje. Porque el descriptor de archivo
ha sido rebobinado, podemos comenzar a procesar el mensaje una línea a la vez con el shell
texto. Spamassassin por defecto (si no lo ha configurado con "report_safe 0")
contiene un informe de spam como este:

Detalles del análisis de contenido: (11.7 puntos, 5.0 requerido)

descripción del nombre de la regla de pts
---- --------------- ------------------------------- -------------------
1.0 RATWARE_RCVD_AT Se encontró una huella digital de correo electrónico masivo (Recibido @)
4.2 X_MESSAGE_INFO Huella digital de correo electrónico masivo (X-Message-Info) encontrada
0.0 MONEY_BACK BODY: Garantía de devolución de dinero
0.5 BIZ_TLD URI: contiene una URL en el dominio de nivel superior BIZ
0.6 URIBL_SBL Contiene una URL incluida en la lista de bloqueo de SBL
[URI: crocpeptide.biz]
0.5 URIBL_WS_SURBL Contiene una URL incluida en la lista de bloqueo WS SURBL
[URI: crocpeptide.biz]
...

Saltamos los encabezados y, para cada resultado, lo imprimimos en la sesión SMTP.
Los resultados negativos / de la lista blanca (los que comienzan con -), no informamos y las líneas de comentarios (no
comenzando con un número) imprimimos con sangría. Una sesión SMTP típica se ve así (usando
la línea de prueba especial GTUBE que activa filtros de spam):

DATOS
354 ingrese correo, termine con "." en una línea por sí mismo
Asunto: prueba de gtube

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
554-Lo siento, spamassassin ha marcado su mensaje como spam
554- Falta fecha: encabezado
554 BODY: Prueba genérica para correo electrónico masivo no solicitado

A continuación, se muestra un ejemplo de cómo utilizar certificados de cliente SSL para la autenticación. Si tienes un
CA privada con nombre común "Mi CA" que firma los certificados de todos sus autorizados
clientes de correo, puede colocar lo siguiente en / etc / avenger / relay para permitir que esos clientes
relé:

prueba "Mi CA" = "$ SSL_ISSUER" \
&& accept "Se permite la retransmisión para el cliente $ SSL_SUBJECT"
rechazar "retransmisión denegada"

Usa avenger en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad