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).