Académique Documents
Professionnel Documents
Culture Documents
Este passo a passo foi montado baseado no livro Guia do Servidor da Conectiva.
Abra o linuxconf
[root@localhost]# linuxconf
Escolha a opção:
Na parte:
Ambiente de Rede
Informações básicas
(Mesmo que o email venha de máquinas diferentes de sua empresa, você pode querer esconder
esse fato e apresentar os emails como se eles tivessem vindo de apenas uma máquina ou
domínio. Se você está configurando o servidor principal de uma empresa, você deve selecionar
aceitar email para dominio. No Servidor de email, coloque a máquina+domino que será o
servidor de email, e em protocolo a mesma máquina. Se sua configuração for simples deixe em
branco)
funcionalidades
[ ] confirmar nomes completos
de usuários
[X] Ativar controle de envio
(spammers)
Tamanho máximo das mensagens:( )no limite ____________
[ ] Não tentar enviar
imediatamente
Processar consulta a cada(min):( ) manual 1
( ) Usar a shell especial smrsh
Maximum recipients per msg (o) Defaults _____________
(Habilite a opção de Ativar controle de envio, evitando assim que usem o servidor smtp para
spam. No tamanho das mensagens coloque o valor máximo que as mensagens irão ter. na
próxima opção evita que o sendmail envie imediatamente as mensagens, e na opção seguinte
qual será o tempo de intervalo de envio.)
(O Sendmail faz um uso pesado do DNS. Máquinas sem conexão direta com a Internet (mesmo
atrás de um firewall) podem querer desativar o uso do DNS. Por outro lado, máquinas com uma
conectividade normal do DNS devem forçar o uso do DNS)
Diversos
[X] Não usar batch para email UUCP
Tamanho máx para mensagens UUCP: 20000
Entrega Local para usuários : root
Não mascara origem de: : root
Usuários Autorizados : root daemon uucp
Banco de roteamento especiais : [ ]
Formato do banco de roteamentos: hash
Agente de entrega local :
[ ]Suporte a Cliente Bogus(HELO)
Apelidos do domínio
Apelidos para o seu sistema:
( Coloque nesta opção outros domínios que o sr. quer que seu sistema aceite)
Confirme. Para uma configuração básica do Sendmail, só os primeiros itens são necessário, com
isso seu sistema já estará trabalhando, faltando apenas descomentar o pop no intetd e startar o
inet e o sendmail.
Adicionar
Destino :
Repetidor :
[ ]Gerenciar subdomínio da mesma forma
Transporte :
(Em muitos sistemas, é útil habiltar para informar
ao sendmail qual a rota de envio das mensagens)
Adicionar
Adicionar
(Você pode definir regras de transformação simples que serão aplicadas a todos os emails
enviados pelo sendmail. No geral, você especifica um De: e como este De: deve ser convertido.)
Adicionar
Domínio Virtual :
Destino de retorno :
Alocar UID de :
Limitar a caixa do usuário para (kb):
[ ] Match User full name
Filter program + args (opc):
Arquivos de Aplelidos:
Apelidos opcionais
* /etc/vmail/passwd.domínio_virtual
* /etc/vmail/shadow.domínio_virtual
* /etc/vmail/aliases.domínio_virtual
* /var/spool/vmail/domínio_virtual/
* /vhome/domínio_virtual/
Adicionar
E por fim, peça a opção gerar o arquivo CF. Após esta criação, saia do configurador linux e edite
o inetd.conf para habilitar as funções de correio:
[root@localhost]# cd /etc
[root@localhost]# mcedit inetd.conf
Descomente a linha:
[root@localhost]# cds
[root@localhost]# ./inet restart
E inicie o sendmail
• Remetentes rejeitados
Aqui você informa uma lista de números IP (máquinas ou redes) para quem seu servidor
poderá repetir os emails.
Aqui você informa uma lista de nomes de máquina e domínios para quem seu servidor
poderá repetir os emails.
Aqui você informa uma lista de servidores de email os quais usam o seu servidor como
roteador.
[root@localhost]# linuxconf
Escolha a opção:
Em:
Informações básicas
#-------------------funcionalidades---------------------------
# [ ] confirmar nome completo
# do usuário
# [X] Ativar controle de envio
# (spammers)
# [ ] usar RealTime Blackhole List (RBL)
# [ ] Habilitar o comando VERIFY SMTP
# [ ] Habilitar o comando EXPN SMTP
#
#------------------------entrega-------------------------------
#
#Tamanho máximo das mensagens: ( )sem limite ____________
# [X] Não tentar enviar
# imediatamente
#Processar consulta a cada(min): ( ) manual 1
# [ ] Usar o shell especial smrsh
#Máx de destinatários por msg. (o) Padrões _____________
#-------------------Diversos---------------------------
# [X] Não usar batch para email UUCP
#Tamanho máx para mensagens UUCP: 20000
#Entrega Local para usuários : root
#Não mascara origem de: : root
#Usuários Autorizados : root daemon uucp
#Roteamento especial db. : [ ] Ativo
#Roteamento especial formato db.: hash
#Agente de entrega local :
[ ]Suporte a Cliente Bogus(HELO)
#--------------------Apelidos do domínio--------------------
# Apelidos para o seu sistema:
#--------------------------------------------------
#Destino :
#Repetidor :
# [ ]Gerenciar subdomínio da mesma forma
#Transporte :
(Em muitos sistemas, é útil habiltar para informar
ao sendmail qual a rota de envio das mensagens)
#---------------------------------------------------
* /etc/vmail/passwd.domínio_virtual
* /etc/vmail/shadow.domínio_virtual
* /etc/vmail/aliases.domínio_virtual
* /var/spool/vmail/domínio_virtual/
* /vhome/domínio_virtual/
E por fim, peça a opção gerar o arquivo CF. Após esta criação, saia do configurador linux e edite
o inetd.conf para habilitar as funções de correio:
[root@localhost]# cd /etc
[root@localhost]# mcedit inetd.conf
Descomente a linha:
E inicie o sendmail
• Remetentes rejeitados
Coloque aqui o mail que deseja-se restrigir: Origem do mail : nome@dominio Mensagem
de erro: Seu e-mail foi rejeitado .
Aqui você informa uma lista de números IP (máquinas ou redes) para quem seu servidor
poderá repetir os emails.
Aqui você informa uma lista de nomes de máquina e domínios para quem seu servidor
poderá repetir os emails.
Aqui você informa uma lista de servidores de email os quais usam o seu servidor como
roteador.
[root@localhost]# linuxconf
Entre em:
Reinicialize o servico network para ativar a interface com os novos apelidos de IPs
virtuais:
[root@localhost]# cds
[root@localhost]# ifconfig
eth0 Encapsulamento do Link: Ethernet Endereço de HW
52:54:00:E6:68:09
inet end.: 10.0.2.72 Bcast:10.0.7.255
Masc:255.255.248.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
Pacotes RX:11600 erros:0 descartados:0
sobreposições:0 frame:0
Pacotes TX:7024 erros:5 descartados:0
sobreposições:0 portadora:5
colisões:633 txqueuelen:100
IRQ:12 Endereço de E/S:0x9000
[root@localhost]#
Onde pode-se ver, temos criados 2 IP's virtuais que irão responder pelos dominios
virtuais de e-mail.
Vamos agora criar os nossos dominios virtuais de e-mail. Para isto, basta entrar no
linuxconf:
[root@localhost]# linuxconf
Entre em:
[root@localhost]# linuxconf
Entre em:
Para fazer os testes, temos que ter rodando o sendmail e o dns. Para fazer isto, basta
executar:
[root@localhost]# cds
Também temos que configurar o nosso dns para apontar para a nossa máquina na rede.
Para isto, basta editarmos o arquivo /etc/resolv.conf
nameserver 10.0.2.72
[root@localhost]# linuxconf
Entre em:
• Configurar o vpop3d.
O vpop3d faz o gerenciamento das contas de dominio virtual e deve ser chamado antes
do ipop3d.
[root@localhost]# cds
Feitas estas configurações, podemos enviar um e-mail para testar as configurações. Para
isto utilizaremos o programa mail:
Para verificar se o e-mail chegou na sua caixa postal, basta executarmos o comando:
Este erro se deve à máquina utilizada para enviar e-mail não ter permissão de RELAY, ou seja,
transmitir a mensagem via seu servidor de e-mail.
Para resolver este problema, realize os seguintes passos para dar permissão a estas máquinas:
Entre no linuxconf:
[root@localhost]# linuxconf
Entre em Ambiente de rede-> Sendmail - sistema de envio de emails->repetir para por IP ->
Adicionar
[root@localhost]# cds
Assim a(s) máquina(s) utilizada(s) para enviar e-mail terão permissão de RELAY em seu servidor
de e-mail.
GERENCIAMENTO DE USUÁRIOS
Nome da conta: preencher com o login Nome completo: preencher com o nome completo Grupo
(opc.): opcional Grupos suplementares: opcional Diretório HOME (opc.):opcional Interpretador
de comandos (opc.): opcional ID do usuário (opc.): opcional
Aceitar
• Grupo (opc.): Se nenhum grupo for definido, então será gerado um novo grupo
automaticamente
• Grupos suplementares: Se o usuário também pertencer a um outro grupo, o nome do
mesmo deve estar referenciado neste campo
• Diretório HOME (opc.): se nenhum for especificado então será criado no diretório
/home/nome_da_conta
• Interpretador de comandos (opc.): se nenhum for selecionado então será adotado o
shell padrão (/bin/bash)
• ID do usuário (opc.): se nenhum for especificado então o sistema criará um ID
automaticamente para o usuário
• Vá até o diretório /etc e crie um arquivo sendmail.mc utilizando o seu editor de texto
favorito (no nosso exemplo, iremos utilizar o mcedit)
Adicione no arquivo:
divert(-1)
include(`/usr/lib/sendmail-cf/m4/cf.m4')
define(`confDEF_USER_ID',``mail:mail'')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confAUTO_REBUILD')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
FEATURE(`accept_unresolvable_domains')
dnl FEATURE(`relay_based_on_MX')
[root@localhost]# cds
• O arquivo do sendmail.cf já foi criado, agora basta somente você adicionar os usuários
de email, ou seja, abrir uma conta só de email, use linuxconf e crie uma conta. Depois
de criado esta nova conta de email você precisa configurar mais algumas coisas para
que o cliente possa usar o servidor de email para mandar,[RELAY] as mensagens.
Nestas configurações somente pessoas, domains ou IPs autorizados poderão mandar
email, evitando que terceiros não autorizados usem seu servidor de email para SPAM.
• Edite o arquivo /etc/sendmail.cw para que o sendmail funcione com a sua rede
interna:
• Se o sendmail.cw não for configurado, você vai receber uma mensagem de RELAY
DENIED. Configurado o sendmail.cw o segundo passo seria criar o arquivo relay-
domains.
192.168.0 RELAY
200.200.200 RELAY
domain.com.br RELAY
• Significa que qualquer endereço IP que comece com 192.168.0.0 até 192.168.0.254 vai
poder usar o servidor de email para RELAY evitando que outros que não estejam neste
alcance use o seu servidor para SPAM. Você também pode usar nomes de email [
<alguem@empresa.com.br> ] que você quer bloquear:
192.168.0 RELAY
200.200.200 RELAY
domain.com.br RELAY
span@span.org DENY
• Lembre-se que os espaços são TABs, depois de tudo configurado, de mais um restart no
sendmail:
[root@localhost]# cds
divert(-1)
include(`/usr/lib/sendmail-cf/m4/cf.m4')
define(`confDEF_USER_ID',``mail:mail'')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confAUTO_REBUILD')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(smtp)
MAILER(procmail)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
FEATURE(`accept_unresolvable_domains')
dnl FEATURE(`relay_based_on_MX')
O seu servidor Linux está tentando, antes de liberar a conexão para o cliente SMTP ou POP,
descobrir via DNS qual o nome da máquina cliente. Isto explica a demora.
Sugestões:
1. para o servidor SMTP (Sendmail), existe uma configuração para que este não consulte o
DNS. No Linuxconf, entre em Networking Server Tasks: Mail delivery system (sendmail)
Configure basic information DNS Features:
desmarque wait for DNS e marque don't use DNS
2. para o servidor POP, está acontecendo algo parecido. Só que desta vez, quem está
tentando consultar o servidor DNS é o tcpd (TCP Wrappers), que vem instalado no
servidor por default de forma a dar maior segurança aos serviços. Uma maneira de
resolver isto é instalando de uma vez um servidor DNS na rede. Outra forma é retirando
o TCPD do /etc/inetd.conf ou configurando-o para não fazer hostname lookups no
servidor. A última solução (que automaticamente resolveria a do sendmail), seria tirar a
linha nameserver do /etc/resolv.conf
Execute o comando:
Verifique se esses endereços constam no arquivo /etc/hosts caso não constem, coloque uma
entrada para cada um deles.
Normalmente é um arquivo .procmailrc ou que está dentro dele, que está com permissões
erradas, por isso é criado um BOGUS.usuário, no diretório de spool do programa sendmail
(usualmente/var/spool/mail).
Imaginemos uma rede com um servidor Linux, e estações (que podem ser com Linux, windows,
etc...) que fazem acesso a internet por meio do servidor Linux.
Cada usuário pode mandar e receber mails para a internet usando sua própria conta interna. No
papel de servidor de email da intranet temos o Sendmail configurado, que gerenciará estas
mensagens. Quanto a conexão com internet estiver ativa, ele descarregará a fila de mails para
internet.
Agora, queremos pegar os mails da internet e distribuir para cada usuário de nossa rede interna,
quem fará este trabalho será o fetchmail.
Até agora tudo tranqüilo, mas temos um e_mail na empresa chamado vendas@empresa.com.br
e que temos três vendedores que atendem esse mail. Após um contato preliminar com o cliente,
o mesmo começara a enviar os e-mails com o subject algo como: a/c vendedor1
Uma saída simples, podemos conjugar o fetchmail com o Procmail que é um filtro, e desta forma
ele procurará os subjects que tratam para o vendedor1 para enviar para ele, separando das
demais.
No final, teremos uma conta que receberá todos os mail de vendas@empresa.com.br que não
foram filtrados, e desta forma alguém terá que recebê-los para verificar qual destino devem
seguir.
Certo, agora vamos configurar estes serviços para que realizem o que falamos acima:
Programas necessários:
- Sendmail (Servidor de mails) - Fetchmail (para pegar e-mails da internet) - Procmail (Para
fazer filtros de mensagens)
Estes programas encontram-se na distribuição da Conectiva Linux, e desta forma basta instalar
os pacotes:
Configurando o Sendmail
Primeiro, vamos configurar o Sendmail, o mesmo pode ser configurado de várias formas, como
m4, linuxconf, etc. Neste documento, iremos configurar utilizando o linuxconf:
Abra o linuxconf
[root@localhost]# linuxconf
Entre na parte:
---->Ambiente de Rede
------> Sendmail - sistema de envio de e-mails
#---------------------------------------------------------------------
-----
#Apresentar seu sistema como : [seu servidor]
# [X]Aceitar email para [domínio]
#Servidor de email :[nome_do_servidor_local]
#Roteador de email :
#Protocolo roteador de email : smtp
#-------------------
funcionalidades-----------------------------------------
# [ ] confirmar nomes completos
# de usuários
# [X] Ativar controle de envio
# (spammers)
#Tamanho máximo das mensagens:( )no limite ____________
# [*] Não tentar enviar
# imediatamente
#Processar consulta a cada(min):( ) manual 1
# ( ) Usar a shell especial smrsh
#Maximum recipients per msg (o) Defaults _____________
----------------------------------------------------------------------
-------
Desta forma, será garantido que seus email sairão com um endereço para reply válido, que será
sua conta no provedor.
Crie uma regra para cada usuário que envie mails para a internet.
Saia do linuxconf, agora vamos configurar quais máquinas poderão enviar e_mail pelo seu
servidor, e evitar que outros utilizem seu servidor durante a conexão:
Edite o arquivo /etc/sendmail.cw para que o sendmail funcione com a sua rede interna:
- Se o sendmail.cw não for configurado, você vai receber uma mensagem de RELAY DENIED.
Configurado o sendmail.cw o segundo passo seria criar o arquivo relay-domains.
OBS: Os espaços entre o ip e a palavra Relay são TABs, caso contrário, seu arquivo não
funcionará.
E inicie o sendmail
Pronto, nosso servidor de email já está operacional, agora crie os usuários internos que terão
conta de email, uma maneira simples é com o comando adduser, proceda da seguinte forma:
Verifique se seu servidor está operacional, configurando o leitor de email da estação, colocando
as informações do usuário, e a parte de servidores pop3 e smtp da seguinte forma:
Mande uma mensagem para seu próprio usuário local , e verifique que o sr. está recebendo.
Configurando o Fetchmail
O primeiro passo é criar um arquivo .fetchmailrc no home do usuário que fará este serviço.
A opção set daemon é a que será utilizada para os intervalos de checagem dos emails, o valor é
em segundos.
A opção set logfile é para criar um arquivo de log que será muito útil.
A linha que inicia com o pool é para baixar os emails de seu provedor no lugar da expressão
[provedor_internet] coloque o endereço do servidor pop de seu provedor em [usuário] e [senha]
coloque a conta com a senha da conta a internete na expressão [usuário_local] coloque quem é
o usuário de seu servidor.
Agora, é necessário rodar o fetchmail para que ele baixe as mensagens de seu provedor e envie
para seu servidor local para que seus usuários possam pegar as mensagens.
Uma maneira simples é agendar no crontab do usuário que executa o fetchmail, e informa de
quanto em quanto tempo o fetchmail será rodado. (para isso tire a opção set daemon de sua
configuração.
Outra forma, é colocar o fetchmail direto para acesso, colocando-o como daemon, para isso
execute no prompt:
[root@localhost]# fetchmail
A segunda parte chama o procmail, que é filtro, para o caso de duas pessoas internas utilizarem
o mesmo mail externo, como no caso de três vendedores utilizarem o mail externo
vendas@empresa.com.br, assim é pedido para quem quiser enviar um mail para um dos
vendedores coloque no subject por exemplo:
Para o vendedor1.
Assim precisamos criar um arquivo procmailrc no home do usuário que chama o fetchmail.
Configurando o Procmail
:0
* ^Subject:.*vendedor1*
! vendedor1@servidor.intranet
:0 * ^Subject:.*vendedor2*
! vendedor2@servidor.intranet
:0
* ^To:.vendas@empresa.com.br
! geral@servidor.intranet
:0
$INBOX
Pronto, agora temos uma solução de servidor de email interno funcionando, bastará configurar
no seu script por discagem por demanda chamar o comando:
sendmail -q
Para que a cada conexão, sua fila de emails a serem enviados seja despachada.
Agora basta que seus usuários baixem as contas recebidas que estão no spool do seu servidor
local. E para mandarem, bastará digitar a mensagem, e mandá-las para o servidor local, que
este ao receber o comando sendmail -q irá despachar os mesmo para a internet.
Tudo o que está sendo executado e transmitido pelo sendmail pode ser verificado no arquivo de
log maillog, que geralmente fica em :
/var/log/mailog
e do Procmail em:
/var/log/procmaillog
Verifique estes arquivos para ter certeza que tudo funciona de acordo, ou no caso de problemas,
para verificar o que está errado.