Merge pull request from unrealircd/unreal60_dev

Merge update
This commit is contained in:
angryce 2025-04-15 22:53:17 +02:00 committed by GitHub
commit 9ce84fd98f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 125 additions and 99 deletions

View file

@ -5,7 +5,23 @@ This is the git version (development version) for future UnrealIRCd 6.2.0.
This is work in progress and may not always be a stable version.
### Enhancements:
* TODO
* [AntiMixedUTF8](https://www.unrealircd.org/docs/Set_block#set::antimixedutf8):
This is now aware of a lot more unicode blocks. This will cause a higher
score for some regular messages, so be aware if you have the score set very
low (eg 2 or 3). On the plus-side, spam should now get an even higher
score. Try a score between 5 and 10 and see if that works.
* [Spamfilter](https://www.unrealircd.org/docs/Spamfilter) and text analysis:
* spamfilter::rule now supports `unicode_count('utf8 block name')`, like:
```
rule "unicode_count('Emoticons')>2";
```
* spamfilter::input-conversion now supports `deconfused` which will
"deconfuse" text like "Ŧ𝕙ї𝘀 𝜄ŝ ạ 𝑡êśȶ" to "This is a test" so it can
easily be matched on with simple matching or a regex.
This will never be 100% perfect but can be helpful.
* A new `SPAMINFO <text>` command which gives feedback on how the line
scores for AntiMixedUTF8, how the text shows up "deconfused", which
unicode blocks are used, etc.
### Changes:
* TODO

View file

@ -1,9 +1,14 @@
/* Arquivo de configuração para o UnrealIRCd 6
* OBSERVAÇÃO: Este arquivo utiliza a tradução Português do Brasil (pt-br).
*
* Apenas copie este arquivo para seu diretório conf/ e renomeie-o para
* 'unrealircd.conf' e siga este arquivo de configuração linha a linha (e altere-o!)
* Apenas copie este arquivo para seu diretório conf/ e renomeie-o para 'unrealircd.conf'
*
* Se você estiver com pressa, pode CTRL+F (localizar) pelo termo ALTERAR ISTO
* Os pontos que obrigatoriamente devem ser alterados estão indicados por essas duas palavras.
* No entanto, recomendamos que você revise este arquivo linha por linha
* e o altere conforme necessário, para que possa ver todos os pontos básicos e seus valores.
*
* ANTES DE PROSSEGUIR:
* Importante: Todas as linhas, exceto { e } terminam com ;
* Isto é muito importante, visto que se você esquecer um ; em algum lugar,
* a checagem do arquivo de configuração irá criticar e o arquivo não será processado!
@ -17,7 +22,6 @@
*
* Questões Frequentes:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Este é um comentário, todo o texto aqui será ignorado (comentário de tipo #1) */
@ -57,18 +61,19 @@ loadmodule "cloak_sha256";
/* Ou carrega o antigo módulo de clocking em MD5 que veio do UnrealIRCd 3.2/4/5: */
//loadmodule "cloak_md5";
// ALTERAR ISTO (o 'name' e 'info')
/* Este é o bloco me { } que basicamente diz quem somos.
* Ele define o nome do nosso servidor, algumas linhas informativas e um "sid" único.
* O id do servidor (sid) precisa iniciar com um dígito numérico seguido por dois dígitos numéricos
* ou alfanuméricos de A à Z. O sid precisa ser único para a sua rede de IRC (cada servidor
* deve ter seu próprio sid).
* deve ter seu próprio sid). É comum utilizar 001 para seu primeiro servidor.
*/
me {
name "irc.exemplo.org";
info "Servidor ExemploNET";
sid "001";
}
// ALTERAR ISTO:
/* O bloco admin { } define quem os usuário verão quando eles digitarem /ADMIN.
* Normalmente contém infomações de como eles podem contatar o administrador.
*/
@ -131,12 +136,12 @@ allow {
* Requer que usuários neste IP conectem por uma senha. Se a senha
* estiver correta, então permite 20 conexões simultâneas deste IP.
*/
allow {
mask 192.0.2.1;
class clients;
password "alguma_senha_secreta";
maxperip 20;
}
//allow {
// mask 192.0.2.1;
// class clients;
// password "alguma_senha_secreta";
// maxperip 20;
//}
/* Blocos oper definem os Operadores de IRC.
* Operadores de IRC são pessoas com "privilégios extras" comparado a outros,
@ -151,7 +156,7 @@ allow {
*/
/* Aqui está um exemplo de um bloco oper para o 'bobsmith'
* Você DEVE alterar isto!!
* VOCÊ DEVE ALTERAR ISTO!! (o nome do operador e a senha)
*/
oper bobsmith {
class opers;
@ -225,43 +230,43 @@ listen {
* Blocos link permitem que você vincule múltiplos servidores uns aos outros para formar uma rede.
* Veja https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.exemplo.org
{
incoming {
mask *@alguma_coisa;
}
outgoing {
bind-ip *; /* ou especificar um IP */
hostname hub.exemplo.org;
port 6900;
options { tls; }
}
/* Nós usamos a impressão digital SPKI do outro servidor para autenticação.
* Abra uma shell no OUTRO SERVIDOR e execute o comando abaixo para obter a impressão digital:
* No *NIX, execute: ./unrealircd spkifp
* No Windows, execute: "C:\Program Files\UnrealIRCd 6\bin\unrealircdctl" spkifp
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
//link hub.exemplo.org
//{
// incoming {
// mask *@alguma_coisa;
// }
//
// outgoing {
// bind-ip *; /* ou especificar um IP */
// hostname hub.exemplo.org;
// port 6900;
// options { tls; }
// }
//
// /* Nós usamos a impressão digital SPKI do outro servidor para autenticação.
// * Abra uma shell no OUTRO SERVIDOR e execute o comando abaixo para obter a impressão digital:
// * No *NIX, execute: ./unrealircd spkifp
// * No Windows, execute: "C:\Program Files\UnrealIRCd 6\bin\unrealircdctl" spkifp
// */
// password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
//
// class servers;
//}
/* O Bloco link para o services é muito mais simples.
* Para mais informações sobre o que são o Services,
* leia https://www.unrealircd.org/docs/Services
*/
link services.exemplo.org
{
incoming {
mask 127.0.0.1;
}
password "me_altere";
class servers;
}
//link services.exemplo.org
//{
// incoming {
// mask 127.0.0.1;
// }
//
// password "me_altere_por_favor";
//
// class servers;
//}
/* U-lines dão a outros servidores (ainda) mais poderes/comandos.
* Se você usa o services, você DEVE adicioná-los aqui. Você deve adicionar o
@ -270,9 +275,9 @@ link services.exemplo.org
* IMPORTANTE: Jamais insira o nome do servidor do UnrealIRCd aqui,
* é apenas para o Services!
*/
ulines {
services.exemplo.org;
}
//ulines {
// services.exemplo.org;
//}
/* Aqui você pode adicionar uma senha (apenas para IRCOps) para os comandos /DIE e /RESTART.
* Isto para que se tenha uma pouco mais de proteção contra reinicio acidental
@ -306,11 +311,11 @@ log {
}
}
/* In addition to regular logging, also add a JSON log file.
* This includes lots of information about every event so is great
* for auditing purposes and is machine readable. It is, however
* less readable for humans.
*/
/* Além do log regular, também adicionamos um arquivo de log em JSON.
* Isso inclui muitas informações sobre cada evento, sendo ótimo
* para fins de auditoria e legível por máquinas. No entanto,
* é menos legível para humanos.
*/
log {
source {
all;
@ -336,43 +341,43 @@ log {
include "aliases/anope.conf";
/* Bane nicks para que eles não sejam utilizados por usuários comuns */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reservado para Services";
}
//ban nick {
// mask "*C*h*a*n*S*e*r*v*";
// reason "Reservado para Services";
//}
/* Bane um IP
* Observe que você normalmente usa /KLINE, /GLINE e /ZLINE para isto.
*/
ban ip {
mask 195.86.232.81;
reason "Te odeio";
}
//ban ip {
// mask 195.86.232.81;
// reason "Te odeio";
//}
/* Bane um servidor - se observarmos este servidor vinculado a alguém, então o expulsaremos */
ban server {
mask pedro.usp.br;
reason "Caia fora daqui.";
}
//ban server {
// mask pedro.usp.br;
// reason "Caia fora daqui.";
//}
/* Bane um usuário - mas você normalmente usa /KLINE ou /GLINE para isso */
ban user {
mask *usuariotroll@*.saturn.bbn.com;
reason "Idiota";
}
//ban user {
// mask *usuariotroll@*.saturn.bbn.com;
// reason "Idiota";
//}
/* Este tipo de banimento permite que clientes sejam banidos com base no seu nome real (realname)
* ou campo 'gecos'.
*/
ban realname {
mask "Time Swat";
reason "FORCAOSTENSIVA";
}
//ban realname {
// mask "Time Swat";
// reason "FORCAOSTENSIVA";
//}
ban realname {
mask "sub7server";
reason "sub7";
}
//ban realname {
// mask "sub7server";
// reason "sub7";
//}
/* Exceções de banimento e TKL. Permite que você crie exceções a usuários/IPs a um
* KLINE, GLINE, etc.
@ -382,10 +387,10 @@ ban realname {
*/
/* Exceções de banimento de tipo 'all' protegem você de GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
//except ban {
// mask *@192.0.2.1;
// type all;
//}
/* Isto permite que clientes do IRCCloud não tenham restrição de IP por conexão
* e também cria exceção a eles de flood por conexão.
@ -396,17 +401,17 @@ except ban {
}
/* deny dcc permite você possa banir nomes de arquivos transferidos por DCC */
deny dcc {
filename "*sub7*";
reason "Possível Virus Sub7";
}
//deny dcc {
// filename "*sub7*";
// reason "Possível Virus Sub7";
//}
/* deny channel permite a você banir um canal (por máscara) */
deny channel {
channel "*warez*";
reason "Warez é ilegal";
class "clients";
}
//deny channel {
// channel "*warez*";
// reason "Warez é ilegal";
// class "clients";
//}
/* VHosts (Hosts Virtuais) permite aos usuários adquirirem um vhost diferente.
* Veja https://www.unrealircd.org/docs/Vhost_block
@ -416,12 +421,12 @@ deny channel {
* OBSERVAÇÃO: apenas pessoas com o host 'unrealircd.com' podem usá-lo, então
* tenha certeza de modificar o vhost::mask antes de seu teste.
*/
vhost {
vhost eu.odeio.microsefrs.com;
mask *@unrealircd.com;
login "teste";
password "teste";
}
//vhost {
// vhost eu.odeio.microsefrs.com;
// mask *@unrealircd.com;
// login "teste";
// password "teste";
//}
/* Blocos blacklist irão consultar um serviço externo de blacklist
* sempre que um usuário se conectar, para saber se seu endereço de IP é conhecido
@ -473,16 +478,20 @@ blacklist efnetrbl {
/* Configuração da Rede */
set {
// ALTERAR ISTO, todos os 4 itens abaixo
network-name "ExemploNET";
default-server "irc.exemplo.org";
services-server "services.exemplo.org";
stats-server "stats.exemplo.org";
/* Valores Padrão */
help-channel "#ajuda";
cloak-prefix "Clk";
prefix-quit "Saindo";
/* Chaves cloak devem ser a mesma em todos os servidores da rede.
* Eles são usados para geração de hosts mascarados e devem ser mantidos em segredo.
* VOCÊ PRECISA ALTERAR ISTO!
* As chaves devem ser 3 strings (ou mais) de 80 caracteres randômicos
* e devem se constituir de letras minúsculas (a-z), maiúsculas (A-Z) e números (0-9).
* No *NIX, você pode executar './unrealircd gencloak' na sua shell para que o
@ -497,9 +506,10 @@ set {
}
/* Configurações específicas do servidor */
set {
kline-address 'definir.o.endereco.de.email'; /* e-mail ou URL exibido quando um usuário é banido */
// POR ÚLTIMO, VOCÊ PRECISA ALTERAR ISTO:
kline-address 'definir.seu.endereco.de.email'; /* e-mail ou URL exibido quando um usuário é banido */
modes-on-connect "+ixw"; /* quando os usuários conectam, esses modos de usuário é atribuído a eles */
modes-on-oper "+xws"; /* quado alguém se torna IRCOp, esses modos de usuário é atribuído a ele */
modes-on-join "+nt"; /* modos de canal padrão, quando um novo canal é criado */

View file

@ -1532,7 +1532,7 @@ int hooktype_local_kick(Client *client, Client *victim, Channel *channel, Messag
int hooktype_remote_kick(Client *client, Client *victim, Channel *channel, MessageTag *mtags, const char *comment);
/** Called right before a message is sent to the channel (function prototype for HOOKTYPE_PRE_CHANMSG).
* This function is only used by delayjoin. It cannot block a message. See hooktype_can_send_to_user() instead!
* This function is only used by delayjoin. It cannot block a message. See hooktype_can_send_to_channel() instead!
* @param client The client
* @param channel The channel
* @param mtags Message tags associated with the event (pointer-to-pointer)