* New settings: "Ban anonymous user's IP when user is banned from a chatroom": * if enabled, every time a streamer bans an anonymous user, it will ban its IP on the chat server, * banned IPs are logged on disk, so server's admin can use them to feed fail2ban (for example), * option disabled by default, because could be used to create trapped-rooms on public servers
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
labels:
 | 
						|
- 'Stage-Alpha'
 | 
						|
summary: Ban users from chatrooms by their IP address
 | 
						|
...
 | 
						|
 | 
						|
Note: this is a slightly modified version: the log level for IP bans is
 | 
						|
set to info, instead of debug.
 | 
						|
So we can use external tools (fail2ban for example) to block IPs more widely.
 | 
						|
 | 
						|
Introduction
 | 
						|
============
 | 
						|
 | 
						|
One frequent complaint about XMPP chatrooms (MUCs) compared to IRC is
 | 
						|
the inability for a room admin to ban a user based on their IP address.
 | 
						|
This is because an XMPP user is not identified on the network by their
 | 
						|
IP address, only their JID.
 | 
						|
 | 
						|
This means that it is possible to create a new account (usually quite
 | 
						|
easily), and rejoin the room that you were banned from.
 | 
						|
 | 
						|
This module allows the **user's** server to enforce bans by IP address,
 | 
						|
which is very desirable for server admins who want to prevent their
 | 
						|
server being used for spamming and abusive behaviour.
 | 
						|
 | 
						|
Details
 | 
						|
=======
 | 
						|
 | 
						|
An important point to note is that this module enforces the IP ban on
 | 
						|
the banned user's server, not on the MUC server. This means that:
 | 
						|
 | 
						|
-   The user's server MUST have this module loaded, however -
 | 
						|
-   The module works even when the MUC is on a different server to the
 | 
						|
    user
 | 
						|
-   The MUC server does not need this module (it only needs to support
 | 
						|
    the [standard ban
 | 
						|
    protocol](http://xmpp.org/extensions/xep-0045.html#ban))
 | 
						|
-   The module works for effectively banning [anonymous
 | 
						|
    users](http://prosody.im/doc/anonymous_logins)
 | 
						|
 | 
						|
Also note that IP bans are not saved permanently, and are reset upon a
 | 
						|
server restart.
 | 
						|
 | 
						|
Configuration
 | 
						|
=============
 | 
						|
 | 
						|
There is no extra configuration for this module except for loading it.
 | 
						|
Remember... do not load it on the MUC host, simply add it to your global
 | 
						|
`modules_enabled` list, or under a specific host like:
 | 
						|
 | 
						|
``` lua
 | 
						|
VirtualHost "anon.example.com"
 | 
						|
  authentication = "anonymous"
 | 
						|
  modules_enabled = { "muc_ban_ip" }
 | 
						|
```
 | 
						|
 | 
						|
Compatibility
 | 
						|
=============
 | 
						|
 | 
						|
  ----- --------------
 | 
						|
  0.9   Works
 | 
						|
  0.8   Doesn't work
 | 
						|
  ----- --------------
 |