Capítulo 6. Aplicações de rede

Índice

6.1. Navegadores web
6.1.1. Spoofing the User-Agent string
6.1.2. Browser extension
6.2. O sistema de correio electrónico (mail)
6.2.1. Noções básicas de mail
6.2.2. Modern mail service limitation
6.2.3. Historic mail service expectation
6.2.4. Agente de transporte de mail (MTA)
6.2.4.1. A configuração do exim4
6.2.4.2. A configuração do postfix com SASL
6.2.4.3. A configuração do endereço de mail
6.2.4.4. Operações MTA básicas
6.3. O servidor de acesso remoto e utilitários (SSH)
6.3.1. Bases do SSH
6.3.2. User name on the remote host
6.3.3. Ligar sem palavras-passe remotas
6.3.4. Lidar com clientes SSH alienígenas
6.3.5. Configurar o ssh-agent
6.3.6. Sending a mail from a remote host
6.3.7. Reencaminhamento de portos para SMTP/POP3 em túnel
6.3.8. Como desligar o sistema remoto em SSH
6.3.9. Depurar problemas no SSH
6.4. O servidor de impressão e utilitários
6.5. Outras aplicações de servidor de rede
6.6. Outros clientes de aplicação de rede
6.7. Os diagnósticos dos daemons do sistema

Após estabelecer a ligação de rede (veja Capítulo 5, Configuração de rede), pode executar varias aplicações de rede.

[Dica] Dica

Para um guia moderno específico Debian para a infraestrutura de rede, leia O Livro de Mão do Administrador Debian — Infrastructure de Rede.

[Dica] Dica

Se ativar a "Verificação de 2 Passos" com alguns ISP, precisa de obter uma palavra-passe de aplicação para aceder aos serviços POP e SMTP do seu programa. Pode precisar de aprovar o seu IP de máquina com antecedência.

Existem muitos pacotes de navegadores web para aceder a conteúdos remotos com Hypertext Transfer Protocol (HTTP).


This section focuses on typical mobile workstations on consumer grade Internet connections.

[Cuidado] Cuidado

Se estiver a configurar um servidor de mail para trocar mail directamente com a Internet, deverá fazer melhor do que ler esta documentação elementar.

Uma mensagem de email consiste em três componentes, o envelope da mensagem, o cabeçalho da mensagem e o corpo da mensagem.

  • A informação "To" e "From" no envelope da mensagem é utilizada pelo SMTP para entregar o email. (A informação de "From" no envelope da mensagem também é chamada de endereço bounce, From_, etc.).

  • A informação "To" e "From" no cabeçalho da mensagem é mostrada pelo cliente de email. (Embora seja vulgar que sejam os mesmo do envelope da mensagem nem sempre é o caso.)

  • The email message format covering header and body data is extended by Multipurpose Internet Mail Extensions (MIME) from the plain ASCII text to other character encodings, as well as attachments of audio, video, images, and application programs.

Full featured GUI based email clients offer all the following functions using the GUI based intuitive configuration.

  • It creates and interprets the message header and body data using Multipurpose Internet Mail Extensions (MIME) to deal the content data type and encoding.

  • It authenticates itself to the ISP's SMTP and IMAP servers using the legacy basic access authentication or modern OAuth 2.0. (For OAuth 2.0, set it via Desktop environment settings. E.g., "Settings" -> "Online Accounts".)

  • It sends the message to the ISP's smarthost SMTP server listening to the message submission port (587).

  • It receives the stored message on the ISP's server from the TLS/IMAP4 port (993).

  • It can filter mails by their attributes.

  • It may offer additional functionalities: Contacts, Calendar, Tasks, Memos.


Debian mobile workstations can be configured just with full featured GUI based email clients without mail transfer agent (MTA) program after Debian 12 Bookworm.

Debian traditionally installed some MTA program to support programs expecting the /usr/sbin/sendmail command. Such MTA on mobile workstations must cope with Secção 6.2.2, “Modern mail service limitation” and Secção 6.2.3, “Historic mail service expectation”.

For mobile workstations, the typical choice of MTA is either exim4-daemon-light or postfix with its installation option such as "Mail sent by smarthost; received via SMTP or fetchmail" selected. These are light weight MTAs that respect "/etc/aliases".

[Dica] Dica

Configuring exim4 to send the Internet mail via multiple corresponding smarthosts for multiple source email addresses is non-trivial. If you need such capability for some programs, set them up to use msmtp which is easy to set up for multiple source email addresses. Then leave main MTA only for a single email address.


Para mail de Internet através de smarthost, (re)configura o pacote exim4-* conforme o seguinte:

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

Escolha "mail enviado por smarthost; recebido via SMTP ou fetchmail" para "Configuração geral do tipo de mail".

Defina "nome de mail do sistema:" para a predefinição dele como o FQDN (veja Secção 5.1.1, “A resolução de nome de máquina”).

Defina "Endereço IP onde escutar ligações SMTP recebidas:" à predefinição dele como "127.0.0.1 ; ::1".

Desconfigure o conteúdo de "Outros destinos para o qual o mail é aceite:".

Desconfigure o conteúdo de "Máquinas para retransmitir mail para:".

Defina "Endereço IP ou nome de máquina do smarthost de envio:" para "smtp.nome-de-máquina.domínio:587".

Select "No" for "Hide local mail name in outgoing mail?". (Use "/etc/email-addresses" as in Secção 6.2.4.3, “A configuração do endereço de mail”, instead.)

Responda a "Mínimizar a quantidade de consultas DNS (Chamar-a-Pedido)?" como uma das seguintes.

  • "Não" se o sistema estiver ligado à Internet enquanto arranca.

  • "Sim" se o sistema não está ligado à Internet enquanto arranca.

Defina o "Método de entrega para mail local:" para "formato mbox em /var/mail".

Select "Yes" for "Split configuration into small files?:".

Crie entradas de palavra-passe para o smarthost ao editar "/etc/exim4/passwd.client".

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

Configure exim4(8) with "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. in "/etc/default/exim4" to minimize system resource usages. (optional)

Inicie o exim4 com o seguinte.

$ sudo systemctl start exim4

o nome de máquina em "/etc/exim4/passwd.client" não deve ser o alias. Verifique o nome real da máquina com o seguinte.

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

Utilizo expressões regulares em "/etc/exim4/passwd.client" para contornar o problema do alias. Provavelmente o SMTP AUTH funciona mesmo que o ISP mova a máquina apontada pelo alias.

Pode atualizar manualmente a configuração do exim4 com o seguinte:

  • atualizar os ficheiros de configuração do "exim4" em "/etc/exim4/".

    • criar "/etc/exim4/exim4.conf.localmacros" para definir MACROs e editar "/etc/exim4/exim4.conf.template". (configuração não-dividida)

    • criar novos ficheiros ou editar ficheiros existentes nos sub-diretórios "/etc/exim4/exim4.conf.d". (configuração dividida)

  • Run "systemctl reload exim4".

[Cuidado] Cuidado

O arranque do exim4 demora muito tempo se foi escolhido "Não" (valor predefinido) na pergunta debconf de "Manter a quantidade de consultas DNS no mínimo (Chamar-a-pedido)?" e o sistema não estiver ligado à Internet durante o arranque.

Por favor leia o guia oficial em "/usr/share/doc/exim4-base/README.Debian.gz" e update-exim4.conf(8).

[Atenção] Atenção

For all practical consideration, use SMTP with STARTTLS on port 587 or SMTPS (SMTP over SSL) on port 465, instead of plain SMTP on port 25.

Para o mail de Internet através de smarthost, deve primeiro ler a documentação do postfix e páginas chave do manual.


(Re)configurar os pacotes postfix e sasl2-bin como a seguir.

$ sudo systemctl stop postfix
$ sudo dpkg-reconfigure postfix

Escolha "Internet com smarthost".

Defina "SMTP relay host (em branco para nenhum):" para "[smtp.hostname.dom]:587" e configure-o como o seguinte.

$ 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

Crie entradas de palavra-passe para o smarthost.

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

Arranque o postfix com o seguinte.

$ sudo systemctl start postfix

Aqui o uso de "[" e "]" no diálogo do dpkg-reconfigure e "/etc/postfix/sasl_passwd" assegura que não se verifica o registo MX mas usa directamente o nome de máquina exacto especificado. Veja "ativar autenticação SASL no cliente SMTP do Postfix" em "/usr/share/doc/postfix/html/SASL_README.html".

Existem alguns ficheiros de configuração de endereços de mail para transporte, entrega e agentes de utilizador de mail.


O mailname no ficheiro "/etc/mailname" é normalmente um nome de domínio totalmente qualificado (FQDN) que resolve para um dos endereços IP do anfitrião. Para a estação de trabalho móvel que não tem um nome de máquina com endereço IP resolvível, regule este mailname para o valor de "hostname -f". (Esta é uma escolha segura e funciona para ambos exim4-* e postfix.)

[Dica] Dica

O conteúdo de "/etc/mailname" é utilizado por muitos programas não-MTA para o comportamento predefinido dele. Para o mutt, defina as variáveis "hostname" e "from" no ficheiro ~/muttrc para sobrepor o valor mailname. Para programas no pacote devscripts, como o bts(1) e dch(1), exporte as variáveis de ambiente "$DEBFULLNAME" e "$DEBEMAIL" para o sobrepor.

[Dica] Dica

O pacote popularity-contest normalmente envia mail a partir da conta de root com FQDN. Tem de definir MAILFROM em /etc/popularity-contest.conf como descrito no ficheiro /usr/share/popularity-contest/default.conf. Caso contrário, o seu mail será rejeitado pelo servidor SMTP do smarthost. Apesar de isto ser um tédio, esta aproximação é mais segura do que reescrever o endereço fonte para todos os mails do root pelo MTA e deve ser usado para outros daemons e scripts do cron.

Ao definir o mailname para "hostname -f", o spoofing do endereço de mail da fonte via MTA pode ser realizado com o seguinte.

  • ficheiro "/etc/email-addresses" para exim4(8) conforme é explicado em exim4-config_files(5)

  • ficheiro "/etc/postfix/generic" para postfix(1) conforme é explicado em generic(5)

Para o postfix, os seguintes passos adicionais são necessários:

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

Pode testar a configuração do endereço de email a usar o seguinte:

  • exim(8) com as opções -brw, -bf, -bF, -bV, …

  • postmap(1) com a opção -q.

[Dica] Dica

O exim vem com vários programas utilitários como o exiqgrep(8) e exipick(8). Veja "dpkg -L exim4-base|grep man8/" para os comandos disponíveis.

O Secure SHell (SSH) é o modo seguro de efectuar ligações na Internet. Uma versão livre do SSH chamada OpenSSH está disponível nos pacotes openssh-client e openssh-server em Debian.

Para o utilizador as funções do ssh(1) são uma telnet(1) mais inteligente e segura. Ao contrário do comando telnet, o comando ssh não pára no caractere de escape do telnet (predefinição inicial CTRL-]).


Although shellinabox is not a SSH program, it is listed here as an interesting alternative for the remote terminal access.

See also Secção 7.9, “X server connection” for connecting to remote X client programs.

[Cuidado] Cuidado

Veja Secção 4.6.3, “Medidas de segurança extra para a Internet” se o seu SSH for acessível a partir da Internet.

[Dica] Dica

Por favor use o programa screen(1) para ativar a sobrevivência do processo de shell remota à interrupção da ligação (veja Secção 9.1.2, “O programa screen”).

Precisa de proteger o processo ao fazer "shutdown -h now" (veja Secção 1.1.8, “Como desligar o sistema”) a partir da terminação do SSH a usar o comando at(1) (veja Secção 9.4.13, “Agendar tarefas uma vez”) com o seguinte.

# echo "shutdown -h now" | at now

Correr "shutdown -h now" numa sessão do screen(1) (veja Secção 9.1.2, “O programa screen”) é outro modo de fazer o mesmo.

In the old Unix-like system, the BSD Line printer daemon (lpd) was the standard and the standard print out format of the classic free software was PostScript (PS). Some filter system was used along with Ghostscript to enable printing to the non-PostScript printer. See Secção 11.4.1, “Ghostscript”.

In the modern Debian system, the Common UNIX Printing System (CUPS) is the de facto standard and the standard print out format of the modern free software is Portable Document Format (PDF).

The CUPS uses Internet Printing Protocol (IPP). The IPP is now supported by other OSs such as Windows XP and Mac OS X and has became new cross-platform de facto standard for remote printing with bi-directional communication capability.

Graças à funcionalidade de auto-conversão dependente do formato de ficheiro do sistema CUPS, simplesmente fornecer quaisquer dados ao comando lpr deverá gerar a saída de impressão esperada. (No CUPS, o lpr pode ser activado ao instalar o pacote cups-bsd.)

O sistema Debian tem alguns pacotes notáveis para os servidores e utilitários de impressão.


[Dica] Dica

Pode configurar o sistema CUPS ao apontar o seu explorador web para "http://localhost:631/" .

Aqui estão outras aplicações de servidor de rede.


Common Internet File System Protocol (CIFS) é o mesmo protocolo que Server Message Block (SMB) e é bastante usado pelo Microsoft Windows.

[Dica] Dica

Veja Secção 4.5.2, “O moderno sistema de gestão centralizado” para integração de sistemas servidor.

[Dica] Dica

A resolução do nome de máquinas é normalmente disponibilizada pelo servidor de DNS. Para o endereço IP atribuído dinamicamente à máquina por DHCP, pode ser definido DNS Dinâmico para a resolução do nome de máquina a utilizar o bind9 e o isc-dhcp-server conforme é descrito na página DDNS no wiki Debian.

[Dica] Dica

O uso de servidor proxy como o squid é muito mais eficiente para poupar largura de banda que o uso de servidor mirror local com o conteúdo completo do arquivo Debian.

Aqui estão outros clientes de aplicação de rede.


O programa telnet activa ligação manual aos daemons do sistema e aos seus diagnósticos.

Para testar o serviço POP3 simples, tente o seguinte:

$ telnet mail.ispname.net pop3

Para testar o serviço POP3 com TLS/SSL ativo de alguns ISPs, precisa do cliente telnet com TLS/SSL ativo pelos pacotes telnet-ssl or openssl.

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

Os seguintes RFCs disponibilizam o conhecimento necessário para cada daemon de sistema.


A utilização de portos é descrita em "/etc/services".