Capítulo 6. Aplicações de rede

Índice

6.1. Navegadores web
6.1.1. Configuração do explorador
6.2. O sistema de correio electrónico (mail)
6.2.1. Noções básicas de mail
6.2.2. Bases dos serviços de mail modernos
6.2.3. A estratégia de configuração de mail para estação de trabalho
6.3. Agente de transporte de mail (MTA)
6.3.1. A configuração do exim4
6.3.2. A configuração do postfix com SASL
6.3.3. A configuração do endereço de mail
6.3.4. Operações MTA básicas
6.4. Agente utilizador de mail (MUA)
6.4.1. MUA básico — Mutt
6.5. O adquiridor de mail remoto e utilitário de reencaminhamento
6.5.1. configuração do getmail
6.5.2. configuração do fetchmail
6.6. Agente de entrega de mail (MDA) com filtro
6.6.1. configuração do maildrop
6.6.2. configuração do procmail
6.6.3. Re-entregar o conteúdo da mbox
6.7. Servidor POP3/IMAP4
6.8. O servidor de impressão e utilitários
6.9. O servidor de acesso remoto e utilitários (SSH)
6.9.1. Bases do SSH
6.9.2. Reencaminhamento de portos para SMTP/POP3 em túnel
6.9.3. Ligar sem palavras-passe remotas
6.9.4. Lidar com clientes SSH alienígenas
6.9.5. Configurar o ssh-agent
6.9.6. Como desligar o sistema remoto em SSH
6.9.7. Depurar problemas no SSH
6.10. Outras aplicações de servidor de rede
6.11. Outros clientes de aplicação de rede
6.12. Os diagnósticos dos daemons do sistema

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

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


Poderá ser capaz de utilizar as seguintes strings especiais de URL para alguns navegadores para confirmar as suas definições.

  • "about:"

  • "about:config"

  • "about:plugins"

Debian oferece muitos pacotes livres com plugins de navegador na área de arquivo main, os quais podem lidar não apenas com Java (plataforma de software) e Flash mas também com ficheiros MPEG, MPEG2, MPEG4, DivX, Windows Media Video (.wmv), QuickTime (.mov), MP3 (.mp3), Ogg/Vorbis, DVDs, VCDs, etc. Debian também oferece programas de ajuda para instalar pacotes não-livres de plugins de navegador nas áreas de arquivo contrib ou non-free.


[Dica] Dica

Apesar do uso dos pacotes Debian em cima ser mais fácil, os plugins do navegador podem ainda ser adicionados manualmente ao instalar os "*.so" nos directórios de plugins (ex. "/usr/lib/iceweasel/plugins/") e reiniciando os navegadores.

Alguns sites web recusam a ligação de acordo com a string user-agent do seu navegador. Pode contornar esta situação ao enganar a string user-agent. Por exemplo, você pode fazer isto ao adicionar a seguinte linha em ficheiros de configuração do utilizador como o "~/.gnome2/epiphany/mozilla/epiphany/user.js" ou "~/.mozilla/firefox/*.default/user.js".

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"};

Alternativamente, você pode adicionar ou reiniciar esta variável ao escrever "about:config" no URL e clicar com o botão direito no conteúdo mostrado.

[Cuidado] Cuidado

Uma string user-agent enganada pode causar maus efeitos colaterais com Java.

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

O sistema de mail invoca muitos programas servidores e muitos programas clientes a correr um várias máquinas. Relativamente às funcionalidades, existem 3 tipos de programas agentes de mail:

[Nota] Nota

Os exemplos seguintes de configuração são válidos apenas para a estação de trabalho móvel típica em ligações de consumidor de Internet.

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 cliente de email) (MUA) necessita interpretar os cabeçalhos da mensagem e dados do corpo utilizando Multipurpose Internet Mail Extensions (MIME) para lidar com o tipo de dados e codificação do conteúdo.

De modo a minimizar a exposição aos problemas do spam (correio não desejado nem solicitado), muitos ISPs que disponibilizam as ligações à Internet dos consumidores, estão a implementar contra-medidas.

Quando configurar o seu sistema de mail ou resolver problemas de entrega de mail, você deve considerar estas novas limitações.

À luz destas situações e limitações hostis da Internet, alguns ISPs de mail de Internet independentes tais como o Yahoo.com e Gmail.com oferecem o serviço de mail seguro que pode ser acedido a partir de qualquer lugar na Internet usando o Transport Layer Security (TLS) e o seu antecessor, Secure Sockets Layer (SSL).

  • O serviço smarthost no porto 465 com o protocolo depreciado SMTP sobre SSL (SMTPS).

  • O serviço de smarthost no porto 587 com STARTTLS.

  • O mail de chegada está acessível no porto 995 TLS/POP3 com POP3.

[Cuidado] Cuidado

Não é realista correr um servidor SMTP numa rede de ligação doméstica para enviar mail directamente para a máquina remota de forma confiável. Muito provavelmente os mails serão rejeitados. Terá de utilizar um serviço de smarthost oferecido pelo ISP da ligação ou pelo ISPs de mail independentes.

Para simplificar, assumo que o smarthost está localizado em "smtp.nomemaquina.dom", necessita de Autenticação SMTP, e utiliza o porto para submissão de mensagens (587) com STARTTLS no texto seguinte.

A configuração de mail mais simples é aquela onde o mail é enviado para o smarthost do ISP e recebido do servidor POP3 do ISP pelo próprio MUA (veja Secção 6.4, “Agente utilizador de mail (MUA)”). Este tipo de configuração é popular com MUA baseado em GUIs cheios de funcionalidades como o icedove(1), evolution(1), etc. Se necessitar filtrar o mail pelos seus tipos, você usa a função de filtragem do MUA. Para este caso, o MTA local (veja Secção 6.3, “Agente de transporte de mail (MTA)”) precisa apenas de fazer entregas locais (quando o remetente e o destinatário estão na mesma máquina.

Por favor note que o sistema Debian é um sistema multi-utilizador. Mesmo que você seja o único utilizador, existem muitos programas que correm como root e eles podem enviar-lhe um mail.

A configuração de mail alternativa é onde o mail é enviado via MTA local para o smarthost do ISP e recebido do POP3 do ISP através de um obtentor de mail (veja Secção 6.5, “O adquiridor de mail remoto e utilitário de reencaminhamento”) para a mailbox local. Se necessitar filtrar o mail pelos seus tipos, utilize o MDA com filtro (veja Secção 6.6, “Agente de entrega de mail (MDA) com filtro”) para filtrar o mail em caixas separadas. Este tipo de configuração é popular com MUAs baseadas em consola simples como mutt(1), mew(1), etc., apesar de ser possível com qualquer MUA (veja Secção 6.4, “Agente utilizador de mail (MUA)”). Para este caso, o MTA local (veja Secção 6.3, “Agente de transporte de mail (MTA)”) precisa de fazer a entrega ao smarthost e a entrega local. Como as estações de trabalho móveis não têm um FQDN válido, terá de configurar o MTA local para esconder e enganar o nome de mail local real no mail de saída para evitar erros de entrega de mail (veja Secção 6.3.3, “A configuração do endereço de mail”).

[Dica] Dica

Poderá desejar configurar o MUA/MDA para utilizar Maildir para armazenar as mensagens de email algures sob o seu directório pessoal.

Para uma estação de trabalho normal, a escolha popular para Agente de Transporte de Mail (MTA) é ou o pacote exim4-* ou o postfix. A escolha é sua.


Apesar da contagem de votos do popcon do exim4-* parecer ser várias vezes mais popular que a do postfix, isto não quer dizer que o postfix não seja popular entre os programadores de Debian. O sistema de servidor Debian utiliza ambos, exim4 e postfix. A análise dos cabeçalhos de mail dos envios para a lista de mail dos programadores proeminentes de Debian também indica que ambos os MTAs são populares.

Os pacotes exim4-* são conhecidos por terem um pequeno consumo de memória e serem muito flexíveis na sua configuração. O pacote postfix é conhecido por ser compacto, rápido, simples, e seguro. Ambos vêm com ampla documentação e são bons em qualidade e licença.

Existem muitas escolhas para pacotes de agente de transporte de mail (MTA) com capacidades e objectivos diferentes no arquivo Debian.


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

$ sudo /etc/init.d/exim4 stop
$ 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 sua predefinição 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:" para a sua predefinição 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.3.3, “A configuração do endereço de mail”.)

Responda a "Manter um número mínimo de consultas DNS (Marcar-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.*\.nome_de_máquina\.domínio:nome_de_máquina@nome_de_máquina.domínio:palavra-passe

Inicie o exim4 com o seguinte.

$ sudo /etc/init.d/exim4 start

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 é um alias para smtp99.hostname.dom.
smtp99.hostname.dom possui o endereço 123.234.123.89

Eu 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 actualizar manualmente a configuração do exim4 com o seguinte:

  • Actualizar 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-directórios "/etc/exim4/exim4.conf.d". (configuração dividida)

  • Correr "invoke-rc.d exim4 reload".

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

[Cuidado] Cuidado

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

[Atenção] Atenção

É inseguro utilizar palavras-passe em texto simples sem encriptação mesmo que o seu ISP o permita.

[Dica] Dica

Embora seja recomendado a utilização de SMTP com STARTTLS no porto 587, alguns ISPs ainda utilizam o depreciado SMTPS (SSL no porto 465). O exim4 após a versão 4.77 suporta o protocolo depreciado SMTPS quer para cliente quer para servidor.

[Dica] Dica

Se você está a procurar um MTA leve que respeite "/etc/aliases" para o seu PC portátil, deve considerar configurar o exim4(8) com "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. em "/etc/default/exim4".

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


(Re)configurar os pacotes postfix e sasl2-bin como se segue.

$ sudo /etc/init.d/postfix stop
$ 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     nome_utilizador:palavra_passe
$ sudo postmap hush:/etc/postfix/sasl_passwd

Arranque o postfix com o seguinte.

$ sudo /etc/init.d/postfix start

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 "Activar 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 seu comportamento predefinido. 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, são necessários os seguintes passos extra:

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

Se você subscrever uma lista de mail relacionada com Debian, poderá ser boa ideia usar um MUA como o mutt e o mew que são de facto standards para o participante e para se saber comportar como se espera.


Personalize "~/.muttrc" como se segue para usar o mutt como agente de utilizador de mail (MUA) em combinação com o vim.

#
# User configuration file to override /etc/Muttrc
#
# spoof source mail address
set use_from
set hostname=example.dom
set from="Name Surname <username@example.dom>"
set signature="~/.signature"

# vim: "gq" to reformat quotes
set editor="vim -c 'set tw=72 et ft=mail'"

# "mutt" goes to Inbox, while "mutt -y" lists mailboxes
set mbox_type=Maildir           # use qmail Maildir format for creating mbox
set mbox=~/Mail                 # keep all mail boxes in $HOME/Mail/
set spoolfile=+Inbox            # mail delivered to $HOME/Mail/Inbox
set record=+Outbox              # save fcc mail to $HOME/Mail/Outbox
set postponed=+Postponed        # keep postponed in $HOME/Mail/postponed
set move=no                     # do not move Inbox items to mbox
set quit=ask-yes                # do not quit by "q" only
set delete=yes                  # always delete w/o asking while exiting
set fcc_clear                   # store fcc as non encrypted

# Mailboxes in Maildir (automatic update)
mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "`
unmailboxes Maillog *.ev-summary

## Default
#set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
## Thread index with senders (collapse)
set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"

## Default
#set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
## just folder names
set folder_format="%2C %t %N %f"

Adicione o seguinte ao "/etc/mailcap" or "~/.mailcap" para mostrar mail em HTML e anexos do MS Word 'inline'.

text/html; lynx -force_html %s; needsterminal;
application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
[Dica] Dica

O Mutt pode ser usado como o cliente IMAP e o conversor de formato de mailbox. Você pode etiquetar as mensagens com "t", "T", etc. Estas mensagens etiquetadas podem ser copiadas com ";C" entre diferentes mailboxes e apagadas com ";d" numa acção única.

Em vez de correr um MUA para aceder remotamente a mails e os processar manualmente, você pode desejar automatizar tal processo para ter todos os mails entregues na máquina local. O recuperador de mail remoto e utilitário de reencaminhamento é a ferramenta para si.

Apesar do fetchmail(1) ter sido o standard de facto para adquiridor de mail remoto em GNU/Linux, o autor agora gosta do getmail(1). Se você deseja rejeitar mail antes de o descarregar para poupar largura de banda, o mailfilter ou o mpop podem ser úteis. Independentemente de quais utilitários de adquirir mails sejam usados, é uma boa ideia configurar o sistema para entregar os mails adquiridos a um MDA, como o maildrop, via pipe.


A configuração do getmail(1) está descrita em documentação do getmail.Aqui estão as minhas definições para aceder a múltiplas contas POP3 como utilizador.

Crie "/usr/local/bin/getmails" como o seguinte.

#!/bin/sh
set -e
if [ -f $HOME/.getmail/running ]; then
  echo "getmail já está a correr ... (se não, remova $HOME/.getmail/running)" >&2
  pgrep -l "getmai[l]"
  exit 1
else
  echo "getmail não está a correr ... " >&2
fi
if [ -f $HOME/.getmail/stop ]; then
  echo "não correr o getmail ... (se não, remova $HOME/.getmail/stop)" >&2
  exit
fi
if [ "x$1" = "x-l" ]; then
  exit
fi
rcfiles="/usr/bin/getmail"
for file in $HOME/.getmail/config/* ; do
  rcfiles="$rcfiles --rcfile $file"
done
date -u > $HOME/.getmail/running
eval "$rcfiles $@"
rm $HOME/.getmail/running

Configure-o como o seguinte.

$ sudo chmod 755 /usr/local/bin/getmails
$ mkdir -m 0700 $HOME/.getmail
$ mkdir -m 0700 $HOME/.getmail/config
$ mkdir -m 0700 $HOME/.getmail/log

Crie ficheiros de configuração "$HOME/.getmail/config/pop3_name" para cada conta POP3 como o seguinte.

[retriever]
type = SimplePOP3SSLRetriever
server = pop.exemplo.com
username =  nome_pop3@exemplo.com
password = <sua-palavra-passe>

[destination]
type = MDA_external
path = /usr/bin/maildrop
unixfrom = True

[options]
verbose = 0
delete = True
delivered_to = False
message_log = ~/.getmail/log/pop3_name.log

Configure-o como o seguinte.

$ chmod 0600 $HOME/.getmail/config/*

Agenda o "/usr/local/bin/getmails" para correr a cada 15 minutos com o cron(8) ao executar "sudo crontab -e -u <nome_de_utilizador>" e adicionando o seguinte à entrada cron do utilizador.

5,20,35,50 * * * * /usr/local/bin/getmails --quiet
[Dica] Dica

Os problemas do acesso POP3 podem não vir do getmail. Alguns serviços populares POP3 livres podem estar a violar o protocolo POP3 e o seu filtro de SPAM pode não ser perfeito. Por exemplo, pode estar a apagar as mensagens logo após receber o comando RETR antes de receber o comando DELE e pode colocar mensagens em quarentena na caixa do Spam. Você deve minimizar os danos ao configura-los para arquivar as mensagens acedidas e não as apagar. Veja também "Algum mail não foi descarregado".

A maioria dos programas MTA, como o postfix e exim4, funcionam como MDA (mail delivery agent). Eles são MDAs especializados com capacidades de filtragem.

Apesar do procmail(1) ter sido o standard de facto para MDA com filtro em GNU/Linux, o autor agora gosta do maildrop(1). Seja quais os utilitários de filtragem usados, é uma boa ideia configurar o sistema para entregar os mails filtrados a uma Maildir de estilo qmail.


A configuração do maildrop(1) está descrita em documentação do maildropfilter. Aqui está um exemplo de configuração para "$HOME/.mailfilter".

# Local configuration
MAILROOT="$HOME/Mail"
# set this to /etc/mailname contents
MAILHOST="example.dom"
logfile $HOME/.maildroplog

# rules are made to override the earlier value by the later one.

# mailing list mails ?
if (     /^Precedence:.*list/:h || /^Precedence:.*bulk/:h )
{
    # rules for mailing list mails
    # default mailbox for mails from mailing list
    MAILBOX="Inbox-list"
    # default mailbox for mails from debian.org
    if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h )
    {
        MAILBOX="service.debian.org"
    }
    # default mailbox for mails from bugs.debian.org (BTS)
    if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # mailbox for each properly maintained mailing list with "List-Id: foo" or "List-Id: ...<foo.bar>"
    if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h )
    {
        MAILBOX="$MATCH2"
    }
}
else
{
    # rules for non-mailing list mails
    # default incoming box
    MAILBOX="Inbox-unusual"
    # local mails
    if ( /Envelope-to: .*@$MAILHOST/:h )
    {
        MAILBOX="Inbox-local"
    }
    # html mails (99% spams)
    if ( /DOCTYPE html/:b ||\
         /^Content-Type: text\/html/ )
    {
        MAILBOX="Inbox-html"
    }
    # blacklist rule for spams
    if ( /^X-Advertisement/:h ||\
         /^Subject:.*BUSINESS PROPOSAL/:h ||\
         /^Subject:.*URGENT.*ASISSTANCE/:h ||\
         /^Subject: *I NEED YOUR ASSISTANCE/:h )
    {
        MAILBOX="Inbox-trash"
    }
    # whitelist rule for normal mails
    if ( /^From: .*@debian.org/:h ||\
         /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\
         /^Subject: .*(debian|bug|PATCH)/:h )
    {
        MAILBOX="Inbox"
    }
    # whiltelist rule for BTS related mails
    if ( /^Subject: .*Bug#.*/:h ||\
         /^(To|Cc): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # whitelist rule for getmails cron mails
    if ( /^Subject: Cron .*getmails/:h )
    {
        MAILBOX="Inbox-getmails"
    }
}

# check existance of $MAILBOX
`test -d $MAILROOT/$MAILBOX`
if ( $RETURNCODE == 1 )
{
    # create maildir mailbox for $MAILBOX
    `maildirmake $MAILROOT/$MAILBOX`
}
# deliver to maildir $MAILBOX
to "$MAILROOT/$MAILBOX/"
exit
[Atenção] Atenção

Ao contrário do procmail, o maildrop não cria automaticamente os directórios maildir em falta. Você tem de os criar manualmente com antecedência usando o maildirmake(1) como no exemplo "$HOME/.mailfilter".

Se você vai correr um servidor privado numa LAN, deve considerar correr um servidor POP3 / IMAP4 para entregar mail aos clientes da LAN.


No antigo sistema tipo Unix, o Line printer daemon do BSD era o standard. Como o formato de impressão standard do software livre é o PostScript nos sistemas tipo Unix, um sistema de filtragem foi usado juntamente com o Ghostscript para activar a impressão em impressoras não-PostScript.

Recentemente, o Common UNIX Printing System (CUPS) é o novo standard de facto. O CUPS usa Internet Printing Protocol (IPP). O IPP é agora suportado por outros SOs como o Windows XP e o Mac OS X e tornou-se no novo standard de facto para várias plataformas para impressão remota com capacidade de comunicação bidireccional.

O formato de dados de impressão standard para a aplicação no sistema Debian é o PostScript (PS) o qual é uma linguagem de descrição de página. Os dados em formato PS são fornecidos ao interpretador de PostScript Ghostscript para produzir os dados de impressão específicos da impressora. Veja Secção 11.4.1, “Ghostscript”.

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

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

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.


[Cuidado] Cuidado

Veja Secção 4.7.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 activar a sobrevivência do processo de shell remota à interrupção da ligação (veja Secção 9.1, “O programa screen”).

[Atenção] Atenção

o "/etc/ssh/sshd_not_to_be_run" não pode estar presente se desejar correr o servidor OpenSSH.

SSH tem dois protocolos de autenticação.


[Cuidado] Cuidado

Tenha cuidado com estas diferenças se você não estiver a usar um sistema Debian.

Veja "/usr/share/doc/ssh/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), e ssh-keygen(1) para detalhes.

Os ficheiros de configuração chave são os seguintes.


[Dica] Dica

Veja ssh-keygen(1), ssh-add(1) e ssh-agent(1) para como usar chaves SSH secretas e públicas.

[Dica] Dica

Certifique-se de verificar as configurações ao testar a ligação. Em caso de problemas, use "ssh -v".

[Dica] Dica

Você pode mudar a frase-passe para encriptar chaves SSH secretas locais mais tarde com "ssh-keygen -p".

[Dica] Dica

Você pode adicionar opções às entradas em "~/.ssh/authorized_keys" para limitar máquinas e correr comandos específicos. Veja sshd(8) para mais detalhes.

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


Se você usar o mesmo nome de utilizador nas máquinas local e remota, pode eliminar a escrita de "username@". Mesmo que você use um nome de utilizador diferente nas máquinas local e remota, pode eliminá-lo usando "~/.ssh/config". Para o serviço Debian Alioth com nome de conta "foo-guest", você regula o "~/.ssh/config" para conter o seguinte.

Host alioth.debian.org svn.debian.org git.debian.org
    User foo-guest

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

Você 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 usando o comando at(1) (veja Secção 9.3.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, “O programa screen”) é outro modo de fazer o mesmo.

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 utilizando 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 activo de alguns ISPs, você precisa do cliente telnet com TLS/SSL activo 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".