Jak skonfigurować serwer IRC oparty na LDAP?

11

Jak mogę skonfigurować serwer IRC, który jest wspierany przez LDAP?

Obecnie zastanawiam się nad stworzeniem serwera IRC, który jest wspierany przez instancję OpenLDAP lub 389 do uwierzytelnienia użytkownika.

Z którego IRCD powinienem korzystać?

Najlepiej, aby mógł on wyszukiwać grupy LDAP użytkowników i decydować, czy można im przeciwstawić się, wyrazić głos, a nawet zezwolić na dołączenie do kanału.

jrg
źródło
Co masz na myśli przez „uwierzytelnianie”? W którym momencie użytkownik powinien zostać uwierzytelniony?
Johannes Kuhn
@JohannesKuhn Chcę ich uwierzytelnić przy użyciu poświadczeń LDAP, tak jak podczas łączenia - na poziomie serwera. Nie interesuje mnie nickserv ani tym podobne, z tego, co mogę powiedzieć, jest to łatwe.
jrg
Jakich innych szczegółów potrzebujesz?
Johannes Kuhn
Możesz skonfigurować mały serwer IRC za pomocą Inspircd. Plan był następujący. Używaj uwierzytelniania LDAP dla użytkowników, szyfrowania SSL przy użyciu certyfikatów mojej domeny, internetowego interfejsu użytkownika udostępnianego przez NGINX https. Szczegóły na project-xanadu.blogspot.in/2013/06/irc-server.html zobaczyć również blog.labix.org/2010/06/19/...
Totti

Odpowiedzi:

7

Twoje pytanie Potrzebuje wielu wyjaśnień, więc streszczę moją odpowiedź:

Najpierw powinieneś użyć Inspircd v2.0.15, ponieważ jego stabilna, wysoka wydajność i najważniejsze dla twojego użytkowania, oznaczone jako Link wsparcia ldap .

Pierwszy :

Powinieneś edytować plik / etc / hosts:

YouserverIp       hostname.example.com        hostname

Druga :

Zainstaluj OpenLdap:

sudo apt-get install slapd ldap-utils

podczas instalacji wystarczy wpisać hasło administratora ldap.

OpenLdapServer

Po trzecie:

Zainstaluj apache2: apt-get install apache2

Po czwarte:

Zainstaluj phpldapAdmin: phpLDAPadmin (znany również jako PLA) to internetowy klient LDAP. Zapewnia łatwe, wszędzie dostępne, wielojęzyczne administrowanie serwerem LDAP.

sudo apt-get install phpldapadmin (dlatego zainstalowałem apache2, jego narzędzie sieciowe)

Masz teraz dwa kroki:

edytować

 /etc/ldap/ldap.conf

dodaj: edytuj

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

następnie: edytuj /etc/phpldapadmin/config.php

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Po prostu edytuj swój IP i nazwę domeny.

Otwórz przeglądarkę:

yourIp / phpldapadmin

Wprowadź hasło administratora, które wpisujesz podczas instalacji sldap.

Teraz łączysz się z bazą danych LDAP. wybierz domenę ----> po prawej stronie dodaj Ogólną grupę Posix ----> następnie wybierz grupę i Utwórz dziecko Wpis dodaj ogólne konta użytkowników do testowania.

wprowadź opis zdjęcia tutaj

Więcej pomocy w korzystaniu z phpldapadmin tutaj

Po piąte:

Teraz czas skonfigurować inspircd:

edycja: /etc/inspircd/inspircd.conf musisz załadować moduł ldapauth i wskazać serwer 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" >

Powinieneś także dodać nazwę serwera irc i nazwę administratora oraz inną opcję w

/etc/inspircd/inspircd.conf 

Ten samouczek pomoże ci: Samouczek

Ostatni, ubiegły, zeszły :

Uruchom ponownie slapd, inspircd i spróbuj połączyć się z użytkownikami, których stworzyłeś.

Uwaga: zmień odpowiednio do potrzeb, ta konfiguracja zarówno irc, jak i ldap są tymi samymi serwerami.

Mam nadzieję, że to ci pomoże, ponieważ nie sądzę, że istnieje oficjalna dokumentacja, która mogłaby być prosta jak moja.

nux
źródło
2

Jeśli naprawdę chcesz, aby IRCd przeprowadzał uwierzytelnianie, sugerowałbym InspIRCd .

Ma moduł ldapauth, ale musisz go samodzielnie skompilować

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

Przykładowa konfiguracja użycia LDAP znajduje się w przykładowym pliku konfiguracyjnym .

Pamiętaj, że ten moduł jest eksperymentalny. Plik konfiguracyjny (i kod źródłowy) to cała dokumentacja otrzymana dla tego modułu.

Edycja: po przeczytaniu odrobiny kodu postaram się wyjaśnić, jak to działa:

  • Najpierw wiąże się z serwerem ldap przy użyciu poświadczeń określonych w konfiguracji.
  • Wyszukuje użytkownika, w którym atrybut określony w konfiguracji jest równy pseudonimowi łączącego się użytkownika.
  • Próbuje uwierzytelnić znalezione dn za pomocą hasła podanego przez użytkownika podczas łączenia (przez PASS, można skonfigurować w konfiguracji serwera na większości klientów).

Jeśli jakikolwiek krok zakończy się niepowodzeniem, użytkownik zostanie odłączony od sieci / serwera. Mam nadzieję, że tego właśnie potrzebujesz (nieuwierzytelnieni użytkownicy nie mogą się połączyć).

Do konfiguracji istnieje koncepcja baz danych. LDAP jest tutaj używany jak baza danych. Najpierw należy zdefiniować bazę danych (serwer LDAP, poświadczenia dla serwera LDAP ...), a następnie użyć go do jednego lub więcej celów, np. Uwierzytelnienia użytkownika, uwierzytelnienia operacyjnego ...

Innymi słowy: wartości domyślne są ewidentnie złe lub dobre wartości domyślne.

Edycja : To, czego chcesz, należy do dziedziny usług IRC. Chociaż InspIRCd może zapewniać podstawowe usługi, musisz napisać własny kod, aby działał tak, jak chcesz.

Johannes Kuhn
źródło
1

Nie określiłeś, którego IRCd użyć, i faktycznie o to poprosiłeś.

Więc; oto przykład konfiguracji LDAP do InspIRCd .

Aby uzyskać pełną listę IRCds; możesz spojrzeć na to Porównanie demonów Chat Relay Internet, w którym wszystkie oprócz dwóch obsługują Linux.

i wreszcie w tej tabeli ; można znaleźć, który faktycznie obsługuje uwierzytelnianie LDAP.

Życzenie, które pomaga w podjęciu decyzji.

Ahmadgeo
źródło
podaję w odpowiedzi serwer IRC, który jest oflagowany do obsługi backendu ldap
nux
@nux Właściwie dołączyłem tabelę z wieloma serwerami IRCd, które obsługują LDAP i pozostawiłem decyzję jrg .. to było pytanie oparte na opiniach, w końcu proszące o porady :)
Ahmadgeo
tak, jestem z tobą, wybrałem tę wersję, ponieważ można ją pobrać z oficjalnego repozytorium ze wszystkimi jej zależnościami
nux