Links zu den Projekten
Zimbra, Zimbra WikiGroupware Migration
audriga Groupware MigrationNavigation:
   Zero Effort Groupware einrichten
   Installation
   Konfiguration
   sonstiges
SOGo Links:
   Download SOGo 
   VM Images (Zero Effort Groupware)
   Webmin SOGo Modul
   Webmin StressFree Theme
   SOGo Mailinglists
   SOGo Community
   SOGo Community Mail Archiv
   SOGo BugTracking
sonstige Anleitungen:
   Anleitung ZEG
   ubuntu Wiki SOGo
   Debian Wiki SOGo
   OpenLDAP ubuntu Wiki
   Admin-World SOGo mit Sieve und Dovecot
   SOGo mit Dovecot
SOGo ist ein Ableger von OGo (OpenGroupware.org)
- Tastaturbelegung der VM auf der Konsole einrichten
apt-get install console-common language-pack-de-base locale-gen update-locale LANG="de_DE.UTF-8" localedef -v -i de_DE -c -f UTF-8 de_DE.UTF-8 dpkg-reconfigure locales dpkg-reconfigure keyboard-configuration
echo LANGUAGE="de_DE.UTF-8" >> /etc/environment echo LC_ALL="de_DE.UTF-8" >> /etc/environment
https://<IP-Adresse>:10000
   Benutzernamen: sogo
   Passwort: sogo
- Webmin konfigurieren
   Webmin | Webmin-Konfiguration | Vertraute Verweise | Überprüfung des Verweisenden aktivieren:nein
   Hardware | Systemzeit | Ändere Zeitzone: Europa/Berlin
- Admin Account Passwort ändern
   System | Benutzer und Gruppen | Benutzer sogo Passwort ändern
- Benutzer einrichten
   Server | LDAP Server | Browse Database
   Browsing: dc=example,dc=com
es gibt drei Objekte
   cn=admin,dc=example,dc=com
   ou=people,dc=example,dc=com
   ou=service,dc=example,dc=com
unter ou=people,dc=example,dc=com sind die Benutzer angelegt, mit Add new sub-object einen neuen Benutzer erstellen
   New object DN:uid=user1
   Object classes:
inetOrgPerson organizationalPerson person
Andere Attribute
   cn:Max Mustermann
   sn:Mustermann
   givenName:Max
   mail:user1@example.com
   uid:user1
   userPassword:user1 
- unter Cyrus den Benutzer auch noch neu anlegen
   Server | Cyrus IMAP server | Mailbox tree
   create mailbox: user/user1
   user's mailbox: deaktivieren
auf der Konsole
cyradm --auth plain --user cyrus localhost
Passwort: sogo
cm - Benutzer anlegen
   lm - Benutzer anzeigen
cm user/user1 lm
http://<IP-Adresse>/SOGo
   Benutzername: user1
   Passwort: user1
- OpenSource Komponenten die benötigt werden
SOGo
   OpenChange/Samba4 (Outlook compatibility)
   MySQL (database server)
   OpenLDAP (LDAP directory)
   Cyrus (IMAP server)
   Postfix (SMTP server)
   Apache (Web server)
- Erweitern der PaketQuellen
# /etc/apt/sources.list.d/SOGo.list # SOGo Groupware Erweiterung deb http://inverse.ca/ubuntu precise precise deb-src http://inverse.ca/ubuntu precise precise # aktuellste Version (kann Fehler enthalten) # deb http://inverse.ca/ubuntu-nightly precise precise
- Key importieren
gpg --keyserver subkeys.pgp.net --recv 19CDA6A9810273C4 gpg --export --armor 19CDA6A9810273C4 | sudo apt-key add -
- Installation starten
apt-get update
apt-get install mysql-common mysql-server apache2-mpm-prefork \
		postfix sasl2-bin cyrus-imapd-2.4 cyrus-admin-2.4 \
		samba4 sogo sogo-dbg openchangeserver sogo-openchange \
                openchangeproxy openchange-ocsmanager openchange-rpcproxy \
                ldap-utils libsasl2-modules-ldap postfix-ldap slapd \
                imapproxy libnet-ldap-perl memcached
 
MySQL
  Apache
  OpenLDAP
  SASL
  Postfix
  Cyrus
  Samba
  Webmin
  SOGo
  Cron
| Dateien/Befehle | Beschreibung | 
|---|---|
| /home/sogo/GNUstep/Defaults/.GNUstepDefaults | Konfigurationsdatei | 
| /var/log/sogo/sogo.log | LOG Datei | 
| service sogo start | SOGo starten | 
| service sogo status | SOGo Status | 
| service sogo stop | SOGo stop | 
| su - sogo | als Benutzer sogo anmelden | 
http://<SOGO-Server>/SOGo - Zugriff Webmail Anmeldung
 http://<SOGO-Server>:10000/ - Webmin Administration
- um alle LOG Files in der Übersicht zu haben, am einfachsten einen Alias anlegen
# /etc/profile.d/aliase.sh alias tailsogo='tail -f /var/log/syslog /var/log/mysql.log /var/log/mail.log \ /var/log/sogo/sogo.log /var/log/ocsmanager/ocsmanager.log /var/log/samba/log.samba'
Zeichensatz für die Datenbank festlegen
# /etc/mysql/my.cnf ... [client] default-character-set = utf8 ... [mysqld] character_set_server = utf8 character_set_client = utf8 ... [mysql] default-character-set = utf8 ...
- am MySQL Server anmelden als root
mysql -u root -p
- Datenbank erstellen und Benutzer sogo Zugriff gewähren.
CREATE DATABASE `sogo`; CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'sogo_UserPasswort'; GRANT ALL PRIVILEGES ON `sogo`.* TO 'sogo'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; exit
- die SOGo.conf wie folgt anpassen
# /etc/apache2/conf.d/SOGo.conf
...
<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
  RequestHeader set "x-webobjects-server-port" "80"
#  RequestHeader set "x-webobjects-server-port" "443"
#  RequestHeader set "x-webobjects-server-name" "yourhostname"
#  RequestHeader set "x-webobjects-server-url" "https://yourhostname"
## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
#  RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e"
  RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0"
  RequestHeader set "x-webobjects-remote-host" %{REMOTE_HOST}e env=REMOTE_HOST
...
 - Module Proxy, Headers und Rewrite aktivieren
a2enmod proxy proxy_http headers rewrite include wsgi service apache2 restart
- wenn noch eine Startseite vor der Webmail Anmeldung läuft noch folgende anpassungen vornehmen, index.shtml als Indexsite aktivieren und SSI aktivieren
# /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
          DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml
</IfModule>
# /etc/apache2/sites-enabled/000-default
...
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews +Includes
                AllowOverride None
...
 Grundkonfiguration
- Port auf dem OpenLDAP läuft auf 3389 ändern, da Samba4 schon 389 benutzt.
# /etc/default/slapd ... SLAPD_SERVICES="ldap://127.0.0.1:3389/" ...
- LDAP Daten zurücksetzen
dpkg-reconfigure slapd
DNS-Domainname:domain.tld
   Name der Organisation:domain.tld
# domain.tld dn: dc=domain,dc=tld objectClass: top objectClass: dcObject objectClass: organization o: domain.tld dc: domain # admin, domain.tld dn: cn=admin,dc=domain,dc=tld objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator
ldapsearch -h localhost -p 3389 -x -b dc=domain,dc=tld
Ausgabe aufs wesentliche beschränkt
ldapsearch -h localhost -p 3389 -xLLL -b dc=domain,dc=tld
- OUs hinzufügen
# sogo.ldif # Zweite Stufe - Organisationseinheiten dn: ou=benutzer,dc=domain,dc=tld objectclass: organizationalunit ou: benutzer description: Benutzer OU dn: ou=service,dc=domain,dc=tld objectclass: organizationalunit ou: service description: Service OU
OUs ins LDAP importieren
ldapadd -h localhost -p 3389 -x -W -D 'cn=admin, dc=domain,dc=tld' -f sogo.ldif
- Benutzer hinzufügen
# user.ldif
# Dritte Stufe - Benutzer
dn: uid=user1,ou=benutzer,dc=domain,dc=tld
cn:Max Mustermann
sn:Mustermann
givenName:Max
mail:user1@domain.tld
uid:user1
userPassword: {SSHA}OR5F+XAEoQ+3mlzZnE6XguqEo4s8G8hn
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
 Benutzer ins LDAP importieren
ldapadd -h localhost -p 3389 -x -W -D 'cn=admin, dc=domain,dc=tld' -f user.ldif
als Admin, Passwort für einen User setzen
ldappasswd -h localhost -p 3389 -xWD cn=admin,dc=domain,dc=tld uid=user1,ou=benutzer,dc=domain,dc=tld -s NewUserPasswd
- Cyrus Service registrieren
# cyrus.ldif # cyrus Service dn: cn=cyrus,ou=service,dc=domain,dc=tld cn: cyrus sn: cyrus objectClass: person objectClass: top userPassword: sogo
ldapadd -h localhost -p 3389 -x -W -D 'cn=admin, dc=domain,dc=tld' -f cyrus.ldif
- Daemon Start aktivieren
# /etc/default/saslauthd START=yes MECHANISMS="ldap" ...
# /etc/saslauthd.conf ldap_servers: ldap://localhost:3389/ ldap_version: 3 ldap_auth_method: bind ldap_search_base: dc=domain,dc=tld ldap_filter: (|(uid=%U)(cn=%U)) ldap_scope: sub
- Daemon starten
service saslauthd start
- SASL Auth testen
testsaslauthd -u <Benutzer> -p <Passwort>
# /etc/postfix/main.cf
#
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
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
#
myhostname = sogo.domain.tld
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = sogo
mydestination = localhost, $myhostname, $mydomain
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/people.ldap
mailbox_transport = lmtp:127.0.0.1:24
# /etc/postfix/people.ldap # version = 3 server_port = 3389 timeout = 60 search_base = ou=benutzer,dc=domain,dc=tld query_filter = (mail=%s) result_attribute = uid bind = no
# /etc/cyrus.conf
#
START {
        recover         cmd="/usr/sbin/cyrus ctl_cyrusdb -r"
        delprune        cmd="/usr/sbin/cyrus expire -E 3"
        tlsprune        cmd="/usr/sbin/cyrus tls_prune"
}
SERVICES {
        imap            cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100
        pop3            cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50
        lmtp            cmd="lmtpd -a" listen="127.0.0.1:24" prefork=0 maxchild=20
        sieve           cmd="timsieved" listen="localhost:sieve" prefork=0 maxchild=100
        notify          cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1
}
EVENTS {
        checkpoint      cmd="/usr/sbin/cyrus ctl_cyrusdb -c" period=30
        delprune        cmd="/usr/sbin/cyrus expire -E 3" at=0401
        tlsprune        cmd="/usr/sbin/cyrus tls_prune" at=0401
}
# /etc/imapd.conf altnamespace: yes unixhierarchysep: yes admins: cyrus sasl_mech_list: PLAIN sasl_pwcheck_method: alwaystrue # # ubuntu defaults allowanonymouslogin: no allowplaintext: yes autocreatequota: 0 configdirectory: /var/lib/cyrus defaultpartition: default hashimapspool: true idlesocket: /var/run/cyrus/socket/idle lmtp_downcase_rcpt: yes lmtpsocket: /var/run/cyrus/socket/lmtp mboxname_lockpath: /var/lib/cyrus/lock newsspool: /var/spool/news notifysocket: /var/run/cyrus/socket/notify partition-default: /var/spool/cyrus/mail partition-news: /var/spool/cyrus/news popminpoll: 1 proc_path: /var/run/cyrus/proc sasl_auto_transition: no sievedir: /var/spool/sieve sieveusehomedir: false syslog_prefix: cyrus tls_ca_path: /etc/ssl/certs tls_cipher_list: TLSv1+HIGH:!aNULL:@STRENGTH tls_session_timeout: 1440 umask: 077
- unter Cyrus die Mailbenutzer anlegen (Passwort zum cyradm wurde mit dem LDAP Eintrag definiert)
cyradm --auth plain --user cyrus localhost Passwort: sogo cm user/user1
#/etc/samba/smb.conf
#
# Global parameters
[global]
        workgroup = OPENCHANGE
        realm = domain.tld
        netbios name = SOGO
        server role = active directory domain controller
        passdb backend = samba4
        dcerpc endpoint servers = epmapper, mapiproxy
        dcerpc_mapiproxy:server = true
        dcerpc_mapiproxy:interfaces = exchange_emsmdb, exchange_nsp, exchange_ds_rfr
[netlogon]
        path = /var/lib/samba/sysvol/domain.tld/scripts
        read only = No
[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
 
- Webmin laden und Paket installieren
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.600_all.deb dpkg --install webmin_1.600_all.deb aptitude install webmin
- Zugriff Webmin Konfiguration
http://<Webmin-Server>:10000/
 - Webmin starten / stoppen
service webmin start service webmin status service webmin stop
- Anpassung OpenLDAP an Port 3389
   Webmin unter Server | LDAP Server | Modulkonfiguration
   LDAP Server Port - 3389
   Passwort für LDAP-Server - <OpenLDAP Server Kennwort>
- Anmelden als SOGo Benutzer
sudo su - sogo
- SOGo KonfigurationsScript erstellen sogo.script, mit dem Script wird die Datei /home/sogo/GNUstep/Defaults/.GNUstepDefaults konfiguriert
touch sogo.script chmod +x sogo.script
# sogo.script
defaults write sogod SOGoACLsSendEMailNotifications YES
defaults write sogod OCSEMailAlarmsFolderURL "mysql://sogo:sogo@localhost:3306/sogo/sogo_alarms_folder"
defaults write sogod OCSFolderInfoURL "mysql://sogo:sogo@localhost:3306/sogo/sogo_folder_info"
defaults write sogod OCSSessionsFolderURL "mysql://sogo:sogo@localhost:3306/sogo/sogo_sessions_folder"
defaults write sogod SOGoAppointmentSendEMailNotifications YES
defaults write sogod SOGoEnableEMailAlarms YES
defaults write sogod SOGoIMAPServer mail.domain.tld
defaults write sogod SOGoMailingMechanism smtp
defaults write sogod SOGoProfileURL "mysql://sogo:sogo@localhost:3306/sogo/sogo_user_profile"
defaults write sogod SOGoSMTPServer mail.domain.tld
defaults write sogod SOGoSieveScriptsEnabled YES
defaults write sogod SOGoSieveServer sieve://127.0.0.1:4190
defaults write sogod SOGoTimeZone "Europe/Berlin"
defaults write sogod SOGoUserSources '({CNFieldName = cn;IDFieldName = uid;UIDFieldName = uid;
 baseDN = "ou=benutzer,dc=domain,dc=tld"; bindDN = "cn=admin,dc=domain,dc=tld";
 bindPassword = sogo; canAuthenticate = YES; displayName = "Shared Addresses";
 hostname = "127.0.0.1"; port = 3389; id = public; isAddressBook = YES; type = ldap;})'
defaults write sogod SOGoVacationEnabled YES
defaults write sogod SOGoSupportedLanguages '("German","English")'
 weitere möglicheParameter (!!! Liste nicht vollständig)
defaults write sogod SOGoMailDomain "domain.tld"
defaults write sogod SOGoLanguage German
defaults write sogod SOGoFoldersSendEMailNotifications YES
defaults write sogod SOGoCalendarDefaultRoles '("PublicViewer","ConfidentialDAndTViewer")'
defaults write sogod SOGoMemcachedHost 127.0.0.1
 - Abwesenheitsnotiz und eMail Benachrichtigung aktivieren
# /etc/cron.d/sogo 0 0 * * * sogo /usr/sbin/sogo-tool expire-autoreply authname:authpassword * * * * * sogo /usr/sbin/sogo-ealarms-notify
Fehlermeldung: im LOG /var/log/sogo/sogo.log
 sogod [2943]: <0x0xaa90c0[SOGoProductLoader]>   AdministrationUI.SOGo, MailPartViewers.SOGo, SchedulerUI.SOGo, Mailer.SOGo, MainUI.SOGo, ContactsUI.SOGo, PreferencesUI.SOGo, Contacts.SOGo, CommonUI.SOGo, MailerUI.SOGo, Appointments.SOGo
 sogod[2943]   Assertion failed in UIxComponent(instance), method initialize.  invalid superclass (SoComponent) version 0 !
 /usr/sbin/sogod: Uncaught exception NSInternalInconsistencyException, reason: UIxComponent.m:77  Assertion failed in UIxComponent(instance), method initialize.  invalid superclass (SoComponent) version 0 !
Lösung:
   Versionen der Pakete prüfen
   libsope-core4.9 libsope-gdl1-4.9 libsope-ldap4.9 libsope-mime4.9 libsope-xml4.9 sope4.9-gdl1-mysql sope4.9-libxmlsaxdriver
dpkg -l | grep sope dpkg -P --force-all libsope-core4.9 libsope-gdl1-4.9 libsope-ldap4.9 libsope-mime4.9 \ libsope-xml4.9 sope4.9-gdl1-mysql sope4.9-libxmlsaxdriver apt-get install libsope-core4.9 libsope-gdl1-4.9 libsope-ldap4.9 libsope-mime4.9 \ libsope-xml4.9 sope4.9-gdl1-mysql sope4.9-libxmlsaxdriver