Configurazione Server · 6 min read · Feb 14, 2026

Configurazione del Server di Posta con Exim, MySQL, Cyrus-Imapd, Horde Webmail su Centos 5.1 - Pagina 2

Configurazione

Configura Apache

  • Abilita l’hosting virtuale e crea il virtualhost predefinito, modifica /etc/httpd/conf/httpd.conf e aggiungi alla fine NameVirtualHost *:80 ServerAdmin [email protected]
  • Crea il virtual host per horde webmail aggiungi questo sotto il precedente Servername mail.home.topdog-software.com DocumentRoot /usr/share/horde ErrorLog logs/mail-error_log CustomLog logs/mail-access_log common
  • Abilita le impostazioni di sicurezza di horde modifica il file /etc/httpd/conf.d/horde.conf e imposta come di seguito #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
  • Aumenta il limite di memoria PHP modifica /etc/php.ini e cambia in basso memory_limit = 64M
  • Abilita horde sotto SSL modifica /etc/httpd/conf.d/ssl.conf e aggiungi quanto segue al virtualhost predefinito tra i tag default:443> Servername mail.home.topdog-software.com:443 DocumentRoot /usr/share/horde

Configura Exim

  • Cambia l’MTA in exim
 system-switch-mail (seleziona exim)

Controlli Anti-virus / Sanesecurity

  • Configura Exim (/etc/exim/exim.conf) per utilizzare clamav per scansionare la posta in arrivo e rifiutare le email infette da virus e spam di immagini e pdf al momento smtp
av_scanner = clamd:/var/run/clamav/clamd.sock

RBL’s

  • Configura le RBL’s sotto acl_check_rcpt: drop message = REJECTED because $sender_host_address is in a black list spamhaus.org dnslists = zen.spamhaus.org drop message = REJECTED because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text dnslists = bl.spamcop.net drop message = REJECTED because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text dnslists = dnsbl.sorbs.net

Anti Spam

  • Se vuoi rifiutare messaggi da server senza dns inverso aggiungi questo sotto acl_check_rcpt:, ha una lista di eccezioni a cui puoi aggiungere domini dove l’acl non dovrebbe essere applicato e prova a consegnare un messaggio di prova all’indirizzo di invio per verificare se il mittente è valido. drop message = REJECTED - We don't accept messages from hosts without reverse DNS log_message = No reverse DNS domains = ! lsearch;/etc/exim/checks_exempt_hosts !verify = reverse_host_lookup !verify = sender/callout=2m,defer_ok !condition = ${if eq{$sender_verify_failure}{} }
  • Per rifiutare messaggi da client che non forniscono un saluto HELO/EHLO aggiungi questo a acl_check_rcpt: drop message = REFUSED - no HELO/EHLO greeting log_message = remote host did not present greeting condition = ${if def:sender_helo_name {false}{true}}
  • Puoi limitare il numero di connessioni al tuo server aggiungendo questo a acl_check_connect: per farlo (leggi la documentazione di exim sui parametri se vuoi ottimizzarlo per il tuo sito) deny ratelimit = 250 / 15m / strict message = You can only send $sender_rate per $sender_rate_period log_message = RATE: $sender_rate/$sender_rate_period (max $sender_rate_limit) accept
  • Ferma i bot di spam ribelli dal rovinare la tua macchina smtp_accept_max_nonmail = 30 smtp_max_unknown_commands = 1
  • Non pubblicizzare il pipelining pipelining_advertise_hosts =
  • Abilita i controlli di Spamassassin spamd_address = /var/run/spamassassin/spamd.sock
  • Rifiuta tutti i messaggi con punteggio superiore a 6 al momento smtp. (acl_check_data) accept condition = ${if >={$message_size}{100000} {1}} add_header = X-Spam-Note: SpamAssassin run bypassed due to message size warn spam = nobody/defer_ok add_header = X-Spam-Flag: YES accept condition = ${if !def:spam_score_int {1}} add_header = X-Spam-Note: SpamAssassin invocation failed 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 = Your message scored $spam_score SpamAssassin point. Report follows:\n\ $spam_report

Routing della posta

  • Abilita l’accesso al database Mysql hide mysql_servers = localhost/horde/horde/hordepassword
  • Modifica il router di consegna locale per consegnare a cyrus ma verifica l’indirizzo email dell’utente prima della consegna (nella sezione routers di 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 = Unknown user
  • Crea un trasporto per consegnare a cyrus tramite socket lmtp local_delivery: driver = lmtp socket = /var/lib/imap/socket/lmtp batch_max = 50 user = cyrus

Autenticazione SMTP

  • Aggiungi quanto segue alla sezione di autenticazione di /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 = "Username:: : Password::" server_condition = ${if saslauthd{{$1}{$2}{pop}}{1}{0}} server_set_id = $1 server_advertise_condition = true

Esempio completo di configurazione

Scarica il file di configurazione completo qui.

Configura Mysql

  • Disabilita il networking TCP modifica /etc/my.cnf e il seguente nella sezione mysqld skip-networking
  • Imposta la password di root /usr/bin/mysqladmin -u root password ‘new-password’
    /usr/bin/mysqladmin -u root -h your_host_name password ‘new-password’ -p

Configura Horde

  • Modifica il file sql e cambia la password mysql per l’utente horde cp /usr/share/horde/scripts/sql/create.mysql.sql .
    vi create.mysql.sql REPLACE INTO user (host, user, password) VALUES ( 'localhost', 'horde', -- IMPORTANTE: Cambia questa password! PASSWORD('hordepassword') );
  • Crea l’utente e popola il database horde mysql -p < create.mysql.sql
  • Crea le tabelle per turba (Rubrica) mysql -p horde < /usr/share/horde/turba/scripts/sql/turba_objects.mysql.sql
  • Crea le tabelle per kronolith (calendario) mysql -p horde < /usr/share/horde/kronolith/scripts/sql/kronolith.mysql.sql

Configurazione di Horde

  • Crea la configurazione di base di horde /usr/share/horde/config/conf.php
  • Imposta le preferenze di horde per rendere il web mail l’applicazione predefinita all’accesso. Modifica il file /usr/share/horde/config/prefs.php e modifica $prefs[‘initial_application’] per apparire come di seguito ``` $_prefs[‘initial_application’] = array( ‘value’ => ‘imp’, ‘locked’ => true, ‘shared’ => true, ‘type’ => ‘select’, ‘desc’ => sprintf((“Quale applicazione dovrebbe %s visualizzare dopo il login?”), $GLOBALS[‘registry’]->get(‘name’)) ); ```
  • Fai funzionare horde dall’interno della root predefinita dei server web, modifica /usr/share/horde/config/registry.php e modifica $this?applications[‘horde’] come di seguito $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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.