Capítulo 6. Aplicações de rede

Índice

6.1. Navegadores web
6.1.1. Falsificação da cadeia User-Agent
6.1.2. Extensão do navegador
6.2. O sistema de correio electrónico (mail)
6.2.1. Noções básicas de mail
6.2.2. Limitação do serviço de correio moderno
6.2.3. Expectativa histórica do serviço de correio
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. Nome de utilizador no anfitrião remoto
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. Enviar uma mensagem de correio eletrónico a partir de um anfitrião remoto
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).


Esta secção centra-se em estações de trabalho móveis típicas com ligações à Internet de nível de consumidor.

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

  • O formato da mensagem de correio eletrónico, que abrange os dados do cabeçalho e do corpo, é alargado pelas Extensões de Correio Internet para Fins Múltiplos (MIME) do texto ASCII simples para outras codificações de caracteres, bem como para anexos de áudio, vídeo, imagens e programas de aplicação.

Os clientes de correio eletrónico completos baseados em GUI oferecem todas as funções seguintes utilizando a configuração intuitiva baseada em GUI.

  • Cria e interpreta os dados do cabeçalho e do corpo da mensagem utilizando as Extensões de Correio Internet para Fins Múltiplos (MIME) para lidar com o tipo de dados e a codificação do conteúdo.

  • Ele se autentica nos servidores SMTP e IMAP do ISP usando a autenticação de acesso básico antiga ou o moderno OAuth 2.0. (Para o OAuth 2.0, defina-o através das definições do ambiente de trabalho. Por exemplo, "Definições" -> "Contas Online".)

  • Envia a mensagem para o servidor SMTP smarthost do ISP que está a ouvir a porta de envio de mensagens (587).

  • Recebe a mensagem armazenada no servidor do ISP a partir da porta TLS/IMAP4 (993).

  • Pode filtrar mensagens de correio eletrónico pelos seus atributos.

  • Pode oferecer funcionalidades adicionais: Contactos, Calendário, Tarefas, Memorandos.


Os serviços de correio modernos estão sujeitos a algumas limitações para minimizar a exposição aos problemas de spam (correio eletrónico não desejado e não solicitado).

  • Não é realista correr um servidor SMTP numa rede de ligação doméstica para enviar mail diretamente para a máquina remota de forma confiável.

  • Um correio pode ser rejeitado por qualquer anfitrião a caminho do destino, a menos que pareça tão autêntico quanto possível.

  • Não é realista para a confiança da máquina remota, esperar que um único smarthost envie mails com um endereço de mail fonte não relacionado.

Isto deve-se ao facto de:

As estações de trabalho móveis Debian podem ser configuradas apenas com clientes de email baseados em GUI completos sem o programa de agente de transferência de email (MTA) após o Debian 12 Bookworm.

Debian tradicionalmente instalou algum programa MTA para suportar programas que esperam o comando /usr/sbin/sendmail. Tal MTA em estações de trabalho móveis tem de lidar com Secção 6.2.2, “Limitação do serviço de correio moderno” e Secção 6.2.3, “Expectativa histórica do serviço de correio”.

Para estações de trabalho móveis, a escolha típica de MTA é o exim4-daemon-light ou o postfix com a opção de instalação "Mail sent by smarthost; received via SMTP or fetchmail" selecionada. Estes são MTAs leves que respeitam "/etc/aliases".

[Dica] Dica

Configurar o exim4 para enviar o correio da Internet através de múltiplos smarthosts correspondentes para múltiplos endereços de e-mail de origem não é trivial. Se você precisa de tal capacidade para alguns programas, configure-os para usar msmtp, que é fácil de configurar para múltiplos endereços de e-mail de origem. Em seguida, deixe o MTA principal apenas para um único endereço de email.


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

Escolha "Não" para "Esconder o nome de mail local para o mail enviado?". (Em vez disso, use "/etc/email-addresses" como em Secção 6.2.4.3, “A configuração do endereço de mail”.)

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

Seleccione "Sim" para "Dividir configuração em pequenos ficheiros?:".

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:[email protected]:password

Configure o exim4(8) com "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. em "/etc/default/exim4" para minimizar o uso de recursos do sistema. (opcional)

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)

  • Execute "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

Para qualquer consideração prática, utilize SMTP com STARTTLS na porta 587 ou SMTPS (SMTP sobre SSL) na porta 465, em vez de SMTP simples na porta 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-]).


Embora o shellinabox não seja um programa SSH, ele é listado aqui como uma alternativa interessante para o acesso remoto ao terminal.

Veja também Secção 7.9, “Ligação ao servidor X” para conectar a programas clientes X remotos.

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

No antigo sistema do tipo Unix, o daemon de impressão em linha (lpd) BSD era o padrão e o formato de impressão padrão do software livre clássico era o PostScript (PS). Era utilizado um sistema de filtros juntamente com o Ghostscript para permitir a impressão numa impressora não-PostScript. Ver Secção 11.4.1, “Ghostscript”.

No sistema Debian moderno, o Common UNIX Printing System (CUPS) é de facto o padrão e o formato padrão obtido na saída é o livre e moderno Portable Document Format (PDF).

O CUPS utiliza o Protocolo de Impressão Internet (IPP). O IPP é agora suportado por outros sistemas operativos, como o Windows XP e o Mac OS X, e tornou-se a nova norma de facto multiplataforma para impressão remota com capacidade de comunicação bidirecional.

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