Page 1 of 1

[Mod] Extended Ban v2 [xban2]

Posted: Tue May 20, 2014 03:31
by kaeza

Extended Ban Mod for Minetest

This mod attempts to be an improvement to Minetest's ban system.
  • It supports normal bans and temporary bans (from 60 seconds up to the end of time, with 1 second granularity).
  • Records and joins all accounts using the same IP address and several IP addresses using the same name into a single record, and can ban/unban them as a single user.
  • Can ban offline players if you know their IP or username.
  • Holds a record of bans for each user, so moderators and administrators can consult it to know if a player is a repeat offender.
  • Does not modify the default ban database in any way (`ipban.txt').
  • Has an API to ban and check the ban database to allows other mods to manage users (for example, anticheat mods).
Usage
Install the mod as always and rename to `xban2'.

The mod provides the following chat commands:

Code: Select all

/xban <player_or_ip> <reason>
Ban a player permanently.

Code: Select all

/xtempban <player_or_ip> <time> <reason>
Ban a player temporarily. The syntax for `<time>' is:
  • 1s - Ban for one second.
  • 1m - Ban for one minute.
  • 1h - Ban for one hour.
  • 1D - Ban for one day (24 hours).
  • 1W - Ban for one week (7 days).
  • 1M - Ban for one month (30 days).
  • 1Y - Ban for one year (360 days).
Values can be combined. For example "1D3h3m7s" will ban for 1 day, 3 hours, 3 minutes, and 7 seconds.
Note that the units are just for convenience. You are not required to provide values within the bounds. It is possible to specify "3600s", which is the same as "60m" or "1h". Also note that the 's' is optional. Specifying just "42" is the same as "42s".

Code: Select all

/xunban <player_or_ip>
Unban a player.

Advanced Use

Code: Select all

/xban_record <player_or_ip>
See a player's ban record.

Code: Select all

/xban_dbi <importer>
Import a database. Valid values for `<importer>' are:
  • "minetest" - Import ban list from `ipban.txt' (Minetest ban database).
  • "v1" - Import ban list from `players.iplist' (xban v1 database).
All commands except for `/xban_dbi' require `ban' privilege to execute. The `/xban_dbi' command requires `server' privilege.

License: BSD 2 Clause License.
Dependencies: None.

Links
Download .zip
Download .tar.gz
Browse code on Github

Re: [Mod] Extended Ban v2 [xban2]

Posted: Tue May 20, 2014 03:58
by LazyJ
Is this compatible with the previous version of "xban's" files, kaeza?

Re: [Mod] Extended Ban v2 [xban2]

Posted: Tue May 20, 2014 04:09
by kaeza
LazyJ wrote:Is this compatible with the previous version of "xban's" files, kaeza?
Not currently. I'm working on providing converters from MT's ipban.txt, old xban v1 `players.iplist', and newer `players.iplist.v2' formats, along with more utilities.

BTW, for those who used my old xban mod, the advantages of this one are:
  • Has a saner DB format (using a minetest.(de)serialize-compatible format.
  • Fixes an old bug where some users were not actually getting banned under some circumstances.
  • As said above, ban record :)
  • It's title says v2! so it must be better than v1! the internet said it, so it must be true!

Re: [Mod] Extended Ban v2 [xban2]

Posted: Tue May 20, 2014 10:26
by Krock
*shuts down server*
*installs*

Re: [Mod] Extended Ban v2 [xban2]

Posted: Wed May 21, 2014 10:13
by kaeza
*BUMP*

LazyJ: Added command to import old v1 DB and Minetest `ipban.txt'.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Fri May 23, 2014 08:48
by kaeza
Update:
  • Added `/xban_record' command to list players' ban records.
  • The mod now saves the last position of the banned player (if they are online). The `/xban_record' command also shows the last known position of the player, if available.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Jun 26, 2014 05:16
by LazyJ
kaeza, is xban2 capable of importing players.iplist.v2 ?

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Jun 26, 2014 06:25
by kaeza
Update:
  • Fixed an ugly bug that could cause unwanted bans on servers. It is recommended to delete the database and start anew, or run this script in the standalone Lua interpreter (get it from your favorite package manager, or from here) to purge duplicate entries. Thanks to Zeno` for testing :)
  • Added importer for old v2 database format. Thanks to LazyJ for helping with testing :)

Re: [Mod] Extended Ban v2 [xban2]

Posted: Wed Oct 01, 2014 03:59
by stormchaser3000
ok um here is a bug: when i xtempban someone they get permanetly banned until i execute xunban. and yes i did use xtempban

Re: [Mod] Extended Ban v2 [xban2]

Posted: Wed Aug 05, 2015 00:21
by kaeza
Update:
  • Fixed temporary bans not working at all (the function responsible for removing expired bans was not being run).
  • The `/xban_record` command now lists the ban "source". The "source" is the player or mod that performed the ban (the source was always stored in the database, but the report did not include it).

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Sep 22, 2016 16:34
by Lejo
Is it possible to see the ips of the players?
Can I ban player per mac-Address?

This mod is soooooo nice!

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Jan 26, 2017 10:14
by kaeza
The players' IP(s) are recorded in the database, but are not currently visible anywhere (except when banning).

Banning by MAC address is not possible as we don't have access to that info.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Fri Feb 24, 2017 22:23
by Lichtbringer
But if trollip/trollname is banned and he tries to login as trollip/myname, wouldn't that ban me too?
(because myname gets linked to trollip's account)

If someone lives in a living group or orphanage, banning one would ban all.
It is also a very certain ban on all shared ips like school-ips, internet-coffee-shops, …

Re: [Mod] Extended Ban v2 [xban2]

Posted: Sat Feb 25, 2017 00:04
by kaeza
That's a known issue, and I don't feel it's worth it to resolve it. Will accept suitable patches of course.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Apr 13, 2017 01:36
by redblade7
Is it safe to manually remove all (or all but one) IPs out of the xban.db file (from the "names" section with the usernames)?

Re: [Mod] Extended Ban v2 [xban2]

Posted: Mon Apr 24, 2017 02:40
by kaeza
Yes it is. The database has no circular references or anything hidden, so simply removing a name or IP from an entry disassociates it from the "user".

Re: [Mod] Extended Ban v2 [xban2]

Posted: Mon Apr 24, 2017 03:22
by redblade7
kaeza wrote:Yes it is. The database has no circular references or anything hidden, so simply removing a name or IP from an entry disassociates it from the "user".
Right after posting that message two weeks ago, I decided to try anyway, and the server (Creative Gardens) has worked fine with no problems. Thank you!

Re: [Mod] Extended Ban v2 [xban2]

Posted: Tue Feb 13, 2018 03:33
by redblade7
Could you please add the ability to ban IP ranges? Currently the only way to do this is iptables which can cause massive server lag if the range is too large.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Wed Feb 14, 2018 22:08
by scottwolff
I banned a hacker for one year with this. My moderator asked why not forever, so I banned for 99 years.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Aug 23, 2018 01:14
by redblade7
redblade7 wrote:Could you please add the ability to ban IP ranges? Currently the only way to do this is iptables which can cause massive server lag if the range is too large.
Actually the "massive server lag" was another issue I dealt with some time ago, see other posts. Still it would be nice to have IP range bans.

Question: Is this compatible with IPv6? My ISP doesn't have IPv6 support, so I never enabled it on my servers as accessing it via IPv6 would only be possible through Microsoft's built-in gateway on my Win10 computer. IPv6 would be more effective at banning people, for those whose ISPs or mobile devices support it.

Re: [Mod] Extended Ban v2 [xban2]

Posted: Thu Aug 23, 2018 03:49
by Lone_Wolf
redblade7 wrote:
redblade7 wrote:Could you please add the ability to ban IP ranges? Currently the only way to do this is iptables which can cause massive server lag if the range is too large.
Actually the "massive server lag" was another issue I dealt with some time ago, see other posts. Still it would be nice to have IP range bans.

Question: Is this compatible with IPv6? My ISP doesn't have IPv6 support, so I never enabled it on my servers as accessing it via IPv6 would only be possible through Microsoft's built-in gateway on my Win10 computer. IPv6 would be more effective at banning people, for those whose ISPs or mobile devices support it.
I'm pretty sure this does support IPv6

Re: [Mod] Extended Ban v2 [xban2]

Posted: Sat Dec 29, 2018 00:37
by Ruslan1
can you add /ban_list

Re: [Mod] Extended Ban v2 [xban2]

Posted: Sat Dec 29, 2018 10:12
by Lejo
There is already /xban_gui

Re: [Mod] Extended Ban v2 [xban2]

Posted: Wed Jun 05, 2019 01:14
by redblade7