Wie richte ich einen LDAP-gestützten IRC-Server ein?

11

Wie kann ich einen IRC-Server konfigurieren, der von LDAP unterstützt wird?

Im Moment möchte ich einen IRC-Server erstellen, der von einer OpenLDAP- oder 389-Instanz zur Benutzerauthentifizierung unterstützt wird.

Welche IRCD soll ich verwenden?

Vorzugsweise sollte es in der Lage sein, die LDAP-Gruppen der Benutzer nachzuschlagen und zu entscheiden, ob sie abgelehnt, geäußert oder überhaupt einem Kanal beitreten dürfen.

jrg
quelle
Was meinst du mit "Authentifizierung"? An welchem ​​Punkt sollte sich der Benutzer authentifizieren?
Johannes Kuhn
@JohannesKuhn Ich möchte, dass sie sich mit ihren LDAP-Anmeldeinformationen authentifizieren, wenn sie eine Verbindung herstellen - Serverebene. Ich bin nicht so besorgt über Nickserv oder ähnliches, das ist einfach genug, um das zu tun, was ich sagen kann.
jrg
Welche weiteren Details benötigen Sie?
Johannes Kuhn
Sie können mit Inspircd einen kleinen IRC-Server einrichten. Der Plan war wie folgt. Verwenden Sie die LDAP-Authentifizierung für Benutzer, die SSL-Verschlüsselung mithilfe meiner Domain-Zertifikate und eine webbasierte Benutzeroberfläche, die über NGINX https übertragen wird. Details unter project-xanadu.blogspot.in/2013/06/irc-server.html Siehe auch blog.labix.org/2010/06/19/...
totti

Antworten:

7

Ihre Frage braucht viele Erklärungen, deshalb werde ich meine Antwort zusammenfassen:

Zuerst sollten Sie Inspircd v2.0.15 verwenden, da es stabil, leistungsstark und für Ihre Verwendung am wichtigsten ist und als ldap support Link gekennzeichnet ist .

Zuerst :

Sie sollten Ihre Datei / etc / hosts bearbeiten:

YouserverIp       hostname.example.com        hostname

Zweite :

Installieren Sie OpenLdap:

sudo apt-get install slapd ldap-utils

Geben Sie während der Installation einfach Ihr ldap-Administratorkennwort ein.

OpenLdapServer

Dritte :

Installieren Sie apache2: apt-get install apache2

Viertens:

Installieren Sie phpldapAdmin: phpLDAPadmin (auch als PLA bezeichnet) ist ein webbasierter LDAP-Client. Es bietet eine einfache, überall zugängliche, mehrsprachige Verwaltung für Ihren LDAP-Server.

sudo apt-get install phpldapadmin (Deshalb habe ich Apache2, sein Web-Tool, installiert.)

Sie haben jetzt zwei Schritte:

bearbeiten

 /etc/ldap/ldap.conf

hinzufügen: bearbeiten

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

dann: bearbeiten /etc/phpldapadmin/config.php

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Bearbeiten Sie einfach Ihre IP-Adresse und Ihren Domain-Namen.

Öffnen Sie Ihren Browser:

yourIp / phpldapadmin

Geben Sie Ihr Administratorkennwort ein, das Sie bei der Installation von sldap eingeben.

Jetzt stellen Sie eine Verbindung zur LDAP-Datenbank her. Wählen Sie Domäne ----> rechts Generische Posix-Gruppe hinzufügen ----> Wählen Sie dann Gruppe aus und erstellen Sie einen untergeordneten Eintrag. Fügen Sie generische Benutzerkonten zum Testen hinzu.

Geben Sie hier die Bildbeschreibung ein

Weitere Hilfe bei der Verwendung von phpldapadmin Hier

Fünftens:

Jetzt ist es Zeit, inspircd zu konfigurieren:

Bearbeiten: /etc/inspircd/inspircd.conf Sie müssen das ldapauth-Modul laden und auf Ihren ldap-Server zeigen.

<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" >

Sie sollten auch Ihren IRC-Servernamen und den Administratornamen sowie eine andere Option hinzufügen

/etc/inspircd/inspircd.conf 

Dieses Tutorial würde Ihnen helfen: Tutorial

Zuletzt :

Starten Sie slapd, inspircd neu und versuchen Sie, eine Verbindung zu den von Ihnen erstellten Benutzern herzustellen.

Beachten Sie die Änderung entsprechend Ihren Anforderungen. Diese Konfiguration, sowohl irc als auch ldap, sind dieselben Server.

Ich hoffe, es hilft Ihnen, weil ich nicht glaube, dass es eine offizielle Dokumentation gibt, die so einfach sein könnte wie meine.

nux
quelle
2

Wenn Sie wirklich möchten, dass die IRCd die Authentifizierung durchführt, würde ich InspIRCd vorschlagen .

Es hat ein ldapauth-Modul, aber Sie müssen es selbst kompilieren

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

Eine Beispielkonfiguration für die Verwendung von LDAP befindet sich in einer Beispielkonfigurationsdatei .

Beachten Sie, dass dieses Modul experimentell ist. Die Konfigurationsdatei (und der Quellcode) enthalten die gesamte Dokumentation, die Sie für dieses Modul erhalten.

Bearbeiten: Nachdem ich einen Teil des Codes gelesen habe, werde ich versuchen zu erklären, wie das funktioniert:

  • Es wird zunächst mit den in der Konfiguration angegebenen Anmeldeinformationen an den LDAP-Server gebunden.
  • Es wird nach einem Benutzer gesucht, bei dem das in der Konfiguration angegebene Attribut dem Nick des verbindenden Benutzers entspricht.
  • Es wird versucht, den gefundenen DNS mit dem Kennwort zu authentifizieren, das der Benutzer beim Verbinden angegeben hat (über PASS, kann auf den meisten Clients in der Serverkonfiguration konfiguriert werden).

Wenn ein Schritt fehlschlägt, wird der Benutzer vom Netzwerk / Server getrennt. Ich hoffe, das ist es, was Sie brauchen (nicht authentifizierte Benutzer können keine Verbindung herstellen).

Für die Konfiguration gibt es ein Konzept von Datenbanken. LDAP wird hier wie eine Datenbank verwendet. Sie definieren zuerst die Datenbank (LDAP-Server, Anmeldeinformationen für den LDAP-Server ...) und verwenden sie später für einen oder mehrere Zwecke, z. B. Benutzerauthentifizierung, Betriebsauthentifizierung ...

Oder einfach ausgedrückt: Die Standardwerte sind entweder offensichtlich falsch oder gute Standardeinstellungen.

Bearbeiten : Was Sie möchten, fällt in den Bereich der IRC-Dienste. Obwohl InspIRCd grundlegende Dienste bereitstellen kann, müssen Sie eigenen Code schreiben, damit er wie gewünscht funktioniert.

Johannes Kuhn
quelle
1

Sie haben nicht angegeben, welche IRCd verwendet werden soll, und tatsächlich danach gefragt.

So; Hier ist ein Beispiel für die LDAP-Konfiguration für InspIRCd .

Für eine vollständige Liste der IRCds; Vielleicht sehen Sie sich diesen Vergleich der Internet Relay Chat-Daemons an in denen alle - außer zwei - Linux unterstützen.

und schließlich in dieser Tabelle ; Sie können herausfinden, welche die LDAP-Authentifizierung tatsächlich unterstützt.

Wünschte, das hilft dir bei deiner Entscheidung.

Ahmadgeo
quelle
Ich erkläre in meiner Antwort einen IRC - Server, die Unterstützung ldap Backend gekennzeichnet ist
Nux
@nux Eigentlich habe ich eine Tabelle mit vielen IRCd-Servern eingefügt, die LDAP unterstützen, und die Entscheidung jrg überlassen. Das war doch eine meinungsbasierte Frage, die um
Rat
yup bin bei dir, ich wähle diese Version, weil es von einem offiziellen Repository mit all seinen Abhängigkeiten heruntergeladen werden kann
nux