Capítulo 6. Aplicaciones de red

Tabla de contenidos

6.1. Navegadores web
6.1.1. Spoofing de la cadena User-Agent
6.1.2. extensión del navegador
6.2. El sistema de correo
6.2.1. Fundamentos de correo
6.2.2. Limitación del servicio moderno de correo
6.2.3. Expectativa histórica del servicio de correo
6.2.4. Agente de transporte de correo (Mail transport agent, MTA)
6.2.4.1. Configuración de exim4
6.2.4.2. Configuración de postfix con SASL
6.2.4.3. La configuración de la dirección de correo
6.2.4.4. Operaciones fundamentales MTA
6.3. Servidor de acceso remoto (SSH) y utilidades
6.3.1. Fundamentos de SSH
6.3.2. Nombre de usuario en el host remoto
6.3.3. Conectarse sin contraseñas del equipo remoto
6.3.4. Tratando con clientes SSH extraños
6.3.5. Configuración ssh-agent
6.3.6. Enviar un correo desde un host remoto
6.3.7. Puerto de reenvío para túnel SMTP/POP3
6.3.8. Apagar un sistemas remoto utilizando SSH
6.3.9. Resolución de problemas de SSH
6.4. Servidor de impresión y utilidades
6.5. Servidores de aplicaciones en otras redes
6.6. Otros clientes de aplicaciones de red
6.7. Diagnóstico de los demonios del sistema

Puede ejecutar varias aplicaciones de red una vez establecida la conectividad de red (ver Capítulo 5, Configuración de red).

[Sugerencia] Sugerencia

Puede leer una guía concreta y moderna sobre la infraestrucura de red de Debian en El Manual de Administración de Debian — Infraestructura de red.

[Sugerencia] Sugerencia

Si habilitó la "Verificación en dos pasos" con algún ISP, necesita obtener una contraseña de aplicación para acceder a los servicios POP y SMTP desde su programa. Es posible que deba, primero, aprobar su IP de host.

Existen muchos paquetes de navegadores web para acceder al contenido remoto por medio del Protocolo de Transferencia de Hipertexto (Hypertext Transfer Protocol) (HTTP).


Esta sección se centra en las típicas estaciones de trabajo móviles con conexiones a Internet de consumo.

[Atención] Atención

Si quiere tener un servidor de correo en Internet, debería leer la siguiente información básica al respecto.

Un mensaje de correo electrónico consta de tres componentes, el sobre del mensaje, la cabecera del mensaje y el cuerpo del mensaje.

  • SMTP utiliza la información del sobre de «destino (To)« y «origen(From)« para entregar el correo electrónico. (La información del «origen(From)« también se denomina como dirección de retorno (bounce address), Origen_, etc.).

  • La información de la cabecera sobre el «origen(From)« y el «destine(To)« es la que muestra por parte del cliente de correo. (Generalmente será la misma que conste en el sobre del mensaje, pero no siempre es el caso.)

  • El formato del mensaje de correo electrónico, que abarca los datos de cabecera y cuerpo, se amplía mediante Extensiones de correo de Internet multiuso (MIME) desde el texto plano ASCII a otras codificaciones de caracteres, así como archivos adjuntos de audio, vídeo, imágenes y programas de aplicación.

Los clientes de correo electrónico basados en GUI ofrecen todas las funciones siguientes mediante una configuración intuitiva basada en GUI.

  • Crea e interpreta los datos de la cabecera y el cuerpo del mensaje utilizando Extensiones de correo de Internet multiuso (MIME) para tratar el tipo de datos y la codificación del contenido.

  • Se autentica a sí mismo en los servidores SMTP e IMAP del ISP utilizando la antigua autenticación de acceso básica o la moderna OAuth 2.0. (Para OAuth 2.0, establézcalo a través de la configuración del entorno de escritorio. Por ejemplo, "Configuración" -> "Cuentas en línea")

  • Envía el mensaje al servidor SMTP smarthost del ISP que escucha en el puerto de envío de mensajes (587).

  • Recibe el mensaje almacenado en el servidor del ISP desde el puerto TLS/IMAP4 (993).

  • Puede filtrar correos por sus atributos.

  • Puede ofrecer funcionalidades adicionales: Contactos, Calendario, Tareas, Memos.


El servicio de correo moderno tiene algunas limitaciones para minimizar la exposición a los problemas de spam (correo electrónico no deseado y no solicitado).

  • No es realista ejecutar un servidor SMTP en una red de nivel consumidor para enviar correo directamente a un host remoto de manera confiable.

  • Cualquier host puede rechazar discretamente un correo en ruta a menos que parezca lo más real posible.

  • No es realista esperar que un simple host inteligente envíe correos sin relación con direcciones de correo fuente al host remoto de manera confiable.

Esto es porque:

Las estaciones de trabajo móviles de Debian pueden configurarse sólo con clientes de correo electrónico basados en una GUI completa sin agente de transferencia de correo (MTA) programa después de Debian 12 Bookworm.

Debian instalaba tradicionalmente algún programa MTA para dar soporte a los programas que esperaban el comando /usr/sbin/sendmail. Tales MTA en estaciones de trabajo móviles deben hacer frente a Sección 6.2.2, “Limitación del servicio moderno de correo” y Sección 6.2.3, “Expectativa histórica del servicio de correo”.

Para estaciones de trabajo móviles, la elección típica de MTA es exim4-daemon-light o postfix con su opción de instalación como "Mail sent by smarthost; received via SMTP or fetchmail" seleccionada. Se trata de MTA ligeros que respetan "/etc/aliases".

[Sugerencia] Sugerencia

Configurar exim4 para enviar el correo de Internet a través de múltiples smarthosts correspondientes para múltiples direcciones de correo electrónico de origen no es trivial. Si necesita tal capacidad para algunos programas, configúrelos para usar msmtp que es fácil de configurar para múltiples direcciones de correo electrónico de origen. Entonces deje el MTA principal sólo para una única dirección de correo electrónico.


Para configurar el correo de Internet por medio de un equipo inteligente, (re)configure el paquete exim4-* como se muestra a continuación.

$ sudo systemctl stop exim4
$ sudo dpkg-reconfigure exim4-config

En «Tipo general de configuración de correo« seleccione «correo enviado por equipo inteligente; recibido por SMTP o fetchmail«.

Asigne a «Nombre del sistema de correo:« a su valor por defecto como FQDN (ver Sección 5.1.1, “La resolución del nombre del equipo”).

Asigne «Direcciones IP escuchan en las conexiones SMTP de entrada:« a sus valores por defecto como «127.0.0.1 ; ::1».

Borre el contenido de «Otros destinos desde los cuales se acepta correo:«.

Borre el contenido de «Máquinas para el reenvío de correo:«.

Asigne «Direcciones de IP o nombre de equipos para correo inteligente de salida:« a «smtp.hostname.dom:587«.

Selecciona "No" para "¿Ocultar el nombre del correo local en el correo saliente?". (Use "/etc/email-addresses" como en Sección 6.2.4.3, “La configuración de la dirección de correo”, en su lugar).

Conteste a «Mantener el número de peticiones DNS a mínimo (Marcado bajo demanda) como sigue.

  • «No« si el sistema esta conectado a Internet en el arranque.

  • «Sí» si el sistema no esta conectado a Internet en el arranque.

Asigne «Método de entrega para correo local:« a «mbox format in /var/mail«.

Selecciona "Sí" para "¿Dividir la configuración en archivos pequeños?:".

Crear las entradas de contraseñas para el equipo inteligente editando «/etc/exim4/passwd.client».

$ sudo vim /etc/exim4/passwd.client
 ...
$ cat /etc/exim4/passwd.client
^smtp.*\.hostname\.dom:username@hostname.dom:password

Configura exim4(8) con "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. en " /etc/default/exim4" para minimizar el uso de los recursos del sistema. (opcional)

Inicie exim4 como se muestra.

$ sudo systemctl start exim4

El nombre del equipo en «/etc/exim4/passwd.client» no debería ser un alias. Compruebe el nombre real del equipo como sigue.

$ host smtp.hostname.dom
smtp.hostname.dom is an alias for smtp99.hostname.dom.
smtp99.hostname.dom has address 123.234.123.89

Yo utilizo las expresiones regulares en «/etc/exim4/passwd.client» para trabajar sobre el tema de los alias. SMTP AUTH probablemente funciones incluso si el ISP redirige el equipo señalado por medio de alias.

Puede actualiza su configuración de exim4 de forma manual como sigue:

  • Actualice los archivos de configuración de exim4 en «/etc/exim4/».

    • Creando «/etc/exim4/exim4.conf.localmacros» para asignar MACROS y editando «/etc/exim4/exim4.conf.template». (no dividir la configuración)

    • creando nuevos archivos y editando los existente en los subdirectorios en «/etc/exim4/exim4.conf.d». (dividir la configuración)

  • Ejecuta "systemctl reload exim4".

[Atención] Atención

Iniciar exim4 tarda mucho tiempo si (valor por defecto) «No« fue elegido a la pregunta de denconf «Mantener el número de preguntas DNS al mínimo (Marcar bajo demanda)?« y el sistema no esta conectado a Intenet cuando se inicia.

Por favor, lea la guía oficial en: «/usr/share/doc/exim4-base/README.Debian.gz» y update-exim4.conf(8).

[Aviso] Aviso

A efectos prácticos, utilice SMTP con STARTTLS en el puerto 587 o SMTPS (SMTP sobre SSL) en el puerto 465, en lugar de SMTP simple en el puerto 25.

Para el correo de Internet por medio de un equipo inteligente, podría leer primero postfix documentation y las páginas claves del manual.


(Re)configure los paquetes postfix y sasl2-bin según se explica a continuación.

$ sudo systemctl stop postfix
$ sudo dpkg-reconfigure postfix

Elija «Internet con equipo inteligente«.

Asigne «equipo de reenvio SMTP (el blanco para no elegir ninguno):« a «[smtp.hostname.dom]:587» y configúrelo según sigue.

$ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
$ sudo postconf -e 'smtp_sasl_auth_enable = yes'
$ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
$ sudo postconf -e 'smtp_sasl_type = cyrus'
$ sudo vim /etc/postfix/sasl_passwd

Cree las entradas de las contraseñas para el equipo inteligente.

$ cat /etc/postfix/sasl_passwd
[smtp.hostname.dom]:587     username:password
$ sudo postmap hush:/etc/postfix/sasl_passwd

Inicie postfix con lo siguiente.

$ sudo systemctl start postfix

Aquí la utilización de «[» y «]» en el diálogo dpkg-reconfigure y «/etc/postfix/sasl_passwd» asegura que no se marque la entrada MX pero que se utilice directamente el nombre del equipo especificado. Ver «Enabling SASL authentication in the Postfix SMTP client« en «/usr/share/doc/postfix/html/SASL_README.html».

Existen algunos archivos de configuración de la dirección de correo para el transporte de correo, su entrega y los agentes de usuario.


El nombre del correo en el archivo «/etc/mailname» normalmente es un nombre de dominio totalmente cualificado (FQDN) que corresponderá a una dirección IP del equipo. Para un equipo ubicuo la cual no tiene un nombre asociado a una dirección IP, asigne este nombre de correo al valor de «hostname -f». (Esta es una elección segura que funciona tanto con exim4-* como con postfix.)

[Sugerencia] Sugerencia

El contenido de «/etc/mailname» se usa por muchos programas que no son MTA para determinar su comportamiento por defecto. En mutt, se asignan las variables «hostname» y «from» en el archivo ~/muttrc y sobreescribe el valor de mailname. Para los programas en el paquete devscripts, como bts(1) y dch(1), exporta las variables de entorno «$DEBFULLNAME» y «$DEBEMAIL» para sobreescribirlo.

[Sugerencia] Sugerencia

El paquete popularity-contest de forma habitual envia el correo desde la cuenta de superusuario con FQDN. Necesita asignar MAILFROM en /etc/popularity-contest.conf como se describe en el archivo /usr/share/popularity-contest/default.conf. De otra forma, su correo será rechazado por el servidor SMTP del equipo inteligente. Aunque es aburrido, esta aproximación es más segura que reescribir la dirección remitente de todos los correos por el MTA y podría ser usado por otros demonios y archivos de órdenes cron.

Cuando se asigna mailname a «hostname -f», la simulación de la dirección de correo remitente por medio de MTA puede ser realizado por lo siguiente.

  • El archivo «/etc/email-addresses» para exim4(8) se explica en exim4-config_files(5)

  • El archivo «/etc/postfix/generic» para postfix(1) se explica en el general(5)

Los siguientes pasos añadidos son necesarios para postfix.

# postmap hash:/etc/postfix/generic
# postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
# postfix reload

Puede probar la configuración de la dirección de correo usando lo siguiente.

  • exim(8) con las opciones -brw, -bf, -bF, -bV, …

  • postmap(1) con la opción -q.

[Sugerencia] Sugerencia

Exim proporciona varias herramientas como exiqgrep(8) y exipick(8). Consulte «dpkg -L exim4-base|grep man8/» para las órdenes disponibles.

Secure SHell (SSH) es la manera segura de conectarse a través de Internet. Una versión libre de SSH es OpenSSH y esta disponible en Debian mediante los paquetes openssh-client y openssh-server.

Para el usuario, ssh(1) funciona de una forma más inteligente y segura que telnet(1). No como la orden telnet, la orden ssh no para con el carácter de escape telnet (inicio por defecto CTRL-]).


Aunque shellinabox no es un programa SSH, se incluye aquí como una alternativa interesante para el acceso remoto a terminales.

Ver también Sección 7.9, “conexión del servidor X” para conectarse a programas cliente X remotos.

[Atención] Atención

Ver Sección 4.6.3, “Medidas extraordinarias de seguridad en Internet” si su SSH es accesible desde Internet.

[Sugerencia] Sugerencia

Por favor utilice el programa screen(1) para permitir que los procesos del intérprete de órdenes remotos sobrevivan a las caídas de la conexión (ver Sección 9.1.2, “El programa screen”).

El demonio OpenSSH SSH solo admite el protocolo SSH 2.

Lea "/usr/share/doc/openssh-client/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), y ssh-keygen(1), ssh-add(1) y ssh-agent(1).

[Aviso] Aviso

«/etc/ssh/sshd_no_debe_ser_ejecutado» no debe estar presente si se quiere ejecutar el servidor OpenSSH.

No habilite la autenticación basada en rhost (HostbasedAuthentication en /etc/ssh/sshd_config).


Lo siguiente inicia una conexión ssh(1) desde el cliente.


Se necesita proteger el proceso que ejecuta «shutdown -h now» (ver Sección 1.1.8, “Cómo apagar el sistema”) de la finalización de ssh utilizando la orden at(1) (ver Sección 9.4.13, “Planificación una vez de las tareas”) como sigue.

# echo "shutdown -h now" | at now

Otra forma de obtener el mismo resultado es ejecutar «shutdown -h now» en una sesión de screen(1) (ver Sección 9.1.2, “El programa screen”).

En el antiguo sistema tipo Unix, el BSD Demonio de impresión en línea (lpd) era el estándar y el formato de impresión estándar del software libre clásico era PostScript (PS). Se utilizó algún sistema de filtro junto con Ghostscript para permitir la impresión en la impresora no PostScript. Ver Sección 11.4.1, “Ghostscript”.

En el sistema Debian moderno, el Common UNIX Printing System (CUPS) es el estándar de facto y el formato de impresión estándar del software libre moderno es Portable Document Format (PDF).

La CUPS utiliza Protocolo de impresión de Internet (IPP). El IPP es ahora compatible con otros sistemas operativos como Windows XP y Mac OS X y se ha convertido de facto en el nuevo estándar multiplataforma para la impresión remota con capacidad de comunicación bidireccional.

Gracias a la funcionalidad de autoconversión dependiente del formato del archivo del sistema CUPS, simplemente ofrecer cualquier dato a la orden lpr debería generar la salida de impresión esperada. (En CUPS, lpr se puede activar mediante la instalación del paquete cups-bsd).

El sistema Debian tiene paquetes importantes de utilidades y servidores de impresión.


[Sugerencia] Sugerencia

Puede configurar su sistema CUPS accediendo mediante su navegador a «http://localhost:631/« .

Aquí hay otros servidores de aplicaciones de red.


El Protocolo de Sistema de Archivo Común de Internet (Common Internet File System Protocol, CIFS) es el mismo protocolo que Servidor de Mensajes de Bloque (Server Message Block, SMB) y se utiliza de forma generalizada en Microsoft Windows.

[Sugerencia] Sugerencia

Ver Sección 4.5.2, “La actual gestión centralizada de sistemas” para la integración de los servidores de sistema.

[Sugerencia] Sugerencia

La resolución del nombre del equipo normalmente se realiza por medio del servidor de DNS. Para las direcciones IP del equipo asignadas de forma dinámica por DHCP, un DNS Dinámico se puede configurar para la resolución de nombres utilizando bind9 y isc-dhcp-server como se describe en lapágina wiki de Debian sobre DDNS.

[Sugerencia] Sugerencia

La utilización de un servidor proxy como squid es muy eficiente para ahorrar ancho de banda ya que utiliza un servidor espejo local con todo el contenido del archivo Debian.

Aquí están otro clientes de aplicaciones de red.


El programa telnet permite la conexión manual a los demonios del sistema para evaluarlos.

Para probar un servicio POP3 sencillo, intente lo siguiente

$ telnet mail.ispname.net pop3

Para la prueba del servicio POP3 con TLS/SSL activado por parte de algún ISP, necesitará activar TLS/SSL en el cliente de telnet mediante los paquetes telnet-ssl o openssl.

$ telnet -z ssl pop.gmail.com 995
$ openssl s_client -connect pop.gmail.com:995

Los siguientes RFCs aportan el conocimiento necesario sobre cada uno de los demonios del sistema.


La utilización de los puertos esta recogida en «/etc/services».