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.
Olá czar,
ResponderExcluirMaravilha. 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!
O link ftp não funciona mais!
ResponderExcluirO link até funciona, mas pede uma senha de acesso ao FTP que não foi informada no tutorial.
ResponderExcluir