quinta-feira, 7 de novembro de 2013

Configurando um servidor de IRC no seu Raspberry Pi

A pedido do leitor Urik, nesse post explicarei como instalar e configurar um servidor de IRC no seu Raspberry Pi, mas que obviamente vale para qualquer Linux em geral.




Usaremos o ngIRCd que é escrito em C, mantém seu desenvolvimento ativo com última versão estável de 30 de outubro de 2013, suporta SSL, IPv6 e é fácil de se configurar.

Será preciso baixar o código fonte e compilar pois o mesmo não existe nos repositórios padrões.



Instalando


Baixe a última versão do ngIRCd e descomprima.

wget ftp://ftp.berlios.de/pub/ngircd/ngircd-latest.tar.gz
tar -xf ngircd-latest.tar.gz

Rode o configure e compile:

./configure
make

Isso irá compilar o ngIRCd sem suporte a IPv6, SSL, etc., mas caso queira ativar instale antes a libssl-dev para o SSL:

apt-get install libssl-dev

E adicione as referentes linhas ao rodar o configure.

./configure --with-openssl --enable-ipv6

A compilação irá demorar cerca de 3 minutos.

Após terminar, se não houver erro algum, entre como root e instale.

make install

Após instalar caso já queira iniciar o ircd para testar, basta digitar ngircd como root que por padrão o próprio ngIRCd diminuirá seus privilégios e mudará para usuário nobody.

Configurando 

 

Abra o arquivo /usr/local/etc/ngircd.conf

Aqui temos o arquivo de exemplo padrão do ngIRCd:



No arquivo os comentários começam também com ; além do #, remova de todos os parâmetros que for usar.

Vamos nos focar no principal, começando na seção [Global]:

Name = everpi.tsar.in
Coloque o nome do seu servidor.

AdminInfo1 = Description
AdminInfo2 = Location
AdminEMail = admin@irc.server
Informações sobre o servidor e administrador que aparecerão quando alguem der o comando /admin , não é obrigatório , coloca-se descrição, local e email do administrador.

Info = Raspberry Pi Server
Informação sobre o seu servidor que aparecerá nos comandos /whois e /links.

Listen = 127.0.0.1,192.168.0.1
Se essa linha continuar comentada, o servidor irá declarar como padrão 0.0.0.0 que significa ouvir em todos IPs das interfaces que você tenha, mas caso queira declarar somente um ou certos IPs, basta separá-los por vírgulas.

MotdFile = /usr/local/etc/ngircd.motd
MotdPhrase = "Hello world!"
MOTD é aquela grande mensagem que o servidor te envia quando conectado. Existem duas formas de usá-lo, criando um arquivo especificando o caminho do mesmo ou escrevendo sua mensagem diretamente em MotdPhrase(mas limitado a 256 caracteres nesse caso).

Password = abc
Senha global do servidor. Por padrão vem comentado e se declarado a senha será requisitada a todos os usuários que tentarem entrar no servidor.

Ports = 6667, 6668, 6669
Portas que você quer que seu servidor aceite requisições, por padrão a porta é somente 6667.

ServerGID = 65534
ServerUID = 65534
Group User Id e User Id que seu servidor irá rodar caso queira criar um usuário e grupo específicos pro ngIRCd.


Seção [Limits]:

MaxConnections = 0
MaxConnectionsIP = 5
Máximo de conexões que seu servidor irá aceitar e máximo de conexões por IP( pode ser interessante colocar um limite para espertinhos ).

Seção [Options]:

CloakHost = everpi.tsar.in
Altere esse parâmetro caso não queira que os hostnames/ips dos usuários apareçam.

Seção [Operator]:

Name = TheOper
Password = ThePwd
Nome e senha do operador de irc, caso queira criar mais de um operador, será necessário criar outra seção de mesmo nome.

Seção [Channel]:

Name = #TheName
Topic = a great topic
Nessa seção é possível criar canais pré-definidos, os parâmetros básicos são nome do canal e tópico. Caso queira criar mais de um canal será necessário outra seção de mesmo nome.

Configurando SSL


Caso tenha optado por usar SSL, crie um diretório no /usr/local/etc chamado ngircd onde colocaremos nosso certificado/chave, entre no diretório e de o seguinte comando:

openssl req -newkey rsa:4096 -sha512 -x509 -keyout key.pem -out cert.pem -nodes

No arquivo de configuração, na seção [SSL] (remova o ; da linha) alteramos:

CertFile = /usr/local/etc/ngircd/cert.pem
KeyFile = /usr/local/etc/ngircd/key.pem

Separamos nossa porta ssl:

Ports = 6697

Se tudo estiver certo agora é só digitar ngircd para inicializar o mesmo.

Conclusão

 

Existem muitos outros parâmetros que não descrevemos para não complicar, pois vão além do básico.
Caso algo não tenha funcionado bem, use o comando ngircd -t que o mesmo testará o arquivo de configuração e mostrará caso tenha algum erro.

Alguma dúvida? Quer enviar uma dica para um próximo post? Deixe nos comentários.

Um comentário:

  1. Olá czar,

    Maravilha. Parabéns pelo tópico e obrigado pelo retorno.
    Estive envolvido em alguns projetos grandes e só agora consegui retomar novamente meus testes com meus RPI.

    Abraço!

    ResponderExcluir