Exchange helyett SOGo 2
Az előző leírásban ldap autentikációt mutattam be. Most egy kicsit rövidebben a mysqlből való fehazsnáló azonosítást mutatom be.
A leírás ezúttal 10.04-es Ubuntu serverre készült, de nincs nagy különbség Debian esetén sem.
Hozzáadjuk a forrást, majd telepítjük a SOGo csomagot
echo "deb http://inverse.ca/ubuntu lucid main" >> /etc/apt/sources.list
apt-get update
apt-get install sogo
Mysqlben létrehozzuk a felhasználót, az adatbázist és a felhasználói adatok tárolására szolgáló sogo_view táblát:
CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'sogo_db_passwd';
GRANT USAGE ON * . * TO 'sogo'@'localhost' IDENTIFIED BY 'sogo_db_passwd' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
create database sogo;
GRANT ALL PRIVILEGES ON `sogo` . * TO 'sogo'@'localhost';
FLUSH PRIVILEGES;
use sogo;
CREATE TABLE `sogo_view`(
`c_uid` VARCHAR(255) ,
`c_name` VARCHAR(255) ,
`c_password` VARCHAR(255) ,
`c_cn` VARCHAR(255) ,
`mail` VARCHAR(255) ,
`givenName` VARCHAR(64) ,
`sn` VARCHAR(64) ,
`department` VARCHAR(255) ,
`title` VARCHAR(255)
);
Néhány felhasználót is beillesztünk:
INSERT INTO sogo_view (`c_uid`, `c_name`, `c_password`, `c_cn`, `mail`, `givenName`, `sn`, `department`, `title`) VALUES ('user1', 'user1', 'user1', 'Felhasznalo 1', 'user1@mail.hu', 'User1', 'user1', NULL, NULL);
INSERT INTO sogo_view (`c_uid`, `c_name`, `c_password`, `c_cn`, `mail`, `givenName`, `sn`, `department`, `title`) VALUES ('user2', 'user2', 'user2', 'Felhasznalo 2', 'user2@mail.hu', 'User2', 'user2', NULL, NULL);
INSERT INTO sogo_view (`c_uid`, `c_name`, `c_password`, `c_cn`, `mail`, `givenName`, `sn`, `department`, `title`) VALUES ('user3', 'user3', 'user3', 'Felhasznalo 3', 'user3@mail.hu', 'User3', 'user3', NULL, NULL);
A sogo konfigurálása az előzőleg bemutatótt módon zajlik, a különbség a SOGoUserSources sor tartalma, ez egy mysql adatbázishoz irányítja a szoftvert
su - sogo
defaults write sogod SOGoTimeZone "Europe/Budapest"
defaults write sogod SOGoMailDomain "company.hu"
defaults write sogod SOGoLanguage English
defaults write sogod SOGoAppointmentSendEMailNotifications YES
defaults write sogod SOGoFoldersSendEMailNotifications YES
defaults write sogod SOGoACLsSendEMailNotifications YES
defaults write sogod WOApplicationRedirectURL "http://company.hu"
defaults write sogod SOGoLoginModule calendar
defaults write sogod SOGoLanguage Hungarian
defaults write sogod SOGoProfileURL mysql://sogo:sogo_db_passwd@localhost:3306/sogo/sogo_user_profile
defaults write sogod OCSFolderInfoURL mysql://sogo:sogo_db_passwd@localhost:3306/sogo/sogo_folder_info
defaults write sogod SOGoMailingMechanism smtp
defaults write sogod SOGoSMTPServer localhost
defaults write sogod SOGoDraftsFolderName Drafts
defaults write sogod SOGoSentFolderName Sent
defaults write sogod SOGoTrashFolderName Trash
defaults write sogod SOGoIMAPServer localhost
defaults write sogod SOGoUserSources '({ type = sql; id = directory; viewURL = "mysql://sogo:sogo_db_passwd@localhost:3306/sogo/sogo_view"; canAuthenticate = YES; isAddressBook = NO; userPasswordAlgorithm = none; })'
A userPasswordAlgorithm = none; érdekes lehet. Ez szerint kódolatlanul tároljuk a felhasználók jelszavát. Itt van lehetőség md5 kódolást megadni, így egyirányú kódolással elrejtjük a valós jelszót.
Egy feature request írdott és pozitív visszajelzést adtak rá, így a következő verziótól követően a mysqlben tárolt és az encrypt függvénnyel elkódolt jelszavakat is tudja majd használni a SOGo, így akik pl email felhasználókat tárolják ilyen formán, azoknak sem lesz problémájuk és egy view tábla létrehozásával a levelezés és a SOGo felhasználói tábláját szinkronban tarthatjuk.
Az előző leírásból kimaradt, de itt pótolom az Apache2 beállításait:
A következő modulokat engedélyezni kell:
headers.load
proxy_ajp.load
proxy_balancer.load
proxy_connect.load
proxy_http.load
proxy.load
A /etc/apache2/conf.d/SOGo.conf tartalmát a következők eszerint kell formálni:
Alias /SOGo.woa/WebServerResources/ \
/usr/lib/GNUstep/SOGo/WebServerResources/
Alias /SOGo/WebServerResources/ \
/usr/lib/GNUstep/SOGo/WebServerResources/
AliasMatch /SOGo/so/ControlPanel/Products/(.*)/Resources/(.*) \
/usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2
<Directory /usr/lib/GNUstep/SOGo/>
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*jpg">
SetHandler default-handler
</LocationMatch>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*png">
SetHandler default-handler
</LocationMatch>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*gif">
SetHandler default-handler
</LocationMatch>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*css">
SetHandler default-handler
</LocationMatch>
<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*js">
SetHandler default-handler
</LocationMatch>
<Location /SOGo>
AuthType XXX
Allow from all
</Location>
ProxyRequests Off
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On
ProxyPassInterpolateEnv On
ProxyPass /SOGo http://127.0.0.1:20000/SOGo interpolate
Így nem kell a 20000-es portot használni, elég a company.hu.hu/SOGo -t beírni a böngészőbe