Зміст

Управління LDAP

Важливо

LDAP сервер і його користувачі ніяк не співвідносяться з локальними адміністраторами Ubilling.
У статті ніяк не описано налаштування самого LDAP. Тут мається на увазі: що сервер уже налаштований і має якусь структуру груп, заповнені dc та інше.
Так само не буде ніяких описів з налаштування radius авторизації на самому залізі.

Основний опис

Тестовий майданчик:

Модуль призначений для управління користувачами на LDAP сервері.
Поточний функціонал:

  1. Створення\видалення користувачів
  2. Зміна паролів
  3. Призначення привілеїв, через приналежність до тих чи інших груп
  4. Створення та видалення груп впливає тільки на локальну БД і ніяк не впливає на наявність груп у самомуLDAP.

Встановлення:

  1. Усі потрібні файли лежать у docs/ldapmgr. Файли з розширенням ldif це шаблони
  2. Розпакувати всі файли в одну папку на LDAP-сервері. У моєму випадку це /opt/ldap_scripts
  3. Зробити chmod 777 /opt/ldap_scripts/*
  4. Виправити ldapmgr.ini і scripts.ini під свої реалії
  5. Зробити виклик users.php у crontab. В ідеалі запускати його раз на хвилину
  6. Вимагає ввімкненого LDAPMGR_ENABLED у alter.ini

Зв'язка з freeradius

Якщо ви хочете, щоб LDAP користувачі могли підключатися до вашого мережевого обладнання, то вибір не великий: radius або tacacs. Для себе я вибрав freeradius тому що більше з ним знайомий. Ось приклад, як можна обмежувати доступ до управління обладнання залежно від приналежності до групи. Усі імена груп лише приклад, ви можете використовувати будь-які зручні вам назви.

/etc/freeradius# cat users

DEFAULT		Ldap-Group != 'radius', Auth-Type := Reject

DEFAULT		Ldap-Group == "superadm"
	 	Cisco-AVPair = "shell:priv-lvl=15",
		dlink-Privelege-Level = 5,
		Huawei-Exec-Privilege = 15,
		User-Service-Type = Shell-User

DEFAULT		Ldap-Group == "operators"
		Cisco-AVPair = "shell:priv-lvl=1",
		dlink-Privelege-Level = 3,
		Huawei-Exec-Privilege = 16,
		User-Service-Type = Shell-User