Slave-DNS ist mit dem Master-DNS NICHT synchron

Problem:

Auf dem Primären DNS werden Einträge in BIND9 geändert/hinzugefügt/gelöscht aber auch nach einiger Zeit, werden die neuen Daten/Zonenfiles nicht auf den Slave DNS übertragen.

Lösung:

  1. Am Slave DNS anmelden
  2. mit dem Befehl rndc können alle DNS-Einträge einer Domain vom Master DNS übertragen werden
    rndc <domain.tld>

Nagios: Fehlemeldung beim ReSchedule eines Host oder Services

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

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. iphone 7 charging case rose gold 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.  gudetama iphone 6 case 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. football phone cases iphone 7

// // 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.  mobile case iphone 7 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.

ISPcp Webmail: Fehlermeldung beim Dateien anhängen

Problem:

Im Webmail (Squirrelmail) erscheint die Fehlermeldung „Fehler – Kann Datei nicht verschieben/kopieren. Datei nicht angehängt.

Lösung:

In der Datei /etc/php5/apache2/php.ini das Kommentarzeichen „#“ beim Eintrag „upload_tmp_dir“ entfernen

Apache neustarten nicht vergessen

Installation Elastix 1.6.32 mit ISDN (AVM Friztcard)

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“

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.

Linux (Debian Lenny) Server von VMWare Virtalserver nach MS Hyper-V Server 2008 R2 Migrieren

VMWare Server soll zu einem MS Hyper-V Server werden und es sollen alle Gastsysteme übernommen werden.

Das Problem:

Beim anlegen eines Gastsystems nimmt VMWare Server an, dass die Festplatte(n) an einen virtuellen SCSI-Kontroller angeschlossen sind.
Dies ist beim MS Hyper-V Server nicht der Fall, da virtuelle SCSI-Kontroller hier, zu 100% virtuell erstellt werden und daher erst zur laufzeit des Gastbetriebssystems auf Festplatten am virtuellen SCSI-Kontroller zugegriffen werden kann. Daher ist das Booten von virtuellen SCSI-Festplatten, mit dem Hyper-V Server, nicht möglicht.

Das Gast-Linux soll aber trotzdem auf den Hyper-V Server umziehen.

Lösung:

Dieses Verfahren ist mit Debian Lenny/Etch bereits getestet und sollte auch bei anderen Linuxdistributionen funktionieren.

  1. Als erstes muss die virtuelle Laufwerksdatei <server>.VDMK nach <server>.VHD Konvertieren werden. Dies gelingt mit dem Tool Vdmk2Vhd.
  2. Als nächstes leget man auf dem neuen Hyper-V Server einen neuen virtuellen Gast an.
    Dabei ist darauf zu achen, dass ein vorhandenes Laufwerk (das gerade eben konvertierte) ausgewählt wird.
    Zusätzlich muss eine neue „Alte Netzwerkkarte“ hinzufügen.
    Mit der Netzwerkkarte die standardmäßig hinzugefügt wird, kann Linux ohne zusätzliche Treiber nichts anfangen.
  3. Gastsystem booten.
  4. Warten bis die Meldung (initramfs) auf dem Bildschirm zur Eingabe auffordert.
  5. Ein neues Verzeichnis erstellen, in das, im nächsten Schritt, die Festplatte gemountet werden kann. (z. B. mkdir /mnt)
  6. Da die Festplatte jetzt an einem virtuellen IDE-Kontroller hängt, mounten wir jetzt die HDA1:
    mount -t <dateisystem> /dev/hda1 /<oben erstelltes Verzeichnis>
    z.B. mount -t ext3 /dev/hda1 /mnt
  7. ändern der Dateien /etc/fstab und /boot/grub/menu.lst
    vi /mnt/etc/fstab <– in dieser Datei alle Strings „sda“ in „hda“ ändern
    vi /mnt/boot/grub/menu.lst <– auch hier alle „sda“ in „hda“ ändern
  8. reboot

VI tipps:
suchen mit                       /<suchbegriff>
Zeichen ändern mit          r  <neues Zeichen>
speichern und exit mit     : x

Sollte, wieder erwarten, die Netzwerkkarte doch noch nicht funktionieren, kann es daran liegen, dass in der datei /etc/udev/rules.d/70-persistent-net.rules ein falscher Eintrag steht.
Kommentiert, alle Zeilen begginend mit „SUBSYSTEM==“net“, ACTION==“add“, DRIVERS==“?*“, ATTR{address}==…“, aus. Danach nocheinma neu starten und es sollte alles wieder funktionieren wie gehabt.

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

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.

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

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