aula05 - cyrus imap

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

Upload: carlos-veiga

Post on 07-Aug-2015

463 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Aula05 -  cyrus imap

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.

Page 2: Aula05 -  cyrus imap

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:

Page 3: Aula05 -  cyrus imap

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;

Page 4: Aula05 -  cyrus imap

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"

Page 5: Aula05 -  cyrus imap

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

Page 6: Aula05 -  cyrus imap

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

Page 7: Aula05 -  cyrus imap

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)

Page 8: Aula05 -  cyrus imap

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

Page 9: Aula05 -  cyrus imap

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