# Installation von OTOBO auf lagerkraut Im wesentlichen folgt die Installation der [offiziellen Anleitung](https://doc.otobo.org/manual/installation/stable/de/content/installation.html). 1. ```wget https://ftp.otobo.org/pub/otobo/otobo-latest-10.0.tar.gz``` 2. ```tar xvzf otobo-latest-10.0.tar.gz``` 3. ```cp -r otobo-10.0.7/ /opt/otobo``` 4. ```perl /opt/otobo/bin/otobo.CheckModules.pl -list``` 5. ```apt install libdatetime-perl libdatetime-timezone-perl libmoo-perl libnamespace-autoclean-perl libsub-exporter-perl libyaml-libyaml-perl libauthen-sasl-perl libauthen-ntlm-perl``` --> Die Module fehlten laut obiger Ausgabe. 6. ```useradd -r -U -d /opt/otobo -c 'OTOBO user' otobo -s /bin/bash``` 8. ```usermod -G www-data otobo``` 9. ```cp /opt/otobo/Kernel/Config.pm.dist /opt/otobo/Kernel/Config.pm``` 10. ```apt install libdbd-pg-perl``` --> Auf dem Server ist schon PostgreSQL installiert. Ich würde daher versuchen, auch diese DB zu nutzen. Das Perlmodul wird dafür benötigt. 11. ```apt install fcgiwrap``` 12. ```wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -``` 13. ```echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list``` 14. ```apt update``` 15. ```apt install elasticsearch``` 16. ```/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment``` 17. ```/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu``` 18. ```systemctl restart elasticsearch``` 20. Setzen der Dateirechte: ```/opt/otobo/bin/otobo.SetPermissions.pl``` 23. DNS-Record für office.kraut.space 24. ```echo office.kraut.space >> /etc/dehydrated/domains.txt``` 25. Webserverconfig angepasst 26. ```dehydrated -c``` 27. ```systemctl restart nginx``` 29. Erstkonfiguration: ```http://localhost/otobo/installer.pl ``` 30. * Verknüpfung mit der Datenbank 31. * Mailkonfiguration übersprungen ## Installation vom Mailserver ### Dovecot 1. Dovecot übergibt nach erfolgreichem Login die Rechte an einen weniger privileierten Nutzer. Bei uns soll der vmail heißen. Die Mails sollen nicht in den Homeverzeichnissen der Benutzer, sondern zentral unter /srv/vmail/ liegen. ```vmail``` ist dann für die Zugriffe auf die Mails verantwortlich. Dazu bereiten wir vor: * ```useradd --home-dir /srv/vmail --user-group --shell /usr/sbin/nologin vmail``` * ```mkdir /srv/vmail/``` * ```chown -R vmail /srv/vmail``` * ```chgrp -R vmail /srv/vmail``` * ```chmod -R 750 /srv/vmail``` 2. Die notwendigen Pakete für dovecot installieren: * ```apt install dovecot-core dovecot-imapd dovecot-lmtpd``` 3. Eine weitere Vorbereitung dient der Stärkung des Diffie-Hellman-Schlüsselaustausches: * ```openssl dhparam -out /etc/dovecot/dh4096.pem 4096``` 4. Die Konfiguration von Dovecot findet sich unter /etc/dovecot/. Die Hauptkonfigurationsdatei ```dovecot.conf``` bindet lediglich drei Sachen ein: * die verfügbaren Protokolle unter ```/usr/share/dovecot/protocols.d/``` * alle Konfigurationsdateien unterhalb von ```./conf.d/``` * wenn vorhanden eine Datei ```local.conf``` 5. Wir lassen die Hauptkonfigurationsdatei wie sie ist und editieren die Konfigurationsdateien unterhalb von ```conf.d/```. 6. In ```10-ssl.conf``` geben wir die Pfade zu den SSL-Schlüsseln und der ```dh4096.pem``` an. Da wir bei Zugriffen von ```localhost``` ohne TLs auskommen wollen, setzen wir ```ssl = yes``` anstelle von ```required```. 7. In ```10-auth.conf``` setzen wir: * ```auth_mechanisms = plain login``` * kommentieren ```!auth-system.conf.ext``` aus und ```!auth-passwdfile.conf.ext``` ein. (Nicht alle Benutzer die Mails empfangen sollen, dürfen sich einloggen. Deshalb bekommt Dovecot eine eigene passwd. Diese hat den gleichen Aufbau wie ```/etc/passwd```. Der Hash für das Passwort läßt sich mittels ```doveadm pw -s SHA512-CRYPT``` erzeugen. Per default heißt diese Datei ```./users```.) 9. In ```10-mail.conf``` bestimmen wir das den Ort und das Format der Mailboxen, sowie den Nutzer, an den Dovecot nach erfolgreichem Login seine Rechte abgibt. Die Location-Angabe bedeutet, daß Dovecot das Maildir-Format benutzt und die Mailboxen unterhalb des Homeverzeichnisses (von ```vmail```) in einem Pfad der Form ```/domain/nutzername``` zu finden sind. * ```mail_uid = vmail``` * ```mail_gid = vmail``` * ```mail_privileged_group = vmail``` * ```mail_location = maildir:~/%d/%n``` 10. In ```10-master.conf``` nehmen wir die Anbindung an Postfix vor. Dazu stellt Dovecot Schnittstellen für Authentifizierung und das Local Mail Transport Protocol (LMTP) zur verfügung. * ```service lmtp {``` ```unix_listener /var/spool/postfix/private/dovecot-lmtp {``` ```mode = 0660``` ```group = postfix``` ```user = postfix``` ```}``` ```user = vmail``` ```}``` * ```service auth {``` ```### Auth socket für Postfix``` ```unix_listener /var/spool/postfix/private/auth {``` ```mode = 0660``` ```user = postfix``` ```group = postfix``` ```}``` ```### Auth socket für LMTP-Dienst``` ```unix_listener auth-userdb {``` ```mode = 0660``` ```user = vmail``` ```group = vmail``` ```}``` ```}``` #### Wie weiter? * TLS erzwingen? * Nur an das lokale Interface binden? * TLS von aussen, Plain von localhost? * Die Postfächer in einen Unterordner verlagern, falls wir Dovecot später mal erweitern wollen? (Sieve, Spamfilter) ### Postfix Postfix-Config entsprechend https://thomas-leister.de/mailserver-debian-buster/#etc-postfix-main-cf Der Eintrag ```virtual_transport``` sorgt nur dafür, daß virtuelle Benutzer (Benutzer, die keinen Unix-Account auf der Maschine haben) an Dovecot weitergeleitet werden. Für 'richtige' Benutzer (Benutzer hat einen Account auf der Maschine) ist noch ein ```mailbox_transport``` nötig. * ```mailbox_transport = lmtp:unix:private/dovecot-lmtp``` ### Postresql 1. Benutzer für die Datenbank anlegen: ```sudo -u postgres createuser -P -d otobo``` 3. Datenbank für Benutzer otobo anlegen: ```sudo -u postgres createdb -O otobo otobodb``` 5. Die Rechte an der Datenbank ```otobodb``` an den Benutzer otobo übergeben: ```GRANT SELECT, INSERT, UPDATE, DELETE ON otobodb TO otobo;``` ### Import der DB * ```apt install sshpass``` * ```SecureMode``` deaktivieren: In der Datei ```/opt/otobo/Kernel/Config/Files/ZZZAAuto.pm``` nach ```SecureMode``` suchen und Wert auf ```0``` setzen. Über die Oberfläche in OTOBO funktionierte das Ändern des Wertes nicht. * Temporäre Datenbank für den Dump der OTRS-Datenbank anlegen: ```sudo -u postgres createdb -O otobo otrsdb``` * Datenbank mit dem Dump befüllen: ```sudo -u otobo psql -U otobo otrsdb <otrs.dump``` * Aufruf von ```https://otobo.example.org/otobo/migration.pl```. Die entsprechenden Einstellungen setzen und die Migration starten. Leider schlägt die Migration derzeit fehl. ## Aktualisierung der OTOBO-Module * sudo /usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment * sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment * sudo /usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-icu * sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu ## Hilfreiche Seiten * https://www.eigener-server.ch/html/web-server/debian/postfix-dovecot/ * https://thomas-leister.de/mailserver-debian-buster/ ## TODO * Migration der alten Datenbank * Nur die Ticketdaten übertragen * Muss es wirklich Zugriff auf das Live-OTRS geben? Ich habe nur eine Kopie des Verzeichnisses. * Die Cronjobs und Services bei OTRS kann ich nicht stoppen. Kann Tim das machen? *
{}