Instalando e Configurando o Expresso Livre + Debian Squeeze

O que é ?

O Expresso Livre é uma solução completa de comunicação que reúne Email, Agenda, Catálogo de Endereços, Workflow e Mensagens Instantâneas em um único ambiente. Por ser uma versão customizada do E-GroupWare, seu desenvolvimento também é totalmente baseado em software livre.

Características

  • Alta Escalabilidade
  • Baixo custo
  • Utilização de protocolos padrões
  • Integração com outros sistemas Web
  • Independência de fornecedor
  • Independência de plataforma cliente
  • Independência de plataforma servidor
  • Mobilidade dos usuários

Prepare o seu sistema com o seguinte script Easy-Debian para que não falte nenhum pacote ou configuração.

Vamos acessar acessar o diretório que vai conter os nossos fontes

cd /usr/src/

Agora vamos obter o Expresso Livre

wget -c http://wiki.douglasqsantos.com.br/Downloads/mail/expresso-2_4_1.tar.gz

Agora vamos descompactar ele

tar -xzvf expresso-2_4_1.tar.gz

Agora vamos mandar executar o script de Instalação

cd /usr/src/expresso/INSTALL/
./expressoInstall.sh

O Script vai obter alguns pacotes e após disso vamos responder as perguntas

  • A primeira vamos aceitar <SIM>
  • Na segunda vamos deixar todas as opções marcadas para ele ficar completo ;) <Aceitar>
  • Ele vai obter os pacotes necessário e efetuar a instalação
  • Agora vamos informar o nome da empresa ex: Dksh
  • Agora vamos informar o domínio ex: douglasqsantos.com.br
  • Agora precisamos informar uma senha que vai ser do expresso-admin que vamos gerenciar o expresso
  • Aqui vai demorar um pouco pois o sistema vai criar a base de dados, vai configurar o Ldap e Postfix e suas dependências.
  • Agora é só <Aceitar>

Agora vamos fazer alguns ajustes necessários no PHP

sed -i 's/;mbstring.func_overload = 0/mbstring.func_overload = 7/g' /etc/php5/apache2/php.ini

Agora vamos fazer alguns ajuster no apache2

sed -i 's,Alias /icons/ "/usr/share/apache2/icons/",#Alias /icons/ "/usr/share/apache2/icons/",g' /etc/apache2/apache2.conf
sed -i 's,LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so,#LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so,g' /etc/apache2/sites-enabled/expresso

Agora vamos reiniciar o apache

/etc/init.d/apache2 restart

Agora vamos acessar http://ip_servidor

  • Usuário: expresso-admin
  • Senha: senha_definida_na_instalação

Vá até o final da página e selecione Escrever configurações, Depois selecione continuar.

Agora no painel lateral selecione Voltar a tela de conexão

  • Usuário: expresso-admin
  • Senha: senha_definida_na_instalação

Como o script já configura um VirtualHost para o apache somente precisamos fazer o direcionamento no DNS para acessarmos por http://expresso.douglasqsantos.com.br ;)

Agora vamos integrar o Expresso Livre com o Ejabber vamos instalar e configurar o Ejabberd

aptitude install ejabberd libsdl-erlang erlang-odbc erlang-tools -y

Agora vamos fazer um ajuste no arquivo de controle do ejabberd.

sed -i "s/#ERLANG_NODE=ejabberd/ERLANG_NODE=ejabberd@`hostname`/g" /etc/default/ejabberd 

Vamos fazer um backup do arquivo de configuração

cp -Rfa /etc/ejabberd/ejabberd.cfg{,.bkp}

Agora vamos deixar o arquivo como abaixo.

vim /etc/ejabberd/ejabberd.cfg
{acl, admin, {user, "expresso-admin", "douglasqsantos.com.br"}}.
{hosts, ["localhost", "douglasqsantos.com.br"]}.
 
{loglevel, 3}.
 
{listen,
 [
  {5222, ejabberd_c2s, [
                       {access, c2s},
                       {shaper, c2s_shaper},
                       {max_stanza_size, 65536},
                       starttls_required, {certfile, "/etc/ejabberd/ejabberd.pem"}
                       ]},
 {5269, ejabberd_s2s_in, [
                         {shaper, s2s_shaper},
                         {max_stanza_size, 131072}
                         ]},
 {5280, ejabberd_http, [
                       http_poll,
                       web_admin
                       ]}
 ]}.
 
{s2s_use_starttls, true}.
 
{s2s_certfile, "/etc/ejabberd/ejabberd.pem"}.
 
%%{auth_method, internal}.
%% AUTENTICAÇÃO EM LDAP
{auth_method, ldap}.

{ldap_servers, ["127.0.0.1"]}.

{ldap_encrypt, none}.

{ldap_port, 389}.

{ldap_rootdn, "cn=admin,dc=dksh,dc=com,dc=br"}.

{ldap_password, "senha"}.

{ldap_base, "dc=dksh,dc=com,dc=br"}.

{ldap_uids, [{"uid", "%u"}]}.
 
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}. 
 
{acl, local, {user_regexp, ""}}.
 
{access, max_user_sessions, [{10, all}]}.
{access, local, [{allow, local}]}.
{access, c2s, [{deny, blocked},
               {allow, all}]}.
{access, c2s_shaper, [{none, admin},
                      {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, announce, [{allow, admin}]}.
{access, configure, [{allow, admin}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, register, [{allow, all}]}.
{access, pubsub_createnode, [{allow, all}]}.
 
{host_config, "douglasqsantos.com.br",
 [  
  {access, c2s, [{allow, admin}, {allow, all}]},
  {access, register, [{allow, all}]}
 ]
}.                                 
 
{language, "pt-br"}.
 
{modules,
 [
  {mod_adhoc,    []},
  {mod_announce, [{access, announce}]}, % requires mod_adhoc
  {mod_caps,     []},
  {mod_configure,[]}, % requires mod_adhoc
  {mod_ctlextra, []},               
  {mod_disco,    []},
  %%{mod_echo,   [{host, "echo.localhost"}]},
  {mod_irc,      []},   
  {mod_last,     []},
  {mod_muc,      [
                  %%{host, "conference.@HOST@"},
                  {access, muc},
                  {access_create, muc},
                  {access_persistent, muc},
                  {access_admin, muc_admin},
                  {max_users, 500}
                 ]},
  %%{mod_muc_log,[]},
  {mod_offline,  []},
  {mod_privacy,  []},
  {mod_private,  []},
  {mod_proxy65,  [
                  {access, local},
                  {shaper, c2s_shaper}
                 ]},
  {mod_pubsub,   [ % requires mod_caps
                  {access_createnode, pubsub_createnode},
                  {plugins, ["default", "pep"]}
                 ]},
  {mod_register, [
                  {welcome_message, {"Bem-Vindo",
                                     "Bem-Vindo ao seu servidor Jabber de douglasqsantos.com.br. "
                                     "Para mais informações sobre o Jabber:"
                                     "http://www.jabber.org"}},
 
                  {access, register}
                 ]},
  {mod_roster,   []},
  {mod_shared_roster,   []},
  {mod_stats,    []},
  {mod_time,     []},
  {mod_vcard,    []},
  {mod_version,  []}
 ]}.

Agora vamos reiniciar o serviço

/etc/init.d/ejabberd restart

Agora vamos acessar a o painel de administração Web, acesse http://ip_servidor:5280/admin, o usuário: expresso-admin@douglasqsantos.com.br e a senha: senha_do_ldap

Agora no expresso Livre vamos acertar a configuração do ejabberd, logue como express-admin

  • Na tela inicial selecione em Expresso Messenger (Configuração do servidor)
  • Agora selecione Configurações do servidor jabber
  • Agora vamos informar os dados como abaixo
  • Digite o nome do Domínio Jabber: localhost
  • Digite o Ip(s) do Servidor Jabber: 127.0.0.1
  • Porta do servidor Jabber: Não segura (Sem SSL)
  • Mudança de porta:
  • Digite Nome da Conexão: JABBER
  • Digite o Nome da sua Empresa: Dksh
  • Servidor Ldap: localhost
  • Contexto: dc=dksh,dc=com,dc=br
  • Anonimous Bind: Não
  • Usuário Ldap: uid=expresso-admin,ou=jose,dc=dksh,dc=com,dc=br
  • Password: senha
  • Agora selecione Salvar
  • Agora depois de salvar vamos em Na tela inicial selecione em Expresso Messenger (Configuração do servidor)
  • Agora selecione Mapear organizações por domínio Jabber, para termos certeza que os domínios foram mapeados.
  • Em Cadastro de Organizações e Servidores Jabber vamos ter a nossa organização no meu exemplo: DKSH ;)
  • Agora precisamos habilitar os usuário utilizarem o jabber então vamos em Expresso Messenger (Permissões de Acesso)
  • Agora vamos selecionar Habilitar o Expresso Messenger dentro dos módulos
  • Aqui fazemos o controle de onde os usuário vão poder utilizar o cliente jabber, escolha os módulos que achar necessário.

Referências