Ein Prozess blockiert das Aushängen eines Datenträger (II) – fuser

Symbolisiertes Terminal

Im ersten Teil wurden Prozesse identifiziert die das Aushängen eines Datenträgers verhindern aber wir haben immer noch keinen Zustand in dem ein Datenträger ausgehängt werden kann. Natürlich kann man ein z.B. evtl. offenes Office-Dokument abspeichern und das Officeprogramm beenden und das empfiehlt sich auch wenn man keinen Datenverlust riskieren möchte. Aber man kann auch die Prozesse hart beenden wenn kein Datenverlust droht. So ein Beispiel wäre z.B. wenn xpdf das Aushängen verhindert.:

# lsof +f -- /media/max/4335-1CEA/
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xpdf.real 23765 max cwd DIR 8,32 16384 12180 /media/max/4335-1CEA/Download
xpdf.real 23765 max 4r REG 8,32 3262888 12533 /media/max/4335-1CEA/Download/FujiFilm F20 Bedienungsanleitung

Hier ist eine PDF-Datei von xpdf geöffnet.

Ein verwandter Befehl zu lsof ist fuser. fuser kann Prozesse identifizieren die Dateien, Verzeichnisse und Sockets verwenden. Ein einfacher Aufruf würde z.B. zu so einer Ausgabe führen:

# fuser /media/max/4335-1CEA/
/media/max/4335-1CEA: 13159c 24928c 24943c

Weiterlesen

Ein Prozess blockiert das Aushängen eines Datenträger (I) – lsof

Symbolisiertes Terminal

Viele kennen das Problem, gerade bei USB-Speichergeräten, dass ein Programm oder Prozess das Aushängen eines Datenträgers verhindert denn nur ein Gerät was nicht in Benutzung ist kann auch ausgehängt werden. Dabei ist egal ob ein Dokument oder Datei offen ist oder ob man wie im anschließenden Fall nur das Verzeichnis in das es eingehängt wurde offen hat:

# umount /dev/sdb
umount: /media/max/4335-1CEA: target is busy.

Wie ermittelt man nun den Übeltäter? Dabei können wir umständlich alle offenen Programme durchgehen oder als elegantere Variante den Befehl lsof nutzten. Wie bei allen ls-Befehlen wie lsusb, lspci oder ls steht „ls“ für list und das of steht für „open file“.

Der einfachste Aufruf wäre lsof <Gerätedatei>:

# lsof /dev/sdb
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2157 max cwd DIR 8,16 16384 1 /media/max/4335-1CEA
bash 13159 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14979 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA
lsof 14980 root cwd DIR 8,16 16384 1 /media/max/4335-1CEA

Weiterlesen

Filterlisten als Futter für den Pihole

Schild Zugang für Unbefugte verboten

Der Pihole kommt nur mit einer rudimentären URL-Liste von zu blockenden URLs daher aber die Wirksamkeit steht und fällt mit einer guten Auswahl an Filterlisten. Dabei sollen nach Möglichkeit alle bösen Domains geblockt werden aber falsche weitgehend korrekt wieder gegeben werden. Naturgemäß sind die Ansichten welche Domains „böse“ sind bei jedem anders. Es gibt eine Reihe von gepflegten Listen für den Pihole von Sempervideo auf GitHub. Im Folgenden sind meine Filterlisten aufgeführt:

Weiterlesen

Individualisierte Fehlermeldung bei URLs die durch Pihole geblockt wurden

Schild Zugang für Unbefugte verboten

Pihole ist ein gutes Werkzeug im Netzwerk um lästige Werbung auszufiltern. Das macht Pihole über eine Liste an URL Wird nun so eine betroffene URL aufgerufen dann beantwortet Pihole im lokalen Netzwerk die DNS-Anfrage selber und es wird in der Standardeinstellung im Browser folgende nichtssagende Fehlermeldung angezeigt:

Pihole Standardfehlermeldung des Browsers

Man kann so leider nicht unterscheiden ob die URL von Pihole geblockt wird, die URL ungültig ist oder ein Netzwerkproblem vorliegt.

Weiterlesen

Ein schneller Weg einen Linux-Desktoprechner neu zu installieren

Wenn das Desktopbetriebssystem nicht mehr das macht was man möchte ist es bei einer alten Installation manchmal einfacher den Rechner neu zu installieren. Von Vorteil ist es dabei wenn man, als man den Rechner installiert hatte, eine separate Partition für /home hatte denn dann käme man ohne Backup der Home-Verzeichnisse aus. Sicherheitshalber sollte man jedoch immer vorher /home und /root sichern. Vorsicht /root liegt normalerweise auf der Partion mit dem Mountpoint / also wird auf alle Fälle beim Installieren überschrieben. Bei  mir lagern dort vor allem selbstgeschriebene Scripte. Sichern sollte man diese Verzeichnisse jedoch auf alle Fälle da bei einem Fehler Datenverlust droht. Bei einem Server wird dieser Weg nicht funktionieren, da dort normalerweise viel unter /etc und anderen Verzeichnissen konfiguriert ist. Da sichert man am besten den kompletten Rechner oder lässt ihn von seinem Serverprovider sichern.

Weiterlesen

PDF-Formulare unter Linux bearbeiten

Heutzutage ist man öfter gezwungen Formulare in PDF-Dateien zu bearbeiten. Einerseits eine positive Entwicklung da das Verfahren was früher angewandt wurde, (MS) Office-Dokumente als zum Ausfüllen zu benutzen, sowohl nicht barrierefrei (nicht jeder hat eine Lizenz für MS-Office) als auch gefährlich ist (Stichwort Macroviren). Auf meinem Mailsystem werden u.a. Mails die Officedokumente enthalten, aus Sicherheitsgründen verworfen. Linux-Distribution haben normalerweise einen ganzen Zoo an Programmen in den Repositorien die PDF-Dateien anzeigen können (wie Xpdf, Acrobat Reader) und auch Programme zum Bearbeiten von PDF-Dateien (wie z.b. LibreOffice oder Pdf-Arranger). Will man nun die Formulare, nicht den Inhalt des PDFs, bearbeiten wird die Luft allerdings sehr dünn.

Weiterlesen

Spamassassin – test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )

Käfer (Bug)

Nach einem Systemupgrade hatte ich (wieder) Mails in meiner Mailbox mit dem Subjekt: „test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )“ und dem Inhalt:

/etc/cron.daily/spamassassin:
Wide character in print at /usr/bin/sa-compile line 433, <$fh> line 2518.
Wide character in print at /usr/bin/sa-compile line 433, <$fh> line 2931.

Ich konnte mich dunkel daran erinnern, dass ich genau das schon einmal hatte und gelöst hatte. Offensichtlich liegt das Problem also in dem neuen Spamassissin. Wieder begann erneut eine Suche im Internet nach der Lösung denn ich hatte vergessen wie ich das damals gerade gebogen hatte. Daher habe ich hier die Lösung jetzt dokumentiert denn ich fürchte spätestens mit dem Upgrade auf Bullseye (Debian 11), vermutlich im Sommer dieses Jahres, wird das Problem erneut auftreten.

Weiterlesen

vi und vim – eine Kommandoreferenz

Logo von vim

Unter Unix und unixoiden Betriebssystemen, zu denen auch Linux gehört, ist es oftmals nötig Textdateien zu editieren denn die Konfigurationsdateien z.B. sind, im Gegensatz zu Windows, meistens einfache Textdateien im ASCII-Format. Daher gibt es unter diesen Betriebssystemen einen ganzen Zoo an Editoren. Einer der meist genutzten Editoren ist vi bzw. seine Erweiterung vim. Der Grund ist das vi ein Editor für die Konsole ist und damit auch zu gebrauchen ist wenn die grafische Oberfläche nicht starten will aber auch seine sehr mächtigen Werkzeuge. Ein weiterer Grund ist, dass vi auf jedem POSIX-System installiert ist was in Rettungssituationen einfach notwendig ist den Editor bedienen zu können.

vi ist ein recht alter Editor der entwickelt wurde bevor es grafische Oberflächen gab und kann daher komplett mit der Tastatur bedient werden. Für Neulinge ist etwas ungewohnt, dass vi verschiedene Modi kennt. Auf vielen Linux-Distributionen ist vi ein symbolischer Link auf vim, also den verbesserten vi-Editor (vim steht für vi-improved), und es wird daher beim Aufruf von vi in Wirklichkeit vim gestartet.

Weiterlesen

Postfix mit DKIM, SPF und DMARC ausstatten

Logo von Postfix

Viele Betreiber von kleineren Email-Servern kennen das Problem, dass die großen Anbieter die Mails von ihren Servern gerne mal als Spam einsortieren. t-online.de geht sogar soweit, dass sie Mails von kleinen Servern direkt abweisen und man muss erst durch Email an die angegebene Email-Adresse seinen Mailserver freischalten lassen. Mit einer neuen IP-Adresse beginnt das Spiel dann von neuem.
Daher ist es sinnvoll seine Mails mit allem Möglichen und möglichst fehlerfrei auszustatten was als state-of-the-art auf dem Gebiet der Email-Sicherheit betrifft gilt. Die Sinnhaftigkeit und Wirkung dieser Maßnahme was das Identifizieren von potentiellen Spam betrifft braucht man da nicht in Frage zu stellen denn oft macht es wenig sinn denn niemand verhindert, dass Spammer die gleichen Methoden benutzen. Gängig auf dem Gebiet ist DKIM, SPF und DMARC. Interessanterweise haben viele größere Email-Provider Probleme mit ihrer eigenen korrekten Implementierung oder verzichten ganz darauf.

Wikipedia definiert folgendes:

  • DKIM: DomainKeys, auch bekannt unter DomainKeys Identified Mail (DKIM), ist ein Identifikationsprotokoll zur Sicherstellung der Authentizität von E-Mail-Absendern. Es wurde konzipiert, um bei der Eindämmung von unerwünschter E-Mail wie Spam oder Phishing zu helfen.
  • SPF: Das Sender Policy Framework (SPF; früher Sender Permitted From) ist ein Verfahren, mit dem das Fälschen der Absenderadresse einer E-Mail verhindert werden soll, genauer das Versenden von E-Mail über nicht legitimierte Mail Transfer Agents (MTAs) unterbindet. Es entstand als Verfahren zur Abwehr von Spam. Bei SPF trägt der Inhaber einer Domain in das Domain Name System ein, welche Adressen von MTAs zum Versand von E-Mails für diese Domain berechtigt sind.
  • DMARC: Domain-based Message Authentication, Reporting and Conformance (DMARC) ist eine Spezifikation, die entwickelt wurde, um den Missbrauch von E-Mails zu reduzieren, wie er etwa bei Mail-Spoofing vorkommt. DMARC versucht einige seit langem bestehende Unzulänglichkeiten im Zusammenhang mit der Authentifizierung von E-Mails zu beheben und wurde bei der IETF zur Standardisierung eingereicht.

Weiterlesen

fail2ban – was machen wenn man sich selber ausgesperrt hat?

fail2ban ist ein tolles Werkzeug um ungebetene Gäste von seinem Server fern zu halten. Nach vordefinierten Regeln überwacht fail2ban in Echzeit die Logfiles nach verdächtigen Angriffsmustern. Nach einer frei definierbaren Anzahl an Fehlversuchen wird die verursachende IP-Adresse für eine ebenfalls frei definierbare Zeit durch iptables geblockt. Die häufigesten Angriffsversuche sind mit brute-force-Angriffen auf den ssh-Daemon Angriffe auf WordPress oder Postfix bzw. Dovecot, also das Mailsystem. Nun kann es vorkommen, dass man sich bzw. seine IP-Adresse unbeabsichtigt selber aussperrt. Das kann durch Schusseligkeit aber auch durch einen fehlkonfigurierten Email-Client oder ähnlichem vorkommen. fail2ban bzw. iptables macht keinen Unterschied zwischen den Diensten beim Sperren von IP-Adressen. Das hat nun den blöden Nebeneffekt, dass man für eine bestimmte Zeit keinen Zugriff mehr auf seinen Server hat.

Zunächst muss man seine eigene öffentliche IP-Adresse heraus bekommen. Da die meisten Menschen heutzutage über einen Router mit NAT im Internet sind entspricht die IP-Adresse im lokalen Netzwerk nicht seiner öffentlichen IP-Adresse. Die öffentliche IP-Adresse ist meist die internetseitige IP-Adresse des Routers. In der Shell kann man seine öffentliche IP-Adresse einfach ermitteln:

$ host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
123.456.789.123

Weiterlesen

kais-universum.de