IRC FAQ: Ayuda Modos de Canal/Sala

Modos de Canal

Modo Descripción
A
Sólo pueden entrar administradores
a <nick>
Hace de nick administrador del canal
b <nick!user@host>
Pone un veto (ban)
c
No se pueden enviar colores ANSI
C
No se permiten CTCPs
e <nick!user@host>
Exception ban – si alguien coincide, siempre podrá entrar al canal aunque esté baneado
f [<número><tipo>]:<segs>
Protección anti-flood canal. Vea más abajo "Características anti-flood para salas (canales)" para una descripción detallada.
G
Marca el canal con la lista de "badwords" (malas palabras)
h <nick>
Da el estado de semi operador del canal a nick
i
Se precisa invitación
I <nick!user@host>
Excepciones invite ("invex") - si alguien aplica con esta máscara, no necesita invitación para entrar.
j <X:Y>
Impide la entrada por usuario si sobrepasa los X intentos en menos de Y segundos
K
No se permite /knock
k <clave>
Se precisa clave para entrar
l <##>
Fija el número máximo de usuarios que puede haber en el canal
L <#canal>
Si se pasa el límite del +l, los usuarios son enviados directamente a este canal
M
Solo pueden hablar los usuarios registrados (+r)
m
Canal moderado: solo +v y superiores pueden hablar
N
No se permiten cambios de nick en el canal
n
No se permiten mensajes externos
O
Solo operadores pueden entrar
o <nick>
Da el estado de operador del canal a nick
p
Marca el canal como privado
q <nick>
Marca nick como fundador del canal
Q
Solo los servidores uline pueden expulsar a los usuarios
R
Solo pueden entrar usuarios registrados (+r)
S
Quita todos los colores
s
Hace el canal secreto
t
Sólo halfops y superiores pueden cambiar el tema del canal
T
No se permiten notices al canal
u
Auditorium – Solo se muestran los operadores del canal en /names o /who #canal
V
No se permite /invite
v <nick>
Da voz a los usuarios (pueden hablar en canales +m)
z
Solo pueden entrar usuarios conectados bajo SSL

Características anti-flood para salas (canales)

Modos de canal

Existen varios modos de canal para prevenir ataques. Algunos son:
K = no /knock, N = no cambios de nick, C = no CTCPs, M = sólo usuarios registrados (+r) pueden hablar j = join throttling (por usuario)
Desde la versión beta18 existe el modo +f que es mucho más avanzado.

Modo de canal +f

En vez de usar scripts y bots para proteger un canal contra floods ahora se incluye en el propio IRC.
Un ejemplo del modo +f es:*** Foo sets mode: +f [10j]:15
Significa que se permiten 10 joins cada 15 segundos. Si se supera este límite el servidor pondría el modo +i automáticamente.

Aquí se detallan los tipos de flood:

Tipo Nombre Acción por defecto Otras acciones Comentarios
cCTCPsauto +Cm, M 
jjoinsauto +iR 
kknocksauto +K  para clientes locales
mmessages/noticesauto +mM 
nnickchangesauto +N  
ttextkickb antiguo +f. Expulsará o vetará (ban) al usuario


Ejemplos:


font color=green>*** ChanOp sets mode: +f [20j,50m,7n]:15 <ChanOp> lalala *** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test *** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test *** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test *** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test -- snip XX lines -- *** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test -server1.test.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), putting +i *** server1.test.net sets mode: +i <Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl <Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl -- snip XX lines -- -server1.test.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m *** server1.test.net sets mode: +m *** Evil1 is now known as Hmmm1 *** Evil2 is now known as Hmmm2 *** Evil3 is now known as Hmmm3 *** Evil4 is now known as Hmmm4 *** Evil5 is now known as Hmmm5 *** Evil6 is now known as Hmmm6 *** Evil7 is now known as Hmmm7 *** Evil8 is now known as Hmmm8 -server1.test.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N *** server1.test.net sets mode: +N

De hecho, puede complicarse más:

En vez de usar la acción por defecto, puede especificar otras como por ejemplo: +f [20j#R,50m#M]:15 Esto pondría el canal en +R si se sobrepasa el límite de 20 joins en 15 segundos y pondrá el modo +M si se superan los 50 mensajes en 15 segundos.

Además, se puede especificar el tiempo de duración de este modo: +f [20j#R5]:15 pondrá el canal en +R si se sobrepasa el límite y lo quitará después de 5 minutos.

El servidor puede usar un tiempo para quitar los modos por defecto (set::modef-default-unsettime). Así, si usa+f [20j]:15 se pasa a +f [20j#i10]:15, que es por defecto, pero puede seguir usando[20j#i2]:15 y para no quitar nunca este modo +f [20j#i0]:15 (usando 0).

El viejo modo +f todavía está disponible como 't', +f 10:6 pasa a ser +f [10t]:6 y +f *20:10 es +f [20t#b]:10. Actualmente el ircd convierte este cambio. Fíjese que no hay tiempo para quitar este modo ([20t#b30]:15 no funcionará).

¿Cuál es la mejor combinación? No existe el modo +f perfecto para todos los canales, pero puede guiarse con el siguiente ejemplo para ajustarlos a sus necesidades:

+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15

  • 30 joins en 15 segundos, si se supera el límite se pone el modo +i durante 10 minutos
  • 40 mensajes en 15 segundos, si se supera el límite se pone el modo +m durante 10 minutos
  • 7 ctcps en 15 segundos, si se supera el límite se pone el modo +C durante 15 minutos
  • 10 cambios de nick en 15 segundos, si se supera el límite se pone el modo +N durante 15 minutos
  • 30 knocks en 15 segundos, si se supera el límite se pone el modo +K durante 10 minutos

Especialmente, quitar los modos es importante. Imagínese un canal sin operadores, el modo estaría durante 15 minutos, en el que la gente no podría hablar, dependiendo del tipo de flood.

Modo de canal +j

El modo +f incluye una característica para prevenir el flood de joins. Sin embargo, este aspecto es "global". Por ejemplo, si está puesto a 5:10 y 5 usuarios diferentes entran en 10 segundos, saltará la protección de flood. El modo de canal actúa de forma distinta. Lo hace partiendo de un solo usuario. Más que proteger del flood de entradas, protege contra el flood de entrada-salida. El modo toma el parámetro del patrón X:Y, donde X corresponde al número de entradas e Y al número de segundos. Si un usuario excede este límite, se le prohibe la entrada al canal.

Fuente: UnrealIRCd