Autor: Marco Firsching

sudo ohne Passwort

Für manche (unsichere!) Fälle kann es nützlich sein, einen user mit sudo-Rechten ohne Passwortaufforderung auszustatten.

How (sometimes not) to do:

Für den Benutzer „foo“ eine Datei in folgendem Verzeichnis anlegen:

/etc/sudoers.d/foo

foo ALL=(ALL) NOPASSWD: ALL

Kurze Erklärung zum Aufbau der Datei:

<wer> <auf welchem Host>=(<als welcher Benutzer>) <darf was ausführen>

Settings für NextCloud auf ISPConfig

Bei einer frisch installierten NextCloud sind noch einige Einstellungen zu machen, um die Warnmeldungen abzuarbeiten. Das stellt eine Minimal-Config dar:

Folgendes Paket muss noch installiert werden, für den php-cache:

sudo apt install php-apcu

In der Web-GUI des ISP Config im entsprechenden Web für die NextCloud sind die Optionen wie folgt gesetzt:


php.ini ==>

apc.enable_cli=1
memory_limit = 512M

apache-Direktive ==>

Header always add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

In der config.php im NextCloud Web-Verzeichnis wurde noch die letzten beiden Zeilen ergänzt, um die Telefoneinstellungen und den Cache zu aktivieren.

config.php ==>

  'default_phone_region' => 'DE',
  'memcache.local' => '\OC\Memcache\APCu',

Im Anschluss einmal den Webserver neu gestartet, und die NextCloud gibt sich zufrieden.

Nachtrag zur cron.php

In manchen fällen wird die cron.php nicht ordnungsgemäß ausgeführt. Im Backend wird hierzu die 3. Option gewält, das der Systerm-Cron-Dienst die cron.php aufrufen soll.

Allerdings greift bei eingeschaltetem Memcache die „apc.enable_cli=1“ Direktive nicht.

Eine Option wäre, die „apc.enable_cli=1“ in die php.ini in jeder Option in den Unterordner „/etc/php/8.0/cli/php.ini“ zu schreiben. Bei einer neuen PHP Version bricht der cronjob dann allerdings wieder.

Die cron.php muss auch mit dem Web-User aufgerufen werden, dieser hat aber (vermutlich) nicht die Berechtigung den PHP Aufruf mit „–define apc.enable_cli=1“ zu starten.

Die nachhaltigste Lösung ist, den Cronjob als Root-User anzulegen und dort den Aufruf wie folgt zu gestalten:

*/5 * * * * sudo -u web1 php -f /var/www/nextcloud.example.com/web/cron.php --define apc.enable_cli=1

Nun wird alle 5 Minuten die cron.php mit dem User web1 im Webroot /var/www/nextcloud.example.com/web/ aufgerufen.

Der User und der Pfad sind natürlich an die eigenen Gegebenheiten anzupassen.

Private Schlüssel und .csr für S/MIME Zertifikate vorbereiten

Um ein S/MIME Zertifikat zu generieren benötigt man ähnlich zu SSL/TLS Serverzertifikaten einen privaten Key und ein CSR.

Im Terminal geht dies mit openssl wie folgt:

openssl genrsa -out my-smime.key 4096

Der Certificate Sign Request wird dann so erstellt:

openssl req -new -key my-smime.key -out my-smime.csr

Wichtig ist dass die zugehörige E-Mail-Adresse dann im Common Name Feld angegeben wird, die restlichen Felder sind wie bei SSL Zertifikaten zu belegen (z.B. DE, Bayern, Hassfurt, Firma XY GmbH, IT Abteilung, E-Mail-Adresse als Common Name, E-Mail des Kontaktes (nicht so wichtig, gleiche wie Common Name oder leer), optional ein Passwort (kann auch leer bleiben).

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []: 
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:

Hat man dann über eine ordentliche CA seine Zertifikat mit dem CSR bestellt und ein .crt File erhalten, kann man dann aus allen Dateien ein pk12 Datei schnüren (im Terminal):

openssl pkcs12 -export -in my-certificate.cer -inkey my-smime.key -out my-smime.p12

Hat man noch ein Intermediate Zertifikat erhalten, dann kann dies anstatt der obigen Zeile mit dem Paramteter -certfile gleich mit eingebunden werden:

openssl pkcs12 -export -in my-certificate.cer -inkey my-smime.key -certfile intermediate.cer -out my-smime.p12

Hierbei wird ein Passwort angefordert, was frei gewählt werden kann und beim Importieren in dem Mail-Client später benötigt wird.

VMWare Vcenter Server: „Appliance (OS) root password is expired „

Bei einigen Update-Prozessen des VMWare VCenter Servers wird während der Überprüfung die oben genannte Fehlermeldung ausgeworfen. Das Kennwort lässt sich dann nur noch über die Konsole, aber nicht mehr über die Web-GUI ändern, hier wird beim Versuch eine kryptische Fehlermeldung ausgegeben. Die Anmeldung ist hier mit dem alten Root-Kennwort noch per SSH möglich.

https://kb.vmware.com/s/article/67414

Grafana Web-GUI über TLS mit Nginx

Einfach Config um eine Grafana Installation per Nginx über einen SSL Proxy abzusichern.

/etc/nginx/sites-enabled/grafana/

server {
    listen 80;
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    server_name grafana.rzhas.de;

    ssl_certificate           /etc/ssl/rzhas/fullchain.pem;
    ssl_certificate_key       /etc/ssl/rzhas/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/grafana.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://localhost:3000;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:3000 https://grafana.rzhas.de;
    }
  }

Rename „Measurement“ bei InfluxDB

Beim testen mit Grafana und InfluxDB kann es mal passieren, dass Messungen verkehrt in der Datenbank benannt werden. Bei InfluxDB kann dies nicht einfach umbenannt werden, sondern die Daten müssen „umkopiert“ werden.

SELECT * INTO MyMeasurementCopy from MyMeasurement GROUP BY *

Hier werden alle Messwerte mit dem Namen „MyMeasurement“ in „MyMeasurementCopy“ kopiert. Die alten Informationen können dann gelöscht werden.

DROP MEASUREMENT MyMeasurement

Quelle: https://stackoverflow.com/questions/50319520/rename-measurement

Racktables

Bei der Installation auf Plesk sind folgende Besonderheiten zu beachten:

  • Die Datei „secret.php“ im Unterorder „inc“ muss mit chown auf „www-data:psacln“ gesetzt werden
  • In den Einstellungen im Plesk-Backend muss unter PHP-Einstellungen „Apache-Modul“ ausgewählt sein. \
  • Seit neuestem (PHP 7) funktioniert auch FPM served by nginx.\
  • (CGI/FastCGI funktioniert nicht!)