planet.debianforum.de

der Planet der debianforum.de-Benutzer

Zum Inhalt


 
 
 

12.05.2022

Joerg Kastning (Tronde)

[Fixed] Defektes Plugin: Subscribe to Comments Reloaded

Update 13.05.2022: Das Plug-in ist in Version 220513 repariert und wurde wieder deaktiviert. Danke an BobaWebDev für den schnellen Fix.

Liebe Leser*innen, leider ist das Plugin Subscribe to Comments Reloaded in der installierten Version 220512 offenbar defekt. Daher habe ich das Plugin vorerst deaktiviert.

Der Fehler wurde bereits in GitHub-Issue 707 gemeldet. Ich hoffe, dass der Fehler bald durch den Anbieter behoben wird.

Die Kommentarfunktion kann weiterhin wie gewohnt genutzt werden. Nur könnt ihr euch aktuell nicht über neue Kommentare benachrichtigen lassen.

von Jörg Kastning am 12.05.2022 09:35


07.05.2022

Dominik Kupschke (bommi)

Windows Native VPN (IKEv2) mit FortiGate

Möchte man mit einem Windows Endgerät ein Client-VPN zu einer FortiGate als VPN-Gateway aufbauen, so gibt es abseits des FortiClients verschiedene Varianten.In diesem Beitrag stelle ich die Konfiguration eines Client-VPN mit IKEv2 zwischen einer FortiGate und der Windows integrierten IKEv2 Implementierung vor. Folgende Komponenten und Versionen wurden in diesem Aufbau verwendet:FortiGate: 60FFortiOS: 7.2.0Windows 10: 21H1 […]

von Dominik Kupschke am 07.05.2022 22:36


03.05.2022

Daniel Gestl (mcdaniels)

Weshalb es Opensource-Software im Firmenumfeld schwer haben kann

Bei meinen Projekten lege ich verstärkt Augenmerk darauf, dass -sofern möglich- Opensourcesoftware (im Folgenden OSS) eingesetzt wird. Gerade wenn es um Serversoftware geht, ist OSS gut und stark vertreten. Abgesehen davon spricht absolut nichts dagegen, die Dienste auch gleich selbst zu hosten. Warum? Ein paar wichtige Aspekte: Nichts verschwindet in ominösen, aufgeblähten Cloudinfrastrukturen. Man weiß, […]

The post Weshalb es Opensource-Software im Firmenumfeld schwer haben kann first appeared on www.pc-howto.com.

von Daniel am 03.05.2022 15:00


18.04.2022

Joerg Kastning (Tronde)

Nextcloud im Container – Teil 6: Updates

Herzlich willkommen zu Teil 6 meiner Reihe Nextcloud im Container. Dieser Teil behandelt das Thema Updates. Zum Verständnis empfehle ich, zuerst Teil 1 und Teil 2 zu lesen.

Nun wünsche ich euch viel Spaß beim Lesen und gute Unterhaltung.

Gedanken zum Update

Meine Nextcloud-Instanz läuft in einem Podman-Pod. Das sieht im Terminal wie folgt aus:

$ podman pod ps
POD ID        NAME    STATUS   CREATED       INFRA ID      # OF CONTAINERS
e84bec6108d1  nc_pod  Running  2 months ago  5e52555c5060  3

Dieser Pod besteht aus den folgenden drei Container-Instanzen:

$ podman ps
CONTAINER ID  IMAGE                                  COMMAND               CREATED       STATUS         PORTS                    NAMES
5e52555c5060  k8s.gcr.io/pause:3.2                                         2 months ago  Up 7 days ago  127.0.0.1:40671->80/tcp  e84bec6108d1-infra
c6571aa338ce  docker.io/library/mariadb:10.5.7       mysqld                2 months ago  Up 7 days ago  127.0.0.1:40671->80/tcp  nc_mariadb
21739d36eef1  docker.io/library/nextcloud:23-apache  apache2-foregroun...  2 months ago  Up 7 days ago  127.0.0.1:40671->80/tcp  nextcloud

Diese Container-Instanzen sind zustandslos und ephemeral (engl. für kurzlebig, vergänglich oder flüchtig). Persistent zu speichernde Daten werden außerhalb der Container-Instanzen gespeichert. Diese Eigenschaften erlauben es, Container einfach entfernen und durch neue Instanzen ersetzen zu können.

Um die Nextcloud zu aktualisieren, wird in dieser Umgebung also nicht die Anwendung innerhalb des Containers aktualisiert. Stattdessen werden die Container-Instanzen entfernt und Container-Images mit aktuelleren Versionen der Anwendung und Datenbank instanziiert.

Der Update-Prozess

Die aktuell laufenden Versionen von Nextcloud und MariaDB sind obigen Codeblock zu entnehmen. Diese Images wurden durch die beiden folgenden Zeilen in der Datei {role_path}/defaults/main.yml definiert:

MARIADB_IMAGE: docker.io/library/mariadb:10.5.7
NC_IMAGE: docker.io/library/nextcloud:23-apache

Hier kann man nun die gewünschten Versionen der zu verwendenden Container-Images eintragen. Alternativ kann man die Default-Werte auch durch entsprechende Einträge in {role_path}/vars/main.yml überschreiben. Die Einträge sehen dann bspw. wie folgt aus:

MARIADB_IMAGE: docker.io/library/mariadb:10.5.9
NC_IMAGE: docker.io/library/nextcloud:23.0.3-apache

Nun kann das Playbook mit der Ansible-Rolle aus Teil 2 dieser Reihe erneut ausgeführt werden:

$ ansible-playbook -i hosts deploy_nextcloud.yml --ask-vault-pass                                                 
Vault password:                                                                                                   
                                                                                                                  
PLAY [localhost] **************************************************************************************************
                                                                                                                  
TASK [Gathering Facts] *******************************************************************************************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Main folder, needed for updating] *************************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Volume for installed/modified apps] ***********************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Volume for local configuration] ***************************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Volume for the actual data of Nextcloud] ******************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Volume for the MySQL data files] **************************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Create the podman-pod(1)] *********************************
changed: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Create MariaDB container] *********************************
changed: [localhost]                                                                                               
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Wait for DB to initilize] *********************************
ok: [localhost]                                                                                                    
                                                                                                                  
TASK [ansible_role_deploy_nextcloud_with_mariadb_pod : Create Nextcloud container] *******************************
changed: [localhost]                                                                                               
                                                                                                                  
PLAY RECAP *******************************************************************************************************
localhost                   : ok=10   changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Nun kann man sich auf dem Zielsystem davon überzeugen, dass die neuen Container-Images zur Instanziierung verwendet wurden:

$ podman ps
CONTAINER ID  IMAGE                                      COMMAND               CREATED         STATUS             PORTS                    NAMES
5e52555c5060  k8s.gcr.io/pause:3.2                                             2 months ago    Up 7 days ago      127.0.0.1:40671->80/tcp  e84bec6108d1-infra
248f87e1135b  docker.io/library/mariadb:10.5.9           mysqld                35 seconds ago  Up 36 seconds ago  127.0.0.1:40671->80/tcp  nc_mariadb
59ac1aad168c  docker.io/library/nextcloud:23.0.3-apache  apache2-foregroun...  10 seconds ago  Up 11 seconds ago  127.0.0.1:40671->80/tcp  nextcloud

Fertig. Schon kann Nextcloud in Version 23.0.3 mit einer MariaDB 10.5.9 genutzt werden.

Fazit

Mit diesem Artikel habe ich das letzte noch offene Ziel Nr. 5 „Konfiguration und Test automatischer durch Ansible gesteuerter Updates“ erreicht. Der Update-Prozess folgte dem Container-Paradigma, die Container komplett zu ersetzen und nicht die Anwendung innerhalb der Container zu aktualisieren.

Es handelte sich im dokumentierten Fall um Updates auf ein neues Patch-Release, bei denen das Risiko für Fehler ohnehin sehr gering ist. Ob das Update auch bei Minor- bzw. Major-Releases so gut funktioniert, muss sich noch zeigen. Ich werde diesen Artikel aktualisieren, wenn es Erkenntnisse dazu gibt.

Mit diesem Artikel endet meine Reihe „Nextcloud im Container“. Ich hoffe, ich habe euch damit ein wenig unterhalten und konnte euer Wissen durch die ein oder andere Information erweitern.

Quellen und weiterführende Links

  1. Nextcloud im Container – Teil 1: Der Plan
  2. Nextcloud im Container – Teil 2: Die Ansible-Rolle
  3. Nextcloud im Container — Teil 3: Mit Reverse-Proxy
  4. Nextcloud im Container — Teil 4: Hier und da klemmt es
  5. Nextcloud im Container – Teil 5: Backup und Restore
  6. ansible_role_deploy_nextcloud_with_mariadb_pod auf GitHub
  7. Semantic Versioning 2.0.0

von Jörg Kastning am 18.04.2022 05:00


15.04.2022

Sabine Becker (AtariFrosch)

Abgedrehte Ideen

Was mir grad so an abgedrehten Ideen durch den Kopf geht:

Fahrrad-Tour am Rhein entlang

Ja, das wäre vermutlich sogar für mich unsportlichen Menschen sinnvoll möglich. Also, in Richtung Süden. Zumindest ab Köln-Deutz (bis dahin ist es eher etwas … ungemütlich). Aber dann könnte ich mindestens bis zum Mittelrhein quasi durchfahren und es binnen eines Monats günstigenfalls sogar bis Mannheim schaffen. Also, falls nichts dazwischenkommt. Ein Zeitraum von bis zu 30 Tagen irgendwann zwischen Juni und August oder vielleicht sogar September würde sich anbieten. Das gäbe bestimmt 'ne Menge neuer Fotos!

Futter wäre dabei das kleinste Problem. Bei nicht zu kaltem Wetter tun's als Basis Brötchen und Äpfel, die bekommt man überall. Brauchen weder Herd noch Kühlschrank. Ergänzbar durch Salatgurken, Tomaten, Bohnen aus der Dose und weiteres. Und Wasser natürlich. Und gelegentlich ein Coffee-to-go.

Aber natürlich ist das Unsinn. Ein Fahrrad hab ich zwar, aber der Anhänger, der mir dafür ins Auge sticht (RW), kostet ab 250 €. Und da ich eher nicht im Freien übernachten kann (obwohl ich den Schlafsack wohl sicherheitshalber einpacken würde), müßte ich wohl pro Tag noch mindestens 30 € Übernachtungskosten rechnen. Ein Monat lang jeden Tag mindestens 30 €, falls ich nicht das Glück habe, mal hier oder da kostenlos pennen zu dürfen. Wäsche waschen und trocknen müßte ich unterwegs auch noch, das kostet auch jedesmal ein paar Euronen.

Achja, und zurückkommen muß ich ja auch irgendwie. Aber von Mannheim aus mit der Bahn bis Düsseldorf mit BahnCard 50 kostet derzeit günstigenfalls 16,40 €, das wäre nicht so das Problem. Das Fahrrad mitsamt Hänger ist da allerdings noch nicht dabei. Den Aufpreis hab ich auf die Schnelle nicht gefunden.

Fitness-Training

Gestern Abend habe ich im Hauptbahnhof gleich bei drei Geschäften TooGoodToGo-Tüten abgeholt. Zwischen zwei der Abholungen hatte ich fast eine Stunde Zeit, für die es sich aber nicht lohnte, nach Hause zu laufen, die bisherigen Portionen in den 5. Stock zu schaffen und nochmal loszutigern. Im Hauptbahnhof wollte ich mich aber auch nicht die ganze Zeit über aufhalten, weil das Bewußtsein für das mit den Aerosolen da … nicht so hundertprozentig ist (wenn auch recht gut). Also lief ich hinterm Bahnhof ein wenig rum und fand zufällig ein Fitness-Center. Paar Tüpen ohne Maske drin, aber insgesamt relativ leer. 19,95 € im Monat wollen sie mindestens haben, dafür muß man sich aber gleich auf 24 Monate verpflichten. Und da sind natürlich nur die Basis-Leistungen drin.

Brauchen könnte ich es. Ich nehme zwar weiterhin (holprig) ab, aber das allein genügt halt nicht. Ich dachte, wenn ich Gewicht reduziere, müßte ich eigentlich fast automatisch mehr Kondition haben, weil der Körper ja weniger zu schleppen hat. LOLnope. Daß ich teils aus Pandemie-Gründen noch mehr zu Hause bin als sonst, macht's auch nicht besser.

Aber natürlich ist das Unsinn. Mit dem Monatsbeitrag ist es vermutlich nicht getan. Und es stellt sich die Frage nach meinen „Löffeln“: Würde ich es schaffen, das regelmäßige Training in meine Routinen einzubauen? Wenn nicht, ist ziemlich klar, daß das rausgeworfenes Geld wäre und ich nicht hingehen würde. Zumindest nicht oft genug, als daß es sich lohnen würde.

… Hachja. Träumen darf man ja.

von Atari-Frosch am 15.04.2022 17:09


12.04.2022

Lars Moelleken (voku1987)

Timeout Problems: Web Server + PHP

Timeout Problems: Web Server + PHP

What?

First there is an HTTP request and that will hit your Web server, then it will pass the request via TCP- or UNIT-Socket via FastCGI to your PHP-FPM Daemon, here we will start a new PHP process and in this process we will connect e.g. to the database and run some queries.

PHP-Request

The Problem!

There are different timeout problems here because we connect different pieces together and this parts need to communicate. But what if one of the pieces does not respond in a given time or, even more bad, if one process is running forever like a bad SQL-query.

Understand your Timeouts.

Timeouts are a way to limit the time that a request can run, and otherwise an attacker could simply run a denial-of-service with a simple request. But there are many configurations in several layers: Web server, PHP, application, database, curl, …

– Web server

Mostly you will use Apache or Nginx as Web server and in the end it makes not really a difference, there are different timeout settings, but the idea is almost the same: The Web server will stop the execution and kills the PHP process, now you got a 504 HTTP error (Gateway Timeout) and you will lose your stack trace and error-tracking because we killed our application in the middle of nothing. So, we should keep the Web server running as long as needed.

“`grep -Ri timeout /etc/apache2/“`

/etc/apache2/conf-enabled/timeout.conf:Timeout 60

/etc/apache2/mods-available/reqtimeout.conf:<IfModule reqtimeout_module>

/etc/apache2/mods-available/reqtimeout.conf: # mod_reqtimeout limits the time waiting on the client to prevent an

/etc/apache2/mods-available/reqtimeout.conf: # configuration, but it may be necessary to tune the timeout values to

/etc/apache2/mods-available/reqtimeout.conf: # mod_reqtimeout per virtual host.

/etc/apache2/mods-available/reqtimeout.conf: # Note: Lower timeouts may make sense on non-ssl virtual hosts but can

/etc/apache2/mods-available/reqtimeout.conf: # cause problem with ssl enabled virtual hosts: This timeout includes

/etc/apache2/mods-available/reqtimeout.conf: RequestReadTimeout header=20-40,minrate=500

/etc/apache2/mods-available/reqtimeout.conf: RequestReadTimeout body=10,minrate=500

/etc/apache2/mods-available/reqtimeout.load:LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so

/etc/apache2/mods-available/ssl.conf: # to use and second the expiring timeout (in seconds).

/etc/apache2/mods-available/ssl.conf: SSLSessionCacheTimeout 300

/etc/apache2/conf-available/timeout.conf:Timeout 60

/etc/apache2/apache2.conf:# Timeout: The number of seconds before receives and sends time out.

/etc/apache2/apache2.conf:Timeout 60

/etc/apache2/apache2.conf:# KeepAliveTimeout: Number of seconds to wait for the next request from the

/etc/apache2/apache2.conf:KeepAliveTimeout 5

/etc/apache2/mods-enabled/reqtimeout.conf:<IfModule reqtimeout_module>

/etc/apache2/mods-enabled/reqtimeout.conf: # mod_reqtimeout limits the time waiting on the client to prevent an

/etc/apache2/mods-enabled/reqtimeout.conf: # configuration, but it may be necessary to tune the timeout values to

/etc/apache2/mods-enabled/reqtimeout.conf: # mod_reqtimeout per virtual host.

/etc/apache2/mods-enabled/reqtimeout.conf: # Note: Lower timeouts may make sense on non-ssl virtual hosts but can

/etc/apache2/mods-enabled/reqtimeout.conf: # cause problem with ssl enabled virtual hosts: This timeout includes

/etc/apache2/mods-enabled/reqtimeout.conf: RequestReadTimeout header=20-40,minrate=500

/etc/apache2/mods-enabled/reqtimeout.conf: RequestReadTimeout body=10,minrate=500

/etc/apache2/mods-enabled/reqtimeout.load:LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so

/etc/apache2/mods-enabled/ssl.conf: # to use and second the expiring timeout (in seconds).

/etc/apache2/mods-enabled/ssl.conf: SSLSessionCacheTimeout 300

Here you can see all configurations for Apache2 timeouts, but we only need to change etc/apache2/conf-enabled/timeout.conf`` because it will overwrite `/etc/apache2/apache2.conf` anyway.

PS: Remember to reload / restart your Web server after you change the configurations.

If we want to show the user at least a custom error page, we could add something like:

ErrorDocument503 /error.php?errorcode=503
ErrorDocument 504 /error.php?errorcode=504

… into our Apache configuration or in a .htaccess file, so that we can still use PHP to show an error page, also if the requested PHP call was killed. The problem here is that we will lose the error message / stack trace / request etc. from the error, and we can’t send e.g. an error into our error logging system. (take a look at sentry, it’s really helpful)

– PHP-FPM

Our PHP-FPM (FastCGI Process Manager) pool can be configured with a timeout (request-terminate-timeout), but just like the Web server setting, this will kill the PHP worker in the middle of the process, and we can’t handle the error in PHP itself. There is also a setting (process_control_timeout) that tells the child processes to wait for this much time before executing the signal received from the parent process, but I am uncertain if this is somehow helpfully here? So, our error handling in PHP can’t catch / log / show the error, and we will get a 503 HTTP error (Service Unavailable) in case of a timeout.

Shutdown functions will not be executed if the process is killed with a SIGTERM or SIGKILL signal. :-/

Source: register_shutdown_function

PS: Remember to reload / restart your PHP-FPM Daemon after you change the configurations.

– PHP

The first idea from most of us would be maybe to limit the PHP execution time itself, and we are done, but that sounds easier than it is because `max_execution_time` ignores time spent on I/O (system commands e.g. `sleep()`, database queries (SELECT SLEEP(100)). But these are the bottlenecks of nearly all PHP applications, PHP itself is fast but the external called stuff isn’t.

Theset_time_limit()function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real.

Source: set_time_limit

– Database (MySQLi)

Many PHP applications spend most of their time waiting for some bad SQL queries, where the developer missed adding the correct indexes and because we learned that the PHP max execution time did not work for database queries, we need one more timeout setting here.

There is the MYSQLI_OPT_CONNECT_TIMEOUT and MYSQLI_OPT_READ_TIMEOUT (Command execution result timeout in seconds. Available as of PHP 7.2.0. – mysqli.options) setting, and we can use that to limit the time for our queries.

In the end you will see a “Errno: 2006 | Error: MySQL server has gone away” error in your PHP application, but this error can be caught / reported, and the SQL query can be fixed, otherwise the Apache or PHP-FPM would kill the process, and we do not see the error because our error handler can’t handle it anyway.

Summary:

It’s complicated. PHP is not designed for long execution and that is good as it is, but if you need to increase the timeout it will be more complicated than I first thought. You need for example different “timeout”-code for testing different settings:

// DEBUG: long-running sql-call
// Query(‘SELECT SLEEP(600);’);

// DEBUG: long-running system-call
// sleep(600);

// DEBUG: long-running php-call
// while (1) { } // infinite loop

Solution:

We can combine different timeout, but the timeout from the called commands e.g. database, curl, etc. will be combined with the timeout from PHP (max_execution_time) itself. The timeout from the Web server (e.g. Apache2: Timeout) and from PHP-FPM (request_terminate_timeout) need to be longer than the combined timeout from the application so that we still can use our PHP error handler.

e.g.: ~ 5 min. timeout

  1. MySQL read timeout: 240s ⇾ 4 min.
    link->options(MYSQLI_OPT_READ_TIMEOUT, 240);
  2. PHP timeout: 300s ⇾ 5 min.
    max_execution_time = 300
  3. Apache timeout: 360s ⇾ 6 min.
    Timeout 360
  4. PHP-FPM: 420s ⇾ 7 min.
    request_terminate_timeout = 420

 

Links:

  • https://tideways.com/profiler/blog/an-introduction-to-php-fpm-tuning
  • https://www.php.net/manual/en/install.fpm.php

von voku am 12.04.2022 12:39


11.04.2022

Sabine Becker (AtariFrosch)

Wie man eine Therme nicht auffüllt …

Meine Gas-Therme hat in den letzten Tagen ungewöhnlich viel Druck abgebaut, ergo Wasser verloren. Warum, weiß ich nicht. Aber unabhängig davon mußte ich natürlich Wasser auffüllen.

Also Schlauch an den Wasserhahn (Küche, Spüle) geklemmt, anderes Ende an das Ventil am Heizkörper in der Küche. Vorsichtig Wasser aufgedreht und Therme mit Wasser versorgt, bis der Druck wieder bei 1,5 war. Dann aber den Wasserhahn statt zu versehentlich noch weiter aufgedreht. Das hatte ich aber nicht sofort gemerkt, sondern erstmal das Ventil an der Heizung zugemacht. Dann erst fiel mir auf, daß die Druckanzeige an der Therme am Anschlag ist. 😨

Daher Ventil am Heizkörper wieder aufgedreht und dann erst den Schlauch vom Wasserhahn abgeschraubt. Umgekehrt wäre natürlich richtig gewesen. Ergebnis: Während ich mich abmühte, das Schlauch-Gewinde am Wasserhahn abzuschrauben, spritzte das Wasser aus dem Heizkörper aus diesem Schlauch-Ende raus und ich wurde ordentlich naß. Und der Küchenfußboden ebenfalls.

Dann das Wasser abgelassen und wieder die Grenze nicht gefunden, das heißt, nahezu den kompletten Heizkreislauf in meine Spüle gepumpt. Therme meldet Fehler und geht aus. Das ist zwar gut, daß sie das macht, aber eigentlich wollte ich jetzt nicht die Resilienz der Therme testen.

Ich steh da wie ein begossener Pudel (RW) und muß erstmal meine Brille putzen, weil ich vor lauter Wasser nix mehr sehe. Mein Hoodie ist auch naß, aber das muß warten.

Nächster Anlauf: Schlauch wieder an den Wasserhahn geschraubt, Wasser vorsichtig aufgedreht und Druckanzeige der Therme im Auge behalten. Als sie bei 1,5 steht, Wasserhahn wieder zugedreht. Diesmal aber wirklich.

Ventil am Heizkörper zugedreht, Schlauch vorsichtig abgezogen und Kappe wieder draufgeschraubt. Andere Seite des Schlauchs vom Wasserhahn abgeschraubt, schon wieder nicht aufgepaßt: Aus der Seite des Schlauchs, den ich grade von der Heizung abgenommen habe, läuft nochmal 'ne ordentliche Pfütze auf den Boden.

Beide Enden des Schlauchs in einen Eimer gesteckt und Rest des Schlauchs angehoben, damit das restliche Wasser rausläuft. Viel war's nicht mehr.

Als nächstes Therme geprüft: Die sagte gar nix mehr außer ihrer Fehlermeldung. Offenbar merkt sie nach der Meldung nicht, wenn der Druck wieder da ist, oder geht dann sicherheitshalber nicht von selbst wieder in Normalbetrieb über. Windows-Lösung: Ausgeschaltet, eingeschaltet, Therme läuft wieder an.

Küchenfußboden so weit wie möglich aufgewischt, zumindest die großen Pfützen. Der Rest darf bei gekipptem Fenster – das Wetter ist ja heute gut – von alleine trocknen.

Und dann Hoodie gewechselt.

Hätte ich jetzt alles echt nicht gebraucht. 😒

In den nächsten Tagen muß ich dann wohl die Druckanzeige im Auge behalten. Wenn sie wieder so schnell Druck verliert, muß da wohl mal ein Fachmensch nachsehen.

von Atari-Frosch am 11.04.2022 15:38


22.03.2022

Dominik Kupschke (bommi)

SSL-Zertifikate mit LetsEncrypt auf FortiGate Firewalls nutzen

Seit FortiOS 7.0 unterstützten Fortigate Firewalls die Ausstellung von SSL-Zertifikaten über die Zertifizierungsstelle LetsEncrypt.Das nun folgende Beispiel wurde auf einer FortiGate mit FortiOS 7.0.5 erstellt. Für die Zertifikatsaustellung verwendet LetsEncrypt ein Protokoll mit dem Namen „ACME“, dieses erfordert eine HTTP Kommunikation auf dem TCP Port 80 der FortiGate Firewall.Die notwendige Konfiguration wird auf der FortiGate […]

von Dominik Kupschke am 22.03.2022 22:26


16.03.2022

Bernd Dau (whisper)

SPF Sender Policy Framework

Das hier ist keine Anleitung, sondern dient mir als Stütze, was ich gemacht habe.

Gmail möchte verstärkt die absendenen Mailserveradmins dazu bewegen, SPF zu verwenden. Andere große eMail Provider übrigens auch. Es kommt vereinzelnt zu solchen Einträgen im mail.log

said: 421-4.7.0 This message does not have authentication information or fails to pass 421-4.7.0 authentication checks. To best protect our users from spam, the 421-4.7.0 message has been blocked. Please visit 421-4.7.0  https://support.google.com/mail/answer/81126#authentication for more 421 4.7.0 information. e15-20nmnmnmxmxmnmn.517 - gsmtp (in reply to end of DATA command))

 

Eine sehr gute Erklärung ist hier bei it-zeugs.de zu finden.  Hier auch: blog.k-webs.ch 

Deshalb erspare ich mir eine Wiederholung.

Es gibt auch Kritik an SPF. Schön auf den Punkt gebracht hat es meiner Meinung nach  tec-bite.ch/warum-mag-google-meine-mails-nicht/

Links:

Einen gesetzen SPF TXT Record kann man hier  testen.

appmaildev.com/en/spf 

spf-record.de/spf-lookup/

www.kitterman.com/spf/validate.html

https://www.mailhardener.com/tools/spf-validator

mxtoolbox.com/SuperTool.aspx?action=spf

Oder zu Fuß:

Eine email per roundcube oder imap Mailclient an eine eigene  gmail.com Adresse senden.

Die empfangene email unter "mehr", im Original anzeigen. Dort die SPF Einträge untersuchen.

Oder auch so: 

dig -t txt zockertown.de +short
"v=spf1 +a +mx +ip4:85.10.201.39 +ip4:85.10.201.40 -all"
Hinweis:

Unterschied -all und ~all

~all ist die entschärfte Variante

Sollte man die Einträge nicht mit einem Webtool o.ä. machen, sondern auf der Console, bitte daran denken, dass die Serial hochgezählt wird, es gibt sonst evtl. unschöne Nebeneffekte, wie ich erleben durfte.

 

von bed (nospam@example.com) am 16.03.2022 10:58


20.01.2022

Bernd Dau (whisper)

Unterschiede zwischen den Monitoring Tools

Wenn man Softraid verwendet, sollte einem klar sein, dass da eine monatliche Prüfung die Daten im Monitoring versaut.

Zum Unterschied von collectd und netdata hier ein Beispiel.

 

Ausgangssituation: In beide Tools wird auffallend hoher Load angezeigt, die Ursache liegt aber nicht an wild gewordenen Prozessen, eingeschleppte Schädlinge, sondern lediglich am 4 Wöchentlichen Rebuild des Raid1. Man muss halt nur wissen, welche Grafiken einem das verraten.

cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb2[1] sda2[2]
      2929609152 blocks super 1.2 [2/2] [UU]
      [==============>......]  check = 70.0% (2050771840/2929609152) finish=222.2min speed=65892K/sec
      bitmap: 5/22 pages [20KB], 65536KB chunk

md0 : active raid1 sdb1[1] sda1[2]
      523712 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

Hier sieht man es auch sehr schön. Na klar, sda zeigt es genauso

 

Siehe auch http://zockertown.de/s9y/index.php?/archives/1630-Den-UEberblick-behalten-collectd-update.html

 

Hier noch das Ende. Leider kann man nicht minutengenau die Start und Ende Punkte erkennen. Aber das ist jammern auf hohem Niveau. Allerdings ist es bei netdata einfacher den Zeitpunkt zu erfassen.

von bed (nospam@example.com) am 20.01.2022 10:57


19.12.2021

Sebastian Feltel (feltel)

zwei Jahrzehnte

Ich habe hier im Blog schon eine Weile nichts mehr geschrieben, weil sich mein Fokus etwas verschoben hat. Wenn ich etwas zu sagen habe, dann tue ich das i.d.R. auf meinem Twitter-Profil und nicht mehr hier. Heute ist aber so ein Anlass, bei dem ich nicht in 280 Zeichen auskomme. Vor genau zwei Jahrzehnten, also […]

von feltel am 19.12.2021 11:53


Christoph Langner (Chrissss)

LanguageTool auf eigenem Server installieren

Wie ihr schon im ersten Teil dieser kleinen Artikelserien zu LanguageTool lesen konntet, ist die Integration einer bestmöglichen Rechtschreibkorrektur in ein System gar nicht so einfach. Betreut man mehrere Rechner im Netz oder soll LanguageTool im Browser ohne den proprietären Dienst des kommerziellen Projekts funktionieren, lohnt es sich daher, selbst einen LanguageTool-Server aufzusetzen. So funkt LanguageTool weniger ins Netz und eure Texte bleiben vollständig unter eurer Kontrolle. Es braucht nur einen kleinen Rechner im eigenen LAN mit ausreichend freiem Speicherplatz, mindestens 4 GByte solltet ihr übrig haben. Optional installiert ihr euch den Server auf der eigenen Workstation.

Ursprünglich hatte ich auch gedacht, dass LanguageTool eine ideale Ergänzung für meinen Raspberry Pi wäre, der hier im LAN bereits als File-, Drucker- und Scan-Server sowie generell als stromsparende eierlegende Wollmilchsau arbeitet. Doch hier wirds leider hakelig: LanguageTool benötigt zwingend ein 64 Bit-System als Basis. Das bietet die vierte Generation des Raspberry Pi zusammen mit der ARM64-Version des Raspberry Pi OS zwar, doch am Ende scheitert es an Java-Bibliotheken, die auch auf dieser Version des Betriebssystems nur in der 32 Bit-Version vorliegen. Auf die Situation gehe ich am Ende des Artikels ein. Im Folgenden nutze ich einen kleinen Server auf Basis von Debian.

Installation von LanguageTool

Für den LanguageTool-Server benötigt ihr ein Linux-System mit einer Java-Runtime-Umgebung. Auf einem Debian-basiertem System, wie etwa auch Ubuntu oder Linux Mint, spielen die folgenden Kommandos alles Nötige ein. Die Installation der N-Gramm-Daten (zum Erkennen von Schreibfehler wie „viel“ statt „fiel“, „seit“ statt „seid“ oder „Stil“ statt „Stiel“) ist optional. Sie verbessert die Erkennung von oft falsch geschrieben Wörter, schaufelt allerdings nochmal ein paar Gigabyte mehr an Daten auf den Rechner. Für optimale Ergebnisse würde ich diesen Schritt allerdings nicht übergehen und zumindest die N-Gramm-Daten für Deutsch einspielen.

### Installation von LanguageTool:
$ sudo apt install default-jre-headless unzip
$ sudo apt install hunspell hunspell-de-de hunspell-en-us
$ wget https://languagetool.org/download/LanguageTool-stable.zip
$ unzip LanguageTool-stable.zip
$ sudo mv LanguageTool-*.*/ /opt/LanguageTool
$ rm LanguageTool-stable.zip
### Installation der N-Gramm-Daten für Deutsch (~3,5 GByte):
$ sudo mkdir /opt/LanguageTool/ngrams
$ wget https://languagetool.org/download/ngram-data/ngrams-de-20150819.zip
$ sudo unzip ngrams-de-20150819.zip -d /opt/LanguageTool/ngrams
$ rm ngrams-de-20150819.zip
### Installation der N-Gramm-Daten für Englisch (~8,0 GByte):
$ wget https://languagetool.org/download/ngram-data/ngrams-en-20150817.zip
$ sudo unzip ngrams-en-20150817.zip -d /opt/LanguageTool/ngrams
$ rm ngrams-en-20150817.zip
### LanguageTool benötigt über 3 GByte Speicherplatz:
$ du -hs /opt/LanguageTool
3.4G	/opt/LanguageTool

Für einen ersten Test wechselt ihr nun auf dem Terminal in das Installationsverzeichnis unter /opt/LanguageTool des LanguageTool-Archivs. Das zweite Kommando aus dem folgenden Listing startet dann testweise die Server-Komponente von LanguageTool. Der Dienst lauscht auf Port 8081 auf Anfragen, mehr braucht es bei diesem Schritt auch noch nicht. Mit der Tastenkombination [Strg]+[C] beendet ihr den Dienst und kehrt wieder auf die Shell zurück.

$ cd /opt/LanguageTool
$ java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8081
2021-12-17 20:47:34.423 +0100 INFO  org.languagetool.server.DatabaseAccessOpenSource Not setting up database access, dbDriver is not configured
2021-12-17 19:47:34 +0000 WARNING: running in HTTP mode, consider running LanguageTool behind a reverse proxy that takes care of encryption (HTTPS)
2021-12-17 19:47:37 +0000 Setting up thread pool with 10 threads
2021-12-17 19:47:37 +0000 Starting LanguageTool 5.5 (build date: 2021-10-02 12:33:00 +0000, 5e782cc) server on http://localhost:8081...
2021-12-17 19:47:37 +0000 Server started

Damit LanguageTool jetzt die von euch optional installierten N-Gramm-Daten integriert, erstellt ihr nun mit einem Editor wie Nano unterhalb des Ordners /opt/LanguageTool die Konfigurationsdatei languagetool.cfg. Als Inhalt fügt ihr die Ausgabe nach dem im folgenden Listing eingefügten Kommando cat languagetool.cfg ein. Mit der Tastenkombination [Strg]+[O] und [Eingabe] speichert ihr die Änderung des Editors ab, mit [Strg]+[O] geht es dann zurück auf die Shell. Selbstverständlich könnt ihr auch jeden anderen Editor verwenden.

$ sudo nano /opt/LanguageTool/languagetool.cfg
$ cat languagetool.cfg
languageModel=/opt/LanguageTool/ngrams/

LanguageTool-Server automatisch starten

Damit der LanguageTool-Server nun automatisch mit dem Rechner hochfährt, legt ihr eine sogenannte Unit für Systemd an. Dazu übertragt ihr den Inhalt aus dem folgenden Listing in die noch zu erstellende Datei /etc/systemd/system/languagetool.service. Orientiert euch beim Aufruf des Editors an der Nano-Zeile im vorhergehenden Listing. Alle Pfade beziehen sich auf den bei der Installation gewählten Ordner /opt/LanguageTool. Habt ihr ein anderes Installationsziel gewählt, müsst ihr die Pfade selbstverständlich in der Unit-Datei anpassen.

[Unit]
Description=LanguageTool
After=syslog.target
After=network.target

[Service]
Type=simple
User=languagetool
Group=nogroup
WorkingDirectory=/opt/LanguageTool
ExecStart=/usr/bin/java -cp /opt/LanguageTool/languagetool-server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --port 8081 --allow-origin "*" --public
Restart=always
#Environment=USER= HOME=/opt/LanguageTool

[Install]
WantedBy=multi-user.target

Damit LanguageTool nicht mit Root-Rechten oder mit den Rechten eures Benutzers laufen muss, legt ihr nun noch einen eigenen System-Benutzer mit dem Namen languagetool an, ein Home-Verzeichnis braucht er nicht. Er muss sich auch nicht anmelden, daher wird auch kein Passwort gesetzt. Anschließend lasst ihr Systemd seine Konfiguration neu einlesen und aktiviert das Starten des LanguageTool-Servers. Danach ruft ihr den Dienst einmal von Hand auf und lässt euch zur Kontrolle den Status ausgeben. Der Dienst sollte sich mit active (running) zurückmelden und auch die ersten Logeinträge ausgeben.

$ sudo adduser --system --no-create-home languagetool
$ sudo systemctl daemon-reload
$ sudo systemctl enable languagetool
$ sudo systemctl start languagetool
$ sudo systemctl status languagetool
● languagetool.service - LanguageTool
● languagetool.service - LanguageTool
     Loaded: loaded (/etc/systemd/system/languagetool.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-12-18 00:36:38 CET; 4s ago
   Main PID: 4763 (java)
      Tasks: 14 (limit: 2314)
     Memory: 72.3M
        CPU: 1.569s
     CGroup: /system.slice/languagetool.service
             └─4763 /usr/bin/java -cp /opt/LanguageTool/languagetool-server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --port 8081 --allow-origin * --public

Dez 18 00:36:38 lui-test systemd[1]: Started LanguageTool.
Dez 18 00:36:39 lui-test java[4763]: 2021-12-18 00:36:39.486 +0100 INFO  org.languagetool.server.DatabaseAccessOpenSource Not setting up database access, dbDriver is not configured
Dez 18 00:36:39 lui-test java[4763]: 2021-12-17 23:36:39 +0000 WARNING: running in HTTP mode, consider running LanguageTool behind a reverse proxy that takes care of encryption (HTTPS)
Dez 18 00:36:39 lui-test java[4763]: 2021-12-17 23:36:39 +0000 WARNING: running in public mode, LanguageTool API can be accessed without restrictions!
Dez 18 00:36:40 lui-test java[4763]: 2021-12-17 23:36:40 +0000 Setting up thread pool with 10 threads
Dez 18 00:36:40 lui-test java[4763]: 2021-12-17 23:36:40 +0000 Starting LanguageTool 5.5 (build date: 2021-10-02 12:33:00 +0000, 5e782cc) server on http://localhost:8081...
Dez 18 00:36:40 lui-test java[4763]: 2021-12-17 23:36:40 +0000 Server started

Chrome/Firefox und LibreOffice konfigurieren

Im Gegensatz zur LanguageTool-Erweiterung für LibreOffice arbeiten die Browser-Erweiterungen für Chrome und Firefox in der Standardkonfiguration immer mit dem kommerziellen Backend des Dienstes zusammen. Um nun euren eigenen LanguageTool-Server in die Einstellungen einzutragen, öffnet ihr (unter Chrome) über das Menü mit den drei Punkten rechts oben den Eintrag Weitere Tools | Erweiterungen. Dort sucht ihr dann die Karte zur Grammatik- und Rechtschreibprüfung – LanguageTool heraus und tippt auf den Button Details, im nächsten Dialog dann weiter auf die Optionen. In den Einstellungen zu LanguageTool angekommen, müsst ihr euch via Ausloggen vom Dienst abmelden. Danach könnt ihr unter Experimentelle Einstellungen (nur für Profis) die URL zum eigenen LanguageTool-Server in der Art http://Server-IP:Port/v2 eintragen.

Nach der Installation tragt ihr euren LanguageTool-Server in Chrome oder Firefox ein.

Ähnlich funktioniert die Konfiguration auch mit der LanguageTool-Erweiterung für LibreOffice. Hier öffnet ihr über den Menüeintrag Extras | LanguageTool | Optionen… die Einstellungen. Die URL zu eurem Server tragt ihr dann im Reiter Allgemein ein. Im Gegensatz zur Konfiguration der Browser-Erweiterung kommt hier allerdings kein /v2 an das Ende der URL. Es genügt die Server-IP zusammen mit der Nummer des Ports einzutippen. Das N-Gramm-Verzeichis (wie im Screenshot abgebildet) müsst ihr nicht zwingend lokal abspeichern. Nutzt ihr einen Server mit eigenen N-Gramm-Daten, ist dieser Schritt natürlich nicht nötig.

Auch die LanguageTool-Erweiterung kann man auf einen den eigenen Server umleiten.

LanguageTool auf einem Raspberry Pi

Im Prinzip erfüllt der Raspberry Pi die Anforderungen von LanguageTool: Ausreichend Speicherplatz lässt sich mit einer entsprechend großen Speicherkarte schaffen. Auch die Rechenkapazität der vierten Generation des Mini-Rechners genügt vollkommen. Und der Raspberry Pi 4 lässt sich zusammen mit der ARM64-Version des Raspberry Pi OS auch mit 64 Bit fahren, den Server gibt es nur in einer 64-Bit-Version. Die Installation und der Aufruf funktioniert daher auch, schiebt man allerdings die ersten Texte zur Korrektur auf den Raspberry Pi, dann meldet das System Probleme mit Hunspell und BridJ.

pi@raspberrypi:/opt/LanguageTool $ java -cp /opt/LanguageTool/languagetool-server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --port 8081 --allow-origin "*" --public
[...]
/tmp/BridJExtractedLibraries1395486954380915815/libbridj.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden (Possible cause: can't load AMD 64-bit .so on a AARCH64-bit platform))
[...]
Caused by: java.lang.RuntimeException: Could not create hunspell instance. Please note that LanguageTool supports only 64-bit platforms (Linux, Windows, Mac) and that it requires a 64-bit JVM (Java).

Die Thematik wird bereits im Github des LanguageTool-Projekts diskutiert. Dort gibt auch einen Patch für BridJ sowie einen Workaround für Hunspell — ich habe beides allerdings hier bei mir nicht zum Laufen gebracht. Wer noch ein wenig mehr Experimentieren möchte, dem würde ich zu diesem Docker-Image für LanguageTool von Erik van Leeuwen raten. Es soll auch auf ARM64 laufen, also auch auf einem Raspberry Pi der vierten Generation. Ich habe hier bei mir allerdings LanguageTool inzwischen zufriedenstellend auf einem kleinen Intel Nuc laufen, von daher habe ich mich nicht weiter mit dem Betrieb von LanguageTool auf einem Raspberry Pi beschäftigt.

von Christoph Langner am 19.12.2021 10:45


14.12.2021

Christoph Langner (Chrissss)

Desktop Cube bringt den Compiz-Würfel zurück auf den Gnome-Desktop

Erweiterungen für den Gnome-Desktop sind eine zweischneidige Sache: Auf der einen Seite lässt sich auf diesem Weg so gut wie jedes Detail des Desktops anpassen, auf der anderen Seite gab es in der Vergangenheit bei Upgrades auf die jeweils nächste Gnome-Version immer wieder Probleme. Ich hatte schon das Vergnügen, dass ich in der virtuellen Konsole die Konfigurationsdateien von Gnome löschen musste, um mich wieder ins System einloggen zu können — ohne diese Aktion lud Gnome nur den blanken Hintergrund. Da ich nun aber schon seit einiger Zeit auf Experimente mit Erweiterungen verzichte, kann nicht ich sagen, ob sich die Situation inzwischen grundlegend verbessert hat. Ich lese in Foren und Blogs allerdings weitaus seltener negative Berichte. Nicht desto trotz empfehle ich vor dem Einspielen „großer“ Gnome-Updates die gerade aktivierten Erweiterungen vorübergehend zu deaktivieren.

Es gibt aber durchaus ein paar Erweiterungen, die ich nicht missen möchte: Dazu gehört zum Beispiel GSConnect zum Andocken des Desktops an KDE Connect, sodass Benachrichtigungen des Handys an den Desktop weitergeleitet werden oder die Musikwiedergabe automatisch stoppt, sobald ein Anruf eingeht. Der Abgleich der Zwischenablage für Copy&Paste ist auch praktisch. Aus Nostalgiegründen gehört aber aktuell auch der Desktop Cube dazu. Die Erweiterung ergänzt Gnome mit einem 3D-Würfel, wie ihr ihn eventuell noch von Compiz her kennt — einen Rechner mit schneller Grafikkarte braucht es dafür nicht zwingend. Bei mir genügt ein Intel Core i7-7700T mit einer internen HD Graphics 630. An der Erweiterung wird auf Github aktuell aktiv gearbeitet, die fünfte Version des Addons wurde gerade erst vor zwei Tagen veröffentlicht. Neu ist ein einfacher Dialog zur Konfiguration der wichtigsten Parameter, sodass ihr den Würfel an eure eigenen Vorstellungen anpassen könnt.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://youtu.be/WNt6t9DIhpU
Die fünfte Version des Desktop Cube enthält nun einen Dialog zur Konfiguration des Würfels.

von Christoph Langner am 14.12.2021 12:34


04.12.2021

Martin Dosch (Dogge)

Youtubevideos oder -playlisten mit MPD abspielen

Manchmal möchte man ein Lied oder eine Playlist abspielen, die man nicht lokal in der mpd-Datenbank hat. Häufig findet man diese Lieder dann bei youtube. Da ich über meinen mpd mittels snapcast Musik gleichzeitig in mehreren Räumen abspielen kann möchte ich natürlich mpd auch für youtube nutzen.

Dazu habe ich mir ein kleines script geschrieben, welches das Lied oder die Playliste mit mpd abspielt.

Vorraussetzungen um das script nutzen zu können sind mpc und yt-dlp oder youtube-dl.

#! /bin/bash

# MPDPIPE
# Copyright (C) 2021 Martin Dosch 
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

YTDL=$(command -v yt-dlp)
if [[ -z "$YTDL" ]]
then
	YTDL=$(command -v youtube-dl)
	if [[ -z "$YTDL" ]]
	then
		echo "No youtube-dl found."
		exit
	fi
fi

MPC=$(command -v mpc)
if [[ -z "$MPC" ]]
then
	echo "No mpc found."
	exit
fi

get_song_url () {
	URL=$("$YTDL" -qgf bestaudio "$1")
}

check_url () {
	REGEX='(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
	if [[ ! $1 =~ $REGEX ]]
	then
		echo "$1 is not a valid URL."
		exit
	fi
}

show_help () {
	BASENAME=$(command -v basename)
	if [[ -z "$BASENAME" ]]
	then
		PROGRAM="$0"
	else
		PROGRAM=$($BASENAME "$0")
	fi
	echo "USAGE:"
	echo "$PROGRAM URL"
	echo "$PROGRAM MPD_HOST URL" 
	exit
}


case $# in
	1)
		if [ "$1" = "help" ] || [ "$1" = "--help" ]
		then
			show_help
		fi
		MPC_COMMAND="$MPC"
		INPUT="$1"
		;;
	2)
		MPC_COMMAND="$MPC -h $1"
		INPUT="$2"
		;;
	*)
		echo "Invalid input."
		show_help
		;;
esac

check_url "$INPUT"

$MPC_COMMAND clear
FIRSTRUN=1

for LINK in $("$YTDL" --flat-playlist --no-warnings -qg "$INPUT")
do
	get_song_url "$LINK"
	if [ -n "$URL" ]
	then
		$MPC_COMMAND add "$URL"
		if [ $FIRSTRUN -eq 1 ]
		then
			$MPC_COMMAND play
			FIRSTRUN=0
		fi
	fi
done

Ich werde das script hier aktuell halten, aber für den Fall, dass ich es doch mal vergesse: Ich habe es auch auf salsa.debian.org veröffentlicht.

04.12.2021 15:00


17.11.2021

Daniel Gestl (mcdaniels)

EA Sports NHL Hockey 2022 Pucks und Bugs inklusive

Als Anhänger der NHL Serie auf dem PC hatte ich mir vor ein paar Jahren extra eine PS4 gekauft. Ich verstehe noch immer nicht, weshalb EA nebst FIFA nicht auch NHL für den PC rausbringt. Die Vermutung liegt nahe, dass in unseren Breiten Eishockey wohl einen geringen Verbreitungsgrad hat. Dabei ist das Spiel selbst wirklich […]

The post EA Sports NHL Hockey 2022 Pucks und Bugs inklusive first appeared on www.pc-howto.com.

von Daniel am 17.11.2021 16:07


31.10.2021

Martin Dosch (Dogge)

DNS over TLS in Debian

2017 schrieb ich über die Einrichtung von DNSCrypt in Debian, mittlerweile nutze ich aber DNS-over-TLS (DoT) mit einem eigenen server. Sowohl auf Server-, als auch auf Client-Seite nutze ich knot-resolver.

Einrichtung

Server

Zuerst muss das Paket knot-resolver installiert werden:

apt install knot-resolver

Danach muss /etc/knot-resolver/kresd.conf editiert werden:

net.listen('127.0.0.1', 53)
net.listen('IP4', 853, { kind = 'tls' })
net.listen('IP6', 853, { kind = 'tls' })
user('knot-resolver','knot-resolver')
cache.size = 2*GB

modules = {
  'view',
  'hints > iterate',
  'serve_stale < cache',
  'workarounds < iterate'
}

Statt IP4 und IP6 muss natürlich die IP-Adresse eingegeben werden, auf der der server über DoT erreichbar sein soll. Ggf. muss man natürlich auch noch den Port 853 in der firewall für Zugriffe von Außen freigeben.

Anschließend aktiviert man den server folgendermaßen:

systemctl enable --now kresd@{1..4}.service

Zugriff auf TLS-Zertifkate

Ohne weitere Konfiguration benutzt kresd selbstsignierte Zertifikate für DoT. Ich habe auf meinem server bereits Zertifikate von Let’s Encrypt und möchte diese auch für DoT nutzen. Um die Zertifikate für kresd erreichbar zu machen habe ich ein kleines Skript geschrieben:

cp /etc/letsencrypt/live/mdosch.de/privkey.pem /var/lib/knot-resolver
cp /etc/letsencrypt/live/mdosch.de/fullchain.pem /var/lib/knot-resolver
chown -R knot-resolver:knot-resolver /var/lib/knot-resolver 
chmod 700 /var/lib/knot-resolver
systemctl restart kresd@{1..4}.service

Die Pfade der Zertifikate sind natürlich anzupassen und das Skript muss nach dem Speichern ausführbar gemacht werden:

chmod +x /pfad/zum/script.sh

Damit das Skript auch ausgeführt wird wenn certbot die Zertifikate erneuert, lasse ich es mittels --renew-hook aufrufen.

Nun muss die Konfiguration abgeändert werden (Zeile 1) damit kresd die Zertifikate auch nutzt:

net.tls("/var/lib/knot-resolver/fullchain.pem", "/var/lib/knot-resolver/privkey.pem")
net.listen('127.0.0.1', 53)
net.listen('IP4', 853, { kind = 'tls' })
net.listen('IP6', 853, { kind = 'tls' })
user('knot-resolver','knot-resolver')
cache.size = 2*GB

modules = {    
  'view',                   
  'hints > iterate',         
  'serve_stale < cache',     
  'workarounds < iterate'
}

Danach muss kresd neu gestart werden:

systemctl restart kresd@{1..4}.service

Werbung und Tracking filtern

Ich möchte Werbung und Tracking direkt auf DNS-Ebene blocken und nutze dafür die Blocklisten von hBlock. Wenn man das hBlock-repo klont und dort make hosts ausführt erhält man u.a. eine Datei hosts_rpz.txt im Ordner dist. Diese Datei kann kresd einlesen und die dort gelisteten hosts bei DNS-Abfragen blockieren. Die Konfiguration muss folgendermaßen angepasst werden (Zeilen 13 und 16):

net.tls("/var/lib/knot-resolver/fullchain.pem", "/var/lib/knot-resolver/privkey.pem")
net.listen('127.0.0.1', 53)
net.listen('IP4', 853, { kind = 'tls' })
net.listen('IP6', 853, { kind = 'tls' })
user('knot-resolver','knot-resolver')
cache.size = 2*GB

modules = {    
  'view',                   
  'hints > iterate',         
  'serve_stale < cache',     
  'workarounds < iterate',
  'policy'
}

policy.add(policy.rpz(policy.DENY, '/pfad/zu/hosts_rpz.txt'))

Danach muss kresd wieder neu gestart werden:

systemctl restart kresd@{1..4}.service

Rekursives Blocken

Einige Trackingfirmen nutzen für ihre Kunden subdomains um die üblichen Schutzmaßnahmen zu umgehen, z.B. zn0lxkzethotizctx-bahn.siteintercept.qualtrics.com. Um den Schutz vor Tracking zu verbessern kann man auch rekursiv alle subdomains der domains in der Blockliste sperren.

Mit Hilfe von hBlock kann man eine Blockliste erstellen, die über wildcards auch die Subdomains umfasst:

hblock --output ./hosts_rpz.txt --header none --footer none --redirection '.' --template '%D CNAME %R\n*.%D CNAME %R' --comment ';' --filter-subdomains

Durch rekursives Blocken wird aber auch eine zufällig generierte subdomain in der Form <random>-dnsotls-ds.metric.gstatic.com geblockt, die bei Benutzung von DoT in Android genutzt wird. Um die resultierende Fehlermeldung in Android zu vermeiden wird diese subdomain gezielt erlaubt und folgendes in /etc/knot-resolver/kresd.conf eingetragen:

policy.add(policy.pattern(
	policy.PASS,
	'%w+%-dnsotls%-ds\006metric\007gstatic\003com\000$'
))

Client

Linux

Auf dem client muss ebenfalls das Paket knot-resolver installiert werden:

apt install knot-resolver

Die Konfiguration /etc/knot-resolver/kresd.conf gestaltet sich auf dem client recht simpel:

net.listen('127.0.0.1', 53, { kind = 'dns' })

modules = {
        'policy',
}

policy.add(policy.all(policy.TLS_FORWARD({
    {'5.181.50.75', hostname='mdosch.de'},
    {'2a03:4000:3f:1c8:8839:33ff:feba:fe4a', hostname='mdosch.de'},
})))

Die IPs und der hostname müssen natürlich gegen eure IPs und domain ausgetauscht werden.

Auch hier muss kresd aktiviert werden:

systemctl enable --now kresd@{1..4}.service

Anschließend muss man dem System mitteilen, den DNS-forwarder unter 127.0.0.1:53 zu nutzen. Das tut man indem man die Datei /etc/resolv.conf folgendermaßen editiert:

nameserver 127.0.0.1

Ggf. muss man noch den NetworkManager zähmen, damit dieser nicht die Datei /etc/resolv.conf überschreibt.

Android

Unter Android kann der DoT server folgendermaßen konfiguriert werden:

Einstellungen → Netzwerk & Internet → Erweitert → Privates DNS

Dort ist dann die domain, in meinem Fall z.B. mdosch.de, einzutragen.

Test

Zum testen kann man den Befehl dig aus dem Paket bind9-dnsutils nutzen. Mit z.B. dig debian.org bekommt man folgende Ausgabe:

dig debian.org      

; <<>> DiG 9.17.19-1-Debian <<>> debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13249
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;debian.org.			IN	A

;; ANSWER SECTION:
debian.org.		280	IN	A	128.31.0.62
debian.org.		280	IN	A	130.89.148.77
debian.org.		280	IN	A	149.20.4.15

;; Query time: 240 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sun Oct 31 11:00:57 CET 2021
;; MSG SIZE  rcvd: 87

Hier wurde die domain debian.org erfolgreich aufgelöst und die Zeile ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) zeigt, dass der lokale DNS-forwarder benutzt wurde.

Man kann natürlich auch Webseiten, wie z.B. dnsleaktest.com, benutzen um zu sehen welche DNS-server benutzt werden.

Mit dig google-analytics.com kann getestet werden ob das Blocken von Werbung und Tracking auch funktioniert:

dig google-analytics.com

; <<>> DiG 9.17.19-1-Debian <<>> @127.0.0.1 google-analytics.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 19517
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google-analytics.com.		IN	A

;; Query time: 220 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sun Oct 31 11:03:38 CET 2021
;; MSG SIZE  rcvd: 49

Hier wurde google-analytics nicht aufgelöst, die Blockliste wird also genutzt.

Updates

  • 2022-03-06: Abschnitt Rekursives Blocken hinzugefügt.

31.10.2021 10:05


18.10.2021

Axel Hellinger (cryptolegal)

Urteil Savedroid AG vs. Escrow über die verwahrten BTC/ETH über 40 Mio EUR

Das OLG Köln ist in dem Berufungsverfahren gegen die Savedroid AG im Ergebnis der Rechtsauffassung des Treuhänders gefolgt. Mit Zufriedenheit wurde das Urteil des Berufungsgerichts vom 13.10.2021 (11 U 56/20) aufgenommen. Das OLG Köln versagte die unmittelbare Herausgabe der Token mit einem aktuellen Wert von nunmehr ca. 40 Mio EUR an die SVD AG. Die Voraussetzungen für die Auskehrung der treuhänderisch verwahrten Token an die SVD AG liegen nicht vor.

Hintergrund:

Seit Jahren liegen die Savedroid AG (SVD AG) mit dem Treuhänder im Streit. Der Treuhänder, der 2018 die ICO (Inital Coin Offering) begleitete, sah Mängel in der Durchführung der ICO seitens der SVD AG.

Die SVD AG ist ein krisengeplagtes Unternehmen, welches hauptsächlich durch Skandale (bzw. auch „Der Savedroid-Absturz„) auf sich aufmerksam gemacht hat. Die SVD AG ist eine 100% Tochter der Advanced Bitcoin Technologie AG (ABT AG, WKN: A2YPJ2 ). Der Konzern um die ABT AG schafft es seit vielen Jahren nicht, eine Erlaubnis für das Anbieten von Krypto- bzw. Finanzdienstleistungen zu bekommen. Und das, obwohl in drei EU-Staaten Standorte unterhalten werden. Es wird wohl seine Gründe haben, weshalb die jeweiligen Finanzaufsichten unabhängig von einander zu dem Ergebnis kommen, dass man die Unternehmensgruppe nicht auf Kunden loslassen dürfte. Mittlerweile hat sich der Konzern in der EU auch offiziell aus dem aktiven Kryptogeschäft zurückgezogen.

Innerhalb der Cryptocommunity gab es schon 2018 extremen Unmut bzgl. dem Geschäftsgebaren der Vorstände Dr. Yassin Hankir und Tobias Zander.

Es ist daher nicht verwunderlich, dass der Treuhänder sich den Sachverhalt einmal genauer anschauen wollte. Hierzu wünschte er detaillierte Unterlagen über die ICO von der SVD AG.

Anstelle die Unterlagen zur Verfügung zu stellen, suchte sich die SVD AG einen anderen, weniger kritischen Treuhänder. Anschließend kündigte sie den alten Treuhänder und verlangte die Herausgabe des Treuguts.

Die Herausgabe verweigerte der ursprüngliche Treuhänder mit dem Hinweis, dass dann die Schutzfunktion des „escrow“ für die Investoren ausgehebelt würde. Der Treuhandvertrag mit dem neuen Treuhänder enthielt explizit die Regelung, dass Voraussetzungen für die Tokenfreigabe gerade nicht geprüft werden sollen.

Urteil:

Erfreulich ist, dass das OLG Köln in Ablehnung des erstinstanzlichen Urteils der SVD AG die Herausgabe der Token verweigert. Die SVD AG ist hier mit ihrem Hauptantrag gescheitert. Das OLG Köln sah aber das Verhältnis zwischen der SVD AG und dem alten Treuhänder als zerrüttet an. Daher ist das Treugut an einen anderen Treuhänder auszukehren. Das Gericht hat aber zu verstehen geben, dass der neue Treuhänder die Einhaltung der Treuhandabrede zu prüfen hat, ob Investoren keine SVD-Token erhalten hätten. Hierzu muss der neue Treuhänder einen öffentlichen Aufruf starten. Hierauf müssen sich die Investoren dann melden. Die Begründung des Urteils liegt noch nicht vor. Näheres muss noch abgewartet werden.

Es sind eine nicht unerhebliche Zahl von Investoren bekannt, die behaupten, immer noch keine SVD-Token bekommen zu haben. Wenn die SVD AG nicht (wieder) eine Klagewelle lostreten möchte, muss sie diesmal die Beschwerden ernst nehmen.

Darüber hinaus läuft bei der STA Bonn ein Beschwerdeverfahren über die Wiederaufnahme der strafrechtlichen Ermittlungen. Gegenstand ist eine Strafanzeige wegen Prozessbetruges gegen der Vorstände Hankir und Zander. Einige Tatsachen wurden m.E. hier nicht oder nicht hinreichend geprüft.

Auch haben sich im Rahmen der langen zivilrechtlichen Auseinandersetzung einige Zeugen gemeldet und Beweise zur Verfügung gestellt. Diese sind geeignet auch das eingestellte Betrugsverfahren gegen die Vorstände in Frankfurt wieder aufzunehmen.

Es ist daher nicht unrealistisch, dass die SVD AG nicht lange Freude an dem Bitcoins & Co. haben wird. Es ist durchaus denkbar, dass das Treugut im Rahmen eines Strafverfahrens oder einer Restitutionsklage wieder herausgegeben werden muss.

HELLINGER.legal - Steuern | Recht | Cryptos

von AH am 18.10.2021 08:21


13.07.2021

(c3f2o)

#1707 Frankfurt (Oder) bleibt wolfsfrei!

Am 17.07. möchte die rechtsextreme Bruderschaft „Wolfsschar“ in Frankfurt (Oder) um 13 Uhr vom Bahnhofsvorplatz in die Innenstadt demonstrieren. Schon am 08.05. diesen Jahres hatte der neu gegründete Stadtverband der NPD eine Kundgebung organisierte. Nun möchte der gleiche Personenkreis rund um Siegfried Pauly und Martin Walmann unter dem Label „Wolfsschar“ durch die Stadt marschieren. Den […]

von invia1200 am 13.07.2021 08:10


31.05.2021

Steffen Rumberger (inne)

HTTPS-Verschlüsselung knacken

Mit dem Programm mitmproxy (https://mitmproxy.org) kann man mittels eigenem Zertifikat als MITM eine HTTPS-Verbindung mitlesen.

Installation von mitmproxy

Installation über die Paketverwaltung:

apt install mitmpoxy

Das Paket wird von Debian und auch Kali Linux bereitgestellt.

Ansonsten ist mitmproxy Python und kann mittels PIP installiert werden (Das funktioniert auch unter Cygwin und auch unter Windows - Python gibt es im Microsoft Store. Wobei ein C/C++ Compiler benötigt wird):

pip install mitmproxy

SOCKS-Proxy starten

mitmweb --mode socks5 --no-web-open-browser

Dies startet einen SOCKS-Proxy Server am Port TCP/8080 und das HUD ist als Web-Interface unter http://localhost:8081 verfügbar.

Zertifikate importieren

Die Zertifikate befinden sich unter ~/.mitmproxy und es muss i.d.R. das mitmproxy-ca-cert.p12 importiert werden. Dieses (neue) Format fast die anderen einzelnen Dateien als eine Datei zusammen.

Ansonsten ist es wichtig das Zertifikat ~/.mitmproxy/mitmproxy-ca-cert.cer als CA in den Webbrowser zu importieren und als SOCKS-Proxy den Socket 127.0.0.1:8080 anzugeben.

Für Firefox öffne dazu Einstellungen/Datenschutz und Sicherheit/Zertifikate/Zertifikate anzeigen/Zertifizierungsstellen/Importieren… und importiere ~/.mitmproxy/mitmproxy-ca-cert.cer und aktiviere Dieser CA vertrauen, um Websites zu identifizieren.

https://support.mozilla.org/de/kb/zertifizierungsstellen-firefox-einrichten

Traffic über Proxy leiten

Außerdem muss auch eingestellt werden den Proxy s.o. zu nutzen.

Für Firefox öffne dazu Einstellungen/Allgemein/Verbindungs-Einstellungen und setze Manuelle Proxy-Konfiguration und setze SOCKS-Host und Port.

https://support.mozilla.org/de/kb/verbindungs-einstellungen-firefox

Transparent Proxy

Wird ein Transparent Proxy z.B. für Android und/oder Windows benötigt, erstellt man einen WLAN Hotspot wie folgt (Das Zertifikat s.o. muss dann zu den OS CAs hinzugefügt werden):

#!/usr/bin/env sudo
# Set up a wifi hotspot under Kali Linux
wifi_ap=wlan0
gateway=eth0
sysctl net.ipv4.conf.$wifi_ap.forwarding=1
sysctl net.ipv6.conf.$wifi_ap.forwarding=1
iptables -t nat -A PREROUTING -i $wifi_ap -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080
iptables -t nat -A POSTROUTING -o $gateway -j MASQUERADE
ip6tables -t nat -A PREROUTING -i $wifi_ap -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080
ip6tables -t nat -A POSTROUTING -o $gateway -j MASQUERADE
nmcli dev wifi hotspot ifname $wifi_ap
nmcli dev wifi show-password

Und dann mitmproxy starten:

# startet den Proxy; benötigt kein root
mitmweb --mode transparent --no-web-open-browser

Für mehr Informationen siehe auch mitmweb --help, nmcli --help und iptables --help.

Wie man unter Android oder Windows das Zertifikat importiert und den Proxy setzt, entnehmen Sie bitte dem Benutzerhandbuch.

mitmproxy

mitmdump

31.05.2021 12:58


03.05.2021

Steffen Rumberger (inne)

Zellulärer Bauplan der menschlichen Zähne entschlüsselt

Forscher legen Grundlagen für zellbasierte, regenerative Zahnbehandlungen.

“Die Einzelzell-Analyse könnte nicht nur für diagnostische Zwecke nützlich sein und die Früherkennung von Zahnerkrankungen unterstützen, sondern auch zur zellbasierten Regeneration von beschädigten Teilen der Zähne beitragen”, erklärt Mitsiadis. (red, 3.5.2021)

Quelle: www.derstandard.at

03.05.2021 00:00


19.03.2021

(thoys)

Datenschutz auf Smartphones dank /e/ – Installations-Erfahrungsbericht

Ich habe in den letzten Tagen auf einem Sony Xperia XA2 und einem Samsung Galaxy S4 das Betriebssystem /e/ aufgespielt. Und neben dem Datenschutz dem S4 ein zweites Leben geschenkt.

/e/ ist ein Google-freies, auf LineageOS basierendes Betriebssystem mit eigenen Webdiensten, das vom französischen Softwareentwickler und Gründer der Linux-Distribution Mandrake, Gaël Duval, ins Leben gerufen wurde.

Wikipediaartikel von /e/ – Stand 19.03.20

Der Vorgänger

Davor hatte ich ein Intex Aquafish mit SailfishOS. Das ist zwar ein tolles System, aber beispielsweise bei den Bankingapps gabs dann eben Probleme (da, die ein ungerootetes System wollten). Und es schaffte die Aktualisierung auf Version 4 nicht. Ich glaube zwar noch daran, dass eine spätere Unterversion wieder gehen wird, aber ich hab grad meine Glaskugel nicht da. Dieses Smartphone habe ich auf Ebay verkauft – schön, dass es einen neuen Besitzer gefunden hat.

Das Sony Xperia XA2

Das Sony Xperia XA2 ist ein schönes Handy, mit 5,2 Zoll Display, da ich kein großes Smartphone mit mir herumtragen möchte. Die Installation verlief folgendermaßen:

  • Anleitung auf e.foundation folgen. Den Bootloader entsperren, TWRP installieren, ein Recovery installieren, /e/ installieren. Es gab am Ende eine Abweichung von der Anleitung, aber es hat funktioniert.
  • Feststellen, dass der Multimedia-Ton nicht geht, im Forum fragen und die Antwort bekommen, dass man vor der Installation Android updaten muss. (Dies wurde umgehend in der Anleitung ergänzt – vorbildlich)
  • Also: Windows Rechner organisieren, per Sony-Software Android installieren (entweder das Aktuelle oder ein OTA Update machen) und wieder ganz von vorne anfangen.
  • Ein paar Mal auf Werkseinstellungen zurücksetzen und schon gings 😉

War es den Aufwand wert? Natürlich! Ich habe jetzt ein gut funktionierendes Smartphone, das ich per Caldav und Carddav mit meiner Nextcloud verbinde (es gibt zwar ein e-Konto, aber das Handy funktioniert eben auch ohne). Es funktionieren auch Banking-Apps, die auf einem gerooteten Handy nicht laufen würden. Und der Multimediasound ist zwar da, geht aber stets mit einem Rauschen einher. Wenn man laut hört, ist das kein Problem, hört man leise ist es störend.

Das Samsung Galaxy S4

Das Samsung war wirklich alt. Es gehört meiner Mutter und ich war erst unschlüssig, ob ich es nicht direkt entsorgen sollte. Die Installation:

  • Bei meiner Version GT-l9505 war der Bootloader bereits entsperrt.
  • Die Anleitung ließ sich ohne Probleme durchlaufen. Ich musste nur verstehen, dass es einen Unterschied gibt zwischen „Homebutton, Lauter und On“ und „Homebutton, Leiser und On“.

Hat es sich gelohnt? Oh ja! Das Smartphone war lange in Betrieb. Das Betriebssystem veraltet und es lief furchtbar schlecht. Jetzt, mit frischem /e/ fühlt es sich nach einem aktuellen Smartphone an. Auch in der Geschwindigkeit des Hin- und Herwischen und wie schnell Apps geladen werden. Natürlich kein Vergleich zu einem aktuellen 1000 Euro Handy, aber im Vergleich zum Xperia XA2 kann es mithalten und der Multimediasound rauscht nicht. Für unter 10 Euro gibts bei Real einen neuen Akku für das Telefon und somit kann es noch eine ganze Weile genutzt werden. Gut für die Umwelt, gut für den Datenschutz.

Fazit

Beide Smartphones schicken jetzt zumindest weniger Daten an Großkonzerne. Natürlich bewegt man sich immer noch im Ökosystem von Android, aber für mich ist das ein guter Kompromiss aus Datenschutz und dass es funktionieren muss. Wobei ich bei der Funktion bisher keine Abstriche machen muss, eher bei der Zeit und dem Know-How, das ich hineinstecken muss, um soweit zu kommen. Es gibt bisher keine Funktionseinschränkung zu Android und gerade das S4 hat ein zweites Leben bekommen.

Datenschutz ist bereits jetzt schon etwas, das man sich leisten können muss. Entweder durch eigenes Wissen oder durch Geld.

Schön für die Umwelt ist, dass es für das Samsung schon lange keine Android-Updates mehr gibt, die Version von /e/ jedoch dieses Jahr aktualisiert wurde.

Wikipediaartikel von LineageOS: https://de.wikipedia.org/wiki/LineageOS
Wikipediaartikel von /e/: https://de.wikipedia.org/wiki//e/
Offizielle Homepage von /e/: https://e.foundation/

von Timotheus am 19.03.2021 11:08


18.03.2021

(thoys)

Datenschutzbeauftragter redet Klartext und fordert Verzicht auf Microsoft und andere

https://www.heise.de/news/Datenschutzbeauftragter-Behoerden-sollten-unverzueglich-auf-Microsoft-verzichten-5990886.html

von Timotheus am 18.03.2021 10:53


15.03.2021

(c3f2o)

AfD watch Bundestag: Parlamentswoche 3. bis 5. März 2021

„Rechtliche Schritte“ wollte sich die AfD-Bundestagsfraktion in der letzten Sitzungswoche vorbehalten, sollte der von der LINKEN beantragte Berichtspunkt zu den „Entscheidungsgründen des BfV für die Einstufung der AfD als Verdachtsfall“ in der Sitzung des Innenausschusses aufgerufen werden. Mit Presseberichten zu eben dieser Einstufung der AfD durch das BfV am Morgen der Sitzung, wurde diese leere […]

von invia1200 am 15.03.2021 09:54


15.01.2021

Stephan Tetzel (zefanja)

Neue GUI für LINBO

LINBO ist eines der wesentlichen Features von linuxmuster.net – einer freien Schulserverlösung. Mit LINBO kann man viele PCs oder Laptops einfach und in wenig Zeit verwalten. Es hilft den administrativen Aufwand, den man mit vielen Geräten hat, in Grenzen zu halten. Viele Prozesse lassen sich zu dem automatisieren, sodass man fast alle Aufgaben, wie z.B. ein neues Image verteilen, aus der Ferne erledigen kann. Mit Version 7 hat linuxmuster.net ein neues & modernes Webinterface bekommen, einzig LINBO sah man das Alter mit seiner alten Benutzeroberfläche an. Doch damit scheint jetzt bald Schluss zu sein, denn eine neue GUI für LINBO befindet sich in der Testphase. Seht selbst.

Installation

Wer linuxmuster.net an der Schule bereits einsetzt und die neue GUI testen möchte (sie ist noch nicht für den produktiven Einsatz gedacht!), muss die „testing“-Paketquelle einrichten. Man öffnet die Datei /etc/apt/sources.list.d/lmn7.list und ändert die Einträge wie folgt ab:

deb https://archive.linuxmuster.net lmn7-testing/
deb-src https://archive.linuxmuster.net lmn7-testing/

Danach kann man nach einem „apt update && apt upgrade“ die neue GUI für LINBO installieren:

$ apt install linuxmuster-linbo-gui7

Fertig.

Neue Optionen für die start.conf

Mit der neuen GUI gibt es auch ein paar neue Optionen für die start.conf Datei, die man manuell oder im Webinterface einstellen kann. Da alles noch in der Entwicklung ist, können sich diese Parameter aber noch ändern:

UseMinimalLayout = yes
Locale = en-US
BackgroundColor = 0c2842

Man kann also neben der Hintergrundfarbe auch die Sprache einstellen. UseMinimalLayout = yes sorgt dafür, dass LINBO in mit einer minimalistischen GUI startet (die aber sehr schick aussieht, siehe Screenshots).

Screenshots

Linbo Bootscreen LINBO Standard Layout (hell) LINBO Standard Layout (dunkel) LINBO Minimalistische GUI LINBO Admin Menü Client registrieren Neues Image erstellen LINBO Terminal Betriebssystem synchronisieren

Fazit

Mir gefällt die neue GUI sehr. Sie sieht toll & modern aus und lässt sich gut bedienen. Vielen Dank an Dorian Zedler!

3 Kommentare

Der Beitrag Neue GUI für LINBO erschien zuerst auf .:zefanjas:..

von zefanja am 15.01.2021 05:16


27.12.2020

Darian (thoys)

Daten auf dem Handy ohne W-Lan oder Funk – Micro-USB LAN (RJ45) Adapter

Es die Möglichkeit sein Tablet oder sein Handy per Kabel mit Daten zu versorgen. Gerade bei meinem Tablet kann ich auf diese Weise größere Updates machen oder Filme schauen und habe das W-LAN ausgeschaltet.

In meinem vorherigen Post habe ich beschrieben, wie ich das mit meinem Smartphone mit USB-C mache, in diesem Artikel geht es um mein Tablet mit Micro-USB.

Micro-USB ist dabei der „alte“ Standard und USB-C der Neue. Probiert einfach mal aus euren Stecker umzudrehen und wieder in euer Smartphone zu stecken. Wenns funktioniert habt ihr entweder ein iPhone oder USB-C, wenn nicht, dann Micro-USB – so einfach ist das.

Das Anschließen ist ebenfalls einfach.

  1. Ich stecke den Micro-USB Stecker vom Adapter in mein Tablet.
  2. Das LAN-Kabel in den Adapter.
  3. Fertig

Mir ist aufgefallen, dass ich so nicht nur Funkstrahlung vermeide, sondern der Akku auch viel länger hält. Leider gibt es diese Adapter noch nicht mit der Möglichkeit gleichzeitig den Akku zu laden, sonst wäre das hier das Paradies.

Wenn ich mal kurz was nachschaue, nehme ich weiterhin W-LAN aber sobald ich länger am Schreibtisch oder auf dem Sofa sitze, nutze ich diesen Adapter.

Wer noch Studiert und in einem Raum in der Uni ist, der schlechtes W-LAN aber LAN-Kabel hat, der kann sich hiermit zu schnellem Internet verhelfen. Das gilt natürlich für Firmen, Wohnungen von Freunden usw.

Mein kleines Fazit (ist natürlich gleich, wie beim USB-C Adapter):

🙂🙁
Günstig
Funktioniert ab Android 3.1
Einfach
Akku hält länger
Schnelles Internet auf dem Handy
Perfekt für die Arbeit am Schreibtisch
Weniger Funkstrahlung
Funktioniert nicht mit POE
(Laden und Daten gleichzeitig)

Ich kann nicht rumlaufen und verlege dauernd den Adapter ; -)

Jetzt interessiert mich natürlich, wie gut das bei eurem Smartphone oder Tablet funktioniert hat?
Eure Antwort und eventuelle Fragen könnt ihr einfach hier in die Kommentare schreiben.

-<-,–{@ Euer Darian
Themenübersicht und Kauf

von Darian am 27.12.2020 15:51


13.12.2020

Lars Moelleken (voku1987)

Prepare your PHP Code for Static Analysis

Prepare your PHP Code for Static Analysis

Three years ago I got a new job as PHP developer, before that I called myself web developer because I build ReactJS, jQuery, CSS, HTML, … and PHP  stuff for a web agency. So now I am a full-time PHP developer and I converted a non typed  (no PHPDoc + no native types) project with ~ 10.000 classes into a project with ~ 90% type coverage. Here is what I have learned.

1. Write code with IDE autocompletion support.

If you have autocompletion in the IDE most likely the Static Analysis can understand the code as well. 

Example:

bad:

->get('DB_Connection', true, false);

still bad:

->get(DB_Connection::class);

good:

getDbConnection(): DB_Connection

2. Magic in Code is bad for the long run!

Magic methods (__get, __set, …) for example can help to implement new stuff very fast, but the problem is nobody will understand it, you will have no autocompletion, no refactoring options, other developers will need more time to read and navigate in the code and in the end it will cost you much more time than you can save with it.

3. Break the spell on Magic Code …

… by explaining to everyone (Devs > IDE > Tools) what it does.

Example 1:

We use a simple Active Record Pattern, but we put all SQL stuff into the Factory classes, so that the Active Record class can be simple. (Example) But because of missing support for Generics we had no autocompletion without adding many dummy methods into the classes. So one of my first steps was to introduce a “PhpCsFixer” that automatically adds the missing methods of the parent class with the correct types via “@method”-comments into these classes. 

Example 2:

Sometimes you can use more modern PHPDocs to explain the function. Take a look at the “array_first” function in the linked Post.

Example 3:

/**
* Return an array which has the Property-Values of the given Objects as Values.
*
* @param object[] $ObjArray
* @param string $PropertyName
* @param null|string $KeyPropertyName if given uses this Property as key for the returned Array otherwise the keys from the
* given array are used
*
* @throws Exception if no property with the given name was found
*
* @return array
*/
function propertyArray($ObjArray, $PropertyName, $KeyPropertyName = null): array {
// init
$PropertyArray = [];

foreach ($ObjArray as $key => $Obj) {
if (!\property_exists($Obj, $PropertyName)) {
throw new Exception('No Property with Name ' . $PropertyName . ' in Object Found - Value');
}

$usedKey = $key;
if ($KeyPropertyName) {
if (!\property_exists($Obj, $KeyPropertyName)) {
throw new Exception('No Property with Name ' . $PropertyName . ' in Object Found - Key');
}
$usedKey = $Obj->{$KeyPropertyName};
}

$PropertyArray[$usedKey] = $Obj->{$PropertyName};
}

return $PropertyArray;
}

Sometimes it’s hard to describe the specific output types, so here you need to extend the  functions of your Static Code Analyze Tool, so that it knows what you are doing. ⇾ for example here you can find a solution for PHPStan ⇽  but there is still no support for the IDE and so maybe it’s not the best idea to use magic like that at all. And I am sure it’s more simple to use specific and simple methods instead:  e.g. BillCollection->getBillDates()

4. Try to not use strings for the code.

Strings are simple and flexible, but they are also bad for the long run. Mostly strings are used because it looks like a simple solution, but often they are redundant, you will have typos everywhere and the IDE and/or Static Analysis can’t analyze them because it’s just text.

Example:

bad: 

AjaxEditDate::generator($bill->bill_id, $bill->date, 'Bill', 'date');
  • “Bill” ⇾ is not needed here, we can call e.g. get_class($bill) in the “generator” method
  • “date” ⇾ is not needed here, we can fetch the property name from the class
  • “$bill->bill_id” ⇾ is not needed here, we can get the primary id value from the class

good:

AjaxEditDate::generator($bill, $bill->m()->date);

5. Automate stuff via git hook and check it via CI server.

Fixing bad code is only done if you disallow the same bad code for the future. With a pre-commit hook for git it’s simple to run these checks, but you need to check it again in the CI server because the developers can simply skip these checks.

Example:

I introduced a check for disallowing global variables (global $foo && $GLOBALS[‘foo’]) via “PHP_CodeSniffer”. 

Links:

  • git-scm.com: git hooks
  • CaptainHook: git hook library for php

6. Use array shapes (or collections) if you need to return an array, please.

Array shapes are like arrays but with fixed keys, so that you can define the types of each key in the PHPDocs.

You will have autocompletion for the IDE + all other devs can see what the method will return + you will notice if you’re better retuning an object because it will be very hard to describe the output for complex data structures and Static Analysis can use and check the types. 

Example:

/**
* @return array{
* missing: array<ShoppingCartLib::TAB_*,string>,
* disabled: array<ShoppingCartLib::TAB_*,string>
* }
*/
private static function getShoppingCartTabStatus(): array {
...
}

von voku am 13.12.2020 01:28


21.11.2020

Christian Imhorst (immi)

Remotedesktop mit Windows in QEMU/KVM

Unter openSUSE benutze ich QEMU/KVM und die Virtuelle Maschineneverwaltung (virt-manager) als GUI. Als virtuelle Maschinen laufen Linux- aber auch ein Windows-Rechner.

Damit die Windows-Maschine über Remotedesktop (RDP) erreichbar ist, müssen die Kommandozeilenargumente an QEMU durchgereicht werden, mit denen man den Port in KVM weiterleiten kann. Dazu wird die Konfigurations-Datei, die in XML geschrieben ist, bearbeitet:

sudo virsh --connect qemu:///session edit Windows10

Der Befehl öffnet den VIM-Editor, mit dem man die Konfigurationsdatei bearbeiten kann. Die erste Zeile der Datei wird um folgenden Eintrag erweitert:


Damit ermöglicht man es KVM, Kommandozeilenparameter von QEMU zu akzeptieren. In unserem Fall soll der Port für RDP vom Host zum Gast weitergereicht werden. Dazu trägt man gleich unter der ersten Zeile folgenden XML-Code ein:

  
    
    
  

Das Werkzeug zum Verwalten virtueller Maschinen virsh sortiert den Eintrag dann an die richtige Stelle in der XML-Datei nach dem Speichern.

Unter openSUSE muss dann noch firewalld mitgeteilt werden, dass der RDP-Port geöffnet werden soll, damit eine Verbindung hergestellt werden kann:

firewall-cmd --permanent --add-port=3389/tcp
firewall-cmd --reload

Unter Windows muss noch in den Einstellungen unter dem Punkt „Einstellungen für Remotedesktop“ der Remotedesktop aktiviert werden.

Remotedesktop unter Windows aktivieren

Als Client gibt es Remmina für den Zugriff über RDP. Dort fügt man eine neue Verbindung hinzu und verbindet sich mit seiner Windows-VM.

Remmina Remotedesktop Client mit Zugriff auf Windows 10 über RDP.

von Christian Imhorst am 21.11.2020 18:38


21.10.2020

Stephan Tetzel (zefanja)

pfBlockerNG – Werbung und unerwünschte Inhalte filtern

Besucht man heute eine durchschnittliche Website, so werden unzählige Skripte und Tracker nachgeladen. Dadurch können die Webseitenbetreiber, Google, Facebook, usw. Daten über mich sammeln und meinen Streifzug durch die Weiten des Internets verfolgen. Zum Glück muss man sich diesem Treiben nicht ergeben und es gibt viele sinnvolle Erweiterungen z.B. für den Browser (uBlock Origin, uMatrix, etc.). Diese Lösungen haben den Nachteil, dass ich sie auf jedem Gerät und für jeden Browser einzeln installieren muss. Deshalb möchte ich heute vorstellen, wie man Werbung und unerwünschte Inhalte mit pfSense und pfBlockerNG netzwerkweit filtern kann. Das ist z.B. sinnvoll in einem Heim- oder Schulnetzwerk.

pfBlockerNG installieren

Zuerst loggen wir uns in pfSense ein und öffnen den Package Manager. Dort wählen wir pfBlockerNG-devel unter „Available Packages“ aus:

pfBlockerNG installieren

Mit „Install“ können wir das Paket installieren. PfSense lädt nun das pfBlockerNG Paket herunter und fügt es der Firewall hinzu.

pfblockerng installation fertig

pfBlockerNG Ersteinrichtung

Als nächsten werden wir pfBlockerNG konfigurieren. Dazu gehen wir zu Firewall  → pfBlockerNG.

pfblockerNG Menü

Es begrüßt und ein Assistent, der uns bei der Einrichtung von pfBlockerNG helfen wird. Mit „Next“ geht es weiter.

pfBlockerNG Assistent Seite 1

Auf der nächsten Seite wird erklärt, welche Dinge nun eingerichtet werden:

  • Es wird ein Standard-Setup für Anfänger mit pfBlockerNG eingerichtet.
  • Falls man vorher schon einmal pfBlockerNG installiert hatte, werden alle Einstellungen gelöscht.
  • Zwei Komponenten werden installiert:
    • IP: Firewall-Regeln für die WAN-Schnittstelle, um die schlimmsten bekannten Angreifer zu sperren.
    • DNSBL: Werbung und andere bekannte bösartige Domains werden geblockt.

Mit „Next“ geht es wieder weiter.

pfBlockernNG Assistent Seite 2

Im nächsten Schritt müssen wir die eingehende Schnittstelle (WAN) und ausgehende Schnittstelle (LAN) auswählen. Wenn man mehrere interne Schnittstellen hat, kann man alle diejenigen auswählen für die man pfBlockerNG einrichten will. Möchte man z.B. das Gäste-WLAN filtern, aber nicht das WLAN für die Lehrkräfte, kann man hier die entsprechenden Schnittstellen aus bzw. abwählen.

pfBlockerNG Schnittstellen

Als nächstes müssen wir eine sogenannte VIP-Adresse festlegen. Auf dieser läuft der Webserver von pfBlockerNG und sollte unter keinen Umständen eine IP aus einem verwendeten Netzwerk sein! Wenn das LAN-Netz z.B. 192.168.1.1/24 ist, sollte die VIP-Adresse nicht in diesem Bereich liegen. Hier in unserem Beispiel lassen wir die Adresse bei 10.10.10.1. Die Ports muss man i.d.R. nicht ändern.

pfBlockerNG VIP Adresse

Das Setup ist nun fertig und wir können den Assistenten mit einem Klick auf „Finish“ beenden.

pfBlockerNG Setup Ende

Danach öffnet sich die pfBlockerNG Updateseite und es werden automatisch alle aktivierten Blocklisten heruntergeladen und aktiviert.

pfBlockerNG einrichten

Wir haben nun ein fertig eingerichtetes pfBlockerNG Setup, dass unerwünschte Werbung und bösartige Domains und Webseiten blockiert. pfBlockerNG ist aber ein sehr mächtiges & flexibles Werkzeug. Deshalb möchte ich gern ein paar Einstellungen hervorheben.

Wichtig: Damit geänderte Einstellungen auch wirksam werden (egal, ob DNSBL oder IP), müssen wir unter Update → Reload → All → Run ausführen, damit die (geänderten) Listen heruntergeladen und aktiviert werden.
pfblockerng update

IP

Im IP Reiter, empfehle ich folgende Einstellungen:

  • Floating Rules → Enable. Wenn man nur eine interne Schnittstelle hat, kann man es auch deaktiviert lassen. Bei vielen Schnittstellen (z.B. in einem Schulnetzwerk), macht es Sinn, diesen Punkt zu aktivieren, damit die Firewallregeln übersichtlicher bleiben.
  • Kill States → Enable. Wenn pfBlockerNG die Blocklisten aktualisiert, werden alle aktiven Verbindungen zu IPs in den Listen zurückgesetzt.pfblockerNG IP Einstellungen

GeoIP Blocking

Möchte man Zugriffe aus bestimmten Regionen der Erde verbieten, muss man sich zuallererst einen kostenloses Konto bei MaxMind erstellen. Daraufhin erhält man einen Lizenzschlüssel, den man unter IP → MaxMind GeoIP Configuration eintragen. Danach muss man einmal unter Update → Reload → IP die GeoIP Datenbanken herunterladen.

pfblocker geoip

Nun können wir unter IP → GeoIP die gewünschten Kontinente oder Top-Spammer auswählen. Dazu klicken wir auf den kleinen Stift rechts und wählen dann in der Liste alle Einträge aus. Unten wählen wir noch „Deny Both“ (List Action). Top Spammer

Hinweis zu „Deny Inbound“ und „Deny Outbound“: „Deny Inbound“ bedeutet, dass die IPs für alle eingehenden Verbindungen geblockt werden. Wenn man z.B. einen Webserver betreibt und man möchte bestimmte Länder blocken, dann kann man das mit „Deny Inbound“ machen. „Deny Outbound“ gilt für alle ausgehenden Verbindungen, d.h. ich kann mich von einem Rechner im Netzwerk nicht zu dieser IP verbinden. Hier muss man aufpassen! Wenn ich z.B. alle IPs Nordamerikas mit „Deny outbound“ sperre, kann ich ab sofort keine Webseiten mehr erreichen, die auf diesem Kontinent gehostet sind!

DNSBL / Feeds

pfBlockerNG blockt neben IPs auch Domains. Es findet also keine Man-in-the-Middle-Attacke statt, um Inhalte zu filtern, sondern es wird einfach in eine lange Liste geschaut, ob eine Domain erlaubt ist oder nicht (funktioniert auch mit HTTPS). Unter Feeds können wir einstellen, welche Listen aktiv genutzt werden sollen. Es gibt dabei Feeds für IP Blocklisten, als auch für DNSBL, also Blocklisten für DNS / Domains.

Alle aktivierten Feeds haben einen Haken am Ende der Zeile. Wenn wir nun einen noch nicht aktiven Feed hinzufügen wollen, klicken wir einfach auf das „+“:

Feed hinzufügen

Es öffnet sich eine Seite auf der wir Details zu dem Feed einstellen können. Folgende Felder sind wichtig:

  • State: ON
  • Action: Unbound
  • Update Frequency: Once a day

Feed Details

Manchmal möchte man einen Feed hinzufügen, der nicht in der Liste ist (z.B. einzelne Feeds von Steven Black). Dazu gehen wir zu DNSBL → DNSBL Groups und klicken unten auf „Add“:

Feed hinzufügen

Auf der nächsten Seite geben wir der DNSBL Gruppe einen Namen und fügen und DNSBL Source Definitions unseren Feed (oder mehrere) hinzu.

  • Name: StevenBlack
  • State: ON
  • Source: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts
  • Header / Label: Glückspiel
  • Action: Unbound
  • Update Frequency: Once a day

Mit „Save“ schließen wir den Vorgang ab.

Custom Feed

Whitelists

Wenn eine Domain nicht geblockt werden soll, muss man sie unter DNSBL → DNSBL Whitelist in die Whiteliste aufnehmen. Wenn man einen Punkt („.“) vor den Domainnamen setzt, werden auch alle Subdomains freigeschaltet, sonst nur genau die (Sub)Domain, die man eingetragen hat.

DNSBL whitelist

SafeSearch

Unter DNSBL → DNSBL SafeSearch kann man SafeSearch für die bekanntesten Suchmaschinen einstellen. Weiterhin können wir auch noch DNS over HTTPS von Firefox blockieren sowie Beschränkungen für Youtube einstellen.

DNSBL SafeSearch

pfSense als DNS Server erzwingen

Damit auch alle Anfragen in unserem Netzwerk durch pfBlockerNG gefiltert werden, müssen wir verhindern, dass jemand im Netzwerk einen anderen DNS-Server als den DNS-Server von pfSense verwendet. Dazu erstellen wir 2 Regeln für die LAN-Schnittstelle (mehr Details hier):

DNS Regel

Fazit

pfBlockerNG ist ein tolles Open Source Projekt. Es hilft Werbung, unerwünschte Inhalte und ganze Netzbereiche zu filtern. Egal ob IPs oder DNS-Blocklisten – mit pfBlockerNG kann man beides verwalten und so konfigurieren, wie man es für sein Netzwerk haben möchte. Es gibt aber auch Alternativen für pfBlockerNG, z.B. pi-hole, welches sich gut auf einem Raspberry Pi oder in einer VM bzw. Container installieren lässt. Unter Strich bleibt, dass ein werbefreies Netzwerk möglich ist!

Nutzt du pfBlockerNG oder pi-hole in deinem (Schul)Netzwerk?

 

2 Kommentare

Der Beitrag pfBlockerNG – Werbung und unerwünschte Inhalte filtern erschien zuerst auf .:zefanjas:..

von zefanja am 21.10.2020 14:13


28.09.2020

Christian Imhorst (immi)

Nervige Fehlermeldung in Gnome bei openSUSE

Nach jeder Anmeldung bei openSUSE Tumbleweed nervt die Gnome Software-App damit, dass eine „Aktualisierung Fehlgeschlagen“ sei. Die Gnome Software-App versucht, eine Datei herunterzuladen:

Failed To Update 
 
Detailed errors from the package manager follow: 
 
Download (curl) error for 'http://download.opensuse.org/tumbleweed/repo/non-oss/repodata/repomd.xml': 
Error code: Connection failed 
Error message: Could not resolve host: download.opensuse.org

openSUSE Software sagt: Aktualisierung Fehlgeschlagen

Angeblich kann der Hostname nicht aufgelöst werden, obwohl Internet und DNS funktionieren und die Webseite in der Fehlermeldung bei openSUSE auch erreichbar ist.

Die Lösung

Der Text befindet sich in der Datei /var/lib/PackageKit/offline-update-competed. Wenn man die Datei löscht, erscheint die Meldung nicht mehr:

sudo rm -rf /var/lib/PackageKit/offline-update-competed

von Christian Imhorst am 28.09.2020 16:10


25.08.2020

Gerrit Kruse (MrGerardCruiz)

Über Experten und was zwischen den Zeilen steht

Datenschutz, Datensicherheit und Privacy ist ein Themenspektrum, um das sich seit vielen Jahren zahlreiche Experten versammelt haben. Es gibt zahllose Podcasts, Blogs und Kolumnen. Da durchzublicken ist schwer aber nahezu alle lassen sich in drei Oberkategorien eingruppieren.

Das Informationsangebot zu dem Themenspektrum Datenschutz, Datensicherheit und Privacy ist riesig und wächst immer noch. Es gibt bestimmt ein Dutzend gut produzierter Podcasts, zahllose Blogs mit mehr oder weniger hoher Betragsfrequenz. Wie soll man sich in dieser Kakophonie der Meinungen orientieren und die brauchbaren Informationen filtern?

Hilfreich kann es sein die Informationsquelle einer von drei Oberkategorien zuzuordnen:

  1. Juristischer Ansatz
  2. Pädagogische Motivation
  3. Aktivistische Autoren

Im folgenden möchte ich das an drei Beispielen exemplifizieren, wobei die Auswahl ziemlich zufällig ist und ich den jeweiligen Autor bzw. Blog nicht herausheben möchte. Für jede Kategorie gibt es dutzende weitere Beispiele.

1. Juristischer Ansatz

In meinen Wochenrückblicken beziehe ich regelmäßig die Informationen von Dr. Datenschutz mit ein. Die dortigen Informationen sind fundiert und ausgewogen, dienen aber letztlich der Dienstleistungswerbung für die hinter dem Angebot stehende intersoft consulting services AG. Aufgrund der Transparenz dieser Verbindung ist dies unproblematisch.

Die Artikel haben oft einen juristischen Ansatz (da Datenschutz im Grunde ja auch ein rechtliches Thema ist). Bei der Beurteilung von Cookie Bannern konzentriert man sich folglich auf die rechtliche Bewertung der zulässigen Maßnahmen und nicht ob Datenerhebung gut oder schlecht ist. Am Beispiel der Corona-Gästelisten übt man zwar auch Kritik, verweist aber auf die mutmaßliche rechtliche Zulässigkeit der Maßnahmen.

Der juristische Ansatz lässt sich oft auf die Aussage "Datenschutz bedeutet DSGVO-konform" reduzieren.

2. Pädagogische Motivation

Im Podcast der Datenwache gibt Mitch Symalla in mittlerweile 54 Folgen sinnvolle Tipps für mehr Sicherheit und Datenschutz im Alltag als Endverbraucher. Die Folgen sind nahezu zeitlos und wenn man mit den ersten Folgen einsteigt sieht man sehr deutlich den Ansatz. Mitch holt die Menschen genau da ab wo sie sind: Mit unsicheren Geräten und als Nutzer zahlloser problematischer Dienste. Im Grunde genommen braucht man für den Einstieg noch nichts gemacht haben außer ein bisschen Interesse für Privatsphäre zu haben.

Ohne erhobenen Zeigefinder betont er in den Folgen was gute erste Schritte sind und bei welchen Aspekten man noch weiter gehen könnte. Gerne mit der etwas lapidaren Aussage "musst du halt selbst entscheiden". Durch dieses "pädagogischen Ansatz" stellt er sich auf keinen Sockel und überfährt die Hörer nicht. Denn wenn man jemandem stattdessen ins Gesicht rufen würde "Du hast keine Ahnung" und "Alles was du machst ist doof und muss geändert werden" schmeißt dieser vermutlich eher alles hin, als auch nur einen sinnvollen Schritt zu gehen.

3. Aktivistische Autoren

Jegliche Datensammlung ist gefährlich und ohne Open Source kann kein Vertrauen möglich sein. Mit dieser impliziten Grundhaltung kann man viele Artikel von Mike Kuketz umschreiben. Damit steht er beispielhaft für eine Reihe aktivistischer Autoren, die zumindest unterschwellig einen grundlegenden Wechsel im gesellschaftliche Umgang mit IT und Daten anstreben und durch ihre Artikel einen Beitrag dazu leisten wollen. Das ist nicht falsch und Kuketz ist ein versierter Experte des Gebiets. Seine Analysen haben es schon mehrfach in die Mainstream-Presse geschafft und sind immer wieder lohnenswert zu lesen. 

Die Beiträge haben allerdings oft einen appellierenden Charakter und stellen Praxistauglichkeit im Zweifel hinten an. Nachzulesen z. B. beim Aufruf alle großen IT-Konzerne aus Bildungseinrichtungen zu verbannen. Alles proprietäre wird dabei gerne mal in einen Topf geworfen. So berechtigt seine Kritik an Online Bezahlmethoden beispielsweise ist, zwischen den Datenschutzniveaus von Angeboten wie Sofortüberweisung, PayPal und Apple Pay gibt es durchaus Unterschiede. Das wird nur vollkommen unbeachtet beiseite gewischt und stattdessen Vorkasse, Lastschrift, Rechnung, SEPA oder paydirect empfohlen. Diese sind zwar hinsichtlich des Datenschutzes spitze, nur werden sie selten angeboten. Schon gar nicht ohne Auskunfteienabfrage bei z. B. Rechnungs-Kauf. Dieser Einwand würde wohl begegnet werden mit: AGB's lesen und notfalls auf Alternativen ausweichen.

Sachlich und fachlich richtig aber hier hat man dann meistens alle Verbraucher jenseits eines Kerns aus Überzeugungstätern verloren. Um solche Informationsangebote schart sich dann meist eher eine Peergroup von "100%tigen", die weniger auf die Informationen angewiesen sind, als sie dort Selbstbestätigung finden. Man sollte die Informationen daher eher zur Kenntnis nehmen und sie nicht zur alleinigen Richtschnur des eigenen Handelns zu machen.

Zusammengefasst

Trifft man auf Informationen lohnt es sich diese bis dato unbekannte (aber natürlich seriös und korrekt wirkende) Informationsquelle in eine der drei Kategorien einordnen. Meistens weiß man dann schon woran man ist und wie man mit den Informationen umgehen muss. Ich persönlich finde den pädagogischen Ansatz sehr sympathisch und glaube, dass hierdurch am meisten für das gesamtgesellschaftliche Privacy-Bewusstsein getan werden kann. Insbesondere Aktivisten begegne ich mit Skepsis, da diese immer Gefahr laufen in ideologischen Dogmatismus zu verfallen und Schwarz/Weiß Zeichnung zu betreiben. Der juristische Ansatz sollte dabei nie außer Acht gelassen werden, denn nicht jeder moralisch fragwürdige Umgang mit Daten ist gleich illegal. Eine simple Wahrheit, die bei der Beschäftigung mit dem Themenkomplex gerne mal auf der Strecke bleibt.

Etwas bedauerlich ist das Fehlen eines Planeten/Aggregator für Privacy-Themen. Solche Planeten bieten die einzigartige Möglichkeit in einem Themenbereich konträre Meinungen abzubilden und verhindern allzu enge Filterblasen.


Bilder:
Einleitungs- und Beitragsbild von Gerd Altmann via pixabay

"

von Gerrit (postfach@curius.de) am 25.08.2020 09:06


23.08.2020

Gerrit Kruse (MrGerardCruiz)

Wochenrückblick KW 33 & 34 - Open Source vs. Microsoft

Wieder einmal gibt es einen doppelten Rückblick für die Kalenderwochen 33 und 34. Die Bezeichnung "ausnahmsweise" entfällt aufgrund der Regelmäßigkeit dieser doppelten Rückblicke in letzter Zeit. Besserung ist leider nicht in Sicht. Dafür gibt es eine große thematische Spannbreite.

Open Source

Nextcloud hat endlich Ende-zu-Ende Verschlüsselung in seine Clients integriert. Das spielt vor allem beim immer zahlreicheren Einsatz von Dienstleistern eine Rolle.

  • Golem - Verschlüsselte Dateien in der eigenen Cloud

Debian leidet schon länger an einer völligen Überregulierung bei sinkender Aktivität (siehe auch: Debian - Eine Kritik). In einigen Bereichen wird es langsam kritisch. KDE-Anwender merken das schon länger und mit dem offiziellen Abtritt der Qt-Betreuer dürfte sich diese Situation verschlechtern.

  • linuxnews - Debians Qt-Betreuer treten zurück

Im Zuge der Corona-Krise dringen die Plattformen der großen Digitialkonzerne tiefer in das tägliche Leben vor. Einen großen Modernisierungsrückstau haben dabei Bildungseinrichtungen, die nun massiv auf fertige Lösungen wie Microsoft Teams setzen. Dagegen regt sich nun Widerstand. So sehr ich das nachvollziehen kann, so sehr fehlen mir aber brauchbare Open Source Lösungen. Ohne Alternativen ist das nämlich nur realitätsfernes Gemeckere, wodurch das Thema Datenschutz insgesamt diskreditiert.

  • heise - Schule digital: (K)ein Platz für Microsoft

IT Konzerne

Google scheint gemäß neuesten Berichten Nutzerdaten im großen Stil an US-Behörden weiter zu geben.

  • Golem - Google meldet Nutzerdaten unaufgefordert an Behörden

Apples restriktive Tracking-Einschränkungen lösen gegenwärtig Befürchtungen in der Werbebranche aus. Mal sehen, ob das im Herbst so kommt wie angekündigt.

  • SPIEGEL - Apples iPhone-Update könnte Facebook das Geschäft vermiesen

DSGVO

Die omnipräsenten Cookiebanner sind ein schönes Beispiel für die Unterscheidung von "gut gemeint" und "gut gemacht". Der Gesetzgeber wollte die massenhafte Datenübertragung an Dritte und Zusammenführung mit anderen Datensätzen einschränken. Einen Ausweg bietet lediglich die freiwillige und informierte Einwilligung. Einen Weg den nun nahezu alle Seiten im Netz gehen. Die Banner sind dabei teilweise hochgradig manipulativ und versuchen den Nutzer in "die richtige Richtung" (aus Sicht des Anbieters) zu drängen. Im Endeffekt stumpfen die Anwender ab und nicken die Voreinstellungen einfach ab.

  • Dr. Datenschutz - Webinar Cookiecalypse – Fragen und Antworten
  • Golem - Datenschützer knöpfen sich gezielt Medien vor

Datenschützer versuchen die DSGVO als Hebel gegen die kommerziellen Anbieter von Gesichtserkennung zu nutzen.

  • Golem - Datenschützer erhöht Druck auf US-Anbieter Clearview

Corona

Technik löst nicht alle Probleme. Eine Erkenntnis, die vor allem junge Menschen und Jünger des Silicon Valley noch lernen müssen. Jüngstes Beispiel sind die Probleme der Corona Tracing Methode im ÖPNV. Trotzdem sollte man solche Artikel nicht zum Vorwand nehmen um die App nicht zu nutzen. Vor allem wenn man aus beruflichen und privaten Gründen viel unterwegs ist und daher die Kontakteinschränkungen nur bedingt befolgen kann.

  • t3n - Forscher: Corona-Warn-Apps funktionieren im ÖPNV nicht zuverlässig

Bilder:

Einleitungs- und Beitragsbild von Megan_Rexazin via pixabay

von Gerrit (postfach@curius.de) am 23.08.2020 06:00


26.07.2020

Bjoern Schiessle (BeS)

Nextcloud and OpenID-Connect

%!s()

If you looked at the Nextcloud app store you could already find OpenID-Connect connectors before but since Nextcloud 19 it is an officially supported user back-end. So it was time for me to have a closer look at it and to try it out.

Get a OpenID Connect provider

First step was to get an OpenID-Connect provider, sure I could have chosen one of the public services. But why not have a small nice provider running directly on my machine? Keycloak makes this really simple. By following their Getting Started Guide I could setup a OpenID-Connect provider in just a few minutes and run it directly on my local demo machine. I will show you how I configured Keycloak as an OpenID-Connect provider for Nextcloud but please keep in mind, this is the first time I configured Keycloak and my main goal was to get it running quickly to test the Nextcloud connector. It is quite likely that I missed some important security setting which you would like to enable for a productive system.

After installing Keycloak we go to http://localhost:8080/auth/ which is the default URL in “standalone” mode and login as admin. The first thing we do is to configure a new Realm in the “Realm Settings”. Only “Name” and “Display name” need to be set, the rest can be kept as it is:

Next we move on to the “Clients” tab, and created a new client:

Set a random “Client ID”, I chose “nextcloud” in this example, and the root URL of your Nextcloud which is http://localhost/stable in this case. After that we get redirected to the client configuration page. Most settings are already set correctly. We only need to adjusted two more settings.

First we set the “Access Type” to “confidential”, this is needed in order to get a client secret which we need for the Nextcloud setup later on. While the “Valid Redirection URIs” work as it is with the wildcard, I used the one proposed by the Nextcloud OIDC app http://localhost/stable/index.php/apps/user_oidc/code. This is the Nextcloud end-point to which Keycloak will redirect the user back after a successful login.

Finally we create a user who should be able to login to Nextcloud later.

While technically the “Username” is enough I directly set E-Mail address, first- and second name. Nextcloud will reuse this information later to pre-fill the users profile nicely. Don’t forget to go to the “Credentials” tab and set a password for your new user.

That’s it, now we just need to grab a few information to complete the Nextcloud configuration later on.

First we go back to the “Realm Settings” of the “OIDCDemo”, under “OpenID Endpoint Configuration” we get a JSON document with all the parameter of our OpenID-Connect end-point. For Nextcloud we only need the “authorization_endpoint” which we find in the second line of the JSON file.

The second value is the client secret. We can find this in the credential tab of the “nextcloud” client settings:

Nextcloud setup

Before we continue, make sure to have this line in your config.php 'allow_local_remote_servers' => true,, otherwise Nextcloud will refuse to connect to Keycloak on localhost.

Now we can move on and configure Nextcloud. As mentioned before, the official OpenID-Connect app was released together with Nextcloud 19, so you need Nextcloud 19 or later. If you go to the Nextcloud apps management and search for “openid” you will not only find the official app but also the community apps. Make sure to chose the app called “OpenID Connect user backend”. Just to avoid misunderstandings at this point, the Nextcloud community does an awesome job! I’m sure the community apps work great too, they may even have more features compared to the new official app. But the goal of this article was to try out the officially supported OpenID-Connect app.

After installing the app we go to the admin settings where we will find a new menu entry called “OpenID Connect” on the left sidebar. The setup is quite simple but contains everything needed:

The app supports multiple OpenID Connect providers in parallel, so the first thing we do is to chose a “Identifier” which will be shown on the login page to let the user chose the right provider. For the other fields we enter the “Client ID”, “Client secret” and “Discovery endpoint” from Keycloak. After accepting the setting by clicking on “Register” we are done. Now let’s try to login with OpenID Connect:

As you can see, we have now an additional button called “Login with Keycloak”. Once clicked we get re-directed to Keycloak:

After we successfully logged-in to Keycloak we get directly re-directed back to Nextcloud and are logged-in. A look into our personal settings shows us that all our account detail like the full name and the email address where added correctly to our Nextcloud account:

von Björn Schießle (bjoern@schiessle.org) am 26.07.2020 06:00


24.07.2020

Christian Schmitt (slater)

Die ersten Arbeitsstunden

Dann ist es heute soweit mit den ersten Arbeitsstunden für den Schwinmverein…

Mal schauen wie das wird

von Slater am 24.07.2020 14:54


15.07.2020

Darian (thoys)

Daten auf dem Handy ohne W-Lan oder Funk – USB C LAN (RJ45) Adapter

Unterwegs ergibt es total Sinn, dass man sein Handy oder Tablet auf Empfang hat. Nun sitze ich seit Corona im Home-Office am Schreibtisch – bewege mich also nicht – und nutze trotzdem eine Technik, die für Bewegung im Freien gemacht ist. Natürlich kann ich mich zu Hause ins W-LAN einloggen, das reduziert die Strahlung für die Allgemeinheit und beschränkt den Funkradius auf das, was mein Router leistet. Aber geht es noch weniger?

Nach einiger Suche bin ich auf diesen Adapter gestoßen:

Netzwerkkabel auf USB-C Adapter

Gefunden, gekauft, ausprobiert, funktioniert großartig. Ich kann nun während des Arbeitens ein LAN-Kabel an mein Handy, das meistens auf meinem Schreibtisch liegt, anschließen und die mobilen Daten abschalten. Messenger, Browser, Aktualisierungen usw. funktionieren weiterhin tadellos und viel schneller. In diesem Video könnt ihr meinen Speedtest anschauen – das Internet ist jetzt nicht mehr abhängig vom Fumkturn, sondern von meinem privaten Anschluss (50 Mbit/s):

Außerdem merke ich, dass durch die Deaktivierung der Mobilen Daten (funktioniert automatisch beim Einstecken) mein Akku länger hält. Es scheint viel weniger Strom zu verbrauchen, wenn die Daten aus dem Kabel kommen, als wenn sie zum nächsten Funkturm oder per W-LAN zum Router gesendet werden.

Technisch gesehen ist es einfach ein Adapter von RJ45 (LAN) auf USB C. Einzig SMS und Anrufe kommen nun über die Funkverbindung.

Nun wäre natürlich schön gewesen, wenn ich meinen Akku gleichzeitig hätte laden können. Aber das können die Adapter nicht. Ich werde fleißig weiter suchen, vielleicht gibts ja irgendwann einen.

Mein kleines Fazit:

🙂🙁
Günstig
Funktioniert ab Android 3.1
Einfach
Akku hält länger
Schnelles Internet auf dem Handy
Perfekt für die Arbeit am Schreibtisch
Weniger Funkstrahlung
Funktioniert nicht mit POE
(Laden und Daten gleichzeitig)

Ich kann nicht rumlaufen und verlege dauernd den Adapter ; -)

Jetzt interessiert mich natürlich, wie gut das bei eurem Smartphone oder Tablet funktioniert hat?
Eure Antwort und eventuelle Fragen könnt ihr einfach hier in die Kommentare schreiben.

-<-,–{@ Euer Darian
Themenübersicht und Kauf

von admin am 15.07.2020 15:45


13.07.2020

Christian Schmitt (slater)

Zu einfach Geld auszugeben

Habe gerade über die Apple Seite meine neue Watch bestellt und mich für die 0% Finanzierung entschieden.

Alles ging online und total unkompliziert.

Ist schon fast erschreckend wie schnell und unkompliziert auf einmal Geld ausgegeben werden kann

von Slater am 13.07.2020 12:49


06.04.2020

Malte Schmidt (maltris)

webh.pl VPS Review

Vergangene Woche wurde ich auf webh.pl aufmerksam, einen Internet Service Provider mit Standort Lodz, Polen. Nach kurzer Anfrage erhielt ich die Möglichkeit, eins ihrer VPS-Pakete für über eine Woche unter die Lupe zu nehmen. Generell bin ich hin und wieder auf der Suche nach kleinen, effizienten, zumeist virtuellen Systemen, auf denen unter anderem diese Webseite gespeichert und ausgeliefert werden kann. Bislang fuhr ich mit servercow.de, einem Dienst vom mailcow-Entwickler André Peters, sehr gut. Und auch weiterhin bin ich von seinem Service begeistert und werde ihm keineswegs den Rücken kehren. Dennoch schadet es sicher nicht, einmal einen Ausflug zu anderen Anbietern zu wagen und deren Benutzerfreundlichkeit und Leistungen in ein Verhältnis zu setzen.

Im weiteren Verlauf dieses Artikels werde ich die einzelnen Komponenten ausgiebig testen und versuchen, die Ergebnisse relativ mit früheren Tests vergleichen.

Sollte euch der Test gefallen haben und solltet ihr euch für webh.pl entscheiden, würde ich mich freuen, wenn ihr meinen Referral-Link oder -Code bei der Registration/Bezahlung verwenden würdet. Vorteil für euch: 20% Rabatt auf die erste Bezahlung:

Für den Referral-Link hier klicken oder den Promo-Code “PROMO46344” verwenden.

Intro

Bei dem Test-VPS handelt es sich um das Paket “KVM Standard” mit folgenden Leistungsmerkmalen:

  • 4 vCPUs
  • 8GB RAM
  • 80GB SSD Speicher (500GB/1000GB HDD Speicher für 40/80 Zloty zubuchbar)
  • keine Limitierung für Datentransfers

Der Preis liegt in dieser Ausstattung bei 90 Zloty pro Monat, derzeit sind das 19,64 Euro. Ist man mit 2 vCPUs zufrieden, drückte das den Monatspreis auf 60 Zloty pro Monat, etwa 13,09 Euro.

Zusätzliche Daten

  • Standort Polen (Lodz)
  • SLA von 99,9%
  • Root-Zugriff
  • Jederzeit Zugriff via VNC
  • Installation von individuellen ISO-Dateien
  • Skalierbarkeit (die Grundpakete können später im Webinterface beliebig skaliert werden)
  • Automatische, stündliche Snapshots
  • Snapshots werden 14 Tage rückwirkend aufbewahrt
  • Snapshots können vom vmmanager aus wiederhergestellt werden
  • Der Kunde erhält einen zusätzlichen virtuellen Server für die Wiederherstellung von Daten aus Snapshots
  • Snapshots haben keinen Einfluss auf die Performance des Servers
  • Angegebene Ressourcen werden garantiert
  • Keine Einschränkungen für Gameserver oder andere netzwerkintensive Anwendungen, keine Blockade von Torrents

Bezahlmöglichkeiten

  • EU-Banküberweisung
  • PAYU (VISA und MasterCard)
  • PayPal

Die Webinterfaces

Registration und Billing

Die Registration erfolgte unter https://ssl.webh.pro/ und war äußerst schnell und unkompliziert erledigt.

Das “ISPsystem billmanager“-basierte Interface ist übersichtlich, wirkt jedoch etwas altbacken. jedoch bietet es in übersichtlicher Form alle notwendigen Einstellungen und Übersichten. Einen sehr positiven Eindruck erhalte ich von der Geschwindigkeit des Interfaces.

VPS-Management

Die Steuerung des VPS ansich erfolgt im “ISPsystem vmmanager”-basierten Webinterface. Dieses passt designtechnisch zum Billing-Interface, dient jedoch explizit der Verwaltung von VPS.

Mein Test-VPS wurde bei Erstellung sofort mit CentOS 7 eingerichtet. Eine Neuinstallation ist über das Interface leicht zu erreichen, dabei konnte ich zwischen folgenden Presets wählen:

  • CentOS 7
  • CentOS 8
  • Debian 8
  • Debian 9
  • Debian 10
  • FreeBSD 11
  • FreeBSD 12
  • Ubuntu 16.04
  • Ubuntu 18.04

Diese wiederum bieten unterschiedliche “Recipes”, also “Rezepte”, mit denen ich automatisiert bestimmte Anwendungen vorinstallieren lassen kann:

  • Bitrix CRM
  • Django
  • ISPmanager Lite
  • LAMP
  • OpenVPN
  • Redmine
  • Teamspeak
  • Tomcat
  • VMmanager

Hier merke ich: Es wird sich Mühe gegeben, indem man aktuelle Betriebssysteme fertig zur Installation anbietet und dem Kunden so Zeit und Aufwand spart.

Zum Test entschied ich mich für ein aktuelles Ubuntu 18.04 “bionic”, da ich mir hiermit neben einem aktuellen Kernel auch aktuelle Versionen der Tools für Netzwerk- und Performancetests erhoffte. Leider stellte sich später heraus, dass diese Entscheidung einen teil meiner Netzwerk-Performancetests stören würde.

Bequeme Zusatzfunktion: Ich kann im vmmanager direkt meinen SSH-Pubkey angeben, sodass dieser direkt hinterlegt wird und ich mir somit einen lästigen Passwort-Login spare. Leider führt im Fall Ubuntu 18.04 diese Funktion dazu, dass eine Reinstallation sich aufzuhängen scheint – hier besteht noch Verbesserungsbedarf.

Nützlich: webh.pl erlaubt es dank entsprechender Virtualisierungstechnologie, Systeme mit individuellen vom Kunden hochladbaren ISO-Dateien zu installieren. Wollte ich also Fedora installieren, welches webh.pl nicht als fertiges Image anbietet, könnte ich dies über diese Funktion recht einfach tun. Mit entsprechender Konfiguration (Festplattentreiber, Netzwerktreiber) ließ sich im Test sogar ein uraltes Windows XP Pro SP3 installieren:

Um von den nützlichen Logging-Funktionen, auch dem Performance-Logging, beider Interfaces gebrauch zu machen, empfiehlt es sich, die Zeitzone im Interface korrekt zu konfigurieren. Diese stand per default auf “Afrika/Windhoek”, was einen Zeitversatz bedeutet und unter Umständen für Verwirrung sorgen könnte.

Allgemeines

Reinstallationen

Ubuntu 18.0453 Minuten (mit SSH-Key, abgebrochen)
Ubuntu 18.0434 Minuten (mit SSH-Key, abgebrochen)
Ubuntu 18.046 Minuten (ohne SSH-Key)
Ubuntu 16.045 Minuten
CentOS 75 Minuten
CentOS 85 Minuten
FreeBSD 1212 Minuten
FreeBSD 1115 Minuten
Debian 105 Minuten
Debian 94 Minuten
Debian 85 Minuten
Tabelle: Dauer von Reinstallationen unterschiedlicher Betriebssysteme

Die Reinstallationen funktionieren zuverlässig, sauber und schnell. Wird jedoch über das Webinterface ein SSH-Pubkey eingegeben, so hängt sich das System bei der Installation auf und reagiert nicht mehr. Startet man es dann manuell neu, wird man automatisch in die GRUB2-Kommandozeile eingeloggt, da GRUB nicht vollständig konfiguriert wurde.
Eine Reinstallation ohne vorher eingegebenem SSH-Key funktioniert fehlerfrei.

Nach der erfolgten Installation kann ich nun also meinen SSH-Key unter Zuhilfenahme des Passworts auf die Maschine kopieren und mit der Einrichtung meines Servers fortfahren:

ssh-copy-id root@91.205.75.239
ssh root@91.205.75.239

IP-Adressen

Eine Recherche der mir zugewiesenen IPv4 ergab, dass die IP bereits von anderen vorherigen Kunden genutzt wurde. Ein Blacklist-Check lieferte jedoch ein sauberes Ergebnis. Eine entsprechende Bereinigung und Cooldown-Periode wird von entsprechend guten Internet Service Providern nach Kündigung vorgenommen.

Support

webh.pl bietet Support unter anderem in ihrer Muttersprache Polnisch, aber auch in Englisch und Deutsch an. 4 mal habe ich den Support unvermittelt kontaktiert und die Reaktionszeit aufgezeichnet.

Die Antworten kamen zügig und man kann in diesem Preissegment und ohne zugesicherte Support-Antwortzeiten wirklich nichts bemängeln:

27.03.2020 20:32 -> 20:342 Minuten
28.03.2020 07:54 -> 09:15159 Minuten
29.03.2020 20:41 -> 20:454 Minuten
02.04.2020 08:58 -> 09:3335 Minuten
webh.pl Support-Reaktionszeiten

Hostsystem und Virtualisierungslösung

Laut dmidecode kommt ein Red Hat Enterprise Linux 7 auf dem Hostsystem zum Einsatz. Zugewiesen sind der VM wie bereits erwähnt 4 vCPU-Kerne mit Taktraten von je 2793 MHz.

/proc/cpuinfo verrät in diesem Fall nicht den konkreten Typ der CPU, jedoch lässt sich erahnen, um welchen es sich handelt (Skylake Model 85, 4 MiB L2 Cache, 2793 MHz, Stepping 4):

4112 Xeon Silver $ 473.00 11 July 2017 4 8 2.6 GHz 3 GHz 85 W 4 MiB 8.25 MiB DDR4-2400 768 GiB

CPU-Vulnerability Mitigations

root@m:~# tail /sys/devices/system/cpu/vulnerabilities/*
==> /sys/devices/system/cpu/vulnerabilities/itlb_multihit <==
KVM: Vulnerable

==> /sys/devices/system/cpu/vulnerabilities/l1tf <==
Mitigation: PTE Inversion

==> /sys/devices/system/cpu/vulnerabilities/mds <==
Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown

==> /sys/devices/system/cpu/vulnerabilities/meltdown <==
Mitigation: PTI

==> /sys/devices/system/cpu/vulnerabilities/spec_store_bypass <==
Vulnerable

==> /sys/devices/system/cpu/vulnerabilities/spectre_v1 <==
Mitigation: usercopy/swapgs barriers and __user pointer sanitization

==> /sys/devices/system/cpu/vulnerabilities/spectre_v2 <==
Mitigation: Full generic retpoline, STIBP: disabled, RSB filling

==> /sys/devices/system/cpu/vulnerabilities/tsx_async_abort <==
Not affected

Konkret ist es so, dass die potenziellen Sicherheits- und Denial of Service-Lücken itlb_multihit, MDS und spec_store_bypass laut Gastsystem nicht abgeschaltet scheinen und daher potenziell ausgenutzt werden können. Da es sich jedoch um eine virtualisierte Lösung handelt, ist es durchaus denkbar, dass diese Lücken in Wirklichkeit umgangen werden, dies aber vom Gastsystem nicht feststellbar ist.

“I have received information that we’re not showing patches in /sys/devices/system/cpu/vulnerabilities/* for security reasons.”

webh.pl Support

Besonderheit ext4 reserved space bei vergleichsweise kleinen Festplattenspeichern

Aufgrund der per Standard knapp bemessenen 40/80G an Speicherplatz, ist es sinnvoll, Speicher zu sparen wo möglich. Empfehlenswert ist hierbei unter anderem, bei ext4-Dateisystemen den “Reserved Space” (normal 5%) zu verkleinern oder, wenn möglich, sogar komplett abzuschalten.

tune2fs -m 0.5 /dev/vda2 # Reservierter Speicher auf 0,5%
tune2fs -m 0 /dev/vda2 # Reservierter Speicher deaktiviert

Besonderheit Swapfile

Im neuesten Ubuntu LTS wurde begonnen, nicht mehr länger SWAP-Partitionen zu erstellen, sondern auf Swapfiles zu setzen. So auch im Standardsetup von webh.pl: Ein 2G großes Swapfile wird erstellt, welches selbstverständlich von dem zugesicherten Festplattenspeicher abgezogen wird. Möchte man diesen Speicher freigeben, kann man das Swapfile deaktivieren und entfernen. Es ist keine Rekonfiguration der Partitionstabelle mehr notwendig.

Routing

Das Routing spielt bei einem Server meist eine wichtige Rolle, da mit jedem Hop, der nicht passiert werden muss, die Latenz sinkt, was sich wiederum auf Anwendungen und deren Kommunikation auswirkt. Daher testete ich das Routing aus den Netzen unterschiedlicher Internetanbieter und von unterschiedlichen Standorten aus.

tkchopin.pl – webh.pl

servercow.de (meerfarbig Gmbh & Co. KG) – webh.pl

hetzner FSN1-DC1 (Falkenstein) – webh.pl

Vodafone DSL (Stuttgart) – webh.pl

Die Maps wurden generiert mit dem Leaflet Traceroute Mapper von Peter Thomson, welcher wiederum auf dem Traceroute Mapper von Stefan Sundin basiert, die Kartendaten stammen von OpenStreetMap.

Zumindest im Fall des Endkunden-Zugangs über tkchopin.pl, einem lokalen Internet- und Kabel-TV-Anbieter, erhielt man zum Zeitpunkt des Tests ein vergleichsweise direktes Routing. Für den Zugriff aus Deutschland war zweimal das Routing über Warschau und Stettin unumgänglich.

Das Routing von hetzner in Falkenstein nach webh.pl in Lodz war absurder, der fünfte Hop erfolgte über Großbritannien, was jedoch auch auf einen Fehler in der Datenbank von ipinfo.io zurückzuführen sein kann.

Netzwerkkonfiguration

Es handelt sich auf dem Server um eine statische Netzwerk-Konfiguration, welche im Fall von Ubuntu 18.04 nicht netplan/networkd-basierend ist, sondern auf die ältere ifupdown-Konfigurationsmethode in /etc/network/interfaces setzt.

auto ens3
iface ens3 inet static
address 91.205.75.239/24
gateway 91.205.75.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 1.1.1.1 8.8.4.4
dns-search webh.me

DNS

Ein Blick in die /etc/resolv.conf zeigt, da es sich um Ubuntu 18.04 handelt, dass systemd-resolved zum Einsatz kommt. Das war zu erwarten. Um also die wirklich genutzten DNS-Resolver herauszufinden, ist es notwendig, “systemd-resolve –status” auszuführen oder die /etc/systemd/resolved.conf oder die /etc/network/interfaces zu konsultieren.

Per default sind auf dem Testsystem die DNS-Resolver 1.1.1.1 (Cloudflare) und 8.8.4.4 (Google Public DNS Secondary) hinterlegt.

IPv6

Während des Tests fiel mir auf, dass das Testsystem über keine IPv6 verfügte. Auch der Versuch, eine solche über den vmmanager aufzuschalten schlug fehl. Eine Nachfrage bei webh.pl sorgte dann für Klarheit:

“We’re not offering ipv6 for now, but we’re going to offer it in the future.”

webh.pl Support

Demnach wird webh.pl IPv6 in Zukunft anbieten, was meiner Meinung nach im Jahre 2020 auch ein Muss darstellt.

Reverse-DNS

Im Test wurde nicht klar, wie Reverse-DNS-Einträge zu ändern sind. Zwar bietet der vmmanager eine solche Funktion, jedoch sorgte eine Anpassung dort nicht für das gewünschte Ergebnis. Auf Anfrage teilte der Support mit

“We’re using different IP subnets for our clients. For some of them, clients can change revdns using control panel, for rest we can change it upon request.”

webh.pl Support

Es handelt sich hierbei also offenbar um eine IP aus einem der Subnetze, für die eine Änderung der Reverse-DNS-Einträge nur aufschließlich über den webh.pl-Support erfolgen kann.

Performancetests

Netzwerk-Datentransferraten

Für die Datentransfers nutzte ich weiterhin speedtest-cli und wählte daher folgende Peers gewählt:

  • 30907) Deutsche Telekom Technik GmbH (Berlin, Germany) [394.94 km]
  • 4886) Stadtwerke Neumünster GmbH (Neumunster, Germany) [538.44 km]
  • 18667) meerfarbig GmbH & Co. KG (Frankfurt, Germany) [818.46 km]
  • 21514) Contabo GmbH (Munich, Germany) [855.26 km]

Diese werden im Abstand von 20 Minuten jeweils doppelt sequenziell getestet und die Ergebnisse mittels –csv Parameter und entsprechender Ausgabeumleitung als CSV in eine Tabelle zur späteren Verarbeitung geschrieben, etwa so:

30907,Deutsche Telekom Technik GmbH,Berlin,2020-03-28T07:17:20.127799Z,422.89016707081726,27.723,189797326.6667173,4150220.759736613,,91.205.75.239
30907,Deutsche Telekom Technik GmbH,Berlin,2020-03-28T07:17:41.287859Z,422.89016707081726,23.271,188071670.36669397,4150181.2915712413,,91.205.75.239
20478,Contabo GmbH,Nuremberg,2020-03-28T07:18:02.505737Z,646.0977991623539,35.526,182002432.52288514,4067378.244187205,,91.205.75.239

Leider birgt die von Ubuntu paketierte speedtest-cli einen Bug, welcher hier dokumentiert ist und dafür sorgt, dass Upload-Tests bei etwa 4 Mbit/s limitiert werden. Unglücklicherweise wurde ich auf diesen Umstand erst nach dem Test von einer Woche Testdauer aufmerksam. Aus diesem Grund beinhalten die folgenden Graphen lediglich Download-Datenpunkte.

Downloadraten aus Richtung der 4 unterschiedlichen Peers, Angaben in Mbit/s

Die Transferraten sind relativ stabil zwischen 192 und 177 Mbit/s jenach Peer. Vereinzelt gab es Streuung nach unten in den Abendstunden und einigen Ausreißern, welche hauptsächlich auf die Gegenstellen zurückzuführen sind.

Zuvorkommend: Bereits nach dem Testzeitraum bot mir webh.pl auf Nachfrage an, den Server zwei weitere Tage testen zu können, um zumindest einige Ergebnisse zu den Uploadraten zu sammeln.

RAM-Benchmark

Für den RAM-Benchmark mache ich mir wieder sysbench und dessen memory-Modul zunutze. Ich teste den Datendurchsatz von Schreib- als auch den von Lesevorgängen.

sysbench --threads=4 memory run

Pro Testdurchlauf erhalte ich damit folgenden Output:

Total operations: 39587238 (3958095.14 per second)
38659.41 MiB transferred (3865.33 MiB/sec)
Durchsatzraten lesend und schreibend (Datenpunkte “lesend” wurden seltener und erst später gesammelt)

Im Test zeigte sich, dass die Durchsatzraten lesend zwischen 16000 MiB/s und 18000 MiB/s lagen und nur sehr selten unter 16000 MiB/s fielen.
Die Durchsatzraten schreibend hingegen lagen meist bei 5000 MiB/s und fielen nur selten unter 4500 MiB/s.

Im Ranking liegt das Testsystem von webh.pl damit hinter meinem in die Jahre gekommenen ThinkPad T420 (wenn ausgestattet mit zwei DDR3-1333-Riegeln) und dem performantesten meiner Servercow-vServer. Absolut betrachtet bietet webh.pl jedoch trotzdem vernünftige und auch über längere Zeiträume stabile RAM-Durchsatzraten.

“All servers have ddr4 ecc ram bands.”

webh.pl Support

CPU-Benchmark

sysbench CPU Benchmark über die gesamte Testdauer

Der CPU-Test fiel kleiner aus, da ich hierzu diesmal nur die “events per second” aufnahm. Hier zeigte sich, dass dieser Wert über den gesamten Testzeitraum hinweg zwischen 3600 und 4400 Events lag. Während dieser Wert ansich keine Aussage über die absolute CPU-Leistung zulässt, zeigt er doch die Abweichungen in bestimmten Lastsituationen (beispielsweise nachts, wenn CPU-intensive Anwendungen wie zur Kompression von Logs laufen).

Da ich zu dieser Metrik derzeit keine weiteren Vergleichswerte habe, fällt es hier schwer, die Ergebnisse ins Verhältnis zu setzen. Mein mittelmäßig ausgelasteter i5-2520M im ThinkPad T420 schaffte im Schnitt 2500 events pro Sekunde.

Bessere CPU-Tests bietet beispielsweise die Phoronix Test Suite, indem sie echte Anwendungsfälle (beispielsweise das kompilieren einer bestimmten Kernel-Version) abdeckt und die benötigte Zeit misst und aufzeichnet.

“In our infrastructure we use different processors within Intel Xeon Scalable gen 1 and gen 2 series.”

webh.pl Support

IO-Benchmark

Auch für den IO-Benchmark habe ich Daten über mehrere Tage hinweg aufgezeichnet. Im Schnitt erreichte ich hier für die folgenden Modi die folgenden Performancewerte:

seq read cached/direct5900/183
rnd read cached/direct7500/171
seq write cached/direct174/48
rnd write cached/direct111/114
Angaben in MiB/s

“We have infrastructure where our hosts and storage are on different nodes. We’re attaching our working nodes to storage nodes. We’re using both ssd and nvme drives within our storage nodes and we’re currently moving everything to nvme.”

webh.pl Support

Fazit

Für wen die Systeme von webh.pl geeignet sind

Wer auf der Suche nach einem VPS mit stabiler Internetanbindung, gutem Standort und äußerst schnellem, freundlichem und zuvorkommendem Support ist, ist mit webh.pl gut bedient. Die Angebote sind nicht die billigsten, aber das Preis/Leistungs-Verhältnis stimmt definitiv.

webh.pl kommt in meinem Fall für zukünftige Projekte definitiv in die engere Auswahl.

Anmerkungen

Derzeit wird die Webseite von webh.pl in die englische und russische Sprache übersetzt. Deutsch soll laut webh.pl anschließend auch folgen. Es zeigte sich jedoch auch, dass eine automatische Übersetzung mit Google Translator völlig ausreichend ist, da die anschließenden Webinterfaces in vielen unterschiedlichen Sprachen, darunter Deutsch, verfügbar sind.

Bis auf die hängende Installation mit vorab eingegebenen SSH-Keys, die Tatsache, dass es noch kein IPv6 gibt und in manchen Fällen die Änderung von Reverse-DNS-Einträgen nicht durch den Kunden möglich ist, bin ich positiv beeindruckt.

Während dieses Tests …

Für diesen Test wurden insgesamt circa 1810G an Daten herunter- und 90G an Daten hochgeladen. Ferner wurden 203296740 ms (~56h) CPU-Zeit verbraucht und 211.680.000 IOPS durchgeführt.

von maltris am 06.04.2020 20:12


07.03.2020

Bjoern Schiessle (BeS)

Real-time communication and collaboration in a file sync & share environment - A introduction to Nextcloud Talk

%!s()

At the beginning of this year I gave two times a presentation about Nextcloud Talk. First at the annual CS3 conference in Copenhagen and just one week later at FOSDEM in Brussels. Nextcloud Talk provides a full featured real-time communication platform. Completely Free Software, self-hosted and nicely integrated with all the other aspects of Nextcloud.


(This blog contain some presentation slides, you can see them here.)

von Björn Schießle (bjoern@schiessle.org) am 07.03.2020 06:00


03.03.2020

Christoph Wickert (raoul)

Hallo Welt!

Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!

von chris am 03.03.2020 08:53


25.02.2020

Thorsten Sperber (TRex)

Elektronikprojekte

Elektronikprojekte

Oder wie man das auch immer nennen möchte

Die meisten Einsteiger assoziieren und suchen sowas mit "Arduino" oder anderen Microcontrollern. Ich bin immer noch in der Erkundungsphase, ein Arduino oder gar ein Raspberry können extrem viel Komplexität abfedern und die notwendige Peripherie/Komponenten auf ein Minimum von Sensoren und Aktoren reduzieren. Und weil ich das tendenziell eher langweilig finde (programmieren kann jeder), suche ich bewusst nach Projekten, die ihren Fokus woanders haben. Was mir bei bisherigen "Top 10 Arduino Projects" immer auf den Zeiger ging, war die bunte Durchmischung von "bringe drei LEDs zum Leuchten", "hacke deinen SmartTV" und "baue deinen eigenen Quadcopter". Ich hoffe, dass ich das besser hinbekomme. Was ich nicht beschreiben werde, sind einzelne elektronische Komponenten. Das ist woanders besser beschrieben. Was ich an Begriffen verwende, sollte wahlweise bekannt oder die Recherche dazu Teil des Projekts sein.

Weiterlesen… (3 min verbleiben zum Lesen)

von Thorsten am 25.02.2020 19:29


26.01.2020

Vinzenz Vietzke (vinz)

Kandidatur für das openSUSE Board #2: Neue Leute an Bord holen

Anknüpfend an die Fragen von Gerald stellte Ariez J. Vachha nun eine weitere Frage an die Kandidaten.

Ein Hinweis: Fragen und Antworten sind ursprünglich auf Englisch. Dies ist nur eine Übersetzung.

Ich würde gerne wissen, wie die Kandidaten es denjenigen, die sich beteiligen wollen, vor allem den Nicht-Programmierern, leichter machen wollen das auch tun zu können.

Danke, dass du diese Frage stellst, denn sie berührt ein (wenn nicht gar das) entscheidende Thema für openSUSE als Gemeinschaft in der nahen Zukunft.

Ich möchte meine Ansicht dazu an einem einfachen Beispiel veranschaulichen:
Wenn man opensuse.org besucht, gibt es oben rechts einen Menüpunkt namens „Mitarbeiten“. Ein Klick darauf bringt dich zum Teil der Seite über Beiträge. Dort hat man die Wahl zwischen zwei Dingen: Code und Hardware. Wenn wir Glück haben, klickt ein potenzieller Beitragender auf „Code“ und bekommt vier leicht unmotivierte Textzeilen und eine Schaltfläche „mehr herausfinden“ präsentiert. So kann man nicht freundlich und einladend sein. Hoffen wir, dass nicht zu viele Leute dadurch abgeschreckt werden.

Aber was ich als ein weitaus größeres Problem sehe – und eine Art Grundmuster in oS – ist, dass sich hinter dem „Finden Sie es heraus…“-Knopf in der Tat wirklich gute und detaillierte Informationen darüber befinden, wie man einen Beitrag leisten kann. Dokumentation, Tests, Übersetzungen und so weiter ist alles da. Aber es wird nicht in einer vernünftigen Weise kommuniziert! Es ist an verschiedenen Orten versteckt, tief im Wiki vergraben. Das Wiki ist ein guter Ort für ausführliche schriftliche Erklärungen, aber nicht, um einen ersten Schritt in den Pool zu machen.

Meine Idee ist also Teil einer ganzen noch zu definierenden Umstrukturierung von opensuse.org. Ich habe vor einer Weile einige Gedanken vorgeschlagen, wurde aber aufgrund der damaligen Umbenennungs-/Umbenennungsdiskussion gebremst. Dennoch habe ich diese Dinge immer noch auf meiner Liste, die ich diskutieren und in Angriff nehmen möchte. [1]

Natürlich ist die Website nur ein Puzzleteil. Das ganze „frisches Blut bekommen“ (wie Du es nennst) muss weiter vorangetrieben werden. Daher die Initiative des Marketing-Teams, spezielle T-Shirts für Leap 15.2 Betatester zu beschaffen. [2]
Dies ist etwas, das leicht nach außen kommuniziert werden kann und ein Türöffner für neue Menschen sein kann. Allerdings ist es dort nicht die Aufgabe eines Board-Mitglieds. Aber ich denke, es ist gut, wenn sich das Board an dieser ganzen Kommunikationsinitiative beteiligt.

Du hast weitere Fragen? Schreib mir!

[1] https://lists.opensuse.org/opensuse-project/2019-06/msg00195.html
[2] https://en.opensuse.org/openSUSE:Marketing_meeting:2020-01-08#1.3_Leap_15.2_Beta:_Promote_beta_testing

von Vinzenz Vietzke am 26.01.2020 22:59


16.01.2020

Vinzenz Vietzke (vinz)

Kandidatur für das openSUSE Board #2: Fragen und Antworten

Bereits Anfang 2019 habe ich für das Board von openSUSE kandidiert. Nachdem inzwischen wieder zwei Plätze offen sind, stehe ich auch diesmal wieder für die Aufgabe zur Verfügung und stelle mich zur Wahl.

Einen allgemeinen Überblick über meine Vorstellungen und Ziele gibt es hier.

Im Vorfeld zur Wahl stehen alle Kandidaten der Community natürlich für Fragen offen. Einen Katalog aus 5 Fragen von Gerald Pfeifer, derzeit Chairman des Boards, habe ich beantwortet und möchte diesen auch hier bereitstellen.

Ein Hinweis: Fragen und Antworten sind ursprünglich auf Englisch. Dies ist nur eine Übersetzung.

1. Was sind deiner Meinung nach die drei, vier Stärken von openSUSE, die wir kultivieren und auf denen wir aufbauen sollten?

1) Vielfalt der Features
OpenSUSE ist vor allem für die Distributionen Leap und Tumbleweed bekannt. Die große Bandbreite der verschiedenen Teilprojekte und wie sie zusammenpassen, ist eine große Stärke. Wir sollten einen Weg finden, oS mit den ganzen Projektteilen wie YaST, OBS, openQA etc. in Verbindung zu bringen.

2) „Erbe“
Linux-Distributionen kommen und gehen, manche bleiben jahrelang, andere verschwinden in den Tiefen des Internets. OpenSUSE gibt es nun schon seit Jahrzehnten und es muss diese Tatsache in Richtung einer Anerkennung als zuverlässiger Freund für den Betrieb von Computern verändern.

3) Genehmigungsfreie Gemeinschaft
Die openSUSE-Community lebt von Menschen, die einfach Dinge tun und versuchen, andere durch Ergebnisse zu überzeugen. Das ist nicht überall bei FOSS üblich. Einige andere Gemeinschaften versuchen, die Dinge über Komitees und Oberbosse zu vereinheitlichen.

2. Was sind die drei größten Risiken, die du für openSUSE siehst? (Und vielleicht Ideen, wie man sie angehen kann?)

1) Vergessen werden
2) Teilweise unbekannt bleiben
3) Im eigenen Saft schmoren

Es könnte auch andere Risiken geben, aber diese drei passen alle zu einem großen Thema: Kommunikation – oder eher dem Fehlen einer solchen.

Meine Idee, dies anzugehen, ist es, das Marketingteam (irgendwie) wiederzubeleben und als treibende Kraft für alles, was von openSUSE in Richtung des Restes der Welt geht, zu pushen. Es gibt bereits Initiativen, Artikel zu schreiben, mit Community-Leuten in Interviews zu sprechen und neues Marketingmaterial zu erstellen. Dies erfordert natürlich Koordination und Manpower, aber es läuft bereits recht gut.

Das Marketing-Team, das ich im Sinn habe, ist eine Initiative, die in zwei Richtungen arbeitet: Neben der Arbeit in Eigenregie möchte ich es offen haben für Menschen, die Ideen, Wünsche und Projekte einbringen. Mitglieder können Tickets öffnen, Nichtmitglieder können E-Mails senden oder in Chatrooms erklären, was sie wollen oder brauchen. Die Marketingleute erledigen dann entweder die Anfrage selbst oder versuchen, jemanden zu finden, der bereit ist, dies zu tun, z.B. in Artwork, l10n oder einem anderen geeigneten Team.

Das Hauptziel ist es, einen konstanten Fluss interessanter Inhalte für den Rest der Gemeinschaft und für jeden außerhalb von openSUSE aufrechtzuerhalten.

Die Antwort auf die folgende Frage erweitert diesen Punkt noch ein wenig.

3. Was sollte der Vorstand anders / mehr tun?

Kommunizieren. Obwohl die meisten Leute hier (einschließlich mir) die Sache mit der Hierarchie nicht mögen, ist es etwas, das nicht ungenutzt bleiben sollte. Kurz gesagt: Wenn das Board etwas sagt, wird es weithin als etwas Wichtiges und Offizielles angesehen.
Obwohl das nur teilweise wahr ist und diametral zu dem steht, was der Vorstand wirklich ist (ein „Diener“ der Gemeinschaft), ist es sicherlich ein Weg, um Aufmerksamkeit für das gesamte Projekt zu gewinnen.

Ein Beispiel: Wählt relevante Dinge aus den Meetingnotizen aus, macht einen monatlichen Beitrag auf news-o-o, fügt ein nettes „Board News“ Emblem hinzu.

4. Wenn du einen Blanko-Gutschein vom SUSE-CEO für einen Wunsch hättest, welcher wäre das?

Ich würde ihn dafür verwenden, die Prozesse mit Heroes und der technischen Infrastruktur zu vereinfachen. Obwohl ich nicht so sehr Details kenne, höre ich oft, dass die Dinge langsam laufen und viel nachgebohrt werden muss. Und ich gehe davon aus, dass das, was dort öffentlich sichtbar ist, nur die Spitze des Eisbergs ist.

5. Was hältst du von der Stiftung? Was hältst du für ein realistisches Ergebnis dieses Unterfangens? (Und falls anders, welches Ergebnis würdest du gerne sehen?)

SUSE ist in rechtliche und finanzielle Angelegenheiten der Community involviert und wird sich höchstwahrscheinlich niemals zurückziehen. Und es würde sich falsch anfühlen, wenn man versuchen würde, alle Verbindungen dort zu kappen. Aber meine Vermutung und Hoffnung für die Stiftung ist, dass sie die Dinge klarer und getrennter gestalten wird.

Du hast weitere Fragen? Schreib mir!

(Quelle der Fragen ist hier.)

von Vinzenz Vietzke am 16.01.2020 22:23


Jörg Kruse (4A4B)

Spam über Kontaktformulare

In letzter Zeit nimmt Spam, der über Kontaktformulare von Websites versandt wird, immer weiter zu. Während früher noch in erster Linie verirrte Bots ihren Suchmaschinenspam in die vermeintliche Eintragsfelder für Blogkommentare eintrugen, handelt es sich jetzt vermehrt um zielgerichteten Spam an die Betreiber der jeweiligen Website. Auch Abwehrmethoden wie versteckte Honey-Pot-Eingabefelder verlieren dabei mehr und mehr ihre Wirkung.

Beworben werden hierbei beispielsweise Dienstleistungen wie Suchmaschinenoptimierung, Marketing oder Kundenpflege. Besonders dreist sind Mails, in denen das Spammen von Kontaktformularen beworben wird, wie z.B.:

Did you know that it is possible to send business offer totally legit?
We presentation a new unique way of sending commercial offer through feedback forms. Such forms are located on many sites.
When such requests are sent, no personal data is used, and messages are sent to forms specifically designed to receive messages and appeals.
Also, messages sent through feedback Forms do not get into spam because such messages are considered important.
We offer you to test our service for free. We will send up to 50,000 messages for you.
The cost of sending one million messages is 49 USD.

Der Erfolg dieser Spammethode ist demnach auch darin begründet, dass der Versender der Spammails ja der eigene vertrauenswürdige Server ist und der Empfänger vermutlich nur ungern einen allzu scharfen Filter implementiert, der wichtige Kundenanfragen in den Spamordner befördern könnte.

Ich habe meine eigenen Kontaktformulare nun dennoch so erweitert, dass sie das Verhalten des User Agents auswerten und gegebenenfalls den String „[Spamverdacht]“ an den Anfang des Betreffs schreiben. Auf dem Mailserver schiebt Sieve bei Vorhandensein dieses Strings die betreffende Mail in den Spamordner. Neunzig Prozent dieser Spammails kann ich dadurch filtern, bislang ohne False Positives. Vorsichtshalber schau ich aber ein mal am Tag in den Spamordner. Unterm Strich ist die Maßnahme insoweit von Vorteil, da mein Mail-Notifier (xfce4-mailwatch-plugin) so eingestellt ist, dass er bei Mails im Spamordner nicht anschlägt, und ich dadurch seltener durch Spammails von der Arbeit abgelenkt werde.

von Jörg am 16.01.2020 20:14


26.12.2019

Thorsten Sperber (TRex)

Scrape the web

Scrape the web

Kleine on-the-fly Dokumentation, wie ich einen Webcomic lokal verfügbar mache, um ihn mit einem Bildbetrachter ansehen zu können (rant: weil jemand die Webseite mobile first designed hat und dabei vergaß, dass die Gäste möglicherweise mit einem 27" Bildschirm daher kommen).

Zum Vorgehen

Was

Zunächst müssen wir wissen, was genau wir abziehen möchten. In meinem Fall sind das Bilder (die Comicseiten) und etwas Struktur. Die Cover sind zweitrangig, aber auch nett zu haben.

Weiterlesen… (9 min verbleiben zum Lesen)

von Thorsten am 26.12.2019 19:10


07.12.2019

Malte Kiefer (beLI3VeR)

Threema Lizenzen zu verschenken

Wie in den letzten Jahren werde ich auch dieses Jahr wieder Threema Android Lizenzen verschenken. Dieses Jahr werde ich 5 Lizenzen verschenken. Dazu erhalten die Gewinner oder Glücklichen von mir einen Lzenzschlüssel, mit dem sie auf der Webseite von Threema dann den Android Client nach Eingabe des Lizenzschlüssel herunterladen können.

Es ist nicht möglich, damit Threema vom PlayStore sondern nur aus dem Threema Store herunterzuladen.

Teilnahme

Die Teilnahme ist ganz einfach. Die ersten 5 Nutzer die mich via XMPP / Jabber anschreiben wird (pr3ach3r@trashserver.net) und die folgenden Fragen richtig beantworten kann:

1.) Aus welchem Land kommt Threema? 2.) Was bedeuten die 3 grünen Punkte bei einem Threema Kontakt? 3.) Was ist der Threema Safe?

Ich freue mich auf eure Einsendungen. Ich möchte festhalten ich stehe in keine Zusammenhang mit Threema. Ich kaufe die Lizenzen zum vollen Preis und dieses soll auch keine Werbaktion für mich oder Threema sein. Ich will nur einen kleinen Teil zu mehr Datenschutz und Sicherheit beitragen.

von Malte Kiefer (malte.kiefer@mailgermania.de) am 07.12.2019 00:00


06.12.2019

Malte Kiefer (beLI3VeR)

Tresorit unter Linux (Debian/Ubuntu) installieren

Nachdem ich jahrelang Google Drive (Schande über mich) als Cloud Speicher für einige Dinge genutzt habe, habe ich mich in den letzten Wochen nach einer sicheren Alternative umgeschaut. Ich habe mich für Tresorit entschieden. Da dieses ein bezahlter Cloud Anbieter ist, werde ich nichts weiter dazu erläutern, weil ich keine Werbung hier machen möchte. Jeder soll hier sich für seinen Anbieter entscheiden.

Download Linuxclient

Einer der wichtigen Punkte warum ich mich für Tresorit entschieden habe, war das es einen vollwertigen Linux Client gibt. Dieser kann über die Webseite heruntergeladen werden:

Download Linux Client

Installation

Die Installation des Clients ist sehr einfach, da es sich um einen run Script handelt. Dazu werden wir einfach das Script ausführbar machen:

chmod +x tresorit_installer.run

Danach einfach als Nutzer die Installation ausführen:

./tresorit_installer.run

Die Installation hat bei mir nur knapp 5 Sekunden gedauert und keine Abhänigkeiten gehabt. Es erscheint nur eine kleine Warnung beim ersten Start:

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

Das war es auch schon.

von Malte Kiefer (malte.kiefer@mailgermania.de) am 06.12.2019 00:00


14.11.2019

Malte Schmidt (maltris)

Breitbandausbau in der Praxis

2014 – Ukrainekrise, Ebola, PKW-Maut. Um in all diesem Schlamassel die Stimmung zu lockern, verspricht die Politik uns den Breitbandausbau bis Ende 2018 für jeden Haushalt mit mindestens 50 Mbit/s. Das Handelsblatt berichtete Mitte diesen Jahres.

Fünf Jahre später, prüfe ich zum 10. mal diesen Jahres die Verfügbarkeit von MagentaZuhause an unserem Anschluss. Kein Erfolg, die schnellste Verbindung, welche uns vorgeschlagen wird, ist MagentaZuhause Hybrid – genau die, welche bereits vorhanden ist und dank der allerletzten, ranzigen SpeedPort Hard- und Software, geringer LTE-Geschwindigkeit und noch geringerer DSL-Geschwindigkeit ein Witz ist. Von den 2014 seitens der Telekom propagierten 50 Mbit/s mit MagentaZuhause Hybrid, die zeitweilig tatsächlich geliefert wurden, kommen heute noch 16 Mbit/s. Und da müssen wir schon eine günstige Zeit erreichen.

Donnerstag 19 Uhr im reinen LTE-Betrieb
2009 hat angerufen und möchte seine Hausanschluss-Transferraten zurück

So ganz wollten wir uns noch nicht geschlagen geben. Also riefen wir die Telekom an. Der Serviceberater teilte mit, dass MagentaZuhause L mit 100 Mbit/s in Empfangsrichtung verfügbar sei. Nanu? Ich teilte ihm meine Sorge mit, dass das nicht stimmen könnte, da die Verfügbarkeitsprüfung mit Adresse und Telefonnummer ein anderes Prüfergebnis lieferte.

Die Dartscheibe: Wichtiger mutmaßlicher Bestandteil der Terminplanung und -vergabe der Telekom

Bild: Quelle, Lizenz: GNU Free Documentation License 1.2

Er meinte das passe alles, wir klärten die weiteren Begebenheiten und erklärten, dass wir unseren Router selbst beschaffen würden. (Die Miet- und Kaufangebote der Telekom für Router sind ein Witz für sich, ich möchte jetzt nicht konkreter darauf eingehen.)

Der Serviceberater teilte uns den recht frühen Umschalttermin in vier Tagen mit. Diese scheinbar kurzfristige Terminverfügbarkeit freute uns. Ich erkundigte mich noch wie mit den Zugangsdaten zu verfahren sei und ob wir diese per Post erhalten würden – er bejahte dies.

Im Bild markiert: Telekom-Serviceberater Hannes – sein Vorgesetzer in Reihe 1 passt nicht auf, daher verkauft Hannes Internetverträge, für die gar keine Anschlüsse existieren

Bild: Quelle, Lizenz: CC-BY-SA 2.0, Änderungen: Rote Markierung

Heute ist Donnerstag, drei Tage später und nachdem unsere Fritz!Box, bestellt über Amazon, bereits am Tag nach der Bestellung da war, warteten wir vergebens auf einen Brief der Telekom. Da wir einen Ausfall des Internet aufgrund fehlender Zugangsdaten vermeiden wollten, riefen wir also heute nochmals bei der Telekom an.

Die Serviceberaterin teilte uns mit, dass der Termin am Freitag keineswegs verbindlich gebucht wurde. Auch Zugangsdaten würden wir keine neuen erhalten, die alten behielten ihre Gültigkeit. Uns wurde mitgeteilt, dass der nächste Termin für Mittwoch den 23.10 oder Donnerstag den 24.10. verfügbar sei und sie diesen anfragen würde.

Kurz darauf erhielten wir einen weiteren Anruf der Beraterin, die uns mitteilte, dass MagentaZuhause L an unserem Anschluss nicht verfügbar sei, da alle Anschlüsse die über 50 Mbit/s (das wäre MagentaZuhause M) leisten könnten, bereits belegt wären. Wir erklärten uns mit MagentaZuhause M einverstanden, da eine stabile 50 Mbit/s-Anbindung immernoch besser ist als die derzeit 14-16 Mbit/s leistende DSL+LTE-Lösung oder die 6 Mbit/s DSL-Verbindung allein.

Das Gänseblümchen – mutmaßlicher Hauptbestandteil des Telekom Verfügbarkeitschecks

Bild: Quelle – User Alexmenk auf wikimedia.org
Lizenz: CC-BY-SA 3.0

Kurz darauf erhielten wir einen weiteren Anruf der Beraterin, die Sachlage hatte sich nun weiter verschlechtert. Das gesamte Haus hätte lediglich einen 50 Mbit/s-Anschluss, welcher bereits von einem anderen Teilnehmer genutzt werde.

Das ist wohl dieser “Breitbandausbau” von dem alle reden. Um das kurz zu veranschaulichen, hier ein Bild dieses Einfamilienhauses an dem es natürlich nicht mehr als eines einzigen 50 Mbit/s-Anschlusses bedarf:

Man sieht es trotz der niedrigen Auflösung ganz klar:
Hier handelt es sich um ein 4-stöckiges Einfamilienhaus an dem es nur eines 50 Mbit/s Breitbandanschlusses bedarf.

Doch hier war es noch nicht vorbei. Wir fanden noch ein interessantes, informelles Schreiben vom August von FEXCOM:

VOLLGAS-SURFEN, 250 MBIT/S, Millionen Haushalte, JETZT, Highspeed-Internet, JETZT

Reicht noch nicht? Geht weiter!

Vor 16 Monaten: Baumaßnahmen finden gerade statt, 250 MBit/s

Noch etwas: Die tolle Karte zum Breitbandausbau zeigt für unsere Lokation 100 MBit/s DSL. Einen Screenshot kann ich aufgrund der Lizenzbestimmungen hier nicht einbinden.

Zum Schluss noch etwas zu den monatlichen Gebühren und unserem tollen Breitbandausbau:

Telekomtkchopin.pl
MagentaZuhause S (16/2,4)34,95€NET 60 (60/6)34,90zl/8,15€
MagentaZuhause M (50/10)39,95€NET 150 (150/10)43,90zl/10,25€
MagentaZuhause L (100/50)44,95€NET 300 (300/15)59,90zl/13,98€
MagentaZuhause XL (250/100)54,95€NET 400 (400/20)79,90zl/18,65€
NET 650 (650/30)99,90zl/21,31€

Deutsches Telekom Kupfer-DSL mit Supervectoring (seit Jahren im mühsamen Ausbau befindlich) gegen tkchopin.pl Koaxialkabel-Internet (ohnehin fast überall in Polen vorhanden) im Preis-/Leistungsvergleich.

Nachtrag

Um den 31. Oktober kontaktierten wir wieder einmal die Telekom, da die erwartete Rückmeldung ausblieb. Die Supportmitarbeiterin teilte uns hier mit, dass bis einschließlich Dienstag dem 4. November keine Auskünfte möglich seien, da “das System geupdated” werde.

Die Telekom scheint hier ihr Armutszeugnis aufpeppen zu wollen – 5 Tage ohne Support aufgrund eines “Systemupdates”? Aufgrund meiner beruflichen Tätigkeit kenne ich die ungefähren Abläufe solcher “Updates” oder “Migrationen” und weiß, dass 5 Tage Systemausfall für eine Supportabteilung eines Unternehmens mit

  • über 200.000 Mitarbeitern
  • etwa 13 Millionen DSL-Kunden
  • einem Jahrensumsatz von 75 Milliarden Euro

schlicht nicht notwendig sein dürfen. Sind sie es dennoch, läuft bei der zuständigen Abteilung oder beim zuständigen Dienstleister etwas gewaltig schief.

Nachtrag

Am 6. November dann der nächste Kontakt mit der Telekom. Bis zu 250 Mbit/s seien nun an unserem Anschluss verfügbar – jedoch könne der Mitarbeiter dies nicht freischalten, da die Kollegin den Fall noch bearbeite.

Warum die Kollegin sich nicht bei uns melde, sei ihm nicht bekannt. Er habe ihr eine Mail geschrieben und wir sollen noch 2 Tage auf ihren Rückruf warten. (Datum dieses Nachtrags: 11. November, noch keinen Rückruf erhalten.)

“Die Wege des Telekom-Supports sind unergründlich.”

– Unbekannt

Nachtrag

Am 12. November riefen wir wieder beim Telekom-Support an. Ein nicht sonderlich eloquenter Mitarbeiter aus Leipzig versuchte uns mal wieder abzuwimmeln mit der Methode “da sei bei kein Anschluss verfügbar, da müsse er bei der Technik anfragen, das würde 4 Wochen dauern”. Auf meine Nachfrage was in den 4 Wochen passieren würde, teilte er erst mit, dass in diesen 4 Wochen geschaut würde ob ein Anschluss verfügbar sei. Auf erneute Nachfrage teilte er mit, dass in diesen 4 Wochen ein Anschluss geschaffen würde. Aufgrund der Verdrehungen teilte ich ihm mit, dass ich seinen Vorgesetzten sprechen möchte.

Sein Vorgesetzter war hier nicht viel hilfreicher, lenkte nach einigen Minuten meines latenten “erboster Kunde”-Geschwafels jedoch ein und teilte mir mit, dass er den Tarif buchen würde, was dazu führe, dass sobald der Anschluss frei sei, wir eine Information hierüber erhielten und dann ganz gewiss der entsprechende Tarif gebucht werden könne, da wir ja bereits in der Warteschlange seien. Wir sind gespannt und werden nun wöchentlich bei der Telekom um einen neuen Stand nachfragen.

“Desperate times call for desperate measures.”

– Sprichwort

Disclaimer

Die Beschreibungen unterhalb der Bilder sind frei erfunden und dienen Unterhaltungszwecken.

von maltris am 14.11.2019 05:19


05.11.2019

Jörg Kruse (4A4B)

Projektspezifische Konfiguration von vim

Wer häufig mit dem Texteditor vim arbeitet, wird bestimmte Einstellungen, wie z.B. zum Anzeigen von Zeilennummern oder zum automatischen Einrücken, in eine Konfigurationsdatei speichern. Während systemweite Einstellungen unter Linux in der Datei /etc/vimrc angelegt sind, können User eine eigene Konfiguration in der lokalen Datei ~/.vimrc vornehmen. Manchmal kann aber auch eine projektbezogene Konfiguration notwendig sein, wenn z.B. der Coding-Style des betreffenden Projektes eine andere Art der Einrückung vorschreibt als diejenige, die man normalerweise verwendet.

Das Plugin localvimrc ermöglicht es vim, Konfigurationsdateien mit dem Namen .lvimrc in Projektordnern einzulesen. Die Installation erfolgt als Vimball, wie unter „install details“ beschrieben: man lädt die aktuelle localvimrc.vmb herunter, und installiert diese dann folgendermaßen:


vim localvimrc.vmb
:so %
:q

Nach erfolgter Installation sucht vim bei jedem Start im aktuellen Verzeichnis eine Konfigurationsdatei .lvimrc und lädt diese bei Vorhandensein. Aus Sicherheitsgründen muss hierbei eine Sicherheitsabfrage bestätigt werden. Mit folgendem Eintrag in der Datei ~/.vimrc erreicht man, dass diese in einer vim Session nur einmalig erfolgt:


let g:localvimrc_persistent=2

von Jörg am 05.11.2019 21:07


14.07.2019

(Meillo)

2019-07-15

2019-07-15



Today I solved the  problem  of  sending  mail  messages  to  the
mayor's  office  in  a rather easy way. I must have been blind to
not see that option earlier.

The general approach, as I did  it  before,  was  the  following:
First  I  prepare  all texts, photos and captions as files in the
filesystem, named in a specific scheme. Then I start comp(1) with
a  special  message draft.  Then I add the relevant files, modify
the message text as needed and submit it. The message goes to the
mayor's office and at the same time to a script on my server that
stores the attachments for access through the website.

The solution now is: Instead of sending one copy directly to  the
mayor's  office,  I  send  it  to a new script, which reworks and
transforms them in exactly the way the mayor's office wants  them
to receive. With mmh this is a rather simple shell script.

I am happy for having found this solution,  that  makes  everyone
happy.   I  can keep the process as it was, but only add one more
filter to the outgoing mail.  I  must  have  been  blind  that  I
haven't  seen  it earlier. Maybe I only was too emotional in this
topic before ...




http://marmaro.de/lue/        markus schnalke <meillo@marmaro.de>

14.07.2019 22:00


01.07.2019

Axel Hellinger (cryptolegal)

Das Widerrufsrecht iSd. § 355 I S. 1 BGB am Beispiel der savedroid ICO.

Tl;dr: In den letzten Wochen wurde immer wieder bzgl. dem Widerruf des § 355 I S. 1 BGB und ICOs angefragt. Grundsätzlich gibt es ein solches Widerrufsrecht auch für ICOs, aber die Frist ist bei der savedroid ICO wahrscheinlich schon abgelaufen.

Update: Da in meinen Augen ein Verfahren mit Verweis auf das Widerrufsrecht nicht sehr erfolgsversprechend ist, haben wir ein alternatives Projekt in Leben gerufen: Diese „Sammelklage“ gegen savedroid ist wohl die beste Chance, sein Geld oder einen Teil davon zurückzubekommen.

1. Rechtsnatur der Token

Bei der Frage, ob ein Widerrufsrecht besteht, spielt auch die Rechtsnatur der zugrunde liegenden Token eine Rolle. Die Rechtsnatur muss für jeden konkreten Einzelfall bestimmt werden.
Vereinfacht kann man Token mit Papier vergleichen. Je nachdem, wie man ein Papier beschriftet, stellt es eine Briefmarke, einen Gutschein, eine Aktie usw. dar. Man kann aber auch nur das Papier als solches erwerben.

Bei einem Token ist es ähnlich. In erster Linie verkörpert ein Token die exklusive Möglichkeit, in einer Datenbank („Blockchain“) eine Zuordnung zu verändern. Es hängt von den Nutzern der Blockchain und maßgeblich von dem der ICO (Inital Coin Offering) zugrundeliegenden Projekt, welche Konsequenzen an diese Möglichkeit geknüpft werden soll.

Die ICO der savedroid AG war ein ITS (Inital Token Sale). Der Unterschied zu einer klassischen ICO liegt vornehmlich darin, dass der Preis pro Token bei einer ITS konstant ist, aber die Gesamtanzahl der Token schwankt. Bei der klassischen ICO ist die Gesamtzahl der Token fest vorgegeben, aber der Preis pro Token bildet sich während der ICO-Phase dynamisch. Im Rahmen des savedroid TTS war mit dem Token „lediglich“ das Versprechen verbunden, dass diese Token das ausschließliche Zahlungsmittel der App darstellt. Weder wurde von den Issuern der ITS eine bestimmte (Dienst-) Leistung pro Token noch ein bestimmter Wert (Geldbetrag) zugesagt, den man pro Token in Dienstleistung umtauschen könnte. Der SVD-Token ist daher kein Inhaberzeichen gem. § 807 BGB kann auch nicht einem Gutschein gleichgestellt werden.

Damit handelt es sich streng genommen gar nicht um einen utility token, wie er im white paper benannt wurde. Vielmehr ist der Token als currency token zu werten. Dies wird später für den Beginn der Widerrufsfrist von Bedeutung sein.

2. Rechtsnatur einer ICO/ITS

Was die Übertragung von Token — insbesondere im Rahmen einer ICO — rechtlich darstellt, wird bis jetzt kontrovers diskutiert. Von einem Rechtsgeschäft „sui generis“ über einen Realakt wird alles vertreten.

Savedroid führt hierzu in seinem Terms aus:

The savedroid ITS represents a voluntary contribution towards the implementation of crypto services in the Ecosystem. These Services, the ITS and the usage of SVDs are described in the Whitepaper…

SVD ITS Terms & Condition, v1.6, S.1

Die Formulierung „voluntary contribution“ steht in einem diametralen Widerspruch zu den Aussagen im whitepaper („inital token sale„) und dem Projekt. Es ist nicht vorstellbar, dass savedroid ernsthaft daran festhält. Die nach Eigendarstellung aufwändige KYC- Überprüfung hätte dann auch wenig Sinn gemacht.

Stellenweise wird die Durchführung einer ICO auch als Dienstleistung angesehen, welche darauf gerichtet ist, die Token „herzustellen“. Das mag insbesondere dann vertretbar sein, wenn das Projekt die Software für die Tokeninfrastruktur selbst entwickelt. Bei der SVD ITS hat man hingegen einen ERC20-Token der bestehenden Plattform Ethereum verwendet. Die Einordnung des SVD ITS als eine Dienstleistung ist daher nicht möglich.

Vereinzelt gibt es die Vorstellung, bei einer ICO handele es sich um ein „Darlehen“. Ein Darlehen ist jedoch ein Vertrag, bei dem ein Darlehensgeber einem Darlehensnehmer Geld oder vertretbare Sachen (Sachdarlehen) zum Eigentum überträgt und der Darlehensnehmer verpflichtet ist, nach Zeitablauf oder Kündigung Sachen gleicher Art, Güte und Menge an den Darlehensgeber zurück zu zahlen – § 488 I BGB.

Eine solche Rückzahlungspflicht wird im Whitepaper nicht erwähnt (SVD ITS Whitepaper v. 1.4, Pkt. 6). Eine Wertsteigerung der gehaltenen Token soll nur durch eine erhöhte Nachfrage am Markt erzeugt werden. Hierzu müssen gemäß dem Whitepaper (SVD ITS Whitepaper v. 1.4, Pkt. 3.1) die Nutzer (d.h. Dritte) der SVD-App die Token zur Inanspruchnahme von Dienstleistungen kaufen. Ein (Geld-) Rückfluss von einem Darlehnsnehmer zu dem -geber ist demnach nicht vereinbart. Es wäre jedoch denkbar, dass diese Art der Vertragsgestaltung eine unzulässige Umgehung ist.

Dies wäre dann der Fall, wenn sie den tatsächlichen Lebenssachverhalt nur künstlich verkompliziert. Aktuell ist es in der App nicht möglich, diese mit SVD-Token, welche man selbst auf einer Exchange gekauft hat, aufzuladen. Es ist im Prinzip daher immer so, dass (wenn überhaupt) savedroid die Token an der Börse zurückkauft, um sie dann den Dritten zur Verfügung zu stellen. Die dargestellte Vertragsgestaltung, dass savedroid im Auftrag von Dritten die Token kauft, kann als eine künstliche Verkomplizierung des Lebenssachverhalts ohne nachvollziehbare Gründe gesehen werden. Zutreffender muss man daher davon ausgehen, dass Dritte entgeltlich die Leistung bei savedroid in Anspruch nehmen und savedroid für diesen Umsatz Token burnt. Leider verwendet savedroid für die burnings weder eine Standardadresse, noch stellt es die burning adressen nachvollziehbar online. Da aber an den Börsen die Umsätze für SVD in den letzten Wochen sehr sehr niedrig waren, lässt dies nur die Schlüsse zu, dass entweder die App nicht nennenswert genutzt wird, savedroid aus eigenen Beständen oder den von nahe stehenden Personen burnt oder gar kein richtiges burning betreibt.

Auch wenn man zu dem Ergebnis kommt, dass savedroid als ITS-Issuer die Token zurückkauft, führt dies noch nicht zu einem Darlehen. Denn einem Darlehen ist es immanent, dass die hingegebene Sache zumindest in gleicher Art und Güte zurückgegeben wird. Da savedroid die Token jedoch nur zum Zeitwert einkauft, ist gerade nicht sichergestellt, dass die hingegebene Sache (hier Geld) auch wieder an den Darlehensgeber zurückfließt. Die Vorstellung eines Darlehens ist daher abwegig.

Es kann auch offenbleiben, ob der ITS eine sonstige Anlagen iSd. § 1 II Nr. 7 VermAnlG ist. Denn auch ein Kauf mit Rückkaufversprechen stellt zivilrechtlich immer noch einen Kauf dar.

Da es sich bei den SVD Token weder um eine Dienstleistung, oder ein Recht iSd. § 194 I BGB noch um eine Sache iSd. § 90 BGB handelt, ist die überzeugendste Einordnung ein „Kauf einer sonstigen Sache“ – § 453 I BGB.

3. Anwendbarkeit des Verbraucherwiderrufs

Das gesetzliche Widerrufsrecht könnte bei ICOs grundsätzlich ausgeschlossen sein. Denkbar wäre hier der aleatorische Charakter des Vertrages — § 312g II Nr. 8 BGB. Ein solcher schließt das gesetzliche Widerrufsrecht gänzlich aus:

Verträge zur Lieferung von Waren oder zur Erbringung von Dienstleistungen, einschließlich Finanzdienstleistungen, deren Preis von Schwankungen auf dem Finanzmarkt abhängt, auf die der Unternehmer keinen Einfluss hat und die innerhalb der Widerrufsfrist auftreten können, insbesondere Dienstleistungen im Zusammenhang mit Aktien, mit Anteilen an offenen Investmentvermögen im Sinne von § 1 Absatz 4 des Kapitalanlagegesetzbuchs und mit anderen handelbaren Wertpapieren, Devisen, Derivaten oder Geldmarktinstrumenten,

§ 312g II Nr. 8 BGB

Es ist aus Sicht des Gesetzgebers nicht zumutbar, ein solches Preisrisiko auf den Unternehmer abzuwälzen. Ein solches Risiko muss jedoch tatsächlich und innerhalb der regulären Widerrufsfrist vorhanden sein. Daher ist es unbeachtlich, ob ein Token irgendwann einmal an einer Börse gehandelt werden könnte und damit dann Schwankungen unterliegt. Solange ein Börsenstart innerhalb der regulären Widerrufsfrist weder geplant noch durchgeführt wurde, reicht dies für eine Anwendung des § 312g II Nr. 8 BGB nicht aus.

Denkbar wäre auch, die ICO selbst ist jedoch als „Finanzmarktes“ gesehen werden. Es fehlt jedoch an der Abhängigkeit des Preises von Schwankungen, soweit die ICO in Form eines Mintings (ITS) betrieben wird. In diesem Falle bleibt der Preis pro Token konstant, auch wenn der Wert des Token sich durchaus ändern kann. Denn, veräußert ein Unternehmer seine Waren/Dienstleistungen unabhängig von den Wertschwankungen zu einem konstanten Preis, so kann er § 312g II Nr. 8 BGB nicht für sich beanspruchen- AG Borken Urteil vom 26.02.2014 (Az.: 15 C 290/13), BGH Urteil vom 17.06.2015 (Az.: VIII 249/14).

§ 312g II Nr. 8 BGB findet auf ITS keine Anwendung.

4. Freiwilliges Widerrufsrecht

Ungeachtet der Entscheidung, ob der § 312g II Nr. 8 BGB anwendbar ist, er wäre nicht anwendbar „soweit die Parteien nichts anderes vereinbart haben„.

Ausdrücklich wurde zwischen den Parteien nichts vereinbar. Jedoch wurde in den AGB (Nr. 5 Terms & Condition) seitens savedroid ein (zumindest freiwilliges) Widerrufsrecht eingeräumt:

5 Right of Withdrawal
You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day of the conclusion of the contract. To exercise the right of withdrawal, you must inform us (savedroid AG Eschersheimer Landstraße 121, 60322 Frankfurt am Main, email: marco-hilft@savedroid.de) of your decision to withdraw from this contract by an unequivocal statement (e.g. a letter sent by post or e-mail). You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.

SVD Terms & Condition V. 1.6, Pkt. 5

In dem Absatz ist keine Bezugnahme auf das gesetzliche Widerrufsrecht zu sehen. Soweit ein gesetzliches Widerrufsrecht besteht, ist dies auch nicht notwendig.
Soweit der Absatz nur ein freiwilliges Widerrufsrecht enthält, fände der § 356 III S. 1 BGB keine Anwendung.

Dieses freiwillige Widerrufsrecht ist nur von Relevanz, wenn man den § 312g II Nr. 8 BGB bejaht. Aber auch in diesem Falle würden nur die Teilnehmer erfasst, die innerhalb 14 Tage nach Kauf ihren Widerruf erklärt hätten.

5. Ordnungsgemäße Belehrung über den Widerruf

Kernpunkt der aktuellen Diskussion ist die Frage, ob während des ITS ordnungsgemäß belehrt wurde. Auffällig ist hier zunächst, dass die Terms & Condition und damit auch die Widerrufsbelehrung in Englisch gefasst sind.

5 Right of Withdrawal
You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day of the conclusion of the contract.
To exercise the right of withdrawal, you must inform us (savedroid AG Eschersheimer Landstraße 121, 60322 Frankfurt am Main, email: marco-hilft@savedroid.de) of your decision to withdraw from this contract by an unequivocal statement (e.g. a letter sent by post or e-mail). You may use the attached model withdrawal form, but it is not obligatory.
To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.
Effects of withdrawal
If you withdraw from this contract, we shall reimburse to you all payments received from you, including the costs of delivery (with the exception of the supplementary costs resulting from your choice of a type of delivery other than the least expensive type of standard delivery offered by us), without undue delay and in any event not later than 14 days from the day on which we are informed about your decision to withdraw from this contract. We will carry out such reimbursement using the same means of payment as you used for the initial transaction, unless you have expressly agreed otherwise; in any event, you will not incur any fees as a result of such reimbursement.

SVD ICO T&C, Pkt. 5

Model withdrawal form
(complete and return this form only if you wish to withdraw from the contract) To:
savedroid AG
Eschersheimer Landstraße 121
60322 Frankfurt am Main
I hereby give notice that I withdraw from my contract for the provision of the following service Ordered on
Name of consumer
Address of consumer
Signature of consumer (only if this form is notified on paper) Date

SVD ICO T&C, Pkt. 5

Dies stimmt mit dem Musterwiderruf der Anlage 2 zu Artikel 246a § 1 II EGBGB nicht überein. Allerdings kann man argumentieren, dass die ICO komplett in Englisch durchgeführt wurde und es daher unschädlich ist, dass auch die Widerrufsbelehrung auf Englisch erfolgte. Jemand, der eine Kaufentscheidung aufgrund eines englischsprachigen Whitepapers trifft, muss nicht noch einmal auf Deutsch über seine Rechte aufgeklärt werden. Ob es noch ausreicht, die Schutzfunktion des gesetzlichen Musters gem. Artikel 246a § 1 II S. 2 EGBGB zu beansprucht, muss jedoch m.E. verneint werden.

Da bei der Übersetzung jedoch keine inhaltlichen Abweichungen zu Artikel 246a II BGB erkennbar sind, dürfte inhaltlich die Erklärung rechtskonform sein — § 355 II BGB iVm. Artikel 246a § 1 II EGBGB.

Ein weiterer Diskussionspunkt ist, ob die Widerrufsbelehrung den Teilnehmern auch ordnungsgemäß zur Verfügung gestellt wurde.

Savedroid selbst hat ausgeführt, die Belehrung wäre hinreichend. So hätte der Erhalt der Widerrufsbelehrung per Opt-in ausdrücklich bestätigt werden müssen. Eine solche Bestätigung ist ein Beweis des ersten Anscheins, dass die Belehrung (ordnungsgemäß) erfolgt ist. Aber sollten mehrere Teilnehmer bezeugen, dass eine solche Belehrung gerade nicht stattgefunden hat, dürfte der Opt-In-Haken nicht weiterhelfen und der Beweis des ersten Anscheins wäre zerstört.

https://www.youtube.com/watch?v=TigZC9mOlsw&feature=youtu.be

Auch aus dem Video lässt sich eine ordnugsgemäße Belehrung nicht ableiten. Weitere öffentlichen Aussagen, wie konkret die Teilnehmer der ICO informiert/belehrt wurden, sind nicht verfügbar. Eine Nachfrage in Telegram Channels, in denen der Autor nicht geblockt wurde, bestätigte dies. Keiner der dortigen Teilnehmer gab ein Feedback, die Widerrufsbelehrung oder ähnliches in Textform zur Verfügung gestellt bekommen zu haben.

In dem Video lässt sich aber erkennen, dass das Widerrufsrecht nicht nachträglich ausgeschlossen wird – § 356 V BGB.

6. Dauer der Widerrufsfrist

Selbst wenn die Belehrung fehlerhaft gewesen wäre, auch die verlängerte Widerrufsfrist wäre mittlerweile abgelaufen. Dies liegt an der Rechtsnatur der Token.

In dem Gründerszene-Artikel wird die Behauptung aufgestellt, die Widerrufsfrist habe nicht begonnen zu laufen:

… offenbar einen ganz erheblichen Fehler gemacht: Der ‚SVD-Token-Kaufvertrag‘ wurde in mehreren Fällen von keiner Widerrufsbelehrung begleitet“, schreibt die Anwältin Claudia Otto. Darin müssen Unternehmen ihre Kunden und Anleger über ein gesetzliches Widerrufsrecht informieren – die Frist beträgt 14 Tage. In dieser Zeit können die Verbraucher den geschlossenen Vertrag wieder auflösen. „Weil Savedroid offenbar seine Vertragspartner (…) nie über ihr Widerrufsrecht unterrichtet hat, hat die Frist nie begonnen zu laufen“, schreibt die Rechtsanwältin.

Gründerszene, abgerufen am 29.06.2019

Diese Behauptung ist unzutreffend und widerspricht dem § 356 III S. 2 BGB.

Der § 356 BGB kennt eine verlängerte Widerrufsfrist und eine Anlaufhemmung. Die verlängerte Widerrufsfrist von 1 Jahr und 14 Tage gilt für alle Nichtfinanzdienstleistungen — § 356 III S. 2 BGB. Die Anlaufhemmung und damit ein unbegrenzt Widerrufsrecht gilt, soweit es sich um eine Finanzdienstleistung handelt — § 356 III S. 2, 3 BGB.

Die Widerrufsfrist beginnt nicht, bevor der Unternehmer den Verbraucher entsprechend den Anforderungen des Artikels 246a § 1 Absatz 2 Satz 1 Nummer 1 oder des Artikels 246b § 2 Absatz 1 des Einführungsgesetzes zum Bürgerlichen Gesetzbuche unterrichtet hat. Das Widerrufsrecht erlischt spätestens zwölf Monate und 14 Tage nach dem in Absatz 2 oder § 355 Absatz 2 Satz 2 genannten Zeitpunkt. Satz 2 ist auf Verträge über Finanzdienstleistungen nicht anwendbar.

§ 356 III BGB

Was eine Finanzdienstleistung ist, ist in § 321 V S. 1 BGB legaldefiniert.

Bei Vertragsverhältnissen über Bankdienstleistungen sowie Dienstleistungen im Zusammenhang mit einer Kreditgewährung, Versicherung, Altersversorgung von Einzelpersonen, Geldanlage oder Zahlung (Finanzdienstleistungen),

§ 312 V BGB

Eine ICO/ITS stellt gerade keine (Finanz-)Dienstleistung im Zusammenhang mit einer Geldanlage dar, sie ist — wenn überhaupt — die Geldanlage. Wie oben schon dargestellt, ist der SVD-Token auch kein utility token. Er stellt damit auch keinen Gutschein/Inhaberzeichen für die zukünftige Finanzdienstleistung dar, welche durch die Cryptoapp angeboten wird.

Demnach findet das unbegrenzten Widerrufsrecht des § 356 III S. 3 BGB keine Anwendung. Das Widerrufsrecht würde demnach nach einem Jahr und 14 Tagen erlöschen.

7. Beginn der Widerrufsfrist

Ob die erweiterte Widerrufsfrist von 1 Jahr und 14 Tagen mittlerweile ebenfalls abgelaufen ist, hängt entscheidend davon ab, wann die Frist begonnen hat zu laufen.

Die Frist beginn bei der Lieferung von digitalen Inhalten mit Vertragsschluss – § 356 II S.2 BGB. Wenn man unter den SVD Token digitale Inhalte versteht, die nicht auf einem körperlichen Datenträger geliefert werden, hätte die Frist mit dem Kauf der Token begonnen und wäre definitiv für alle Teilnehmer 1 Jahr und 14 Tage nach Beendigung des ITS (s. whitepaper, S. 39), also am 23.03.2019 abgelaufen.

Digitale Inhalte sind nicht auf einem körperlichen Datenträger befindlichen Daten, die in digitaler Form hergestellt und bereitgestellt werden — Legaldefinition des § 312f III S.1 BGB.

Nach dem Erwägungsgrund 19 der Richtlinie 2011/83/EU des Europäischen Parlaments und des Rates vom 25. Oktober 2011 über die Rechte der Verbraucher (im Folgenden: Verbraucherrechte-Richtlinie) sowie der Gesetzesbegründung zu § 312 f Abs. 3 BGB (BT-Drucks 17/12637, S. 55) fallen unter digitale Inhalte Daten, die in digitaler Form hergestellt oder bereitgestellt werden, wie etwa Computerprogramme, Anwendungen (Apps), Spiele, Musik, Videos oder Texte – (vgl. LG Karlsruhe, Urteil vom 25. Mai 2016 – 18 O 7/16 ).

Nach dem Wortlaut wären SVD Token als digitale Inhalte zu verstehen.

Nach dem Sinn und Zweck der Vorschrift könnte unter dem Aspekt des Verbraucherschutzes eine teleologische Reduktion des § 356 II S. 2 BGB notwendig sein. Die Vorverlegung des Fristbeginns und die Abbedingbarkeit des Widerrufsrechts gem. § 356 V BGB liegt in der Schutzbedürftigkeit der Unternehmer. Die Rückabwicklung des Widerrufs ist bei digitalen Inhalten idR. nicht möglich, weil nicht verhindert werden kann, dass eine Kopie der Daten immer beim Verbraucher verbleibt. Eine Rückabwicklung des Kauf wäre zu Lasten des Unternehmers nicht möglich. An dieser Schutzbedürftigkeit fehlt es gerade bei einem Token. Die Daten alleine sind nicht von Bedeutung, die entscheidende Komponente ist die Exklusivität. Nur Daten in einer bestimmten Datenbank (Blockchain) sind bei dem jeweiligen Token von Bedeutung. Eine Rückabwicklung ist daher ohne weiteres möglich, der Unternehmer daher nicht schutzwürdig – sehr anschaulich in André Sabellek, Widerrufsrecht beim Kauf virtueller Gegenstände, S. 10f. jedoch zu virtuellen Gegenständen aus Online Games.

Folgt man der teleologischen Reduktion, hätte die Frist erst mit „Lieferung“ der Token begonnen zu laufen. Dies wäre frühestens zu dem Zeitpunkt bei dem die Verbraucher die Token auf ihr Wallet transferieren konnten und darüber informiert worden sind. Es spricht vieles dafür, diesen Zeitpunkt nach dem 31.07.2018 zu legen.

Nach dieser Meinung wäre die Widerrufsfrist zum jetzigen Zeitpunkt noch nicht abgelaufen.

8. Fazit, Handlungsmöglichkeiten

Der savedroid ITS hat viele Fragezeichen zurückgelassen. Eine gründliche Aufarbeitung des Projekts ist unabdingbar.

Aber dennoch sollte man immer die konkreten Erfolgschancen realistisch evaluieren. Weder der savedroid AG noch den Teilnehmern der ICO ist gedient, wenn man sich unüberlegt in ein Klageverfahren stürzt.

Das soll keinen davon abhalten, seinen Widerruf auch jetzt noch zu erklären. Der nächste Schritt sollte aber gut durchdacht sein. Der Klage aufgrund eines nach dem 23.03.2019 eingelegten Widerrufs kann der Richter nur stattgeben, wenn er entgegen dem Wortlaut des Gesetzes das Widerrufsrecht dennoch bejaht. Es gibt hierfür gute Gründe, aber zwingend ist diese Rechtsauffassung nicht.

Für diejenigen, der jetzt in der Sache savedroid mutig den Anfang gemacht und Klage erhoben haben. Ich habe lange überlegt, ob ich diesen Beitrag schreiben soll. Ich habe mich dafür entschieden, dass die Interessen vieler gegenüber dem einzelnen überwiegen. Nach meiner jetzigen Auffassung ist ein/e Klage/Anspruch (nur) aus Widerrufsrecht einfach mit zu viel Risiko verbunden.

Das bedeutet aber noch nicht, dass alles verloren ist. Aber andere Ansprüche sind wahrscheinlich hilfreicher oder sicherer. Darüber hinaus wurdet ihr bestimmt über das Für und Wider, wie oben geschildert, umfassend beraten und aufgeklärt. Eine umfassende Aufklärung ist ja schon zur Vermeidung einer potentiellen Haftung des beauftragten Rechtsanwaltes geboten.

Das Kapitel „savedroid“ ist leider/glücklicherweise noch nicht zu Ende. Es verspricht ein heißer Sommer zu werden.

HELLINGER.legal - Steuern | Recht | Cryptos

von support am 01.07.2019 08:44


19.05.2019

(Meillo)

2019-05-20

2019-05-20



A Windows system is not meant  to  be  run  for  a  longer  time.
Without  reboots  it gets slower and slower. Be it the system it-
self or the programs on top of it, you should shut it down  daily
if you want to keep the performance on the level.




http://marmaro.de/lue/        markus schnalke <meillo@marmaro.de>

19.05.2019 22:00


Willkommen!
Forum
Chat
Wiki/Tipps
Planet
Bildergalerie
Links
Twitter
dieses und jenes
Blogger
(BigOlly) (feed)
(Lord_Carlos und mweinelt) (feed)
(Meillo) (feed)
(Trurl) (feed)
(c3f2o) (feed)
(emge) (feed)
(thoys) (feed)
(trompetenkaefer) (feed)
Andre Nitschke (gnude) (feed)
Axel Hellinger (cryptolegal) (feed)
Beni Goll (Bennerl) (feed)
Bernd Dau (whisper) (feed)
Bert Radke (bert) (feed)
Bjoern Schiessle (BeS) (feed)
Christian Imhorst (immi) (feed)
Christian Schmitt (slater) (feed)
Christoph Langner (Chrissss) (feed)
Christoph Wickert (raoul) (feed)
Daniel Gestl (mcdaniels) (feed)
Darian (thoys) (feed)
Dominik George (Natureshadow) (feed)
Dominik Kupschke (bommi) (feed)
Dominik Pieper (nachtwandler) (feed)
Falk Husemann (josen) (feed)
Felix Schmeing (gimbar) (feed)
Gerrit Kruse (MrGerardCruiz) (feed)
Helmut Roewer (Dunkelangst) (feed)
Hendrik Richter (Hendi) (feed)
Holger Reinmann (codeaeffchen) (feed)
Jan Hauke Rahm (jhr-online) (feed)
Jochen Skulj (feed)
Jochen Welzel (jeff84) (feed)
Joerg Kastning (Tronde) (feed)
Jörg Kruse (4A4B) (feed)
Jürgen Braun (jaybe) (feed)
Lars Moelleken (voku1987) (feed)
Malte Kiefer (beLI3VeR) (feed)
Malte Schmidt (maltris) (feed)
Manuel Kaderli (suntsu) (feed)
Marc Nowak (TCA) (feed)
Marco Laspe (rockiger) (feed)
Marco Scholtyssek (marco_s) (feed)
Marco Scholtyssek (marco_s) (feed)
Marius M. M. (devilx) (feed)
Markus Matuszczak (konsumer) (feed)
Markus W. Kropp (Musix) (feed)
Martin Dosch (Dogge) (feed)
Mirko Weber (tylerD) (feed)
Nico Hartung (xyznico) (feed)
Oliver Groschopp (beetlefrosch) (feed)
Patrick Schmid (compr00t) (feed)
René Hering (ReneH) (feed)
Roman Hanhart (Thurgau) (feed)
Sabine Becker (AtariFrosch) (feed)
Sebastian Feltel (feltel) (feed)
Sebastian Moors (mauser) (feed)
Stefan J. Betz (encbladexp) (feed)
Steffen Moeller (smoe) (feed)
Steffen Rumberger (inne) (feed)
Stephan Tetzel (zefanja) (feed)
Sven S. (FearFactor) (feed)
Thorsten Sperber (TRex) (feed)
Tobias Dols (TobsenD) (feed)
Tom Karasek (Natas12) (feed)
Torsten Werner (bollin) (feed)
Viktor Bindewald (Vitei) (feed)
Vinzenz Vietzke (vinz) (feed)
posativ (feed)
Feeds
ATOM Feed
RSS 1.0 Feed
RSS 2.0 Feed
FOAF
OPML
Letztes Update
15.05.2022 06:01 (GMT+1)
Planetarium
Planet Debian
Planet Debian Administration
Planet Skolelinux
Planet Ubuntu
Planet RootForum
Planet symlink
Planet GNOME
Planet KDE
Planet Apache
Planet freedesktop.org
mehr ...
top
Zum Seitenanfang
Diese Webseite ist keine offizielle Webseite des Debian Projekts.
Haftungsausschluss und Impressum –Datenschutzrichtlinie – debianforum.de Verhaltensregeln

Powered by Planet Venus
Template entwickelt von Timo Salmen, basierend auf dem Debian Live Template, entwickelt von Christoph Haas.