Linux

SELinux Cheat Sheet

Da ich wieder einmal mit SELinux gekämpft habe, schreibe ich mir mal die relevanten Befehle auf. Wahrscheinlich kann ich sie danach auswendig.

ein bisschen Doku unter https://wiki.centos.org/HowTos/SELinux

Apache als Exchange OWA Reverse Proxy

Da Microsoft den TMG aka ISA zu 2015 einstellen will und eine Loadbalancer als Reverse Proxy etwas übertrieben ist, baue ich dafür immer wieder mal einen Apache mit mod_proxy. Und weil ich mir das nicht immer zusammensuchen will, hier wieder ein Artikel nur für mich selbst *g*

Zum Einsatz kommt ein Linux nach Wahl mit Apache und einigen Module. (mod_ssl, mod_proxy, mod_proxy_connect, mod_proxy_html, mod_headers, mod_deflate)

Dann noch etwas Konfiguration und fertig ist der einfache Proxy.

Der Exchange wird hier unter der IP: 192.168.111.2 betrieben.

Es werden nur die Verzeichnisse /owa, /ecp und /Microsoft-Server-ActiveSync weitergereicht.

Zum Weiterreichen von /ews (Exchange web Services) sind noch einige Anpassungen notwendig, da der Apache ab Version 2.0.55 mit dem Chunked Header ein Problem hat.

Weitere Links dazu im Netz

http://www.msxfaq.de/internet/apache.htm

http://geekerrific.blogspot.de/2010/08/exchange-2010-cas-apache-2-reverse.html

Nagios + check_mk Part 2 – jmx4perl

heute noch die Grundkonfiguration von JMX4PERL von ConSol

Die gute Nachricht der aktuellen Version (OMD 0.56), man muss im Java Container (Tomcat) den JMX Remote Port nicht mehr aktivieren. Die schlechte Nachricht, man muss ein kleines WAR Paket „jolokia“ deployen.
http://www.jolokia.org/download.html
Im Tomcat kann/sollte man dafür Authentifizierung aktivieren. Über die URL http://server.domain.tld:xxxx/j4p sollte dann eine JSON formatierte Ausgabe an Daten erscheinen.
Dann die config Dateien für jmx4perl anpassen:

etc/jmx4perl/server.cfg

etc/jmx4perl/jmx4perl.cfg

Dann sollte ein Aufruf von „jmx4perl http://localhost:8090/j4p“ diverse Informationen zum Tomcat liefern.
checks:

 

 

Limit Postfix E-Mails pro Stunde

Nachdem aus dem OTRS in der Nacht 25.000 E-Mails versand wurden, hatte uns unser Provider vorübergehend auf seinen Relay Servern blacklistet.
Um solche nächtliche Überraschungen künftig zu vermeiden, habe ich einen Policy Server für Postfix geschrieben. Dieser wird auf dem ausgehenden Mail Relay eingebunden und gibt nach 750 E-Mails pro Stunde dem Exchange DEFER zurück gibt, worauf dieser die Mails in seiner Queue behält.

Der Policy Server liest aus der Datei /tmp/postfix-counter den aktuellen Count und den Timestamp des letzten Counterreset. Ist der Timestamp älter als eine Stunde, wird der Counter auf 1 gesetzt, sonst um 1 erhöht und wieder in die Datei zurückgeschrieben.

Zur Überwachung habe ich einen einfachen Nagios Check geschrieben, welcher den Counter ausliest, die Anzahl Mails prüft und als Performancedaten ausgibt. Die enstandenen PNP Graphen sehen dann wie Sägezähne aus.

Im Postfix wird das Ganze in der main.cf eingebunden.

 

 

Exchange Message Header cleanup in Postfix

Wer sich mal den Header seiner ausgehenden E-Mail angesehen hat, wird vielleicht mit Schrecken festgestellt haben, das Exchange Server dort etwas zu gesprächig sind.
Da man für eine DKIM Signatur am besten noch ein ausgehendes Relay zwischen Exchange und Internet schaltet, kann man mit Postfix sehr schnell für Abhilfe schaffen.
Die DKIM Signatur erfolgt nach der Verarbeitung der „header_checks“, wir können hier also noch beliebig ändern.

Zuerst ersetze ich die „Received“ Zeile der Übertragung vom Exchange Server an das Postfix Relay mit einem Eintrag von localhost. Hier kann man auch einen beliebigen anderen MTA z.B. Exim eintragen. Er sollte nur nicht zu fantasievoll sein, Antispam Systeme sind nachtragend. Das gilt auch für die unbedingt richtige Syntax! (MessageID und Uhrzeit)

Dann werden alle X-Header mit Verweisen auf interne IP Adressen gelöscht.

Zuletzt lösche ich noch X-Header mit Verweisen auf den User-Agent, Antivirus und Antispam und wer sich da sonst noch einträgt.
Benutzt man z.B. OTRS, sollte man hier unbedingt den X-Header mit der Software Versionsnummer löschen, aber den X-Header mit der Ticketnummer lassen.

zum testen legt man sich ein Mailkonto bei hotmail an und schaut sich dort den Quelltext der E-Mail an.

 

 

Nagios, Mailgraph, check_logfile

zur Statistischen Erfassung war auf dem alten Mailserver „mailgraph“ installiert. Das Problem für mich war, das ich die Daten nicht brauchbar ins Nagios bekommen habe (check_rrd etc).
Die Lösung: Das Maillog mit check_logfile parsen und das Ergebniss als Performance Daten für Nagios ausgeben.

Aufruf von check_logfile in der nrpe.cfg:

In der logfile.cfg sind die Parser für

  • recive – Mail an den Exchange weitergeleitet
  • bounce – allgemeine Bounces
  • block – durch RBL geblocke Mails
  • block-nouser – wegen ungültiger Benutzer geblockte Mail

PHP 5.3.3 PHP-FPM für Nginx compilieren

Nachdem ja wie angekündigt in PHP 5.3.3 FPM fest integriert ist, habe ich also meinen Server umgestellt.
PHP 5.3.3 herunterladen und dann geht irgendwie alles nach Standardprozedur …

Die notwendigen Anpassungen an der php-fpm.conf sind äquivalent eines gepatchten 5.2.
Gestartet wird der FPM Prozess dann über:

Was auffällt, das keine pear und pecl bei der Installation dabei sind. Ich habs dann irgendwie doch noch von Hand nachinstalliert bekommen.

Nginx auf Debian installieren / compilieren Version 0.8.50

Nachdem Nginx 0.7.65 recht erfolgreich auf meinem Server läuft, hab ich mich mal an der Version 0.8.50 versucht.
Das ganze wieder nach bewährtem Schema aus Nginx auf Debian installieren / compilieren

Schon war ich auf der neuen Version.

Wer aufgepasst hat, bemerkt, das ich ein paar neue configure Parameter benutze:

entfernt aus Image Dateien die EXIF informationen, wenn diese mehr als 5% der Dateigrösse ausmachen. Ich hab schonmal 30kb Information in Icons gefunden.

aktuelle Linux Kernel können es, warum nicht benutzen? (OK, ist jetzt keine wirkliche Erklärung)

Das wichtigste:

Ein Blick in den Firebug zeigt im Header, das Nginx braf seine Releasenummer mit überträgt.
Ich bin kein Freund davon, unnötige Informationen über die Software und Versionen Preis zu geben. Schon garnicht an Bots und Spider!
Unter http://wiki.nginx.org/NginxHttpHeadersMoreModule gibt es ein Modul, um einen belibige Felder im Header zu überschreiben/setzen. Den Sourcecode gibts auf Github.
http://github.com/agentzh/headers-more-nginx-module

In der /etc/nginx/nginx.conf wird dann im „http“ Abschnitt das zu setzende Headerfeld angegeben:

Wer will, kann sich hier auch als Apache tarnen 😉

ESX Fallstricke

Vor mir lag ein 19″ NoName Dualprozessor, 16GB Ram und 16x 1TB SATA Disks. Die richtige Machine um ESX 4 zu installieren.
Raidcontroller war ein Areca ARC-1160.
Also 2 Disks Raid 0 fürs System, 12 Disks Raid Level5 und 2 HotSpare.
CD Einlegen, ESX Setup starten und benutzerdefinierten Treiber laden.
Beim Auswählen des Datenträgers fürs VMFS auswählen … warum kann ich den 11 TB Datenträger nicht auswählen?
Schon nach wenigen Minuten die Antwort, ESX kann leider nur 2 TB Datenträger ansprechen … also nochmal die Raid’s neu einrichten.
5×3 Disks Raid 5 und 2 HotSpare, alle Disks ~1,9TB. Wieder die CD rein, Custom Treiber laden und erstmal alles auf das erste Raid installieren.
Installation macht und tut und … BUMS …
„Errno 1 Operation Not Permitted /mnt/sysimage/boot“
Also wieder Google befragt, dieses mal etwas länger bis ich http://communities.vmware.com/thread/272494 fand.
Nochmal den älteren Treiber herunterladen und wieder das Setup starten, custom Treiber laden …

Endlich läuft der ESX, also mal das VMFS Volume über die restlichen Raid’s erweitern. Mit 11 TB genug Platz um den Exchange mit allen Datenträgern zu schlucken.

Auf dem Exchange den VMWare Converter gestartet, Migration auf den ESX ausgewählt und … warum sieht der Converter den einen Datenträger mit 1,1 TB Grösse nicht?
Wieder Google befragen, aha, der Converter kann nur maximal 920GB große Disks lesen!
Datenträgerverwaltung aufgerufen und das Volume auf 820GB verkleinert, aber er wollte sie einfach nicht.
Na gut, man kann den Inhalt ja auch manuell im Nachhinein kopieren.

Irgendwann lief dann das Convert auch mit turboschnellen 30 MB pro Sekunde … bevor der Converter es ausgerechnet hat, hat die präzise Schätzung ergeben, das man schnell mal auf den Abbrechen Knopf drückt und das Projekt auf unbestimmte Zeit verschiebt …

6 Stunden Installationsorgie, Erkältung und Reuma im Ellenbogen von der Klimaanlage …