Error in LDAPSet.pm

bruli

New Member
May 12, 2020
2
0
1
59
Wenn ich den Quarantine Login mit der Microsoft AD mittels LDAP konfiguriere, können sich die User nicht anmelden, da das Active Directory keinen anonymen connect zulässt. Folgender Patch löst das Problem:

--- LDAPSet.pm 2020-04-19 17:47:14.500712205 +0200
+++ LDAPSet.pm.fixed 2020-04-19 17:48:08.626371899 +0200
@@ -163,7 +163,7 @@
$res->{profile} = $id;

if (defined($password)) {
- if (my $ldap = $self->{$id}->ldap_connect()) {
+ if (my $ldap = $self->{$id}->ldap_connect_and_bind()) {
my $mesg = $ldap->bind($res->{dn}, password => $password);
return undef if ($mesg->code);
} else {
 
der patch macht für mich nicht wirklich sinn, was ist denn der output vom 'pmgversion -v' ?
 
proxmox-mailgateway: 6.2-1 (API: 6.2-3/dd58a339, running kernel: 5.4.30-1-pve)
pmg-api: 6.2-3
pmg-gui: 2.2-1
pve-kernel-5.4: 6.1-9
pve-kernel-helper: 6.1-9
pve-kernel-5.3: 6.1-6
pve-kernel-5.0: 6.0-11
pve-kernel-5.4.30-1-pve: 5.4.30-1
pve-kernel-5.3.18-3-pve: 5.3.18-3
pve-kernel-5.3.18-1-pve: 5.3.18-1
pve-kernel-5.3.13-2-pve: 5.3.13-2
pve-kernel-5.3.13-1-pve: 5.3.13-1
pve-kernel-5.3.10-1-pve: 5.3.10-1
pve-kernel-5.0.21-5-pve: 5.0.21-10
pve-kernel-5.0.21-3-pve: 5.0.21-7
pve-kernel-5.0.21-2-pve: 5.0.21-7
pve-kernel-5.0.21-1-pve: 5.0.21-1
clamav-daemon: 0.102.2+dfsg-1~pmg1
libarchive-perl: 3.3.3-1
libjs-extjs: 6.0.1-10
libjs-framework7: 4.4.7-1
libpve-apiclient-perl: 3.0-3
libpve-common-perl: 6.0-19
libpve-http-server-perl: 3.0-5
libxdgmime-perl: 0.01-5
lvm2: 2.03.02-3
pmg-docs: 6.2-1
pmg-log-tracker: 2.1.4-1
postgresql-11: 11.7-0+deb10u1
proxmox-mini-journalreader: 1.1-1
proxmox-spamassassin: 3.4.4-2
proxmox-widget-toolkit: 2.1-6
pve-firmware: 3.0-7
pve-xtermjs: 4.3.0-1
zfsutils-linux: 0.8.3-pve1

Der Patch macht insofern Sinn, als dass ldap_connect() mit unauthorized returned und die Quarantine Anmeldung fehlschlägt. Mit dem ldap_connect_and_bind() an dessen Stelle funktioniert der Login perfekt. Ich denke ein Patch der ein Problem löst macht durchaus Sinn.
Mein aktueller Workaround ist, nach jedem Update zu prüfen, ob der Patch angewendet werden muss und wenn so, dann patchen und erst danach rebooten.

Beste Grüsse
Martin
 
ok,

könntest du bitte die ldap config (/etc/pmg/ldap.conf ; bitte ohne bindpw) und den syslog von einem fehlerhaften login (also ohne den patch) und einem funktionierenden (mit patch) login posten?

kurze erkärung warum es für mich (immer noch) keinen sinn macht:
wir hatten vor kurzem einen bug in pmg-api, wo ldap_connect komplett fehlte und es nicht funktioniert hat (6.2-3 ist aber neu genug)

grundsätzlich funktioniert der ldap login workflow so:

ldap_connect verbindet zum server mit den daten aus der konfig
bind mit den dn+password vom user

ldap_connect_and_bind ruft zuerst 'ldap_connect' auf (also der gleiche code) und macht danach
ein bind mit dem bind_dn aus der config, oder einen anonymous bind
danach noch ein bind mit den userdaten macht wenig sinn

wenn sich der user binden kann, sollte das auch nach dem initialen verbinden funktionieren, und nicht erst wenn sich ein anderer user 'gebindet' hat
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!