| 1 |
adx |
30 |
/* doc/kline.txt - Overview of the remote kline system |
| 2 |
|
|
* |
| 3 |
|
|
* Copyright (C) 2005 Hybrid Development Team |
| 4 |
|
|
* |
| 5 |
knight |
31 |
* $Id$ |
| 6 |
adx |
30 |
*/ |
| 7 |
|
|
|
| 8 |
|
|
|
| 9 |
|
|
Introduction |
| 10 |
|
|
------------ |
| 11 |
|
|
|
| 12 |
|
|
ircd-hybrid-7 will allow opers to add and remove K-Lines on multiple servers, |
| 13 |
|
|
an extension and replacement of the old ircd-hybrid-6 method of sharing |
| 14 |
|
|
all K-Lines between servers. |
| 15 |
|
|
|
| 16 |
|
|
In this implementation, it is extended to be routable among servers which |
| 17 |
|
|
understand the "KLN" capability. This allows us to continue to "talk" |
| 18 |
|
|
to non remote kline capable servers without breaking anything. |
| 19 |
|
|
|
| 20 |
michael |
410 |
K-Lines have also received a new feature of supporting regular expressions |
| 21 |
adx |
30 |
to allow for more flexible bans. |
| 22 |
|
|
|
| 23 |
|
|
Usage |
| 24 |
|
|
----- |
| 25 |
|
|
|
| 26 |
|
|
The old K-Line method has not been changed. To place a K-Line it is still: |
| 27 |
|
|
|
| 28 |
|
|
/quote kline <nick|user@host> :reason |
| 29 |
|
|
/quote kline [tkline_duration] <nick|user@host> :reason |
| 30 |
|
|
|
| 31 |
|
|
Scenario 1 |
| 32 |
|
|
---------- |
| 33 |
|
|
|
| 34 |
|
|
Oper wishes to K-Line user@host on server irc.xyz.net |
| 35 |
|
|
|
| 36 |
|
|
/quote kline <nick|user@host> on irc.xyz.net :reason |
| 37 |
|
|
/quote kline [duration] <nick|user@host> on irc.xyz.net :reason |
| 38 |
|
|
|
| 39 |
|
|
Scenario 2 |
| 40 |
|
|
---------- |
| 41 |
|
|
|
| 42 |
|
|
Oper wishes to K-Line user@host on all servers named *.uk |
| 43 |
|
|
|
| 44 |
|
|
/quote kline <nick|user@host> on *.uk :reason |
| 45 |
|
|
/quote kline [duration] <nick|user@host> on *.uk :reason |
| 46 |
|
|
|
| 47 |
|
|
Scenario 3 |
| 48 |
|
|
---------- |
| 49 |
|
|
|
| 50 |
|
|
Oper wishes to place a network wide K-Line on user@host |
| 51 |
|
|
|
| 52 |
|
|
/quote kline <nick|user@host> on * :reason |
| 53 |
|
|
/quote kline [duration] <nick|user@host> on * :reason |
| 54 |
|
|
|
| 55 |
|
|
Scenario 4 |
| 56 |
|
|
---------- |
| 57 |
|
|
|
| 58 |
|
|
Oper wishes to K-Line a flexible ban on various user@host types |
| 59 |
|
|
|
| 60 |
|
|
/quote rkline ^O[[:alpha:]]?[[:digit:]]+(x\.o|\.xo)$@^[[:alnum:]]{4}\.evilnet.org$ :reason |
| 61 |
|
|
|
| 62 |
|
|
Authorization |
| 63 |
|
|
------------- |
| 64 |
|
|
|
| 65 |
|
|
For the K-Line to be accepted by the remote server, the server must have |
| 66 |
|
|
explicitly allowed K-Lines from that user. This is done via a shared {}; |
| 67 |
|
|
block in ircd.conf. |
| 68 |
|
|
|
| 69 |
|
|
The shared block contains two settings, a user@host mask of the oper |
| 70 |
|
|
who is allowed to K-Line, and a servername. |
| 71 |
|
|
|
| 72 |
|
|
- If both of these options are present, K-Lines will only be allowed |
| 73 |
|
|
from that specific user@host on that specific server. |
| 74 |
|
|
- If only the servername is present, all K-Lines from opers on that |
| 75 |
|
|
server will be accepted. |
| 76 |
|
|
- If only the user@host is present, all K-Lines from that user@host on |
| 77 |
|
|
any server will be accepted. |
| 78 |
|
|
- If neither are present, the shared block is invalid. |
| 79 |
|
|
|
| 80 |
|
|
shared { |
| 81 |
|
|
/* The name of the server we allow K-Lines from */ |
| 82 |
|
|
name = "this.server.net"; |
| 83 |
|
|
|
| 84 |
|
|
/* the user@host allowed to K-Line */ |
| 85 |
|
|
user = "user@host.com"; |
| 86 |
|
|
}; |
| 87 |
|
|
|
| 88 |
|
|
Server to Server Protocol |
| 89 |
|
|
------------------------- |
| 90 |
|
|
|
| 91 |
|
|
As mentioned above, each server capable of remote K-Lines passes |
| 92 |
|
|
the capability KLN along. No server will send a KLINE to a server |
| 93 |
|
|
without a KLN capability. |
| 94 |
|
|
|
| 95 |
|
|
Server to server messages are formatted like this: |
| 96 |
|
|
|
| 97 |
|
|
":oper KLINE target.server duration user host :reason" |
| 98 |
|
|
|
| 99 |
|
|
Note the difference between hybrid-6 GLINE which explicitly passed |
| 100 |
|
|
the oper user@host and server along. This was originally done to handle |
| 101 |
|
|
possible desync conditions, but is now shelved in favor of saving |
| 102 |
|
|
some bandwidth. |
| 103 |
|
|
|
| 104 |
|
|
oper: the nick of the oper performing the K-Line |
| 105 |
|
|
target.server: the server(s) this K-Line is destined for |
| 106 |
|
|
duration: the duration if a TK-Line, 0 if permanent. |
| 107 |
|
|
user: the 'user' portion of the K-Line |
| 108 |
|
|
host: the 'host' portion of the K-Line |
| 109 |
|
|
reason: the reason for the K-Line. |