Essa é uma revisão anterior do documento!
Tabela de conteúdos
IRC ErgoD
Instalação
Por padrão realizamos o processo de segurança criando um usuário para ter globalizar todo serviço.
# useradd -m ergo -s /bin/bash
Logamos com o usuário e criamos o diretório $HOME/server
# su ergo # mkdir -v server
Baixamos a última release em: https://github.com/ergochat/ergo/releases/. Descompactamos e movemos todo o conteúdo do diretório récem descompactado para o diretório server/
# wget https://github.com/ergochat/ergo/releases/download/v2.7.0/ergo-2.7.0-linux-x86_64.tar.gz # tar -xvf ergo-2.7.0-linux-x86_64.tar.gz # mv -v ergo-2.7.0-linux-x86_64/ server/ # rm *.tar.gz
Configuração
$ cd ~/server
Primeiramente faça a verificação se você esta no diretório aonde descompactou os arquivos, o diretório deve ser: /home/ergo/server/
$ pwd /home/ergo/server
Tambem é altamente recomendado fazer a verificação se você ainda está com usuário ergo.Se retornar ergo está tudo ok e você pode continuar. Se não entre com o usuário ergo novamente.
$ echo $USER ergo
Começamos nossa configuração do ergo renomeando dois arquivos que precisam estar com outro nome. A documentação oficial do ergo pede isso, então vamos seguir fielmente. Faça uma listagem no diretório e veja se você está com estes arquivos:
$ ls CHANGELOG.md default.yaml docs ergo ergo.motd languages README traditional.yaml
Caso você não esteja vendo estes arquivos você deve voltar ao diretório servidor que criamos.
Os arquivos que devemos mover são: default.yaml e ergo.motd. O arquivo default.yaml é a configuração do servidor IRC em si e o ergo.motd é a mensagem de boas vindas que você pode setar de acordo com sua necessidade.
mv -v default.yaml ircd.yaml mv -v ergo.motd ircd.motd
Abra o arquivo recém renomeado ircd.yaml com seu editor de texto favorito e vamos começar alterando o nome do servidor para o seu dominio.
Busque pelo seguinte bloco:
# network configuration network: # name of the network name: **ErgoTest**
Altere a linha: name: ErgoTest pelo nome do seu servidor! Não podem haver espaços no nome do servidor, use traços ou underlines.
# network configuration network: # name of the network name: **Servidor-do-Jeffe**
Vamos agora alterar o dominio de exemplo para o seu dominio. Procure pela linha:
# server configuration server: # server name name: **ergo.test**
Substitua a linha name: ergo.test pelo seu dominio. Caso você não tenha um dominio você pode adicionar o endereço IP do servidor.
# server configuration server: # server name name: **slackjeff.com.br**
Segurança
O primeiro passo é limitar a quantidade de conexões por IP. Limite a um número baixo variando entre 2 e 4 conexões simultâneas. Isso vai ajudar a proteger em casao de ataque DoS.
# maximum concurrent connections per IP/CIDR max-concurrent-connections: **2**
O IRC mostra o ip de usuários na rede, você pode ver o mesmo com o comando /whois Usuario por exemplo, ou ao entrar e sair. Para dar mais privacidade aos usuários o ergo define por padrão o Cloaking. Ou seja ao invés de mostrar o ip do usuário mostrará algo “falso” no lugar ficando: exemplo@12349198897NOMErede.
Para alterar o nome de Cloaking procure pela linha netname e altere para o nome que quiser.
# fake TLD at the end of the hostname, e.g., pwbs2ui4377257x8.irc # you may want to use your network name here netname: "irc"
Eu alterei para slackjeffHONOR
# fake TLD at the end of the hostname, e.g., pwbs2ui4377257x8.irc # you may want to use your network name here netname: "slackjeffHONOR"
Vamos agora definir a senha do Operador (OPER). Feche e salve o documento com editor de texto e execute o comando ergo.
./ergo genpasswd
Vai ser gerado uma hash por exemplo: $2a$04$c4nA4uEf2NzmaJJEIan0HO4sgRRXhFJ/3ichSJ4bRrDoXxlQfMS4y Esta hash você precisa guardar para alterar no documento a seguir.
Feito o processo localize a linha # ircd operators e troca a linha password O hash foi gerado anteriormente com o comando
./ergo genpasswd. password: "$2a$04$0123456789abcdef0123456789abcdef0123456789abcdef01234"
Por padrão as mensagens em geral do IRC não são gravadas em arquivos mas ficam disponiveis (de uma forma não persistente) na memória RAM do servidor/máquina até o reboot. Esta opção vem habilitada, por questões de privacidade é interessante desabilitar.
Afinal as mensagems se o usuário desejar devem ser armazenadas no computador do mesmo e não no servidor. Altere a linha: enabled: true para: enabled: false
history: # should we store messages for later playback? # by default, messages are stored in RAM only; they do not persist # across server restarts. however, you may want to understand how message # history interacts with the GDPR and/or any data privacy laws that apply # in your country and the countries of your users. enabled: false