Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Mittwoch
27
März 2019
Klaus Moser
Klaus Moser

SSH Chroot Umgebung

Hier wird beschrieben wie man eine einfache chroot Umgebung für einen ssh Benutzer erstellt, um z.B. Dateien auszutauschen ohne dass dieser Benutzer gleich Zugriff auf alle Dateien des PCs hat.

Pakete installieren

Für die chroot Umgebung wird das Paket libpam-chroot benötigt.

Bash
sudo apt-get install libpam-chroot

Benutzer erstellen

Zunächst wird ein neuer Benutzer erstellt:

Bash
sudo adduser transfer

Home Verzeichnis erstellen

Jetzt muss das home Verzeichnis für den Benutzer erstellt werden. Damit man sich anmelden kann müssen hier die Kommandozeilen-Werkzeuge und deren zugehörige Bibliotheken vorhanden sein welche für die Anmeldung notwendig sind.

Der Einfachheit halber kann man die Verzeichnisse /bin, /lib, /lib64 und /usr einfach per mount -o bind in das home Verzeichnis des Benutzers hinein mounten.

Bash
sudo -s
mkdir /home/chroot /home/chroot/bin /home/chroot/lib /home/chroot/lib64 /home/chroot/usr
mount -o bind /bin /home/chroot/bin
mount -o bind /lib /home/chroot/lib
mount -o bind /lib64 /home/chroot/lib64
mount -o bind /usr /home/chroot/usr

Wenn man den chroot Benutzern misstraut, kann man sich aber natürlich auch die Mühe machen nur die tatsächlich benötigten Werkzeuge herauszukopieren. Hier ist das Werkzeug ldd hilfreich um die benötigten Bibliotheken die für ein betimmtes Kommadozeilen-Werkzeug herauszufinden.

Beispiel

Bash
$ ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007ffc474b0000)
	libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f270b050000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f270ae4c000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f270aa82000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f270b279000)

Soll die chroot Umgebung dauerhaft Bestand haben müssen die mount Anweisungen in die /etc/fstab (Hab ich nicht getestet, müsste aber so gehen).

Bash
/bin /home/chroot/bin none defaults,bind 0 0
/lib /home/chroot/lib none defaults,bind 0 0
/lib /home/chroot/lib64 none defaults,bind 0 0
/usr /home/chroot/usr none defaults,bind 0 0

SSH Server Konfiguration

Als nächstes muss dem SSH Server mitgeteilt werden dass dieser den neuen Benutzer in die chroot Umgebung einsperren soll. Dazu editiert man die Datei für die SSH Server Konfiguration:

Bash
sudo nano /etc/ssh/sshd_config

Und fügt an das Ende der Datei folgende Zeilen ein:

Bash
Match User transfer
    ChrootDirectory /home/chroot/
    AllowTCPForwarding no
    X11Forwarding no

Abschließend muss man den SSH Server noch neu starten:

Bash
sudo systemctl restart sshd
Mittwoch
17
Oktober 2018
Klaus Moser
Klaus Moser

Thunderbird 60 und Lightning

Mit dem Update auf Thunderbird 60 war auf meinem Ubuntu auf einmal das AddOn Lightning verschwunden, bzw. nicht mehr kompatibel. Die Lösung die bei mir funktioniert hat war das Paket xul-ext-lightning zu installieren und Thunderbird neu zu starten.

Bash
sudo apt install xul-ext-lightning
Freitag
27
Juli 2018
Klaus Moser
Klaus Moser

USB legt Rechner lahm

Heute ist es mal wieder vorgekommen dass beim Kopieren großer Dateien über USB der Rechner angefangen hat zu hängen. In Kurzen Abständen ließ sich die Maus nicht mehr bewegen und es war kein Arbeiten mehr möglich. Das Problem scheint nur bei 64Bit Systemen und einer gewissen Menge Speicher aufzutreten.

Nach kurzer Recherche bin ich auf eine Lösung für das Problem gestoßen. Dazu folgende Zeilen in die Datei /etc/sysctl.conf einfügen:

/etc/sysctl.conf
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

Und die Änderungen aktivieren mit:

Bash
sudo sysctl -p

Seitedem kann ich wieder Daten kopieren ohne dass sich das System in einen unbedienbaren Zustand verabschiedet.

Blog

Kmoser's Tech-Blog