Node.js unter Ubuntu 22.04 installieren

Wenn Node.js unter der aktuellen Ubuntu-LTS Version 22.04 installiert werden soll, so kann hierfür apt benutzt werden:

apt install nodejs

Das Problem an dieser Version aus den offiziellen Paketquellen ist, das sie ziemlich veraltet ist und mittlerweile meist neuere Node.js Versionen benötigt werden. Der gängige Weg wäre es nun die aktuelle LTS-Version von Node.js über den Befehl:

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
apt install -y nodejs

zu installieren. Allerdings schlägt dies mangels eines für Ubuntu 22.04 hinterlegtem Paket mit folgender Meldung fehl:

Your distribution, identified as „jammy“, is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support

Hier kann sich beholfen werden, indem das Paket manuell heruntergeladen und installiert wird, um die Prüfung zu umgehen:

wget https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/nodejs_16.9.1-deb-1nodesource1_amd64.deb
apt install ./nodejs_16.9.1-deb-1nodesource1_amd64.deb

Sobald die Pakete für Ubuntu 22.04 (Jammy) unter Nodesource bereitstehen kann das Setup-Skript wieder genutzt werden, um die Pakete aktuell zu halten. Alternativ kann Node.js auch über Snap installiert werden:

snap install node --classic

Dabei wird die aktuelle 18er-Version von Node.js installiert.

Fail2ban für WordPress einrichten

Beim Betrieb eines Servers wird der Nutzer schnell feststellen, dass er nicht der einzige ist, der gerne Zugriff auf den Ser­ver hätte. Um zu häu­fige Log­in­ver­su­che abzu­blo­cken, gibt es Fail2ban. Die­ses Pro­gramm­pa­ket durch­sucht die ent­spre­chen­den Logs und blockiert bös­wil­lige Ver­su­che, in das Sys­tem ein­zu­bre­chen. Damit gehört Fail2ban zu den Intru­sion Preven­tion-Sys­te­men. Damit kann es auch zur Auswertung von Login-Versuchen auf die eigenen WordPress-Installationen genutzt werden. Wer in die Logs schaut, wird dort ähnliche Zeilen finden:

18.217.216.181 – – [23/Nov/2021:19:32:40 +0100] „POST /wp-login.php HTTP/1.1“ 200 8408 „https://seeseekey.net/wp-login.php“ „Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0“

Um WordPress mit Fail2ban zu verheiraten muss ein einsprechender Jail und ein Filter angelegt werden. Was mich im Vorfeld in Bezug auf WordPress irritierte war der Statuscode 200, wenn ein Login in WordPress fehlschlägt. Hintergrund ist hier das WordPress bei einem erfolgreichen Login stattdessen den Statuscode 302 (Found) nutzt. Damit kann im ersten Schritt der Jail für Fail2ban erstellt werden:

nano /etc/fail2ban/jail.d/wordpress.conf

Diese Datei wird nun wie folgt befüllt:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 3

Anschließend muss der genutzte Filter ebenfalls angelegt werden:

nano /etc/fail2ban/filter.d/wordpress.conf

Der entsprechende Filter sieht wie folgt aus:

# Filter for WordPress login

[INCLUDES]

before = common.conf
 
[Definition]

failregex = <HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 200

datepattern = %%d/%%b/%%Y:%%H:%%M:%%S %%z

Nach einem Neustart von Fail2ban mittels:

service fail2ban restart

ist der neue Jail aktiv. Über das Log kann die Arbeit desselben betrachtet werden:

tail -f /var/log/fail2ban.log

Damit sind die WordPress-Installationen gegen den Versuch unbefugter Logins besser abgesichert. Nach drei Fehlversuchen, wird die entsprechende IP-Adresse gesperrt, sodass weitere Verbindungsversuche von dieser IP-Adresse vom Server nicht mehr beantwortet werden.

Software unter Windows über die Kommandozeile installieren

Linux hat seinen Paketmanager, macOS hat Homebrew – unter Windows sieht es etwas mau aus, was die Installation von Applikationen auf der Kommandozeile angeht. Mittels des Werkzeuges Scoop kann dies allerdings geändert werden. Nach der einmaligen Installation von Scoop können über dieses Werkzeug Applikationen über die Kommandozeile installiert werden:

scoop install curl

Die Applikationen werden im Benutzerverzeichnis des angemeldeten Nutzers installiert, sodass keine administrative Berechtigungen für die Installationen benötigt werden.

scoop.sh

Die offizielle Seite des Projektes ist unter scoop.sh zu finden. Der Quelltext von Scoop ist auf GitHub zu finden und Freie Software. Er ist unter der The Unlicense-Lizenz lizenziert.

Steam unter elementaryOS 6 installieren

Die Spieleplattform Steam kann auch unter elementaryOS 6 (Odin) installiert werden. Der einfachste Weg führt hierbei über Flatpak. Dazu muss im ersten Schritt das Terminal geöffnet werden:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.valvesoftware.Steam

Damit beginnt die Installation von Steam, bis es zu einer entsprechenden Nachfrage kommt:

Required runtime for com.valvesoftware.Steam/x86_64/stable (runtime/org.freedesktop.Platform/x86_64/21.08) found in remotes:

   1) flathub
   2) freedesktop

Was wollen Sie installieren (0 zum Abbrechen)? [0-2]: 1

Hier sollte flathub gewählt werden und damit wird die Installation fortgeführt. Nach ein paar Minuten ist Steam installiert und kann gestartet werden. Beim ersten Start aktualisiert sich Steam, bis schließlich die Anmeldemaske erscheint.

elementaryOS und die Indikatoricons

elementaryOS verfügt über eine Status- und Menüleiste, ähnlich macOS. In dieser Leiste, welche sich am oberen Bildschirmrand befindet, befinden sich Indikatoren für das Netzwerk, den Sound und einige andere Dinge. Auch Applikationen, wie z. B. der Nextcloud-Client legen dort ihr Status-Icon ab. Wenn der Nextcloud-Client unter elementaryOS in der Version 6 (Odin) installiert wird, taucht allerdings kein Icon in der oberen Leiste auf. Grund hierfür ist das diese nicht Out-of-the-box unterstützt wird.

Die Einstellungen von elementaryOS

Allerdings kann hier Abhilfe geschaffen werden mit dem Wingpanel Ayatana-Compatibility Indicator. Um diesen in elementaryOS zu installieren, sollte im ersten Schritt das Terminal geöffnet und einige Abhängigkeiten installiert werden:

install libglib2.0-dev libgranite-dev libindicator3-dev libwingpanel-dev indicator-application

Anschließend kann der Download der entsprechenden DEB-Datei angestoßen werden:

wget -c "https://github.com/Lafydev/wingpanel-indicator-ayatana/blob/master/com.github.lafydev.wingpanel-indicator-ayatana_2.0.7_amd64.deb?raw=true" -O wingpanel-indicator.deb

Danach wird das heruntergeladene Paket installiert:

dpkg -i wingpanel-indicator.deb

Nun muss dafür gesorgt werden, dass der Wingpanel Ayatana-Compatibility Indicator beim Systemstart geladen wird. Dies kann unter elementaryOS über die Systemeinstellungen und dort den Punkt Anwendungen bewerkstelligt werden. Dort findet sich der Punkt Beim Anmelden automatisch gestartete Anwendungen. Unter diesem Punkt wird nun unten links eine neue Anwendung hinzugefügt und dort ein benutzerdefinierter Befehl eingegeben:

/usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service

Im Terminal muss nun noch eine Änderung an der Datei indicator-application.desktop vorgenommen werden:

nano /etc/xdg/autostart/indicator-application.desktop

Dort muss nun der Parameter Pantheon; hinzugefügt werden, sodass die Datei am Ende wie folgt aussieht:

[Desktop Entry]
Type=Application
Name=Indicator Application
Exec=/usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service
StartupNotify=false
Terminal=false
OnlyShowIn=Unity;GNOME;Pantheon;
NotShowIn=ubuntu;
NoDisplay=true
AutostartCondition=GNOME3 unless-session gnome

Nach einem Neustart des Systems funktioniert der neue Indikator, sodass z. B. das Status-Icon des Nextcloud-Clients ebenfalls auftauchen sollte.