aula05 - cyrus imap
Post on 07-Aug-2015
463 Views
Preview:
TRANSCRIPT
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Projeto Cyrus
Introdução ao protocolo IMAP
O IMAP4 (Internet Message Access Protocol) permite que um cliente acesse e
manipule caixas de correio eletrônico em um servidor remoto, em vez de em um
computador local. O IMAP de versão 4rev1 permite a manipulação de pastas de “caixas
de correio eletrônico”, incluindo operações para criar, excluir, renomear caixas de
correio e remoção permanente de mensagens.
Um protocolo separado é necessário para o envio de e-mail. Também chamado de
Internet Mail Access Protocol, é uma melhoria em relação a outros protocolos de e-mail
de internet popular quando se trata de escala e disponibilidade.
O protocolo IMAP4rev1 assume um fluxo de dados confiável, como fornecida por TCP.
Projeto Cyrus-Imapd
O cyrus-imapd é um software que implementa um serviço completo de MDA, possui alta
escalabilidade para correio eletrônico e foi projetado para o uso em ambientes
corporativos de várias dimensões. O projeto Cyrus foi iniciado na CMU em 1994, com
intuito de atender as novas demandas de correio eletrônico. Suas principais
características são:
Armazenamento: Utiliza armazenamento de emails em Banco de dados Berkley (DB).
Autenticação: O cyrus por padrão é utiliza o SASL como framework de autenticação,
através dele podemos nos conectar aos seguintes sistemas:
• Unix;
• Banco de dados Relacional (Mysql, Postgresql, Oracle);
• PAM.
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
O projeto cyrus desenvolveu sistema proprietario Cyradmin para controle de contas
criadas no correio que nos provê suporte a:
• Autorização ao sistema;
• Manutenção de caixas postais;
• Manutenção de quotas;
O cyrus possui suporte e módulos a alguns tipos de aplicações, são elas:
• Postfix;
• Filtros;
Quando instalamos o cyrus, é criada a seguinte estrutura:
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Onde:
• O arquivo /etc/cyrus.conf contém os serviços a serem iniciados;
• O arquivo /etc/imapd.conf contém os parâmetros de configuração do serviço;
• O arquivo /etc/default/saslauthd contém as configurações iniciais do sasl;
• O arquivo /etc/saslauthd.conf contém as configurações de acesso ao Ldap;
• O diretório /var/lib/cyrus contém as bases de dados do cyrus;
• O diretório /var/spool/cyrus/mail contém as caixas postais dos usuários;
• O diretório /var/spool/sieve contém os filtros dos usuários;
• O script de inicialização do cyrus em /etc/init.d/cyrus-imapd;
Principais características
O Servidor cyrus foi desenvolvido em perl e trabalha em conjunto com o saslauthd, é um
sistema extremamente flexível e com muitos recursos que serão mostrados ao longo
deste documento.
Saslauthd
O saslauthd é um um framework de autenticação para várias aplicações que manipula
requisições de autenticação, sendo normalmente utilizado em conjunto com o serviço de
correio eletrônico. Suas funcionalidades são extendíveis a qualquer que necessite validar
os usuários Ele tem suporta a vários mecanismos de autenticação, são eles:
• PAM;
• LDAP;
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
• MySQL;
• PostgreSQL;
Figura – SASL
Configuração e instalação do Servidor Cyrus e SASL
Instalação do SASL
apt-get install libsasl2-modules sasl2-bin
Configuração do SASL: Editar o arquivo /etc/default/saslauthd para a ativação do
serviço:
START=yes
MECHANISMS="ldap"
OPTIONS="-c -t 60 -m /var/run/saslauthd"
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Criar o arquivo /etc/saslauthd.conf e incluir o seguinte conteúdo:
ldap_servers: ldap://127.0.0.1
ldap_port: 389
ldap_version: 3
ldap_referrals: no
ldap_search_base: dc=seunome,dc=com,dc=br
ldap_filter: uid=%u
Reinicialize o sasl no servidor:
service saslauthd restart
Teste para a verificação do funcionamento correto do sasl:
testsaslauthd -u expresso-admin -p redesunaes
Se o serviço estiver funcionando um código de OK deverá aparecer:
0: OK "Success."
Instalação do Cyrus
Executaremos o seguinte comando:
apt-get install cyrus-admin-2.4 cyrus-common-2.4 cyrus-replication-2.4 cyrus-pop3d-2.4 cyrus-nntpd-2.4 cyrus-clients-2.4 cyrus-murder-2.4 cyrus-imapd-2.4 cyrus-doc-2.4 libcyrus-imap-perl24 libmail-imapclient-perl libparse-recdescent-perl libterm-readkey-perl libterm-readline-perl-perl
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Após a instalação, editar o arquivo /etc/imapd.conf alterando e/ou acrescentando os
seguintes parâmetros:
admins: cyrus-admin cyrus expresso-admin admin
imap_admins: cyrus-admin cyrus expresso-admin admin
sieve_admins: cyrus-admin cyrus expresso-admin admin
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN LOGIN
unixhierarchysep: yes
Administração do Cyrus
O Cyrus é desenvolvido na linguagem perl e tem um cliente que se conecta a ele para a
administração das contas dos usuários, o cyradm é uma ferramenta que faz essa
administração do Cyrus Server.
Comandos padrões do Cyrus
Comando Abreviação Propósito
listmailbox lm Lista o nome de todas as caixas postais
createmailbox cm Cria uma nova caixa postal
deletemailbox dmDeleta uma caixa postal e todas as
pastas abaixo dela
renamemailbox rename Renomeia uma caixa postal
setaclmailbox sam Cria ACLs para as caixas postais
deleteaclmailbox dam Deleta ACLs das caixas postais
listaclmailbox lam Lista as ACLs das caixas postais
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Comando para acessar o cyrus:
cyradm -user username hostname
localhost password: XXXXXXXX
localhost>
Permissões no IMAP segundo a RFC 4314
l lookup (mailbox is visible to LIST/LSUB commands,
SUBSCRIBE mailbox)
r read (SELECT the mailbox, perform STATUS)
s keep seen/unseen information across sessions (set or clear
\SEEN flag via STORE, also set \SEEN during
APPEND/COPY/
FETCH BODY[...])
w write (set or clear flags other than \SEEN and \DELETED via
STORE, also set them during APPEND/COPY)
i insert (perform APPEND, COPY into mailbox)
p post (send mail to submission address for mailbox, not enforced
by IMAP4 itself)
k create mailboxes (CREATE new sub-mailboxes in any
implementation-defined hierarchy, parent mailbox for the new
mailbox name in RENAME)
x delete mailbox (DELETE mailbox, old mailbox name in
RENAME)
t delete messages (set or clear \DELETED flag via STORE, set
\DELETED flag during APPEND/COPY)
e perform EXPUNGE and expunge as a part of CLOSE
a administer (perform
SETACL/DELETEACL/GETACL/LISTRIGHTS)
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Para adicionarmos uma ACL para um usuário devemos executar o seguinte comando:
sam user/user admin all
Para retirarmos a ACL de uma caixa postal executaremos o seguinte comando:
dam user/user admin all
Comandos para a criação de caixas postais
Para se criar uma caixa postal padrão no cyrus onde esta contém todas as subpastas
necessárias para o funcionamento normal do correio, o administrador deverá executar os
seguintes comandos.
Acessar o sistema:
cyradm -user username hostname
localhost password: XXXXXXXX
localhost>
Criar a caixa postal e suas respectivas subpastas:
cm user/xxx
cm user/xxx/Sent
cm user/xxx/Drafts
cm user/xxx/Trash
CENTRO UNIVERSITÁRIO DE CAMPO GRANDE
TECNOLOGIA EM REDES DE COMPUTADORES
APLICAÇÕES EM REDES
5º SEMESTRE
PROFESSOR CARLOS RICARDO BERNAL VEIGA
Deleção de caixas postais
Para deletarmos uma caixa postal e suas subpastas, deveremos primeiramente setar
permissões na pasta para o administrador:
cyradm -user admin hostname
sam user/xxx admin all
sam user/xxx/* admin all
E deletar as pastas e subpastas com o comando dm.
dm user/xxx
dm user/xxx/*
Exemplo de criação padrão de uma caixa postal
Criar a Caixa de correio expresso-admin:
cyradm -u expresso-admin localhost
localhost> cm user/expresso-admin
localhost> cm user/expresso-admin/Sent
localhost> cm user/expresso-admin/Trash
localhost> cm user/expresso-admin/Draft
localhost> quit
Setar a quota de 2 GB para o usuário expresso-admin:
localhost> sq user/expresso-admin 2048000
localhost> quit
top related