Slackjeff Wiki

Bits que significam

Ferramentas do usuário

Ferramentas do site


ergod:install

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
ergod:install [2021/10/12 12:44] asadeltaergod:install [2021/10/16 18:48] (atual) – edição externa 127.0.0.1
Linha 155: Linha 155:
     enabled: false     enabled: false
 </code>     </code>    
-    + 
 +===== Criação de certificados ===== 
 + 
 +Hoje é normal se conectar na porta 6697 que indica que a conexão é criptografada nos servidores IRC. Antigamente utilizava a porta 6667 (até hoje em dia se utilizada) é uma porta que não está criptografada. Normalmente utilizamos criptografia na conexão de entrada e saida impedindo bisbilhoteiros de snifar o trafego do usuário. 
 + 
 +Esta opção já está habilitada por padrão e você deve apenas gerar o certificado! O certificado será auto assinado, ou seja o usuário a se conectar terá uma mensagem dizendo que o certificado pode não ser seguro justamento por ser auto assinado por você. 
 + 
 +Esta mensagem é apenas um aviso e se o certificado ser gerado corretamente terá criptografia na conexão. 
 + 
 +Para gerar o certificado rode o comando ergo! 
 + 
 +<code> 
 +./ergo mkcerts 
 +</code> 
 + 
 +Você deve ter uma saida parecida com esta: 
 + 
 +<code> 
 +$ ./ergo mkcerts 
 +2021/09/21 22:07:21 making self-signed certificates 
 +2021/09/21 22:07:21  making cert for :6697 listener 
 +2021/09/21 22:07:21   Certificate created at fullchain.pem : privkey.pem 
 +</code> 
 + 
 +<note> 
 +Caso você queira gerar um certificado com Let's Encrypt você pode utilizar o certbot para isso. É a maneira mais fácil. Certifique-se de ter o certbot instalado na sua distribuição GNU/Linux. Após a instalação o processo é feito da seguinte forma: 
 +Para esta operação você precisa se logar como usuário root para ter acesso a estes arquivos! 
 +</note 
 + 
 +<code> 
 +# certbot certonly --standalone --preferred-challenges http -d exemplo.com.br 
 +Troque o dominio exemplo.com.br pelo seu dominio. 
 +</code> 
 + 
 +O certificado se gerado será encontrado no diretório /etc/letsencrypt/live/exemplo.com.br copie o certificado fullchain.pem e sua chave privada privkey.pem para o diretório do servidor do ergo. Em nosso caso: /home/ergo/server/
 + 
 +<code> 
 +# cp -v /etc/letsencrypt/live/exemplo.com.br/fullchain.pem /home/ergo/server/ 
 +# cp -v etc/letsencrypt/live/example.com/privkey.pem /home/ergo/server/ 
 +</code> 
 + 
 +Ambos certificados precisam ter como dono/grupo o usuário ergo. 
 + 
 +<code> 
 +# chown ergo:ergo /home/ergo/server/*.pem 
 +</code> 
 + 
 +O certificado expira a cada 3 meses. Você pode fazer um script em Shell para a cada 1 mês por exemplo renovar o certificado, não se esqueça que você deve copiar o certificado e chave pública para o diretório do ergo /home/ergo/server/ 
 + 
 +===== Iniciando servidor IRC como serviço com systemd. ===== 
 + 
 +Para as coisas ficarem mais profissionais é interessante criarmos um daemon. Com o systemd é simples, primeiramente vamos criar um script em shell para executar o ergo! Isto deve ser feito no diretório do ergo: /home/ergo/server. Vamos tambem dar a permissão de execução para este script. 
 + 
 +<code> 
 +$ cat << EOF > start.sh 
 +#!/bin/bash 
 +./ergo run 
 +EOF 
 +</code> 
 + 
 +<code> 
 +$ chmod +x start.sh 
 +</code> 
 + 
 +Vamos agora criar o serviço ergo.service. 
 + 
 +<code> 
 +$ cat << EOF > ergo.service 
 +[Unit] 
 +Description=Ergo IRC server 
 +After=network.target 
 +# If you are using MySQL for history storage, comment out the above line 
 +# and uncomment these two instead (you must independently install and configure 
 +# MySQL for your system): 
 +# Wants=mysql.service 
 +# After=network.target mysql.service 
 + 
 +[Service] 
 +Type=simple 
 +User=ergo 
 +WorkingDirectory=/home/ergo/server 
 +ExecStart=/home/ergo/server/start.sh 
 +ExecReload=/bin/kill -HUP $MAINPID 
 +Restart=on-failure 
 +LimitNOFILE=1048576 
 +# Uncomment this for a hidden service: 
 +# PrivateNetwork=true 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 + 
 +EOF 
 +</code> 
 + 
 +Vamos agorar instalar e habilitar o serviço para o systemd conseguir "enxergar". Para isso você deve estar logado como root. 
 + 
 +<code> 
 +# ln -s /home/ergo/server/ergo.service /etc/systemd/system/ergo.service 
 +# systemctl enable ergo 
 +# systemctl start ergo 
 +</code> 
  
ergod/install.1634053462.txt.gz · Última modificação: 2021/10/16 18:48 (edição externa)