Articles in the Digital Life category

systemd is enterprise grade software...

systemd does not like to run with newer kernels if there are new capabilities...

root@buster:~ # systemctl show dnsmasq >/dev/null; echo $?
Failed to parse bus message: Invalid argument
1

I really like that software. NOT.

This breaks many software packages which (have to) use systemd, e.g. Ansible - see Github Ansible Issue #71528

Quick fix for Debian Buster/Backport's /usr/lib/python3/dist-packages/ansible/modules/system/systemd.py (Ansible 2.9.6)

Fixes should go into Ansible 2.10.4 and 2.9.16.

Using oci template with lxc-create

lxc-create -t oci does not work out of the box on Devuan 3 "Bewulf"/Debian 10 "Buster".

  1. Install umoci from distribution
  2. Install skopeo (Chimaera/Bullseye version) from e.g. http://ftp.de.debian.org/debian/pool/main/s/skopeo/
  3. Create /etc/containers/policy.json with
{
  "default": [
    {
      "type": "insecureAcceptAnything"
    }
  ],
  "transports":
    {
      "docker-daemon":
        {
          "": [{"type":"insecureAcceptAnything"}]
        }
    }
}

As Docker is not LXC most containers need some tuning in their config!

firewalld und permanente Port-Freigabe

Bei der Installation einer Appliance auf Basis von CentOS 7 wollte ich - wie immer - SSH auf "meinen" Port konfigurieren. Leider zeigte sich die Appliance und deren verpflichtende Verwendung von firewalld nicht ganz so kooperativ - sie bestand auf Port 22 ­čą┤

Nat├╝rlich k├Ânnte man es in den Files der Appliance ├╝berschreiben, aber bei einem Update w├╝rden die ├änderungen wieder platt geb├╝gelt - also keine Alternative. Also habe ich in der "public"-Zone der Firewall einen neuen Port hinzugef├╝gt, der dann ab sofort ge├Âffnet wird. Das "--permanent" sorgt daf├╝r, dass der Port auch nach einem Reboot wieder ge├Âffnet wird:

% firewall-cmd --zone=public --add-port=2222/tcp --permanent

Dadurch bleibt dann leider Port 22 nat├╝rlich offen. Aber wer seine ~/.ssh/config im Griff hat kann ja z. B. Portsentry oder ├Ąhnliches auf diesen Port binden ­čśü

Apropos SSH-Port

Wenn schon jemand den SSH-Port ├Ąndert, dann bitte kreativ sein! Verwendet nicht

  • 22
  • 222
  • 2222
  • 2223
  • 4422
  • 6622
  • 8822
  • 9922
  • 22222

Diese Ports (und bestimmt noch mehr) sind in div. SSH-Scan-Scripts enthalten...

Debian und die /etc/network/interfaces

Ach ja, Debian...

Seit einiger Zeit hat ifupdown die M├Âglichkeit, nicht alle Netzwerk-Interfaces in /etc/network/interfaces zu pflegen, sondern diese z.B. in /etc/network/interfaces.d/ als kurze Dateien abzulegen. Gerade wenn man mal 10 VLANs und dazu jeweils eine Bridge hat (ja, ein Virtualisierungsserver), macht das die Sache IMHO deutlich ├╝bersichtlicher.

Wenn ich mich richtig erinnere, dann gab es zuerst die M├Âglichkeit per source /etc/network/interfaces.d/* einzelne Dateien bzw. Wildcards einzulesen. Sp├Ąter kam dann noch ein source-directory /etc/network/interfaces.d/ dazu.

Leider hat man es von Anfang an vers├Ąumt, statt nur "*" ein Suffix f├╝r die Schnippsel zu definieren, also z.B. source /etc/network/interfaces.d/*.iface - somit wird auch bei einem frisch installiertem Debian/Buster alles gelesen, was in diesem Verzeichnis liegt.

Das f├╝hrt jetzt zu der d├Ąmlichen Situation, dass der Editor (der hoffentlich automatisch Backup-Files anlegt), nachdem man statt DHCP eine feste IP-Adresse eingetragen hat, folgendes hinterl├Ąsst:

root@buster:/etc/network/interfaces.d# ls
eth0.cfg  eth0.cfg~

Und was macht ein ifup eth0 draus? Das da:

root@buster:/etc/network/interfaces.d# ip a ls dev eth0
2: eth0@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fe:ac:16:f0:00:bb brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.10.10.10/28 brd 10.10.10.15 scope global eth0
       valid_lft forever preferred_lft forever
    inet 172.22.240.100/24 brd 172.22.240.255 scope global dynamic eth0
       valid_lft 3086sec preferred_lft 3086sec
    inet6 fe80::fcac:16ff:fef0:bb/64 scope link
       valid_lft forever preferred_lft forever

Die L├Âsung? Eigentlich GANZ einfach. Es g├Ąbe ja sogar zwei...

  1. Entweder man definiert ein Suffix (z.B. *.iface, siehe oben) und macht dann source /etc/network/interfaces.d/*.iface, ignoriert also alles andere.
  2. Man stellt (zumindest bei Neuinstallationen) auf source-directory /etc/network/interfaces.d/ um, welches nur folgende RegExp zul├Ąsst: ^[a-zA-Z0-9_-]+$

Ich bin ein Freund von Zweiterem, deswegen stell ich das auch mit meiner Ansible-Grundinstallation um.

Gestern allerdings fiel mir das auf die F├╝├če. Nach einem Reboot kam der vServer nicht mehr hoch. Warum? Darum:

root@buster:/etc/network/interfaces.d# ls
50-cloud-init.cfg

In der RegExp f├╝r source-directory ist kein Punkt dabei! Daher werden Dateien mit einem Suffix nicht gelesen. Dar├╝ber l├Ąsst sich jetzt auch streiten, ob das sinnvoll ist, klar. An anderer Stelle ist das aber (im Debian-System, z.B. Cron-Scripte, die per run-parts aufgerufen werden) dann auch wieder so, es zieht sich also durch. Ich f├Ąnde es als Default immer noch besser, als Backup-Dateien (welche auf "~" enden) wie Schnippsel zu behandeln und sie einzulesen.

An anderer Stelle hat man gelernt: War es bei Apache 2 in Debian m├Âglich, im Verzeichnis /etc/apache2/sites-enabled/ beliebige Dateinamen abzulegen, werden inzwischen nur noch Schnippsel mit der Endung "*.conf" inkludiert.

Fazit:
Durch eine unbedachte Default-Einstellung bei der Einf├╝hrung eines eigentlich SEHR coolen Features (source mit "*" als Wildcard), hat man Probleme in der Zukunft vorprogrammiert.

Devuan (oder Debian) auf AMD Ryzen 5 Pro 4650G

Wer einen der neuen Ryzen-CPUs sein eigen nennt, wird schnell feststellen, dass es unter Devuan 3 "Beowulf" bzw. Debian 10 "Buster" mit der Grafikkarte gibt. Nach der Installation des Linux-Kernels 5.7 aus den Backports plus firmware-amd-graphics war das Problem erledigt. Zur Vervollst├Ąndigung habe ich noch die AMD64-Microcode-Updates und die passenden X.org-Treiber installiert.

root@beowulf:~# apt install amd64-microcode xserver-xorg-video-amdgpu
root@beowulf:~# apt install -t beowulf-backports linux-image-amd64 firmware-amd-graphics

Archlinux hat mich auf die richtige Spur geleitet. Aber ich hab mal wieder festgestellt, dass Archlinux nix f├╝r mich ist ;)

Raspberry Pi: NFS-Root

(updated )
by Sven Velt

Nur als kurzer Link: http://youresuchageek.blogspot.de/2013/01/raspberrypi-root-over-nfs-share.html

check_icmp liefert mit Squeeze mehr PerfDatas als mit Lenny

Alternativ-Titel: Keine PNP4Nagios-Graphen mehr mit check_icmp nach Squeeze-Upgrade

Irgendwann zwischen den Releases 1.4.12 (Lenny) und 1.4.15 (Squeeze) sind bei "check_icmp" zwei zus├Ątzliche PerfData-Werte hinzugekommen "rtmin" und "rtmax". Beim Update meiner privaten Nagios-Installation ist mir das nat├╝rlich ziemlich auf die F├╝├če gefallen, denn die vorhandenen RRD-Files von PNP4Nagios kannten nur die zwei bisherigen "rta" und "pl" PerfDatas bzw. Datasources.

Jetzt h├Ątte man nat├╝rlich einfach alle RRDs, die es betrifft, l├Âschen k├Ânnen, dann h├Ątte sie PNP4Nagios wieder neu angelegt. Aber damit w├Ąren dann ja auch die alten Werte verloren gegangen. Also habe ich nach einer L├Âsung gesucht, wie man die RRD-Dateien erweitern kann.

Da das leider nicht so einfach m├Âglich ist, habe ich mir ein Python-Skript geschrieben, dass letztendlich die Daten aus der RRD-Datei dump't (XML), das XML an den entsprechenden Stellen erweitert, und dann aus diesem "neuen" XML wieder eine RRD-Datei baut. Und siehe da, es funktioniert :)

BITTE VORHER DIE RRD-DATEIEN SICHERN!

Aufruf: add_ds.py [-v] Ping.rrd
Dadurch wir eine neue Datei "Ping.rrd.new" erzeugt, die entsprechend erweitert ist.

Theoretisch w├Ąre es sogar m├Âglich, das Tool folgenderma├čen aufzurufen:
cd /var/lib/pnp4nagios/perfdata; add_ds.py --rename */Ping.rrd
ICH w├╝rd's aber nur mit einer vorherigen Sicherung machen ;-)

Update 1:
Das Skript ist so (vor)eingestellt, dass es genau f├╝r diesen Fall (Lenny->Squeeze) funktioniert.

Update 2:
Noch etwas genauer: Es ├╝berpr├╝ft, dass genau zwei ("--expect=2") DS/Datasources in der RRD-Datei existieren und f├╝gt dann zwei weitere ("--addds=2") des Typs GAUGE ("--adddstype=GAUGE") hinzu. ├ťber die Parameter kann man dies steuern und nat├╝rlich f├╝r andere F├Ąlle auch andere Datasources hinzuf├╝gen.

Download
Da ich noch nicht ganz schl├╝ssig bin, wo ich das Skript letztendlich hinlegen werde, wird es einfach mal hier angeh├Ąngt.

Running MK-Multisite without installing check_mk

Before starting this you should have MK-Livestatus up and running!

Updated to 1.1.12p3!

  1. Download check-mk 1.1.12p3 from http://mathias-kettner.de/download/check_mk-1.1.12p3.tar.gz
  2. % cd /tmp
  3. % tar .../xzf check_mk-1.1.12p3.tar.gz
  4. % mkdir /usr/local/nagios/mk-multisite
    or wherever you want to put it. If you change this path you also have to change/fix the config files
  5. cd /usr/local/nagios/mk-multisite
  6. % tar xzf /tmp/check_mk-1.1.12p3/web.tar.gz
  7. % mkdir -p var/web
  8. % chown -R www-data:www-data var
    (on Suse use "wwwrun:www" as new owner)
  9. Download attached mk-multisite-etc.tar.gz
  10. % tar xzf .../mk-multisite-1.1.12-etc.tar.gz
  11. Install and enable "mod_python" in your Apache2, on Debian: apt-get install libapache2-mod-python && a2enmod python
  12. % ln -s /usr/local/nagios/mk-multisite/etc/apache.conf /etc/apache2/conf.d/mk-multisite.conf
  13. % ln -s /usr/local/nagios/mk-multisite/etc/defaults.py /usr/local/nagios/mk-multisite/htdocs/
  14. % /etc/init.d/apache2 reload
  15. Have fun :)

If it doesn't work have a look to etc/defaults.py (path names) and/or etc/multisite.mk

Feedback welcome ;-)

NagTrap on PHP 5.3 - newer OpenSUSE and Debian 6 Squeeze

Well... an other "wonderful" change between PHP 5.2 and 5.3... "parse_ini_file" behaves different on some characters. You will see a

Database-Error
Can't connect to database!
Check your configuration!
Errors: Access denied for user 'www-data@localhost' (using password: NO)

or on OpenSUSE:

Errors: Access denied for user 'wwwrun@localhost' (using password: NO)

You have to change one line in "nagtrap/etc/config.ini.php" from:

illegalCharJavabox = <,>,'

to:

illegalCharJavabox = "<,>,'"

After this small change everything works fine.

PS: Also remember short_open_tags settings on OpenSUSE. Must be turned On in /etc/php5/apache2/php.ini!

PNP4Nagios in Debian

Short english version: It's finally done! PNP4Nagios is now a part of Debian. Thanks to Sebastian Harl for finishing the work I started.

Es ist endlich geschafft! PNP4Nagios (und seine ganzen Abh├Ąngigkeiten) ist ein Teil von Debian. Im Moment befindet es sich "nur" in Wheezy und Sid, wir wollen es aber auf jeden Fall noch in die Backports von Lenny und Squeeze bekommen.

Begonnen hat das ganze Abenteuer ja schon vor langer, langer Zeit, aber die vielen Feinheiten (insbesondere Lizenzen diverser "Kleinteile") haben einen Upload leider sehr lange verz├Âgert. Sebastian "tokkee" Harl hat sich nun dem fitzeligen Rest angenommen, es in ein Debian-w├╝rdiges Format gebracht und (weil er eben DD ist) es auch gleich nach Debian hochgeschoben. Ein Danke von mir nochmals an dieser Stelle :)

Gedankenspiel: Bundesfinanzbeh├Ârden stellen neue Heimat f├╝r Wikileaks

(updated )
by Sven Velt

Zwei Dinge, die auf den ersten Blick gar nicht so viel miteinander zu tun haben, besch├Ąftig(t)en die Nachrichten:

Die Steuers├╝nder-CDs

Zitat FAZ: Das Bundesverfassungsgericht hat klar Stellung bezogen: Der deutsche Staat darf angekaufte Daten ├╝ber Steuers├╝nder nutzen, auch wenn diese Informationen rechtswidrig erlangt wurden.

Alternative Quellen:
* sueddeutsche.de Newsticker: Fahnder d├╝rfen Steuer-CD benutzen
* Die WELT online: Fahnder d├╝rfen Steuer-CD benutzen
* Manager Magazin: Staatsanw├Ąlte d├╝rfen gestohlene Steuer-CDs nutzen

Halten wir fest: Offensichtlich ist es also in Deutschland m├Âglich, auch nicht "ganz legal" erworbene Daten zu verwenden bzw. sogar in rechtsstaatliche Prozesse einzubringen.

Wikileaks

Wie man schwer nicht mitbekommen haben kann, haben ja schon mindestens zwei amerikanische gro├če Firmen ihre (bezhalten!) Dienstleistung f├╝r Wikileaks eingestellt: Amazon und Paypal. Ob diese Reaktion von den Unternehmen selbst kam oder "von au├čen herbeigef├╝hrt wurde", kann man nur erahnen. Quellen z.B.:

Beides kombiniert

Soweit, so schlecht. Bisher. Meiner Meinung nach sind beide "Vorf├Ąlle" f├╝r sich betrachtet schon unglaublich und nicht mit meiner Verst├Ąndnis von Demokratie, Rechtsstaatlichkeit und freier Meinungs├Ąu├čerung vereinbar.

Aber nun kann man ja mal aus Beidem das "Beste" herausziehen: Wikileaks hat sich - zumindest auf nicht ganz seri├Âse Weise - Dokumente verschafft, die viele gerne geheim gehalten h├Ątten. Eins der Hauptargumente der Wikileaks-Gegner ist ja gerade, dass diese Dokumente "illegal" beschafft wurden. Soweit bisher durchgesickert ist, allerdings nicht von Wikileaks bzw. deren Mitstreitern selbst, sondern durch Dritte.

Und genauso verh├Ąlt es sich doch mit den Steuers├╝nder-CDs. Diese bzw. die Daten drauf wurden auch von Dritten sehr wahrscheinlich illegal kopiert bzw. beschafft. Nun kaufen deutsche Beh├Ârden/L├Ąnder/Institutionen diese offensichtlich illegal erworbenen Daten und das Bundesverfassungsgericht erlaubt jetzt die Verwendung dieser Daten. Also kann es ja so schlimm nicht bestellt sein um den Weg der Beschaffung.

Damit kann man auch mal vermuten, dass das Bundersverfassungsgericht auch die Beschaffung und das Vorhandensein der teilweise geheimen Daten von Wikileaks nicht als unrechtsm├Ą├čig einstufen w├╝rde.

Man k├Ânnte nun auf die Idee kommen, den deutschen Finanzbeh├Ârden, die ja unzweifelhaft von den Steuers├╝nder-CDs profitieren, aufzufordern, doch von dem Geld einen Teil abzuzwacken und damit Wikileaks eine neue, sichere Heimat in dem von Angela "Teflon" Merkel regierten Deutschland zu schaffen bzw. zu finanzieren. Findet Ihr nicht auch? ;)

SparkleShare and host (my) your own git server

This is not a complete tutorial but a list of steps (I hope all needed) to get it working

Install SparkleShare on client

Download source from http://www.sparkleshare.org/ (look at the news!) Look at the README for required packages!

% tar xzf sparkleshare-0.2-beta1.tar.gz
% cd sparkleshare-0.2-beta1
% ./configure --prefix=/opt/sparkleshare
% make
% sudo make install

Prepare directories and start SparkeShare

As user:

% cd
% mkdir -p SparkleShare/.tmp
% /opt/sparkleshare/bin/sparkleshare &

Let it create a new SSH key for you.

Stop SparkleShare

There's a menu for it... ;-) You don't need to add a remote repository here.

Find your SparkeShare-SSH-Public-Key

% cd ~/.config/sparkleshare
% cat *.pub

You need the contents for the next step

On your own SparkleShare-Git-Server

% sudo adduser --disabled-password USERNAME
% cd ~USERNAME
% sudo mkdir .ssh
% sudo vi .ssh/authorized_keys ### Copy&Paste your SparkleShare-SSH-Public-Key
% sudo mkdir FooBar.git
% sudo cd FooBar.git
% sudo git init .
% sudo touch README
% sudo git add README
% sudo git commit -m "Initial commit"
% cd ..
% sudo chown -R USERNAME .

Clone your git repository on the client

As user:

% cd ~/SparkleShare
% git clone USERNAME@SERVER:FooBar.git

Start SparkleShare

% /opt/sparkleshare/bin/sparkleshare &

Nag(ix)SC - Anbindung an MK-Livestatus

Seit Anfang September (Commit auf GitHub) kann Nag(ix)SC nicht nur die Checks selbst ausf├╝hren, sondern diese Daten aus aus einem MK-Livestatus Socket lesen. Dabei ist nat├╝rlich egal, ob ├╝ber lokalen UNIX-Socket oder ├╝ber TCP (es sollte sowohl IPv4 als auch IPv6 funktionieren) abgefragt wird.

Die Funktionalit├Ąt findet sich einmal in nagixsc_live2xml.py (direktes Erstellen eines XMLs auf der Command Line) und auch in nagixsc_conf2http.py (Als "conf"-File in der URL einfach "_livestatus" verwenden und vorher den Socket-Pfad in der Config hinterlegen).

Ich verwende dieses Feature zur Zeit um von einem (eigentlich unabh├Ąngigen) Nagios mir die aktuellen Check-Ergebniss in einem zweiten ("Master") anzeigen zu lassen. Die Nagios-Konfiguration am Master erstelle ich dabei nat├╝rlich NICHT von Hand, sondern lasse diese von nagixsc_xml2cfg.py mit entsprechenden Host- und Service-Templates erzeugen.

Nag(ix)SC - Timeouts und Ausgabeformat

Wieder mal etwas neues bei Nag(ix)SC. ├ťber die Parameter "plugin_timeout" und "plugin_timeout_returncode" kann man nun einstellen, wie lange ein Plugin laufen darf, bis es mit Timeout abgebrochen wird. Gleichzeitig ist es m├Âglich, dass man den Default-Returncode von "CRITICAL" bzw. 2 auf einen anderen Wert setzt. Zur Demonstration gibt es eine neue Config-Datei "sample-configs/conf/timeout.conf", mit der man sich ├╝berzeugen kann, dass es auch wirklich funktioniert ;-)

Und noch eine kleine ├änderung: "nagixsc_read_xml.py" sucht nun nicht mehr nach einer Datei "nagixsc.xml", wenn der Parameter "-f" nicht angegeben wurde, sondern liest von der Standardeingabe. Dazu wurde die Ausgabe so ver├Ąndert, dass die gelesenen Ergebnisse nur noch "menschenlesbar" ausgegeben werden. Wer wieder die "pprint"-Ausgabe haben m├Âchte, nimmt einfach dem Parameter "-P" zu Hilfe.

NSCA - still no "make install" in offical versions...

Long, long time ago I sent a patch to Ethan to add a "make install", "make install-client", "make install-daemon" to NSCA. I talked with him on "Netways Conference On Nagios" about that patch. But nothing happend.

As I compile and install the NSCA package regularly in my workshops I now put the patch and the patched nsca-2.7.2.sv.tar.gz on http://people.teamix.net/~svelt/Monitoring/nsca/

Feedback, Patches, ... welcome!

  1 2 3 4 5 6 7 8 9 »