[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nick collides



>>>>> "Donald" == Donald Quixote VI <holeekow@xxxxxxxxx> writes:

  Donald> hi all..  As most know abuse of and on irc are rampant.  The
  Donald> demise of blackened on EFnet only underscore the problem.

  Donald> One of the reasons irc servers are nuked so much is to cause
  Donald> lag and/or splits, many times just for a chance to cause
  Donald> nick collides I think.

EFNet gets smurfed regardless, and nick collisions are a lot harder on
EFNet so I don't think it's a major motivation. Personal DoS or
various forms of nuking are used on EFNet to get rid of individuals.

Server nuking and DoS appears to happen generally to hack opps on a
channel, or just to piss the server administrators off. Oddly enough,
I think our Channel Delay (which I originally thought of as unfriendly
and annoying) is probably a great deal of help here. Of-course it just
means the DoS has to last 15min, but I still think it helps.

  Donald> Wouldn't eliminating nick collides reduce the attacks on the
  Donald> servers themselves?

Not really, although eliminating nick collisions would of-course be a
nice thing to do, and is slated for ircd 2.11 (I believe). This will
most likely be done by removing the use of one's nick as the "key"
field.

  Donald> I suggested a method that -might- help before.. but another
  Donald> method just came to me.. restrict-a-nick.

  Donald> Under some defined collide conditions, restrict the nicks
  Donald> being set.

  Donald> Some collide conditions: 1] server restart restrict nicks
  Donald> for 15-30 minutes after restart 2] low server count iow, if
  Donald> net normally has 70 servers, restrict nicks if <40? are
  Donald> linked 3] severly lagged server 4] split server 5]] Monitor
  Donald> &kills and on xx kills, restrict nicks - [damage might
  Donald> already be done]

  Donald> #1 and #4 might be covered by #2

  Donald> There are prolly better thresholds in the ircd code to
  Donald> trigger server collide protections and restrict nicks..

  Donald> Now the second part.. restrict nicks how?

  Donald> Several possible ways..  each needs to be thought through..
  Donald> but essentially, do not allow self-serve pick-a-nick during
  Donald> the collide danger period.

  Donald> 1] randomize the 8th and 9th characters in a nick a]
  Donald> truncate long nicks to 7 characters and add 2 random
  Donald> characters /nick abcdefghi will be set as abcdefg\5 b]
  Donald> expand short nicks by adding fillers and extra random
  Donald> characters /nick abc is set as abc----c9

  Donald> 2] allow short nicks, 6 or 7 characters to be set as is, but
  Donald> alter 8 and 9 character nicks as outlined in #1.  Those
  Donald> desiring collide protection will favor the 8 or 9 character
  Donald> nicks.  Those not wanting to bother with nick variations so
  Donald> they stay on the friends notify lists more often will favor
  Donald> the shorter nicks.

  Donald> Prolly dozens of similar ways to restrict-a-nick will come
  Donald> to your minds..

Just not allowing the nick to be changed seems the most obvious, and
is what occurs when a client connects under a restricted
i-line. Obviously the user is allowed to choose their initial nick,
which you don't seem to be in favour of (for reasons I can
understand).

  Donald> How it could work:

  Donald> On server restart:

  Donald> restrict all nicks joining by method #1.  A few minutes
  Donald> after the server connects to the net, and passes any other
  Donald> collide danger criteria that may be included, then nick
  Donald> change restriction can be turned off and the users may then
  Donald> change to the nick they prefer, iow, changing back from the
  Donald> server randomized form, "abcdefg\5", to the one that desired
  Donald> "abcdefghi".

  Donald> When servers split or the number linked is below a preset
  Donald> number [1.e.40?]  or another collide condition is detected a
  Donald> similar restriction on pick-a-nick can be turned on until
  Donald> ther danger of collisions is over.

  Donald> lengthening the nick is an option too, forcing all new nicks
  Donald> to 10 characters until the collide dangers passes.

  Donald> These are just seeds of ideas.. perhaps you can flesh it
  Donald> out.. ..

I use a simple scheme for the situation of new server starting up. I
have two configuration files. When I start the IRC server, it uses a
configuration with auto-connects but no I-lines. This is "startup"
mode and allows the IRC server to join the network and for things to
stabilise. Five minutes later, the real configuration file is put in
place and the server told to rehash, at which point clients can
connect and find the network already in place. Note that if you
regularly restart your IRC server, this is almost essential to stop
the script kiddies from using it for scheduled takeovers.

This doesn't address the problem of splits, but then again nick delay
does provide a little protection.

Note: I haven't commented on everything because some things you've
mentioned don't give me warm fuzzy feelings and I'd prefer not to be
negative. :)

 - Andrew
-- 
#!/usr/bin/env python
print(lambda s:s+"("+`s`+")")\
('#!/usr/bin/env python\012print(lambda s:s+"("+`s`+")")\\\012')
print(lambda x:x%`x`)('print(lambda x:x%%`x`)(%s)')

Attachment: pgp00012.pgp
Description: PGP signature