Zarafa Suche & Outlook Suche findet keine Einträge mehr

Heute hatte ein Kunde das Problem, dass weder in Outlook noch im Webaccess Einträge gefunden werden konnten. Die Einträge waren jedoch vorhanden.

Ein Blick in die Log-Datei /var/log/zarafa/search.log lieferte:

Mon Jun 15 15:18:38 2015: [0x7979f700] Unable to config system exporter: 8004010F
Mon Jun 15 15:18:38 2015: [0x7979f700] Change processing failed: 8004010F

Das heißt, dass der vorhandene Index ein Problem hat. Lösung ist, zarafa-search zu beenden die Dateien unter /var/lib/zarafa/index zu löschen (sicherheitshalber nur zu verschieben) und Dienst zarafa-search wieder zu starten.

Dies wird dann quittiert mit:

Mon Jun 15 15:18:46 2015: [0x7f799760] Stopping Zarafa search…
Mon Jun 15 15:19:26 2015: [0xdee8f760] Starting zarafa-search version 7,1,11,46050 (46050), pid 32041
Mon Jun 15 15:19:53 2015: [0xd6537700] Search thread started

Und schon liefert die Suche auch wieder sinnvolle Treffer.

Rechenzentren – VDI – FI-Schalter – Überwachung von Fehlerströmen

Für die Betreiber von Rechenzentren ist eine Sicherung des Personals gegen Kriechströme und Fehlerströme laut VDI Pflicht.

Hier gibt es zwei Ansätze. Ausstatten der Rechenzentren mit FI-Schutzschalter. Hier löst eine Sicherung aus und die Stromzufuhr ist unterbrochen. Dies möchte man eigentlich nicht, da ja durch eine Sicherung ein Großteil der IT-Landschaft stromlos ist und es somit zu Ausfällen kommt.

Der zweite Ansatz ist die konstante Überwachung der Fehlerströme. Hierzu gibt es z.B. von der Firma Bachmann aus Stuttgart Geräte die diesen Zweck erfüllen. Gekoppelt mit einem Monitoring-System kann vorbeugend bei Problemen alarmiert werden und der Betrieb ist nicht gefährdet.

Per SNMP weist sich das Gerät wie folgt aus:

.1.3.6.1.2.1.1.1.0 = STRING: Linux BLUENET2-3C001BDE 3.7.2-GHOST-Rev.: #1 Fri Apr 24 11:12:40 CEST 2015 armv5tejl

.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.31770.2.1.3.3026

.1.3.6.1.2.1.1.3.0 = Timeticks: (137979875) 15 days, 23:16:38.75

.1.3.6.1.2.1.1.4.0 = STRING: www.bachmann.com

.1.3.6.1.2.1.1.5.0 = STRING: BLUENET2-3C001BDE

.1.3.6.1.2.1.1.6.0 = STRING: MUChmann Technology GmbH & Co. KG

.1.3.6.1.2.1.25.1.4.0 = STRING: “mem=128M console=ttyS0,115200 root=/dev/mtdblock6 rw rootfstype=ubifs ubi.mtd=6 root=ubi0:P5_P7

Die zwei wesentlichen Werte per SNMP sind hier versteckt (in Milli Ampere):

Fehlerstrom differential Current DC .1.3.6.1.4.1.31770.2.2.8.4.1.5.0.4.0.255.255.255.0.8

Fehlerstrom differential Current AC .1.3.6.1.4.1.31770.2.2.8.4.1.5.0.4.0.255.255.255.0.7

Danke Peter für die Infos!

Java Applikationen, Applets, Servlets Klarstellung

Für Java gibt es drei Arten von Anwendungen.

Applications (laufen auf Clientseite und benötigen das JRE auf Clientseite – ausgewachsene Java-Anwendungen wie z.B.
der HP OpenView Client.

Applets die in einem Container – in der Regel in einem Webbrowser ablaufen – auch hier ist das JRE nötig.

Servlets – Anwendungen die nicht mehr im Browser sondern im Kontext des Webservers laufen – als auf Serverseite.
Für Servlets benötigt man auf Clientseite keine JRE mehr.

Um Servlets auf Serverseite auszuführen ist ein Web container nötig. Hierfür gibt es viele kommerzielle und freie Lösungen. Einige Bekannte sind Apache Tomcat, JBoss, Oracle WebLogic oder IBM WebSphere.

Danke Adrian für die Infos.

Siemens Gigaset C610 Nachfolger

Laut Gigaset-Hotline ist das C430IP der Nachfolger des C610. Auf Grund einer Rabattaktion ist jedoch das C430IP derzeit nicht lieferbar.
Gigaset empfiehlt den weiteren Nachfolger C430Go welcher kompatibel zu sein scheint.

SIP / Voip Debugging – notwendige Firewall Anpassungen SIP/2.0 404 Not Found

Wir haben uns bei unserem SIP-Provider registriert und können ausgehende Gespräche führen. Eingehende Gespräche werden jedoch an der FW geblockt:

Die Log-Datei zeigt folgendes:

IN=wan OUT= MAC= SRC=212.227.67.131 DST=ext-IP LEN=1313 TOS=0×00 PREC=0×00 TTL=57 ID=63290 PROTO=UDP SPT=5060 DPT=5060 LEN=1293

Normaler SIP-Verbindungsaufbau (INVITE) über Default-Port 5060 UDP.

Man könnte jetzt einfach den Port 5060 von aussen freigeben, damit erlaubt man jedoch den Angreifern div. Unsinn.
Wir schränken somit den Zugriff auf eine IP-Range des SIP-Providers ein.

Laut Ripe gehört das komplette /16-Netz zu 1und1/Schlund:

https://apps.db.ripe.net/search/query.html?searchtext=212.227.67.131

Nach der Port-Freischaltung durch die FW kommen zwar eingehende Anrufe an, die TK-Anlage meldet jedoch Empfänger/Durchwahl unbekannt:

Anfrage:

14:10:23.465406 IP 212.227.18.135.5060 > TK-Anlage.5060: SIP, length: 1283
E…….8..6…….e……_3INVITE sip:rufnummer@ext-IP:5060 SIP/2.0

Antwort:

14:10:23.469888 IP TK-Anlage.5060 > 212.227.18.135.5060: SIP, length: 888
E…….@……e……….C

Nach einem kurzen Blick in unsere TK-Anlage stellten wir fest, dass die Anlage nicht von jeder IP-Adresse Anrufe annimmt.
Die genaue Meldung war:

Unknown provider (public-direct-dial)
externe-Nummer (From IP: 212.227.18.205:5060, User: )
externe-Nummer (From IP: 212.227.18.137:5060, User: )
externe-Nummer (From IP: 212.227.67.136:5060, User: )
externe-Nummer (From IP: 212.227.18.135:5060, User: )
externe-Nummer (From IP: 212.227.18.202:5060, User: )
externe-Nummer (From IP: 212.227.67.197:5060, User: )
externe-Nummer (From IP: 212.227.67.206:5060, User: )

Sind diese IPs hinterlegt in der Anlage sieht der Verbindungsversucht anders aus:

...@......e..........h Via: SIP/2.0/UDP TK-Anlage:5060;branch=z9hG4bK4507410f;rport

15:04:16.465575 IP SIP-Telefon.5060 > TK-Anlage.5060: SIP, length: 358
Eh..r.@.@.C……..e…..n..SIP/2.0 100 Trying

15:04:16.527746 IP SIP-Telefon.5060 > TK-Anlage.5060: SIP, length: 413
Eh..r.@.@.C……..e……..SIP/2.0 180 Ringing

Und der Rufaufbau ist abgeschlossen.

Firewalltechnisch keine weiteren Einstellung mehr nötig als wie oben erwähnt. Es gibt eine Default-FW-Regel, die ausgehenden Verkehr erlaubt.

Bandbreitenverbrauch ist 20KB/s für das bestehende Gespräch.

1und1 ADSL ipv6 Status + Einrichtung – Workshop

Wir verwendeten bis dato einen SIXXS ipv6 Tunnel-Broker zur Nutzung von ipv6. 1und1 stellt jedoch ebenso für alle VDSL-Anschlüsse ipv6 per dual-Stack zur Verfügung.
Für ADSL-Anschlüsse muss dies über das 1und1 Kundenforum einmalig durch eine private Nachricht an die Moderatoren freigeschaltet werden.

Nach der Freischaltung und der korrekten Konfiguration des Routers steht ein /64-Prefix zur Verfügung.

Zwischen Provider und Router existiert lediglich eine Link-Lokal Verbindung. Hierüber kündigt der Provider ein /64-Netz an. Dies kann an die Clients im LAN verteilt werden.

Wir planen in den nächsten Wochen einen ipv6-Workshop. Bei Interesse eine kurze E-Mail an uns über http://www.cubewerk.de/kontakt.html

SIP tag, Call-ID, Via received Felder in SIP Invite

Um via SIP einen entfernten Teilnehmer anzurufen, benötigt man nicht zwingend einen VOIP-Provider der Aufgaben wie Nummernregistrierung und NAT-Umgehung übernimmt. Man kann auch direkt einen Teilnehmer anrufen.

Nicht jeder Soft-Client kann dies. Mit Empathy unter Linux hats nicht geklappt – LinPhone geht problemlos und hat aus meiner Sicht auch die intuitivere Oberfläche.

Gewählt wird mit KENNUNG@IP

Möchte man eine fremde Fritzbox anrufen und kennt die Rufnummer ist dies rufnummer@ip-der-fritzbox

Wählt man eine unbekannte Kennung läuft der Dialog wie folgt ab:

Anrufer schickt einen SIP-Invite (Anforderung zum Gesprächsaufbau) an den Angerufenen.

IP s1.sip > ziel.sip: SIP, length: 900
Eh….@.@…….[/……..-.INVITE sip:1@angerufener SIP/2.0
Via: SIP/2.0/UDP 192.168.0.151:5060;rport;branch=z9hG4bK2041591
From: ;tag=1705358941
To:
Call-ID: 546189454
CSeq: 20 INVITE
Contact:
Content-Type: application/sdp
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Max-Forwards: 70
User-Agent: Linphone/3.6.1 (eXosip2/4.1.0)
Subject: Phone call
Content-Length: 435

Der Angerufen quittiert mit … wenn die Kennung nicht bekannt ist.

11:24:26.060491 IP ziel.sip > s1.sip: SIP, length: 291
E..?C…>.M.[/………..+.`SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 192.168.0.151:5060;rport=5060;branch=z9hG4bK2041591;received=absender-IP
From: ;tag=1705358941
To: ;tag=16-zeichen-hex
Call-ID: 546189454
CSeq: 20 INVITE
User-Agent: FRITZ!OS
Content-Length: 0

Die einzelnen Felder zur Erklärung:

Via: Definiert den Übertragungsweg wie ein Teilnehmer erreicht werden kann

Via enthält ebenso einen Parameter received – dies definiert die erkannte Absender-IP der Gegenstelle.

O-Ton:

SIP does provide the client
with the source IP address that the server saw in the request. This
information is conveyed in the received parameter in the topmost Via
header of the response. This information has proved useful for basic
NAT traversal, debugging purposes, and support of multi-homed hosts”

Quelle: https://tools.ietf.org/html/draft-ietf-sip-nat-02

Call-ID: Eindeutige Kennung für die eigentliche Verbindung – einheitlich zwischen zwei Gesprächspartnern
Tag: Eindeutige Kennung einer Gegenstelle – Anrufer und Angerufener generieren sich tag – hier die Erklärung:

When a tag is generated by a UA for insertion into a request or
response, it MUST be globally unique and cryptographically random
with at least 32 bits of randomness. A property of this selection
requirement is that a UA will place a different tag into the From
header of an INVITE than it would place into the To header of the
response to the same INVITE. This is needed in order for a UA to
invite itself to a session, a common case for “hairpinning” of calls
in PSTN gateways. Similarly, two INVITEs for different calls will
have different From tags, and two responses for different calls will
have different To tags.

Quelle: https://tools.ietf.org/html/rfc3261

Mit Zabbix string aus überwachter Log-Datei extrahieren

Seit Zabbix 2.2 gibt es die Möglichkeit, bei der Log-Überwachung mit regulären Ausdrücken einzelne Strings / Treffer zu extrahieren.
Die extrahierten Treffer sind jedoch vom Typ Log und können somit nicht für die Generierung von Graphen verwendet werden.

Bugreport hierzu https://support.zabbix.com/browse/ZBX-7821

Der Vorschlag von Zabbix auf Version 3.0 zu warten hat uns nicht überzeugt – also dann ein manuelles Update des Item Types in der DB:

Mit postgres verbinden:

# psql

Mit passender DB verbinden:

# connect zabbix

Passende Host-ID rausfinden mit:

# select host,hostid from hosts;

Item-ID rausfinden:

select name,itemid from items where hostid=10515;

Item Type ändern:

update items SET value_type=3 WHERE itemid=341479;