Kategorien
Betriebssysteme

Verlauf der Windows-Remoteunterstützung bearbeiten oder löschen

Leider hat Microsoft im Verbindungsdialog der Windows-Remoteunterstützung keine Möglichkeit vorgesehen, Elemente im Verlauf entweder zu bearbeiten oder zu löschen.

Wer dies trotzdem tun möchte, findet den Inhalt des Verlaufs in der Datei „RAExpertHistory.xml“ im Ordner „%localappdata%“.

Kategorien
Betriebssysteme

Das Ende … ist vorbei

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“.

Kategorien
Betriebssysteme

netdom statt CNAME-Alias

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.
Kategorien
Betriebssysteme

dpkg und Status „deinstall“

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.

Kategorien
Betriebssysteme

Internet-Zugriff für Sublime Text unter Debian unterbinden

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.

Update 2020-09-29:

Das oben gezeigte Profil hat sich im Praxiseinsatz bewährt, allerdings gab es im Laufe der Zeit ein paar Nebenwirkungen zu spüren: trotz Genehmigung des Lese- und Schreibzugriffs auf alle im Besitz befindlichen Dateien unterhalb von „/home“ mittels

owner /home/** rw,

war es nicht möglich, mit Sublime Text z.B. die Datei „.bashrc“ zu bearbeiten.

Ursache hierfür war die Zeile

#include <abstractions/evince>

welche ihrerseits auf die Datei

#include <abstractions/private-files>

verweist, in der letztendlich die Zeile

deny @{HOME}/.bash* mrk,

zu finden ist. Diese unterbindet den Lesezugriff auf alle Dateien im „Home“-Verzeichnis des Benutzers welche mit „.bash“ beginnen, weshalb die spätere Genehmigung ins Leere läuft.

Das aktualisierte Profil sieht wie folgt aus:

# Last Modified: Mon May 11 20:28:54 2020
# 2020-09-29 athul/replaced abstractions/evince

#include <tunables/global>

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

  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,
  /usr/share/** r,
  /usr/bin/perl mrix,
  /usr/bin/sassc mrix,
  owner /dev/shm/* rwl,
  owner @{HOME}/** rwk,

}

Daraus lässt sich als Best Practice schließen, daß es zur Profilertellung sicherer ist, über „aa-genprof“ die Zugriffsrechte dediziert zu vergeben statt die vorgeschlagenen Includes zu verwenden.