Capítulo 6. Aplicações de rede

# Capítulo 6. Aplicações de rede

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

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

## 6.1. Navegadores web

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

Tabela 6.1. Lista de exploradores web

pacote | popcon | tamanho | tipo | descrição do explorador web
--- | --- | --- | --- | ---
`chromium` | V:30, I:99 | 316808 | X | Chromium, (browser open-source da Google)
`firefox` | V:16, I:22 | 299491 | , , | Firefox, (navegador de código aberto da Mozilla, apenas disponível no Debian Unstable)
`firefox-esr` | V:195, I:421 | 266258 | , , | Firefox ESR, (Lançamento de Suporte Estendido do Firefox)
`epiphany-browser` | V:2, I:11 | 6666 | , , | GNOME, Altamente conforme, Epiphany
`konqueror` | V:25, I:112 | 7982 | , , | KDE, Konqueror
`dillo` | V:0.5, I:4.3 | 2203 | , , | Dillo, (navegador leve, baseado em FLTK)
`w3m` | V:10, I:134 | 2853 | texto | w3m
`lynx` | V:29, I:448 | 2031 | , , | Lynx
`elinks` | V:3, I:16 | 1791 | , , | ELinks
`links` | V:2, I:21 | 2321 | , , | Ligações (apenas texto)
`links2` | V:0.8, I:8.6 | 5466 | gráficos | Ligações (gráficos de consola sem X)

### 6.1.1. Falsificação da cadeia User-Agent

Para aceder a alguns sítios Web demasiado restritivos, poderá ser necessário falsificar a cadeia User-Agent devolvida pelo programa de navegação Web. Ver:

- MDN Web Docs: userAgent
- Chrome Developers: Substituir a cadeia de caracteres do agente do utilizador
- Como alterar o seu agente do utilizador
- Como alterar o User-Agent no Chrome, Firefox, Safari e outros
- Como alterar o agente do utilizador do seu navegador sem instalar quaisquer extensões
- Como alterar o agente do utilizador no Gnome Web (epiphany)

### 6.1.2. Extensão do navegador

Todos os navegadores GUI modernos suportam extensões de navegador baseadas em código-fonte e estão a tornar-se normalizadas como extensões Web.

## 6.2. O sistema de correio electrónico (mail)

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

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

### 6.2.1. Noções básicas de mail

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.

Tabela 6.2. Lista de agentes utilizador de mail (MUA)

pacote | popcon | tamanho | tipo
--- | --- | --- | ---
`evolution` | V:25, I:225 | 489 | Programa de GUI X (GNOME, conjunto groupware)
`thunderbird` | V:41, I:103 | 274581 | Programa X GUI (GTK, Mozilla Thunderbird)
`kmail` | V:43, I:103 | 25265 | Programa de GUI X (KDE)
`mutt` | V:11, I:86 | 7334 | programa de terminal de caracteres provavelmente usado com o `vim`
`mew` | V:0.01, I:0.16 | 2319 | programa de terminal de caracteres sob `(x)emacs`

### 6.2.2. Limitação do serviço de correio moderno

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 ligações da porta SMTP (25) dos anfitriões servidos pela rede de nível de consumo à Internet estão bloqueadas.

- As ligações da porta SMTP (25) estão bloqueadas a partir da Internet aos anfitriões servidos pela rede ao nível do consumidor.

- As mensagens de saída dos anfitriões servidos pela rede ao nível do consumidor para a Internet só podem ser enviadas através da porta de envio de mensagens (587).

- Técnicas Anti-spam tais como DomainKeys Identified Mail (DKIM), Sender_Policy_Framework (SPF) e Domain-based Message Authentication, Reporting and Conformance (DMARC) são muito usadas para a filtragem de email.

- O serviço DomainKeys Identified Mail pode ser disponibilizado para o email que envia através do smarthost.

- O sistema anfitrião inteligente pode reescrever o endereço de correio de origem no cabeçalho da mensagem para a sua conta de correio, para evitar a falsificação de endereços de correio eletrónico.

### 6.2.3. Expectativa histórica do serviço de correio

Alguns programas em Debian esperam aceder ao comando `/usr/sbin/sendmail` para enviar emails como predefinição ou definição personalizada uma vez que o serviço de mail num sistema UNIX funcionava historicamente como:

- Uma mensagem de correio eletrónico é criada como um ficheiro de texto.

- O correio eletrónico é enviado para o comando `/usr/sbin/sendmail`.

- Para o endereço de destino no mesmo host, o comando `/usr/sbin/sendmail` faz a entrega local do e-mail, anexando-o ao arquivo `/var/mail/$username`.

  - Comandos que esperam esta funcionalidade: `apt-listchanges`, `cron`, `at`, ...

- Para o endereço de destino no anfitrião remoto, o comando `/usr/sbin/sendmail` efetua a transferência remota do correio eletrónico para o anfitrião de destino encontrado pelo registo MX do DNS utilizando SMTP.

  - Comandos que esperam esta funcionalidade: `popcon`, `reportbug`, `bts`, ...

### 6.2.4. Agente de transporte de mail (MTA)

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

Tabela 6.3. Lista de pacotes básicos relacionados com o agente de transporte de correio

pacote | popcon | tamanho | descrição
--- | --- | --- | ---
`exim4-daemon-light` | V:207, I:215 | 1768 | Agente de transporte de mail Exim4 (MTA: predefinido em Debian)
`exim4-daemon-heavy` | V:5.1, I:5.2 | 1950 | Agente de transporte de correio Exim4 (MTA: alternativa flexível)
`exim4-base` | V:213, I:221 | 1677 | Documentação do Exim4 (texto) e ficheiros comuns
`exim4-doc-html` | I:1.1 | 3798 | Documentação do Exim4 (html)
`exim4-doc-info` | I:0.57 | 648 | Documentação do Exim4 (info)
`postfix` | V:103, I:110 | 4268 | Agente de transporte de mail Postfix (MTA: alternativa segura)
`postfix-doc` | I:4.6 | 5026 | Documentação do Postfix (html+texto)
`sasl2-bin` | V:5, I:10 | 381 | Implementação Cyrus SASL API (postfix suplementar para SMTP AUTH)
`cyrus-sasl2-doc` | I:0.71 | 2140 | Cyrus SASL - documentação
`msmtp` | V:8, I:15 | 822 | MTA leve
`msmtp-mta` | V:6.8, I:8.9 | 139 | MTA leve (extensão de compatibilidade do sendmail para `msmtp`)
`nullmailer` | V:7.7, I:8.2 | 483 | Elimina o MTA, sem correio local
`ssmtp` | V:4.0, I:6.2 | 134 | Elimina o MTA, sem correio local
`sendmail-bin` | V:10, I:11 | 1954 | MTA completo (apenas se já estiver familiarizado)
`git-email` | V:0.4, I:9.9 | 1229 | git-send-email(1) programa para enviar uma série de e-mails de patches

#### 6.2.4.1. A configuração do exim4

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:username@hostname.dom: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
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
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.

#### 6.2.4.2. A configuração do postfix com SASL

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

Tabela 6.4. Lista dos manuais importantes do postfix

comando | função
--- | ---
postfix(1) | Programa de controlo do postfix
postconf(1) | Utilitário de configuração do postfix
postconf(5) | Parâmetros de configuração do postfix
postmap(1) | Manutenção da tabela de buscas do Postfix
postalias(1) | Manutenção da base de dados de alias do Postfix

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

#### 6.2.4.3. A configuração do endereço de mail

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

Tabela 6.5. Lista de ficheiros de configuração relacionados com endereços de mail

ficheiro | função | aplicação
--- | --- | ---
`/etc/mailname` | nome de máquina predefinido para mail (saída) | Específico de Debian, mailname(5)
`/etc/email-addresses` | nome de máquina para enganar o mail de saída | `ficheiros_de_configuração-exim4`(5) específicos do exim(8)
`/etc/postfix/generic` | nome de máquina para enganar o mail de saída | específico do postfix(1), activado após a execução do comando postmap(1).
`/etc/aliases` | alias de nome de conta para mail recebido | geral, activado após a execução do comando newaliases(1).

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

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

#### 6.2.4.4. Operações MTA básicas

Existem várias operações MTA básicas. Algumas podem ser executadas através do interface de compatibilidade do sendmail(1).

Tabela 6.6. Lista de operações MTA básicas

comando exim | comando postfix | descrição
--- | --- | ---
`sendmail` | `sendmail` | lê mails da entrada standard e prepara a entrega (`-bm`)
`mailq` | `mailq` | lista a lista de espera de mail com estado e ID de lista de espera (`-bp`)
`newaliases` | `newaliases` | inicializa a base de dados e alias (`-I`)
`exim4 -q` | `postqueue -f` | enxagua mails em espera (`-q`)
`exim4 -qf` | `postsuper -r ALL deferred; postqueue -f` | enxagua todos mails
`exim4 -qff` | `postsuper -r ALL; postqueue -f` | enxagua até mails congelados
`exim4 -Mg queue_id` | `postsuper -h queue_id` | congela uma mensagem pelo seu ID de lista de espera
`exim4 -Mrm queue_id` | `postsuper -d queue_id` | remove uma mensagem pelo seu ID de lista de espera
N/D | `postsuper -d ALL` | remove todas as mensagens

| Dica
Poderá ser uma boa ideia enxaguar todos os mails por um script em "`/etc/ppp/ip-up.d/*`".

## 6.3. O servidor de acesso remoto e utilitários (SSH)

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

Tabela 6.7. Lista de servidores de acesso remoto e utilitários

pacote | popcon | tamanho | ferramenta | descrição
--- | --- | --- | --- | ---
`openssh-client` | V:657, I:996 | 3521 | ssh(1) | Cliente de shell segura
`openssh-server` | V:772, I:820 | 3594 | sshd(8) | Servidor de shell segura
`ssh-askpass` | I:16 | 103 | ssh-askpass(1) | pede ao utilizador uma frase passe para ssh-add (X simples)
`ssh-askpass-gnome` | V:0.4, I:3.0 | 46 | ssh-askpass-gnome(1) | pede ao utilizador uma frase passe para ssh-add (GNOME)
`ssh-askpass-fullscreen` | V:0.09, I:0.42 | 41 | ssh-askpass-fullscreen(1) | pede ao utilizador uma frase passe para ssh-add (GNOME) que seja atrativa
`shellinabox` | V:0.7, I:1.0 | 528 | shellinaboxd(1) | servidor web para emulador de terminal VT100 acessível por browser

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

### 6.3.1. Bases do SSH

O daemon SSH OpenSSH suporta apenas o protocolo SSH 2.

Por favor leia "`/usr/share/doc/openssh-client/README.Debian.gz`", ssh(1), sshd(8), ssh-keygen(1), ssh-add(1) e ssh-agent(1).

| Atenção
o "`/etc/ssh/sshd_not_to_be_run`" não pode estar presente se desejar correr o servidor OpenSSH. Não ative a autenticação baseada em rhost (`HostbasedAuthentication` em `/etc/ssh/sshd_config`).

Tabela 6.8. Lista de ficheiros de configuração do SSH

ficheiro de configuração | descrição do ficheiro de configuração
--- | ---
`/etc/ssh/ssh_config` | Predefinições do cliente SSH, veja ssh_config(5)
`/etc/ssh/sshd_config` | Predefinições do servidor SSH, veja sshd_config(5)
`~/.ssh/authorized_keys` | chaves SSH públicas predefinidas que os clientes usam para ligar a esta conta neste servidor SSH
`~/.ssh/id_rsa` | chave SSH-2 RSA secreta do utilizador
`~/.ssh/id_key-type-name` | chave secreta SSH-2 tipo-nome, como `ecdsa`, `ed25519`, ... do utilizador

O seguinte inicia uma ligação ssh(1) a partir de um cliente.

Tabela 6.9. Lista de exemplos de arranque do cliente SSH

comando | descrição
--- | ---
`ssh username@hostname.domain.ext` | ligar com modo predefinido
`ssh -v username@hostname.domain.ext` | ligar com modo predefinido com mensagens de depuração
`ssh -o PreferredAuthentications=password username@hostname.domain.ext` | força o uso de palavra-passe com SSH versão 2
`ssh -t username@hostname.domain.ext passwd` | execute o programa `passwd` para atualizar a palavra-passe num anfitrião remoto

### 6.3.2. Nome de utilizador no anfitrião remoto

Se utilizar o mesmo nome de utilizador no anfitrião local e no anfitrião remoto, pode deixar de escrever "`username@`".

Mesmo que utilize um nome de utilizador diferente no anfitrião local e remoto, pode eliminá-lo utilizando "`~/.ssh/config`". Para o serviço Debian Salsa com o nome de conta "`foo-guest`", você define "`~/.ssh/config`" para conter o seguinte.

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

### 6.3.3. Ligar sem palavras-passe remotas

É possível evitar ter de se lembrar de palavras-passe para sistemas remotos utilizando "`PubkeyAuthentication`" (protocolo SSH-2).

No sistema remoto, defina as respetivas entradas, "`PubkeyAuthentication yes`", em "`/etc/ssh/sshd_config`".

Crie chaves de autenticação localmente e instale a chave pública no sistema remoto como o seguinte.

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

Pode adicionar opções às entradas em "`~/.ssh/authorized_keys`" para limitar máquinas e correr comandos específicos. Veja sshd(8) "AUTHORIZED_KEYS FILE FORMAT".

### 6.3.4. Lidar com clientes SSH alienígenas

Existem alguns clientes SSH livres disponíveis para outras plataformas.

Tabela 6.10. Lista de clientes SSH para outras plataformas

ambiente | programa de SSH livre
--- | ---
Windows | puTTY (PuTTY: um cliente SSH e Telnet gratuito) (GPL)
Windows (cygwin) | SSH no cygwin (Cygwin: Tenha aquela sensação de Linux - no Windows) (GPL)
Mac OS X | OpenSSH; use `ssh` na aplicação de Terminal (GPL)

### 6.3.5. Configurar o ssh-agent

É mais seguro proteger as suas chaves secretas de autenticação SSH com uma frase-passe. Se nenhuma frase-passe foi definida, use "`ssh-keygen -p`" para a definir.

Ponha a sua chave SSH pública (ex. "`~/.ssh/id_rsa.pub`") em "`~/.ssh/authorized_keys`" numa máquina remota a usar uma ligação à máquina remota baseada em palavra-passe como descrito em cima.

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

Nenhuma palavra-passe necessária desde aqui até ao próximo comando.

    $ scp foo username@remote.host:foo

Carregue em ^D (CTRL-D) para terminar a sessão do ssh-agent.

Para o servidor X, o script de arranque normal de Debian executa o `ssh-agent` como o processo pai. Portanto apenas precisa de executar o `ssh-add` uma vez. Para mais, leia ssh-agent(1) e ssh-add(1).

### 6.3.6. Enviar uma mensagem de correio eletrónico a partir de um anfitrião remoto

Se tiver uma conta de shell SSH num servidor com definições de DNS adequadas, pode enviar um e-mail gerado na sua estação de trabalho como um e-mail genuinamente enviado do servidor remoto.

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

### 6.3.7. Reencaminhamento de portos para SMTP/POP3 em túnel

Para estabelecer um pipe para ligação ao porto 25 do `servidor remoto` a partir do porto 4025 da `máquina local`, e para a porta 110 do `servidor remoto` a partir do porto 4110 da `máquina local` através de `ssh`, execute na máquina local como a seguir.

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

Este é um modo seguro de fazer ligações a servidores SMTP/POP3 pela Internet. Configure a entrada "`AllowTcpForwarding`" para "`yes`" em "`/etc/ssh/sshd_config`" na máquina remota.

### 6.3.8. Como desligar o sistema remoto em SSH

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.

### 6.3.9. Depurar problemas no SSH

Se estiver com problemas, verifique as permissões dos ficheiros de configuração e corra o `ssh` com a opção "`-v`".

Use a opção "`-p`" se for o root e esteja a ter problemas com a firewall; isto evita o uso dos portos de servidor 1 -- 1023.

Se as ligações `ssh` a um site remoto subitamente deixarem de funcionar, pode ser o resultado de reparações pelo administrador do sistema, mais provável uma alteração na "`chave_da_máquina`" durante a manutenção do sistema. Após certificar-se que é este o caso e ninguém está a tentar falsificar a máquina remota com algum hack inteligente, pode-se recuperar a ligação ao remover a entrada "`host_key`" de "`~/.ssh/known_hosts`" na máquina local.

## 6.4. O servidor de impressão e utilitários

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 é o standard 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.

Tabela 6.11. Lista de servidores de impressoras e utilitários

pacote | popcon | tamanho | porto | descrição
--- | --- | --- | --- | ---
`lpr` | V:2.0, I:2.3 | 378 | impressora (515) | BSD lpr/lpd (daemon de impressora de linha)
`cups` | V:143, I:442 | 1088 | IPP (631) | Servidor CUPS de Impressão em Internet
`cups-client` | V:151, I:454 | 429 | , , | Comandos de impressão do System V para o CUPS: lp(1), lpstat(1), lpoptions(1), cancel(1), lpmove(8), lpinfo(8), lpadmin(8), …
`cups-bsd` | V:32, I:184 | 131 | , , | comandos de impressão BSD para o CUPS: lpr(1), lpq(1), lprm(1), lpc(8)
`printer-driver-gutenprint` | V:17, I:54 | 1117 | Não aplicável | Drivers de impressoras para o CUPS

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

## 6.5. Outras aplicações de servidor de rede

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

Tabela 6.12. Lista de outras aplicações de servidor de rede

pacote | popcon | tamanho | protocolo | descrição
--- | --- | --- | --- | ---
`telnetd` | V:0.3, I:1.5 | 55 | TELNET | Servidor TELNET
`nfs-kernel-server` | V:47, I:55 | 834 | NFS | Partilha de ficheiros do Unix
`samba` | V:109, I:122 | 5138 | SMB | Partilha de ficheiros e impressoras do Windows
`netatalk` | V:0.71, I:0.93 | 933 | ATP | Partilha de ficheiros e impressoras do Apple/Mac (AppleTalk)
`proftpd-basic` | V:3.7, I:9.0 | 452 | FTP | Descarrega de ficheiros geral
`apache2` | V:179, I:216 | 586 | HTTP | Servidor web geral
`squid` | V:7.8, I:8.5 | 9358 | , , | servidor proxy web geral
`bind9` | V:34, I:37 | 888 | DNS | Endereço IP para outras máquinas
`kea` | I:0.52 | 245 | DHCP | Endereço IP do próprio cliente

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

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

| 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 `kea` conforme é descrito na página DDNS no wiki Debian.

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

## 6.6. Outros clientes de aplicação de rede

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

Tabela 6.13. Lista de clientes de aplicação de rede

pacote | popcon | tamanho | protocolo | descrição
--- | --- | --- | --- | ---
`netcat-traditional` | V:52, I:904 | 139 | TCP/IP | Canivete suíço do TCP/IP
`netcat-openbsd` | V:20, I:121 | 105 | TCP/IP | Canivete suíço do TCP/IP com suporte para IPv6, proxies e sockets Unix
`openssl` | V:855, I:997 | 2532 | SSL | Binário Secure Socket Layer (SSL) e ferramentas criptográficas relacionadas
`stunnel4` | V:6.2, I:9.6 | 24 | , , | revestimento SSL universal
`telnet` | V:11, I:206 | 55 | TELNET | Cliente TELNET
`nfs-common` | V:147, I:194 | 1140 | NFS | Partilha de ficheiros do Unix
`smbclient` | V:23, I:205 | 2117 | SMB | Cliente de partilha de ficheiros e impressoras do MS Windows
`cifs-utils` | V:32, I:117 | 351 | , , | Comandos de montar e desmontar para ficheiros remotos do MS Windows
`wget` | V:179, I:982 | 3784 | HTTP e FTP | descarregador de web
`curl` | V:248, I:726 | 512 | , , | , ,
`transmission-gtk` | V:11, I:151 | 6259 | BitTorrent | Cliente BitTorrent (GTK)
`transmission-qt` | V:0.7, I:2.7 | 6213 | , , | Cliente do BitTorrent (Qt)
`ktorrent` | V:1.4, I:5.3 | 5031 | , , | Cliente do BitTorrent (Qt)
`qbittorrent` | V:9, I:24 | 15262 | , , | Cliente do BitTorrent (Qt)
`bind9-host` | V:117, I:940 | 136 | DNS | host(1) do bind9, "`Prioridade: standard`"
`dnsutils` | V:5, I:156 | 23 | , , | dig(1) do bind, "`Prioridade: standard`"
`ldap-utils` | V:10, I:55 | 790 | LDAP | obter dados de um servidor LDAP

## 6.7. Os diagnósticos dos daemons do sistema

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 por alguns ISPs, precisa do cliente `telnet` com TLS/SSL ativado pelos pacotes `telnet-ssl` ou `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.

Tabela 6.14. Lista de RFCs populares

RFC | descrição
--- | ---
rfc1939 e rfc2449 | serviço POP3
rfc3501 | serviço IMAP4
rfc2821 (rfc821) | serviço SMTP
rfc2822 (rfc822) | Formato de ficheiro de mail
rfc2045 | Extensões de correio de Internet multiuso(MIME)
rfc819 | serviço DNS
rfc2616 | serviço HTTP
rfc2396 | definição URI

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

Capítulo 5. Configuração de rede |  | Capítulo 7. Sistema GUI (interface gráfica de utilizador)