Capítulo 6. Aplicaciones de red

# Capítulo 6. Aplicaciones de red

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

| 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
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.

## 6.1. Navegadores web

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

Tabla 6.1. Relación de navegadores web

paquete | popularidad | tamaño | tipo | Descripción del navegador web
--- | --- | --- | --- | ---
`chromium` | V:30, I:103 | 286985 | X | Chromium, (Navegador de código abierto de Google)
`firefox` | V:15, I:21 | 277820 | , , | Firefox (navegador de código abierto de Mozilla que está disponible en Debian «inestable»)
`firefox-esr` | V:214, I:442 | 266490 | , , | Firefox ESR, (Versión de Firefox con soporte extendido)
`epiphany-browser` | V:2, I:11 | 2258 | , , | conforme a GNOME, HIG , Epiphany
`konqueror` | V:27, I:116 | 7861 | , , | KDE, Konqueror
`dillo` | V:0, I:4 | 1585 | , , | Dillo, (navegador ligero basado en FLTK)
`w3m` | V:11, I:145 | 2853 | texto | w3m
`lynx` | V:29, I:457 | 1972 | , , | Lynx
`elinks` | V:2, I:16 | 1791 | , , | ELinks
`links` | V:2, I:21 | 2321 | , , | Links (solo texto)
`links2` | V:0, I:10 | 5466 | gráficos | Links (gráficos de consola sin X)

### 6.1.1. Spoofing de la cadena User-Agent

Para acceder a algunos sitios web demasiado restrictivos, es posible que deba falsificar la cadena User-Agent devuelta por el programa del navegador web. Ver:

- MDN Web Docs: userAgent
- Chrome Developers: Anular la cadena de agente de usuario
- Cómo cambiar tu agente de usuario
- Cómo cambiar tu agente de usuario en Chrome, Firefox, Safari, y más
- Cómo Cambiar el Agente de Usuario de Su Navegador Sin Instalar Ninguna Extensión
- Cómo cambiar el agente de usuario en el navegador de Gnome (epiphany)

| Atención
La suplantación de la cadena del agente de usuario puede causar efectos colaterales con Java.

### 6.1.2. extensión del navegador

Todos los navegadores GUI modernos admiten extensión del navegador basada en código fuente y se está estandarizando como extensiones web.

## 6.2. El sistema de correo

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

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

### 6.2.1. Fundamentos de correo

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.

Tabla 6.2. Relación de agentes de usuario de correo (MUA)

paquete | popularidad | tamaño | tipo
--- | --- | --- | ---
`evolution` | V:28, I:240 | 492 | X GUI program (GNOME, groupware suite)
`thunderbird` | V:46, I:109 | 274692 | programa X GUI (GTK, Mozilla Thunderbird)
`kmail` | V:43, I:107 | 25212 | programa de interfaz gráfico de usuario X (KDE)
`mutt` | V:11, I:94 | 7118 | programa de terminales de caracteres probablemente utilizado con `vim`
`mew` | V:0, I:0 | 2319 | programa de terminales de caracteres en `(x)emacs`

### 6.2.2. Limitación del servicio moderno de correo

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:

- Están bloqueadas las conexiones del puerto SMTP (25) de los hosts servidos por la red de nivel de consumidor a Internet.

- Están bloqueadas las conexiones del puerto SMTP (25) de los hosts servidos por la red de nivel de consumidor a Internet.

- Los mensajes de salida de hosts atendidos por la red de nivel de consumidor a Internet solo pueden enviarse a través del puerto de envío de mensajes (587).

- Técnicas Anti-spam tales como DomainKeys Identified Mail (DKIM), Sender_Policy_Framework (SPF), y Autenticación, informes y conformidad de mensajes basados en dominios (DMARC) son muy usados para el filtrado de correos.

- Se puede implementar el servicio de Correo identificado por llaves de dominio mediante el envío de su correo a través de un «equipo inteligente« (smarthost).

- El host inteligente puede reescribir la dirección de correo de origen en el encabezado del mensaje en su cuenta de correo en el host inteligente para evitar la suplantación de direcciones de correo.

### 6.2.3. Expectativa histórica del servicio de correo

Algunos programas en Debian esperan acceder al comando `/usr/sbin/sendmail` para enviar correos electrónicos como su configuración predeterminada o personalizada, ya que el servicio de correo en un sistema UNIX ha funcionado históricamente como:

- Se crea un correo electrónico como un archivo de texto.

- El correo electrónico se pasa al comando `/usr/sbin/sendmail`.

- Para la dirección de destino en el mismo host, el comando `/usr/sbin/sendmail` realiza la entrega local del correo electrónico agregándolo al archivo `/var/mail/$username` .

  - Comandos que esperan esta función: `apt-listchanges`, `cron`, `at`, ...

- Para la dirección de destino en el host remoto, el comando `/usr/sbin/sendmail` realiza la transferencia remota del correo electrónico al host de destino encontrado por el registro DNS MX utilizando SMTP.

  - Comandos que esperan esta función: `popcon`, `reportbug`, `bts`, ...

### 6.2.4. Agente de transporte de correo (Mail transport agent, MTA)

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

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.

Tabla 6.3. Lista de paquetes básicos relacionados con el agente de transferencia de correo

paquete | popularidad | tamaño | descripción
--- | --- | --- | ---
`exim4-daemon-light` | V:219, I:226 | 1649 | Exim4 agente de transporte de correo (MTA: por defecto en Debian)
`exim4-daemon-heavy` | V:5, I:5 | 1814 | Agente de transferencia de correo Exim4 (MTA: reemplazo flexible)
`exim4-base` | V:225, I:231 | 1646 | Documentación de Exim4 en formato texto y archivos comunes
`exim4-doc-html` | I:1 | 3798 | Documentación de Exim4 en formato html
`exim4-doc-info` | I:0 | 648 | Documentación de Exim4 en formato info
`postfix` | V:106, I:112 | 4003 | Agente de transporte de correo Postfix (MTA: alternativa segura)
`postfix-doc` | I:4 | 4841 | Documentación de Postfix en formato texto y html
`sasl2-bin` | V:4, I:10 | 368 | Implementación de la API Cyrus SASL (complemento a postfix para SMTP AUTH)
`cyrus-sasl2-doc` | I:0 | 2142 | Documentación Cyrus SASL
`msmtp` | V:7, I:13 | 811 | MTA ligero
`msmtp-mta` | V:5, I:7 | 136 | MTA ligero (extensión compatible con sendmail para `msmtp`)
`esmtp` | V:0, I:0 | 123 | MTA ligero
`esmtp-run` | V:0, I:0 | 27 | MTA ligero (extensión compatible con sendmail para `esmtp`)
`nullmailer` | V:7, I:8 | 483 | Elimina MTA, no hay correo local
`ssmtp` | V:4, I:6 | 133 | Elimina MTA, no hay correo local
`sendmail-bin` | V:10, I:11 | 1959 | MTA con todas las funciones (si ya está familiarizado con él)
`courier-mta` | V:0, I:0 | 2674 | MTA con todas las funciones (interfaz web, etc.)
`git-email` | V:0, I:10 | 1187 | `git-send-email`(1) programa para enviar series de correos electrónicos de parches

#### 6.2.4.1. Configuración de exim4

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
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
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.

#### 6.2.4.2. Configuración de postfix con SASL

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

Tabla 6.4. Relación de páginas importantes del manual en postfix

orden | función
--- | ---
`postfix`(1) | Programa de control postfix
`postconf`(1) | Utilidad de configuración postfix
`postconf`(5) | Parámetros de configuración de Postfix
`postmap`(1) | Mantenimiento de la tabla de búsqueda de Postfix
`postalias`(1) | Mantenimiento de base de datos de alias Postfix

(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`».

#### 6.2.4.3. La configuración de la dirección de correo

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

Tabla 6.5. Relación de los archivos relacionados con la configuración de la dirección de correo

archivo | función | aplicación
--- | --- | ---
`/etc/mailname` | nombre del equipo por defecto para el correo (saliente) | Propio de Debian, `mailname`(5)
`/etc/email-addresses` | nombre del equipo falso para correo de salida | propio de `exim`(8) , `exim4-config_files`(5)
`/etc/postfix/generic` | nombre del equipo falso para correo de salida | propio de `postfix`(1), se activa después de la ejecución de la orden `postmap`(1).
`/etc/aliases` | alias del nombre de la cuenta para el correo entrante | general, activado después de la ejecución de la orden `newaliases`(1).

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

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

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

#### 6.2.4.4. Operaciones fundamentales MTA

Existen varias operaciones MTA fundamentales. Algunas se pueden realizar por medio de interfaz compatible de `sendmail`(1).

Tabla 6.6. Relación de operaciones MTA fundamentales

orden exim | orden postfix | descripción
--- | --- | ---
`sendmail` | `sendmail` | lee los correos de la entrada estándar y los organiza para la entrega (`-bm`)
`mailq` | `mailq` | enumera los correos en la cola, con su estatus e identificador en la cola (`-bp`)
`newaliases` | `newaliases` | inicializa la base de datos de alias (`-l`)
`exim4 -q` | `postqueue -f` | descarga los correos en espera (`-q`)
`exim4 -qf` | `postsuper -r ALL deferred; postqueue -f` | descarga todos los correos
`exim4 -qff` | `postsuper -r ALL; postqueue -f` | descarga incluso los correos congelados
`exim4 -Mg queue_id` | `postsuper -h queue_id` | congela un mensaje por su identificador en la cola
`exim4 -Mrm queue_id` | `postsuper -d queue_id` | elimina un mensaje por su identificador en la cola
N/A | `postsuper -d ALL` | elimina todos los mensajes

| Sugerencia
puede ser una buena idea descargar todos los correos mediante un archivo de órdenes «`/etc/ppp/ip-up.d/*`».

## 6.3. Servidor de acceso remoto (SSH) y utilidades

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-]).

Tabla 6.7. Relación de servidores de acceso remoto y utilidades

paquete | popularidad | tamaño | herramienta | descripción
--- | --- | --- | --- | ---
`openssh-client` | V:898, I:996 | 5133 | `ssh`(1) | Cliente de «Secure shell«
`openssh-server` | V:745, I:804 | 3502 | `sshd`(8) | Servidor Secure shell
`ssh-askpass` | I:17 | 103 | `ssh-askpass`(1) | pregunta al usuario por la contraseña para ssh-add (X plano)
`ssh-askpass-gnome` | V:0, I:3 | 215 | `ssh-askpass-gnome`(1) | pregunta al usuario la contraseña para ssh-add (GNOME)
`ssh-askpass-fullscreen` | V:0, I:0 | 41 | `ssh-askpass-fullscreen`(1) | pide al usuario una contraseña para ssh-add (GNOME) que le resulte atractiva
`shellinabox` | V:0, I:1 | 525 | `shellinaboxd`(1) | servidor web para emulador de terminal VT100 accesible mediante navegador

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
Ver Sección 4.6.3, “Medidas extraordinarias de seguridad en Internet” si su SSH es accesible desde Internet.

| 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”).

### 6.3.1. Fundamentos de SSH

El demonio OpenSSH SSH solo admite el protocolo SSH 2.

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

| 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`).

Tabla 6.8. Relación de los archivos de configuración de SSH

archivo de configuración | descripción de los archivos de configuración
--- | ---
`/etc/ssh/ssh_config` | Valores por defecto del cliente SSH, ver `ssh_config`(5)
`/etc/ssh/sshd_config` | Valores por defecto del servidor SSH, ver `sshd_config`(5)
`~/.ssh/authorized_keys` | claves ssh públicas por defecto que usan los clientes que usan para conectarse a su cuenta en este servidor SSH
`~/.ssh/id_rsa` | clave SSH-2 RSA privada del usuario
`~/.ssh/id_key-type-name` | clave secreta SSH-2 nombre-tipo-clave como `ecdsa`, `ed25519`, ... del usuario

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

Tabla 6.9. Relación de ejemplos de inicio del clientes ssh

orden | descripción
--- | ---
`ssh nombre_de_usuario@nombre_de_equipo.dominio.ext` | conecta en el modo por defecto
`ssh -v nombre_de_usuario@nombre_de_equipo.dominio.ext` | conecta en el modo por defecto con los mensajes de depuración
`ssh -o PreferredAuthentications=password username@hostname.domain.ext` | obliga la utilización de la contraseña con SSH versión 2
`ssh -t nombre_de_usuario@nombre_de_equipo.dominio.ext contraseña` | ejecute el programa `passwd` para actualizar la contraseña en un host remoto

### 6.3.2. Nombre de usuario en el host remoto

Si usa el mismo nombre de usuario en el host local y remoto, puede eliminar escribir "`username@`".

Incluso si utiliza un nombre de usuario distinto en el equipo local y remoto, puede eliminarlo usando «`~/.ssh/config`». Para el servicio Debian Salsa con el nombre de la cuenta «`foo-guest`», haga que «`~/.ssh/config`» contenga lo siguiente.

    Host salsa.debian.org people.debian.org
    User foo-guest

### 6.3.3. Conectarse sin contraseñas del equipo remoto

Se puede evitar recordar las contraseñas del sistema remoto usando «`PubkeyAuthentication`» (protocolo SSH-2).

En el sistema remoto, cree las entradas respectivas, "`PubkeyAuthentication sí`", en "`/etc/ssh/sshd_config`".

Genere las claves de acreditación locales e instale las claves públicas en el sistema remoto según se muestra.

    $ ssh-keygen -t rsa
    $ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"

Puede añadir opciones a las entradas en «`~/.ssh/authorized_keys`» para limitar los equipos y ejecutar las órdenes concretas. Ver `sshd`(8) "AUTHORIZED_KEYS FILE FORMAT".

### 6.3.4. Tratando con clientes SSH extraños

Existen algunos clientes SSH libres disponibles para otras plataformas.

Tabla 6.10. Relación de clientes SSH libres en otras plataformas

entorno | programa SSH libre
--- | ---
Windows | puTTY (PuTTY: un cliente SSH y Telnet gratuito) (GPL)
Windows (cygwin) | SSH en cygwin (Cygwin: Disfruta de Linux en Windows) (GPL)
Mac OS X | OpenSSH; utiliza `ssh` en una aplicación de terminal (GPL)

### 6.3.5. Configuración ssh-agent

Es seguro proteger su clave pública de acreditación con una contraseña. Si no se ha asignado una contraseña, utilice «`ssh-keygen -p`» para asignarla.

Ubique su clave pública SSH (e.g. «`~/.ssh/id_rsa.pub`») en «`~/.ssh/authorized_keys`» en el equipo remoto utilizando una conexión al equipo remoto basada en la contraseña como se describe a continuación.

    $ ssh-agent bash
    $ ssh-add ~/.ssh/id_rsa
    Enter passphrase for /home/username/.ssh/id_rsa:
    Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

No se necesita contraseña remota desde aquí para la próxima orden.

    $ scp foo username@remote.host:foo

Pulse ^D para finalizar su sesión de agente ssh.

Para el servidor X, el archivo de órdenes de inicio de Debian ejecuta el `ssh-agent` como el proceso padre. Así solo necesita ejecutar `ssh-add` una vez. Para mayor información , lea `ssh-agent`(1) y `ssh-add`(1).

### 6.3.6. Enviar un correo desde un host remoto

Si tiene una cuenta shell SSH en un servidor con la configuración de DNS adecuada, puede enviar un correo electrónico generado en su estación de trabajo como un correo electrónico enviado genuinamente desde el servidor remoto.

    $ ssh username@example.org /usr/sbin/sendmail -bm -ti -f "username@example.org" < mail_data.txt

### 6.3.7. Puerto de reenvío para túnel SMTP/POP3

Para crear un tubería que conecte al puerto 25 del `servidor remoto` desde el puerto 4025 del `equipo local` y al puerto 110 de `servidor remoto` desde el puerto 4110 del `equipo local` a través de `ssh`, ejecute en el equipo local lo que sigue.

    # ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server

Esta es la forma segura de crear conexiones a un servidor SMTP/POP3 a través de Internet. Asigne a la entrada «`AllowTcpForwarding`» con «`yes`» en «`/etc/ssh/sshd_config`» del equipo remoto.

### 6.3.8. Apagar un sistemas remoto utilizando SSH

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”).

### 6.3.9. Resolución de problemas de SSH

Si tiene problemas, compruebe la configuración de los permisos de los archivos y ejecute `ssh` con la opción «`-v`».

Si es usted superusuario y tiene problemas con el cortafuegos utilice la opción «`-p`» ; esto evita la utilización de los puertos del servidor entre 1 — 1023.

Si las conexiones `ssh` a un sitio remoto de repente deja de funcionar, puede ser que lo tenga que solucionar el administrador de sistemas, normalmente un cambio de la «`clave_de_equipo`» durante el mantenimiento del sistema. Tras estar seguro de que nadie intenta suplantar al equipo remoto de algún modo inteligente, uno puede recuperar la conexión eliminando la entrada «`clave_de_equipo`» en «`~/.ssh/known_hosts`» del equipo local.

## 6.4. Servidor de impresión y utilidades

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).

The CUPS uses Internet Printing Protocol (IPP). The IPP is the cross-platform de facto standard for remote printing with bi-directional communication capability.

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.

Tabla 6.11. Relación de las utilidades y servidores de impresión

paquete | popularidad | tamaño | puerto | descripción
--- | --- | --- | --- | ---
`lpr` | V:2, I:2 | 378 | printer (515) | BSD lpr/lpd (demonio de impresión en línea)
`cups` | V:118, I:460 | 1092 | IPP (631) | Servidor CUPS de Impresión en Internet
`cups-client` | V:137, I:474 | 433 | , , | Órdenes de impresión System V para CUPS: `lp`(1), `lpstat`(1), `lpoptions`(1), `cancel`(1), `lpmove`(8), `lpinfo`(8), `lpadmin`(8), …
`cups-bsd` | V:36, I:194 | 131 | , , | Órdenes de impresión BSD para CUPS: `lpr`(1), `lpq`(1), `lprm`(1), `lpc`(8)
`printer-driver-gutenprint` | V:13, I:61 | 1122 | No aplicable | controladores de impresión para CUPS

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

## 6.5. Servidores de aplicaciones en otras redes

Aquí hay otros servidores de aplicaciones de red.

Tabla 6.12. Relación de los servidores de aplicaciones de red

paquete | popularidad | tamaño | protocolo | descripción
--- | --- | --- | --- | ---
`telnetd` | V:0, I:1 | 51 | TELNET | servidor TELNET
`nfs-kernel-server` | V:45, I:54 | 797 | NFS | Compatición de archivos Unix
`samba` | V:106, I:121 | 5011 | SMB | Compartición de archivos e impresoras en Windows
`netatalk` | V:0, I:1 | 814 | ATP | Compartición de archivos e impresoras de Apple/Mac (AppleTalk)
`proftpd-basic` | V:4, I:10 | 452 | FTP | Descarga de archivo general
`apache2` | V:186, I:227 | 586 | HTTP | Servidor web general
`squid` | V:9, I:10 | 9349 | , , | Servidor proxy web general
`bind9` | V:35, I:39 | 888 | DNS | Direcciones IP para otros equipos
`isc-dhcp-server` | V:15, I:25 | 6102 | DHCP | Dirección IP de el cliente mismo

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
Ver Sección 4.5.2, “La actual gestión centralizada de sistemas” para la integración de los servidores de sistema.

| 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
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.

## 6.6. Otros clientes de aplicaciones de red

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

Tabla 6.13. Relación de clientes de aplicaciones de red

paquete | popularidad | tamaño | protocolo | descripción
--- | --- | --- | --- | ---
`netcat-traditional` | V:46, I:904 | 139 | TCP/IP | navaja suiza para TCP/IP
`netcat-openbsd` | V:21, I:121 | 109 | TCP/IP | TCP/IP swiss army knife with support for IPv6, proxies, and Unix sockets
`openssl` | V:834, I:995 | 2503 | SSL | Binarios de la capa de conexión segura(SSL) y herramientas de criptografía asociadas
`stunnel4` | V:6, I:9 | 573 | , , | recubrimiento universal SSL
`telnet` | V:12, I:239 | 51 | TELNET | cliente TELNET
`nfs-common` | V:145, I:199 | 1137 | NFS | Compatición de archivos Unix
`smbclient` | V:27, I:209 | 2106 | SMB | Cliente para la compartición de archivos e impresoras con MS Windows
`cifs-utils` | V:31, I:118 | 351 | , , | Órdenes de montado y desmontado de archivos remotos MS Windows
`wget` | V:191, I:982 | 3784 | HTTP y FTP | descargas web
`curl` | V:227, I:684 | 507 | , , | , ,
`transmission-gtk` | V:13, I:178 | 6245 | BitTorrent | BitTorrent client (GTK)
`transmission-qt` | V:0, I:2 | 6203 | , , | BitTorrent client (Qt)
`ktorrent` | V:1, I:5 | 5167 | , , | BitTorrent client (Qt)
`qbittorrent` | V:9, I:22 | 14384 | , , | BitTorrent client (Qt)
`bind9-host` | V:121, I:940 | 140 | DNS | `host`(1) para bind9, «`Prioridad: estándar`»
`dnsutils` | I:174 | 23 | , , | `dig`(1) para bind, «`Prioridad: estándar`»
`isc-dhcp-client` | V:169, I:707 | 2884 | DHCP | obtiene la dirección IP
`ldap-utils` | V:10, I:58 | 789 | LDAP | obtiene datos del servidor LDAP

## 6.7. Diagnóstico de los demonios del sistema

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.

Tabla 6.14. Relación de RFCs comúnes

RFC | descripción
--- | ---
rfc1939 y rfc2449 | servicio POP3
rfc3501 | servicio IMAP4
rfc2821 (rfc821) | servicio SMTP
rfc2822 (rfc822) | Formato de archivo de correo
rfc2045 | Extensión de Correo de Internet Multipropósito (MIME)
rfc819 | servicio DNS
rfc2616 | servicio HTTP
rfc2396 | definición de URI

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

Capítulo 5. Configuración de red |  | Capítulo 7. Sistema GUI (interfaz gráfica de usuario)