Inhaltsverzeichnis 1 Vorwort 2 Vorbereitung 2.1 nur für die Installation benötigt 2.2 dauerhaft benötigt 3 Debian vorbereiten 3.1 benötigte Packages 3.2 OTRS herunterladen 3.3 neuen Benutzer anlegen 4 OTRS Installation 4.1 Vorbereiten von OTRS für die Installation 4.1.1 Erstellen der Konfigurationsdateien 4.1.2 Rechte für das Perl-Script setzten 4.2 Apache-Konfiguration setzten 4.3 Installation ausführen 4.4 Systemkonfiguration 4.4.1 mysql Beschleunigung einrichten 4.4.2 Config.pm bearbeiten 4.4.2.1 Domänencontroller als Array übergeben 4.4.2.2 Agentenlogin im Backend mit ActiveDirectory Credentials via LDAP 4.4.2.3 Kundendatenbank zusätzlich zur Datenbank über ActiveDirectory abgleichen 4.4.2.3.1 Abgleich der Kundendaten nur per LDAP und nicht via Datenbank 4.4.3 Nach Abschluss der Setupkonfiguration 5 OTRS Konfiguration 5.1 OTRS Installer deaktivieren 5.2 S/MIME für OTRS einrichten 5.2.1 Verzeichnisse erstellen 5.2.2 Zertifikat vorbereiten 5.2.3 S/MIME in SysConfig einschalten 5.2.4 Zertifikat einlesen 5.2.5 Weitere vertrauenswürdige Zertifikate einlesen 5.3 Mail Postfach einrichten 6 Quellen Vorwort Diese Anleitung ist aus der internen Setup-Dokumentation entstanden, die wir seit 2010 erstellt haben. Die Installationsanleitung ist für das Einrichten eines OTRS unter Debian Lenny oder Squeeze gedacht. Das Kapitel OTRS Konfiguration ist weitestgehend unabhängig von Debian und kann auch ohne Probleme für andere Betriebssysteme verwendet werden. Nur bei S/MIME muss die Installation von openssl und die Einrichtung der S/MIME Funktionalität auf das jeweilige Betriebssystem angepasst werden. Wir hoffen Ihnen damit helfen zu können. Über Rückmeldungen freuen wir uns sehr. Vorwort 1
Falls Sie Fragen haben oder Konfigurationen vermissen, schreiben Sie uns. Vielleicht können wir weiterhelfen oder unsere Anleitung ergänzen. Wir freuen uns, wenn Sie diese Anleitung verlinken möchten, bitten Sie aber, nicht direkt das PDF sondern die Webseite zu verlinken. Vorbereitung nur für die Installation benötigt Zeitbedarf: 3-5 Stunden mysql Administrator-Zugang für den Auto-Installer von OTRS falls S/MIME benutzt werden soll: Client-Zertifikat (Private-Key) Passwort für Private Key dauerhaft benötigt Debian Lenny oder Debian Squeeze mit installiertem Apache2 und openssl mysql Server (lokal oder extern) Mailpostfach mit IMAP oder POP3 Zugang Falls Login über Domänenaccount realisiert werden soll: Dienstaccount im ActiveDirectory (oder LDAP Domäne) für OTRS Debian vorbereiten benötigte Packages Es müssen folgende Packages vorhanden sein, die evtl. per aptitude install nachinstalliert werden müssen: libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libgd-text-perl libtext-csv-xs-perl libjson-xs-perl libgd-graph-perl libapache-dbi-perl Debian vorbereiten 2
Vollständiger Befehl: aptitude install libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libgd-text-perl libtext-csv-xs-perl libjson-xs-perl libgd-graph-perl libapache-dbi-perl OTRS herunterladen OTRS soll im Verzeichnis /opt/otrs entstehen: OTRS runterladen: wget http://ftp.otrs.org/pub/otrs/otrs-3.x.x.tar.gz Enpacken: tar xf /opt/otrs-3.x.x.tar.gz statischen Link setzten: ln -s /opt/otrs-3.0.8/ /opt/otrs neuen Benutzer anlegen useradd -r -d /opt/otrs/ -c 'OTRS user' otrs usermod -g www-data otrs OTRS Installation Vorbereiten von OTRS für die Installation Erstellen der Konfigurationsdateien cd /opt/otrs/kernel cp Config.pm.dist Config.pm cp Config/GenericAgent.pm.dist Config/GenericAgent.pm Rechte für das Perl-Script setzten cd /opt/otrs bin/otrs.setpermissions.pl --otrs-user=otrs --otrs-group=otrs --web-user=www-data --web-group=www-data /opt/otrs Apache-Konfiguration setzten Apache Konfigurationsdatei für OTRS in Apache Conf-Folder schieben cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/conf.d/otrs.conf Apache neustarten: /etc/init.d/apache2 restart OTRS Installation 3
Installation ausführen http:/www.ihr-otrs-server.de/otrs/installer.pl Workflow_-_OTRS_aufsetzen_-_published Folge den Schritten des Installers und richte die Datenbank ein SystemID sollte auf eine ID =! 10 gesetzt werden, da dies die Standard ID ist beim Einrichten der mysql Datenbank muss man OTRS einmalig einen Administratorzugang zu mysql übergeben. OTRS legt dann eine Datenbank und dazugehörige Benutzer an. Der Administratorzugang wird von OTRS nicht gespeichert Systemkonfiguration mysql Beschleunigung einrichten Durch die Beschleunigung baut Perl eine permanente Verbindung auf: gehe in Datei: /opt/otrs/scripts/apache2-perl-startup.pl unkommentiere "use Apache::DBI (); und trage darunter in die nächste Zeile: useapache::dbi->connect_on_init('dbi:mysql:datenbank::sqlserver.de', 'BENUTZERNAME', 'PASSWORT'); Der Eintrag muss dann folgendermaßen aussehen: use Apache::DBI (); Apache::DBI->connect_on_init('DBI:mysql:DATENBANK::sqlserver.de','BENUTZERNAME','PASSWORT'); use DBI (); starte Apache neu: /etc/init.d/apache2 restart Config.pm bearbeiten Folgende Codesnippets müssen in der Config.pm eingetragen werden, wenn der Login über ActiveDirectory bzw. LDAP realisiert werden soll: Domänencontroller als Array übergeben wird nur benötigt, wenn Logins über LDAP (z.b. im Active Directory / Windows Domäne ) geprüft werden sollen my @dc=('ldaps://ldap1.domain.de:3269','ldaps://ldap2.domain.de:3269'); Anmerkung: Bei Windows Domänen empfiehlt es sich, nicht auf den Standard LDAP Port 389 bzw. 636 (LDAP SSL) zu verbinden, sondern den Port 3268 bzw. 3269 (SSL) zu verwenden. Auf 3268/3269 gibt ein Windows Domänencontroller den Globalen Katalog aus. d.h. man findet alle User, Computer und Objekte. Verbindet man hingegen auf 389 findet nicht unbedingt alle Objekte, wodurch manche User nicht gefunden werden und sich auch nicht anmelden können. Installation ausführen 4
Agentenlogin im Backend mit ActiveDirectory Credentials via LDAP Voraussetzung: Das Array @dc wurde vorher einmalig definiert! $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP'; $Self->{'AuthModule::LDAP::Host'} = \@dc; $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=domain,dc=de'; $Self->{'AuthModule::LDAP::UID'} = 'samaccountname'; Hier müssen die Zugangsdaten des Dienstbenutzer eingetragen werden, damit das AD durchsucht werden kann: $Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=DIENSTUSER,OU=IT-Abteilung,dc=domain,DC=de'; $Self->{'AuthModule::LDAP::SearchUserPw'} = 'PASSWORT'; Kundendatenbank zusätzlich zur Datenbank über ActiveDirectory abgleichen (Dieser Abschnitt kann übersprungen werden, falls Kundendaten nicht aus dem Active Directory oder einem Domäne mit LDAP geladen werden sollen) Damit Kundendatenbank und und LDAP als Kundendatenquellen zusammen funktionieren, müssen beide Varianten in der Config.pm eingetragen sein. (Bemerkung: Standardmäßig ist die Kundendatenbank nicht in der Config.pm eingetragen) $Self->{CustomerUser} = { Name => 'Kunden-Datenbank', Module => 'Kernel::System::CustomerUser::DB', Params => { Table => 'customer_user', }, CustomerKey => 'login', CustomerID => 'customer_id', CustomerValid => 'valid_id', CustomerUserListFields => ['first_name', 'last_name', 'email'], CustomerUserSearchFields => ['login', 'last_name', 'customer_id'], CustomerUserSearchPrefix =>, CustomerUserSearchSuffix => '*', CustomerUserSearchListLimit => 250, CustomerUserNameFields => ['salutation','title','last_name'], CustomerUserPostMasterSearchFields => ['email','email2','email3'], CustomerUserEmailUniqCheck => 1, Map => [ [ 'UserSalutation', 'Salutation', 'salutation', 1, 0, 'var',, 0 ], [ 'UserTitle', 'Title', 'title', 1, 0, 'var',, 0 ], [ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var',, 0 ], [ 'UserLastname', 'Lastname', 'last_name', 1, 1, 'var',, 0 ], [ 'UserLogin', 'Username', 'login', 1, 1, 'var',, 0 ], [ 'UserEmail', 'Email (1)', 'email',, 1, 'var',, 0 ], [ 'UserEmail2', 'Email (2)', 'email2', 0, 0, 'var',, 0 ], [ 'UserEmail3', 'Email (3)', 'email3', 0, 0, 'var',, 0 ], [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var',, 0 ], [ 'UserPhone', 'Phone', 'phone', 1, 0, 'var',, 0 ], [ 'UserFax', 'Fax', 'fax', 1, 0, 'var',, 0 ], [ 'UserMobile', 'Mobile', 'mobile', 1, 0, 'var',, 0 ], [ 'UserOffice', 'Gebaeude & Raum', 'raum', 1, 0, 'var',, 0 ], [ 'UserStreet', 'Street', 'street', 1, 0, 'var',, 0 ], [ 'UserZip', 'Zip', 'zip', 1, 0, 'var',, 0 ], Agentenlogin im Backend mit ActiveDirectory Credentials via LDAP 5
}; Workflow_-_OTRS_aufsetzen_-_published [ 'UserCity', 'City', 'city', 1, 0, 'var',, 0 ], [ 'UserCountry', 'Country', 'country', 1, 0, 'var',, 0 ], [ 'UserComment', 'Comment', 'comments', 1, 0, 'var',, 0 ], [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int',, 0 ], ], Selections => { UserSalutation => { 'Herr' => 'Herr', 'Frau' => 'Frau', }, }, Anmerkung: Hier wurde die Datenbank um die Felder email2 und email3 zusätzlich ergänzt, damit man einem Kunden mehrere E-Mail Adressen zuordnen kann. Mit dem folgenden Code werden die Kundendaten auch über das LDAP abgeglichen: $Self->{CustomerUser1} = { Name => 'LDAP', Module => 'Kernel::System::CustomerUser::LDAP', Params => { Host => \@dc, BaseDN => 'DC=domain,DC=de', SSCOPE => 'sub', UserDN => 'CN=DIENSTUSER,OU=IT-Abteilung,DC=domain,DC=de', UserPw => 'PASSWORT', AlwaysFilter => '(&(!(objectclass=computer))(objectclass=user))', SourceCharset => 'utf-8', DestCharset => 'utf-8', Params => { port => 3269, timeout => 120, async => 0, version => 3, }, }, CustomerKey => 'samaccountname', CustomerID => 'samaccountname', CustomerUserListFields => ['givenname', 'sn','mail'], CustomerUserSearchFields => ['description', 'sn', 'samaccountname'], CustomerUserSearchPrefix =>, CustomerUserSearchSuffix => '*', CustomerUserSearchListLimit => 250, CustomerUserPostMasterSearchFields => ['mail'], CustomerUserNameFields => ['givenname','sn'], AdminSetPreferences => 0, Map => [ [ 'UserTitle', 'Title', 'title', 1, 0, 'var',, 0 ], [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var',, 0 ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var',, 0 ], [ 'UserLogin', 'Username', 'samaccountname', 1, 1, 'var',, 0 ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var',, 0 ], [ 'UserCustomerID', 'CustomerID', 'samaccountname', 0, 1, 'var',, 0 ], ], }; Anmerkung: Hier wird das Array @dc verwendet. Dieses muss in der Config.pm vorher definiert sein. (siehe einige Schritte weiter oben) Kundendatenbank zusätzlich zur Datenbank über ActiveDirectory abgleichen 6
Abgleich der Kundendaten nur per LDAP und nicht via Datenbank Trage den Code mit der Datenbank nicht ein Bennene $Self->{CustomerUser1} in $Self->{CustomerUser} um Soll aus OTRS auch die Benutzerdaten verändert werden können, sodass OTRS die Änderungen ins ActiveDirectory bzw. LDAP Verzeichnis zurück schreibt, benötigt der Dienstaccount zwingend Schreibrechte auf die Userobjekte. Nach Abschluss der Setupkonfiguration Starten Sie den Apache Webserver neu -> /etc/init.d/apache2 restart Erst mit dem Neustart von Apache lädt Perl gemachten Einstellungen OTRS Konfiguration Zum einfacheren Verständnis hier ein Bild des Admin-Menü bei OTRS 3.0.11 mit Kurzcodes, die im folgenden Abschnitt immer an den jeweiligen Anweisungen angebracht sind. OTRS Konfiguration 7
OTRS Installer deaktivieren Als Erstes muss unbedingt der OTRS Installer deaktiviert werden, da ansonsten von außen an OTRS manipuliert werden kann: OTRS Konfirguration aufrufen (A6.4) Rufe die Konfiguration Core auf SecureMode = Ja Workflow_-_OTRS_aufsetzen_-_published S/MIME für OTRS einrichten Verzeichnisse erstellen Erstelle die Verzeichnis für... private Keys: mkdir /opt/otrspriv/ public Keys: mkdir /opt/otrscert/ Verzeichnisse auf OTRS Benutzer als Besitzer buchen chown otrs:www-data /opt/otrspriv/ chown otrs:www-data /opt/otrscert/ Verzeichnisse mit Schreib/Lese/Ausführ-Berechtigung für Benutzer und Gruppe versehen chmod 770 /opt/otrspriv/ chmod 770 /opt/otrscert/ Zertifikat vorbereiten Das der private Schlüssel des Zertifikat muss im Format PEM vorliegen. Falls das Zertifikat als PFX vorliegt, muss es mit OpenSSL umgewandelt werden: openssl pkcs12 -in cert.pfx -out cert.cer Das Root-Zertifikat des E-Mail Zertifikats muss vorliegen Optimal ist es, wenn auch die Zwischenzertifikate als einzelne Zertifikate vorliegen Tipp: Über Thunderbird oder Firefox lässt sich die gesamte Zertifikatshierachie exportieren (d.h. Root- und Zwischencerts und der Public Key), wenn man die Details eines Zertifikats aufruft S/MIME in SysConfig einschalten Gehe in die OTRS SysConfig und rufe die Einstellungen für Crypt::SMIME auf und mache folgende Einstellungen: SMIME::CertPath -> /opt/otrscert/ SMIME::PrivatePath -> /opt/otrspriv/ SMIME -> JA OTRS Installer deaktivieren 8
Zertifikat einlesen Nachdem S/MIME aktiviert ist, lesen wir nun die Zertifikate ein: Gehe in das Menü S/MIME-Zertifikate bei den E-Mail Einstellungen und führe folgende Aktionen, in genau dieser Reihenfolge aus: Per Zertifikat hinzufügen das Rootzertifikat installieren Per Zertifikat hinzufügen die Zwischenzertifikate installieren Per Zertifikat hinzufügen den öffentlichen Schlüssel des E-Mail Zertifikat hinzufügen Per Privaten Schlüssel hinzufügen den priavten Schlüssel (im PEM Format) hinzufügen Weitere vertrauenswürdige Zertifikate einlesen Nun liest man über Zertifikat hinzufügen alle weiteren Root- oder Zwischenzertifikate ein, denen man vertrauen will. Ebenfalls kann man hier auch Clientzertifikate einlesen, die man benötigt, damit man einem Kunden eine verschlüsselte E-Mail schreiben kann. Es empfiehlt sich allerdings, dies später über die Kundenbearbeitung zu tun. Der Kunde kann übrigens auch selbst sein Zertifikat im Customers-Interface hochladen. Mail Postfach einrichten Gehe in die OTRS Konfiguration (Admin -> SysConfig) (A6.4) Rufe die Konfiguration Core auf SystemID = hier kann die SystemID gewechselt werden, falls man merkt, dass man mit anderen OTRS Systemen kollidiert FQDN = DNS-Name, unter dem die OTRS Webseite erreichbar ist, z.b. www.ihr-otrs-server.de HttpType = HTTPS wenn eine SSL Verschlüsselung auf dem Apache-Server eingerichtet ist, ansonsten HTTP DefaultUserLanguage = de Organization = Der Name Ihrer Organisation DefaultCharset = utf-8 ScriptAlias = otrs/ AdminEmail = E-Mail Adresse des OTRS Administrators NotificationSenderEmail = E-Mail Adresse die als Absender für alle Benachrichtigungen von OTRS erscheinen soll Rufe die Konfiguration Core::Sendmail auf SendmailModule = SMTP SendmailModule::Host = smtp.mailserver.de SendmailBcc = Falls alle ausgehenden Mails an eine E-Mail-Adresse, z.b. Backup geschickt werden sollen Alle Mails die aus OTRS geschickt werden, gehen zusätzlich BCC an diese Mail Adresse Es empfiehlt sich auch die eingehenden Mails an diese Mail Adresse senden zu lassen. Dann ist alles in einer Mailbox zusätzlich gesichert. Gehe zu Admin -> Postmaster-E-Mail-Konten (A3.1) Hier das E-Mail Konto hinzufügen Verteilung = Verteilung nach ausgewählter Queue Zertifikat einlesen 9
Queue = Hier die Queue eintragen, in die alle Mails einsortiert werden sollen Gültig = gültig Gehe zu Admin -> Postmaster-E-Mail-Konten (A3.2) Hier die Mail Adresse Quellen Natürlich mussten wir auch erst einmal lernen, wie ein OTRS auf Debian aufgesetzt wird. Vieles haben wir selbst herausgefunden. Oft haben wir Tipps und Hilfestellungen benutzt. Vielen Dank an: http://wiki.otrs.org/index.php?title=installation_on_debian_5.04_lenny http://doc.otrs.org/3.0/de/html/ http://forums.otrs.org/ Regionales Hochschulrechenzentrum Kaiserslautern http://www.rhrk.uni-kl.de Quellen 10