mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-26 18:56:38 +02:00
a09320886b
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.
670 lines
23 KiB
Plaintext
670 lines
23 KiB
Plaintext
/* 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!)
|
|
*
|
|
* 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!
|
|
* Se esta é sua primeira experiência com o arquivo de configuração do UnrealIRCd
|
|
* então nós recomendamos fortemente que você se dedique um pouco para ler sobre a sintaxe,
|
|
* isto levará apenas alguns minutos e o ajudará consideravelmente:
|
|
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
|
*
|
|
* Documentação completa do UnrealIRCd 6 (bem extensa!):
|
|
* https://www.unrealircd.org/docs/UnrealIRCd_6_documentation
|
|
*
|
|
* Questões Frequentes:
|
|
* https://www.unrealircd.org/docs/FAQ
|
|
*
|
|
*/
|
|
|
|
/* Este é um comentário, todo o texto aqui será ignorado (comentário de tipo #1) */
|
|
// Este também é um comentário, e esta linha será ignorada (comentário de tipo #2)
|
|
# Este também é um comentário, e novamente esta linha será ignorada (comentário de tipo #3)
|
|
|
|
/* O UnrealIRCd faz um intenso uso dos Módulos, que permitem que você personalize completamente
|
|
* o conjunto de recursos que você deseja habilitar no UnrealIRCd.
|
|
* Veja: https://www.unrealircd.org/docs/Modules
|
|
*
|
|
* Utilizando o include abaixo, nós instruímos o IRCd a ler o arquivo
|
|
* 'modules.default.conf' que carregará mais de 150 módulos
|
|
* que vem com o UnrealIRCd. Em outras palavras: Isso simplesmente irá carregar
|
|
* todos os recursos disponíveis no UnrealIRCd.
|
|
* Se você está configurando o UnrealIRCd pela primeira vez, nós sugerimos que você
|
|
* o use. Então, quando tudo estiver configurado e rodando, você poderá retornar
|
|
* e personalizar a lista (se você desejar).
|
|
*/
|
|
include "modules.default.conf";
|
|
|
|
/* Agora vamos incluir alguns outros arquivos de configuração também:
|
|
* - help/help.conf para nosso sistema de ajuda /HELPOP
|
|
* - badwords.conf para os modos de usuário e canal +G
|
|
* - spamfilter.conf como um exemplo para filtragem de spam
|
|
* (comentado)
|
|
* - operclass.default.conf contém algumas boas classes de operadores que
|
|
* você pode usar em seus blocos de operadores.
|
|
*/
|
|
include "help/help.conf";
|
|
include "badwords.conf";
|
|
//include "spamfilter.conf";
|
|
include "operclass.default.conf";
|
|
include "snomasks.default.conf";
|
|
|
|
/* Carrega por padrão o módulo de cloaking em SHA256 (implementado em 2021): */
|
|
loadmodule "cloak_sha256";
|
|
/* Ou carrega o antigo módulo de clocking em MD5 que veio do UnrealIRCd 3.2/4/5: */
|
|
//loadmodule "cloak_md5";
|
|
|
|
/* 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).
|
|
*/
|
|
me {
|
|
name "irc.exemplo.org";
|
|
info "Servidor ExemploNET";
|
|
sid "001";
|
|
}
|
|
|
|
/* 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.
|
|
*/
|
|
admin {
|
|
"Bob Smith";
|
|
"bob";
|
|
"email@exemplo.org";
|
|
}
|
|
|
|
/* Clientes e servidores são colocados no bloco class { }, e os definimos aqui.
|
|
* Blocos Class consistem nos seguintes itens:
|
|
* - pingfreq: com que frequência será efetuado ping em um usuário / servidor (em segundos)
|
|
* - connfreq: quantas vezes tentamos nos conectar a este servidor (em segundos)
|
|
* - sendq: o tamanho máximo da fila para uma conexão
|
|
* - recvq: o recebimento máximo da fila para uma conexão (controle de flood)
|
|
*/
|
|
|
|
/* Classe Client padrão, com valores de limites aceitáveis */
|
|
class clients
|
|
{
|
|
pingfreq 90;
|
|
maxclients 1000;
|
|
sendq 200k;
|
|
recvq 8000;
|
|
}
|
|
|
|
/* Uma classe Especial para IRCOps com valores de limites mais altos */
|
|
class opers
|
|
{
|
|
pingfreq 90;
|
|
maxclients 50;
|
|
sendq 1M;
|
|
recvq 8000;
|
|
}
|
|
|
|
/* Classe Server padrão, com valores de limites aceitáveis */
|
|
class servers
|
|
{
|
|
pingfreq 60;
|
|
connfreq 15; /* tenta se conectar a cada 15 segundos */
|
|
maxclients 10; /* máximo de servidores */
|
|
sendq 20M;
|
|
}
|
|
|
|
/* Blocos allow definem quais classe clients podem se conectar a este servidor.
|
|
* Isto permite que você adicione uma senha ao servidor ou restrinja o acesso ao servidor
|
|
* apenas por IPs específicos. Você também pode configurar o máximo de conexões
|
|
* permitidas por IP.
|
|
* Veja também: https://www.unrealircd.org/docs/Allow_block
|
|
*/
|
|
|
|
/* Permite todos entrarem, mas apenas 3 conexões simultâneas por IP */
|
|
allow {
|
|
mask *;
|
|
class clients;
|
|
maxperip 3;
|
|
}
|
|
|
|
/* Exemplo de um bloco especial allow em um IP específico:
|
|
* 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;
|
|
}
|
|
|
|
/* Blocos oper definem os Operadores de IRC.
|
|
* Operadores de IRC são pessoas com "privilégios extras" comparado a outros,
|
|
* eles podem por exemplo dar /KILL (derrubar) outras pessoas, iniciar uma conexão com server,
|
|
* dar /JOIN (entrar) em canais ainda que eles estejam banidos, etc.
|
|
*
|
|
* Para mais informações sobre como se tornar um IRCOp e como executar
|
|
* tarefas administrativas, veja: https://www.unrealircd.org/docs/IRCOp_guide
|
|
*
|
|
* Para obter mais detalhes sobre o bloco oper { } , veja
|
|
* https://www.unrealircd.org/docs/Oper_block
|
|
*/
|
|
|
|
/* Aqui está um exemplo de um bloco oper para o 'bobsmith'
|
|
* Você DEVE alterar isto!!
|
|
*/
|
|
oper bobsmith {
|
|
class opers;
|
|
mask *@*;
|
|
|
|
/* Tecnicamente você pode deixar as senhas de oper em texto puro no arquivo de configuração, mas
|
|
* isto é ALTAMENTE DESENCORAJADO. No lugar disso, você deve gerar uma senha hasheada:
|
|
* No *NIX, execute: ./unrealircd mkpasswd
|
|
* No Windows, execute: "C:\Program Files\UnrealIRCd 6\bin\unrealircdctl" mkpasswd
|
|
* ... e então cole a senha no campo abaixo:
|
|
*/
|
|
password "$argon2id..etc..";
|
|
/* Veja https://www.unrealircd.org/docs/Authentication_types para
|
|
* mais informações, incluindo formas melhores de autenticação
|
|
* como por exemplo o 'certfp', e como gerar hashes no Windows.
|
|
*/
|
|
|
|
/* Permissões de oper são definidos no bloco 'operclass'.
|
|
* Veja https://www.unrealircd.org/docs/Operclass_block
|
|
* O UnrealIRCd vem com um número padrão de blocos, leia
|
|
* o artigo acima para ver a lista completa. Nós escolhemos o 'netadmin' aqui.
|
|
*/
|
|
operclass netadmin;
|
|
swhois "é o Administrador da Rede";
|
|
vhost netadmin.exemplo.org;
|
|
}
|
|
|
|
/* Blocos listen definem as portas onde o servidor irá escutar.
|
|
* Em outras palavras: as portas que os clientes e servidores podem usar
|
|
* para se conectar a este servidor.
|
|
*
|
|
* Sintaxe:
|
|
* listen {
|
|
* ip <ip>;
|
|
* port <port>;
|
|
* options {
|
|
* <options....>;
|
|
* }
|
|
* }
|
|
*/
|
|
|
|
/* Porta padrão 6667 do IRC */
|
|
listen {
|
|
ip *;
|
|
port 6667;
|
|
}
|
|
|
|
/* Porta padrão 6697 do IRC sob tunel SSL/TLS */
|
|
listen {
|
|
ip *;
|
|
port 6697;
|
|
options { tls; }
|
|
}
|
|
|
|
/* Porta especial padrão para uso de servidores sob tunel SSL/TLS para vincular a outros servidores */
|
|
listen {
|
|
ip *;
|
|
port 6900;
|
|
options { tls; serversonly; }
|
|
}
|
|
|
|
/* OBSERVAÇÃO: Se você está em uma shell IRCd com múltiplos IPs e você usa
|
|
* os blocos listen { } acima, então você provavelmente receberá o erro
|
|
* 'Address already in use' e o IRCd não iniciará.
|
|
* Isto significa que você DEVE colocar em escuta um IP específico no lugar do '*', como por exemplo:
|
|
* listen { ip 1.2.3.4; port 6667; }
|
|
* Claro, substituindo o IP pelo IP que foi fornecido a você.
|
|
*/
|
|
|
|
/*
|
|
* 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;
|
|
}
|
|
|
|
/* 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;
|
|
}
|
|
|
|
/* 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
|
|
* nome do servidor do services no bloco ulines { } no arquivo de configuração
|
|
* em todo servidor UnrealIRCd da sua rede.
|
|
* IMPORTANTE: Jamais insira o nome do servidor do UnrealIRCd aqui,
|
|
* é apenas para o Services!
|
|
*/
|
|
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
|
|
* do servidor e ele seja derrubado inadvertidante.
|
|
*/
|
|
drpass {
|
|
restart "reiniciar";
|
|
die "matar";
|
|
}
|
|
|
|
/* O bloco log define o que deve ser registrado (logado) e em qual arquivo.
|
|
* Leia também https://www.unrealircd.org/docs/Log_block
|
|
*/
|
|
|
|
/* Este é um bom padrão, ele registra tudo, exceto
|
|
* coisas de depuração e comandos join/part/kick.
|
|
*/
|
|
log {
|
|
source {
|
|
all;
|
|
!debug;
|
|
!join.LOCAL_CLIENT_JOIN;
|
|
!join.REMOTE_CLIENT_JOIN;
|
|
!part.LOCAL_CLIENT_PART;
|
|
!part.REMOTE_CLIENT_PART;
|
|
!kick.LOCAL_CLIENT_KICK;
|
|
!kick.REMOTE_CLIENT_KICK;
|
|
}
|
|
destination {
|
|
file "ircd.log" { maxsize 100M; }
|
|
}
|
|
}
|
|
|
|
/* 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.
|
|
*/
|
|
log {
|
|
source {
|
|
all;
|
|
!debug;
|
|
!join.LOCAL_CLIENT_JOIN;
|
|
!join.REMOTE_CLIENT_JOIN;
|
|
!part.LOCAL_CLIENT_PART;
|
|
!part.REMOTE_CLIENT_PART;
|
|
!kick.LOCAL_CLIENT_KICK;
|
|
!kick.REMOTE_CLIENT_KICK;
|
|
}
|
|
destination {
|
|
file "ircd.json.log" { maxsize 250M; type json; }
|
|
}
|
|
}
|
|
|
|
/* Com o "aliases" você pode criar um atalho como /ALGUMACOISA para enviar uma mensagem para
|
|
* algum usuário ou bot. Eles são usados normalmente por services.
|
|
*
|
|
* Nós temos um arquivo com um número pré-definido de atalhos, confira o diretório alias/ .
|
|
* Como exemplo, aqui nós incluímos todos os atalhos utilizados pelo services anope.
|
|
*/
|
|
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";
|
|
}
|
|
|
|
/* Bane um IP
|
|
* Observe que você normalmente usa /KLINE, /GLINE e /ZLINE para isto.
|
|
*/
|
|
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.";
|
|
}
|
|
|
|
/* Bane um usuário - mas você normalmente usa /KLINE ou /GLINE para isso */
|
|
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 "sub7server";
|
|
reason "sub7";
|
|
}
|
|
|
|
/* Exceções de banimento e TKL. Permite que você crie exceções a usuários/IPs a um
|
|
* KLINE, GLINE, etc.
|
|
* Se você é um IRCOp com IP estático (e não há ninguém não confiável utilizando este IP),
|
|
* então nós sugerimos que você seja adicionado aqui. Desta forma, você sempre poderá entrar
|
|
* mesmo se acidentalmente você colocar um *LINE em si mesmo.
|
|
*/
|
|
|
|
/* Exceções de banimento de tipo 'all' protegem você de GLINE, GZLINE, QLINE, SHUN */
|
|
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.
|
|
*/
|
|
except ban {
|
|
mask *.irccloud.com;
|
|
type { maxperip; connect-flood; }
|
|
}
|
|
|
|
/* deny dcc permite você possa banir nomes de arquivos transferidos por DCC */
|
|
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";
|
|
}
|
|
|
|
/* VHosts (Hosts Virtuais) permite aos usuários adquirirem um vhost diferente.
|
|
* Veja https://www.unrealircd.org/docs/Vhost_block
|
|
*/
|
|
|
|
/* Exemplo de vhost que você pode usar. No IRC digite: /VHOST teste teste
|
|
* 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";
|
|
}
|
|
|
|
/* 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
|
|
* por ataques de drone, como uma máquina hackeada, etc.
|
|
* Documentação: https://www.unrealircd.org/docs/Blacklist_block
|
|
* Ou apenas dê uma olhada nos blocos abaixo.
|
|
*/
|
|
|
|
/* DroneBL é provavelmente o serviço de blacklist mais popular usada por servidores de IRC.
|
|
* Veja https://dronebl.org/ para ler a documentação e
|
|
* o significado dos tipos de resposta. No momento em que este arquivo foi escrito, nós usamos os tipos:
|
|
* 3: IRC Drone, 5: Flooder, 6: Drone ou bot de spam desconhecido,
|
|
* 7: Drone de DDoS, 8: Proxy SOCKS, 9: Proxy HTTP, 10: ProxyChain,
|
|
* 11: Proxy de página web, 12: Resolvedor de DNS aberto, 13: Atacantes de força bruta,
|
|
* 14: Proxy Wingate público, 15: Roteador/Gateway comprometido,
|
|
* 16: Virus que tentam conseguir root.
|
|
*/
|
|
blacklist dronebl {
|
|
dns {
|
|
name dnsbl.dronebl.org;
|
|
type record;
|
|
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
|
|
}
|
|
action gline;
|
|
ban-time 24h;
|
|
reason "Proxy/Drone detectado. Confira https://dronebl.org/lookup?ip=$ip para detalhes.";
|
|
}
|
|
|
|
/* EFnetRBL, veja https://rbl.efnetrbl.org/ para ler a documentação
|
|
* e o significado dos tipos de resposta.
|
|
* No momento em que este arquivo foi escrito: 1 é proxy público, 4 é TOR, 5 é drones/flooders.
|
|
*
|
|
* OBSERVAÇÃO: Se você deseja permitir proxies TOR no seu servidor, então
|
|
* você precisa remover o '4;' abaixo da seção reply.
|
|
*/
|
|
blacklist efnetrbl {
|
|
dns {
|
|
name rbl.efnetrbl.org;
|
|
type record;
|
|
reply { 1; 4; 5; }
|
|
}
|
|
action gline;
|
|
ban-time 24h;
|
|
reason "Proxy/Drone/TOR detectado. Confira https://rbl.efnetrbl.org/?i=$ip para detalhes.";
|
|
}
|
|
|
|
/* Você pode incluir outros arquivos de configuração */
|
|
/* include "klines.conf"; */
|
|
|
|
/* Configuração da Rede */
|
|
set {
|
|
network-name "ExemploNET";
|
|
default-server "irc.exemplo.org";
|
|
services-server "services.exemplo.org";
|
|
stats-server "stats.exemplo.org";
|
|
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.
|
|
* 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
|
|
* UnrealIRCd gere 3 strings randômicas para você.
|
|
* No Windows, você pode executar "C:\Program Files\UnrealIRCd 6\bin\unrealircdctl" gencloak
|
|
*/
|
|
cloak-keys {
|
|
"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";
|
|
"adicione a outra";
|
|
"adicione a outra";
|
|
}
|
|
}
|
|
|
|
/* Configurações específicas do servidor */
|
|
|
|
set {
|
|
kline-address 'definir.o.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 */
|
|
oper-auto-join "#opers"; /* IRCOps entram automaticamente neste canal */
|
|
options {
|
|
hide-ulines; /* esconde U-lines do /MAP e /LINKS */
|
|
show-connect-info; /* exibe a mensagem "looking up your hostname" ao se conectar */
|
|
}
|
|
|
|
maxchannelsperuser 10; /* número máximo de canais que um usuário pode entrar com /JOIN */
|
|
|
|
/* O tempo mínimo que um usuário precisa estar conectado antes de ser permitido
|
|
* utilizar a mensagem de QUIT. Isto irá ajudar no combate a SPAM.
|
|
*/
|
|
anti-spam-quit-message-time 10s;
|
|
|
|
/* Ou simplesmente defina um quit estático, de forma que qualquer motivo de /QUIT seja ignorado */
|
|
/* static-quit "Cliente saindo"; */
|
|
|
|
/* static-part faz com que o mesmo acima aconteça ao comando /PART */
|
|
/* static-part yes; */
|
|
|
|
/* Proteção contra Flood:
|
|
* Há uma série de configurações para isso, e a maioria delas tem bons padrões.
|
|
* Veja https://www.unrealircd.org/docs/Set_block#set::anti-flood
|
|
*/
|
|
anti-flood {
|
|
}
|
|
|
|
/* Configurações para filtragem de SPAM */
|
|
spamfilter {
|
|
ban-time 1d; /* duração padrão de um ban *LINE definido pelo filtro de spam */
|
|
ban-reason "Spam/Propaganda"; /* motivo padrão */
|
|
virus-help-channel "#help"; /* canal utilizado para usar em uma ação de 'virus de canal' */
|
|
/* except "#help"; exceção de canal ao filtro de spam */
|
|
}
|
|
|
|
/* Restringindo certos comandos
|
|
* Veja https://www.unrealircd.org/docs/Set_block#set::restrict-commands
|
|
*/
|
|
restrict-commands {
|
|
list {
|
|
except {
|
|
connect-time 60; /* após 60 segundos, o usuário pode usar o comando /LIST */
|
|
identified yes; /* ou imediatamente, se estiver identificado ao services */
|
|
reputation-score 24; /* ou se tiver um score de reputação maior ou igual a 24 */
|
|
}
|
|
}
|
|
invite {
|
|
except {
|
|
connect-time 120;
|
|
identified yes;
|
|
reputation-score 24;
|
|
}
|
|
}
|
|
/* Somando a possibilidade de restringir qualquer comando,
|
|
* também existem 4 tipos especiais
|
|
* que você pode restringir. Eles são "private-message",
|
|
* "private-notice", "channel-message" e "channel-notice".
|
|
* Eles estão todos comentados neste exemplo:
|
|
*/
|
|
//private-message {
|
|
// except { connect-time 10; }
|
|
//}
|
|
//private-notice {
|
|
// except { connect-time 10; }
|
|
//}
|
|
}
|
|
}
|
|
|
|
/*
|
|
* A seguir será configurado o limite de conexão para "unknown users".
|
|
*
|
|
* Quando o UnrealIRCd detecta um número elevado de usuários conectando de um endereço IP
|
|
* que nunca viu antes, então conexões do novo IP são rejeitadas quando estiverem
|
|
* acima da taxa abaixo especificada. Por exemplo, na taxa 10:60 apenas 10 usuários por minuto podem conectar
|
|
* por este IP que nunca foi visto antes. Endereços de IP conhecidos sempre podem entrar,
|
|
* independente da taxa definida. O mesmo para usuários que se conectam via SASL.
|
|
*
|
|
* Leia também https://www.unrealircd.org/docs/Connthrottle para detalhes.
|
|
* Ou apenas continue lendo a configuração abaixo:
|
|
*/
|
|
|
|
set {
|
|
connthrottle {
|
|
/* Primeiro nós configuramos quais usuários serão excluídos
|
|
* das restrições. Estes usuários sempre conseguirão acessar.
|
|
* Por padrão, entra como exceção usuários identificados com o services
|
|
* com um score igual ou maior a 24. Um score 24 significa que
|
|
* este IP foi conectado a esta rede por pelo menos 2 horas em algum momento
|
|
* no mês passado (ou no mínimo por 1 hora se registrado).
|
|
* Nós também permitimos usuários que se identificaram através do services via
|
|
* SASL para passar por cima destas restrições.
|
|
*/
|
|
except {
|
|
reputation-score 24;
|
|
identified yes;
|
|
/* Para mais informações, leia
|
|
* https://www.unrealircd.org/docs/Mask_item
|
|
*/
|
|
}
|
|
|
|
/* Novos usuários são todos os usuários que não pertencem
|
|
* ao grupo known-users. Eles são considerados "novos" e no
|
|
* caso de um número elevado de novos usuários se conectando,
|
|
* eles serão sujeiros ao limite de taxa de conexão.
|
|
* Por padrão a taxa é 20 novos usuários locais por minuto
|
|
* e 30 novos usuários globais por minuto.
|
|
*/
|
|
new-users {
|
|
local-throttle 20:60;
|
|
global-throttle 30:60;
|
|
}
|
|
|
|
/* Esta seção configura quando este módulo não será ativado.
|
|
* As configurações padrão desabilitarão o módulo quando:
|
|
* - O módulo reputation esteja em execução a menos de
|
|
* uma semana. Se estiver rodando há menos de 1 semana, então ainda temos
|
|
* dados insuficientes para considerar quem é um "known user" (usuário conhecido).
|
|
* - O servidor acabou de ser inicializado (primeiros 3 minutos).
|
|
*/
|
|
disabled-when {
|
|
reputation-gathering 1w;
|
|
start-delay 3m;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* HISTÓRICO DE CANAL:
|
|
* UnrealIRCd possui modo de canal +H que pode ser usado pelos usuários para recuperar
|
|
* o histórico do canal antes deles terem entrado. Para informações gerais
|
|
* sobre esta funcionalidade, leia https://www.unrealircd.org/docs/Channel_history
|
|
*
|
|
* Os limites do histórico podem ser configurados pelo set::history. Os padrões são
|
|
* provavelmente bons para você, mas se você estiver em um sistema com pouca memória
|
|
* ou tem centenas de canais, então você pode querer verificar esses padrões novamente. Leia
|
|
* https://www.unrealircd.org/docs/Set_block#set::history
|
|
* para ver as opções disponíveis.
|
|
*
|
|
* Além disso, você pode definir um "histórico de canal persistente", o que
|
|
* significa que o histórico do canal é armazenado de modo criptografado no disco e é preservado
|
|
* entre os reinícios do servidor. Leia
|
|
* https://www.unrealircd.org/docs/Set_block#Persistent_channel_history
|
|
* A funcionalidade de histórico persistente NÃO é habilitado por padrão porque você
|
|
* precisa configurar o Bloco secret { } para ele antes. A seguir um exemplo simples
|
|
* de senhas armazenadas diretamente no arquivo de configuração:
|
|
* Para obter uma melhor segurança, leia https://www.unrealircd.org/docs/Secret_block
|
|
* como formas alternativas para não armazenar senhas diretamente no arquivo de configuração.
|
|
*/
|
|
//secret historydb { password "algumasenha"; }
|
|
//set { history { channel { persist yes; db-secret "historydb"; } } }
|
|
|
|
/* Finalmente, você pode querer ter um MOTD (Mensagem do Dia), isto pode ser
|
|
* feito criando um arquivo de texto 'ircd.motd' no seu diretório conf/ .
|
|
* O texto dentro deste arquivo será exibido aos usuários ao se conectarem.
|
|
* Para mais informações, veja https://www.unrealircd.org/docs/MOTD_and_Rules
|
|
*/
|
|
|
|
/*
|
|
* Problemas ou precisa de ajuda?
|
|
* 1) https://www.unrealircd.org/docs/
|
|
* 2) https://www.unrealircd.org/docs/FAQ <- responde a 80% das suas perguntas!
|
|
* 3) Se ainda assim você está enfrentando problemas, você pode obter ajuda em:
|
|
* - Fóruns: https://forums.unrealircd.org/
|
|
* - IRC: irc.unrealircd.org (SSL na porta 6697) / #unreal-support
|
|
* Observe que pedimos que você leia a documentação e as perguntas frequentes (FAQ) primeiro!
|
|
*/
|