Kategorie: Betriebssysteme

Das Ende ... ist vorbei

· · 0 Kommentare

Gerade auf einem Test-PC nochmals Windows 7 reaktiviert:

Schön ist die Formulierung, daß Microsoft dringend empfiehlt, nicht nur die Soft- sondern auch gleich die Hardware auszutauschen und "Windows 10 auf einem neuen PC zu verwenden".


netdom statt CNAME-Alias

· · 0 Kommentare

Unter Server 2019 gab es seltsame Probleme beim Zugriff auf Netzwerkfreigaben über einen CNAME-Alias.

Auf manchen Clients wurden Zugriffe auf Freigaben sowohl im Explorer als auch an der Kommandozeile nur erlaubt, wenn der Servername vollqualifiziert angegeben wurde und ansonsten abgelehnt:

C:\>net use f: \\fileserver.fqdn\freigabe 
The command completed successfully.

C:\>net use f: \\fileserver\freigabe 
System error 1240 has occurred.

The account is not authorized to log in from this station.

Des Rätsels Lösung war die Einrichtung des Alias nicht wie bisher auf dem DNS-Server über einen CNAME-Alias, sondern direkt auf dem betroffenen Server mit Hilfe von netdom durchzuführen:

C:\>netdom computername servername /add:fileserver.fqdn
fileserver.fqdn
wurde als alternativer Name für den Computer hinzugefügt.

Der Befehl wurde ausgeführt.

Wer die anschließende DNS-Registrierung auf dem DNS-Server beschleunigen will, kann hierfür ipconfig verwenden:

C:\>ipconfig /registerdns

Windows-IP-Konfiguration

Die Registrierung der DNS-Ressourceneinträge für alle Adapter dieses Computer wurde initialisiert. Fehler werden in der Ereignisanzeige in 15 Minuten aufgeführt.

Anschließend funktioniert die Verbindung von allen Clients problemlos:

C:\>net use f: \\fileserver\freigabe 
The command completed successfully.

dpkg und Status "deinstall"

· · 0 Kommentare

Beim gelegentlichen Erstellen der Liste aller installierten Pakete mit "dpkg --get-selections" ist mir aufgefallen, daß ein paar Pakete mit dem Status "deinstall" angezeigt werden, z.B.

python3.7					install
python3.7-minimal				install
qemu-kvm					deinstall
qemu-system-common				deinstall
qemu-system-x86					deinstall
qt5-gtk-platformtheme:amd64			install

Diese waren zum größten Teil Überbleibsel von Experimenten mit virutellen Maschinen, in deren Verlauf ich "virt-manager" installiert und anschließend mittels "apt purge ..." wieder vom System entfernt habe, inklusive anschließendem "apt autoremove".

Warum sind die Pakete offensichtlich noch vorhanden und werden von einem "autoremove" nicht entfernt? Ein Blick in die man-Page brachte leider nicht die erhoffte Erleuchtung:

deinstalliere
  Das Paket ist zur Deinstallation ausgewählt 
  (d.h. wir wollen alle Dateien außer den
  Konfigurationsdateien entfernen).

Im englischen Debian-Forum findet sich eine plausible Erklärung , zwar aus 2009, aber sie passt:

... this means that all package files have been selected for removal except the configuration files.

sowie

If there is no configuration, cache files or whatever to be removed, then the package will be completely removed and not left in 'c' (deinstall) state.

Dependencies that were installed automatically are never purged by default (if not uninstalled manually, using the purge command).

Das erklärt, warum manche Pakete noch im Status "deinstall" vorhanden waren:

Der "virt-manager" war weg, weil mittels "apt purge ..." deinstalliert. Alle Depencencies ohne Konfigurationsdatei(en) waren ebenfalls weg, gelistet wurden noch die Reste, bei denen zwar die Pakete entfernt wurden, nicht aber die Konfigurationen.


Internet-Zugriff für Sublime Text unter Debian unterbinden

· · 0 Kommentare

Als Texteditor ist hier Sublime Text in der lizenzierten Version im Einsatz.

Es ist aus meiner Sicht vollkommen legitim, daß ein Lizenzinhaber gelegentlich überprüft, ob die zugewiesene Lizenz noch gültig ist. Sublime Text führt diese Online-Überprüfung aber nach jedem Start durch, was im Hinblick auf die Privatsphäre suboptimal ist - letzendlich geht es im Rahmen der erworbenen Lizenz die Entwickler nichts an, ob der Editor fünfzig mal am Tag oder um drei Uhr nachts gestartet wird.

Eine Diskussion mit dem Thema "Sublime Text calling home to license.sublimehq.com on every start?" im offiziellen Sublime Text-Forum hat leider zu keinem greifbaren Ergebnis geführt. Da auch die Sales FAQ nicht verlangt, daß das Programm nach Hause telefonieren darf / kann / soll / muss, ist eine anwendungsbezogene Sperrung des Netzwerk-Zugriffs eine naheliegende Option.

Unter Windows konnte der Internet-Zugriff für ein beliebiges Programm mit Hilfe der bordeigenen Firewall mit wenigen Klicks blockiert werden, unter Linux ist dies etwas komplizierter. Unter Linux blockiert die Firewall Internetzugriffe von außen basierend auf IP-Adresse und Port und eben nicht wie im aktuellen Fall gewünscht unabhängig  von IP und Port den Zugriff einer Anwendung nach aussen.

Zur Realisierung bietet sich AppArmor an, das unter Debian 10 standardmäßig installiert und aktiviert ist, so daß keine zusätzliche Software benötigt wird. AppArmor verfügt über weitreichende Konfigurationsmöglichkeiten, wer aber einen kurzen Blick in die unter "/etc/apparmor.d" gespeicherten Profile wirft, wird davon ohne Vorkenntnisse regelrecht erschlagen.

Glücklicherweise gibt es mit den AppArmor Utils die Möglichkeit, ein Profil für eine Anwendung interaktiv zu erstellen.

An der Kommandozeile wird als erster Schritt die Erstellung eines neuen Profils gestartet:

$ sudo aa-genprof /opt/sublime_text/sublime_text

Anschließend wird Sublime Text gestartet und nach Möglichkeit alle darin benötigten Aktionen ausgeführt.

Nach dem Beenden von Sublime Text wird mit Druch auf "S" im ursprünglichen Fenster die interaktive Generierung gestartet. "aa-genprof" untersucht nun die anwendungsbezogenen Einträge im Syslog und stellt zu jedem Eintrag die Frage, ob eine Aktion erlaubt sein soll oder nicht.

Das Ergebnis ist ein Profil, das in der Datei "/etc/apparmor.d/opt.sublime_text.sublime_text" erzeugt wird und nur recht wenige Zeilen enthält.

Um den Netzwerkzugriff zu blockieren, muß - falls vorhanden - die Zeile

#include <abstractions/nameservice>

entfernt werden, denn diese schaltet den Netzwerkzugriff frei, so daß ein anschließend eingefügtes

deny network

keinerlei Wirkung mehr zeigt.

Das fertige Minimal-Profil für Sublime Text sieht dann wie folgt aus:

# Last Modified: Mon May 11 20:28:54 2020
#include <tunables/global>

/opt/sublime_text/sublime_text {
  #include <abstractions/X>
  #include <abstractions/base>
  #include <abstractions/dbus-session-strict>
  #include <abstractions/evince>

  deny network,

  /opt/sublime_text/ r,
  /opt/sublime_text/** r,
  /opt/sublime_text/plugin_host mrix,
  /opt/sublime_text/sublime_text mr,
  /proc/filesystems r,
  owner /dev/shm/* rwl,
  owner /home/** rw,

}

Direkt nach Erzeugung startet AppArmor das Profil im "Enforce"-Modus, d.h. alles, was nicht explizit erlaubt ist, wird verboten. Sofern Build-Systeme o.ä. eingesetzt werden, sind noch Nachabeiten notwendig.

Diese können entweder manuell erfolgen oder durch das Wechseln des Profils in den "Complain"-Modus, dessen Aufzeichnungen anschließend wieder interaktiv ausgewertet werden können.

Zum Start von Perl als Build-System reicht z.B. das Hinzufügen von

/usr/bin/perl mrix,

welches das Starten des Perl-Internpreters mit den geerbten Berechtigungen von Sublime Text erlaubt.


Zeitsynchronisierung mit systemd

· · 0 Kommentare

Sofern ein Linux-System systemd verwendet muß zum Abgleich der Systemzeit – sofern dieses nicht als Zeitserver für andere Systeme arbeiten sollen – kein ntp mehr insalliert werden.

Es reicht die Anpassung der Datei „/etc/systemd/timesyncd.conf“

$ sudo vi /etc/systemd/timesyncd.conf

in welcher dann in der Zeile „NTP=“ der gewünschte Zeitserver eingetragen wird.

[Time]
NTP=zeitserver.local
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048

Nach Änderung der Datei wird der Dienst „systemd-timesyncd.service“ neu gestartet - das war's.

$ sudo systemctl restart systemd-timesyncd.service

Anschließend kann die Konfiguration des Diensts mittels

$ timedatectl status
               Local time: Mo 2020-04-27 21:19:40 CEST
           Universal time: Mo 2020-04-27 19:19:40 UTC
                 RTC time: Mo 2020-04-27 19:19:40
                Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

überprüft werden. Wird der Status des „NTP service“ als „inactive“ angezeigt, so ist ein

$ timedatectl set-ntp true

notwendig, um die Synchronisation zu aktivieren. Detaillierte Informationen erhält man entweder über

$ timedatectl timesync-status
       Server: 1.2.3.4 (zeitserver.local)
Poll interval: 1min 4s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 4
    Reference: AF0149C
    Precision: 1us (-21)
Root distance: 31.249ms (max: 5s)
       Offset: -1.759ms
        Delay: 1.972ms
       Jitter: 0
 Packet count: 1
    Frequency: +17,237ppm

oder mit Hilfe von

$ timedatectl show-timesync
SystemNTPServers=zeitserver.local
FallbackNTPServers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
ServerName=zeitserver.local
ServerAddress=1.2.3.4
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=2min 8s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=4, Precision=-21, RootDelay=17.333ms, RootDispersion=18.478ms, Reference=AF0149E, OriginateTimestamp=Mon 2020-04-27 21:05:29 CEST, ReceiveTimestamp=Mon 2020-04-27 21:05:29 CEST, TransmitTimestamp=Mon 2020-04-27 21:05:29 CEST, DestinationTimestamp=Mon 2020-04-27 21:05:29 CEST, Ignored=no PacketCount=2, Jitter=329us }
Frequency=1353001