A bejegyzésből megtudhatod, hogy az ISPConfig 3 támogatásával hogyan használhatod a SOGo levelezőt
SOGo Tároló Beállítása
Vegyük fel a SOGo tároló gpg kulcsát:
sudo gpg --keyserver hkp://keys.gnupg.net --recv-key 0x810273C4 sudo gpg --armor --export 0x810273C4 | sudo apt-key add - sudo apt-get update
Állítsuk be a tárolót:
nano /etc/apt/sources.list.d/sogo.list
deb https://packages.inverse.ca/SOGo/nightly/4/debian/ buster buster
Frissítsük a csomaglistát:
apt-get update
SOGO telepítése
Telepítsük a szükséges csomagokat:
apt-get install sogo sogo-activesync memcached dovecot-sieve dovecot-managesieved
Engedélyezzük az alábbi Apache modulokat:
a2enmod proxy a2enmod proxy_http a2enmod headers a2enmod rewrite
Adatbázis beállítása
Lépjünk be az adatbázis kezelőbe:
mysql -uroot -p
Hozzuk létre az adatbázist és a táblákat:
CREATE DATABASE sogo CHARSET='UTF8'; CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'sogo'; GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost'; USE sogo; CREATE VIEW sogo_view (c_uid, c_name, c_password, c_cn, mail) AS SELECT email, email, password, name, email FROM dbispconfig.mail_user; flush privileges; exit
Módosítsuk a SOGo konfigurációját:
nano /etc/sogo/sogo.conf
{
/* ********************* 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:sogo@127.0.0.1:3306/sogo/sogo_user_profile";
OCSFolderInfoURL = "mysql://sogo:sogo@127.0.0.1:3306/sogo/sogo_folder_info";
OCSSessionsFolderURL = "mysql://sogo:sogo@127.0.0.1:3306/sogo/sogo_sessions_folder";
OCSEMailAlarmsFolderURL = "mysql://sogo:sogo@127.0.0.1:3306/sogo//sogo_alarms_folder";
/* Mail */
SOGoDraftsFolderName = Drafts;
SOGoSentFolderName = Sent;
SOGoTrashFolderName = Trash;
SOGoIMAPServer = localhost;
SOGoSieveServer = sieve://127.0.0.1:4190;
SOGoSMTPServer = 127.0.0.1;
SOGoMailDomain = domain.de;
SOGoMailingMechanism = smtp;
SOGoForceExternalLoginWithEmail = YES;
//SOGoMailSpoolPath = /var/spool/sogo;
NGImap4ConnectionStringSeparator = "/";
SOGoMailMessageCheck = "every_5_minutes";
SOGoFirstDayOfWeek = 1;
SOGoLoginModule = Mail;
/* Notifications */
SOGoAppointmentSendEMailNotifications = YES;
//SOGoACLsSendEMailNotifications = YES;
//SOGoFoldersSendEMailNotifications = YES;
SOGoEnableEMailAlarms = YES;
/* 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=tld";
// bindDN = "CN=sogo,CN=users,DC=domain,DC=tld";
// bindFields = (sAMAccountName, mail);
// bindPassword = password;
// 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 = users;
viewURL = "mysql://sogo:sogo@127.0.0.1:3306/sogo/sogo_view";
canAuthenticate = YES;
isAddressBook = YES;
userPasswordAlgorithm = crypt;
displayName = "SOGo Users";
}
);
/* Web Interface */
SOGoPageTitle = "SOGo Levelező";
SOGoVacationEnabled = YES;
SOGoForwardEnabled = YES;
SOGoSieveScriptsEnabled = YES;
//SOGoMailAuxiliaryUserAccountsEnabled = YES;
//SOGoTrustProxyAuthentication = NO;
//SOGoXSRFValidationEnabled = YES;
/* General - SOGoTimeZone *MUST* be defined */
SOGoLanguage = Hungary;
SOGoTimeZone = Europe/Budapest;
//SOGoCalendarDefaultRoles = (
// PublicDAndTViewer,
// ConfidentialDAndTViewer
//);
SOGoSuperUsernames = (name@domain.de); // This is an array - keep the parens!
//SxVMemLimit = 384;
//WOPidFile = "/var/run/sogo/sogo.pid";
// A korábbiakban a NextCloud telepítés miatt módosítva lett a memcached, az alábbi porton érhető el a
// szolgáltatás:
SOGoMemcachedHost = "127.0.0.1:11211";
/* Debug */
//SOGoDebugRequests = YES;
//SoDebugBaseURL = YES;
//ImapDebugEnabled = YES;
//LDAPDebugEnabled = YES;
//PGDebugEnabled = YES;
//MySQL4DebugEnabled = YES;
//SOGoUIxDebugEnabled = YES;
//WODontZipResponse = YES;
//WOLogFile = /var/log/sogo/sogo.log;
}
Dovecot Konfigurálás
A Dovecot konfigurációját módosítani kell a SOGo használatához. Legyünk figyelmesek, néhány új konfigurációt is meg kell adni, valamint a meglévőeket az alábbiak szerint módosítani:
nano /etc/dovecot/dovecot.conf
protocols = [..] sieve
plugin {
[..]
# ispconfig sieve script is loaded before anything else
# this way ispconfig sieve script can be edited by using sive protocol
# if you prefer to keep ispconfig sieve script hidden from using sive protocol
# change location eg. sieve_before = /var/vmail/%d/%n/ispconfig.sieve
sieve_before = /var/vmail/%d/%n/sieve/ispconfig.sieve
sieve_dir = /var/vmail/%d/%n/sieve/
sieve_extensions = +notify +imapflags
# the next to lines are optional but i use them so i show them
# a directory where global .sieve script can be found
sieve_global_dir = /var/vmail/sieve
# a global sieve script to use allways
sieve_global_path = /var/vmail/sieve/dovecot.sieve
}
service managesieve-login {
inet_listener sieve {
# port to use for managesieve
port = 4190
}
process_min_avail = 10
service_count = 1
vsz_limit = 64 M
}
protocol sieve {
# Explicitly specify the SIEVE and NOTIFY capability reported by the server
# before login. If left unassigned these will be reported dynamically
# according to what the Sieve interpreter supports by default (after login this may differ depending on the user).
# managesieve_notify_capability = mailto
# managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave imapflags notify
mail_max_userip_connections = 10
managesieve_logout_format = bytes=%i/%o
managesieve_max_compile_errors = 5
managesieve_max_line_length = 65536
}
protocol lda {
[..]
mail_plugins = [..] sieve
}
protocol lmtp {
[..]
mail_plugins = [..] sieve
}
Apache konfiguráció
Létre kell hoznunk az Apache konfigurációt a SOGo Webes használatához:
nano /etc/apache2/conf-available/sogo.conf
Alias /SOGo.woa/WebServerResources/ /usr/lib/GNUstep/SOGo/WebServerResources/
Alias /SOGo/WebServerResources/ /usr/lib/GNUstep/SOGo/WebServerResources/
<Directory /usr/lib/GNUstep/SOGo/>
AllowOverride None
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
# Explicitly allow caching of static content to avoid browser specific behavior.
# A resource's URL MUST change in order to have the client load the new version.
<IfModule expires_module>
ExpiresActive On
ExpiresDefault "access plus 1 year"
</IfModule>
</Directory>
ProxyRequests Off
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On
# Enable to use Microsoft ActiveSync support
# Note that you MUST have many sogod workers to use ActiveSync.
# See the SOGo Installation and Configuration guide for more details.
#
ProxyPass /Microsoft-Server-ActiveSync \
http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync \
retry=60 connectiontimeout=5 timeout=360
ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0
<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
## and do not forget to enable the headers module
<IfModule headers_module>
RequestHeader set "x-webobjects-server-port" "443"
RequestHeader set "x-webobjects-server-name" "%{HTTP_HOST}e" env=HTTP_HOST
RequestHeader set "x-webobjects-server-url" "https://%{HTTP_HOST}e" env=HTTP_HOST
## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
RequestHeader unset "x-webobjects-remote-user"
# RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e" env=REMOTE_USER
RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0"
</IfModule>
AddDefaultCharset UTF-8
<IfVersion < 2.4>
Order deny,allow
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Proxy>
# For Apple autoconfiguration
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^/.well-known/caldav/?$ /SOGo/dav [R=301]
RewriteRule ^/.well-known/carddav/?$ /SOGo/dav [R=301]
</IfModule>
Ezt követően a szolgáltatásokat újra kell indítani:
a2enconf sogo systemctl restart apache2 systemctl enable sogo systemctl restart sogo systemctl restart dovecot
Konklúzió
- A webes felület elérése nálam a: https://mx.zsoltina.eu:8080/SOGo linken érhető el
- Thunderbird használatához telepíteni kell a Sogo connector kiegészítőt
- A CalDav szolgáltatás ilyen módon érhető el: https://mail.domain.de/SOGo/dav/name@domain.de/Calendar/personal/
Ezzel elkészültünk. A cikk eredeti forrásául ez a leírás szolgált.