Переделал малость скрипт. Дабы дебаг какой никакой провести. И поменял $BASE. Получилось вот что:
#!/usr/bin/perl
use Mozilla::LDAP::Conn;
#
# Configuration part, change this
#
$BASE = "o=mtel.c=ru";
$USER = $ARGV[0];
$PASS = $ARGV[1];
$conn = new Mozilla::LDAP::Conn({ "host" => "212.хх.хх.2", "port" => "389"} ); die "Can't get an LDAP connection" unless $conn;
printf("Connected...\n");
printf($conn);
printf("\n");
$entry = $conn->search($BASE, "SUB", "(uid=$USER)", 0, ("1.1"));
if (!$entry || $conn->nextEntry()) {
printf($entry);
printf("Nothing .\n");
$entry = $conn->search($BASE, "SUB", "(cn=$USER)", 0, ("1.1"));
if (!$entry || $conn->nextEntry()) {
$entry = $conn->search($BASE, "SUB", "(mail=$USER)", 0, ("1.1"));
printf($entry);
printf("Nothing ..\n");
$dn = $entry->getDN() if ($entry && ! $conn->nextEntry());
printf($entry);
printf("Nothing ...\n");
} else {
$dn = $entry->getDN();
}
} else {
$dn = $entry->getDN();
}
my $authenticated = 0;
if (($PASS ne "") && ($dn ne "") && ($conn->simpleAuth($dn, $PASS))) {
print "WhooHoo, authentication is good!\n";
$authenticated = 1;
}
printf("Wrong username or password, dude.\n", $authenticated) unless $authenticated;
Запускаем:
./ldap_auth admin password
Получаем:
Connected...
Mozilla::LDAP::Conn=HASH(0x8162f48)
Nothing .
Nothing ..
Nothing ...
Wrong username or password, dude.
Ведь соединение проводит мерзавец

А вот дальше тишина.