Как настроить IRC-сервер с поддержкой LDAP?

11

Как я могу настроить IRC-сервер, поддерживаемый LDAP?

Прямо сейчас я смотрю на создание IRC-сервера, который поддерживается OpenLDAP или экземпляром 389 для аутентификации пользователя.

Какой IRCD мне следует использовать?

Предпочтительно, он должен иметь возможность просматривать группы пользователей LDAP и решать, можно ли им вообще противостоять, озвучивать или даже разрешать присоединяться к каналу.

JRG
источник
Что вы имеете в виду под «аутентификацией»? В какой момент пользователь должен пройти аутентификацию?
Йоханнес Кун
@JohannesKuhn Я хочу, чтобы они проходили аутентификацию с использованием своих учетных данных LDAP, как при подключении - на уровне сервера. Меня не очень интересует nickserv или тому подобное, это достаточно легко сделать из того, что я могу сказать.
JRG
Какие еще детали вам нужны?
Йоханнес Кун
Вы можете настроить небольшой IRC-сервер, используя Inspircd. План был следующим. Использовать аутентификацию LDAP для пользователей, шифрование SSL с использованием сертификатов моего домена, веб-интерфейс с прокси через NGINX https. Подробности на project-xanadu.blogspot.in/2013/06/irc-server.html Также см. Blog.labix.org/2010/06/19/…
Тотти

Ответы:

7

Вам вопрос требует много объяснений, поэтому я подведу итог моего ответа:

Во-первых, вы должны использовать Inspircd v2.0.15, потому что его стабильная, высокая производительность и самое важное для вашего использования помечена как поддержка ldap Link .

Первый :

Вы должны отредактировать ваш файл / etc / hosts:

YouserverIp       hostname.example.com        hostname

Второе:

Установите OpenLdap:

sudo apt-get install slapd ldap-utils

во время установки просто введите свой пароль администратора ldap.

OpenLdapServer

Третий :

Установите apache2: apt-get install apache2

Четвертый

Установите phpldapAdmin: phpLDAPadmin (также известный как PLA) - это веб-клиент LDAP. Он обеспечивает простое и доступное многоязычное администрирование для вашего сервера LDAP.

sudo apt-get install phpldapadmin (именно поэтому я установил apache2, его веб-инструмент)

Теперь у вас есть два шага:

редактировать

 /etc/ldap/ldap.conf

добавить: изменить

BASE dc=yourdomain,dc=com
URI ldap://Your Ip Address

тогда: отредактируйте /etc/phpldapadmin/config.php

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Просто измените свой IP и доменное имя.

Откройте ваш браузер:

YourIP / phpldapadmin

Введите пароль администратора, который вы вводите при установке sldap.

Теперь вы подключаетесь к базе данных ldap. выберите домен ----> справа добавьте Generic Posix Group ----> затем выберите группу и создайте дочернюю запись для добавления общих учетных записей пользователей для тестирования.

введите описание изображения здесь

Больше помощи используйте phpldapadmin Здесь

Пятый:

Теперь пришло время настроить inspircd:

редактировать: /etc/inspircd/inspircd.conf вам нужно загрузить модуль ldapauth и указать на ваш сервер ldap,

<module name="m_ldapauth.so">
<ldapauth baserdn="cn=test,dc=domain,dc=com"
          attribute="uid"
          server="ldap://yourIp or domainname"
          allowpattern="Guest*"
          killreason="Access denied"
          searchscope="subtree"
          binddn=""
          bindauth=""
          verbose="yes"
          userfield="yes" >

Вы также должны добавить ваше имя сервера IRC и имя администратора и другие опции в

/etc/inspircd/inspircd.conf 

Этот учебник поможет вам: Учебник

Последний :

Перезапустите slapd, inspircd и попытайтесь подключиться к пользователям, которых вы создали.

Заметьте, что изменения будут соответствовать вашим потребностям, и в этой конфигурации и irc, и ldap являются одними и теми же серверами.

Надеюсь, это поможет вам, потому что я не думаю, что официальная документация может быть простой, как моя.

Nux
источник
2

Если вы действительно хотите, чтобы IRCd выполнял аутентификацию, я бы предложил InspIRCd .

Он имеет модуль ldapauth, но вам нужно скомпилировать его самостоятельно

./configure --enable-extras=m_ldap.cpp
make
make install

Пример конфигурации, как используется LDAP, находится в примере файла конфигурации .

Обратите внимание, что этот модуль является экспериментальным. И файл конфигурации (и исходный код) - это вся документация, которую вы получаете для этого модуля.

Изменить: После прочтения небольшого количества кода, я попытаюсь объяснить, как это работает:

  • Сначала он связывается с сервером ldap с учетными данными, указанными в конфигурации.
  • Он ищет пользователя, атрибут которого, указанный вами в конфигурации, равен нику подключающегося пользователя.
  • Он пытается аутентифицировать найденный dn с помощью пароля, который пользователь указал при подключении (через PASS, он может быть настроен в конфигурации сервера на большинстве клиентов).

Если какой-либо шаг не удался, пользователь отключается от сети / сервера. Я надеюсь, что это то, что вам нужно (не прошедшие проверку пользователи не могут подключиться).

Для конфигурации существует концепция баз данных. LDAP используется здесь как база данных. Сначала вы определяете базу данных (сервер LDAP, учетные данные для сервера LDAP ...), а затем используете ее для одной или нескольких целей, например, для аутентификации пользователя, оперной аутентификации ...

Или, проще говоря: значения по умолчанию либо явно неправильные, либо хорошие значения по умолчанию.

Изменить : То, что вы хотите, попадает в область услуг IRC. Хотя InspIRCd может предоставлять базовые услуги, вам нужно написать собственный код, чтобы он работал так, как вы хотите.

Йоханнес Кун
источник
1

Вы не указали, какой IRCd использовать, и фактически запросили его.

Так; Вот пример настройки LDAP для InspIRCd .

Для полного списка IRCds; Вы можете взглянуть на это Сравнение демонов Internet Relay Chat, в которых все, кроме двух, поддерживают Linux.

и, наконец, в этой таблице ; вы можете найти, который на самом деле поддерживает аутентификацию LDAP.

Желаю, чтобы это помогло вам в вашем решении.

Ahmadgeo
источник
в своем ответе я указываю сервер irc, который помечен для поддержки сервера ldap
nux
@nux На самом деле я включил таблицу со многими IRCd-серверами, поддерживающими LDAP, и оставил решение на jrg ... это был вопрос, основанный на мнениях, в конце концов, с просьбой дать советы :)
Ahmadgeo
да я с вами, я выбираю эту версию, потому что она может быть загружена из официального репозитория со всеми его зависимостями
nux