Just another IT- & Travel-Blog

Menü Schließen

Kategorie: Software & Anwendungen (Seite 1 von 2)

Redis Installation unter Debian

Redis (Icon)

Für ein neues Projekt werfe ich gerade einen Blick auf die In-Memory-Datenbank Redis. Die in diesem Beitrag beschriebene Demo-Installation läuft auf einem minimalen Debian 9 Laborsystem und nutzt Redis 3.2 aus dem Standard-Repo.

Weiterlesen

OpenDKIM und Postfix

Postfix Mailserver (Icon)

Beim Versuch, die Mails meines Postfix-Mailservers möglichst simpel mit DKIM zu signieren bin ich auf ein schlecht dokumentiertes Feature von OpenDKIM gestoßen.

Da der Mailserver nur für eine Handvoll Domains und ein sehr überschaubares Mailvolumen genutzt wird war es mir wichtig, die Konfiguration möglichst einfach zu gestalten. Daher wollte ich uA. nur einen Schlüssel für das Signieren aller ausgehenden Mails verwalten.

In der opendkim.conf lässt sich dabei mit den Direktiven „Domain *“ und „KeyFile …“ ein Schlüssel für alle Domains zuordnen. Voraussetzung ist natürlich, dass alle Domains denselben „Selector“ verwenden (können).

Auszug aus der Config:

Selector k201903 # Selector für ALLE Domains
Domain   *
KeyFile  /etc/opendkim/keys/k201903.private # Key für ALLE Domains

Hier noch die vollständige Konfiguration incl. dem Einbinden von OpenDKIM in Postfix als Milter…

Weiterlesen

Apache Tomcat und Active Directory Authentifizierung

Apache Tomcat

Via JNDI-Realm kann Apache Tomcat angewiesen werden, Benutzer, Gruppen und Rollen aus einer LDAP-Quelle, zB. Active Directory zu laden. Die größte Herausforderung liegt darin, die AD-Gruppen zu Tomcat-Rollen zu „mappen“.

Sofern die Rolle der Tomcat Applikation dem Namen der AD-Gruppe entspricht ist das Mapping trivial. Wenn nicht – zB. weil es eine Konvention für AD-Gruppennamen gibt und die Legacy Tomcat-Applikation fix codierte Rollennamen erwartet… siehe Workaround unten.

Weiterlesen

Berechtigungen für nginx Entwicklungsumgebung

CentOS

Eine Warnung gleich zu Beginn: die in diesem Artikel beschriebenen Berechtigungen sind für eine Entwicklungsumgebung gedacht. In einer Produktivumgebung sollten die Berechtigungen weitaus restriktiver gesetzt werden!

Auf meinem CentOS Entwicklungsserver läuft nginx unter dem gleichnamigen Benutzer. Zum Bearbeiten der Dateien verwende ich einen zusätzlichen Benutzer „tom„; dieser ist Mitglied in der „nginx“ Gruppe.
Die Websites werden im Verzeichnis /srv/www abgelegt. Um diese einigermaßen komfortabel via SSH/SFTP vom Client aus bearbeiten zu können sollten „nginx“ als Besitzer und Gruppe der Dateien und Verzeichnisse gesetzt werden. Das Verzeichnis /srv selbst gehört „root:root„, um die Sicherheit geringfügig zu erhöhen:

Weiterlesen

Gzip Kompression mit nginx

Nginx

Um die gzip Kompression unter nginx zu aktivieren sind ein paar Konfigurationseinträge in in der nginx Konfiguration vorzunehmen. Die Konfiguration kann je „server“, „location“ oder direkt im Abschnitt „http“ hinterlegt werden.

Weiterlesen

Murmur unter CentOS installieren

Mumble

Kürzlich hatte ich Gelegenheit, einen Mumble Server (aka „Murmur“) unter CentOS 6 aufzusetzen. Als Datenbank verwende ich MySQL und als Verwaltungsoberfläche das „MyMumb Panel“ (s. https://github.com/dieonar/MyMumb-Panel).

Nach der sehr einfachen Installation hat es beim Einrichten des init.d Scripts angefangen zu haken, weshalb meine Dokumentation (noch) etwas dünn ist. Ergänzungen folgen.

Weiterlesen

Java WebArchives für Apache Tomcat erstellen

Java

Zur einfacheren Handhabung können Java WebApplications in .war-Dateien („Web Archive“) verpackt werden. Dazu wird das Java Development Kit (JDK) benötigt – dieses ist auf jedem Tomcat-Server im Verzeichnis %JAVA_HOME% installiert.

Weiterlesen

Apache Tomcat Connector „mod_jk“ konfigurieren

Apache Tomcat

Mit Hilfe des Moduls „mod_jk“ kann ein Apache Webserver als „Reverse Proxy“ Anfragen an einen Tomcat Dienst entgegennehmen und an diesen weiterleiten. Es wird dadurch uA. möglich, Applikationen auf „internen“ Tomcat-Servern über einen öffentlichen Apache Webserver zu veröffentlichen.

Weiterlesen

WebApp in Apache Tomcat konfigurieren und über HTTPd ausliefern

Die Migration eines alten JSP-Projektes auf einen neuen Server hat mich kürzlich dazu gebracht, etwas Zeit in Apache Tomcat zu stecken und die Konfiguration zu dokumentieren. Ausgangspunkt war eine JSP Applikation (WebApp), die über einen bestehenden Apache HTTPd Webserver ausgeliefert werden sollte.

Die folgende Beschreibung bezieht sich auf einen Windows Server, sollte sich unter Linux aber ebenso implementieren lassen.

Weiterlesen

Apache Tomcat unter Windows installieren

Die Anleitung bezieht sich auf Apache Tomcat 7.0 und verwendet die Java Server JRE (ebenfalls Version 7).

Vorbereitung

Weiterlesen

JCBC driver für Apache Tomcat installieren

  1. Download MySQL JDBC Connector unter: http://dev.mysql.com/downloads/connector/j/3.1.html
  2. Zip-File entpacken, benötigt wird die vorkompilierte Datei „mysql-connector-java-5.x.y-bin.jar“
  3. Diese Datei im Tomcat-Verzeichnis %CATALINA_HOME%\lib ablegen
  4. Tomcat-Service neu starten

Apache HTTPd unter Windows

Mit Hilfe der durch die Apache Lounge bereitgestellten HTTPd Binaries ist es recht komfortabel möglich, den Apache Webserver unter Windows zu betreiben. Hier eine kurze Zusammenfassung der Installation auf einem meiner Laborsysteme.

Weiterlesen

Apache HTTPd mit SSL konfigurieren

Da die Dokumentation zur Verwendung von SSL-Zertifikaten unter Apache HTTPd nicht immer verständlich geschrieben ist hier eine kurze Zusammenfassung der Konfiguration meines Laborsystems.

Die folgenden Schritte wurden auf einem Windows Server durchgeführt, sollten mit geringen Anpassungen aber auch unter Linux funktionieren.

Weiterlesen

Log rotation für Apache HTTPd unter Windows

Mithilfe des mod_log_rotate können auch mit Apache tägliche Logs erstellt werden. Dazu wird die Direktive „CustomLog“ um strftime()-Kompatible Parameter erweitert.

Das Modul stellt folgende Direktiven zur Verfügung (Auszug aus der Doku):

  • RotateLogs On|Off:
    Enable / disable automatic log rotation. Once enabled mod_log_rotate takes responsibility for all log output server wide even if RotateLogs Off is subsequently used. That means that the BufferedLogs directive that is implemented by mod_log_config will be ignored.
  • Rotate LogsLocalTime On|Off:
    Normally the log rotation interval is based on UTC. For example an interval of 86400 (one day) will cause the logs to rotate at UTC 00:00. When this option is on, log rotation is timed relative to the local time.
  • RotateInterval <Interval> [<Offset>]:
    Set the interval in seconds for log rotation. The default is 86400 (one day). The shortest interval that can be specified is 60 seconds. An optional second argument specifies an offset in minutes which is applied to UTC (or local time if RotateLogsLocalTime is on). For example RotateInterval 86400 60 will cause logs to be rotated at 23:00 UTC.

Die zugehörigen Einträge in der httpd.conf:

LoadModule log_rotate_module modules/mod_log_rotate.so

Um tägliche Logs welche um 00:00 lokaler Zeit gewechselt werden zu erzeugen wird die CustomLog-Direktive folgendermaßen angepasst:

<IfModule log_rotate_module>
  CustomLog "logs/access_%Y%m%d.log" combined
  RotateLogs On
  RotateLogsLocalTime On
</IfModule>

Quellen:

SMTP status codes

MailEnable

Vor einer Weile war in der MailEnable KnowledgeBase eine kompakte Tabelle mit SMTP Statuscodes zu finden. Die Tabelle wurde Anfang 2010 durch einen umfangreichen und sehr detailierten Troubleshooting-Guide ersetzt: ME020032 – INF: SMTP Connector Inbound Response Codes.

Hier die ursprüngliche Tabelle zur einfachen Übersicht:

SMTP Status Codes

Status 2xx „Success“

CodeBedeutung
200nonstandard success response (see rfc876)
211System status, or system help reply
214Help message
220<domain> Service ready
221<domain> Service closing transmission channel
250Requested mail action okay, completed
251User not local; will forward to <forward-path>

Status 3xx „Wait for“

CodeBedeutung
354 Start mail input; end with <CRLF>.<CRLF>

Status 4xx „Temporary Error“

CodeBedeutung
421Service not available, closing transmission channel
422The recipient has exceeded their mailbox limit
431Not enough disk space on the delivery server; may be reported as out-of-memory error
432the Administrator has frozen the queue
441Intermittent network connection, the server has not yet responded
442The server started to deliver the message but then the connection was broken
446Too many hops. Most likely, the message is looping
447Timeout occurred, check server connection
449A DNS problem occurred; check your smart host setting on the SMTP connector
450Requested mail action not taken: mailbox unavailable
451Requested action aborted: local error in processing
452Requested action not taken: insufficient system storage
465Your server does not have the correct language code page installed

Status 5xx „Permanent Error“

CodeBedeutung
500Syntax error, command unrecognized
501Syntax error in parameters or arguments
502Command not implemented
503Bad sequence of commands
504Command parameter not implemented
510Bad email address
511Mailbox not found
513Relaying denied or Address type incorrect
514Two objects have the same address
515Destination mailbox address invalid
516Mailbox has been moved
517Command violates RFC 821; most likely missing < > around email addresses
521Server does not accept incoming mail
522Recipient has exceeded their mailbox limit
523Recipient cannot receive messages this big
524Most likely, a distribution list or group is trying to send an email
530Access denied
531Mail system full; most likely Exchange database full
532System not accepting network messages
533Remote server has insufficient disk space to hold email
534Message too big
535Multiple Virtual Servers are using the same IP address and port; see MS KB321721 „Sharing SMTP“
540There is no DNS server that can resolve this email address
541No answer from host
542Bad connection
543Routing server failure, no route available
544Cannot find the next hop, check the Routing Group Connector
546Tricky looping problem, a contact has the same email address as an Active Directory user
547Delivery time-out
548Bad recipient policy
550Requested action not taken: mailbox unavailable
551User not local; please try
552Requested mail action aborted: exceeded storage allocation
553Requested action not taken: mailbox name not allowed, possibly more recipients than allowed
554Transaction failed
555Wrong protocol version
563More than X attachments
571Permission problem, most likely anonymous user is trying to send mail to distribution list
572Distribution list cannot expand
573External IP address of ISA server does not match SMTP publishing policy
574Extra security features not supported, check delivery server settings
575Cryptographic failure, try a plain message with encryption
576Certificate problem, encryption level maybe too high
577Message integrity problem

SMTP 550

Der Statuscode 550 (oder 5.5.0) scheint ein Spezialfall mit unterschiedlicher Bedeutung zu sein. Im besten Fall lässt sich über die mitgelieferte Text-Statusmeldung mehr herausfinden, zB. deutet „550 this address is not allowed“ auf einen unauthorisierten Benutzer hin (SMTP-Auth im Email Client vergessen?). Die textuelle Fehlermeldung ist in verschiedenen Email-Serverprodukten meist unterschiedlich formuliert. So bedeuten „550 queue expired“ unter Microsoft Exchange als auch „550 message expired“ unter MailEnable, dass die Nachricht nicht innerhalb der vorgegebenen Zeit zugestellt werden konnte.

Quellen und zusätzliche Informationen:

Optimization WordPress Plugins & Solutions by W3 EDGE