Rodando um servidor de IRC (ircd)

Neste artigo vou abordar a instalação e configuração de um servidor de IRC, o famoso ircd.

[ Hits: 20.042 ]

Por: Ciro em 27/06/2012


IRC (ircd)



Bom galera, pra começar, vou explicar bem resumidamente o que é IRC.

O Internet Relay Chat (IRC) é um protocolo de comunicação utilizado na Internet.

Antes do sucesso do MSN, Facebook e Orkut, ou seja, entre 1998 até 2004, foi o meio de comunicação - bate papo - mais utilizado, pois todos os provedores de internet tinham um servidor de IRC e o divulgavam.

O software servidor de IRC é chamado de ircd (para GNU/Linux) e wircd (para Windows). Já os clientes, o mais famoso para o Windows é o popular mIRC e, para GNU/Linux vou citar apenas o Xchat, pois é o que eu utilizo.

Neste artigo vou abordar a instalação e configuração apenas do software servidor de IRC - o famoso IRCd.

Estarei utilizando o projeto Taps, que é um derivado do projeto ptlink. Porém, não é o taps puro, pois nós já fizemos diversas alterações no source para usarmos na rede vIRCio - irc.vIRCio.org.

Primeiro, vamos preparar a máquina. Eu utilizo o Debian, e são necessários para rodar serviços do IRC vários pacotes.

Eu sugiro, no mínimo, que instalem estes abaixo, vou utilizar o apt-get do Debian:

# apt-get -y install host whois patch
# apt-get -y install autoconf automake cpp g++ gcc gzip make nano libc6-dev tcl8.4 tcl8.4-dev libpopt-dev m4 ncftp nmap openssl perl perl-modules
# apt-get -y install zip unzip zlib1g zlib1g-dev bzip2


Após instalados os pacotes básicos, crie um usuário, rode como root, mas por razões óbvias, não aconselho. Qualquer software que não necessite/exija de privilégios especiais do root, não deve ser rodado como root.

# adduser ircd
# su ircd
$ cd ~
(vai para pasta home do usuário ircd)
pwd (verificando se está na pasta padrão, geralmente em /home/ircd/)

Fazendo download:

wget http://vircio.org/downloads/taps-vircio-ircd.tar.gz

Descompactando:

tar -zxvf taps-vircio-ircd.tar.gz

Entrando na pasta do source para compilar:

cd taps-vircio-ircd/

Compilando:

./configure --prefix=$HOME/servidor
$ make
$ make install


Pode compilar utilizando todos os comandos em uma única linha:

./configure --prefix=$HOME/servidor && make && make install

Para maiores informações, leia o arquivo INSTALL. Eu criei um resumo com o arquivo INSTALL.vIRCio.

Para poder compilar com suporte para os clientes conectarem ao servidor via ssl, leia o arquivo INSTALL.SSL.

Compilando com suporte via SSL:

./configure --prefix=$HOME/servidor --with-ssl=openssl
$ make
$ make install
$ make pem
(insira os dados requeridos para gerar automaticamente os arquivos com as chaves bla...bla...)

Agora mova os arquivos gerados para pasta padrão:

mv *.pem ~/servidor/etc/

Configurando o ircd:

cd ~/servidor/etc/

vi ircd.conf

Altere apenas a linha:

M:server.vircio.org:192.168.254.1:Rede Social de Bate-Papo

Para:

M:servidor.seu.dominio.com.br:200.200.200.200:Descrição do seu servidor

Faz de conta que "200.200.200.200" é o IP de seu servidor. Salve o arquivo.

vi portas.conf

Apague tudo, basta apenas deixar duas linhas:

P::192.168.254.1::6667
P::192.168.254.1:s:6699

A porta padrão é 6667, 6699 é a porta que eu uso pra SSL, pode ser outra.

A flag "s" antes do 6699 quer dizer que esta porta só aceita conexões via SSL. A flag "S" quer dizer que esta porta só aceita conexões de outros servidores, e a ausência de flag significa que a porta está aberta para os clientes conectarem.

Não vou abordar linkar um servidor em outro, para isso basta editar o arquivo links.conf.

Também não irei abordar sobre ircops (usuários especiais que administram o servidor, podendo desconectar ou banir outros usuários). Para isso, edite o arquivo olines.conf e veja os exemplos como modelo.

Para encriptar a senha, digite: ~/servidor/bin/mkpasswd

Rodando o servidor:

cd ~/servidor/bin/
$ ./ircd


Ou:

/home/ircd/servidor/bin/ircd

Colocando no Crontab:

crontab -e

*/1 * * * * /home/ircd/servidor/bin/ircd >/dev/null 2>&1

Vai checar de 1 em 1 minuto se o servidor está ON e ligará automaticamente caso esteja OFF.

Conectando-se ao servidor, utilize qualquer cliente.

A porta padrão é 6667, por exemplo:

/server 200.200.200.200

Especificando uma porta diferente da padrão:

/server 200.200.200.200 6668

Conectando via porta SSL:

/server 200.200.200.200 +6699

O nosso source é escrito em C, caso tenham interesse em fazer alterações, por favor entrem em contato e compartilhe, o nosso código está aberto, assim como o projeto taps também é de código aberto.

Aproveito para informar a todos que o IRC brasileiro não acabou com a BrasNET... quase todos já devem ter ouvido falar da BRASNet ... foi a maior rede de IRC brasileira!

Atualmente nós desenvolvemos e mantemos a rede vIRCio.org - /server irc.vIRCio.org, ou acessem/visitem através de nosso chat pela web:
Próximo artigo, em breve, abordarei como rodar os serviços de IRC, famoso irc services (nickserv, chanserv, memoserv etc).

   

Páginas do artigo
   1. IRC (ircd)
Outros artigos deste autor

OpenVZ - Instalando no Debian Squeeze AMD64

Dhcp3-server e Bind9 no Debian 5 Lenny Linux

Dhcp3-server e Bind9 no Debian 4 Etch Linux

Montando sua Web Rádio no Linux com DJ Automático

Leitura recomendada

Considerações sobre medição de JITTER em operadoras VOIP no Wireshark

Como atualizar/instalar o X.org em seu Slackware

O papel social do software livre

Instalação do Ambiente .NET (#C) no Slackware 15.0

Instalando o Gentoo GNU/Linux

  
Comentários
[1] Comentário enviado por cirinho em 27/06/2012 - 08:44h

Faltou as fontes ... depois boto as outras mais ...

http://vIRCio.org/

http://starbyte.net/taps/

http://pt.wikipedia.org/wiki/Internet_Relay_Chat

[2] Comentário enviado por boy em 27/06/2012 - 08:58h

HAHAHAHAHA

Não perde tempo de fazer um spam neh cirola.


Nem a VOL vc perdoooa :P
Rei do spam.

KKKKKKKKKKKKK

[3] Comentário enviado por cirinho em 27/06/2012 - 09:01h

Só assim pra vc aparecer né boy-ola (fernando - boy é o nick dele) ... Liberei o source do ircd da vIRCio.org

[4] Comentário enviado por boy em 27/06/2012 - 09:05h

hahahah, qm ve pensa!
estou la mais tempo do que voce!

KKKKKKKKKKKKKKKK

[5] Comentário enviado por cirinho em 27/06/2012 - 09:08h

Vai sonhando ... eu vi na hora que vc entrou!

[08:20:30] <+NickServ> Nick boy identified by weed@24.24.69.69

[6] Comentário enviado por felcocs em 27/06/2012 - 09:25h

Subi aqui esse d, não olhei o fonte... CUIDADO rs hahahahhaha =]
---

Unica coisa foi que tive que setar o path do openssl pra fazer o make pem.


[7] Comentário enviado por cirinho em 27/06/2012 - 09:30h


[6] Comentário enviado por felcocs em 27/06/2012 - 09:25h:

Subi aqui esse d, não olhei o fonte... CUIDADO rs hahahahhaha =]
---

Unica coisa foi que tive que setar o path do openssl pra fazer o make pem.



Eu falei lá os pacotes básicos que precisam instalar antes pra rodar serviços relacionados ao IRC.

Para o ssl é necessário openssl e libssl ... da um search ai pra achar :)

[8] Comentário enviado por corvolino em 30/06/2012 - 03:41h

lol =p

[9] Comentário enviado por cirinho em 30/06/2012 - 05:05h

Grande corvolino eheheh :)

[10] Comentário enviado por blx32 em 05/01/2014 - 12:13h

Pessoal um pouco mais de seriedade, para facilitar o entendimento dos leigos.
Este tuto é uma boa ou não.

[11] Comentário enviado por blx32 em 05/01/2014 - 12:33h

Not found.

[12] Comentário enviado por cirinho em 09/03/2020 - 02:04h

bom dia,

Alguns amigos entraram na minha vIRCio.net e solicitaram atualização desse post.

Atendendo os pedidos, prometo fazer um novo artigo atualizando este, tendo em vista que os links nem existem mais e estão quebrados.

Inicialmente, gostaria de esclarecer que desde 2012, logo após eu publicar este tutorial que nós não utilizamos mais o taps ircd que pode ser baixado em https://github.com/openglx/taps-ircd

Utilizamos desde 2012 até hj (março/2020) um fork do InspIRCd ( https://github.com/inspircd/inspircd ) que estamos abrindo e disponibilizando os códigos com as alterações de nossa equipe e o modelo de configuração padrão em - https://github.com/vIRCio/vIRCio-InspIRCd.

[13] Comentário enviado por cirinho em 09/03/2020 - 02:07h


[12] Comentário enviado por cirinho em 09/03/2020 - 02:04h

bom dia,

Alguns amigos entraram na minha vIRCio.net e solicitaram atualização desse post.

Atendendo os pedidos, prometo fazer um novo artigo atualizando este, tendo em vista que os links nem existem mais e estão quebrados.

Inicialmente, gostaria de esclarecer que desde 2012, logo após eu publicar este tutorial que nós não utilizamos mais o taps ircd que pode ser baixado em https://github.com/openglx/taps-ircd

Utilizamos desde 2012 até hj (março/2020) um fork do InspIRCd ( https://github.com/inspircd/inspircd ) que estamos abrindo e disponibilizando os códigos com as alterações de nossa equipe e o modelo de configuração padrão em - https://github.com/vIRCio/vIRCio-InspIRCd.


Acrescentando que a versão 2.0 do inspircd, segundo os desenvolvedores, se tornará obsoleta (deprecated) em junho de 2020 cuja recomendação é utilizar a versão 3.0.

[14] Comentário enviado por cirinho em 09/03/2020 - 02:13h


[10] Comentário enviado por blx32 em 05/01/2014 - 12:13h

Pessoal um pouco mais de seriedade, para facilitar o entendimento dos leigos.
Este tuto é uma boa ou não.



Bom dia amigo;

Se você puder ler o último comentário que eu fiz, esse tutorial de 2012 encontra-se desatualizado! Desculpe a demora, seu comentário foi em 2014, muito provavelmente ele ainda seria util e viável à época, contudo atualmente não é mais já há um bom tempo, pois os links para donwload não funcionam mais. No comentário acima eu publiquei o repositório no github onde vc pode baixar o taps, bem como o ircd atual da vIRCio que é um fork do inspircd, assim como também o link do próprio InspIRCd onde você poderá acompanhar o desenvolvimento do software.

Assim que eu tiver um tempo preparo um novo tutorial que ficará em definitivo o link para download diretamente do github, contudo caso você queira, poderá baixar, descompactar e ler o arquivo instalacao.txt q tem um mini resumo / guia de como rodar, já com os arquivos padrão de configuração.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts