ergod:install
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
ergod:install [2021/10/12 12:42] – asadelta | ergod:install [2021/10/16 18:48] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 99: | Linha 99: | ||
name: **slackjeff.com.br** | 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: | ||
+ | </ | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | 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: " | ||
+ | </ | ||
+ | |||
+ | 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: " | ||
+ | </ | ||
+ | |||
+ | 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/ | ||
+ | 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: " | ||
+ | </ | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | ===== 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! | ||
+ | |||
+ | < | ||
+ | ./ergo mkcerts | ||
+ | </ | ||
+ | |||
+ | Você deve ter uma saida parecida com esta: | ||
+ | |||
+ | < | ||
+ | $ ./ergo mkcerts | ||
+ | 2021/09/21 22:07:21 making self-signed certificates | ||
+ | 2021/09/21 22: | ||
+ | 2021/09/21 22: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | |||
+ | < | ||
+ | # certbot certonly --standalone --preferred-challenges http -d exemplo.com.br | ||
+ | Troque o dominio exemplo.com.br pelo seu dominio. | ||
+ | </ | ||
+ | |||
+ | O certificado se gerado será encontrado no diretório / | ||
+ | |||
+ | < | ||
+ | # cp -v / | ||
+ | # cp -v etc/ | ||
+ | </ | ||
+ | |||
+ | Ambos certificados precisam ter como dono/grupo o usuário ergo. | ||
+ | |||
+ | < | ||
+ | # chown ergo:ergo / | ||
+ | </ | ||
+ | |||
+ | 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, | ||
+ | |||
+ | ===== 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: / | ||
+ | |||
+ | < | ||
+ | $ cat << EOF > start.sh | ||
+ | #!/bin/bash | ||
+ | ./ergo run | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ chmod +x start.sh | ||
+ | </ | ||
+ | |||
+ | Vamos agora criar o serviço ergo.service. | ||
+ | |||
+ | < | ||
+ | $ 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=/ | ||
+ | ExecStart=/ | ||
+ | ExecReload=/ | ||
+ | Restart=on-failure | ||
+ | LimitNOFILE=1048576 | ||
+ | # Uncomment this for a hidden service: | ||
+ | # PrivateNetwork=true | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | Vamos agorar instalar e habilitar o serviço para o systemd conseguir " | ||
+ | |||
+ | < | ||
+ | # ln -s / | ||
+ | # systemctl enable ergo | ||
+ | # systemctl start ergo | ||
+ | </ | ||
+ | |||
ergod/install.1634053327.txt.gz · Última modificação: 2021/10/16 18:48 (edição externa)