Atualização do Zimbra para a versão 6
A alguns dias atrás, foi lançada a versão 6 do Zimbra, para atualizar da versão 5 para a 6, o processo é relativamente simples.
Dando continuidade ao howto que escrevi anteriormente, vou descrever os passos necessários para atualizar o zimbra.
Dependências:
O “Zimbra 6″ requer a instalação um pacote novo: sysstat
# yum install sysstat
Download:
Entre em http://www.zimbra.com/community/downloads.html e baixe versão mais atual do zimbra.
Atualização:
# tar xvfz zcs-6
# cd zcs-6
(No CentOS 5.x ou outra distro não listada)
# ./install --plataform-override
(Outra distro suportada oficialmente)
# ./install
Responda as perguntas que aparecem na tela, caso encontre algum erro, corrija-o antes de prosseguir.
HOWTO: ISPConfig 3.x no CentOS 5.x
O ISPConfig é uma ótima ferramenta Open Source para gerenciamento completo de um servidor de Web Hosting. Ele possui ferramentas que abrangem todos os itens indispensáveis para este tipo de serviço, como emails, web, ftp, dns, mysql, revendedores (reseller), painel administrativo para o usuário gerenciar o seu domínio, etc.. é sem dúvidas, uma ótima alternativa ao cPanel WHM.
Instale o repositório rpmforge de acordo com este guia: Adicionando o repositório rpmforge no CentOS 5.X
Pré ajustes
Ambos podem ser desabilitados através do menu “setup” – no item “firewall”.
Preparando o servidor e instalando as dependências:
# yum remove sendmail
# yum update
# yum install amavisd-new bzip2 clamav clamav-data clamav-server clamav-update clamd curl curl-devel cyrus-sasl-devel expect gamin-devel gcc gcc-c++ gdbm-devel getmail httpd imagemagick libtool libtool-ltdl-devel libxml2 libxml2-devel mysql-devel mysql-server ntp openldap-devel openldap-servers openssl-devel pam-devel pcre-devel perl-datetime-format-builder perl-datetime-format-http perl-dbd-mysql perl-libwww-perl php php-bcmath php-common php-devel php-eaccelerator php-gd php-imap php-ldap php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql phpmyadmin php-mysql php-odbc php-pear php-shout php-snmp php-soap php-tidy php-xml php-xmlrpc pkgconfig postfix postgresql-devel pure-ftpd quota redhat-rpm-config rpm-build spamassassin squirrelmail subversion unrar unzip webalizer zlib-devel -y
Para facilitar a sua vida, reuni a instalação de todos os pacotes necessários em apenas um “yum install”, assim você pode ir tomar um café e fumar um cigarro tranquilamente enquanto o yum trabalha
Instalando serviços que não estão disponíveis nos repositórios:
# cd /usr/src
mydns:
# wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm
# rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
vlogger:
# wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
# tar xvfz vlogger-1.3.tar.gz
# mv vlogger-1.3/vlogger /usr/sbin/
Courier
Por uma exigência do courier-imap, este não pode ser compilado utilizando o usuário root, portanto, iremos criar um usuário apenas para criar os pacotes rpm, não esqueça de remove-lo no final.
# useradd -m -s /bin/bash rpmbuilduser
# passwd rpmbuilduser
Edite o arquivo /etc/sudoers e adicione na última linha:
rpmbuilduser ALL=(ALL) ALL
Faça o download dos pacotes do courier:
# wget http://sourceforge.net/projects/courier/files/courier-authlib/courier-authlib-0.62.4.tar.bz2
# wget http://sourceforge.net/projects/courier/files/courier-imap/courier-imap-4.5.1.tar.bz2
# wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2
Alterne para o usuário “rpmbuilder” e prepare o ambiente para gerar os arquivos rpm
# su rpmbuilduser
# mkdir $HOME/rpm
# mkdir $HOME/rpm/SOURCES
# mkdir $HOME/rpm/SPECS
# mkdir $HOME/rpm/BUILD
# mkdir $HOME/rpm/SRPMS
# mkdir $HOME/rpm/RPMS
# mkdir $HOME/rpm/RPMS/i386
# mkdir $HOME/rpm/RPMS/x86_64
# echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
Crie os rpms do courier-authlib e instale os pacotes requeridos pelo ISPConfig
# rpmbuild -ta courier-authlib-0.62.4.tar.bz2
# sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-0.62.4-1.i386.rpm
# sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-mysql-0.62.4-1.i386.rpm
# sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-authlib-devel-0.62.4-1.i386.rpm
Mesmo procedimento com o courier-imap
# rpmbuild -ta courier-imap-4.5.1.tar.bz2
# sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/courier-imap-4.5.1-1.i386.rpm
E finalmente o maildrop…
# rpmbuild -ta maildrop-2.0.4.tar.bz2
# sudo rpm -ivh /home/rpmbuilduser/rpm/RPMS/i386/maildrop-2.0.4-1.i386.rpm
Opcionalmente, volte para o usuário root, copie os rpms para /usr/src e delete o usuário rpmbuilder
# exit
# mv /home/rpmbuilduser/rpm/ /usr/src/
# userdel -r rpmbuilduser
Edite novamente o arquivo /etc/sudoers e remova a linha adicionada anteriormente.
Atualize o clam
/usr/bin/freshclam
Ative o sistema de quotas
Edite o arquivo /etc/fstab e na linha referente a partição em que as quotas devem ser acionadas, adicione as opções “,usrquota,grpquota“:
Exemplo:
/dev/sda3 / ext3 defaults,usrquota,grpquota 1 1
Para ativar o sistema de quota (assumindo que você está utilizando quota na /)
# touch /aquota.user /aquota.group
# chmod 600 /aquota*
# mount -o remount /
# quotacheck -avugm
# quotaon -avug
Agora que todos os serviços estão instalados, inicialize eles e verifique se todos subiram corretamente.
# service amavisd start
# service clamd start
# service courier-authlib start
# service courier-imap restart
# service httpd start
# service mydns start
# service mysqld start
# service postfix start
# service pure-ftpd start
# service saslauthd start
Altere o runlevel dos serviços utilizados para que estes inicializem durante o boot:
# chkconfig --level 345 amavisd on
# chkconfig --level 345 clamd on
# chkconfig --level 345 courier-authlib on
# chkconfig --level 345 courier-imap on
# chkconfig --level 345 httpd on
# chkconfig --level 345 mydns on
# chkconfig --level 345 mysqld on
# chkconfig --level 345 postfix on
# chkconfig --level 345 pure-ftpd on
# chkconfig --level 345 saslauthd on
Defina uma senha de root para o banco mysql:
# mysqladmin -u root password senhacomplexa (mas é complexa mesmo viu?)
Nesta altura, todas as dependências e serviços que o ISPConfig estão instalados e rodando corretamente, então podemos inicializar a instalação.
Download do ISPConfig
# cd /usr/src
# wget http://www.ispconfig.org/downloads/ISPConfig-3.0.1.x.tar.gz
Descompacte e rode o script de instalação
# tar xvfz ISPConfig-3.0.1.x.tar.gz
# cd ispconfig3_install/install/
# php -q install.php
Quando você executar o install.php, você precisará responder algumas perguntas específicas do seu servidor, para a maioria delas, uma resposta satisfatória já vem definida.
Durante a execução deste script, todos os serviços serão configurados automagicamente de acordo com as especificações do ISPConfig. Não será necessário editar nenhum arquivo manualmente.
Após rodar o script de instalação, acesse o painel do ISPConfig em http://ipdoservidor:8080 e entre com o usuário admin senha admin (mude imediatamente esta senha)
Observação: Durante o yum inicial, você realizou a instalação do squirrel e este encontra-se disponível em http://ipdoservidor/webmail
Pronto, seu ISPConfig deve estar completamente instalado, agora basta dedicar um pouco de tempo para configurar de acordo com as suas necessidades.
Se você chegou neste post procurando uma alternativa para o cPanel e por algum motivo não gostou do ISPConfig, cito algumas outras opções que podem agradar:
Domain Technologie Control
ispCPOmega – (Fork do VHCS) – Demo – admin / admin123
RavenCore – Demo – Login: admin / ravencore
GNUPanel
Virtualmin GPL
Adicionando o repositório rpmforge no CentOS 5.X
Muitos pacotes não estão disponíveis nos repositórios oficiais do CentOS, entretanto existem diversos repositórios de terceiros que cobrem esta lacuna, um dos repositórios mais famosos é o rpmforge. Neste post explico como realizar a instalação deste repositório no CentOS 5.x.
Instale o pacote yum priorities com o comando:
# yum install yum-priorities
O objetivo do priorities é priorizar pacotes dos repositórios oficiais do CentOS, ou seja, se um pacote existir no rpmforge e no repositório oficial será instalada a versão do repositório com maior prioridade (normalmente os oficiais), desta forma minimizando problemas gerados por pacotes externos substituindo pacotes oficiais.
Você pode instalar o rpmforge sem esta proteção, mas para a sua saúde e pela estabilidade do seu servidor, recomendo seriamente a instalação deste plugin.
Instalando o rpmforge:
# wget rpmforge-i386 ou rpmforge-x86_64
# rpm -ivh rpmforge*
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
Configurando o priorities:
Edite o arquivo /etc/yum/pluginconf.d/priorities.conf, e verifique se o plugin priorities está habilitado
Agora edite os seus repositórios dentro de /etc/yum.repos.d/ e ajuste a prioridade de cada um deles.
É recomendável utilizar:
[base], [addons], [updates], [extras] -> priority=1
[centosplus],[contrib] -> priority=2
Outros repositórios (ex: rpmforge) -> priority=10 (ou maior)
Rode o yum e verifique se o plugin “priorities” foi carregado corretamente. ex:
# yum check-update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* rpmforge: apt.sw.be
* base: ftp.cica.es
* updates: ftp.cica.es
* contrib: ftp.cica.es
* centosplus: ftp.cica.es
* addons: ftp.cica.es
* extras: ftp.cica.es
540 packages excluded due to repository priority protections
Fonte: http://wiki.centos.org
Howto: Filtro de emails usando Spamassassin + Postfix + ClamAV + MailScanner + MailWatch
O MailWatch é uma interface Web para o gerenciamento do MailScanner + ClamAV + SpamAssassin + Postfix, existem diversas formas de implementar uma solução para filtragem de emails, mas a minha preferência é configurar um servidor (virtual ou não) separado para esta função, principalmente devido ao fato do processo de filtragem consumir uma boa parte de recursos do hardware em servidores mais movimentados. Outra grande vantagem deste método, é que ele é compatível com qualquer serviço de email (zimbra, exchange, groupwise, etc….).
Neste post vou explicar como montar um servidor para filtrar todo o seu tráfego de emails, realizando a remoção do “lixo eletrônico” antes de entregar as mensagens para o seu servidor principal de emails.
Partindo de uma instalação mínima do CentOS 5.3, remova o “sendmail”
# yum remove sendmail
Instale o postfix + serviços necessários
# yum install postfix mysql-server php-mysql php-gd httpd gcc spamassassin patch rpm-build
Instalando o clamAV:
Baixe os pacotes RPM do clamav em: http://packages.sw.be/clamav/ e instale com o comando:
# rpm -ivh clam*
Preparing... ############ [100%]
1:clamav-db ############ [100%]
2:clamav ############ [100%]
3:clamav-devel ############ [100%]
4:clamd ############ [100%]
Instalando o Mailscanner:
Faça o download do tar.gz contendo os pacotes RPM
# wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.XX.XX-X.rpm.tar.gz
# tar xvfz MailScanner-4.XX.XX-X.rpm.tar.gz
# cd MailScanner-4.XX.XX-X
# ./install.sh
Agora edite o arquivo /etc/MailScanner/MailScanner.conf
%org-name% = Nome da Empresa
%org-long-name% = Nome completo da empresa
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamd
Clamd Socket = /tmp/clamd.socket
Use SpamAssassin = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Instalando o Mailwatch:
Faça o download da última versão “stable” do mailwatch em http://mailwatch.sourceforge.net
Descompacte o pacote de instalação e entre no diretório mailwatch-1.0.X
# mysql -u root < create.sql
Crie o usuário mailwatch no mysql com permissões completas na base mailscanner
# mysql -u root
> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'minhasupersenha';
> GRANT FILE ON *.* TO mailwatch@localhost IDENTIFIED BY 'minhasupersenha';
Edite o arquivo MailWatch.pm e ajuste os parâmetros db_user e db_pass de acordo com o usuário e senha criados.
my($db_user) = 'mailwatch';
my($db_pass) = 'minhasupersenha';
Agora copie o arquivo MailWatch.pm para o CustomFunctions do MailScanner
# cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions
Criando um usuário para o MailWatch (este é o usuário com permissões de administrador, após criar este usuário, os outros podem ser geridos através da interface Web):
# mysql mailscanner -u mailwatch -p
Enter password: ******
> INSERT INTO users (username, password, fullname, type) VALUES ('admin',md5('senhasegura'),'Administrator','A');
Movendo a interface web do Mailwatch para o root dir do apache:
# mv mailscanner/ /var/www/html/
Ajustando permissões:
# cd /var/www/html/mailscanner/
# chown root:apache images
# chmod ug+rwx images
# chown root:apache images/cache
# chmod ug+rwx images/cache
Crie o arquivo conf.php com base no conf.php.example
# cp conf.php.example conf.php
Agora edite o conf.php e ajuste os campos: DB_USER e DB_PASS.
Integrando o MailScanner e o Mailwatch
Pare o MailScanner
# service MailScanner stop
Edite o arquivo /etc/MailScanner/MailScanner.conf e verifique se estas opções estão ajustadas
Always Looked Up Last = &MailWatchLogging
Detailed Spam Report = yes
Quarantine Whole Message = yes
Quarantine Whole Message As Queue Files = no
Include Scores In SpamAssassin Report = yes
Quarantine User = root
Quarantine Group = apache (this should be the same group as your web server)
Quarantine Permissions = 0660
Opcionalmente (para facilitar o debug)
Always Include SpamAssassin Report = yes
Para integrar Whitelist/Blacklist ao mailwatch:
Edite o arquivo SQLBlackWhiteList.pm
Procure pela função “CreateList” e nela defina as informações da sua base de dados.
my($db_name) = 'mailscanner';
my($db_host) = 'localhost';
my($db_user) = 'mailwatch';
my($db_pass) = 'minhasupersenha';
# cp SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions
Agora vamos configurar o postfix para fazer relay das mensagens do domínio:
Edite o arquivo /etc/postfix/main.cf
relay_domains = exemplo.com.br
Agora edite /etc/postfix/transport e insira
exemplo.com.br smtp:172.22.10.93
Execute:
# postmap /etc/postfix/transport
Estas duas últimas configurações farão com que o postfix permita o relay de mensagens do domínio exemplo.com.br
Já o Transport, irá informar para o postfix que as entregas para o domínio exemplo.com.br devem ser no ip 172.22.10.93
Após realizar testes (muito importante para um ambiente de produção), edite a zona de DNS do seu domínio, e altere a sua entrada MX de forma que aponte para o filtro de emails (e não para o seu mailserver). Desta forma todas as mensagens enviadas para exemplo.com.br cairão no sistema de filtragem e se estiverem limpas serão encaminhadas para o seu servidor de emails.
Para acessar o Mailwatch: http://ip_do_mailwatch/mailscanner
Howto: OpenVZ no CentOS 5.x
Este tutorial é dividido em 5 partes:
1- Introdução ao OpenVZ
2- Instalação do OpenVZ no CentOS 5.X
3- Templates
4- Operações básicas do OpenVZ
5- Leitura recomendada
Ao fim deste tutorial, você terá o OpenVZ instalado e rodando com pelo menos uma máquina virtual.
1- Introdução ao OpenVZ
OpenVZ utiliza virtualização em containers para Linux. OpenVZ cria múltiplos containers de forma segura e isolada (também conhecidos como VE ou VPS) no mesmo servidor físico, permitindo uma melhor utilização do servidor e assegurando-se que as aplicações não entrem em conflito. Cada container roda exatamente como um servidor individual; um container pode ser reiniciado, ter os seus próprio usuários, memória, processos, aplicativos, bibliotecas e arquivos de configuração.
OpenVZ é um Software Livre, disponível na Licença GNU GPL
OpenVZ é a base do Parallels Virtuozzo Containers, uma solução comercial de virtualização oferecida pela Parallels. O projeto OpenVZ é patrocinado por Parallels.
Tradução Livre – OpenVZ Wiki
Para maiores informações sobre esta e/ou outras formas de virtualização consulte os Links:
Eduardo Silva – Introdução a Virtualização
OpenVZ Wiki – Introduction to Virtualization
OpenVZ – Virtualization in Linux
Wikipedia – OpenVZ
Video: A brief Introduction to OpenVZ – Scott Dowdle
[video:google:3811575606473768400]
2- Instalação do OpenVZ no CentOS 5.X
Pré-requisitos:
* Desabilitar o SELinux
* Partição separada para /vz/private (Recomendável, caso contrário as Quotas não funcionarão para as máquinas virtuais)
Instalando o repositório do OpenVZ
# wget http://download.openvz.org/openvz.repo -P /etc/yum.repos.d/
# rpm –import http://download.openvz.org/RPM-GPG-Key-OpenVZ
Instalando o Kernel:
# yum install ovzkernel
Teoricamente, após instalar o ovzkernel pelo yum, o grub já estará configurado para carregar o novo kernel no próximo boot, mesmo assim, verifique o arquivo /boot/grub/menu.lst e verifique se o novo kernel está na lista como default. Caso não esteja, a configuração deve ficar mais ou menos assim:
title CentOS (2.6.18-128.1.1.el5.028stab062.3)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.1.1.el5.028stab062.3 ro root=LABEL=/
initrd /initrd-2.6.18-128.1.1.el5.028stab062.3.img
Edite o arquivo /etc/sysctl.conf e edite os parâmetros das opções listadas abaixo
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Reinicie o servidor, e verifique se o kernel que foi instalado anteriormente está rodando:
# uname -a
Linux ovztest.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux
Agora instale as principais ferramentas de gerenciamento do OpenVZ utilizando o YUM:
# yum install vzctl vzquota
# yum install vzpkg vzyum vzrpm43-python vzrpm44-python vzctl-lib (Requer python 2.2, 2.3 ou 2.4. Não funciona com python 2.5 ou com o kernel de 64bits)
Inicialize o serviço “vz” e observe se este carregou corretamente.
# service vz start
Starting OpenVZ: [ OK ]
3- Templates
O OpenVZ utiliza templates de sistemas operacionais para criar um novo container. Neste tutorial, iremos utilizar templates pré-criados disponíveis em: http://wiki.openvz.org/Download/template/precreated escolha a sua distribuição favorita e faça o download. Ex: centos-5-x86.tar.gz
Caso queira criar o seu próprio template, visite a Wiki do OpenVZ e procure as intruções para criar um template da distribuição escolhida. Alguns exemplos:
* Creating a CentOS 5.0 Template
Gentoo template creation
Observar que o OpenVZ permite rodar distribuições distintas de Linux no mesmo servidor.
Coloque o(s) seu(s) template(s) escolhido(s) “SEM DESCOMPACTAR” em /vz/template/cache/
4- Operações básicas do OpenVZ
É importante observar que o OpenVZ utiliza números (CTID) para identificar as máquinas virtuais. A faixa de 0 a 100 é reservada para o OpenVZ e não deve ser utilizada (principalmente o ID 0). Uma recomendação para evitar conflitos na migração de VPSs entre servidores e facilitar a identificação (saber que o VPS XXXX está no servidor YY), seria utilizar “pre-fixos” para cada servidor. Exemplo
Servidor 1 – CTID começa por 1. EX: 1101
Servidor 2 – CTID começa por 2. EX: 2135
Criando um VPS:
# vzctl create 101 –ostemplate centos-5-x86 –hostname vps1.exemplo.com.br
Unable to get full ostemplate name for centos-5-x86
Creating container private area (centos-5-x86)
Performing postcreate actions
Container private area was created
O Comando acima irá criar uma máquina virtual com o CTID 101 utilizando o template centos-5-x86 com o hostname vps1.exemplo.com.br
Configurando a rede do container:
# vzctl set 101 –ipadd 192.168.100.223 –save
Saved parameters for CT 101
# vzctl set 101 –nameserver 192.168.100.223 –save
Saved parameters for CT 101
Configurando o container para inicializar durante o boot
# vzctl set 101 –onboot yes –save
Saved parameters for VPS 101
Inicializando o container:
# vzctl start 101
Starting container …
Container is mounted
Adding IP address(es): 192.168.100.223
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: vps1.exemplo.com.br
File resolv.conf was modified
Container start in progress…
Lista dos VPSs hospedados no servidor:
# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME
101 12 running 192.168.100.223 vps1.exemplo.com.br
Entrando no VPS:
# vzctl enter 101
entered into CT 101
[root@vps1 /]# uname -a
Linux vps1.exemplo.com.br 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Tue May 5 17:31:34 MSD 2009 i686 i686 i386 GNU/Linux
[root@vps1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 1.0G 492M 533M 48% /
none 505M 4.0K 505M 1% /dev
Executando um comando de fora do VPS:
# vzctl exec 101 service sshd start
Starting sshd: [ OK ]
Realizando um backup (dump) completo de todas as máquinas virtuais hospedadas no servidor (sem interromper os serviços):
# vzdump –snapshot –compress –dumpdir /backup –all
Parando o VPS
# vzctl stop 101
Stopping container …
Container was stopped
Container is unmounted
Destruindo um VPS (preciso avisar que todos os arquivos que estão contidos no container serão perdidos para sempre?) ![]()
# vzctl destroy 101
Destroying container private area: /vz/private/101
Container private area was destroyed
Restaurando um backup:
vzdump –restore vzdump-101.tgz 101
5- Leitura recomendada
Abaixo alguns links com leitura recomendada
OpenVZ User’s guide (Completo, mas principalmente a o capítulo Managing Resources)
OpenVZ Wiki
MediaWiki – OpenVZ
Qualquer dúvida, problema, correção elogio ou xingamento, utilize o campo de comentários logo abaixo
Howto: Instalação e configuração do Zimbra no CentOS 5.X
Documento atualizado em 22/10/2009 para refletir a instalação do Zimbra 6.
Os passos de instalação do Zimbra 5 e do Zimbra 6 são praticamente iguais
O que é o Zimbra?
O Zimbra é uma ferramenta muito completa de emails e colaboração. Ele tem incorporado um rico webmail, calendário corporativo, instant messenger, gerenciador de tarefas(todo list), porta-arquivos, editor de documentos e planilhas em um sistema parecido com Wiki, permitindo contole de versões, entre outros recursos.
Um dos pontos altos desta ferramenta, é que ela permite que os usuários compartilhem itens de sua conta entre si. Desta forma um utilizador, pode compartilhar com um gerente, um documento, a sua lista de tarefas ou até mesmo seu calendário e caixa de emails.
Caso você não conheça o Zimbra, recomendo que assista o seu video-tour de 2 ou 3 minutos que faz um overview completo de todos os seus recursos. Este tour pode ser encontrado aqui.
Sobre este tutorial
O objetivo deste artigo, é orientar o leitor durante o processo de instalação do Zimbra 6 em um CentOS 5, mas sempre lembrando, que para outras distribuições, a maioria das dicas contidas aqui, podem ser reaproveitadas mediante pequenos ajustes.
Passo 1: Preparando o sistema operacional
O Zimbra tem builds específicas para algumas distribuições de Linux, são elas:
* Red Hat Enterprise Linux 4 e 5
* Fedora 7
* Debian 4
* MacOS 10.4 Tiger
* MacOS 10.5 Leopard
* openSUSE Linux 10.2
* SUSE Linux Enterprise Server 10
* Ubuntu 6.06 LTS
* Ubuntu 8.04 LTS
Download do Zimbra Community Edition
Como o CentOS é derivado do Red Hat Enterprise Linux, apenas com o nome e os logotipos trocados, significa que podemos utilizar o Build do Zimbra para Red Hat 5 no CentOS 5. Caso o estejas utilizando outro sistema operacional, pode sempre compilar o Zimbra a partir do código fonte que também está disponível no site. As informações para compilar o zimbra, encontram-se aqui.
Realize a instalação do CentOS 5 normalmente, prestando atenção em dois detalhes:
* O Servidor que está sendo configurado, deve ter um FQDN (Full qualified domain name) configurado, quando o instalador solicitar um hostname, informe algo como zimbra.exemplo.com.br
Observar que na sua zona DNS, zimbra.exemplo.com.br deve apontar para o endereço IP de seu servidor.
* Durante a seleção de pacotes, desmarque o Gnome – Desktop, é totalmente desnecessário para o seu servidor, usando espaço em disco e desperdiçando recursos valiosos.
Após a instalação do Sistema Operacional, edite o arquivo /etc/hosts da seguinte forma:
127.0.0.1 localhost.localdomain localhost
xx.xx.xx.x zimbra.exemplo.com.br zimbra
Onde xx.xx.xx.x é o ip da interface de rede do servidor.
Observar que o formato IP FQDN host deve ser mantido.
Faça as atualizações do CentOS e instale os requisitos do zimbra.
# yum update -y
# yum install compat-db gmp compat-libstdc++-296 compat-libstdc++-33 libtool-ltdl sysstat
Agora remova o sendmail e para evitar conflitos com o MTA do zimbra e instale o fetchmail.
# yum remove sendmail
# yum install fetchmail
Ao instalar o fetchmail, uma de suas dependências será o Exim (que irá conflitar com o MTA do zimbra(postfix)), desabilite a inicialização deste com o comando:
# chkconfig --level 0123456 exim off
Edite o arquivo /etc/sudoers e comente a linha “defaults requiretty”
Edite o arquivo /etc/sysconfig/i18n e deletar a linha LANG=”en_US.UTF-8”.
Passo 2: Instalação do Zimbra 6.x.x
Vá para /usr/src e descompacte o pacote do Zimbra
# tar xvfz zcs-6.0.1_GA_1816.RHEL5.20090911181524.tgz
# cd zcs-6.0.1_GA_1816.RHEL5.20090911181524
Execute o script de instalação:
# ./install.sh --platform-override
O parâmetro –platform-override serve para dizer ao Zimbra que ele deve ignorar o fato de estar sendo instalado em um CentOS ao invés de RedHat.
Uma outra alternativa (que eu não recomendo, apenas cito) é modificar o conteúdo do arquivo /etc/redhat-release
de
CentOS release 5 (Final)
para
Red Hat Enterprise Linux ES release 5
Desta forma não é necessário utilizar o parâmetro –platform-override, entretanto, eu não tenho certeza de quais impactos esta alteração pode trazer para o sistema operacional e/ou para pacotes instalados no futuro.
Durante a execução do script de instalação, ele fará uma série de verificações, se você instalou um CentOS5 e preparou o sistema operacional conforme eu sugeri, a princípio todas as verificações deverão ocorrer sem problemas, caso apareça algum problema, aborte a instalação, resolva e comece novamente o processo.
Para uma instalação “StandAlone” do Zimbra, as configurações indicadas por default já servem para a maioria dos casos.
Ao final da instalação, se você fez tudo correto, o zimbra apresentará uma mensagem de erro informando que zimbra.exemplo.com.br não possuí uma entrada MX válida. Neste momento você irá criar o domínio exemplo.com.br
DNS ERROR resolving MX for zimbra.exemplo.com.br
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]
Create domain: [zimbra.exemplo.com.br] exemplo.com.br
MX: mail.exemplo.com.br (xx.xx.xx.x)
Interface: xx.xx.xx.x
Interface: 127.0.0.1
DNS ERROR - none of the MX records for exemplo.com.br
resolve to this host
It is suggested that the MX record resolve to this host
Re-Enter domain name? [Yes] no
done.
Após ajustar o o domain, será apresentado um menu com várias configurações do zimbra, sugiro em um primeiro momento alterar algumas delas:
No menu 3) Zimbra Store Recomendo alterar:
4) Admin Password
12) Web server mode – De http para redirect, assim todo o acesso http é automagicamente redirecionado para https, adicionando um pouco mais de segurança para o usuário final.
No menu 1) Common configuration, ajustar o 6) TimeZone
Recomendo passar nos outros menus para verificar se as outras configurações refletem o seu ambiente. Observar também se os endereços mostrados correspondem ao seu hostname e domínio.
Após o término da configuração, use a opção “a” para salvar e aplicar as novas configurações. O instalador passará por mais alguns pontos e com sorte, o processo estará finalizado em alguns minutos.
Passo 3: Configurando o Zimbra
Agora que o Zimbra está instalado e rodando corretamente, acesse o painel administrativo do seu servidor de emails em https://zimbra.exemplo.com.br:7071 com o usuário admin e a senha que você criou durante a instalação.
Antes de começar a criar as contas de email, sugiro criar, duplicar ou editar um “class of service” para os seus usuários.
O “Class Of Service” é como um template de configurações, ao criar um novo usuário e associar ele a um COS, todas as configurações da nova conta, serão realizadas mediante os itens pré-definidos aqui. Se alterar um item no Class Of Service, este também será replicado para todas as contas associadas a ele. Em resumo, uma maneira simples de gerenciar as configurações dos usuários.
De imediato, eu sugiro alguns itens a serem configurados no COS, como por exemplo:
- Features, habilitar o Instant Messenger
- Preferences – habilitar “Automatically login to instant messaging services”
- Preferences – habilitar “Use the GAL when autocompleting addresses”
- Advanced – Definir Quotas para os usuários
- Advanced – Definir uma boa política de senhas, sempre lembrando que usuários tem mania de utilizar senhas espertas como “12345″ e este tipo de atitude pode trazer problemas em um servidor de emails. (Não esqueça de definir os itens mais interessantes como Max Password Age (obrigando o user a trocar sua senha) e Unique Password history (impedindo que ele fique repetindo senhas)
Agora em Global Settings:
Attachments – Proíba principalmente arquivos potencialmente perigosos como .bat .com .exe .scr etc…
Agora você está pronto para começar a criar usuários, grupos e explorar todos os recursos Zimbra.
Críticas, dúvidas, sugestões e comentários são sempre bem vindos e normalmente respondidos. Sinta-se a vontade para usar o formulário abaixo.
Monitoramento fácil com Zabbix
Post atualizado para a versão mais recente do zabbix 1.8.x
Zabbix é uma poderosa ferramenta para monitoramento de servidores e dispositivos de rede.
Além de ser poderosa e flexível, o Zabbix também é uma ferramenta com uma rápida curva de aprendizagem. Uma de suas grandes vantagens é que a sua gestão é toda através de uma interface via Web e a sua configuração permanece quase que inteiramente dentro do banco de dados escolhido.
O grande foco desta ferramenta, é o monitoramento através de agentes, ou seja, um “coletor” de informações é instalado em um servidor a ser monitorado, e o Zabbix “conversa” diretamente com este coletor para receber informações como processos, espaço em disco, memória, rede, etc.. Entretanto, o Zabbix também permite a coleta de informações através de outras formas ex:
- SNMP
- IMPI
- Teste de serviços (http, smtp, etc..)
Este tutorial foi dividido em 3 partes, as duas primeiras, eu escrevi a 2 anos atrás, no meu primeiro blog, entretanto as datas dos artigos foram perdidas na minha migração do WordPress para o B2Evolution.
A terceira e última parte, eu comecei a escrever no dia 15 deste mês e devido a problemas pessoais, só consegui terminar de escreve-la hoje.
Parte I – Introdução
Parte II – Instalando e Rodando o Zabbix
Parte III – Instalando agentes e administrando o Zabbix
Para qualquer dúvida, comentário ou sugestão, favor usar os comentários deste post.
Parte III – Instalando agentes e administrando o Zabbix
Post atualizado para a versão mais recente do zabbix 1.8.x
Este post faz parte de uma série sobre Monitoramento utilizando o Zabbix disponível em:
Monitoramento fácil com o Zabbix
Parte I – Introdução
Parte II – Instalando e Rodando o Zabbix
Parte III – Instalando agentes e administrando o ZabbixDúvidas, sugestões, críticas e outros comentários devem ser postados em: Monitoramento fácil com o Zabbix
Depois de quase 2 anos do post inicial sobre o Zabbix, resolvi dar continuidade e o devido encerramento a esta matéria.
Neste artigo vou abordar os temas:
* Instalação do Agente (Linux e Windows)
* Cadastrando um Host no Zabbix
* Items, Triggers e Actions
* Removendo um monitoramento
* Definindo os tipos de media
* Configurando Alertas
* Configuração do serviço de Discovery
* Montando um mapa de rede básico
* Criando um gráfico customizado
* Criando telas específicas
* Executando Comandos remotamente
* Troubleshooting
Howto: Estatísticas do Squid no Webalizer
O proxy Squid possuí diversas ferramentas para análise de logs. Com toda a certeza, a mais popular delas é o SARG. Este apresenta um relatório de fácil entendimento, e que permite auditar em detalhes os locais onde os nossos usuários andam navegando.
O meu principal objetivo, não é auditar as atividades dos usuários, e sim ter uma boa referência dos horários de maior tráfego para poder redimensionar adequadamente os serviços prestados. Para este fim, o Webalizer é mais do que ideal.
Observar que não existe nenhum impedimento de ter o Webalizer e o SARG no mesmo servidor analisando os mesmos logs, cada um a sua maneira.
Os passos a seguir são indicados para instalar, configurar e rodar um Webalizer no CentOS 5.1
Instalando o pacote:
# yum install webalizer
O pacote do webalizer, da mesma forma que o do sarg, já instala o virtualhost no apache em /etc/httpd/conf.d/webalizer.conf e a rotina do cron em /etc/cron.daily/00webalizer
Para a configuração que será utilizada neste exemplo, nenhum destes arquivos precisa ser alterado.
Para “ativar” o novo virtualhost do apache, reinicialize o serviço
# service httpd restart
Agora vamos editar o arquivo de configuração principal do pacote.
# vi /etc/webalizer.conf
Ajustar o arquivo de log:
LogFile /var/log/squid/access.log
Informar ao webalizer que queremos reportar o squid:
LogType squid
Salve e feche o arquivo.
Agora para testarmos, basta executar o script que será rodado diariamente
# /etc/cron.daily/00webalizer
Neste momento as suas estatísticas já foram geradas, para acessá-las basta abrir http://ip_do_servidor/usage (não esqueça de colocar algum método de autenticação ou proteção neste diretório).
Dica: Caso também queira instalar o SARG, as funcionalidades básicas não requerem nenhuma configuração adicional. Basta instalar usando o rpm que ele irá funcionar “out of the box”.
Howto: PBX In A Flash (PiaF)
Resolvi escrever este guia para os que estão começando em telefonia IP agora, e não sabem bem por onde começar, ou para aqueles que já “fuçam” a algum tempo mas não sabem bem o que fazer com os seus laboratórios ou o que realmente estudar ou qual caminho seguir. Neste documento, eu procuro dar dicas e sugestões baseadas em experiências e situações pelas quais eu passei enquanto trabalhava exclusivamente como consultor de asterisk.
Realizei diversas interligações e migrações entre pbx convencionais e servidores asterisk, depois de muito bater cabeça por ai fui definindo padrões e procedimentos que eu mesmo deveria seguir para facilitar a minha vida e é isto que venho compartilhar agora.
Antes de começarmos, queria falar sobre instalações do asterisk x sistemas completos tipo trixbox, piaf e elastix.
Para ficar competitivo no mercado, eu considero muito importante gastar o mínimo possível de horas técnicas e fazer um trabalho bem feito. Para a interligação ou substituição da maioria dos PBX convencionais, um FreePBX tira de letra a tarefa de forma estável e de fácil gerenciamento. Claro que em alguns casos é bem mais interessante montar um Asterisk limpo sem nada, para algumas tarefas bem mais específicas, como por exemplo um sistema de gravação interligado a outro pbx, um sistema de voicemail, etc..
Porque o PiaF e não o Trixbox ou elastix?
Bem, na outra empresa que eu trabalhava focado em asterisk, o carro chefe era o TrixBox (antigo asterisk@home), um fator que eu nunca gostei no tb, é que ele sempre foi muito “bleeding edge”, então por diversas vezes encontrei alguns features meio bugados. Outro motivo, seria uma grande invasão de privacidade por parte da Fonality (empresa que mantem o TB) para com os seus usuários, para saber mais sobre o assunto, pode procurar sobre “Trixbox Call Home” para ajudar, já selecionei algo aqui, aqui, aqui e aqui!
E como terceiro ponto, a Fonality resolveu abandonar o FreePBX e passar para um gerenciador próprio, isto foi mais que o suficiente para procurar outra distro.
Elastix… na época que saiu o asterisk 1.4 o freepbx demorou um pouco para lançar uma versão definitiva, e a elastix lançou uma versão do seu produto usando o freepbx beta para asterisk 1.4… Isto me fez perder credibilidade com a distro.
E por fim encontrei o PiaF, na sua página inicial, vi algo que me agradou muito, pois bate 100% com a minha linha de pensamento “estamos comprometidos em lançar releases estáveis e não bleeding edge” Depois de passar um tempo pesquisando sobre a distro, observando a comunidade e depoimentos externos, percebi que valia a pena testar… De fato, a única coisa que eu posso reclamar é o fato de eles não terem o hudlite que era um produto muito interessante para as telefonistas, mas de resto a distribuição é muito estável e tendo me gerado pouquíssimos problemas.
Instalando o PiAF
Sem muito mistério, sem muito drama, botar o cd no drive iniciar com todas as opções default, ajustar as partições de acordo com o seu gosto e aguardar o primeiro reboot.
Neste momento o PiAF oferece 2 opções, baixar os arquivos da internet ou usar do próprio CD. Na versão 1.2 era apenas baixar da internet ou cd para “reseller”. Vale a pena seguir sempre o recomendado pelo setup, que seria baixar os arquivos da internet, neste meio tempo, vá buscar o seu primeiro café e aguarde…
Depois que ele faz todos os downloads e instala todos os programas/scripts, comece a fazer as atualizações, rode na respectiva ordem:
update-scripts
update-fixes
update-source (leia as próximas linhas ANTES de rodar este comando)
Observar que o piaf vai informar que o zaptel está rodando e que o sistema de telefonia ficara indisponível blá blá e precisará reinicializar o computador para desativar o zaptel. Após o reboot rode novamente o update-source.
I M P O R T A N T E:
NÃO atualize, o Kernel através do update-source nem permita que ele rode o yum update (obviamente também não rode estes comandos manualmente). Eu vi surgirem alguns problemas após estas atualizações, portanto tenho deixado elas de lado. A minha preocupação é manter o FreePBX e o Asterisk atualizados, não o sistema (estranho não? um dia explico o meu ponto de vista). Faça como quiser, o pbx é seu ![]()
Agora enquanto roda o update-source, busque mais um pouco de café e mantenha-se longe do teclado ![]()
Conforme recomendado pelo piaf, rode um novo update-scripts e em seguida update-fixes.
Trocando a senha do usuário maint
(Durante os updates do piaf, ele informa que foi descoberto um bug no sistema de autenticação do freepbx e desabilita o controle de usuários, a autenticação passa a ser feita pelo apache e voltamos a usar o usuário “maint”)
root@pbx:~ $ passwd-maint
-------------------------------------------
Set password for AMP web GUI and maint GUI
User: maint
-------------------------------------------
New password:
Re-type new password:
Updating password for user maint
Instalando os módulos
Ao invés de instalar apenas alguns módulos, eu recomendaria instalar todos por alguns motivos:
* Não altera o resultado final para um pbx de 100 a 150 ramais. (Desconsiderando o caso de Callcenters onde o uso do pbx e dos extensions é muito intenso)
* Frequentemente vejo colocarem “pbxizes” em redes isoladas ou localidades bizarras, sem acesso a internet, embaixo de escadas ou outros lugares nunca antes imaginados. Em alguns casos, pode acabar ficando difícil instalar um módulo em um pbx de produção, por isso sempre deixo todos os módulos instalados durante a implantação, se um dia precisar, “tá ali”.
* Para quem está aprendendo também é interessante, pois com o módulo instalado fica mais fácil de “fuçar”
Acesse o seu pbx através do endereço http://servidor/admin utilizando o usuário maint.
Vá em “Module Admin”
Check for updates online
Download all/ upgrade all
Process / Confirm
Irão surgir alguns erros de dependências, apenas clique em confirmar e aguarde a instalação de todos os pacotes. Repita todo o processo até que não reste mais nenhum pacote por instalar.
Instalando a placa TDM400 com 4 FXO
root@pbx:~ $ genzaptelconf
root@pbx:~ $ ztcfg -vvv
Zaptel Version: 1.4.12.1
Echo Canceller: MG2
Configuration
======================
Channel map:
Channel 01: FXS Kewlstart (Default) (Slaves: 01)
Channel 02: FXS Kewlstart (Default) (Slaves: 02)
nullChannel 04: FXS Kewlstart (Default) (Slaves: 04)
4 channels to configure.
Observação: Neste momento deve ter rolado uma pequena confusão para quem está iniciando agora com Asterisk; No zaptel.conf para módulos FXO, usa-se fxsks, aparecendo de forma invertida, já li uma explicação sobre isso, fazia muito sentido, mas honestamente, não lembro mais o motivo real, é porque é, e não importa muito. Se alguem lembrar, comenta ai! Este é o único ponto onde isso vai acontecer.
Agora edite o arquivo /etc/asterisk/zapata-channels.conf e separe os seus canais por grupos, exemplo de caso com duas linhas fixas e uma linha Cellfix:
Canais 1 e 2 no grupo 0 (ligando nas linhas fixas)
Canal 3 no grupo 1 (ligando no CellFix)
Canal 4 no grupo 2 (sem ligar em nada)
Salve o arquivo, conecte no asterisk e faça um reload da configuração.
root@pbx:~ $ asterisk -vvvr
Asterisk 1.4.21.2, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer markster@digium.com
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
== Parsing '/etc/asterisk/asterisk.conf': Found
Connected to Asterisk 1.4.21.2 currently running on pbx (pid = 3346)
Verbosity is at least 3
pbx*CLI> reload
...
pbx*CLI>
Verificando os canais da placa TDM:
pbx*CLI> zap show channels
Chan Extension Context Language MOH Interpret
pseudo default en default
1 from-pstn en default
2 from-pstn en default
3 from-pstn en default
4 from-pstn en default
pbx*CLI>
Ok, agora reinicialize seu PBX e verifique se tudo vai inicializar corretamente, zapata, asterisk, etc… Não havendo nenhuma surpresa após o reboot, a base do seu pbx está pronta! Agora basta configurar…
Configuração Básica:
Para termos um PBX básico operacional, precisamos do seguinte:
* Trunks
* Outbound routes
* Ramais configurados
* Inbound routes
* Music on Hold ?
* Desabilitando Features “perigosos”
* Pickup Groups
* Ajustes Finos
Configurando o Trunk:
Se clicar em Trunks, já vai haver um Trunk ZAP/g0 basta apenas adicionar o g1 (para o nosso Cellfix)
Add Zap Trunk em “Zap identifier” coloque g1 e clique em “Submit Changes”
Dialplan:
Antes de criarmos as rotas de saída, devemos pensar no nosso Dialplan, eu gosto de adotar o seguinte critério:
Ligações externas para a PSTN, sempre começam com Zero, ligações internas ou interligações com outras empresas do grupo, diretamente o número do ramal. Este por sua vez procuro manter sempre com 4 dígitos por questões de padronização, praticidade e facilidade na hora de montar um plano de numeração entre várias empresas. Exemplo:
Empresa A: Faixa de numeração 1100 até 1199
Empresa B: Faixa de numeração 1200 até 1399
Empresa C: Faixa de numeração 1400 até 1499
Assim podemos pensar da seguinte forma: Os dois primeiros dígitos são o “prefixo” da empresa e os dois últimos o número do ramal, ficando visualmente simples de entender.
Rotas de Saída (Outbound Routes):
Começamos deletando a rota 9_outside.
Agora criaremos uma rota de saída para cada tipo de ligação, basta clicar em Add Route e preencher os campos “Route Name” com o nome da rota, Dial Patterns e o Trunk Sequence.
O padrão que eu gosto de usar é o seguinte:
Route Name: Especiais
Dial Patterns:
0|1XX
0|0800XXXXX.
Trunk Sequence: (grupo de linha fixa)
1XX para policia, bombeiros, auxilio a lista, etc..
0|0800XXXXX. para números 0800 (observar que estes possuem tamanhos variados)
Route Name: Fixo_Local
Dial Patterns:
0|[2-6]XXXXXXX
Trunk Sequence: (grupo de linha fixa)
Route Name: Movel_Local
Dial Patterns:
0|[7-9]XXXXXXX
Trunk Sequence: (grupo cellfix)
Route Name: Fixo_DDD
Dial Patterns:
0|ZZ[2-6]XXXXXXX
0ZZ|ZZ[2-6]XXXXXXX
Trunk Sequence: (grupo de linha fixa)
Route Name: Movel_DDD
Dial Patterns:
0|ZZ[7-9]XXXXXXX
0ZZ|ZZ[7-9]XXXXXXX
Trunk Sequence: (grupo cellfix)
Route Name: Internacional
Dial Patterns:
0|00ZZXXXXX.
Trunk Sequence: (grupo de linha fixa)
Observar que no Dialplan, para as chamadas de longa distância, permitimos que o usuário disque sem a operadora (pode ser o padrão adotado pela empresa), mas caso o usuário seja teimoso e insista em usar operadora, também aceitamos, mas cortamos a operadora de forma transparente
Agora voltamos aos Trunks e montamos o nosso Dial Rules para os dois troncos:
XXXXXXXX
024+ZZXXXXXXXX
0800XX.
000ZZ|0024+XXXX.
1XX
Estas regras permitirão todas as chamadas configuradas nas Outbound Routes sendo que para as chamadas de DDD usaremos a operadora que nos forneça o melhor desconto ou pacote de ligações (usei o exemplo de 24)
Criação de Ramais (Extensions):
Agora precisamos criar os nossos ramais.
Vamos em “Add Extension” e depois Generic SIP Device
Os campos básicos (com exemplos) são:
User Extension: 1000
Display Name: Telefonista (Isto é legal pois se usar telefones IP ou softphones, o Display name aparecerá nas ligações internas, e também aparecerá nos relatórios de chamadas) Obs: Sempre uso APENAS caracteres alfa-numéricos, sem nenhum tipo de caracter especial como ç ~ + * ‘ é á, etc… Não sei qual impacto isto pode ter no sistema, portanto procuro evitar problemas
Secret: PARE! Coloque algo DECENTE, já existem vários tipos de bruteforce para asterisk (SIP principalmente) baseados em palavras de dicionário e coisas bobas como por exemplo Ext 1000 senha 1000. Um usuário malicioso interno ou externo, pode tranquilamente causar um grande prejuízo em um curto período de tempo, portanto, tome cuidado com este detalhe.
Clique em Submit Changes e adicione mais alguns extensions.
Rotas de entrada (Inbound routes):
Agora que já temos quase tudo pronto, devemos definir o que fazer com as chamadas recebidas. Vamos adicionar algo bem genérico, para isto, clique em Add Incoming route, pule todos os campos e vá direto para “Set Destination”. Marque Extensions e procure o ramal da Telefonista
clique em Submit e a sua rota de entrada está criada!
Musica de espera (Music On Hold)
Isto é básico? Sim, to de saco cheio de ligar para um PBX e ouvir sempre a mesma musica!
O Asterisk vem por default com 3 músicas pré instaladas, entretanto o FreePBX toca estas musicas sempre na mesma ordem. Mesmo que não façamos o upload de novas músicas, podíamos ao menos habilitar o random play né? Basta clicar em Enable Random Play e Submit! Simples não?
Desabilitando Features “Perigosos”
Alguns Features deveriam vir desativados por default pois podem causar transtornos e um certo perigo. Por segurança estes devem ser desabilitados. Se quiser habilitar estes features, crie contextos customizados ou procure maneiras seguras para a sua ativação.
Clique em Feature Codes e procure principalmente
* Chanspy (permite ouvir chamadas ativas a partir de qualquer telefone) Muito útil se bem usado, por exemplo: Um cliente meu tinha um helpdesk, e queria que o gerente do helpdesk tivesse a possibilidade de “ouvir” as chamadas ativas e “Sussurrar” (Whisper) apenas para o atendente, sem que o cliente escute. Desta forma ele podia ajudar seus funcionários durante uma ligação. O chanspy possui este feature (se customizado corretamente), mas você não gostaria que um funcionário qualquer escutasse uma chamada da diretoria apenas digitando um código…
* ZapBarge Semelhante ao chanspy mas ouve os canais das placas Zap.
* Gabcast (como instalamos o modulo e nao usaremos, desabilitamos)
* outros módulos que possam gerar confusão como Do not disturb, dictation, blacklist (dificilmente usado em um ambiente corporativo)
Aplicando as configurações:
O FreePBX não ativa as configurações no momento das alterações, evitando assim reloads desnecessários e que problemas apareçam entre uma configuração e outra.
Para aplicar as configurações clique no botão laranja que deve estar aparecendo no topo “Apply Configuration Changes” e confirme.
Ajustes Finos:
Agora faltam apenas pequenos detalhes para o nosso pbx ficar pronto. São eles:
No arquivo /etc/asterisk/zapata.conf
na parte [channels] adicionar:
busydetect=yes
busycount=4
Isto faz com que o asterisk “desconecte” uma linha quando esta ouvir o tom de “ocupado” (tú tú tú). No meu primeiro pbx fiquei quebrando cabeça quando as linhas ficavam penduradas por tempo indeterminado, este ajuste resolveu o problema
No arquivo /etc/asterisk/features_general_custom.conf podemos facilitar a vida de nossas amigas telefonistas..
transferdigittimeout => 5 ; tempo em segundos para esperar entre os digitos quando estiver transferindo uma chamada
courtesytone = beep
xfersound = beep ; beep que indica que uma transferência foi concluída
xferfailsound = beeperr ; beep de erro que indica que uma transferência não foi concluída
featuredigittimeout = 2000 ; Tempo máximo em ms para ativar um feature. o default é 500ms e NORMALMENTE as telefonistas tem problemas
; para digitar *2 em menos de 500ms, subindo isso para 1500 ou 2000 resolve o problema.
Instalando prompts de voz em português
A Intelbras http://www.intelbras.com.br mantém uma distribuição de SoftPBX baseada em Asterisk, esta chama-se DISC-OS http://www.disc-os.org e eles gentilmente cederam os prompts de voz em português (pt_BR) para a comunidade, através da licença Creative Commons http://creativecommons.org/licenses/by-nc-nd/2.5/br/
Vá até o site do DISC-OS http://www.disc-os.org e na seção downloads, procure o pacote Disc-OS Sounds.
Faça o download deste pacote dentro da pasta /var/lib/asterisk.
Nesta mesma pasta descomprima o arquivo:
# tar xvfz Disc-OS-Sounds-1.0-pt_BR.tar.gz
E ajuste o proprietário da pasta sounds recursivamente.
# chown asterisk:asterisk sounds -R
Edite os arquivos:
/etc/asterisk/sip_general_custom.conf
/etc/asterisk/iax_general_custom.conf
/etc/asterisk/zapata.conf
Altere o parâmetro language para pt_BR. Exemplo:
# vi /etc/asterisk/sip_general_custom.conf
language=pt_BR
Realize um reload do asterisk para que as novas configurações entrem em vigor.
# asterisk -rx reload
Pronto, agora o seu PBX Asterisk já fala Brasileirês (pt_BR)!
Ajustando o Timezone do php.ini
Não sei quanto a tua instalação, mas o meu freepbx sempre fica com o horário incorreto. Clique em Time groups e verifique se o tempo mostrado está correto, se estiver incorreto, você deve ajustar o /etc/php.ini
Procure o parâmetro date.timezone e coloque a sua timezone correta ex:
date.timezone = America/Sao_paulo
Lista com todos os Timezones
http://www.php.net/manual/en/timezones.php
Reinicialize o httpd e recarregue a página para verificar o novo horário.
Pickup groups
Já ia esquecendo deste detalhe…. Se um telefone estiver tocando na mesa ao lado, você pode digitar *8 no seu telefone e capturar a ligação, mas para isto é preciso realizar um pequeno ajuste. Tentando evitar confusões em ambientes maiores de telefonia separamos os telefones por grupo, evitando assim, coisas do tipo, o Adão do almox capturando por acidente uma chamada para o refeitório enquanto tentava atender o telefone do seu colega de serviço que foi ao banheiro para concretizar o número 2.
Geralmente eu divido os pickup groups por salas, todos os telefones de uma sala ficam no mesmo grupo. Basta editar o extension novamente e adicionar um número no campo Pickup Group, aproveite para adicionar o mesmo número no Callgroup, um dia será útil.
Observação: Alguem me reportou a muito tempo atrás que valores altos no pickupgroup apresentavam problemas as vezes, acho que isso é meio que lenda urbana mas nunca testei efetivamente, até porquê eu começo do grupo 1 em diante, na real, o número em si não afeta em nada nem aparece, é apenas para o asterisk saber que o telefone 1001 pode capturar chamadas do 1029.
e agora?
Depois destes passos, você já deve ter em mãos um servidor básico de telefonia pronto para entrar em produção com um funcionamento básico. Mas é claro que não vai parar por aí, ainda tens muito o que fuçar e muitos recursos a implementar. A minha dica é foco no que é mais convencional, como IVR (URA – atendimento automático), anúncios, filas (queues), grupos de chamadas (ring groups – procuro usar sempre 3 dígitos no range de 600 a 699), condições de tempo (time conditions – para ter atendimento diferenciado durante o dia e durante a noite por exemplo.), VoiceMail, Conferencias (estes eu gosto de usar 5 dígitos começando em 8 ex 80001 80002 sem conflitar com o dial plan), PIN sets, Call Parking, Callback e DISA.
Outros itens importantes para verificar são:
* Interligação entre 2 ou mais servidores de telefonia (recomendo IAX2 e não SIP)
* Uso de provedores VoIP para redução de custos em interurbanos
Recomendo aprender a usar e implementar BEM estes recursos que citei acima, pois são os itens mais úteis e mais pedidos por clientes.
Também é muito importante sentir-se a vontade com comandos básicos e o debug/verbose do console do asterisk. Isto vai ajudar e muito na solução de problemas.
Apenas para finalizar, eu sempre blasfemei contra o FreePBX quando eu precisava criar um contexto customizado direto extensions_custom.conf. Pior é que esta é uma coisa bem normal de um cliente pedir, e na maioria esmagadora das migrações que eu fiz, foi o único feature que o FreePBX não atendeu. Entretanto encontrei um módulo que gerencia muito bem os contextos customizados praticamente acabando com a necessidade de editar arquivos que ficam difíceis de manter (pois a cada mudança nas outbounds routes, os contextos customizados que usavam estas rotas, quebravam).
Este módulo está disponível aqui: http://www.freepbx.org/trac/ticket/1447
Mas quando que é preciso criar um contexto custom? O motivo mais frequente é quando o cliente pede para ter alguns telefones que não podem realizar chamadas externas (exemplo o ramal da portaria, vigilância, etc..) ou telefones que podem realizar apenas chamadas para números locais fixos. Este tipo de solicitação é bem frequente.
Leitura recomendada: http://dumbme.mbit.com.au/piaf/piaf_without_tears.pdf
Novamente espero ter ajudado de alguma forma.
Sugestões, dúvidas ou xingamentos, basta comentar.
Comentários