Sonntag, 13. September 2020

Linux - PDF Dokumente zusammenfügen / Merge PDF files

Mit Hilfe von poppler-utils ist es möglich per Kommandozeile PDF  Dokumente in andere Formate umzuwandeln zu manipulieren oder auch zusammenfügen.

Installation (wenn Paket noch nicht vorhanden):
sudo apt-get install poppler-utils

Mit dem Befehl pdfunite ist das das Zusammenfügen von PDF Dateien per Kommandozeile ein Kinderspiel:
pdfunite Datei1.pdf Datei2.pdf AusgabeDatei.pdf

Weitere nützliche Tools:

  • pdftotext - Entnahme von Text
  • pdftoppm - Umwandlung von PDF nach PPM/PNG/JPEG
  • pdfimages - Entnahme von Bildern

Detailierte Infos zur Verwendung unter https://wiki.ubuntuusers.de/poppler-utils/.

Hinweis: Auch unter Windows ist eine Verwendung zum Beispiel mit Hilfe des Windows-Subsystem für Linux (WSL) möglich.

Freitag, 11. September 2020

Windows-Subsystem für Linux (WSL) - Installation

Mit Hilfe des Windows-Subsystem für Linux (WSL) können die enthaltenen Anwendungen des Ubuntu Images nativ unter Windows ausgeführt werden.

Damit eine Installation erfolgen kann, muss zuvor das optionale Feature „Windows-Subsystem für Linux“ aktiviert werden. 

Dies geht am schnellsten über den folgenden PowerShell (als Administrator ausführen) Befehl:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Alternativ geht dies auch per GUI:

Start Menu öffnen und nach "OptionalFeatures" suchen:

"Windows Subsystem für Linux" auswählen => "OK" klicken

Danach muss der PC neugestartet werden!


Anschließend können per Microsoft Store die folgenden Versionen installiert werden.

Hierfür kann man einfach nach "Ubuntu" suchen oder die nachfolgenden Links aufrufen:

Ubuntu 16.04 LTS: https://www.microsoft.com/de-de/p/ubuntu-1604/9pjn388hp8c9
Ubuntu 18.04 LTS: https://www.microsoft.com/de-de/p/ubuntu-1804/9n9tngvndl3q
Ubuntu 20.04 LTS: https://www.microsoft.com/de-de/p/ubuntu-2004/9n6svws3rx71

Weitere Informationen gibt es im Ubuntu Wiki: https://wiki.ubuntu.com/WSL


Montag, 7. September 2020

Linux - Netzwerkverbindung bzw. Erreichbarkeit von Ports testen

Mit der Hilfe von netcat lassen sich TCP/UDP Verbindungen bzw. Erreichbarkeit von Ports unter Linux testen.

Netcat ist in der Regel bereits vorinstalliert, kann ansonsten per netcat-openbsd installiert werden.

Netcat hat zwei Modi

  • Server: nc -l lokalport (nc -l 1234)

Netcat lauscht auf dem angegebenen Port für unbegrenzte Zeit auf eine eingehende Verbindung. 

  • nc 127.0.0.1 1234

Wurde eine Verbindung aufgebaut und wieder geschlossen wurde, beendet sich Netcat.

  • Client: nc zielserver zielport (nc -vz 192.168.1.110 80)

Mit der IP-Adresse 192.168.1.110 und dem Port 80 soll sich Netcat verbinden. In dem Client-Modus muss auf dem Zielrechner und -port schon eine Server-Anwendung warten, andernfalls beendet sich Netcat mit einem Fehler.


Hinweis: Funktioniert natürlich nur, solange keine Firewall zwischen den jeweiligen Netzwerken der Systeme die Verbindungen blockiert!

Wichtige Parameter:

  • -v  => aktiviert ausführlichere Ausgaben
  • -z  => nc scannt nur nach lauschenden ("listening") Diensten (Portscan)
  • -l  => nc wartet auf eingehende Verbindungen ("listen")

Auch ein simpler Dateitransfer ist möglich, siehe https://de.wikipedia.org/wiki/Netcat#Einfaches_Dateikopieren.

Auch ein einfacher Portscan ist mit netcat möglich:

nc -zv localhost 20-23

Siehe auch Liste der standardisierten Ports https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports.

  • 22 - TCP/UDP => Secure Shell (SSH) wird für verschlüsselte Fernwartung und Dateiübertragung genutzt (scp, sftp) sowie für getunnelte Portweiterleitun. 

 

Samstag, 29. August 2020

DSGVO - Was sind personenbezogene Daten?

Personenbezogenen Daten sind alle Informationen, die sich auf eine identifizierte oder identifizierbare Person beziehen.

Beispiele für personenbezogene Daten:

Bankdaten

  • Kreditkarte, Kontonummer, Einkommen, Kontostände

Physische Merkmale

  • Geschlecht, Haut-, Harr-, Augenfarbe, Statur, Kleidergröße

Kenn-Nummern

  • Identifikationsnummer, Personalausweisnummer, Sozialversicherungsnummer

Besitzmerkmale

  • Fahrzeug-, Immobilieneigentum, Grundbucheintrag

Onlinedaten

  • Standortdaten, IP-Adresse, E-Mail-Adresse, Cookie-Kennung

Gesundheits-Informationen

  • Genetische Daten, Krankendaten

Werturteile

  • Schul- und Arbeitszeugnisse

Allgemeine Personendaten

  • Name, Alter, Geburtsdatum, Anschrift, Familienstand

 

Siehe auch Bundesdatenschutzgesetz (BDSG) § 46 Abs. 1 https://www.gesetze-im-internet.de/bdsg_2018/__46.html .

Montag, 24. August 2020

Fritz!Box - Anrufe per Python mit TR-064 und fritzconnection

Mit Hilfe von fritzconnection lassen sich Anrufe per TR-064 initiieren als auch beenden. Siehe auch https://avm.de/service/schnittstellen bzw. "AVM TR-064 – First Steps". Mit wenigen Zeilen Python-Quellcode kann man so z.B. auf Ereignisse bei einem Raspberry Pi reagieren.


Vorbereitung: Ein FRITZ!Box-Benutzerkonto erstellen

Siehe auch https://service.avm.de/help/de/FRITZ-Box-7590/018/hilfe_system_user_konzept.


Installation von fritzconnection (unter Python3)

Hinweis: Die hier gezeigte Lösung funktioniert nur mit Python3!
 
Package installer for Python (pip), wenn noch nicht vorhanden:
sudo apt-get install python3-pip

Damit die Python .whl files installiert werden können, müssen folgenden Packete vorhanden sein:
sudo apt-get install libxml2-dev libxslt-dev python-dev
Error: Please make sure the libxml2 and libxslt development packages are installed.

Installation von fritzconnection package via pip
sudo pip3 install fritzconnection
Hinweis: Da die Python .whl files (wheels) installiert werden müssen, dauert die Installation ca. 5-10min.

Script 

#!/usr/bin/python
from time import sleep
from fritzconnection import FritzConnection

fc = FritzConnection(
        address='192.168.1.1',
        user="ring",
        password="123456",
        )

print(fc)  # print router model informations
#fc.reconnect()  # get a new external ip from the provider

# call_action takes two required arguments: the service- and the action-name
# https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_voip-avm.pdf
fc.call_action("X_VoIP1","X_AVM-DE_DialNumber",
                arguments={"NewX_AVM-DE_PhoneNumber ": "**9"})
# **9 (Rundruf) Alle angeschlossenen Telefone klingeln
sleep(5)
# Disconnect the dialling process.
fc.call_action("X_VoIP1","X_AVM-DE_DialHangup")


Fehler die auftreten können:

fritzconnection.core.exceptions.FritzActionFailedError: UPnPError:
errorCode: 501
errorDescription: Action Failed


=> Bei der FRITZ!Box muss unter 'Telefonie/Telefonbuch/Wählhilfe' der Punkt 'Wählhilfe verwenden' ausgewählt werden. ErrorCode 501 erscheint beim Fehlen der Wählhilfe. 

fritzconnection.core.exceptions.FritzSecurityError: UPnPError:
errorCode: 606
errorDescription: Action Not Authorized

=> Der Benutzer der FRITZ!Box hat nicht die notwendigen Rechte einen Anruf zu tätigen.



Sonntag, 16. August 2020

Fritz!Box - VoIP telefonieren per PC

Vor kurzem habe ich mir ein Logitech H820e Headset gekauft, um auch während der "Skype Meetings" im Homeoffice eine gewisse Bewegungsfreiheit zu haben. Da ich das Headset auch privaten nutzen will, möchte ich eine meiner VoIP Rufnummern mit dem Headset koppeln, wenn ich am PC sitze.


Voice Over IP als internes Gerät an der Fritz!Box aktivieren

Bei einer AVM FRITZ! Box 7590 muss man unter "Telefonie" => "Telefoniegeräte" den Button "Neues Gerät einrichten" anklicken.

Anschließend wählt man "Telefon" einrichten aus und klickt auf „Weiter“.

Als Telefon muss jetzt "LAN/WLAN (IP-Telefon)" ausgewählt werden und für das Telefon ein Benutzername und Passwort vergeben werden. Hinweis: Das Passwort wird später für die VoIP Software zur Anmeldung benötigt.


 

VoIP Software installieren und konfigurieren

Als kompakte und kostenlose Software verwende ich PhonerLite

Dabei kommen jetzt die folgenden Einstellungen zum Einsatz und schon kann es mit der Internettelefonie am PC losgehen.

  • Registrar/Domain: IP-Adresse/Alias der FritzBox!
  • Benutzername/Passwort: Welche bei der o.g. Einrichtung vergeben wurden.
 


Donnerstag, 13. August 2020

Raspberry Pi-hole - DNS Service, FTL is not running

Sollte es nach der Einrichtung von Pi-hole zu den folgenden Problemen kommen, kann ein kurzer "checkout" vom "master Branch" helfen.

Meldungen:

  • DNS service is not running
  • DNS resolution is not available
  • FTL is not running

Die aktuelle Version von Pi-hole mit dem folgenden Befehl installieren, anschließend werden auch die einzelnen Dienste (lighttpd, FTL service und DNS service) wieder gestartet:

pihole checkout master

Please note that changing branches severely alters your Pi-hole subsystems
Features that work on the master branch, may not on a development branch
This feature is NOT supported unless a Pi-hole developer explicitly asks!
Have you read and understood this? [y/N] y


Kommt es hierbei zu keiner Fehlermeldung, sollte Pi-hole wieder einwandfrei funktionieren!