Kategorien
Linux PHP Webmuckel-Kram

LDAPS nach PHP update von 5 auf 7

Auf einem alten Host lief noch ein PHP 5.x das ich nun endlich auf die zur Zeit aktuelle Version 7.4 updaten durfte.

Teil der dort laufenden Software ist eine LDAP(S)-Verbindung zu einem ActiveDirectory-Server.

Diese SSL verschlüsselte Verbindung (LDAPS) lief nach dem Update nicht mehr und lieferte nur einen „bind“-Fehler.

PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server

Um das zu beheben muss man dem LDAP-Client explizit erlauben selbst signierte SSL-Zertifikate zu akzeptieren. Dazu in der Datei /etc/openldap/ldap.conf (z.b. bei CentOS 7) einen Eintrag hinzufügen

TLS_REQCERT never

Danach noch den http-Server ggf. neu starten. (systemctl restart httpd)

Kategorien
Linux Proxmox

SCP mit Jailkit in einem unpriviliegierten LXC Container (unter Proxmox)

Langer Titel, kurzer Tip. 

Ausgangslage: Ich habe eine unpriviligierten LXC Container (mit Ubuntu 20.04) unter Proxmox. In diesem läuft ein ISPConfig. Hier kann man den angelegten „Webkunden“ eine SSH-Shell ermöglichen. Zur Auswahl steht dabei unter unterem die Nutzung eines Jail (Jailkit), sofern man das mit installiert hat. 

Wenn man das aktiviert, klappt zwar der SSH Zugriff aber SCP funktioniert nicht. Ursache ist, das in einem unpriv. Container mknod nicht genutzt werden kann. Beim Anlegen des Jail kommt dann in etwa eine solche Fehlermeldung.

root@mytestserver:/var/www/testen.de/dev# jk_init -j /var/www/clients/client1/web1 basicshell editors extendedshell netutils ssh sftp scp groups jk_lsh
mknod: /var/www/clients/client1/web1/dev/urandom: Operation not permitted
Failed to create device /var/www/clients/client1/web1/dev/urandom, this is a know problem with python 2.1
use "ls -l /dev/urandom" to find out the mode, major and minor for the device
use "mknod /var/www/clients/client1/web1/dev/urandom mode major minor" to create the device
use chmod and chown to set the permissions as found by ls -l

Der selbe Fehler für /dev/tty und /dev/null.

Und genau über das fehlende /dev/null stolpert in diesem Fall der SCP. Der Workaround; einfach dies manuell in das User-Jail zu kopieren

cp /dev/null /var/www/clients/client1/web1/dev

Danach klappt es dann auch mit SCP.

Kategorien
Android

Oneplus One Update von LineageOS


Als Erinnerung an mich selbst:

Update herunterladen (in den Einstellungen). Update starten führt ins Recovery. Install wählen und das neueste Update im Pfad

/data/data/org.lineageos.updater/app_updates

auswählen. Anschließen ggf. noch das SuperSU, das man im Download-Folder liegen hat (vorher downloaden), hinzufügen.  Update starten. Beim Reboot „do not install“ für gewünschtes SuperSU-Installation wählen.

Erster Boot dauert etwas länger.

 

 

Kategorien
Linux Proxmox

Proxy in einem (LXC)-Container setzen


Da ein paar Server in meinem Netz nicht direkt, sondern nur via Reverse-Proxy erreichbar sind haben diese auch keinen direkten Internetzugang. Sie müssen sich also auch Updates etc. via Proxy holen.

Dafür setze ich zum einen APT-Cacher-NG, und zum Anderen einen Squid ein. Apt könnte natürlich auch über den Squid laufen, aber da ja mehrere Server laufen muss ich nicht alle Updates zig mal herunterladen.

Den Proxy für APT setzt man einfach indem man eine Datei erstellt

$ nano /etc/apt/apt.conf.d/00aptproxy

Hier wird nun der Proxy eingetragen

Acquire::http::Proxy "http://aptproxy.domain.de:3142“;
Acquire::https::Proxy "https://aptproxy.domain.de:3142“;

Damit wget z.B. aber auch via Proxy raus geht kann man den „normalen“ Proxy beispielsweise ins Environment setzen. Dies geschieht durch

$ nano /etc/enviroment

und eintragen der Werte

$ nano /etc/environment
http_proxy=http://proxy.domain.de:3128
https_proxy=https://proxy.domain.de:3128
ftp_proxy=ftp://proxy.domain.de
no_proxy=localhost,intranet.domain.de
soap_use_proxy=on

Nun hatte ich das Problem das ein Container das so gesetzte Environment nicht übernimmt, sondern offensichtlich das des Host auf dem er läuft. Da sich Host und Gast aber in unterschiedlichen Netzen befinden kann der Proxy nicht aufgelöst werden.

Deswegen setzt man den Proxy für wget in dessen Config-Datei

$ nano /etc/wgetrc
https_proxy = https://proxy.domain.de:3128/
http_proxy = http://proxy.domain.de:3128/
ftp_proxy = http://proxy.domain.de:3128/

Kategorien
Ceph Linux

Separaten (SSD) Root unter Ceph einrichten


In meinem (Proxmox)-Ceph Cluster möchte ich mit ein paar SSD einen separaten Root Bereich zur Ablage von VM-Images realisieren. Früher musste man dazu die Crush-Map noch von Hand extrahieren, anpassen und wieder einspielen. In der von mir eingesetzten Jewel-Version geht das auch schon mit dem CLI.

Zunächst ein neuen Root-Container erzeugen:

$ ceph osd crush add-bucket ssds root

Da in Ceph-Servern schon SATA Platten verbaut und genutzt sind, muss man für den neuen Pool gefakten Hostnamen anlegen

$ ceph osd crush add-bucket ceph01-ssd host
$ ceph osd crush add-bucket ceph02-ssd host
$ ceph osd crush add-bucket ceph03-ssd host

In die ceph.conf (/etc/pve/ceph.conf wird im [osd]-Abschnitt der folgende Eintrag gemacht, damit nach einem Reboot die OSD nicht wieder in den default-Pool gelegt werden.

[osd]
osd crush update on start = false

In meinem Fall hat dies schon gelangt, damit die OSD permanent im SSD-Container bleiben. Falls das nicht klappt kann man probieren den jeweiligen OSD direkt anzuweisen wo er liegt. Dazu ebenfalls in der ceph.conf einen Eintrag pro OSD machen.

[osd.13]
host = ceph01
osd_journal = /dev/disk/by-id/ata-SATA_SSD_67F584760C2400150026-part1
crush_location = root=ssds host=ceph01-ssd

Nun kann man die neuen OSD anlegen. Entweder via GUI oder

ceph osd crush add 13 0.64 root=ssds

Hierbei ist „13“ die OSD-Nummer und 1.5 gibt die weight an. Eine weight von 1 entspricht 1TB.

Im Anschluss verschiebt man die OSD in den neuen Container.

ceph osd crush set osd.13 0.64 root=ssds host=ceph01-ssd

Nun kann man einen neuen Pool erzeugen. Via Webinterface oder

ceph osd pool create ssdpool 64 64

Anschließend muss noch eine Crush-Rule erzeugt werden

ceph osd crush rule create-simple ssdpool ssds host

Der letzte Schritt ist die Cruh-Rule dem neuen Pool zuzuweisen

ceph osd pool set ssdpool crush_ruleset 3