Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Groupware Server con gruppo-ufficio, Postfix, Dovecot e SpamAssassin su Debian Lenny (5.0)

Introduzione

In questa guida spiegherò come è possibile impostare un server groupware utilizzando:

  1. Il sistema operativo Debian Linux (http://www.debian.org)
  2. Gruppo-Ufficio per la gestione delle cassette postali e funzioni groupware come posta elettronica, calendari condivisi, condivisione ecc (http://www.group-office.com del file)
  3. Postfix con gli account virtuali in MySQL. (http://www.postfix.org)
  4. Dovecot IMAP (http://www.dovecot.org)
  5. Filtro antispam SpamAssassin (http://spamassassin.apache.org)
  6. Uno script perl di vacanza che gestirà out-of-office risposte

 

Impostare l’installazione di Debian

Scarica il programma di installazione di rete Debian 5 e installare il sistema base. Basta seguire le istruzioni di installazione di Debian e installare come piccolo software come possibile. È possibile ottenere Debian http://www.debian.org.

Quando hai Debian fino e in esecuzione, eseguire il seguente comando per installare tutti i pacchetti necessari:

apt-get install php5 php5-mysql php5-imap php5-gd php5-cli php5-curl apache2 postfix postfix-mysql mysql-server mysql-client phpmyadmin subversion dovecot-imapd libemail-valid-perl libmail-sendmail-perl spamassassin spamc zip tnef libwbxml2-utils sudo openssl pyzor razor rsync mailutils libmime-charset-perl libmime-encwords-perl

 

Impostare la pagina di gruppo-ufficio

Ora che tutto il software necessario viene installato noi possiamo installare Group-ufficio. Ottenere la versione Community o Professional da: http://www.group-office.com. È necessario almeno versione 3.01-stabile-2.

Scompattare l’archivio tar:

# cd/var/www
# tar zxf groupoffice-com-3.01-stabile-2.tar.gz
# mv groupoffice-3.01-stabile-2 groupoffice

Creare una directory per i file di utente gruppo-Office protetti:

# mkdir/home/groupoffice
# chown www-dati: www-dati/home/groupoffice

Creare una directory per i file pubblici del gruppo-Office:

# mkdir /var/www/local
# chown www-dati: www-dati /var/www/local

È possibile scegliere 3 diverse località per il file config. php che è utilizzato da gruppo-Office:

  1. All’interno della directory di origine (/var/www/groupoffice/config.php di gruppo-ufficio)
  2. Un livello superiore quindi i Apache documento principale (/var/config.php)
  3. In /etc/groupoffice / [Apache server_name]/config.php

Si consiglia di mantenere il file config. php fuori della directory di origine. In questo modo è possibile aggiornare più facile dopo. Noi faremo apache proprietario temporaneamente affinché lo script di installazione accessibile in scrittura.

# touch /var/config.php
# chown www-dati /var/config.php

Ora avviare http://your.server/groupoffice/install/ e seguire le istruzioni sullo schermo. Scegliere “Crea nuovo database” e utilizzare l’utente root per creare un nuovo database chiamato “groupoffice”.
Quando hai completato l’installazione è necessario modificare il ownershop del file config. php.

# chown root /var/config.php

Modificare il file config. php Group-ufficio e aggiungere:

$config['postfixadmin_autoreply_domain']="autoreply.example.com";

Assicurarsi che il dominio corrisponda con il trasporto di vacanza di postfix che si aggiungerà più tardi.

Ora gruppo-Office è installato e funzionante!

Configurare Postfix

Postfix deve essere configurato per utilizzare MySQL:

Le seguenti variabili in main.cf. Iniziare con alcune informazioni di base di riempimento:

# postconf -e ‘ myhostname = mx-1.example.com’
# postconf -e ‘ smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)’
# postconf -e ‘ biff = no’
# postconf -e ‘ append_dot_mydomain = no’
# postconf -e ‘ myorigin = example.com’
# postconf -e ‘ mydestination = localhost, $myhostname, locahost.localdomain’
# postconf -e ‘ mynetworks = 127.0.0.0/8’
# postconf -e ‘ recipient_delimiter = +’
# postconf -e ‘ inet_interfaces = all’
# postconf -e ‘ proxy_read_maps = $local_recipient_maps $mydestination \
$virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \
$virtual_mailbox_domains $relay_recipient_maps $relay_domains \
$canonical_maps $sender_canonical_maps $recipient_canonical_maps \
$relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps’ 

# postconf -e ‘ smtpd_recipient_restrictions = \
permit_mynetworks, \
reject_unauth_destination, \
zen.spamhaus.org reject_rbl_client, \
BL.spamcop.NET reject_rbl_client, \
permesso di ‘
# postconf -e ‘ message_size_limit = 52428800’
# postconf -e ‘ mailbox_size_limit = 0’

Ora di configurarlo per utenti virtuali in MySQL:

# postconf -e ‘ virtual_alias_domains =’
# postconf -e ‘ virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf’
# postconf -e ‘ virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf’
# postconf -e ‘ virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf’
# postconf -e ‘ virtual_mailbox_base = /vmail’
# postconf -e ‘ virtual_minimum_uid = 150’
# postconf -e ‘ virtual_uid_maps = statico: 150’
# postconf -e ‘ virtual_gid_maps = statico: 8’
# postconf -e ‘ virtual_create_maildirsize = yes’
# postconf -e ‘ virtual_mailbox_extended = yes’
# postconf -e ‘ virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf’
# postconf -e ‘ virtual_mailbox_limit_override = yes’
# postconf -e ‘ virtual_maildir_limit_message = “l’utente che si sta tentando di raggiungere ha superato la loro quota.” ‘
# postconf -e ‘ virtual_overquota_bounce = yes’
# postconf -e ‘ transport_maps = proxy:mysql:/etc/postfix/mysql_virtual_transports.cf’
# postconf -e ‘ relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf’

Useremo Dovecot consegna:

# postconf -e ‘ virtual_transport = dovecot’
# postconf -e ‘ dovecot_destination_recipient_limit = 1’
# postconf -e ‘ transport_maps = hash: / etc/postfix/trasporto ‘
# postconf -e ‘ smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permesso ‘
# postconf -e ‘ vacation_destination_recipient_limit = 1’

Creare il db di trasporto:

cd/etc/postfix n.
trasporto postmap n.

Postfix è stato installato con supporto per MySQL, ma che non significa che sa già come utilizzare i nostri database. Deve essere fornito con varie informazioni di query SQL per ogni tipo di tabella nel nostro database. Queste informazioni vengono memorizzate nei file MySQL definiti nel file main.cf:

/etc/postfix/mysql_virtual_alias_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_aliases
select_field = goto
where_field = address
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

/etc/postfix/mysql_virtual_mailbox_limit_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = quota
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_mailbox_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = maildir
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_transports.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = transport
where_field = domain
additional_conditions = and active = '1'

/etc/postfix/mysql_relay_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1' and active = '1'

Aggiungere l’utente di posta:

# useradd – r -u – 150g posta -d /var/vmail -s /sbin/nologin – c “Cassetta postale virtuale” vmail
# mkdir /vmail
# chmod 770 /vmail/
# chown vmail:mail /vmail/

Modificare Postfix master.cf:

Modificare la prima riga con il servizio smtp:

smtp      inet  n       -       -       -       -       smtpd
	-o content_filter=spamassassin

Dopo quella riga aggiungere:

spamassassin unix -     n       n       -       -       pipe
	user=spamd argv=/usr/bin/spamc -f -e
	/usr/sbin/sendmail -oi -f ${sender} ${recipient}
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

Le interfacce a non-Postfix software aggiungere:

vacation    unix  -       n       n       -       -       pipe
  flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}

Impostare SpamAssasin

# groupadd -g 5001 spamd
# useradd -u – 5001G spamd -s/sbin/nologin -d /var/lib/spamassassin spamd
# mkdir /var/lib/spamassassin
# chown spamd:spamd /var/lib/spamassassin

Per avviare il server in /etc/default/spamassassin insieme:

ENABLED=1

È possibile modificare SpamAssassin in /etc/spamassassin/local.cf.

 

Impostare la vacanza

Lo script di vacanza è uno script Perl che gestirà automtic risposte quando un utente è fuori sede.

Copiare scripts/vacation.pl in /var/spool/vacation/vacation.pl e modificare le proprietà di connessione di database.

# mkdir /var/spool/vacation
# useradd – r -d /var/spool/vmail -s/sbin/nologin – c “virtuale” vacanze
# chown -R vacanza vacanze: / var/spool/vacanze /
# chmod 700/var/spool/vacanze /
# chmod 750 /var/spool/vacation/vacation.pl
# touch /var/log/vacation.log /var/log/vacation-debug.log
# chown vacanza vacanze: / var/log/vacanza *

Creare /etc/postfix/transportAssicurarsi che il dominio corrisponda il postfixadmin_autoreply_domain che è configurato nel file config. php Group-ufficio prima.

autoreply.example.com vacation:

 

Impostare la pagina di Dovecot

Dovecot è un demone IMAP veloce e può anche controllare la quota utente e filtrare lo Spam nella cartella spam. Cambiare / aggiungere questi valori a /etc/dovecot.conf:

#Enable IMAP and IMAPS
protocols = imap imaps 
#Listen on all IP addresses
listen = *
#configure the location of our virtual mailboxes
mail_location = maildir:/vmail/%d/%u
# Group to enable temporarily for privileged operations. Currently this is
# used only for creating mbox dotlock files when creation fails for INBOX.
# Typically this is set to "mail" to give access to /var/mail.
#mail_privileged_group =
mail_privileged_group = mail
# Grant access to these supplementary groups for mail processes. Typically
# these are used to set up access to shared mailboxes. Note that it may be
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
mail_access_groups = mail
# Valid UID range for users, defaults to 500 and above. This is mostly
# to make sure that users can't log in as daemons or other system users.
# Note that denying root logins is hardcoded to dovecot binary and can't
# be done even if first_valid_uid is set to 0.
first_valid_uid = 150
last_valid_uid = 150

Inside the protocol imap { } section change:
mail_plugins = quota imap_quota
Inside the protocol lda { } section change:
postmaster_address = postmaster@intermesh.nl
mail_plugin_dir = /usr/lib/dovecot/modules/lda
mail_plugins = cmusieve quota
#the globalsieverc script will filter spam messages to the Spam folder 
global_script_path = /var/vmail/globalsieverc
Inside auth default { } section change:
auth default {
 mechanisms = plain
 passdb sql {
	 args = /etc/dovecot/dovecot-sql.conf
 }
 userdb sql {
	 args = /etc/dovecot/dovecot-sql.conf
 }
 user = nobody
 socket listen {
	 master {
	 path = /var/run/dovecot/auth-master
	 mode = 0660
	 user = vmail
	 group = mail
 }
 	client {
	 path = /var/spool/postfix/private/auth
	 mode = 0660
	 user = postfix
	 group = postfix
	}
}
plugin {
  quota = maildir:storage=512000
}

Anche commento fuori la sezione di pam passdb o si otterrà una connessione molto lenta di Dovecot!

/etc/postfix/dovecot-SQL.conf:

driver = mysql
connect = host=localhost dbname=groupoffice user=vmail_user password=vmail_user_pass
default_pass_scheme = PLAIN-MD5
user_query = SELECT '/vmail/%d/%n' AS home, 'maildir:/vmail/%d/%n' AS mail, 150 AS uid, 8 AS gid, CONCAT('maildir:storage=', quota) AS quota FROM pa_mailboxes WHERE username = '%u' AND active = '1'
password_query = SELECT username AS user, password, '/vmail/%d/%n' AS userdb_home, 'maildir:/vmail/%d/%n' AS userdb_mail, 150 AS userdb_uid, 8 AS userdb_gid FROM pa_mailboxes WHERE username = '%u' AND active = '1'

Creare script globalsieverc :

# mkdir/var/vmail /

Modificare /var/vmail/globalsieverc:

require "fileinto";
if exists "X-Spam-Flag" {
  fileinto "Spam";
}

Impostare le autorizzazioni corrette:

# chown -R di vmail:mail/var/vmail


Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp