firejail firecfg – Problem mit dem KDE-Login unter Opensuse Leap 42.3 – .ssh-Dateien und ssh-agent als Ursache

Experimentiert man unbedarft mir neuen Dingen, muss man sich nicht wundern, wenn man sich Probleme schafft. Jetzt passierte mir das mit firejail.

Ich muss manchmal Skype benutzen. Zu meinem großen Ärger, da jede Art von Closed Source UDP-Streaming Applikation ein prinzipielles Sicherheitsrisiko darstellt. In einen UDP-Datenstrom können immer Pakete integriert werden, die ganz anderen Zwecken dienen als der Übertragung der eigentlichen Audio- und Videodaten. Und wenn man dann den Code nicht kennt … Neben dem Aufsetzen eines speziell konfigurierten Containers ist die Nutzung von Firejail eine Gegenmaßnahme, solchen Applikationen das Vordringen ins System zu erschweren.

Opensuse 42.3 bietet im Repository “Virtualization
ein RPM-Paket firejail 0.9.5 zum Download an. Das habe ich installiert. nach der Installation war zunächst auch ein kein Problem feststellbar.

Aber dann habe ich ein wenig in der Dokumentation gestöbert. Auf der Seite https://firejail.wordpress.com/documentation-2/ findet man dann unter dem Titel “I’ve just installed Firejail, now what?!” Hinweise zu bestimmten Kommandos, um “pulseaudio” [PA] zu korrigieren (wundert mich nicht) und auch das Kommando “firecfg” auszuführen:

$ firecfg –fix-sound
$ sudo firecfg

Beides hat u.U. aber unangenehme Nebenwirkungen:

1) Pulseaudio zunächst nicht mehr deaktivierbar
Das erste Kommando korrigiert “pulseaudio”-Konfigurationsdateien zwar; es sorgt aber auch dafür, dass man unter Opensuse PA nicht mehr einfach über YaST und die dortige Audio-Konfiguraiton abschalten kann. Bekanntermaßen verwende ich PA nur, wenn nicht umgehbar. So erzwangen etwa frühere Skype Versionen für Linux ( u.a. die Version 4.3) die Nutzung von PA. Das ist beim aktuellen “skypeforlinux” (Beta) nicht der Fall; das kooperiert auch direkt mit Alsa.

Das ist auf meinem Laptop auch gut so, denn PA erzeugt dort ein dauerhaftes unangenehmes Hintergrundsgeräusch (niederfrequenter Pfeifton; keine Rückkopplung) auf meinem eingebauten Mikrophon (unabhängig von Skype). Das ließ sich auch durch Ändern der Empfindlichkeit und der Regelung von Verstärkungsfaktoren unter dem PA-eigenen “pavucontrol” nie beseitigen. Ein solches Geräusch tritt bei mir im reinen Alsa-Betrieb dagegen nicht auf.

Beseitigt habe ich die Aktivierung von PA dann durch Umbenennen/Verschieben der Datei “~/.pulseaudio” und anschließende erneute Deaktivierung von PA über YaST.

2) Kein KDE-Login und kein X11-Start mehr für bestimmte Accounts möglich
Schlimmer ist dagegen eine Auswirkung des zweiten Kommandos: Es erzeugt eine Liste von Links unter dem Verzeichnis von “/usr/local/bin“, die alle auf firejail verweisen. Normalerweise führt das dazu, dass viele Programme/Anwendungen über firejail gestartet und geschützt werden. Leider ist die Liste der Profile für Anwendungen aber keineswegs vollständig. Wird für eine Anwendung nichts gefunden, dann kommt wohl ein “default.profile” zum Einsatz. Letzteres verhindert aber den Zugriff u.a. auf ~/.ssh und ~/.gnupg-Verzeichnisse und dortige Dateien. Das wird aber unter Umständen unter Opensuse zu einem Megaproblem beim Start von KDE aus SDDM oder KDM heraus:

Ich konnte mich unter bestimmten Accounts nach dem Absetzen von firecfg nicht mehr von KDM oder SDDM aus in KDE (Plasma 5) einloggen. X11 wurde nicht gestartet; man landet nach ca. 1 Sekunde wieder auf dem KDM oder SDDM-Login-Schirm.

Die Fehlermeldungen hierzu waren unzureichend. Nach mühsamen Experimenten mit Konfigurationsdateien stieß ich schließlich darauf, dass allein die Existenz eines “~/.ssh“-Verzeichnisses zu Fehlern beim KDE-Start
führte. Entfernte ich das Verzeichnis komplett, ließen sich KDE und X11 wieder regulär starten.

Wer oder was will im Start “~/.ssh” auslesen? Mir fiel dazu zunächst nichts ein. Dann stieß ich auf ssh-agent. Und tatsächlich ergab sich unter Opensuse Leap 42.3 folgendes Bild:

mytux:~ # ps aux | grep ssh
root      1574  0.0  0.0  53492  5816 ?        Ss   13:30   0:00 /usr/sbin/
sshd -D
myself       4065  0.0  0.0  20136  1868 ?        S    13:30   0:00 /usr/bin/dbus-launch --sh-syntax --exit-with-session /usr/bin/ssh-agent /usr/bin/gpg-agent --sh --daemon --keep-display --write-env-file /home/myself/.gnupg/
agent.info-mytux.mydomain.de:0 /etc/X11/xinit/xinitrc
myself       4067  0.0  0.0  13312   332 ?        Ss   13:30   0:00 /usr/bin/ssh-agent /usr/bin/gpg-agent --sh --daemon --keep-display --write-env-file /home/myself/.gnupg/agent.info-mytux.mydomain.de:0 /etc/X11/xinit/xinitrc

Offenbar klappt diese Art des X-Starts nicht mit dem komplett gefüllten “/usr/local/bin” (genauer mit den dortigen Links). Ich sehe die Ursache – wie gesagt – im “default.profile”.

Die Link-Orgie unter “/usr/local/bin” beseitigt man übrigens mit

firecfg –clean

Danach klappt der Login in das X11/KDE-Gespann alles wieder. Meine Strategie ist im Moment, die Profile für verschiedene Anwendungen zu checken und “/usr/local/bin” langsam und systematisch mit Links zu füllen, die nur bestimmte Anwendungen betreffen.

Bei manchen alten Accounts habe ich zudem festgestellt, dass die Anlage der Links unter /usr/local/bin” auch dazu führt, dass jeglicher Netzwerkzugriff unterbunden ist. Hier bin ich noch an der Ursachenforschung.

Merke: Nicht gleich alles machen, was Manuals vorschlagen, wenn man von einer neuen Anwendung noch zu wenig versteht.

Skype 4.3 for Linux – no sound without pulseaudio – grrrr …

Sometimes, if something does not work on a Linux installation, one may find that frustrating. You hope for the best and try to find a solution – and in contrast to Windows I always had the impression that with Linux you have a chance to solve or circumvent your problems after some time. So, after the frustration about a Linux problem comes the interest in its details, then hope and after some work and information gathering even an improved knowledge about system configuration aspects and eventually some workaround … At least most of the times …

However, yesterday morning, when the cause of anger was a combination of Microsoft, Skype AND PulseAudio, I thought this was too much of an ordeal and there was not much room left for hope. Having last used Skype successfully on Aug, 1st, I needed to use it urgently again yesterday. But I had to learn: It does not work anymore despite the fact that I had not changed my system. No login to the Skype service possible. It took some time and tests to find out that, since some days ago, they only allow for connections from 4.3 Skype clients. After an update to the latest version I could log in to Skype again – however, sound did not work any more on my Linux system with – of course – plain ALSA. My blood pressure broke some records ….

It’s no secret: I neither like Microsoft, nor their proprietary Skype nor PulseAudio as a sound system layer for Linux.

Although, if you once forget about the security and confidentiality risks associated with the use of Skype, there is one thing I have to admit:

Until the beginning of August Skype (4.2) worked quite well on Linux. Something I can not at all say about PulseAudio. And Skype is handy (although only available as a 32 bit solution), it works with good performance world wide – and (unfortunately) many of my customers use it. As I cannot convince all customers to change to a Linux desktop I adapted in the past to this situation and used Skype on a separate Linux system, which I boot on a laptop only for Skype sessions.

Up to now, my motives for that separate Linux were security related. Now, it seems there is one more reason to do so:

Skype 4.2 clients and below for Linux can no longer connect to the Skype service. [Why ???? – a really good question … which makes me somewhat suspicious by the way … ] So, you have to upgrade to Skype 4.3. However, Skype 4.3 ignores any ALSA sound configuration without PulseAudio. It took me some time to find that out. See:

http://www.skype.com/ene/download-skype/skype-for-linux/
and
https://support.skype.com/en/faq/FA10964/how-do-i-adjust-the-sound-settings-on-my-computer-and-in-skype-for-linux.
(Interestingly, in this last article Microsoft only refers to Ubuntu – maybe Skype only will work on Ubuntu, soon?.)

The requirement of PulseAudio – that’s were the real frustration and anger for me begins. Microsoft forces me to use a special Linux sound system layer – which from my own experience generates more problems than it solves under many circumstances and on many systems.

Can a day start worse?

Ok, Microsoft does not force me to use Skype, after all. And, actually, I do not care so much to configure a separate bootable Linux version on my laptop which – for the sake of a working Skype – may use PulseAudio. As long as I do not have to use it otherwise and especially not on my desktops 🙂 . And the good thing with Opensuse is that (up to now !) PulseAudio can be deactivated relatively easily and system wide by YaST without having to reboot everything 🙂 . And even regarding the boot time for a special Linux installation as in my case – shutdown and boot times are pretty short on SSD driven laptops of the present generation. (Ironically
this is partially due to “systemd” from just the same developer as PulseAudio.)

However, one can even understand that and why Microsoft wanted to use a common layer for an existing variety of possible underlying Linux sound architectures. So, the real dilemma is: Why do all major Linux distributions promote and configure a sound system layer and associated applications which after years of upgrades still are a pain in the ass for many Linux users ? One rather desperate person wrote this article last year:

http://www.beastwithin.org/blogs/wolfheadofselfrepair/2013/07/pulseaudio-insidious-linux-malware

Believe me, I understand this guy. I, personally, have had bad experiences with many soundcards and PulseAudio on Opensuse Linux for years. Crackling sound, distorted sound, sliders in “pavumeter” not all working as expected for multichannel cards, sound delay, sudden sound level increases to 100 %, some applications no longer working after PA upgrades, …. you name it. After some time with such experiences and one set of destroyed speakers, it became a habit for me to deactivate or deinstall PulseAudio on almost all of my Opensuse installations directly after the first system setup – which did a lot of good for my nerves, the soundcards and the speakers. Pure ALSA did and does a perfect job for me.

See also the small but interesting statistics on the following blog article:

http://www.techrepublic.com/blog/linux-and-open-source/pulseaudio-an-achilles-heel-that-needs-repair/

I agree with the author of that blog: Either, the Linux distributors

  • find an alternative or finance the work on an alternative
  • or the effort to change PulseAudio to something useful must be intensified.

Not only because of the Steam games engine …

Until then:

  1. I have an additional reason to use a separate Linux installation for Skype.
  2. I am looking for Skype alternatives, usable both on Linux and Windows. Yesterday, I tried Jitsi/XMPP with a jabber account on a German server. Works well within the country, at least. What I like about Jitsi is the end to end encryption. I also like its simple interface and the fact that it is available both for Linux and Windows. However, when I tried to communicate with my wife, who presently is in Norway, the performance with sound and video transmission in parallel was very poor despite ADSL on both sides. But she was using a German server, too. We did not yet try with accounts on German and Norwegian servers. But this is stuff for another article.
  3. I see some positive aspects in Skype’s present dependency on Pulseaudio, too. Maybe, other Linux users now start looking for Skype alternatives, too. And some geeks and Linux companies may find interest in developing such alternatives or supplying servers for it. E.g., Tox (see: https://tox.im/) is under development. Or, the pressure on the PulseAudio people may grow to eventually improve their baby to the level of reasonable usability.

So, eventually, there may be some hope even after yesterday’s suffering …