Configuração · 6 min read · Feb 14, 2026

Configuração do Servidor de Email Com Exim, MySQL, Cyrus-Imapd, Horde Webmail No Centos 5.1 - Página 2

Configuração

Configurar Apache

  • Ative o hospedagem virtual e crie o virtualhost padrão, edite /etc/httpd/conf/httpd.conf e adicione no final NameVirtualHost *:80 ServerAdmin [email protected]
  • Crie o virtual host para o horde webmail adicione isso abaixo do acima Servername mail.home.topdog-software.com DocumentRoot /usr/share/horde ErrorLog logs/mail-error_log CustomLog logs/mail-access_log common
  • Ative as configurações de segurança do horde edite o arquivo /etc/httpd/conf.d/horde.conf e defina como abaixo #Alias /horde /usr/share/horde Options +FollowSymLinks php_admin_flag safe_mode off php_admin_flag magic_quotes_runtime off php_flag session.use_trans_sid off php_flag session.auto_start off php_admin_flag file_uploads on #php_admin_flag allow_url_fopen on php_value post_max_size 20M php_value upload_max_filesize 10M php_admin_value open_basedir "/usr/share/horde:/usr/share/horde/config:/usr/share/pear:/tmp" php_admin_flag register_globals off Order Deny,Allow Deny from all Order Deny,Allow Deny from all
  • Aumente o limite de memória do PHP edite /etc/php.ini e mude para abaixo memory_limit = 64M
  • Ative o horde sob SSL edite /etc/httpd/conf.d/ssl.conf e adicione o seguinte ao virtualhost padrão entre as tags default:443> Servername mail.home.topdog-software.com:443 DocumentRoot /usr/share/horde

Configurar Exim

  • Mude o MTA para exim
 system-switch-mail (selecione exim)

Verificações Anti-vírus / Sanesecurity

  • Configure o Exim (/etc/exim/exim.conf) para usar clamav para escanear emails recebidos e rejeitar emails infectados por vírus e spam de imagem e pdf no tempo smtp
av_scanner = clamd:/var/run/clamav/clamd.sock

RBL’s

  • Configure os RBL’s sob acl_check_rcpt: drop message = REJECTED porque $sender_host_address está em uma lista negra spamhaus.org dnslists = zen.spamhaus.org drop message = REJECTED porque $sender_host_address está em uma lista negra em $dnslist_domain\n$dnslist_text dnslists = bl.spamcop.net drop message = REJECTED porque $sender_host_address está em uma lista negra em $dnslist_domain\n$dnslist_text dnslists = dnsbl.sorbs.net

Anti Spam

  • Se você quiser rejeitar mensagens de servidores sem dns reverso adicione isso sob acl_check_rcpt:, ele tem uma lista de exceções onde você pode adicionar domínios onde a acl não deve ser aplicada e tenta entregar uma mensagem de teste para o endereço de envio para verificar se o remetente é válido. drop message = REJECTED - Não aceitamos mensagens de hosts sem DNS reverso log_message = Sem DNS reverso domains = ! lsearch;/etc/exim/checks_exempt_hosts !verify = reverse_host_lookup !verify = sender/callout=2m,defer_ok !condition = ${if eq{$sender_verify_failure}{} }
  • Para rejeitar mensagens de clientes que não fornecem um HELO/EHLO adicione isso a acl_check_rcpt: drop message = REFUSED - sem saudação HELO/EHLO log_message = host remoto não apresentou saudação condition = ${if def:sender_helo_name {false}{true}}
  • Você pode limitar a taxa de conexões ao seu servidor também adicione isso a acl_check_connect: para fazer isso (leia a documentação do exim sobre os parâmetros se você quiser ajustá-lo para o seu site) deny ratelimit = 250 / 15m / strict message = Você só pode enviar $sender_rate por $sender_rate_period log_message = TAXA: $sender_rate/$sender_rate_period (máx $sender_rate_limit) accept
  • Pare bots de spam desonestos de destruir sua máquina smtp_accept_max_nonmail = 30 smtp_max_unknown_commands = 1
  • Não anuncie pipelining pipelining_advertise_hosts =
  • Ative as verificações do Spamassassin spamd_address = /var/run/spamassassin/spamd.sock
  • Rejeite todas as mensagens com pontuação acima de 6 no tempo smtp. (acl_check_data) accept condition = ${if >={$message_size}{100000} {1}} add_header = X-Spam-Note: SpamAssassin execução ignorada devido ao tamanho da mensagem warn spam = nobody/defer_ok add_header = X-Spam-Flag: SIM accept condition = ${if !def:spam_score_int {1}} add_header = X-Spam-Note: Falha na invocação do SpamAssassin warn add_header = X-Spam-Score: $spam_score ($spam_bar)\n\# X-Spam-Report: $spam_report drop condition = ${if >{$spam_score_int}{60} {1}} message = Sua mensagem marcou $spam_score pontos do SpamAssassin. O relatório segue:\n\$spam_report

Roteamento de Email

  • Habilite o acesso ao banco de dados Mysql hide mysql_servers = localhost/horde/horde/hordepassword
  • Modifique o roteador de entrega local para entregar ao cyrus, mas verifique o endereço de email do usuário antes da entrega (na seção de roteadores do exim.conf) localuser: driver = accept local_parts = ${lookup mysql {SELECT REPLACE(user_uid,'${quote_mysql:@$domain}','') \ as user FROM horde_users WHERE user_uid='${quote_mysql:$local_part@$domain}'}{$value}} transport = local_delivery cannot_route_message = Usuário desconhecido
  • Crie um transporte para entregar ao cyrus via socket lmtp local_delivery: driver = lmtp socket = /var/lib/imap/socket/lmtp batch_max = 50 user = cyrus

Autenticação SMTP

  • Adicione o seguinte à seção de autenticação de /etc/exim/exim.conf plain: driver = plaintext public_name = PLAIN server_prompts = : server_set_id = $2 server_condition = ${if saslauthd{{$2}{$3}{pop}}{1}{0}} server_advertise_condition = true login: driver = plaintext public_name = LOGIN server_prompts = "Nome de usuário:: : Senha::" server_condition = ${if saslauthd{{$1}{$2}{pop}}{1}{0}} server_set_id = $1 server_advertise_condition = true

Exemplo completo de configuração

Baixe o arquivo de configuração completo aqui.

Configurar Mysql

  • Desative a rede TCP edite /etc/my.cnf e adicione o seguinte na seção mysqld skip-networking
  • Defina a senha do root /usr/bin/mysqladmin -u root password ‘nova-senha’
    /usr/bin/mysqladmin -u root -h seu_nome_de_host password ‘nova-senha’ -p

Configurar Horde

  • Edite o arquivo sql e mude a senha mysql para o usuário horde cp /usr/share/horde/scripts/sql/create.mysql.sql .
    vi create.mysql.sql REPLACE INTO user (host, user, password) VALUES ( 'localhost', 'horde', -- IMPORTANTE: Mude esta senha! PASSWORD('hordepassword') );
  • Crie o usuário e preencha o banco de dados horde mysql -p < create.mysql.sql
  • Crie as tabelas para turba (Catálogo de endereços) mysql -p horde < /usr/share/horde/turba/scripts/sql/turba_objects.mysql.sql
  • Crie as tabelas para kronolith (calendário) mysql -p horde < /usr/share/horde/kronolith/scripts/sql/kronolith.mysql.sql

Configuração do Horde

  • Crie a configuração base do horde /usr/share/horde/config/conf.php
  • Defina as preferências do horde para tornar o webmail o aplicativo padrão ao fazer login. Edite o arquivo /usr/share/horde/config/prefs.php e modifique $prefs[‘initial_application’] para ficar como abaixo ``` $_prefs[‘initial_application’] = array( ‘value’ => ‘imp’, ‘locked’ => true, ‘shared’ => true, ‘type’ => ‘select’, ‘desc’ => sprintf((“Qual aplicativo deve %s exibir após o login?”), $GLOBALS[‘registry’]->get(‘name’)) ); ```
  • Faça o horde funcionar a partir do diretório raiz padrão dos servidores web, edite /usr/share/horde/config/registry.php e modifique $this?applications[‘horde’] como abaixo $this->applications['horde'] = array( 'fileroot' => dirname(__FILE__) . '/..', 'webroot' => '', 'initial_page' => 'login.php', 'name' => _("Horde"), 'status' => 'active', 'templates' => dirname(__FILE__) . '/../templates', 'provides' => 'horde' );
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.