Kali Linux > Information Gathering > SMTP Analysis

 Kali Linux > Information Gathering  > SMTP Analysis

swaks

Prueba SMTP

swaks pretende ser un sistema flexible, programable, orientado a transacciones de herramienta de prueba SMTP. Se ocupa de las características y extensiones SMTP como TLS, autenticación y canalización; múltiples versiones del protocolo SMTP incluyendo SMTP, ESMTP, y LMTP, y múltiples métodos de transporte, incluidos los sockets de dominio UNIX, sockets de dominio en Internet, y tuberías a procesos generados. Las opciones pueden ser especificadas en las variables de entorno, archivos de configuración, y la línea de comandos que permite máxima configuración y facilidad de uso para los operadores y scripters.

Ejemplo
Entregar un mensaje de prueba estándar para user@example.com en el puerto 25 del test-server.example.net:

swaks --to user@example.com --server test-server.example.net

Entregar un mensaje de prueba estándar, que requiere autenticación CRAM-MD5 como usuario me@example.com . Una "X-Test" de cabecera se añade al cuerpo de correo electrónico. La contraseña de autenticación se solicitará.

swaks --to user@example.com --from me@example.com --auth CRAM-MD5 --auth-user me@example.com --header-X-Test "test email"

Prueba de un detector de virus EICAR utilizando en un archivo adjunto. No volver a mostrar la parte del mensaje DATA.:

swaks -t user@example.com --attach - --server test-server.example.com --suppress-data </path/to/eicar.txt

Pruebe un escáner de correo no deseado utilizando GTUBE en el cuerpo de un correo electrónico, enviados a través de los registros MX para example.com:

swaks --to user@example.com --body /path/to/gtube/file

Entregar un mensaje de prueba estándar para user@example.com utilizando el protocolo LMTP a través de un archivo de socket de dominio UNIX

swaks --to user@example.com --socket /var/lda.sock --protocol LMTP

Reportar todos los destinatarios en un archivo de texto que no son verificable en un servidor de prueba:

for E in `cat /path/to/email/file`
do
swaks --to $E --server test-server.example.com --quit-after RCPT --hide-all
[ $? -ne 0 ] && echo $E
done

Términos y convenciones

Transacción
Una transacción es la apertura de una conexión a través de un transporte a un destino y utilizando un protocolo de mensajería para intentar entregar un mensaje.

Objetivo

El destino de una transacción es la cosa que swaks conecta. Este término genérico se utiliza en toda la documentación porque la mayoría de los otros términos incorrectamente implica algo acerca del transporte que se utilice.
 

Transporte
El transporte es el método subyacente utilizado para conectarse al destino.
 

Protocolo
El protocolo es el lenguaje de aplicación utilizado para comunicarse con el destino. En este documento se utiliza SMTP para hablar genéricamente de los tres protocolos soportados a menos que indica que se está hablando de la específica 'SMTP' protocolo y excluyendo a los demás.
 

Mensaje
Existen protocolos SMTP para transferir los mensajes, un conjunto de bytes en un formato acordado que tiene un emisor y un receptor.
 

Sobre
Sobre de un mensaje contiene el "verdadero" remitente y el receptor de un mensaje. También puede ser referido como sus componentes, sobre emisores-receptores y el sobre-. Es importante observar que un sobre de mensajes no tiene que coincidir con su Para: y De: cabeceras.
 

DATOS
La parte de datos de una transacción SMTP es el mensaje real que está siendo transportado. Se compone de dos cabeceras del mensaje y su cuerpo. DATOS y el cuerpo a veces se utilizan como sinónimos, pero siempre son dos cosas distintas en este documento.
 

Encabezados
Encabezados de un mensaje se define como todas las líneas en la sección del mensaje de datos antes de la primera línea en blanco. Contienen información sobre la dirección de correo electrónico que se mostrará al destinatario, como Para:, De:, Asunto:, etc En estos encabezados de documento siempre se escribe con una letra en mayúsculas primero y dos puntos al final.
 

Cuerpo
El cuerpo de un mensaje es la parte de su sección de datos después de la primera línea en blanco.

Opción de procesamiento

Para evitar posibles confusiones en este documento una bandera para swaks siempre se refiere como una "opción". Si la opción tiene más datos, que los datos adicionales que se conoce como un argumento para la opción. Por ejemplo, "- de fred@example.com" podría ser proporcionada a swaks en la línea de comandos, con "- de" ser la opción y "fred@example.com" ser - de la argumentación.

Opciones se puede dar a swaks de tres maneras. Pueden ser especificados en un archivo de configuración, en las variables de entorno, y en la línea de comandos. Dependiendo de la opción específica y si es o no un argumento que le es dado, swaks puede pedir al usuario para el argumento.

Cuando swaks evalúa sus opciones, se busca primero un archivo de configuración (ya sea en un lugar predeterminado o especificado con - config). Luego se evalúa todas las opciones en las variables de entorno. Por último, se evalúa opciones de línea de comandos. En cada ronda de tratamiento, las opciones establecidas anteriormente serán borradas. Además, cualquier opción puede ser precedido por "no-" causar swaks olvidar que la variable se ha definido previamente. Esta capacidad es necesaria porque muchas opciones de tratamiento definido-pero-no-argumento diferente que no definido.

El mecanismo exacto y el formato para el uso de cada uno de los tipos se enumeran a continuación.

ARCHIVO DE CONFIGURACIÓN

Un archivo de configuración se puede utilizar para establecer de uso común o anormalmente opciones detallados. Por defecto busca en swaks postal por $ SWAKS_HOME /. Swaksrc, $ HOME /. Swaksrc y $ LOGDIR /. Swaksrc. Si uno de los se encuentra que existe (y - config no se ha utilizado) que archivo se utiliza como el archivo de configuración.

Además, un archivo de configuración en una ubicación no predeterminada se puede especificar usando - config. Si esto está establecido y determinado no swaks un argumento no utilizará ningún archivo de configuración, incluyendo cualquier archivo por defecto. Si - puntos de configuración en un archivo legible, se utiliza como archivo de configuración, anulando cualquier defecto que pudiera existir. Si apunta a un archivo que no es fácil de leer y de error será mostrado y swaks cerrará.

Un conjunto de "portátiles" valores por defecto también se pueden crear mediante la adición de opciones al final del archivo de programa swaks. Como distribuida, la última línea de swaks debe ser "__END__". Las líneas añadidas después END__ __ será tratado como el contenido de un archivo de configuración. Esto permite que un conjunto de preferencias de usuario que se copian automáticamente de servidor a servidor en un solo archivo.

Si los archivos y la configuración actuales no han sido explícitamente desactivada, la END __ config siempre se lee. Sólo un archivo de configuración otra vez será utilizado por única invocación de swaks, aunque varios archivos de configuración se especifican. Especificación de la opción - config sin argumentos se apaga el procesamiento tanto de la configuración END__ __ y los archivos de configuración reales.

En algunas líneas del archivo de configuración que comienzan con una almohadilla (#) son ignoradas. Todas las otras líneas se supone que son una opción para swaks, con el tablero principal o guiones opcionales. Todo después de un primer espacio de la opción de la línea se supone que es el argumento de la opción y no se procesa Shell. Por lo tanto, se suele citar innecesarios y se recoge de forma literal en el argumento. Aquí está un ejemplo de los contenidos de un fichero de configuración:

# Use siempre este remitente, ningún servidor materia o usuario conectado
- Desde fred@example.com
# Yo prefiero que mis mensajes de correo electrónico de prueba tienen una bonita de cabecera. Nota
# La falta de guiones en la opción y la falta de comillas
# Argumento entero.
h-De: "Fred Ejemplo" <fred@example.com>

Hay una opción en desuso - input-file (o-l) en swaks que fue un precursor del archivo de configuración definida aquí. Esta opción se ha juzgado deficiente y está siendo sustituido por mayor con la idea del archivo de configuración se ha definido anteriormente. La opción todavía existe por el momento, pero su uso no se recomienda. Ya no está documentado, y se eliminará por completo de alguna versión futura.

VARIABLES DE ENTORNO

Las opciones pueden ser suministrados a través de variables de entorno. Las variables están en la forma $ SWAKS_OPT_name, donde nombre es el nombre de la opción que se especifica en la línea de comandos. Debido a que los guiones no están permitidos en los nombres de variables de entorno en la mayoría de los unix-ish conchas, sin precederla con dos guiones deben ser utilizadas y las rayas en el interior el nombre de la opción debe ser reemplazado con guiones bajos. El siguiente crearía las mismas opciones que se muestran en el ejemplo de fichero de configuración:

$ SWAKS_OPT_from = 'fred@example.com'
$ SWAKS_OPT_h_From = '"Fred Ejemplo" <fred@example.com>'

Establecer una variable en un valor vacío es el mismo que si se especifica en la línea de comando sin argumentos. Por ejemplo, el establecimiento de SWAKS_OPT_server = "" causaría swaks para impulsar el uso del servidor al que se conecta en cada invocación.

Además de establecer el equivalente de opciones de línea de comandos, SWAKS_HOME se puede ajustar a un directorio que contiene el defecto. Swaksrc para ser utilizado.

OPCIONES DE LÍNEA DE ÓRDENES

El último método de proporcionar opciones para swaks es a través de la línea de comandos. Las opciones se comportan de una manera compatible con la mayoría de los unix-ish programas de línea de comandos. Muchas opciones tienen tanto una forma corta y larga (por ejemplo,-s y - servidor). Por convención opciones cortas se especifican con un único guión y opciones largas se especifican con un guión doble. Esto sólo es una convención y, o bien prefijo funciona con cualquier tipo.

El siguiente se muestra el ejemplo mostrado en las secciones variables del archivo de configuración y el medio ambiente:

$ Swaks - desde fred@example.com - h-De: "Fred Ejemplo" <fred@example.com> '

Transportes

swaks puede conectarse a un destino a través de las tuberías de Unix ("tuberías"), Unix sockets de dominio ("sockets unix"), o las tomas de dominio de Internet ("conectores de red"). Conexión a través de conectores de red es el comportamiento predeterminado. Debido a la naturaleza singular del transporte utilizado, cada conjunto de opciones en la siguiente sección se excluyen mutuamente. Especificación de más de uno de - servidor, - tubo, o - socket se traducirá en un error. Mezclar opciones entre otros tipos de transporte sólo se traducirá en las opciones irrelevantes siendo ignorados. A continuación se muestra una breve descripción de cada tipo de transporte y las opciones que son específicas para ese tipo de transporte.

Conectores de red
Este transporte intenta entregar un mensaje a través de TCP / IP, el método estándar para la entrega SMTP. Este es el transporte por defecto para swaks. Si ninguna de - servidor, - pipe, o - socket se dan a continuación, este medio de transporte utilizado y el servidor de destino se determina a partir del dominio del destinatario (ver - Servidor abajo para más detalles).

Este transporte requiere la IO :: Socket módulo que forma parte de la distribución estándar de perl. Si este módulo no se puede cargar, al intentar utilizar un transporte esto se traducirá en un error y terminar el programa.

-S, - server [servidor de correo de destino [: puerto]]
Explícitamente decir swaks utilizar sockets de red y especifique el nombre o la dirección IP a la que conectarse, o preguntar si no se proporciona un argumento. Si esta opción no se da y no da opción de transporte es otro, el servidor de correo de destino se determina a partir de los correspondientes registros 


DNS para el dominio de la dirección de correo electrónico del destinatario utilizando el módulo Net :: DNS. Si Net :: DNS no está disponible swaks intentará conectarse a localhost para entregar. Véase también - copia de ruta.
 

-P, - port [puerto]
Especifique el puerto TCP en el que el objetivo es ser utilizado, o preguntar si ningún argumento en la lista. El argumento puede ser un nombre de servicio (como recuperar getservbyname (3)) o un número de puerto. El puerto por defecto es determinado por la opción - protocolo. See - protocolo para obtener más detalles.
 

-Li, - local-interface [IP o nombre de host]
Utilice argumento como la interfaz local para la conexión SMTP saliente, o preguntar al usuario si ningún argumento dado. El argumento puede ser una dirección IP o un nombre de host. La acción por defecto es dejar que el sistema operativo elegir interfaz local.
 

- Copia de ruta [dominio]
El argumento se interpreta como la parte del dominio de una dirección de correo electrónico y se utiliza para encontrar el servidor de destino con la misma lógica que se utiliza para buscar el servidor de destino para una dirección de correo electrónico del destinatario. See - la opción para más detalles sobre cómo el destino se determina a partir del dominio de correo electrónico.
UNIX TOMAS
 

Este método de transporte intentar la entrega de mensajes a través de un archivo de socket de dominio UNIX. Esto es útil para probar MTA / MDA que escuchan en los ficheros socket (por ejemplo, pruebas de entrega para LMTP Cyrus). Este transporte requiere la IO :: Socket módulo que forma parte de la distribución estándar de perl. Si este módulo no se puede cargar, intentar utilizar este medio de transporte se producirá un error y la terminación del programa.
 

- Socket [/ path / to / socket / archivo]
Esta opción toma como argumento un archivo de socket de dominio UNIX. Si swaks no puede abrir este socket se mostrará un error y sale.
 

TUBOS
 

Este transporte intenta generar un proceso y comunicarse con él a través de tuberías. El programa dio lugar debe estar preparado para comportarse como un servidor de correo a través de STDIN / STDOUT. Cualquier MTA diseñado para operar desde inet / Xinet debería apoyar esto. Además, algunos MTAs proporcionar modos de prueba que pueden ser transmitidos a través de STDIN / STDOUT. Este transporte se puede utilizar para automatizar esta prueba. Por ejemplo, si se implementa DNSBL consultar con Exim y quería asegurarse de que estaba trabajando, puede ejecutar 'swaks - pipe "exim-bh 127.0.0.2". En un mundo ideal, el proceso que está hablando debe comportarse exactamente como un servidor SMTP en stdin y stdout. Cualquier depuración deben ser enviados a stderr, que será dirigida a su terminal. En los swaks del mundo real en general puede manejar algunas de depuración en la salida estándar de la niña, pero no hay garantías sobre la cantidad que puede manejar.
Este transporte requiere que el IPC :: Open2 módulo que forma parte de la distribución estándar de perl. Si este módulo no se puede cargar, intentar utilizar este medio de transporte se producirá un error y la terminación del programa.
 

- Pipe [/ path / to / comando y argumentos]
Proporcione un nombre de proceso y los argumentos para el proceso. swaks intentará generar el proceso y comunicarse con él a través de tuberías. Si el argumento no es un swaks ejecutables mostrará un error y sale.

Opciones de protocolo

Estas opciones están relacionadas con la capa de protocolo.

-T, - a [email-address [, correo electrónico, ...]]
Le dice swaks utilizar argumento (s) como el sobre-receptor para el correo electrónico, o solicitar destinatario si ningún argumento proporcionado. Si varios destinatarios se proporcionan y el dominio de destinatario que se necesita para determinar el encaminamiento de dominio del destinatario último siempre se utiliza

No hay ningún valor predeterminado para esta opción. Si no se proporcionan los destinatarios a través de cualquier medio, el usuario se le pide que proporcione una forma interactiva. La única excepción a esto es si un - para dejar de valor se proporciona después de que hará que la transacción SMTP para ser terminado antes de que el destinatario es necesaria.

-F, - desde [dirección de correo electrónico]
Usar como argumento de sobres para el correo electrónico del remitente, o preguntar al usuario si no se especifica el argumento. La cadena de <> se puede suministrar en el sentido de que el remitente nulo. Si el usuario no especifica una dirección de remitente un valor por defecto se utiliza. La parte del dominio de remitente predeterminado es una mejor estimación en el nombre de dominio completo del host local. El método de determinación de la parte local varía. En Windows, Win32 :: LoginName () se utiliza. En Unix-ish plataformas, la variable de entorno $ LOGNAME se utiliza si se ha definido. De lo contrario getpwuid (3) se utiliza. Ver también - force-getpwuid

- Ehlo, - LHLO,-h, - helo [helo-string]
Cadena que se utiliza como argumento para HELO / EHLO / LHLO comando, o el uso del sistema si no se especifica el argumento. Si esta opción no se utiliza una mejor estimación en el nombre de dominio completo del host local se utiliza. Si el Sys :: Hostname módulo, que forma parte de la distribución base, no está disponible al usuario se le pedirá un valor HELO. Tenga en cuenta que Sys :: Hostname se ha observado que no será capaz de encontrar el nombre de host local en determinadas circunstancias. Esto tiene el mismo efecto que si Sys :: Hostname no estaban disponibles.

-Q, - dejar de fumar después de [stop-point]
Punto en el que la transacción debe ser detenido. Cuando el punto de parada requerida se alcanza en la transacción, y siempre que no haya swaks errored a cabo antes de llegar a ella, swaks enviará "SALIR" y tratar de cerrar la conexión limpiamente. Estos son los argumentos válidos y notas sobre su significado. CONNECT, BANDERA
Terminar la sesión después de recibir la imagen de bienvenida de la meta.
 

PRIMERA HELO, primer EHLO, PRIMERA LHLO
En una sesión de STARTTLS (pero no tls-on-connect), terminar la transacción después de que el primero de los dos helicópteros. En una transacción sin STARTTLS, se comporta igual que HELO (ver más abajo).
TLS

Salga de la transacción inmediatamente después de una negociación TLS. Tenga en cuenta que esto ocurre en diferentes lugares dependiendo de si STARTTLS o tls-on-connect se utilizan. Esto siempre se cierra después del punto donde TLS se han negociado, independientemente de si se ha intentado.

HELO, EHLO, LHLO
En una sesión de STARTTLS, se retiró después de la segunda HELO. De lo contrario se retiró después de la primera y única HELO.
AUTH
Salir después de la autenticación. Esto siempre se cierra después del punto donde la autenticación se han negociado, independientemente de si se ha intentado.
CORREO DE
Salir después de MAIL FROM: se envía
RCPT, AL
Salir después RCPT TO: se envía.
 

- Tiempo de espera [Tiempo]
Utilice argumento como el tiempo de espera de transacción SMTP, o preguntar al usuario si ningún argumento dado. Argumento puede ser un dígito puro, que se interpretted como segundo, o puede tener un especificador s o m (5S = 5 segundos, 3m = 180 segundos). Como caso especial, 0 significa no hacer tiempo de espera de las transacciones. El valor predeterminado es 30.
 

- Protocol [protocolo]
Especificar el protocolo a utilizar en la transacción. Las opciones válidas se muestran en la siguiente tabla. En la actualidad el "núcleo" protocolos SMTP, ESMTP, y LMTP. Mediante el uso de variaciones de estos tipos de protocolo de una concisamente puede especificar puertos por defecto, si la autenticación se debe intentar, y el tipo de conexión TLS que debe intentarse. El protocolo predeterminado es ESMTP. Esta tabla muestra los argumentos disponibles a - Protocolo y las opciones de cada uno de los conjuntos como un efecto secundario:

SMTP
HELO, "-p 25"
Ssmtp
EHLO-> HELO, "-TLSC-p 465"
SSMTPA
EHLO-> HELO, "-a-TLSC-p 465"
SMTPS HELO, "-TLSC-p 465" ESMTP
EHLO-> HELO, "-p 25" ESMTPA
EHLO-> HELO, "-un-p 25"
ESMTPS
EHLO-> HELO, "-tls-p 25"
ESMTPSA
EHLO-> HELO, "-a-tls-p 25"
LMTP LHLO, "-p 24"
LMTPA LHLO, "-un-p 24"
LMTPS LHLO, "-tls-p 24"
LMTPSA LHLO, "-a-tls-p 24"

- Tubería
Si el servidor remoto lo admite, intente PIPELINING SMTP (RFC 2920). Esta es una opción más joven, si tiene problemas con él por favor notifique al autor. Las posibles áreas problemáticas incluyen los servidores Data aceptando a pesar de que no había receptores válidos (swaks debe enviar cuerpo vacío en ese caso, no QUIT) y bloqueos causados ​​por el envío de paquetes fuera del tamaño de la ventana TCP.
 

- Force-getpwuid
Envía swaks utilizar el método getpwuid de encontrar el remitente predeterminado parte local en lugar de tratar $ LOGNAME primero.


TLS / CIFRADO

Estas son las opciones relacionadas con el cifrado de la transacción. Estos han sido probados y confirmados para trabajar con los tres métodos de transporte. El módulo Net :: SSLeay se utiliza para realizar el cifrado cuando se solicite. . Si este módulo no es swaks cargables o bien ignorar la solicitud de TLS o error, en función de si la solicitud fue opcional STARTTLS se define como una extensión en el protocolo ESMTP y no estará disponible si - protocolo está establecido en una variación de SMTP . Debido a que no se define en el propio protocolo, - tls-on-connect está disponible para cualquier tipo de protocolo si el destino lo admite.

-Tls
Requerir conexión para utilizar STARTTLS. Salir si no está disponible por cualquier motivo TLS (no se anuncia, las negociaciones fracasaron, etc).
 

-TLSO, - tls-opcional
Intente usar STARTTLS si está disponible, continúe con la operación normal si TLS no pudo ser negociado por cualquier razón
 

-Tlsos, - tls-opcional-strict
Intente usar STARTTLS si están disponibles. Proceda con la transacción si TLS se negocia con éxito o STARTTLS no anunciado. Si se anuncia STARTTLS pero fallan las negociaciones TLS, tratar como un error y abortará la transacción.
 

- TLSC, - tls-on-connect
Inicie una conexión TLS inmediatamente al conectar. Tras convención común, si se especifica esta opción los cambios de puerto predeterminados 25 a 465, aunque esto todavía se puede anular con la opción - port.
 

- Tls-get-cert-peer [/ path / to / file]
Obtenga una copia del certificado del equivalente de TLS. Si no se proporciona un argumento, éste será mostrado a STDOUT. Si un argumento es dado que se supone que es una ruta de sistema de archivos especificando, en el certificado debe ser escrito. El certificado guardado entonces se puede examinar utilizando herramientas estándar, como el comando openssl. Si un archivo se especifica su contenido se sobrescribirá.

Autenticación

swaks intentará autenticarse en el servidor de correo de destino si se lo indiquen. Esta sección detalla los tipos de autenticación disponibles, requisitos, opciones y sus interacciones, y otros puntos finos en el uso de la autenticación. Puesto que la autenticación se define como una extensión en el protocolo ESMTP no estará disponible si - protocolo está establecido en una variación de SMTP.

Todos los métodos de autenticación requieren codificación base64. Si el módulo MIME :: Base64 perl es swaks cargables está intentando utilizarla para realizar estas codificaciones. Si MIME Base64 :: no es swaks disponibles utilizará sus propias rutinas a bordo base64. Estos son más lentas que las MIME :: Base64 rutinas y menos crítica, a pesar de que se han probado a fondo. Uso del MIME :: Base64 módulo se anima.

Si se requiere autenticación (ver opciones abajo para cuando es y no es necesario) y los requisitos no se cumplen para el tipo de autenticación disponibles, swaks muestra un error y se cerrará. Dos maneras en que esto puede suceder incluye el obligar swaks utilizar un tipo específico de autenticación que swaks no se puede utilizar debido a los requisitos que faltan, o permitir swaks de utilizar cualquier tipo de autenticación, pero el servidor sólo anuncia tipos swaks no puede soportar. En los casos anteriores swaks errores hacia fuera en tiempo de opción de proceso, ya que sabe de antemano que no será capaz de autenticar. En este último caso, los swaks se error en la fase de autenticación de la transacción SMTP desde swaks no será consciente de que no será capaz de autenticar hasta ese punto.

Los siguientes son los tipos de autenticación soportados, incluyendo las notas y requisitos individuales.

Las siguientes opciones afectan el uso swaks 'de autenticación. Estas opciones están relacionadas entre sí. Por ejemplo, especificando - auth-user indica - auth y - auth contraseña. Especificación - auth-opcional implica - auth-user y - auth-password, etc

-A, - auth [auth-type [, auth-type, ...]]
Requerir swaks para autenticar. Si no se proporciona un argumento, cualquier apoyo autori-tipos anunciados por el servidor se trató de un éxito o hasta que todo falle. Si uno o más tipos de autenticación se especifica como un argumento, cada uno, que también es compatible con el servidor se prueban en orden hasta que un éxito o fracaso absoluto. Esta opción requiere swaks para autenticar, por lo que si no comunes autori-tipos se encuentran o tener éxito sin credenciales, swaks muestra un error y se cerrará.

Las siguientes tablas muestran los tipos válidos autori-

LOGIN, PLAIN
Estos tipos de autenticación básicos son totalmente compatibles y probados y no tienen requisitos adicionales
 

CRAM-MD5
 

El autenticador CRAM-MD5 requiere el módulo Digest :: MD5. Está probado y se cree que trabajar en contra de cualquier servidor que implementa.
DIGEST-MD5
 

El autenticador DIGEST-MD5 (RFC2831) requiere que el módulo DigestMD5 Authen ::. Sólo sabe que han sido probados contra Communigate y por lo tanto puede tener algunas deficiencias de implementación.
 

CRAM-SHA1
 

El CRAM-SHA1 autenticador requiere el módulo Digest :: SHA1. Este tipo sólo se ha probado contra una implementación no estándar en un servidor Exim y por lo tanto puede tener algunas deficiencias de implementación.
 

NTLM / SPA / MSN
Estos autenticadores requieren el módulo Auten :: NTLM. Tenga en cuenta que hay dos módulos utilizando el espacio de nombres Authen :: NTLM en CPAN. El Mark Bush implementación (Authen/NTLM-1.03.tar.gz) es la versión requerida por swaks. Este tipo ha sido probado contra Exim, Communigate y Exchange 2007.

Además del nombre de usuario y contraseña estándar, este tipo de autenticación también puede reconocer un "dominio". En lugar de crear una nueva opción para este tipo de autenticación única, el dominio se puede pasar mediante la adición de "DOMAIN%" al final del nombre de usuario. Por ejemplo, si "-AP NTDOM% user@example.com" se hace pasar ", user@example.com" es el nombre de usuario y "NTDOM" es el dominio. Tenga en cuenta que esto nunca ha sido probado con un servidor de correo que no ignora DOMINIO así que esto puede ser implementado incorrectamente.

-Ao, - auth-opcional [auth-type [, auth-type, ...]]
Esta opción se comporta igual que - auth salvo que lo solicite autenticación en lugar de que lo requiera. Si no comunes autori-tipos se encuentran o sin credenciales tener éxito, el producto swaks como si la autenticación no se había solicitado.
 

-Aos, - auth-opcional-strict [auth-type [, auth-type, ...]]
Esta opción es un compromiso entre - auth y - auth opcional. Si no comunes autori-tipos se encuentran, se comporta como si swaks - auth-opcional especificado fueron y continúa con la operación. Si no puede swaks apoyo solicitado auth-tipo, el servidor no anuncia ningún comunes de autenticación de tipo, o si no hay credenciales de éxito, se comporta como si swaks - auth se utilizaron y sale con un error.
 

-Au, - auth-user [nombre de usuario]
Proporcione el nombre de usuario que se utilizará para la autenticación, o preguntar al usuario si no se proporciona el argumento. La cadena de <> se puede suministrar para significar un nombre de usuario vacío.
 

-P, - auth-password [contraseña]
Proporcione la contraseña que se utilizará para la autenticación, o preguntar al usuario si no se proporciona el argumento. La cadena de <> se puede suministrar en el sentido de una contraseña vacía
 

-Am, - auth-map [auth-alias = auth-type [, ...]]
Proporciona un método para asignar nombres alternativos a los tipos de autenticación de base. Útil para todos los sitios que utilizan nombres alternativos para los tipos comunes. Esta funcionalidad es realmente utilizada internamente para asignar tipos de SPA y MSN en el NTLM tipo base. El argumento de línea de comandos para simular esto sería "- auth-map SPA = NTLM, MSN = NTLM". Todas las autorida-tipos mencionados anteriormente son objetivos válidos para la cartografía, excepto SPA y MSN
 

-Apt, - auth-plaintext
En lugar de mostrar cadenas AUTH base64 codificado que se transmiten, traducirlos a texto antes de imprimir en pantalla.

Opciones de salida

Por defecto swaks ofrece una transcripción de sus transacciones a su llamador (stdout / stderr). Esta transcripción tiene como objetivo ser lo más fiel posible a la representación de la transacción a pesar de que se modifique este producto mediante la adición de prefijos de información a las líneas y al proporcionar versiones de texto de las transacciones TLS

Los prefijos "informativos" se denominan pistas de transacción. Estas sugerencias son inicialmente integrado por aquellos que son líneas que marcan la salida de swaks en sí, los mensajes ya sea informativos o de error, y las que indican una línea de datos realmente enviados o recibidos en una transacción. Esta tabla indica las pistas y sus significados:
 

===
Indica una línea informativa generada por swaks

***

Indica un error generado en swaks

->

Indica una línea esperada enviado por swaks al servidor de destino

~>

Indica una TLS codificado, línea esperada enviado por swaks al servidor de destino

**>

Indica una línea inesperado enviado por swaks al servidor de destino

* ~>

Indica una TLS codificado, línea inesperado enviado por swaks al servidor de destino

<-

Indica una línea esperada enviado por el servidor de destino para swaks

<~

Indica una TLS codificado, línea esperada enviado por el servidor de destino para swaks

<**

Indica una línea inesperado enviado por el servidor de destino para swaks

<~ *

Indica una TLS codificado, línea inesperado enviado por el servidor de destino para swaks
Las siguientes opciones controlan qué y cómo de salida se muestra a la persona que llama. -N, - suprimir datos- Resume la parte de datos de la transacción SMTP en lugar de imprimir cada línea. 


Esta opción es muy útil, cercana a la requerida, cuando se utiliza para enviar correos electrónicos swaks ciertas pruebas. 

 Los correos electrónicos con archivos adjuntos, por ejemplo, rápidamente abrumar a un terminal si los datos no son suprimidos. 
-Stl, - show-time-lapse [i] Mostrar lapso de tiempo entre enviar / recibir parejas. 

Esta opción es muy útil cuando Time :: HiRes está disponible, en cuyo caso el tiempo transcurrido se mostrará en milésimas de segundo. Si Time :: HiRes no está disponible o "i" se da como argumento el lapso se mostrará en segundos enteros solamente. -N, - no-pistas 

No volver a mostrar indicios de transacción (útil en conjunción con-hr para crear copy / paste-capaces de transacciones).

-H, - hide-recepción No muestra las líneas enviadas desde el servidor remoto que está siendo recibido por swaks -Hs, - hide-enviar 

No mostrar líneas que están siendo enviados por swaks al servidor remoto -Hi, - hide-informacional 

No mostrar sin error las líneas informativas de swaks sí mismo. -Ha, - hide-all No mostrar contenido al terminal. -S, - silent [nivel] Porque swaks estar en silencio. 

Si no se proporciona un argumento o un argumento de "1" se da, no imprima salida a menos que / hasta que se produce un error, después de lo cual todos los resultados se muestra. Si un argumento de "2" se da, sólo se imprimen los errores. Si la opción "3" se da, no muestran ninguna salida nunca. 

Tenga en cuenta que esto solía ser una opción aditivo ("-S-S" era equivalente a "S-2"). Después de su manipulación entorno opción se introdujo este fue cambiado. El método aditivo todavía funciona, pero está en desuso y se eliminará en su totalidad en una versión futura
 

- Apoyar Imprimir capacidades y salir. Algunas características requieren módulos no estándar de Perl. Esta opción evalúa si estos módulos están presentes y muestra que la funcionalidad está disponible y que no es, y qué módulos tendría que ser añadido para obtener la funcionalidad que falta. 

- Help Muestra la información de ayuda.

- Version Muestra la información de versión.

 

SISTEMAS OPERATIVOS

Este programa fue pensado principalmente para su uso en sistemas operativos tipo Unix, y debería funcionar en cualquier versión razonable de la misma. Ha sido desarrollado y probado en Solaris, Linux y Mac OS X y es característica completa sobre todos ellos. 


Este programa es conocido por demostrar la funcionalidad básica de Windows usando Perl de ActiveState. No se ha probado completamente. Conocido por trabajar son la funcionalidad SMTP básico y LOGIN el, PLAIN y CRAM-MD5 tipos de autenticación. Desconocido es ninguna funcionalidad TLS y los tipos NTLM / SPA y Digest-MD5 autenticación.

Debido a que este programa debería funcionar en cualquier lugar obras de Perl, me gustaría saber acerca de los nuevos sistemas operativos ha utilizado a fondo en swaks así como los problemas que surjan en un nuevo sistema operativo.
 

Los servidores de correo Este programa fue desarrollado casi exclusivamente en contra de los servidores de correo Exim. Se ha usado casualmente por el autor, aunque no probado a fondo, con Sendmail, Smail, Exchange, Oracle Collaboration Suite, y Communigate. Debido a que toda la funcionalidad en swaks se basa fuera de los estándares conocidos que debería funcionar con cualquier servidor de correo bastante moderno. Si se encuentra algún problema, por favor avisar al autor a la siguiente dirección.
Códigos de salida
0
no han ocurrido errores

1

Error al analizar las opciones de línea de comandos

2

Error al conectar con el servidor remoto

3

Tipo de conexión desconocida

4

mientras se ejecuta con el tipo de conexión de "pipa", problema fatal escribir o leer desde el proceso hijo

5

mientras se ejecuta con el tipo de conexión de "tuberías", proceso hijo murió de forma inesperada. Esto puede significar que el programa especificado con - tubo no existe.

6

Conexión cerrada inesperadamente. Si el cierre se detecta en respuesta a la "Salir" swaks envía después una respuesta inesperada, el código de error para esa respuesta inesperada se utiliza en su lugar. Por ejemplo, si un servidor de correo devuelve una respuesta 550 a un MAIL FROM: e inmediatamente cierra la conexión, swaks detecta que la conexión está cerrada, sino que utiliza el código de salida más específico 23 para detalles de la naturaleza del fallo. Si por el contrario el servidor devuelve un código 250 y, a continuación inmediatamente cierra la conexión, swaks utilizará el código de salida 6, ya que no es un código de salida más específico.

10

error en los prerrequisitos (necesario módulo no está disponible)

21

error al leer pancarta inicial del servidor

22

error en HELO transacción

23

error en la transacción de correo

24

no RCPTs aceptado

25

servidor devolvió el error al solicitar datos

26

servidor no acepta datos de correo siguientes

27

servidor devolvió el error después de dejar de sesión normal petición

28

error en la transacción AUTH

29

error en TLS transacción

32

error en la negociación EHLO siguiente TLS 

No hay comentarios:

Publicar un comentario