segunda-feira, 6 de junho de 2016

TUTORIAL - ZIMBRA 8 NO UBUNTU SERVER 14.04

TUTORIAL 2 - INSTALAÇÃO E CONFIGURAÇÃO DO SERVIÇO DE E-MAIL ZIMBRA


Essa é a segunda parte de uma série de quatro tutoriais que possui como objetivo demonstrar a instalação do mais recente servidor de e-mails Zimbra, a configuração de um backup e como bônus a instalação de um chat integrado com o serviço de e-mail.

1 INTRODUÇÃO


Nesse segundo tutorial iremos instalar e configurar o Zimbra, o qual no final, estará pronto para ser utilizado. É necessário que você tenha completado com sucesso o primeiro tutorial para continuar.

2 INSTALAÇÃO


2.1 OBTENDO O ZIMBRA

Para nossa instalação utilizaremos o pacote de instalação do Zimbra para o Ubuntu 14.04.

Baixe o pacote do link 64bit x86 disponível em:
https://www.zimbra.com/downloads/os-downloads.html

Você pode baixar também em uma pasta (aconselho baixar na pasta /root) do sistema  operacional com o comando:

#cd /root
#wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz


Descompactar os arquivos de instalação

#tar -zxvf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz

2.2 EXECUTANDO A INSTALAÇÃO

Com todos os requisitos atendidos a instalação do Zimbra é relativamente simples.

Entre na pasta onde a instalação foi descompactada e execute a instalação:

#cd zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116

#./install.sh


A instalação irá realizar algumas perguntas de configuração, basta responder de acordo com a sequência abaixo:

Do you agree with the terms of the software license agreement? Y


Install zimbra-ldap [Y] y
Install zimbra-logger [Y] y
Install zimbra-mta [Y] y
Install zimbra-dnscache [Y] n
Install zimbra-snmp [Y] y
Install zimbra-store [Y] y
Install zimbra-apache [Y] y
Install zimbra-spell [Y] y
Install zimbra-memcached [Y] y
Install zimbra-proxy [Y] n
 


Note que não foram selecionado para instalação o zimbra-dnscache, o qual não deve ser instalado em sistemas que já tem bind ou outro serviço de dns instalado e o zimbra-proxy que pode ser utilizado no caso de existir mais de um servidor Zimbra.

The system will be modified. Continue? Y

Aguarde...

Change domain name? [Yes]

Create domain: [ns1.teste.com.br] teste.com.br



O Zimbra já esta quase pronto, necessita agora serem aplicadas as configurações. A única configuração que faremos pela linha de comando é a mudança da senha do usuário admin. Após a instalação inicial aparecerá o Menu Principal de configuração do zimbra.

No menu principal tecle 6 [Enter], tecle 4 [Enter] e entre com a senha do usuário admin [ENTER]. Volte ao menu teclando r [Enter] e aplique a configuração teclando a [Enter].

Save configuration data to a file? [Yes]
Save config in file [/opt/zimbra/config.9481]
The system will be modified - continued? [Yes]



Aguarde o final da configuração. O Zimbra já está em funcionamento.

Notify Zimbra of your instalation? [YES] NO
Configuration complete - press return to exit 

Você pode acessar o console de gerenciamento, com ele que será realizada todas as configurações necessárias para administração do servidor.

https://192.168.0.1:7071/zimbraAdmin/

Figura 1 - Imagem do console de administração Zimbra 8.

Também pode ter acesso a interface do usuário.

https://192.168.0.1/

2.3 COMANDOS BÁSICOS E DICAS

Alguns comandos que podem ajudar o administrador a resolver pequenos problemas do servidor Zimbra.

*Para mudar senha do administrador
#su - zimbra
#zmprov sp <admin email address> <new password>


*Para parar e iniciar o zimbra:
#su - zimbra
#zmcontrol stop
#zmcontrol start


*Para ver o status dos serviços do zimbra:
#su - zimbra
#zmcontrol status


Uma dica é o fato de o Zimbra vir configurado para acesso apenas via https, que na minha opinião deve ser mantido por questão de segurança, mas também pode ativado o acesso via http.

Como usuário zimbra:
#su - zimbra

Ativa suporte ao acesso http e https
#/opt/zimbra/bin/zmtlsctl mixed
#zmcontrol restart


Ativa suporte apenas ao https
#/opt/zimbra/bin/zmtlsctl https
#zmcontrol restart


Ativa suporte apenas ao http
#/opt/zimbra/bin/zmtlsctl http
#zmcontrol restart


3 CONCLUSÃO


Neste ponto temos o servidor Zimbra completamente funcional. No próximo tutorial veremos como configurar um backup das contas de e-mail utilizando uma ferramenta gratuita.

REFERÊNCIAS

TUTORIAL, Zimbra 8 no debian 6 squeeze. Disponível em: <http://itnproducoes.blogspot.com.br/2013/04/tutorial-zimbra-8-no-debian-6-squeeze_22.html>




TUTORIAL - ZIMBRA 8 NO UBUNTU SERVER 14.04

PALAVRA DO AUTOR

Três anos se passaram desde que escrevi a série de 4 tutoriais explicando na época os detalhes de como instalar o Zimbra em um sistema Debian. 
Devido ao grande sucesso, venho atualizar os tutoriais anteriores, com novas informações, no entanto, agora instalando o Zimbra no Ubuntu 14.04, sistema operacional que possui versão homologada pelo fabricante o qual irá facilitar muito a configuração.

TUTORIAL 1 - PRÉ-REQUISITOS E CONFIGURAÇÃO DO SERVIÇO DE DNS


Esse é a primeira parte de uma série de quatro tutoriais que possui como objetivo demonstrar a instalação do mais recente servidor de e-mail Zimbra, a configuração de um backup, e como bônus, a instalação de um chat integrado com o serviço de e-mail.


1 INTRODUÇÃO

Zimbra Collaboration Server é um servidor de e-mail Opensource, que integra diversos recursos como por exemplo: agenda, organizador de tarefas e porta arquivos. Através de extensões uma infinidade de outras funcionalidades podem ser implantadas.
Funciona com clientes de e-mails com Thunderbird, Outlook, Evolution, além de possuir um cliente próprio o Zimbra Desktop.
Possui como concorrentes soluções como o Exchange da Microsoft e o GroupWise da Novel. 
Nesse primeiro tutorial iremos preparar o sistema operacional para receber o Zimbra e realizar a configuração do serviço de DNS.


2 REQUISITOS DO SERVIDOR DE E-MAIL 


2.1 HARDWARE


Para uma instalação de um servidor de teste é recomendado:

  • Processador Intel ou AMD, 32 ou 64 bits com clock de 1.5 GHz;
  • Memória de 4 GB;
  • Espaço livre em disco de 5 GB para instalação e logs;
  • Espaço livre em disco para armazenamento das mensagens.

Para uma instalação de um servidor para produção, é recomendado:

  • Processador mínimo Intel ou AMD com clock 2.0 GHZ e de 64 bits;
  • Memória de 8 GB;
  • Espaço livre em disco de 10GB para instalação e logs;
  • Espaço livre em disco para armazenamento das mensagens.

2.2 DOMÍNIO E IP


Um servidor DNS é pré-requisito para a instalação do Zimbra, ele pode estar no mesmo servidor ou em servidor(es) separados. Para nosso tutorial o servidor que irá hospedar o Zimbra é o mesmo que hospeda o servidor de DNS. O servidor de DNS é o responsável por resolver o nome do domínio em um ip.
Todo o domínio precisa ser registrado para poder ser acessível via internet. No Brasil o responsável pelo registro é o Registro.br. Após o registro, é preciso configurar no ambiente do registro.br o endereço do servidor DNS que irá responder pelo seu domínio. Para tanto seu servidor deve possuir um número de ip válido na internet. Na verdade o registro.br exige pelo menos dois servidores DNS que respondam pelo seu domínio. Tal procedimento é adotado para garantir a redundância de forma que se um servidor ficar indisponível, o secundário pode responder em seu lugar. Nem sempre é possível dispor de 2 servidores em um ambiente de testes, dessa forma é possível configurar um único servidor DNS para trabalhar como primário e secundário ao mesmo tempo. Com tal atitude você perde a redundância, mas para um ambiente de teste e estudo é perfeitamente válido.

Atualização: É possível instalar o Zimbra sem configurar um servidor DNS e utilizar o registro.br para adicionar as entradas DNS necessárias. Apesar de funcionar, a configuração das entradas no registro.br são limitadas, e encontraremos problemas ao tentar implementarmos algumas entradas. Uma dificuldade que enfrentei por exemplo, foi não conseguir adicionar uma entrada DKIM devido ao uso restrito do entre aspas.
Observação: Estarei escrevendo futuramente um tutorial explicando com detalhes do que se trata o DKIM e como utilizá-lo com Zimbra.


2.3 INSTALANDO E CONFIGURANDO O SERVIDOR DNS


Para o nosso tutorial o servidor irá responder pelo domínio teste.com.br e terá como ip o 192.168.0.1 e o 192.168.0.2. Como você pode observar são ips de LAN, que não são válidos para a internet, no entanto, para uma configuração real basta alterá-los.

a) Execute a instalação do seguinte pacote:

#apt-get install bind9

b) Editar arquivo /etc/hosts e adicionar as seguintes linhas:

192.168.0.1 ns1.teste.com.br ns1
192.168.0.2 ns2.teste.com.br ns2


O ns1 e ns2 são os nomes de nossos dois servidores DNS que pertencem ao domínio teste.com.br


c) Mudar o nome da máquina para ns1:

#hostname ns1
#echo ns1 > /etc/hostname


d) Editar o arquivo /etc/resolvconf/resolv.conf.d/head e deixar com a estrutura abaixo:

domain teste.com.br
search teste.com.br
nameserver 192.168.0.1
nameserver 192.168.0.2


e) Configurar as interfaces de rede editando o arquivo /etc/network/interfaces da seguinte forma:

auto lo eth0 eth0:1
iface lo inet loopback

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254

iface eth0:1 inet static
address 192.168.0.2
netmask 255.255.255.0



Note que o ip 192.168.0.254 diz respeito ao dispositivo responsável por disponibilizar a internet para o servidor. Este dispositivo pode ser um modem adsl, por exemplo.

f) Reiniciar a interface de rede.

# ifdown eth0 && ifup eth0 && ifup eth0:1

2.3.1 Configurar o serviço de DNS

a) Adicionar no arquivo /etc/bind/named.conf.local as seguintes linhas:
Dica: Procure digitar e não copiar essa configuração, o Bind é sensível a formatações inseridas por alguns editores ao copiar e colar.

zone "teste.com.br"{
type master;
file "/etc/bind/db.teste.com";
allow-transfer { 192.168.0.2; };
};

b) Criar o arquivo /etc/bind/db.teste.com com o conteúdo abaixo:

$TTL    604800
@    IN    SOA    ns1.teste.com.br. irineu.teste.com.br. (
2016060615    ; Serial
604800        ; Refresh
86400         ; Retry
2419200       ; Expire
604800 )      ; Negative Cache TTL

@    IN    NS    ns1.teste.com.br.
@    IN    A    192.168.0.1

@    IN    NS    ns2.teste.com.br.

@    IN    MX    10    ns1.teste.com.br.
@    IN    A    192.168.0.1

ns1        A      192.168.0.1
webmail    CNAME  ns1
pop        CNAME  ns1
smtp       CNAME  ns1
imap       CNAME  ns1   
ns2        A      192.168.0.2


c) Testes sua configuração do DNS:

#named-checkzone teste.com.br /etc/bind/db.teste.com

Resultado esperado do comando:
zone teste.com.br/IN: loaded serial 3734755897
OK



#/etc/init.d/bind9 restart

#nslookup ns1

Resultado esperado do comando:
Server: 192.168.0.1
Address: 192.168.0.1#53

Name: ns1.teste.com.br
Address: 192.168.0.1



#nslookup ns2
Server: 192.168.0.1
Address: 192.168.0.1#53

Name: ns2.teste.com.br
Address: 192.168.0.2


2.3.2 DNS Reverso

Apenas com a configuração do servidor de DNS que executamos até agora já é possível fazer a instalação do Zimbra. No entanto, para uso em produção é necessário ainda no mínimo a configuração do DNS Reverso. O DNS Reverso é uma das formas que um servidor utiliza para saber se a mensagem enviada do endereço de IP de seu servidor de e-mail responde ao domínio encontrado no cabeçalho. Vejamos com o exemplo de configuração.


a) Adicionar no arquivo /etc/bind/named.conf.local as seguintes linhas:

zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.teste.com-rev";
};


b) Criar o arquivo /etc/bind/db.teste.com-rev

$TTL    604800
@    IN    SOA    ns1.teste.com.br. irineu.teste.com.br. (
2016060615    ; Serial
604800        ; Refresh
86400        ; Retry
2419200        ; Expire
604800 )    ; Negative Cache TTL

@    IN    NS    ns1.teste.com.br.
1    IN    PTR   ns1.teste.com.br.
@    IN    NS    ns2.teste.com.br.
2    IN    PTR   ns2.teste.com.br.



h) Testes sua configuração do DNS Reverso:

#named-checkzone 0.168.192.in-addr.arpa /etc/bind/db.teste.com-rev

Resultado esperado:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2016060615
OK


#/etc/init.d/bind9 restart

#dig teste.com.br

Resultado esperado:

;; QUESTION SECTION:
;teste.com.br.            IN    A

;; ANSWER SECTION:
teste.com.br.        604800    IN    A    192.168.0.1

;; AUTHORITY SECTION:
teste.com.br.        604800    IN    NS    ns1.teste.com.br.
teste.com.br.        604800    IN    NS    ns2.teste.com.br.

;; ADDITIONAL SECTION:
ns1.teste.com.br.    604800    IN    A    192.168.0.1
ns2.teste.com.br.    604800    IN    A    192.168.0.2


#dig -x 192.168.0.1


Resultado esperado:

;; QUESTION SECTION:
;1.0.168.192.in-addr.arpa.    IN    PTR

;; ANSWER SECTION:
1.0.168.192.in-addr.arpa. 604800 IN    PTR    ns1.teste.com.br.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.    604800    IN    NS    ns1.teste.com.br.

;; ADDITIONAL SECTION:
ns1.teste.com.br.    604800    IN    A    192.168.0.1


2.4 DEPÊNDENCIAS


O zimbra exige a instalação de alguns pacotes que podem ser instalados com o comando abaixo:

#apt-get install sysstat sqlite3 libperl5.18 libgmp10 libaio1 pax


3 CONCLUSÃO


Neste ponto chegamos ao ambiente do sistema operacional pronto para receber o serviço de e-mail Zimbra. A instalação e configuração é parte do tutorial 2.


REFERÊNCIAS


TUTORIAL, Zimbra 8 no Debian 6 Squeeze. Disponível em: <http://itnproducoes.blogspot.com.br/2013/04/tutorial-zimbra-8-no-debian-6-squeeze.html>



terça-feira, 1 de março de 2016

REFORÇANDO A SEGURANÇA DAS CONEXÕES HTTPS NO APACHE

1 - INTRODUÇÃO

Encontrei diversos tutoriais ensinando como ativar o protocolo https no apache utilizando chaves autoassinadas. No entanto, a maioria deles não leva em consideração os cuidados a serem tomados em relação a segurança.
Ativar o protocolo https ajuda, mas não ter o mínimo de atenção com o apache e não utilizar chaves criptograficas realmente seguras, pode causar a falsa sensação de segurança.

2 - SSL, TLS e RC4

SSL - Secure Socket Layer - protocolo de criptografia amplamente utilizado para conexões seguras https. No entanto devido as diversas falhas de segurança encontradas, mesmo nas últimas versões, empresas como Google e Mozilla estão desativando o suporte em seus navegadores ao SSL 2 e 3 em favor do  TLS (Transport Layer Security). 
Apesar de as novas versões de navegadores desabilitarem o suporte ao SSL, é dever de quem fornece os serviços fazer sua parte no lado do servidor.

TLS  -  Transport Layer Security é um protocolo semelhante ao SSL mas está imune as falhas encontradas no SSL.

RC4  - É um dos algoritmos utilizados em sistemas de criptografia como o SSL e o WEP (redes sem fio). Não é considerado um algoritmo seguro.


3 - CONFIGURAÇÕES A SEREM ALTERADAS/ADICIONADAS NO APACHE.

O suporte ao SSL e ao RC4 vem ativados por padrão no apache. Desative o suporte ao SSL 2 e SSL 3, e a algoritmos de criptografias ultrapassados acrecentando as linhas abaixo no arquivo de configuração apache.conf (derivados debian) ou httpd.conf (derivados RedHat).

SSLProtocol ALL -SSLv2 -SSLv3 #Desativa o suporte ao SSLv2 e SSLv3
 
SSLHonorCipherOrder on #Ao escolher o tipo de criptografia, normalmente a configuração do cliente é utilizada. Se essa opção está ativa (on), a configuração do servidor será utilizada.

SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

4 - SHA-1 e SHA-2

Os algoritmos de hash SHA são utilizados utilizados por Autoridades Certificadoras para assinar digitalmente os certificados emitidos. O SHA-1 é o mais utilizado, no entanto, diversas pesquisas apontam que ataques bem sucedidos ao SHA-1 tornam-se cada vez mais prováveis a medida que a capacidade de processamento dos computadores aumenta. Sendo assim, pretende-se estinguir-se o uso de certificados gerados em SHA-1 até janeiro de 2017.
Para quem utiliza um certificado em seu servidor gerado em SHA-1, terá que necessariamente substituí-lo por um gerado em SHA-2 mesmo que este ainda esteja dentro da validade. O google, por exemplo,  anunciou recentemente que pretende adicionar alertas de segurança em seu navegador para sites que utilizem certificados SHA-1 em conexões seguras.
A família de algoritmos SHA-2  inclui seis funções de valores hash que são conhecidos como: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256


5 - GERANDO UM CERTIFICADO AUTO ASSINADO SHA-2

Você pode gerar seu próprio certificado com SHA-2 auto assinado e adicioná-lo no apache. Gere o certificado com os comandos abaixo:

#Gera o repositório de chaves

openssl genrsa -out server.key 2048

#Gera o novo certificado autoassinado utilizando o repositório de chaves (Após o comando entre com as informaçõesde país, estado, cidade, etc). Obs: Diminua o parametro -days para diminuir o tempo de validade do certificado.

openssl req -x509 -nodes -days 3650 -new -sha256 -keyout server.key -out certificado.crt


#Exibe informações do certificado.
openssl x509 -in certificate.crt -text -noout








segunda-feira, 22 de fevereiro de 2016

UPGRADE ZIMBRA 8.0.X (UBUNTU 12.04) PARA ZIMBRA 8.5 + (UBUNTU 14.04)

1 INTRODUÇÃO

Recetemente necessitei fazer o upgrade de um servidor de email que rodava o Ubuntu 12.04 com a versão 8.05 do Zimbra, para o Ubuntu 14.04. Como era minha intenção também atualizar o Zimbra para a última versão (8.5) precisei seguir alguns passos para obter sucesso.
Aviso desde o princípio que essa postagem não é um tutorial, mas apenas uma dica de como atualizar o Zimbra da versão 8.0.x para o Zimbra 8.5+ atualizando também o sistema operacional 12.04. Sendo assim, é necessário ter conhecimento de como realizar a instalação do Zimbra.


2 PASSO 1: ATUALIZAÇÃO NO SERVIDOR UBUNTU 12.04

Como a intenção é também atualizar o Zimbra, você irá necessitar primeiro atualizá-lo no servidor Ubuntu 12.04. Aconselho antes, que seja executado um backup completo da pasta de instalação do zimbra (com os serviços do zimbra parado), é a sua garantia se algo der errado durante o upgrade.


3 - PASSO 2: INSTALAR O ZIMBRA 8.5+ NO UBUNTU 14.04

Tenho como uma boa prática executar antes uma nova instalação do Zimbra no servidor novo, o qual irá receber o zimbra que será transferido do servidor antigo.
Se o serviço DNS a ser utilizado irá ficar no mesmo servidor Zimbra, é importante configurá-lo antes de qualquer procedimento. Esse serviço DNS deve responder as solicitações de todos os domínios configurados no servidor Zimbra que será transferido.  Além disso, não se pode esquecer de configurar o próprio servidor para que o mesmo realize as consultas no local, o que pode ser feito editando-se o resolv.conf, apagando seu conteúdo e adicionando a linha nameserver 127.0.0.1
Após a configuração do DNS, execute a instalaçao do Zimbra 8.5 normalmente no novo servidor. Provavelmente você irá necessitar resolver outros problemas durante a instalação, até que a mesma seja executada sem erros. Um erro comum é a falta de algum pacote, no entanto, a instalação avisa logo no início quais dependências são necessárias e que não foram encontradas para que seja executada a correção.
Com a instalação do Zimbra 8.5 no Ubuntu 14.04 executada com sucesso vamos para o passo 3.


4 - PASSO 3:  EXECUÇÃO DO UPGRADE


Pare os serviços do zimbra no servidor antigo (Ubuntu 12.04) e também no novo servidor (Ubuntu 14.04).
No servidor Ubuntu 14.04 apague a pasta de instalação do zimbra e copie a pasta do zimbra do servidor Ubuntu 12.04 para o Ubuntu 14.04. Uma opção é utilizar o rsync ou o sftp. É importante executar a cópia mantendo as permissões do arquivos.
Execute a instalação do Zimbra no servidor Ubuntu 14.04 com o comando ./install.sh --skip-upgrade-check. Adicionar --skip-upgrade-check irá desativar um série de checagens que a instalação executa antes do upgrade. Se for executado apenas o ./install.sh você irá receber o famoso erro de perl, algo como "Perl API version v5.14.0 of Socket does not match v5.18.0 at /usr/share/perl/5.18/XSLoader.pm". Uma outra dica é não realizar a checagem de base de dados quando a instalação solicitar.
Após finalizada a instalação, verifique se todos os serviços do zimbra estão em execução e se as respectivas caixas de email possuem o conteúdo do Zimbra do servidor antigo.