3 581
contributi
(rimosso stub) |
|||
(32 versioni intermedie di un altro utente non mostrate) | |||
Riga 23: | Riga 23: | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
# SoGo Repository | # SoGo OpenChange Repository | ||
deb http://inverse.ca/debian wheezy wheezy | deb http://inverse.ca/debian wheezy wheezy | ||
deb-src http://inverse.ca/debian wheezy wheezy | deb-src http://inverse.ca/debian wheezy wheezy | ||
Riga 32: | Riga 32: | ||
# apt-get update | # apt-get update | ||
</pre> | </pre> | ||
== Installazione di OpenChange == | |||
Possiamo ora installare OpenChange. OpenChange fornisce un layer MAPI per permettere ai client Microsoft Outlook 2003/2007/2010/2013 di connettersi a un server Groupware SoGo utilizzando direttamente il protocollo proprietario Exchange. Questo permette di evitare costi aggiuntivi per l'acquisto di un connettore MAPI di terze parti. Se nella nostra organizzazione non sono presenti client Outlook possiamo saltare questo capitolo. | |||
<br/> | |||
Installiamo quindi OpenChange: | |||
<pre> | |||
# apt-get install openchangeserver openchangeproxy openchange-ocsmanager openchange-rpcproxy | |||
</pre> | |||
Quindi effettuiamo il ''provisioning'' di Samba4 con lo schema di OpenChange: | |||
<pre> | |||
# openchange_provision | |||
</pre> | |||
Creiamo il database per OpenChange: | |||
<pre> | |||
# openchange_provision --openchangedb | |||
</pre> | |||
Infine abilitiamo in Samba il protocollo MAPI: | |||
<pre> | |||
# nano /etc/samba/smb.conf | |||
</pre> | |||
<pre> | |||
# Abilito MAPI | |||
dcerpc endpoint servers = +epmapper, +mapiproxy | |||
dcerpc_mapiproxy:server = true | |||
dcerpc_mapiproxy:interfaces = exchange_emsmdb, exchange_nsp, exchange_ds_rfr | |||
</pre> | |||
== Installazione di SoGo == | |||
Installiamo i pacchetti necessari: | |||
<pre> | |||
# apt-get install sogo sope4.9-gdl1-mysql mysql-server sogo-activesync | |||
</pre> | |||
Se abbiamo installato OpenChange, occorre installare anche il connettore per SoGo: | |||
<pre> | |||
# apt-get install sogo-openchange | |||
</pre> | |||
Creiamo un database MySQL per SoGo: | |||
<pre> | |||
# mysql -uroot -p | |||
mysql> create database sogo; | |||
mysql> create user 'sogo'@'localhost' identified by 'Password'; | |||
mysql> grant all privileges on sogo.* to 'sogo'@'localhost'; | |||
mysql> quit; | |||
</pre> | |||
Sostituiamo il file di configurazione di SoGo con il seguente: | |||
<pre> | |||
# cp /etc/sogo/sogo.conf /etc/sogo/sogo.conf.old | |||
# cat /dev/null > /etc/sogo/sogo.conf | |||
# nano /etc/sogo/sogo.conf | |||
</pre> | |||
'''Attenzione''': all'interno del file di configurazione vanno inserite le password corrette per l'utente MySQL ''sogo'' e per l'utente ''Administrator'' di Samba. | |||
<pre> | |||
{ | |||
/* ********************* Main SOGo configuration file ********************** | |||
* * | |||
* Since the content of this file is a dictionary in OpenStep plist format, * | |||
* the curly braces enclosing the body of the configuration are mandatory. * | |||
* See the Installation Guide for details on the format. * | |||
* * | |||
* C and C++ style comments are supported. * | |||
* * | |||
* This example configuration contains only a subset of all available * | |||
* configuration parameters. Please see the installation guide more details. * | |||
* * | |||
* ~sogo/GNUstep/Defaults/.GNUstepDefaults has precedence over this file, * | |||
* make sure to move it away to avoid unwanted parameter overrides. * | |||
* * | |||
* **************************************************************************/ | |||
/* Database configuration (mysql:// or postgresql://) */ | |||
SOGoProfileURL = "mysql://sogo:Passw0rd@localhost:3306/sogo/sogo_user_profile"; | |||
OCSFolderInfoURL = "mysql://sogo:Passw0rd@localhost:3306/sogo/sogo_folder_info"; | |||
OCSSessionsFolderURL = "mysql://sogo:Passw0rd@localhost:3306/sogo/sogo_sessions_folder"; | |||
/* Mail */ | |||
SOGoDraftsFolderName = Drafts; | |||
SOGoSentFolderName = Sent; | |||
SOGoTrashFolderName = Trash; | |||
SOGoIMAPServer = 127.0.0.1:143; | |||
SOGoSieveServer = sieve://127.0.0.1:4190; | |||
SOGoSMTPServer = 127.0.0.1; | |||
SOGoMailDomain = domain.local; | |||
SOGoMailingMechanism = smtp; | |||
//SOGoForceExternalLoginWithEmail = NO; | |||
//SOGoMailSpoolPath = /var/spool/sogo; | |||
//NGImap4ConnectionStringSeparator = "/"; | |||
/* Notifications */ | |||
//SOGoAppointmentSendEMailNotifications = NO; | |||
//SOGoACLsSendEMailNotifications = NO; | |||
//SOGoFoldersSendEMailNotifications = NO; | |||
/* Authentication */ | |||
//SOGoPasswordChangeEnabled = YES; | |||
/* LDAP authentication example */ | |||
//SOGoUserSources = ( | |||
// { | |||
// type = ldap; | |||
// CNFieldName = cn; | |||
// UIDFieldName = uid; | |||
// IDFieldName = uid; // first field of the DN for direct binds | |||
// bindFields = (uid, mail); // array of fields to use for indirect binds | |||
// baseDN = "ou=users,dc=acme,dc=com"; | |||
// bindDN = "uid=sogo,ou=users,dc=acme,dc=com"; | |||
// bindPassword = qwerty; | |||
// canAuthenticate = YES; | |||
// displayName = "Shared Addresses"; | |||
// hostname = ldap://127.0.0.1:389; | |||
// id = public; | |||
// isAddressBook = YES; | |||
// } | |||
//); | |||
/* LDAP AD/Samba4 example */ | |||
SOGoUserSources = ( | |||
{ | |||
type = ldap; | |||
CNFieldName = cn; | |||
UIDFieldName = sAMAccountName; | |||
baseDN = "CN=users,dc=domain,dc=local"; | |||
bindDN = "Administrator@domain.local"; | |||
bindFields = (sAMAccountName, mail); | |||
bindPassword = "Passw0rd"; | |||
canAuthenticate = YES; | |||
displayName = "Public"; | |||
hostname = ldap://127.0.0.1:389; | |||
filter = "mail = '*'"; | |||
id = directory; | |||
isAddressBook = YES; | |||
} | |||
); | |||
/* SQL authentication example */ | |||
/* These database columns MUST be present in the view/table: | |||
* c_uid - will be used for authentication - it's the username or username@domain.tld) | |||
* c_name - which can be identical to c_uid - will be used to uniquely identify entries | |||
* c_password - password of the user, plain-text, md5 or sha encoded for now | |||
* c_cn - the user's common name - such as "John Doe" | |||
* mail - the user's mail address | |||
* See the installation guide for more details | |||
*/ | |||
//SOGoUserSources = | |||
// ( | |||
// { | |||
// type = sql; | |||
// id = directory; | |||
// viewURL = "postgresql://sogo:sogo@127.0.0.1:5432/sogo/sogo_view"; | |||
// canAuthenticate = YES; | |||
// isAddressBook = YES; | |||
// userPasswordAlgorithm = md5; | |||
// } | |||
// ); | |||
/* Web Interface */ | |||
SOGoPageTitle = SOGo; | |||
SOGoVacationEnabled = YES; | |||
SOGoForwardEnabled = YES; | |||
SOGoSieveScriptsEnabled = YES; | |||
//SOGoMailAuxiliaryUserAccountsEnabled = YES; | |||
//SOGoTrustProxyAuthentication = NO; | |||
/* General */ | |||
SOGoLanguage = English; | |||
SOGoTimeZone = Europe/Paris; | |||
SOGoCalendarDefaultRoles = ( | |||
PublicDAndTViewer, | |||
ConfidentialDAndTViewer | |||
); | |||
SOGoSuperUsernames = (Administrator); // This is an array - keep the parens! | |||
SxVMemLimit = 384; | |||
WOPidFile = "/var/run/sogo/sogo.pid"; | |||
SOGoMemcachedHost = 127.0.0.1; | |||
/* Debug */ | |||
//SOGoDebugRequests = YES; | |||
//SoDebugBaseURL = YES; | |||
//ImapDebugEnabled = YES; | |||
//LDAPDebugEnabled = YES; | |||
//PGDebugEnabled = YES; | |||
//MySQL4DebugEnabled = YES; | |||
//SOGoUIxDebugEnabled = YES; | |||
//WODontZipResponse = YES; | |||
//WOLogFile = /var/log/sogo/sogo.log; | |||
} | |||
</pre> | |||
Modifichiamo la configurazione di Apache2: | |||
<pre> | |||
# nano /etc/apache2/conf.d/SOGo.conf | |||
</pre> | |||
<pre> | |||
# RequestHeader set "x-webobjects-server-port" "443" | |||
# RequestHeader set "x-webobjects-server-name" "yourhostname" | |||
# RequestHeader set "x-webobjects-server-url" "https://yourhostname" | |||
</pre> | |||
Abilitiamo i moduli necessari in Apache: | |||
<pre> | |||
# a2enmod proxy | |||
# a2enmod proxy_http | |||
# a2enmod headers | |||
# a2enmod rewrite | |||
# a2dismod reqtimeout | |||
</pre> | |||
Riavviamo Apache e gli altri servizi: | |||
<pre> | |||
# /etc/init.d/apache2 restart | |||
# /etc/init.d/samba4 restart | |||
# /etc/init.d/sogo restart | |||
</pre> | |||
Verifichiamo che la pagina di login di SoGo sia raggiungibile: | |||
<pre> | |||
http://IP.DEL.NOSTRO.SERVER/SOGo | |||
</pre> | |||
Non proviamo a effettuare il login, dato che gli utenti vanno ancora configurati. | |||
=== Abilitare SSL === | |||
Iniziamo con abilitare il supporto SSL in Apache: | |||
<pre> | |||
# a2enmod ssl | |||
# a2ensite default-ssl | |||
# /etc/init.d/apache2 restart | |||
</pre> | |||
Verifichiamo di nona vere problemi con i certificati andando all'indirizzo: | |||
<pre> | |||
https://domain_name_of_your_server/rpc/rpcproxy.dll | |||
</pre> | |||
== Installazione di Dovecot == | |||
Aggiungiamo innanzitutto un utente e un gruppo per Dovecot: | |||
<pre> | |||
# groupadd -g 5000 vmail | |||
# useradd -m -u 5000 -g 5000 -s /bin/bash -d /var/vmail vmail | |||
# mkdir -p /var/vmail | |||
# chown vmail:vmail -R /var/vmail | |||
</pre> | |||
Quindi installiamo Dovecot: | |||
<pre> | |||
# apt-get install dovecot-imapd dovecot-managesieved dovecot-sieve | |||
</pre> | |||
Creiamo un file di configurazione: | |||
<pre> | |||
# nano /etc/dovecot/local.conf | |||
</pre> | |||
di contenuto: | |||
<pre> | |||
protocols = imap sieve | |||
mail_home = /var/vmail/sieve/%d/%u | |||
mail_location = maildir:~/Maildir | |||
mail_uid = vmail | |||
mail_gid = vmail | |||
first_valid_uid = 107 | |||
first_valid_gid = 8 | |||
disable_plaintext_auth = no | |||
service auth { | |||
unix_listener auth-userdb { | |||
mode = 0600 | |||
user = vmail | |||
group = vmail | |||
} | |||
} | |||
userdb { | |||
driver = ldap | |||
args = /etc/dovecot/dovecot-ldap.conf | |||
} | |||
userdb { | |||
driver = static | |||
args = uid=vmail gid=vmail home=/var/mail/%u | |||
} | |||
passdb { | |||
driver = ldap | |||
args = /etc/dovecot/dovecot-ldap.conf | |||
} | |||
passdb { | |||
driver = static | |||
args = nopassword=y host=127.0.0.1 | |||
} | |||
protocol imap { | |||
mail_plugins = quota imap_quota autocreate | |||
} | |||
service managesieve-login { | |||
inet_listener sieve { | |||
port = 4190 | |||
} | |||
} | |||
service managesieve { | |||
} | |||
protocol sieve { | |||
} | |||
plugin { | |||
quota = maildir:User quota | |||
quota_rule = *:storage=0 | |||
sieve = /var/vmail/sieve/%d/%u/sieve-script | |||
sieve_global_path = /var/vmail/sieve/default.sieve | |||
sieve_storage = /var/vmail/sieve/%d/%u | |||
autocreate = Trash | |||
autocreate2 = Spam | |||
autocreate3 = Sent | |||
autocreate4 = Drafts | |||
autosubscribe = Trash | |||
autosubscribe2 = Spam | |||
autosubscribe3 = Sent | |||
autosubscribe4 = Drafts | |||
} | |||
protocol lda { | |||
postmaster_address = administrator@domain.local | |||
mail_plugins = sieve | |||
auth_socket_path = /var/run/dovecot/auth-userdb | |||
} | |||
</pre> | |||
Creiamo anche il file di configurazione per LDAP: | |||
<pre> | |||
# nano /etc/dovecot/dovecot-ldap.conf | |||
</pre> | |||
stando attenti a sostituire la password con la nostra password di Samba e il dominio con il nostro dominio di Samba: | |||
<pre> | |||
uris = ldapi://%2Fvar%2Flib%2Fsamba%2Fprivate%2Fldapi | |||
dn = "Administrator@domain.local" | |||
dnpass = "Passw0rd" | |||
sasl_bind = no | |||
tls = no | |||
ldap_version = 3 | |||
deref = never | |||
scope = subtree | |||
base = cn=Users,dc=domain,dc=local | |||
auth_bind = yes | |||
user_filter = (&(objectClass=user)(sAMAccountName=%u)) | |||
user_attrs = sAMAccountName=user,userPassword=password,=mail=maildir:/var/vmail/%Ld/%n, =home=/var$ | |||
pass_filter = (&(objectClass=user)(sAMAccountName=%u)) | |||
pass_attrs = sAMAccountName=user,userPassword=password | |||
</pre> | |||
Proteggiamo il file: | |||
<pre> | |||
# chmod 700 /etc/dovecot/dovecot-ldap.conf | |||
</pre> | |||
e riavviamo Dovecot: | |||
<pre> | |||
# /etc/init.d/dovecot restart | |||
</pre> | |||
== Installazione di Postfix == | |||
L'installazione di Postfix rimuoverà il pacchetto ''exim''. Procediamo lasciando le opzioni di default: | |||
<pre> | |||
# apt-get install postfix postfix-ldap | |||
</pre> | |||
Quindi creiamo un nuovo file di configurazione: | |||
<pre> | |||
# cp /etc/postfix/main.cf /etc/postfix/main.cf.old | |||
# cat /dev/null > /etc/postfix/main.cf | |||
# nano /etc/postfix/main.cf | |||
</pre> | |||
stando attenti a modificare correttamente il nome del server e il dominio: | |||
<pre> | |||
smtpd_banner = $myhostname ESMTP $mail_name (Debian) | |||
biff = no | |||
# appending .domain is the MUA's job. | |||
append_dot_mydomain = no | |||
readme_directory = no | |||
# TLS parameters | |||
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem | |||
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key | |||
smtpd_use_tls=yes | |||
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache | |||
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache | |||
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for | |||
# information on enabling SSL in the smtp client. | |||
myhostname = mioserver.domain.local | |||
alias_maps = hash:/etc/aliases | |||
alias_database = hash:/etc/aliases | |||
myorigin = /etc/mailname | |||
mydestination = mioserver.domain.local, localhost.domain.local, , localhost | |||
relayhost = | |||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | |||
mailbox_size_limit = 0 | |||
recipient_delimiter = + | |||
inet_interfaces = all | |||
virtual_alias_maps = ldap:/etc/postfix/ldap_aliases.cf | |||
virtual_mailbox_domains = virtual.domain.local | |||
virtual_transport = dovecot | |||
dovecot_destination_recipient_limit = 1 | |||
virtual_uid_maps = static:5000 | |||
virtual_gid_maps = static:5000 | |||
</pre> | |||
Aggiungiamo le seguenti righe al file ''master'' di Postfix: | |||
<pre> | |||
# nano /etc/postfix/master.cf | |||
</pre> | |||
<pre> | |||
dovecot unix - n n - - pipe | |||
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${user} | |||
</pre> | |||
Impostiamo un connettore per LDAP: | |||
<pre> | |||
# nano /etc/postfix/ldap_aliases.cf | |||
</pre> | |||
stando attenti a modificare correttamente le password e il dominio: | |||
<pre> | |||
server_host = localhost | |||
search_base = cn=Users,dc=domain,dc=local | |||
query_filter = (mail=%s) | |||
result_attribute = sAMAccountName | |||
result_format = %s@virtual.domain.local | |||
bind = yes | |||
bind_dn = Administrator@domain.local | |||
bind_pw = Passw0rd | |||
start_tls = no | |||
version = 3 | |||
</pre> | |||
Proteggiamo il file e riavviamo Postfix: | |||
<pre> | |||
# chmod 700 /etc/dovecot/dovecot-ldap.conf | |||
# /etc/init.d/postfix restart | |||
</pre> | |||
== Installazione di iGestis == | |||
iGestis è un tool che ci permetterà di amministrare gli utenti del nostro groupware in maniera agevole da un'interfaccia web. Aggiungiamo quindi il repository di iGestis: | |||
<pre> | |||
# wget http://iabsis.com/uploaded_content/igestis.list -O /etc/apt/sources.list.d/igestis.list | |||
# wget http://open.iabsis.com/open.iabsis.com.asc -O- | apt-key add - | |||
# apt-get update | |||
</pre> | |||
Quindi installiamo iGestis rispondendo come segue alle domande dell'installer: | |||
<pre> | |||
# apt-get install igestis igestis-openchange | |||
</pre> | |||
* Choose the wanted authentication method : Samba4 | |||
* Choose the admin account name : administrator | |||
* Specify the uris for the directory : ldapi://%2Fvar%2Flib%2Fsamba%2Fprivate%2Fldapi (lasciare così) | |||
* Specify the directory base tree : you domain (example in the context : domain.local) | |||
* Specify the directory admin account for the directory : Administrator@domain.local | |||
* Please specify the admin password for the directory : password di Samba4 | |||
* Create a user in iGestis when present in the directory ? Yes | |||
* Configure database for igestis with dbconfig-common? Yes | |||
* Password of the database’s administrative user: Password di root di MySQL | |||
* MySQL application password for igestis: vuoto | |||
* Web server to reconfigure automatically : Apache2 | |||
Infine forziamo il valore seguente nella configurazione di iGestis: | |||
<pre> | |||
# nano /etc/igestis/ConfigIgestisGlobalVars.php | |||
</pre> | |||
<pre> | |||
const LDAP_USER_RDN = "cn=%username%"; | |||
</pre> | |||
== Creazione di un utente == | |||
Accediamo a iGestis: | |||
<pre> | |||
http://IP.DEL.NOSTRO.SERVER/igestis | |||
</pre> | |||
Autentichiamoci con le credenziali fornite durante l'installazione di iGestis e andiamo in: Administration => My company => Add a new company. | |||
<br/> | |||
Quindi andiamo in: Contacts => Employee => and Add a new employee. | |||
<br/> | |||
<br/> | |||
{{Autori|Autore=[[Utente:Ferdybassi|Ferdybassi]]}} | |||
[[Categoria:Groupware server]] |
contributi