Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.

Kategorie "Linux"

18. Nov
Teaser

Sicherheit: NetData Port ändern

Da (zumindest derzeit) kein im Standard vorhandener Zugangsschutz (Passwort o.ä.) in Netdata vorhanden ist, wäre eine recht einfache Lösung die Verlagerung des WebGUI Ports. Das ist natürlich keine wirkliche Sicherheit und kein Schutz, kann aber Scanner (Port-Scanner) ggf. ablenken oder zumindest die breits Masse abhalten.

Öffnen Sie die Netdata Konfiguration:

nano /etc/netdata/netdata.conf

Im Bereich “[web]” finden Sie die Einstellung “default port”. Diese ist nach der Installation auf “19999” gesetzt:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        # default port = 19999

Entfernen Sie das “#” Zeichen am Anfang der Zeile und ändern Sie den Wert “19999” auf Ihren gewünschten Port ab. In diesem Beispiel wird “18888” genommen:

[web]
        # ses max window = 15
        # des max window = 15
        # mode = static-threaded
        # listen backlog = 4096
        default port = 18888

Beenden und speichern Sie die Änderungen (Strg + X).

Starten Sie den NetData Service neu:

systemctl restart netdata

Öffnen Sie Ihre NetData UI im Browser mit dem neuen Port, wobei Sie bitte “domain.de” durch Ihren Servernamen oder die Server-IP ersetzen:

http://domain.de:18888

Fertig.

Erhalten Sie die Fehlermeldung, dass diese Seite nicht verfügbar ist, dann prüfen Sie bitte auch Ihre Firewalleinstellungen. Auf dem Server können Sie die aktuellen Regeln der Firewall (z.Bsp. ipTables) auflisten:

iptables -L -n

Sollte der neue Port (hier 18888) nicht freigegeben sein, können Sie dies’ mit folgendem Befehl nachholen:

iptables -A INPUT -p tcp --dport 18888 -j ACCEPT

Die Änderung/Freigabe ist sofort nach EIngabe des Befehles durchgeführt.

17. Nov
Teaser

mySQL (mariaDB) in Netdata einbinden

Wie Sie einen Netdata Service auf Ihrem Server installieren, haben wir Ihnen in unserem Beitrag “Netdata auf einem Debian Server installieren” gezeigt. In diesem Beitrag zeigen wir einen möglichen Weg, Analysedaten und Auslastungen Ihres mySQL (oder mariaDB) Servers auf der Netdata Seite anzuzeigen.

Das benötigte Python DB Modul wurde bereits installiert. Sollten Sie eine andere Installation benutzt haben, können Sie das Paket durch folgenden Befehl installieren; sollte es bereits vorhanden sein, dann erhalten Sie nur eine entsprechende Meldung:

apt-get install python-mysqldb

Erzwingen Sie den Start des mySQL Modules:

nano /etc/netdata/charts.d.conf

Fügen Sie folgende Zeile ein:

mysql=force

Speichern und beenden Sie die Datei mit “Strg + X”.

Erstellen (oder bearbeiten) Sie nun die Konfigurationsdatei für das NetData mySQL Modul:

nano /etc/netdata/mysql.conf
mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uUSERNAME -pPASSWORD"

Passen Sie dabei die Werte bitte an Ihren Datenbankserver an:

USERNAME = Benutzernamen, für die NetData-Verbindung
PASSWORD = Passwort für den Benutzer “USERNAME”

Sollte Ihr mySQL Server nicht lokal (= localhost = 127.0.0.1) laufen, dann passen Sie bitte auch die IP Adresse entsprechend an. Die Verbindung wird im Beispiel “local” benannt. Sie können den Namen ändern, indem Sie beide Zeile anpassen.

Beispiel für den Benutzer “root” mit dem Passwort “hallo123”:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

Wenn Sie mehrere Server oder unterschiedliche Benutzer gleichzeitg überwachen lassen möchten, dann erstellen Sie in dieser Datei die passenden Einträge.

Beispiel: Nebn dem Benutzer “root” (Verbindung mit dem Namen “local”) möchten Sie auch den Benutzer “demo” mit dem Passwort “passdemo” überwachen. Dieser Eintrag soll “demo1” heißen:

mysql_cmds[local]="/usr/bin/mysql"
mysql_opts[local]="-h 127.0.0.1 -uroot -phallo123"

mysql_cmds[demo1]="/usr/bin/mysql"
mysql_opts[demo1]="-h 127.0.0.1 -udemo -ppassdemo"

Starten Sie den Netdata-Service auf Ihrem Server neu. Dadurch werden die Einstellungen neu geladen:

systemctl restart netdata

Fertig.

Wenn Sie die Einstellungen in Netdata protokollieren (debuggen) möchten, dann hilft folgender Befehl in diesem Fall recht gut. Dieser Befehl zeigt Ihnen auch Fehler (Verbindungsprobleme, fehlende Dateien, usw.) für NetData an:

/usr/libexec/netdata/plugins.d/charts.d.plugin debug 10 mysql
16. Nov
Teaser

Netdata auf einem Debian Server installieren

Sicherheitshinweis:
Bitte beachten Sie, dass (derzeit) der Netdata Port (19999) nicht per Passwort o.ä. geschützt ist. Jeder (!) kann daher auf Ihrem Server die Netdata Seite aufrufen und (wie Sie) nutzen !

Voraussetzungen installieren:

apt-get install git zlib1g-dev uuid-dev libmnl-dev pkg-config curl gcc autogen autoconf autoconf-archive make automake netcat python python-yaml nodejs lm-sensors python-psycopg2 python-mysqldb

Aktuelle Netdata Sourcen von Github kopieren:

git clone https://github.com/firehol/netdata.git --depth=1 ~/netdata

In das Verzeichnis wechseln:

cd ~/netdata

Die Netdata Installation starten:

./netdata-installer.sh

Ihnen wird eine Übersicht mit den Installationspfaden angezeigt:

  ^
  |.-.   .-.   .-.   .-.   .  netdata
  |   '-'   '-'   '-'   '-'   real-time performance monitoring, done right!
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->


  You are about to build and install netdata to your system.

  It will be installed at these locations:

   - the daemon     at /usr/sbin/netdata
   - config files   in /etc/netdata
   - web files      in /usr/share/netdata
   - plugins        in /usr/libexec/netdata
   - cache files    in /var/cache/netdata
   - db files       in /var/lib/netdata
   - log files      in /var/log/netdata
   - pid file       at /var/run/netdata.pid
   - logrotate file at /etc/logrotate.d/netdata

  This installer allows you to change the installation path.
  Press Control-C and run the same command with --help for help.

Press ENTER to build and install netdata to your system >

Wenn Sie einverstanden sind, dann drücken Sie “Enter” … ansonsten können Sie mit “Strg+C” hier die Installtion abbrechen.

Sobald die Installation beendet ist (meist nach ca. 1-2 Minuten, je nach Serverleistung), erhalten Sie folgende Anzeige:

If you want to have version update check, please re-install it
following the procedure in:

https://github.com/netdata/netdata/wiki/Installation

 --- Check apps.plugin ---
 --- Generate netdata-uninstaller.sh ---
 --- Basic netdata instructions ---

netdata by default listens on all IPs on port 19999,
so you can access it with:

  http://this.machine.ip:19999/

To stop netdata run:

  systemctl stop netdata

To start netdata run:

  systemctl start netdata

Uninstall script generated: ./netdata-uninstaller.sh
Update script generated   : ./netdata-updater.sh

netdata-updater.sh can work from cron. It will trigger an email from cron
only if it fails (it does not print anything when it can update netdata).
Run this to automatically check and install netdata updates once per day:

sudo ln -fs /root/netdata/netdata-updater.sh /etc/cron.daily/netdata-updater

 --- We are done! ---

  ^
  |.-.   .-.   .-.   .-.   .-.   .  netdata                          .-.   .-
  |   '-'   '-'   '-'   '-'   '-'   is installed and running now!  -'   '-'
  +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->

  enjoy real-time performance and health monitoring...

Ab jetzt können Sie die Oberfläche von Netdata in Ihrem Browser öffnen. Ersetzen Sie dafür im folgenden Befehl “domain.de” durch Ihren Servernamen oder Ihre Server-IP:

http://domain.de:19999

Bitte beachten Sie, dass SSL Verbindungen (derzeit) nicht bzw. nur über Umwege möglich sind. Aufrufe per “https://…” führen daher zu einer Fehlermeldung.

Folgende Befehle können Sie auch im späteren Einsatz von Netdata benötigen:

Netdata starten

systemctl start netdata

Netdata stoppen

systemctl stop netdata

Den aktuellen Netdata Status (läuft, gestoppt, ggf. Fehler) anzeigen

systemctl status netdata

Updates installieren

cd ~/netdata
git pull
./netdata-installer.sh

Netdata deinstallieren

cd ~/netdata
./netdata-uninstaller.sh --force
28. Okt
Teaser

Postfix: Mails mit ZIP/EXE/COM Anhängen (Attachments) ablehnen

Um alle Mailkonten auf Ihrem Server vor E-Mails mit ZIP/EXE/… Anhängen zu schützen, können Sie folgende Anleitung nutzen:

Öffnen Sie die Konfigurationsdatei von Postfix auf Ihrem Server:

nano /etc/postfix/main.cf

Ergänzen Sie die Datei (bzw. die “mime_header_checks”) um folgende Zeile:

mime_header_checks = regexp:/etc/postfix/mime_header_checks

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Öffnen Sie nun bitte die Datei “mime_header_checks”:

nano /etc/postfix/mime_header_checks

Ergänzen Sie die Datei um folgende Zeile:

/name=[^>]*\.(bat|com|exe|zip|dll|vbs)/ REJECT

Speichern und beenden Sie die Bearbeitung (Strg+X in nano).

Durch diese Zeile werden E-Mails mit Dateianhängen mit der Endung “.bat”, “.com”, “.exe”, “.zip”, “.dll”, “.vbs” automatisch vom Server abgelehnt. Der Absender erhält eine entsprechende Nachricht mit dem Fehlercode

<mail@server.tld>: host server.tld[12.34.56.78] said:
    550 5.7.1 message content rejected (in reply to end of DATA command)".

Zum Abschluß starten Sie den Postfix Service einmal neu:

/etc/init.d/postfix restart

Fertig.

12. Sep
Teaser

Docker Fehler: Version in “./docker-compose.yml” is unsupported.

Wenn beim Ausführen des Befehles

docker-compose up

die folgende Fehlermeldung angezeigt wird, …

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

… dann können Sie von einem Fehler (Bug) in der Software von docker-composer betroffen sein. Durch den Fehler wird das Format (Version 3.1) nicht als richtig anerkannt.

Prüfen Sie, welche Version auf Ihrem System installiert ist:

docker-compose --version
docker-compose version 1.8.0, build unknown

Installieren Sie eine aktuelle Version von docker-compose. Finden und löschen Sie dafür die aktuelle Version:

which docker-compose
/usr/bin/docker-compose
rm /usr/bin/docker-compose

Laden Sie die für Ihr System passende Version neu herunter …

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

… und erlauben Sie die Ausführung:

chmod +x /usr/bin/docker-compose

Überprüfen Sie die Version:

docker-compose --version
docker-compose version 1.20.0, build ca8d3c6

Jetzt sollte docker-compose die Datei verarbeiten können.

03. Sep
Teaser

Sicherheit: Linux Firewall per iptables (WebServer Beispiel)

Sollten Sie die Befehle auch für eine IPv6 Firewall umsetzen wollen, dann ersetzen Sie bitte im folgenden stets “iptables” durch “ip6tables”.

SSH Zugriff erlauben

iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT

Jetzt die beiden wichtigsten Standardports für WebServer freigeben: 80 für normale HTTP und 443 für verschlüsselte HTTPS (SSL) Seiten:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Sollten Sie einen (zu SSH zusätzlichen) Service zur Verwaltung Ihres Servers benutzen, wie z.Bsp. VirtualMin (Unser Beitrag zur Installation), dann sollten diese Ports jetzt ebenfalls freigegeben werden:

iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 20000 -j ACCEPT

Jetzt können wir den Server abdichten, denn unser SSH Zugang ist bereits erlaubt. Diesen brauchen wir zwingend, denn ansonsten stehen wir gleich von außen vor der abgeschlossenen Tür.

iptables -P INPUT DROP

Für Programme wie “apt-get” sollten nun ein paar Ausnahmen hinzugefügt werden. Diese erlauben “etablierten Verbindungen” eine Verbindung und Rückmeldung von/nach außen durch die Firewall:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Um die erstellten Regeln auch nach einem Serverneustart zu behalten, speichern Sie diese bitte ab:

iptables-save > /etc/iptables/rules.v4

bzw. für IPv6 mit folgendem Befehl:

ip6tables-save > /etc/iptables/rules.v6

Weitere Ausnahmen und Regeln können jederzeit hinzugefügt werden:

Beispiel IMAP / SMTP MailServer:

iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 -j ACCEPT

Beispiel: FTP Server (unsichere Standard-Ports 20 & 21)

Bei FTP sind ebenfalls die passiven Ports freizugeben, welches Sie in Ihrer FTP-Server-Konfiguration festlegen können. Haben Sie die passiven Ports nicht freigegeben, bleibt entweder nur aktives FTP oder es kommt zu Verbindungsproblemen.

iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

Beispiel Netdata WebGUI freigeben. Diese läuft im Standard auf Port 19999:

iptables -A INPUT -p tcp --dport 19999 -j ACCEPT

Ein Hinweis, wenn Sie mit VirtualMin arbeiten:
Die per Shell (Kommandozeile) gesetzten Regeln werden nicht automatisch in die Firewall-Konfiguration von VirtualMin (oder WebMin) übernommen. Bitte speichern Sie daher die Regeln am Ende in der VirtalMin-Firewall-Konfiguration:

iptables-save > /etc/iptables.up.rules

Einen Überblick über die eingestellten Regeln erhalten Sie durch folgenden Befehl:

iptables -L -n
12. Aug
Teaser

ERROR: Service ‘ors-build’ failed to build: COPY failed …

In der Dokumentation von “ORS” (“openrouteservice”) finden Sie folgende “Anleitung” zur Installation:

cd docker && docker-compose up

Wenn Sie während der Ausführung den folgenden Fehler erhalten, kann Ihnen dieser Artikel vielleicht helfen:

Step 6/11 : COPY .git /ors-core/.git
ERROR: Service 'ors-build' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder.../.git: no such file or directory

Ursache ist (wie die Fehlermeldung besagt) das fehlende “.git” Verzeichnis. Dieses kann dadurch natürlich auch nicht kopiert werden.

Bitte prüfen Sie, ob Sie auf Basis einer heruntergeladenen Archives (meist als ZIP Datei) arbeiten, oder ob Sie den Quellcode per GIT ausgecheckt/geclont haben:

Archiv-Version = Sie haben auf der Webseite (https://github.com/GIScience/openrouteservice) im Bereich “Code” diesen durch die grüne Schaltfläche “cline or download” heruntergeladen.

GIT Version: Sie haben den Source per GIT vom Server heruntergeladen.

Dieser Fehler tritt zumeist bei den Archiv-Versionen auf und kann durch das Auschecken per GIT auf der Kommandozeile beheben. Wenn Sie “git” bereits installiert haben, überspringen Sie die ersten Befehl bitte:

apt-get install git

Den Sourcecode auschecken/clonen:

git clone https://github.com/GIScience/openrouteservice

Anschließend in das Docker Verzeichnis wechseln:

cd openrouteservice
cd docker

Dort dann den o.a. Befehl aus der Dokumentation nochmals versuchen zu starten:

docker-compose up
09. Aug
Teaser

Linux: Mehrere Archive (rar/zip) mit einem Befehl entpacken

Um durch einen Befehl auf Kommandozeilenebene automatisch mehrere Archive (rar, zip, tar, …) entpacken zu lassen, können Sie folgenden Befehl nutzen:

for i in archive.*.part1.rar; do unrar e "$i"; done

Für die entsprechenden Archivformate passen Sie den Befehl bitte entsprechend an.

27. Mai
Teaser

Linux: lftp und proFtpd mit SSL betreiben

Wenn Sie versuchen per “lftp” mit SSL Verschlüsselung (TLS) auf einen “proFTPd” Server zuzugreifen, dann kann folgende Fehlermeldung auftreten:

Lese Verzeichnisinhalt aus (0) [Warte auf Antwort...]

Im Wechsel mit

Lese Verzeichnisinhalt aus (0) [Pausiere vor erneuter Verbindung]

Dabei kann “lftp” auf dem FTP Server Dateien und Verzeichnisse schreiben, denn das Basisverzeichnis wird noch angelegt … dann ist die Verbindung jedoch scheinbar unbrauchbar.

Erst ein Blick in doe proFTPd Logs (meist unter “/var/log/proftpd/”) bringen mehr Aufklärung:

Im allgemeinen Protokoll (“/var/log/proftpd/proftpd.log”) wird der Verbindungsaufbau noch bestätigt:

2018-05-17 19:18:46,272 server.example.com proftpd[12345] test.example.net (client.example.com[1.2.3.4]): FTP session opened.
2018-05-17 19:18:46,516 server.example.com proftpd[12345] test.example.net (client.example.com[1.2.3.4]): USER john-doe: Login successful.

Also scheint es ein Problem während der Verbindung zu geben. Das TLS-Protokoll (“/var/log/proftpd/tls.log”) bringt mehr Licht ins Dunkel:

2018-05-17 19:19:19,055 mod_tls/2.6[12345]: starting TLS negotiation on data connection
2018-05-17 19:19:19,325 mod_tls/2.6[12345]: client did not reuse SSL session, rejecting data connection (see the NoSessionReuseRequired TLSOptions parameter)
2018-05-17 19:19:19,325 mod_tls/2.6[12345]: unable to open data connection: TLS negotiation failed

Aha. Die bereits bestehende SSL Verbindung wird also wird nochmals benutzt. Das schmeckt dem proFTPd Server nicht.

Wenn man dem “lftp” (testweise) die SSL Verbindung untersagt, dann funktioniert der Dateiaustausch plötzlich einwandfrei. SSL wird mit dem folgenden Befehl verboten:

set ssl-allow false

Eine schnelle Lösung ist es, dem proFTPd Server diesen Zwang zu nehmen. Das wird schon in der Fehlermeldung im Protokoll bemerkt (“see the NoSessionReuseRequired TLSOptions parameter”).

Also wird in der Config des proFTPd Servers die folgende Zeile angehängt:

TLSOptions NoSessionReuseRequired

Dann der Server neu gestartet:

/etc/init.d/proftpd restart

Und jetzt läuft auch der “lftp” wieder …

21. Mrz
Teaser

Linux: Minimales Ubuntu inkl. KDE Desktop installieren

Um bei einer Ubuntu (Linux) Installation inkl. des KDE Desktopmanagers die meist überflüssigen Programme (Spiele, LibreOffice, usw. usf.) zu vermeiden, nutzen Sie folgende Schritte:

  1. Wählen Sie bei der Installation “Install” und nicht “Graphic install” aus. Installieren Sie nur den minimalen Umfang und beenden Sie die Installation.
  2. Starten Sie das installierte System und melden Sie sich mit Ihrem (während Schritt 1 angelegten) Benutzer an.
  3. Optional: Vergeben Sie ein “root” Passwort:
    sudo passswd root

    Geben Sie zur Bestätigung Ihr Benutzerpasswort ein und anschließend 2x das neue root Passwort

  4. Installieren Sie die benötigte Software für die graphische Oberfläche (X11):
    apt-get install xorg xterm net-tools
  5. Installieren Sie den KDE Desktopmanager:
    apt-get install --no-install-recommends ubuntu-desktop
  6. Fertig