Como configuro um servidor IRC suportado por LDAP?

11

Como posso configurar um servidor IRC suportado pelo LDAP?

No momento, estou pensando em criar um servidor de IRC suportado por uma instância OpenLDAP ou 389 para autenticação do usuário.

Qual IRCD devo usar?

De preferência, ele deve procurar os grupos LDAP dos usuários e decidir se eles podem ser ativados, expressados ​​ou mesmo autorizados a ingressar em um canal.

jrg
fonte
O que você quer dizer com "autenticação"? Em que momento o usuário deve ser autenticado?
Johannes Kuhn
@JohannesKuhn Quero que eles se autentiquem com suas credenciais LDAP como quando se conectam - no nível do servidor. Eu não estou tão preocupado com o nickserv ou algo assim, é fácil o suficiente para fazer o que posso dizer.
Jrg
Que outros detalhes você precisa?
Johannes Kuhn
Você pode configurar um pequeno servidor de IRC usando o Inspircd. O plano era o seguinte. Use autenticação LDAP para usuários, criptografia SSL usando meus certificados de domínio, uma interface de usuário baseada na Web proxy por meio de NGINX https. Detalhes em project-xanadu.blogspot.in/2013/06/irc-server.html Veja também blog.labix.org/2010/06/19/...
totti

Respostas:

7

Você pergunta Precisa de muitas explicações, portanto, resumirei minha resposta:

Primeiro, você deve usar o Inspircd v2.0.15 porque é estável, de alto desempenho e o mais importante para o seu uso, sinalizado como Link de suporte ldap .

Primeiro :

Você deve editar seu arquivo / etc / hosts:

YouserverIp       hostname.example.com        hostname

Segundo:

Instale o OpenLdap:

sudo apt-get install slapd ldap-utils

durante a instalação, digite sua senha de administrador ldap.

OpenLdapServer

Terceiro:

Instale o apache2: apt-get install apache2

Quarto:

Instale o phpldapAdmin: phpLDAPadmin (também conhecido como PLA) é um cliente LDAP baseado na Web. Ele fornece administração multilíngue fácil, acessível em qualquer lugar, para o seu servidor LDAP.

sudo apt-get install phpldapadmin (foi por isso que instalei o apache2, sua ferramenta da web)

Agora você tem duas etapas:

editar

 /etc/ldap/ldap.conf

adicionar: editar

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

então: edite /etc/phpldapadmin/config.php

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Apenas edite seu IP e nome de domínio.

Abra o seu navegador:

yourIp / phpldapadmin

Digite sua senha de administrador que você digita ao instalar o sldap.

Agora você se conecta ao banco de dados ldap. selecione domínio ----> à direita, adicione Grupo Posix genérico ----> selecione grupo e Crie uma entrada filha e adicione Contas de usuário genérico para teste.

insira a descrição da imagem aqui

Mais ajuda para usar o phpldapadmin Aqui

Quinto:

Agora é hora de configurar o inspircd:

edit: /etc/inspircd/inspircd.conf você precisa carregar o módulo ldapauth e apontar para o servidor 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" >

Você também deve adicionar o nome do servidor irc e o nome do administrador e outra opção em

/etc/inspircd/inspircd.conf 

Este tutorial ajudaria você: Tutorial

Último :

Reinicie o slapd, inspircd e tente se conectar com os usuários que você criou.

Observe as alterações conforme as suas necessidades; essa configuração, tanto irc quanto ldap, são os mesmos servidores.

Espero que ajude você, porque não acho que exista uma documentação oficial que possa ser simples como a minha.

nux
fonte
2

Se você realmente deseja que o IRCd faça a autenticação, sugiro o InspIRCd .

Ele possui um módulo ldapauth, mas você precisa compilá-lo com

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

Um exemplo de configuração de como o LDAP é usado está em um arquivo de configuração de exemplo .

Observe que este módulo é experimental. E o arquivo de configuração (e o código fonte) é toda a documentação que você obtém para esse módulo.

Edit: Depois de ler um pouco do código, tentarei explicar como isso funciona:

  • Primeiro, ele se liga ao servidor ldap com as credenciais especificadas na configuração.
  • Ele procura por um usuário em que o atributo que você especificou na configuração é igual ao apelido do usuário que está se conectando.
  • Ele tenta autenticar o dn encontrado com a senha que o usuário forneceu ao conectar (via PASS, pode ser configurado na configuração do servidor na maioria dos clientes).

Se alguma etapa falhar, o usuário será desconectado da rede / servidor. Espero que seja isso que você precisa (usuários não autenticados não podem se conectar).

Para a configuração, existe um conceito de bancos de dados. O LDAP é usado aqui como um banco de dados. Você primeiro define o banco de dados (servidor LDAP, credenciais para o servidor LDAP ...) e o utiliza posteriormente para uma ou mais finalidades, por exemplo, autenticação de usuário, autenticação de operação ...

Ou, simplificando: os valores padrão estão obviamente errados ou são bons padrões.

Edit : O que você deseja se enquadra no domínio dos serviços de IRC. Embora o InspIRCd possa fornecer serviços básicos, você precisa escrever seu próprio código para fazê-lo funcionar como desejar.

Johannes Kuhn
fonte
1

Você não especificou qual IRCd usar e realmente solicitou.

Então; Aqui está um exemplo de configuração do LDAP para o InspIRCd .

Para uma lista completa dos IRCds; você pode dar uma olhada nesta comparação de daemons do Internet Relay Chat nos quais todos, exceto dois, suportam Linux.

e finalmente nesta tabela ; você pode descobrir o que realmente suporta a autenticação LDAP.

Desejo que o ajude na sua decisão.

Ahmadgeo
fonte
i afirmar na minha resposta um servidor de IRC que está sinalizado para backend suporte ldap
nux
@nux Na verdade, eu incluía uma mesa com muitos servidores IRCd que suporte LDAP e deixou a decisão de jrg .. que era uma pergunta baseada opinião pedir conselhos depois de tudo :)
Ahmadgeo
yup estou com você, eu escolhi essa versão, porque ele pode ser baixado a partir de um repositório oficial com todas as suas dependências
nux