====== Quassel IRC ======
Esse é um cliente de IRC com suporte em múltiplas plataformas (linux, windows e macos), baseado no [[https://www.qt.io/|framework Qt]]. Mais informações sobre ele podem ser encontradas na [[https://bugs.quassel-irc.org/projects/quassel-irc/wiki|wiki official]] desse aplicativo.
Aqui veremos alguns usos básicos da versão monolítica, isto é, um cliente que permite a conexão a partir de um único computador. Existe também a versão ''core'' que permite permanecer conectado a servidores IRC e receber mensagens inclusive se você estiver "desconectado" de seu cliente.
===== Instalação =====
Sempre prefira usar o pacote de sua própria distribuição linux, em sistema baseados em debian o nome do pacote é simplesmente ''quassel'' e para sistemas baseados em archlinux o pacote se chama ''quassel-monolithic''. Todas as versões que o projeto disponibiliza para download podem ser encontradas [[https://quassel-irc.org/downloads|aqui]].
===== Conectando-se a um servidor =====
Essa versão irá disponibilizar a conexão ao [[https://libera.chat/|Libera.chat]] caso você siga o assistente que se inica automaticamente ao abrir o aplicativo pela primeira vez, se preferir clique em próximo em todas as etapas e já inicia conectado a esse servidor. Senão, cancele esse assistente e vamos às nossas configurações. Mais adiante voltarei ao servidor do Libera.chat para que possamos usar o mesmo pela rede Tor.
Usando como exemplo o servidor IRC do Slackjeff, como mostrado no tópico de [[howto:comandosirc-unreal-completo|comandos do IRC]]. Precisamos seguir os seguintes passos:
- Entre no menu ''__A__rquivo → __R__edes → Configurar __r__edes'';
- clique no primeiro botão Adicionar;
- entre com as informações de servidor, ''irc.slackjeff.com.br'';
- marque ou deixe marcada a caixa ''Use encypted conection'';
- a porta estará preenchida com o número ''6697'';
- confirme essa configuração;
- de volta a caixa ''Configurar Redes'' verifique se a ''Identidade padrão'' está selecionada, caso contrário clique no botão ao lado para configurar uma nova identidade, nesse ponto apenas preencha seu nick e nome conforme você queira que as demais pessoas no IRC vejam tais informações;
- confirme clicando em ''Ok''.
Pronto, agora você já tem acesso a pelo meno um servidor no IRC, sugiro explorar os tópicos de comandos nesta mesma wiki.
===== Conectando-se a um servidor, via tor =====
Após a configuração acima é possível acessar a mesma janela de configurações ''Configurar Redes'' e adicionar mais servidores no subgrupo ''Detalhes da rede''. Vamos adicionar um servidor que se encontra na rede tor, portanto para que possa ser usado o serviço tor deve estar habilitado em seu sistema operacional.
Caso esteja usando um sistema baseado em debian basta instalar o pacote ''tor'' que automaticamente esse serviço será habilitado e se inicirá, após instalação verifique se o serviço está funcionando com o comando ''systemctl status tor'', você precisará de privilégios de superusuário para isso. Veja também aqui na wiki [[redes:tor|mais a respeito]] da instalação desse serviço e do navegador Tor
Lembrando que para ter para o acesso via tor seu nick deve estar registrado no servidor, para isso a conexão via método acima é necessária para proceder com o registro do nick, veja seção **Operações com o próprio Nick** no tópico [[howto:comandosirc-unreal-completo|O que é IRC]] desta mesma wiki. Feito isso vamos às configurações, no Quassel entre em ''Configurar redes'' novamente:
- Clique no segundo botão Adicionar;
- entre com o endereço do servidor, ''slackj2il6nspqhw25xxjkzblgelnrf3vxe3b7ctbzie7xpzlvxs3gad.onion'';
- a porta deixe na ''6697'';
- deixe marcada a caixa ''use encrypted connection'';
- não marque a caixa ''verify connection security'';
- clique na guia ''Avançado'' e marque a caixa ''Usar proxy'';
- selecione o tipo de proxy como ''SOCKS 5'' entre com o servidor ''localhost'' e a porta ''9050'';
- Confirme a configuração clicando em ''Ok''.
O passo de configuração de proxy se refere ao servidor tor que ligamos anteriormente, a porta ''9050'' é a porta usada por padrão nesse tipo de serviço. Agora vamos configurar a autenticação nesse servidor.
==== Autenticação SASL com senha (PLAIN) ====
Sugiro ler também o tópico [[howto:comandosirc-unreal-completo|O que é IRC]], na seção a respeito desse tipo de autenticação. De volta a janela ''Configurar redes'' vamos clicar na guia ''Autoidentificar'' e marcar a caixa ''Usar autenticação SASL'' e preencha seu o nick registrado e sua senha nos campos ''Conta'' e ''Senha'' respectivamente.
==== Autenticação SASL com certificado (EXTERNAL) ====
Antes de usar esse método, precisamos ter os arquivos ''.pem'' de chave e certificado SSL em nosso computador, caso não tenha deve proceder com a criação dos mesmos (veja seção bônus abaixo). O ''fingerprint'' do certificado também deve estar adicionado do servidor IRC, veja a seção **Utilizando Certificado** no tópico [[howto:comandosirc-unreal-completo|O que é IRC]].
Não temos explicitamente a opção de ''SASL EXTERNAL'' no Quassel, porém ele tem o suporte para ela conforme adicionamos mais informações à nossa identidade. As informações podem ser incluídas via configuração da identidade, acessada via menu ''__C__onfigurações → __C__onfigurar Quassel'', lá acessamos no menu esquerdo a opção ''Identidades''.
Dentro das configurações de identidades podemos escolher a guia ''Avançado'' e selecionar os arquivos de Chave SSL e Certificado SSL clicando nos botões correspondentes.
Pronto, não precisamos mais da autenticação com senha, o próprio Quassel impede a edição desses campos como no passo acima caso o certificado esteja configurado na identidade, basta marcarmos a caixa de ''Usar autenticação SASL'' como na subseção anterior.
==== Bônus, criação de chave e certificado SSL ====
Supondo que ainda não temos a chave e o certificado adicionados a nossa identida do Quassel, podemos criá-los usando o ''openssl'', se não tiver instalado nos sistemas baseados em debian o pacote tem o menso nome como referido anteriormente.
Para criação da chave que assinará o certificado usamos no terminal
openssl genrsa 2048 > ca-key.pem
agora temos o arquivo ''ca-key.pem'' que pode ser usado como a chave no Quassel e para o certificado, usamos
openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
Agora temos também o arquiv ''ca-cert.pem'' que é nosso certificado assinado. Para obter o fingerprint que será adicionado no //nickserv// do IRC copiaremos na área de transferência a saída do comando
openssl x509 -in ca-cert.pem -noout -fingerprint -sha512 | awk -F= '{gsub(":",""); print tolower ($2)}'
Divirta-se conversando no IRC com o anonimato que a rede tor proporciona.