E-mail sobre UUCP: A solu��o profissional para utilizadores dialup

ArticleCategory: [Do not translate this]

System Administration

AuthorImage:[Do not translate this]

[Photo of the Author]

TranslationInfo:[Do not translate this]

original in en Guido Socher

en to pt Bruno Sousa

AboutTheAuthor:[Translate the paragraph below]

O Guido tem utilizado o UUCP h� j� muitos anos e pensa que � o melhor meio de ligar o sistema de mail do seu computador � Internet.

Abstract:[Translate the paragraph below]

O UUCP � um dos velhos e bons protocolos da Internet. Em muitos casos � agora substitu�do por protocolos mais modernos mas continua a ser uma das melhores solu��es para enviar e-Mail para e de sites dialup. Infelizmente muitas pessoas a ligarem-se de casa atrav�s de uma liga��o dialup n�o t�m conhecimento das grandes potencialidades do UUCP e n�o pedem este servi�o. Como consequ�ncia, cada vez menos ISP's oferecem os servi�os de UUCP nos dias de hoje.

ArticleIllustration:[Do not try to translate this]

[uucp]

ArticleBody:[Translate everything below]

Introdu��o

O UUCP � um protocolo muito velho e originalmente, era utilizado para copiar ficheiros entre sistemas Unix. Da� o nome: "Unix to Unix Copy". Estes primeiros computadores n�o estavam permanentemente ligados atrav�s de uma rede. Em vez disto utilizavam liga��es de modem dialup para trocar dados em intervalos de tempo regulares.

Para copiar o ficheiro mynotes.txt para um sistema remoto chamado "mars" um deles utilizaria o comando:

uucp mynotes.txt mars!~/mynotes.txt
Neste momento isto copia os dados para um "direct�rio de spool" e mais tarde quando uma liga��o dialup � feita s�o copiados fisicamente os dados.

Hoje, este tipo de aplica��o para o UUCP � raramente utilizado. Protocolos mais modernos como o TCP/IP e por exemplo o scp est�o agora dispon�veis para copiar ficheiros entre sistemas computacionais.

O UUCP podia fazer mais do que isto. Permitia a execu��o de um n�mero limitado de comandos remotos. Para enviar os dados do comando "rnews" para o sistema remoto "mars" a partir da entrada padr�o uma poss�vel solu��o seria:
cat somedata.txt | uux - mars!rnews
Novamente o comando rnews n�o seria executado imediatamente no sistema remoto, mas somente quando uma liga��o dialup para "mars" estivesse estabelecida. O comando ficaria "estacionado" no "direct�rio local de spool".

Mas o que � que isto tem haver com o e-mail?
O E-mail � uma aplica��o t�pica onde n�o importa se o envio dos dados � atrasado um pouco. Normalmente, voc� atrav�s do seu mail, escreve por exemplo mensagens de resposta a amigos e "enviam-nas". Contudo voc� n�o pretende que todas as janelas de resposta da sua aplica��o de mail se abram ao mesmo tempo enquanto se liga novamente ao seu ISP. Quer antes enviar o mail e fechar a janela. Se � enviada imediatamente n�o � importante aqui desde que seja enviada mais tarde.

Este � o tipo de aplica��o que facilmente pode confiar e implementar com o UUCP.

O seu pr�prio sistema de mail

O UUCP � flex�vel. Pode configur�-lo para ter um servidor de mail a funcionar na rede de computadores. O seu computador com Linux pode ser o servidor central de mail servindo o servi�o de mail para todos os tipos de computadores e sistemas operativos na sua rede local LAN (Rede de �rea local):
[A private 
mail system connected via dialup]


Definir um servidor de mail deste modo pode ser conveniente para uma empresa familiar, pequena com custos reduzidos. Pode fornecer contas de e-mail para qualquer n�mero de utilizadores enquanto que ao mesmo tempo s� precisa de uma liga��o de dialup ao seu ISP. A companhia far� uma liga��o peri�dica (por exemplo a cada hora) e pessoas privadas podem fazer a liga��o por variadas raz�es.

Para concluir: O E-mail sobre o UUCP n�o � nada velho e sujo. � um modo muito conveniente, barato e uma aplica��o inteligente do UUCP.

Como � que funciona?

Utilizando o UUCP obter� do seu ISP o seu pr�prio dom�nio MX (MX=Mail Exchanger, nome do Dom�nio parte do endere�o e-mail). Por exemplo se a p�gina do seu ISP � www.my-friendly-isp.com ent�o podem dar ao Joe Miller o dom�nio miller.my-friendly-isp.com. Todo o mail para aquele dom�nio ser� enviada para o servidor do Joe Miller atrav�s do UUCP. O Joe pode ent�o configurar qualquer n�mero de utilizadores: [email protected], [email protected], [email protected] ... � com o Joe. Visto que obt�m um servidor de mail gr�tis com o Linux este pode servir protocolos diferentes como o pop, imap, nfs ou caixa de correio directamente sobre o sistema de ficheiros local ... etc n�o h� restri��o para o tipo de sistema operativo ou clientes de e-mail utilizados para aceder ao respectivo mail.

O UUCP como tal � um protocolo s� por si s� e pode corr�-lo directamente ao n�vel do hardware (por exemplo uma linha do modem sem o protocolo ppp) contudo tamb�m o pode correr sobre o TCP/IP o que lhe oferece novas possibilidades:

Se possuir um ISP dedicado algures no mundo com uma liga��o � rede muito boa (por exemplo Amsterd�o) e voc� liga-se a um ISP qualquer, barato e com liga��es locais. Desde que o UUCP corra no topo do TCP/IP o localiza��o f�sica do seu ISP de E-mail/UUCP j� n�o importa mais. � acess�vel de qualquer local do mundo atrav�s da Internet.

Configurando-o

A Maioria das distribui��es de Linux t�m um pacote chamado uucp e normalmente, cont�m o Tailer UUCP. Se n�o est� em nenhuns dos seus CDs, ent�o pode obt�-lo em:
www.airs.com/ian

Al�m do pacote UUCP precisa tamb�m de um sistema de mail capaz de suportar o UUCP. Descreverei o Sendmail neste artigo, mas outros sistemas tamb�m suportam o UUCP. Um sistema de mail que suportam o UUCP ter� um comando chamado rmail no pacote rpm ou deb.

O mail � enviado para o seu sistema atrav�s de um comando remoto, semelhante ao exemplo acima do uux/rnews. O rmail � o comando que recebe o mail atrav�s do "pipe" UUCP e integra-o no seu sistema de mail.

A informa��o que se segue � precisa ao seu ISP para configurar a conta:
Os dados que precisa do seu ISP:

Testando a conta passo a passo

O UUCP sobre o TCP/IP utiliza o porto TCP 540 e pode, assim testar facilmente a sua conta antes de entrar, propriamente na configura��o do seu sistema UUCP. Assim assegura-se que o seu ISP n�o cometeu erros e que voc� possui os IDs e passwords correctos. Corra o comando:
telnet uucp.my-friendly-isp.com 540
Obter� algo do g�nero:
Trying 1.2.3.42...
Connected to uucp.my-friendly-isp.com
Escape character is '^]'.
login:
Digite o nome de login e password:
Trying 1.2.3.42...
Connected to uucp.my-friendly-isp.com
Escape character is '^]'.
login: linux
Password: tux.1234
Shere=mfic
Depois de um login com sucesso o outro lado responde com "Shere" o que corresponde ao sistema seguido do nome do sistema remoto (verifique novamente os dados do seu ISP).
Para terminar a liga��o use crtl-] e de seguida digite "q" na linha de comandos do telnet:
^]
telnet> q
Connection closed.
Agora sabe que a sua conta est� configurado correctamente.

Configurando o seu sistema UUCP

Para receber (e finalmente, enviar) mail via UUCP voc� precisa de p�r os dados correctos nos ficheiros de configura��o do UUCP. Estes ficheiros s�o encontrados normalmente em /etc/uucp. Precisa de criar/editar as linhas seguintes: Todos os ficheiros devem pertencer ao utilizador uucp e ao grupo uucp. O ficheiro n�o deve ser permiss�vel de leitura (chmod 640 call). Os ficheiros de log, normalmente, s�o escritos em /var/log/uucp/ e /var/spool/uucp/ devendo conter um direct�rio com o nome do sistema remoto. Certifique-se que ambos s�o permiss�veis de escrita para o utilizador uucp.

call
# call file
# The format is just remote-system-name login-name password.
mfic linux tux.1234

port
# port file
# No need to change this
type tcp
port tcp
service 540

sys
# sys file
# defines information about the remote system
# system name of your ISP:
system mfic
# the server of your ISP:
address uucp.my-friendly-isp.com
# do not change the next 3 lines, see documentation of Tailer UUCP
# for details
time Any 2
port tcp
chat-timeout 60
# allowed commands:
commands rmail
# take the password and user name from the call file:
call-login *
call-password *
# do not change the next line:
chat ogin: \L assword: \P
#

config
# The config file just defines the path names
# of the other files and directories as well as your
# system name.
# Your system name:
nodename oblelix
# max number of request from other systems to execute in parallel:
max-uuxqts 2
# The UUCP spool directory
spool /var/spool/uucp
# The other fields are usually already compiled into
# as defaults:
# pubdir /var/spool/uucppublic
# logfile /var/log/uucp/Log
# statfile /var/log/uucp/Stats
# debugfile /var/log/uucp/Debug
# callfile /etc/uucp/call
# ....

Depois de guardar os ficheiros de configura��o corra o comando "uuchk". Que se encontra, provavelmente na sbin: /usr/sbin/uuchk

A sa�da � um resumo da sua configura��o incluindo alguns valores por omiss�o que n�o definiu. O nome da m�quina do seu servidor ISP, uucp.my-friendly-isp.com no nosso exemplo, aparece como "phone number":

Phone number uucp.my-friendly-isp.com
Isto parece estranho mas est� correcto para o UUCP sobre o TCP/IP. Verifique, especialmente que todos os direct�rios, ficheiros de log, ficheiros de debug etc est�o a apontar para o s�tio correcto e pertencem ao utilizador uucp.

Por agora, devia ser capaz de receber mail via UUCP, mas o seu agente de transporte de mail local (MTA=mail transport agent) precisa ainda saber de que est� permitido a suportar o mail para o dom�nio registado perante o ISP. No nosso caso o dom�nio � miller.my-friendly-isp.com. A configura��o deste dom�nio depende do seu MTA. No sendmail precisa de escrever o miller.my-friendly-isp.com numa s� linha no ficheiro /etc/sendmail.cw:

# sendmail.cw define the domains for which we handle mail
miller.my-friendly-isp.com
Agora est� preparado para testar a recep��o de mail atrav�s de UUCP. O envio de mails n�o funcionar� porque o sendmail ainda n�o est� totalmente configurado.
Corra
/usr/sbin/uucico -x 11 -S mfic
o mfic representa o nome do sistema UUCP do my-friendly-isp.com.

Com uma segunda janela de terminal e observe o resultado com o comando "tail -f /var/log/uucp/Debug".
O "-x 11" especifica o n�vel mais alto de debug e s� deveria ser usado em testes. Ver� todos os detalhes do protocolo UUCP. Verifique se existem erros. Se no fim obtiver algo do tipo
uucico mfic - (2001-06-22 20:20:57.73 1020) Call complete (31 seconds 42835 bytes 1381 bps)
ent�o tudo correu bem. Felicita��es!

Corra o comando "uulog". Este imprimir� um resumo mais compresso acerca dos mails recebidos atrav�s de UUCP/rmail.

Configurando o sendmail para enviar e-mail atrav�s do UUCP

O Sendmail utiliza um pr�-processador m4 com base na configura��o do sistema. Outros sistemas de mail, como o postfix utilizam ficheiros de configura��o de f�cil leitura o que n�o constitui problema para a sua edi��o. Eu estou a utilizar o sendmail, da� que descreva a minha experi�ncia com o mesmo. � bem-vinda a adi��o de informa��o acerca de um MTA diferente na p�gina de respostas abaixo. Constatei que o postfix s� requer a edi��o do ficheiro transport/transport.db e de uma defini��o do uucp no ficheiro master.cf, parece-me que � s� isto contudo n�o tenho muita experi�ncia com o postfix.

A configura��o do sistema m4 pode n�o vir inclu�da nos mesmos pacotes que o pr�prio sendmail. Verifique os CDs da sua distribui��o, pois pode precisar de instalar um pacote com o nome de "sendmail-cf".

Crie um novo ficheiro sendmail-uucp.mc no direct�rio de configura��o do sendmail (talvez /usr/lib/sendmail-cf/cf):

#divert(-1)
# `This is config sends outgoing mail via uucp using /usr/bin/uux
#
# to generate a sendmail.cf out of this .mc file use the sendmail sources
# and run m4 thisfile.mc > sendmail.cf.'
divert(0)
include(`../m4/cf.m4')
VERSIONID(`UUCP, Jan 28 2001, without DNS')
undefine(`BITNET_RELAY')
undefine(`DECNET_RELAY')
undefine(`UUCP_RELAY')
OSTYPE(`linux')
MASQUERADE_AS(miller.my-friendly-isp.com)
MASQUERADE_DOMAIN(localdomain)
MASQUERADE_DOMAIN(localhost)
# ` add any local hostnames here:'
MASQUERADE_DOMAIN(philosophus)
# ` needed if you use an internal domain that does not exist: '
FEATURE(`masquerade_envelope')
FEATURE(always_add_domain)
# ` read allowed domains from cw file: '
FEATURE(use_cw_file)
FEATURE(local_procmail)
# `important for uucp:'
FEATURE(accept_unresolvable_domains)dnl
# `the /etc/passwd entry: mail:*:8:12:mail:/var/spool/mail:'
define(`confDEF_USER_ID',``8:12'')
define(`confSAFE_QUEUE',`True')
define(`confDELIVERY_MODE',`background')dnl
# 'replace mfic by the UUCP system name of your ISP:'
define(`SMART_HOST',uucp-uudom:mfic)dnl
define(`confSERVICE_SWITCH_FILE',/etc/service.switch)dnl
define(`confHOSTS_FILE',/etc/hosts)dnl
define(`UUCP_MAILER_MAX',1024000)dnl
MAILER(procmail)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)dnl
Adapte o ficheiro � sua situa��o e compile-o com o comando:
m4 sendmail-uucp.mc > sendmail.cf
Copie o ficheiro sendmail.cf para /etc e reinicie o sendmail com
/etc/rc.d/init.d/sendmail restart
O caminho da script de arranque diz respeito �s distribui��es redhat e mandrake, sendo diferente para a SuSE, Debian etc...

No ficheiro /etc/service.switch devia usar:
hosts   files
aliases files
Agora envie um E-mail a algu�m. Pode fazer isto com o seu programa de mail favorito ou directamente no unix atrav�s do comando:
echo "hello john, just testing..." | Mail [email protected]
Este mail n�o � enviado directamente para fora. Em vez disso ficar� na fila de espera do sistema UUCP. Deve conseguir v�-la se correr:
uustat -a
o uustat apresentar�:
mfic.CRJjd4uAAAPs mfic joe 07-24 20:19 Executing rmail [email protected]
(sending 50 bytes)
A seguir corra
/usr/sbin/uucico -x 11 -S mfic
o mfic � de novo o nome do sistema UUCP do my-friendly-isp.com. Pode observar o ficheiro de Debug e ver que o mail est� a ser enviado.

Automatizando

Crie a seguinte script /usr/bin/uumail:
#!/bin/sh
hostn=uucp.my-friendly-isp.com
# first check that the server of my ISP is reachable.
# This requires a more recent version of ping where you can
# specify the timeout:
if ping -w 3 -qn -c 1 $hostn > /dev/null ; then
  /usr/sbin/uucico -S mfic
  #sleep 1
  #uulog -s mfic -5
else
  echo "ERROR: $hostn is down"
  exit 1
fi
Torne a script execut�vel com "chmod 755 /usr/bin/uumail" e corra-a manualmente para verificar se funciona.

Para trocar os e-mails automaticamente sempre que estiver online adicione a linha /usr/bin/uumail ao ficheiro /etc/ppp/ip-up.

Ok, e � isto. O seu sistema de mail est� activo e a correr.

Coisas a fazer

O sistema de mail est� totalmente configurado. Todos os utilizadores (/etc/passwd, comando adduser) poder�o de uma forma autom�tica enviar e receber mail. O mail ser� arquivado nos direct�rios de spool tradicionais, sobre /var/spool/mail e pode ser lido localmente. Se quiser que o utilizador seja capaz de ler o mail atrav�s dos protocolos pop3 ou imap, precisa de instalar um pacote com o nome de "imap" e arrancar com os dem�nios /usr/sbin/imapd e /usr/sbin/ipop3d
No ficheiro /etc/inetd.conf descomente as seguintes linhas, para os iniciar:
pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd
Se tiver o xinetd ent�o precisa de criar ficheiros apropriados para este servi�o (veja tamb�m a LinuxFocus artigo 175 acerca desta mat�ria). Lembre-se de conceder acesso no ficheiro /etc/hosts.allow se o utilizador acede ao mail atrav�s de outra m�quina na sua rede local (LAN):
# hosts.allow , tcp wrapper config file
# anybody can get access to imap:
imapd: ALL
# pop3 is only allowed from 2 hosts:
ipop3d: 10.0.0.1, 10.0.0.2, 127.0.0.1

Encontrando um ISP

Encontrar um bom e confiante Internet Service Provider para o UUCP �, por vezes dif�cil visto que a maioria dos ISP de destino s�o Mr. Noclue Windowspreinstalled.

Conhe�o 2 ISPs bons na Alemanha que oferecem E-mail sobre o UUCP:

Ambos s�o organiza��es e voc� basicamente junta-se � organiza��o para utilizar este servi�o. Os Pre�os est�o entre os 11 e 20 Euros por M�s.

Na LinuxFocus.org tamb�m fornecemos e-mail sobre o UUCP para um n�mero limitado de f�s amigos do Linux, se se juntar � nossa organiza��o e nos suportar financeiramente e/ou se trabalhar connosco regularmente. Contacte-me se estiver interessado.

Uma boa maneira de encontrar um ISP razo�vel no seu pa�s pode ser atrav�s de uma pesquisa no Google ou outros motores de pesquisa. Quanto com menos clientes os ISPs contarem maior ser� a probabilidade de oferecerem e-mail sobre o UUCP como um produto.

Refer�ncias