Archiv für die Kategorie ‘Linux’

Aus .key (Public-Key) und .crt (SSL-Zertifikat) eine .pfx Datei erstellen

Mittwoch, 23. August 2017

Problem:

Beim Erstellen eines SSL Zertifikates erhält man ein Zertifikat und ein Public-Key.

Im Windows-IIS können, bei nicht über den IIS erstellen Anforderungen (request), nur PFX-Zertifikate importiert werden.

Lösung:

Hier behilft man sich am einfachsten mit einem Computer auf dem OpenSSL installiert ist. In meinem Fall verwende ich dazu eine Linux-VM.

Um die PFX-Datei zu erstellen benötigt man die .key (Public-Key) und die .crt (Zertifikat).

Mit dem folgenden Befehl werden beide Dateien zu einer .pfx verschmolzen.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Nagios: Fehlemeldung beim ReSchedule eines Host oder Services

Freitag, 30. Dezember 2011

Problem:

Nagios3

Nagios3

Unter Debian (Squeeze) Linux installiertes Nagios 3.2.1, wird die obige Fehlermeldung, beim Aktualisieren von Hosts oder Servies, angezeigt.

Lösung:

/etc/init.d/nagios3 stop
dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
/etc/init.d/nagios3 start

 

Einrichten einer dynamischen DNS aktualisierung auf dem eigenen DNS-Server

Mittwoch, 09. Februar 2011

Problem:

In einer Außenstelle ist ein Linux-Server der von Außen erreichbar sein soll. Das Problem ist, dass diese Niederlassung einen „normalen“ Internetanschluß, mit dynamischer IP-Adresse, hat.

Lösung:

auf dem DNS-Server:
System: Debian Lenny
Voraussetzung: BIND9 muss als DNS-Server laufen.

Nicht jeder soll die IP-Adresse ändern dürfen, daher muss eine Authentifizierung eingerichtet werden. Die Authentifizierung soll über einen Privaten und einen öffentlichen Schlüßel passieren.

Zuerst müssen wir die Schlüßel, für die Authentifizierung, erzeugen (dies dauert je nach Hardware relativ lange):

Es gibt mehrere Verschlüsselungsvarianten hier wird RSASHA1 als Verschlüsselungsvariante verwendet.

cd /var/cache/bind/
dnssec-keygen -a RSASHA1 -b 1024 -k -n HOST hostname.domain.tld

hostname und domain.tld an die entsprechende Domain anpassen.

Danach muss in der Zonendatei /var/cache/bind/domain.tld.db eine Änderung vorgenommen werden.

$ORIGIN .
$TTL 600
domain.tld          IN SOA  ns.domain.tld. hostmaster.domain.tld. (
                                200804111  ; serial
                                28800      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                2419200    ; expire (4 weeks)
                                86400      ; minimum (1 day)
                                )
                        NS      ns.domain.tld.
                        NS      ns.andere-domain.tld.
                        MX      10 mail1.domain.tld.
                        MX      20 mail2.domain.tld.
$ORIGIN domain.tld.
$INCLUDE /etc/bind/Kzuhause.domain.tld+005+12345.key
www                  A       123.456.789.1

und in der Datei /etc/bind/named.conf muss folgendes für jede Domain geändert, werden die per dynamischem DNS geändert werden soll.

//
// Do any local configuration here
//
// vi: ts=4 sw=4

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "domain.tld" {
    type master;
    notify no;
    file "/etc/bind/db.domain.tld";

    update-policy {
        grant .domain.tld. name .domain.tld. A TXT;
    };
};

Der angegebene Host darf nun die beiden Einträge A und TXT ändern.
Der Server ist nun vorbereitet, jetzt kommt die Hostkonfiguration.

auf dem Client-Host:
Voraussetzungen:
Installierte Packete:
bind-utils, lynx

Als erstes müssen die vorher erstellen Schlüßeldateien auf den Host-Computer kopiert werden.

Mit diesem Script erledigt man das Update der IP-Adresse auf dem DNS-Server automatisch.

#!/bin/sh
# ddns.sh
# Update des DNS via nsupdate
# Usage: ddns.sh
TTL=3600
SERVER=<DNS-Server-IP>
HOSTNAME=.domain.tld
KEYFILE=K.domain.tld.+005+12345.key
IP=`lynx -dump www.bl-its.at | grep "Ihre IP Adresse" -A 1 | tail -n 1`

nsupdate -v -k $KEYFILE > /dev/null << EOF
server $SERVER
update delete $HOSTNAME A
update add $HOSTNAME $TTL A $IP
send
exit

Die Appostroph-Zeichen „`“ müssen nach rechts geneigt sein ansonsten funktioniert das Script nicht. Auf der Seite „www.bl-its.at“ wir unter anderem auch die IP-Adresse des anfragenden Hosts angezeigt. Es kann natürlich jede beliebige Seite verwendet werden, die die öffentliche IP-Adresse anzeigt.

Anschließend noch einen CRON-Job anlegen und alle x-Minuten (in meinem Fall alle 30 Minuten) wird die aktuelle öffentliche IP-Adresse im DNS-Server eingetragen.

vi /etc/crontab

folgendes hinzufügen:

*/30 * * * * root /root/ddns.sh

Fertig!

Nochmal zu sicherheit testen ob alles OK ist.

Nagios: Installation von NSClient++ unter Windows

Samstag, 31. Juli 2010

Wozu braucht man NSClient++ überhaupt?

NSClient ist ein Windows Client für Nagios. Mit diesem Client kann Nagios verschiedene vordefinierte Befehle bzw. Abfragen durchführen und so den Zustand des Windowsrechners abfragen. Diese Version von NSClient ist von mir unter mehreren Betriebssystemen getestet und läuft bei mir unter Windows XP, Windows Server 2003 R2, Windows Server Hyper-V 2008 R2 und Windows 7.

Die Installation ist ganz einfach. Folgendem Befehl ausführen:
NSClient++.exe /install

Falls im SystemTray (Taskleiste) ein Icon angezeigt werden soll, folgenden Befehl ausführen:
NSClient++.exe SysTray install

Um NSClient++ zu starten folgenden Befehl ausführen
NSClient++.exe /start

Installation Elastix 1.6.32 mit ISDN (AVM Friztcard)

Sonntag, 02. Mai 2010

Vorhaben:

Wir brauchen eine VoIP-Telefonanlage die über ISDN mit dem Telefonnetz verbunden ist. Um mit dem Telefonnetz zu kommunizieren ist im Server eine AVM Fritzcard eingebeaut.

Vorgehensweise:

  • Die Grundlage dieser Telefonanlage ist Linux, CentOS um genau zu sein. Wir beginnen nun mit der Installation von Elastix, dabei ist auf keine besonderheiten zu achen. Standardeinstellungen können übernommen werden.
  • Nach der Installation, Update nicht vergessen! (yum update)
  • Über die Adminkonsole des Elastix (https://<IP-des-Elastix>), im Bereich PBX, müssen nun einige Dinge eingestellt werden.
  • Die Fritzcard wird zwar von Haus aus erkannt und entsprechend installiert aber es muss trotzdem noch einige Dinge eingerichtet werden.
    Ssh auf Elastix (ssh root@<ip-adresse-elasix>)

    • misdn-init scan
    • misdn-init config
    • misdn-init start
    • reboot
  • Nun müssen unsere Nebenstellen im Bereich „Extensions“ angelegt werden.
    • Auswählen welches Gerät hinzugefügt werden soll, in unserem Fall verwenden ausschließlich Sip Telefone/Softtelefone verwendet. Also „Generic SIP Device“ auswählen und mit Submit bestätigen.
    • User Extension (Durchwahl/Nebenstelle), Display Name (Beliebiger Name) und secret (Passwort für die Anmeldung der Telefone am Server) müssen eingegeben werden. Alle anderen Parameter können eingegeben werden.
    • Soll es möglich sein, einen Anruf, an einem anderen Aparat entgegen zu nehmen (mit *8), muss bei callgroup und pickupgroup jeweils die Zahl 1 eingetragen werden
  • Nun erstellen wir einen Custom-Trunk
    • Im Bereich TrunksAdd Custom Trunk“ auswählen
    • Dial Rules: 9|X. (9 wird von der zu wählenden Nummer weggeschnitten. Alles was nach „|“ steht wird schlussendlich von der Telefonanlage gewählt. Das heißt „9“ ist für die „Amtsholung“ zuständig bzw. „9“ entscheidet welcher Trunk zum wählen verwendet wird. Es kann jede beliebige Zahl verwendet werden (auch mehrstellig). Wählt man am Telefon zB 90664123456789 wird 0664123456789 von der Telefonanlag gewählt)
    • Custom Dial String: mISDN/g:ta/$OUTNUM$
      • ta ist der Context der in der Datei /etc/asterisk/misdn.conf hinzugefügt werden muss
  • Outbound Rules erstellen
    • Rule Name: (bliebiger Name)
    • Dial Patterns: 9|X.
    • Trunk Sequence: (den vorher angelegten Trunk auswählen)
  • In der Datei /etc/asterisk/misdn.conf muss ein neuer Contex erstellt werden.
    • [ta]
      ports=1
      context=from-pstn
      msns=*
      echocancel = no
      overlapdial = no
      senddtmf = yes
      far_alerting = yes
      te_choose_channel = no
      nationalprefix = 90
      internationalprefix = 900
      rxgain = 0
      txgain = 0
  • Asteriskkonfiguration neu laden oder einfach reboot (nach den speichern (Klick auf „Subnit Changes“ jedes schrittes, erscheint in der Kopfzeile „Apply Configuration Changes Here“
  • nun funktionieren ausgehende Anrufe
  • damit auch eingehende Telefonate angenommen werden können, muss mindestens eine „Inbound Route“ angelegt werden.
    • Description eingeben (beliebieg)
    • Am Ende der Seite muss ausgewählt werden, an wen eingehende Anrufe verbunden werden. Gewählt werden können einzelne Benuzter (Extensions), Benutzergruppen (Ring Groups) oder Mailboxen. Weitere auswahlmöglichkeiten müssen erst konfiguriert werden.
    • Um eine Benutzergruppe auswählen zu können, muss noch eine „Ring Goup“ angelegt werden. Unter „Ring GroupsGroup Description eingeben. Wichtig ist die Extension List. Diese Liste gibt an selches Telefon klingelt wenn zB 600 gewählt wird. Nach dem Speichern kann die Benutzergruppe ausgewählt werden.

Saslauthd bringt Fehlermeldung „warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory“

Montag, 25. Januar 2010

Problem:

Auf einem Linuxserver mit Postfix, Saslauth,… erscheinen folgende Fehlermeldungen:

Jan 24 08:20:00 mail postfix/smtpd[2831]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Jan 24 08:20:00 mail postfix/smtpd[2831]: warning: SASL authentication failure: Password verification failed
Jan 24 08:20:00 mail postfix/smtpd[2831]: warning: unknown[client.IP.add.ress]: SASL PLAIN authentication failed: generic failure
Jan 24 08:20:00 mail postfix/smtpd[2831]: disconnect from unknown[client.IP.add.ress]

Lösung:

Saslauthd verwendet die falsche Authentifizierungsmethode. In meinem Fall wurde aus testgründen irgendwann mal auf „PAM“ umgestellt und fergessen dies wieder zurückzustellen.

In der Datei /etc/default/saslauthd den Eintrag: MECHANISMS=“pam“ auf MECHANISMS=“sasldb“ ändern.

Geschützt: Nützliches für die eigene Homepage, erstellt mit Joomla 1.5

Sonntag, 20. Dezember 2009

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib dein Passwort bitte unten ein:

Umziehen von ISPCP Omega auf neuen Server mit neuen IP-Adressen

Montag, 16. November 2009

Probelm:

Der alte Server ist zu klein, zu alt etc. und ich bekomme neue IP-Adressen zugewiesen. Was tun mit ISPCP Omega 1.0.0. RC3??

Lösung:

Daten auf dem Alten Server sichern, sichern, sichern!!!

1. Datenbanken mit mysqldump und Daten z.B. mit tar sicher:

Daten               tar -cvzf www.tar.gz /var/www/virtual
Datenbanken    mysqldump -u root -p<passwort> ispcp > ispcp.sql

alle weiteren Datenbanken sollten auch einzeln gesichert werden da sonst auf dem neuen Server die Datenbank ispcp beim nachträglichen Import überschrieben wird.
Ansonsten können mit:

mysqldump -u root -p<passwort> —all-databases

alle Datenbanken auf dem Server gesichert werden.

2. Neuer Server installieren, in meinem Fall Debian Lenny.

Installation von ISPCP Omega nach Anleitung. In meinem Fall aktueller Trunk

Installationanleitung für Debian

nach der Installation, die Datei ispcp.sql vom alten Server mittels WinSCP oä. auf den neuen Server kopieren und mit

mysql -u root -p<passwort> <[pfad]/ispcp.sql

in Mysql importieren.

Von einem Client im Netz mit einem Internet-Browser auf den Server zugreifen:

http://admin.<domain.tld>/

als Admin anmelden

Ein Datenbankupdate erforderlich.

Jetzt müssen die Domänen wieder erstellt werden, wie folgt:

Die User vom alten Server übernehmen, also alle vuxxxx „Zeilen“ aus den Dateien /etc/passwd, /etc/shadow und /etc/group in die entsprechenden Dateien auf dem neuen Server kopieren.

/etc/init.d/ispcp_daemon stop
mysql -u root -p<password>
USE ispcp
UPDATE mail_users SET status=“toadd“ where status=“ok“;
UPDATE domain SET domain_status = ‚toadd‘ WHERE domain_status = ‚ok‘;
UPDATE domain_aliasses SET alias_status = ‚toadd‘ WHERE alias_status = ‚ok‘;
UPDATE subdomain SET subdomain_status = ‚toadd‘ WHERE subdomain_status = ‚ok‘;
quit
/var/www/ispcp/engine/ispcp-rqst-mngr
/etc/init.d/ispcp_daemon start

Nun werden alle Domains, Supdomains, Aliases und E-Mailadressen angelgt.

So, jetzt ist ISPCP Omega auf dem neuen Server installiert.

Testweise kann man sich als User anmelden und kontrollieren ob alles OK ist.

3. Absicherung

Um das ganze sicherer zu machen müssen wir noch diverse Spamfilter und Anti-Viren-Programme installieren. Diese ist die Anleitung die ich dafür verwendet habe.

4. Abschließende Arbeiten

Alte Datenbanke „ohne ISPCP“ iportieren

mysql -u root -p<passwort> <[Datebankname]

Nach dem Import solltet ihr im mysql ein flush privileges; machen, ansonsten werden die User nicht übernommen.

Webseiten vom alten Server übernehmen.

Die zuvor erstellt Datei www.tar.gz nun noch entpacken und alle Webseiten sind wieder vorhanden.<neuer Server> cd /var/www
<neuer Server> tar -xvzf www.tar.gz

Alte Emails übernehmen:
<alter Server> cd /var/mail
<alter Server> tar -cvzf mail.tar.gz virtual/
Date mail.tar.gz auf neuen Server ins verzeichnis /var/mail/ kopieren
<neuer Server> cd /var/mail
<neuer Server> tar -xvzf mail.tar.gz

So ungefäht sollte der Optemalfall aussehen. Es kann natürlich von System zu System unterschiede geben.

Hier noch einige Tipps:

FastCGI deaktivieren: (bei mir hat FastCGI bzw FCGI nicht funktioniert):
fastcgi und fastcgi_ispcp aus /etc/apache2/mods-enable/ löschen

Passwort vom Mysql-User debian-sys-maint neu eintragen:
Das Passwort aus /etc/mysql/debian.cnf kopieren und mit z.B. PHPMyAdmin neu setzen

Pear Module installieren:
pear install net_imap
pear install Image_graph

Pfade zu „open_base_dir“ in der /etc/apache2/sites-available/00_master.conf hinzufügen:
…:/usr/share/pear/Smarty/:/usr/share/php:/usr/share/pear:/tmp

Webmailkonfigurationen und Adressbücher übernehmen:
übernehmen aller Dateien mit einem „@“ im Dateinamen
<alter Server> tar -cvzf mailconfs.tar.gz /var/www/ispcp/gui/tools/webmail/data/*@*
kopiere das File mailconfs.tar.gz auf den neuen Server
<neuer Server> cd /var/www/ispcp/gui/tools/webmail/data/
<neuer Server> tar -xvzf mailconfs.tar.gz
<neure Server> chmod 775 /var/www/ispcp/gui/tools/webmail/data/
<neuer Server> chown www-data:www.data /var/www/ispcp/gui/tools/webmail/data/*

Das Verzeichnis /var/www/ispcp/gui/phptmp kann nicht beschrieben werden:
chmod 777 /var/www/ispcp/gui/phptmp

Wie wird mit „tar“ gepackt und entpackt.

Mittwoch, 23. September 2009

Zum Packen von „Tar-Balls“ folgedes eingeben:
tar -cvf <dateiname.tar> <quelle>
tar -cvzf <dateiname.tar.gz> <quelle>
tar -cvjf <dateiname.tar.bz> <quelle>

Zum entpacken folgendes eingeben:
tar -xvf <dateiname.tar>
tar -xvzf <dateiname.tar.gz>
tar -xvjf <dateiname.tar.bz>

Fehler bei Nagios „nagios.cmd“ fehlt/kann nicht ausgefürht werden

Montag, 21. September 2009

Problem:

Folgende Fehlermeldung erscheint beim „Rescedule“ im Nagios:

Error: Could not stat() command file ‚/var/lib/nagios2/rw/nagios.cmd‘!

Lösung:

Rechte sind falsch gesetzt.

chmod 777 /var/lib/nagios2/rw/

falls nötig noch:

chmod 777 /var/lib/nagios2/rw/nagios.cmd