KamerBeveiliging

From Chat4AllFAQ
Revision as of 03:25, 1 December 2010 by FiXato (talk | contribs) (Initial Dutch version of ChannelSecurity. Still needs more translating)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Er zijn diverse manieren waarop je toegang tot je kanaal kan beperken. Dit artikel behandelt diverse suggesties om je kanaal te beveiligen tegen tegen aanvallen van kwaadwillende gebruikers.

Bedenk wel dat de beste manier om ervoor te zorgen dat je reguliere chatters zo min mogelijk overlast hebben van kwaadwillende gebruikers, nog steeds het hebben van voldoende actieve en betrouwbare operators in je kanaal is.

Geheim kanaal

De simpelste (en wellicht minst effectieve) manier om elke willekeurige gebruiker uit je kamer te weren, is door je kamer 'geheim' te maken met:

 /MODE #kamernaam +s

Als je bijvoorbeeld je kanaal #onzeGeheimeSchuilplaats 'geheim' wilt maken, dan voer je uit:

 /MODE #onzeGeheimeSchuilplaats +s

Dit zal je kanaal verbergen van de kamerlijst /LIST en van de /WHO en /WHOIS resultaten van gebruikers (tenzij ze al in dat kanaal zitten).

Voordelen

  • Kan gebruikt worden op niet-registreerde kamers.
  • Simpel in te stellen.
  • Voorkomt dat willekeurige gebruikers je kamernaam ontdekken via de /LIST, /WHO of /WHOIS commando's.

Nadelen

  • Als iemand jouw kamernaam in een ander kanaal vermeldt, dan kunnen (kwaadwillende) gebruikers alsnog je kanaal ontdekken.
  • Je krijgt wellicht minder snel nieuwe gebruikers, aangezien mensen met vergelijkbare interesses je kanaal niet kunnen ontdekken via /LIST
  • De kamermode zal verloren gaan als het kanaal vernietigd wordt (wat automatisch bijvoorbeeld gebeurd wanneer er niemand meer in het kanaal is. Dit kan omzeild worden voor geregistreerde kamers, door de +s mode toe te voegen aan de ChanServ MLOCK instelling van het kanaal.

Kamer sleutel

Een van de meer naieve manieren om toegang tot een publiek kanaal te beperken, is het instellen van een kamer sleutel:

 /MODE #kamernaam +k sleutelwoord

Om bijvoorbeeld te vereisen dat mensen de kamer sleutel 'onsGeheimeWoord' kennen om de kamer #onzeStafledenKamer binnen te gaan, moet je dit commando uitvoeren:

 /MODE #onzeStafledenKamer +k onsGeheimeWoord

If people want to join the channel then, they'd have to specify the key in the join command: Als mensen dan de kamer willen betreden, dan moeten ze de sleutel opgeven in het 'join' commando:

 /JOIN #kamernaam sleutelwoord

Voor onze voorbeeld kamer is dat bijvoorbeeld:

 /JOIN #onzeStafledenKamer onsGeheimeWoord

Voordelen

  • Kan gebruikt worden op niet-registreerde kamers.
  • Simpel in te stellen.
  • Voorkomt dat willekeurige gebruikers het kanaal binnen kunnen komen wanneer ze het in de kamerlijst zien met /LIST.

Nadelen

  • De kamermode zal verloren gaan als het kanaal vernietigd wordt (wat automatisch bijvoorbeeld gebeurd wanneer er niemand meer in het kanaal is. Dit kan omzeild worden voor geregistreerde kamers, door de +s mode toe te voegen aan de ChanServ MLOCK instelling van het kanaal.
  • De eerste gebruiker die binnenkomt heeft niet het sleutelwoord nodig om binnen te komen, aangezien het kanaal feitelijk nog niet bestaat op dat moment, en dus ook nog niet de +k mode heeft. Dit kan omzeild worden door de ChannelKeeper bot aan te vragen voor je kanaal, om hem te allen tijde open te houden.
  • Het is lastiger voor mensen om je kamer binnen te treden als ze een applet gebruiken.
  • Sleutelwoorden kunnen snel nutteloos gemaakt worden wanner een kwaadwillende gebruiker achter het sleutelwoord komt (bijvoorbeeld doordat iemand anders in het kanaal het sleutelwoord aan ze heeft gegeven, of door het op je website te lezen). Let verder ook op dat iedereen in het kanaal kan zien wat het huidige kamer sleutelwoord is, aangezien het onderdeel is van de kamer modi, en alle modi altijd zichtbaar zijn voor gebruikers in het kanaal. Kortom, als iemand 'invited' wordt in het kanaal, kunnen ze alsnog het sleutelwoord zien.


Alleen-uitnodigingen

Instellen kamermode

Je kan toegang tot je kamer beperken door alleen 'uitgenodigden' (/invite) toe te staan. Je kan je kamer 'invite-only' (alleen-uitnodigingen) maken via kamermode +i:

 /MODE #channel +i

Om bijvoorbeeld de voorbeeldkamer #ourStafledenKanaal invite-only te maken, gebruik

 /MODE #ourStafledenKanaal +i

Gebruiker uitnodigen

Om een gebruiker uit te nodigen gebruik je het commando:

 /INVITE nicknaam #kamernaam

Bijvoorbeeld, om de gebruiker JackDaniels uit te nodigen in #ourStafledenKanaal, voer je uit:

 /INVITE JackDaniels #ourStafledenKanaal

Het invite commando kan alleen door operators (@/+o) en hoger gebruikt worden wanneer de kamer 'invite-only' is. Pas op! Het uitnodigen van willekeurige mensen kan gezien worden als een vorm van reclame maken en zou een schending van de gebruiksregels van het IRC netwerk kunnen zijn.

Knock

A user can also request to be invited into the channel with the /KNOCK command:

 /KNOCK #channel message goes here

For instance, if I want to be invited to #ourStaffChannel, I can use:

 /KNOCK #ourStaffChannel Hei guys, please let me in. Itsa me! Mario!

The operators in the channel will then get an opnotice with your nickname, ident@hostmask and the message you supplied:

 NoticeOp(eu.chat4all.org): [Knock] by JackDaniels!Jack@the.liquor.cabinet (I want in..)

Upon which they can decide whether or not to invite you (or ban you in case they get tired of your knocks)

You can't knock if:

  • you are banned
  • you are already on the channel
  • the channel is not invite-only

Pros

  • Random users can't enter your channel without your permission
  • Your channel can still be public and interested users can /KNOCK to let you know they want to enter

Cons

  • An invite evades bans (if you invite a user that otherwise wouldn't be allowed to enter because of a +b channel-mode ban, he'll be allowed to enter.)

Unregistered channels

Unregistered channels only have access to the above commands. They'll also lose the +i mode when the channel is destroyed (for instance if the last user of the channel has left).

Extra cons for unregistered channels

  • The +i mode will be lost when the channel is 'destroyed' because the last user left.
  • The first user to enter does not need to be invited, because since +i is only set after the first user has entered. This can only be worked-around for registered channels using ChannelKeeper and ChanServ MLOCK; see the next section for details)
  • An operator always needs to be active to let people in (though there are ways for registered channels to work around this, see further sections)

Registered channels

Registered channels can add the +i channel-mode to the ChanServ MLOCK, so it will automatically be set (and not allowed to be unset) upon channel creation (when the first user enters the room). However, since no channel-modes are in effect when a channel has no users, the first user to enter the channel will be able to enter without being invited (since +i will be set after the first user has entered). This can be circumvented by requesting the ChannelKeeper to be added to your room to always keep it open.

Users with the appropriate rights can also use the /CHANSERV INVITE #channel command to invite themselves into the channel. See the following sections for details on what the appropriate rights are. For instance, to invite yourself to #ourStaffChannel, you can use:

 /CHANSERV INVITE #ourStaffChannel

This can only be used to invite yourself and not others.

Extra pros for registered channels

  • You can add +i to the channel's ChanServ MLOCK setting.
  • You can request a ChannelKeeper to keep the channel open so the +i mode is also effective for the first real user to enter the channel.
  • CHANSERV INVITE can be used by users with the proper rights (see next sections for details)

Extra cons for registered channels

  • Access levels need to be managed

Using xOP system

If you are using the xOP ChanServ user-management system (which is being used by default on newly registered channels), you can add people to the AOP list to allow them to invite themselves into the channel through ChanServ:

 /CHANSERV AOP #channel ADD nickname

For instance, to add JackDaniels to the AOP list of #ourStaffChannel, issue the command:

 /CHANSERV AOP #ourStaffChannel ADD JackDaniels

After which JackDaniels can issue:

 /CHANSERV INVITE #ourStaffChannel

to have himself invite into the channel by ChanServ (or it will appear to come from the channel's BotServ bot if BOTSERV SET SYMBIOSIS is set to ON and a BotServ bot has been assigned to the channel).

Extra cons for xOP

  • The use of CHANSERV INVITE can only be granted to AOPs and above

Using ACCESS system

If you are using the ACCESS LEVELS system instead of the xOP system, you have a bit more control over who you'll allow access to the ChanServ INVITE command to invite themselves into the channel. For information on how/when to enable the ACCESS LEVELS system by disabling the xOP system, please read the main article on access levels.

Using the default access levels, you can add a user with the minimum of level 5 to your channel's ChanServ Access list:

 /CHANSERV ACCESS #channel ADD nickname level

For instance to add JackDaniels to the access list of channel #liquorStore with level 5, issue:

 /CHANSERV ACCESS #liquorStore ADD JackDaniels 5

You can also chose to lower/raise the required level for the Chanserv INVITE command by changing the minimum required level with:

 /CHANSERV LEVELS #channel SET INVITE minLevel

For instance to lower the minimum required access level for INVITE on #liquoreStore to 1, you can use:

 /CHANSERV LEVELS #liquoreStore SET INVITE 1

Now everyone with access level 1 or higher can use the INVITE command.

For instance:

 /CHANSERV ACCESS #liquorStore ADD JackDaniels 1

will allow JackDaniels to use /CHANSERV INVITE #liquorStore without giving him KICK/OP/etc rights (at least with the default chanserv levels settings)

Extra pros for ACCESS

  • The use of CHANSERV INVITE can be granted to any minimum level you set for it.

ChanServ Restricted

With ChanServ's RESTRICTED setting you can have people that aren't allowed in the channel automatically kick-banned. Set this setting with:

 /CHANSERV SET #channel RESTRICTED [ON|OFF]

For instance, to enable ChanServ's RESTRICTED setting for channel #liquorStore, use:

 /CHANSERV SET #liquorStore RESTRICTED ON

From now on, only registered people on the channel's access lists will be able to join the channel. If the channel's SECURE setting is ON, they also need to be identified for their nickname through NickServ, if it is set to OFF, they will also be allowed in if they are semi-identified.

About semi-identified

You are semi-identified when:

  1. You have a registered nickname
  2. You are NOT identified for that nickname through /NICKSERV IDENTIFY
  3. Your NickServ SECURE setting is set to OFF (please note that this by default is set to ON)
  4. You are connected from a host that matches the hostmask in your /NICKSERV ACCESS LIST

Channels will only grant you the appropriate rights if its ChanServ SECURE setting is OFF. If the channel's ChanServ SECURE is set to ON, it will require users to be identified for their nicknames before regarding them as the registered user.

using xOP system

You need to add registered people to the VOP/HOP/AOP/SOP lists to grant them access to the channel. Command's syntax:

 /CHANSERV [VOP|HOP|AOP|SOP] #channel ADD nickname

For instance, to add the registered user JackDaniels to the VOP (auto-voice) list of the channel #liquorStore, issue:

 /CHANSERV VOP #liquorStore ADD JackDaniels

Since the minimal required level is VOP, I suggest to just add them as VOP unless they require operator rights as well.

You can revoke their access by using:

 /CHANSERV [VOP|HOP|AOP|SOP] #channel DEL nickname

For instance to revoke JohnnieWalker's access to #liquoreStore (if he was previously added to the VOP list), type:

 /CHANSERV VOP #liquorStore DEL JohnnieWalker

Followed by a swift /kick #liquorStore JohnnieWalker Be gone thou foul excuse for whisky! if the user was still on the channel.

using ACCESS system

You need to add registered users to the ChanServ ACCESS list with an access level of at least 1 to grant them access to the channel. Use the following command syntax:

 /CHANSERV ACCESS #channel ADD nickname level

For instance, to grant WilliamLawson access to #liquorStore with level 1, issue:

 /CHANSERV ACCESS #liquorStore ADD WilliamLawson 1

Since the minimal required level is 1, I suggest for users that only need to be allowed on the channel and don't require other rights, you only add them with level 1. If they require more rights, raise their level appropriately. See the Access Levels article for details.

If you need to revoke someone's access, use:

 /CHANSERV ACCESS #channel DEL nickname

For instance, to revoke Tequila's access to #liquorStore, issue:

 /CHANSERV ACCESS #liquorStore DEL Tequila

Please note that to be able to alter the ACCESS list, you need a level of at least ACC-CHANGE (change this required minimum level with /CHANSERV LEVELS #channel SET ACC-CHANGE level (if you have the minimum require level for the SET command)).

NOJOIN Level

There is also a NOJOIN level you can alter through ChanServ:

 /CHANSERV LEVELS #channel SET NOJOIN level

By default, on a newly created channel, this is set to level -2, allowing everyone to be on the channel, unless they have a userlevel of -2 or lower.

However, when you enable RESTRICTED, it will automatically be changed to 0, thus disallowing everyone who is NOT on the access level with a level of 1 or higher.
You can still change this back manually to -2 after you've set RESTRICTED ON with:

 /CHANSERV LEVELS #channel SET NOJOIN -2

Which will allow everyone to your channel, unless they are on the channel's ChanServ ACCESS list with a level of -2 or below.

Please note that the RESTRICTED setting seems to only work as a toggle for the NOJOIN level; even with RESTRICTED set to OFF, you can still limit access to your channel based on the NOJOIN level. The command seems to be only added to work as a toggle for channels that are using the xOP system.

After testing, we've deducted that: RESTRICT ON will force NOJOIN to 0 if the current NOJOIN level is negative RESTRICT OFF will force NOJOIN to -2 if the current NOJOIN is equal or greater than 0

Here's an overview of what we tested with the given NOJOIN levels:

NOJOIN -2 ->

 Kickbans:
   # only those who are on the access list with a level of -2 or below
 Allows:
   # everyone who is on the access list with a level of -1 or above
   # everyone who isn't on the access list

NOJOIN -1 ->

 Kickbans:
   # people who aren't identified for their nickname
   # people with nicks on the access list, but who aren't identified for their nickname, nor semi-identified
 Allows: 
   # people who are identified for their nickname, 
   # people who are on the ChanServ ACCESS list with a nickname that is semi-identified (unless the channel's SECURE setting is ON)

NOJOIN 0 ->

 Kickbans:
   # everyone who is NOT on the access list
   # everyone who is on the access list with a negative level
 Allows:
   # everyone who is on the access list with a positive level

Pros

  • You have a very strict way of selecting which users you want in your channel
  • All your users need to be registered

Cons

  • You need to manually add every single user to your channel's access list
  • Users need to be registered
  • Users need to make sure they are identified for their nickname (or semi-identified if your channel's SECURE setting is OFF) before they join the channel. Otherwise they'll automatically get banned, and unless they have the required level for the /CHANSERV UNBAN command, they still can't get in.