readme work

master
flux 2019-08-11 01:29:50 +00:00
parent 75ef683d4f
commit 2366da694d
1 changed files with 87 additions and 19 deletions

106
README.md
View File

@ -24,42 +24,110 @@ Sban is a good first attempt at IP-aware bans, but it has several major flaws:
effective way to keep them off the server.
BillyS's verification mod was created to deal with one particular troll on
the BlockySurvival server. When enabled, it requires all new players to be
verified by a player with moderator privileges before they can interact with
the server or communicate with non-moderator players.
the BlockySurvival server, who repeatedly got around sban by getting new IPs
from VPNs and his regular mobile service provider. When enabled, it requires
all new players to be verified by a player with moderator privileges before
they can interact with the server or communicate with non-moderator players.
The flaws in the verification mod are
1. Moderators are not always online to verify new players.
2. New players come from all over the world, and may not be able to communicate
1. Verification is all-or-nothing; either all new players require verification,
or none of them do.
2. Moderators are not always online to verify new players.
3. New players come from all over the world, and may not be able to communicate
with the moderator.
3. New players are of all ages, and may not be able to communicate in chat at
4. New players are of all ages, and may not be able to communicate in chat at
all.
Verbena aims to provide name-based banning, as well as ip and network based
Verbana aims to provide name-based banning, as well as ip and network based
blocking and verification.
1. IPs and Networks may be marked as "untrusted" - all new players from
untrusted IPs/networks must go through verification, while other new
players may join at will.
2. IPs and Networks may be blocked or temporarily blocked, should the need
2. A "verification jail" can optionally be specified, which prevents unverified
players from getting loose on the server.
3. IPs and Networks may be blocked or temporarily blocked, should the need
arise.
3. There is a three tiered privilege system: Normal players, moderators,
and admins. Moderators may ban and verify players, but only admins have
the ability to mark IPs and networks as untrusted. This way, player's
personal details may be kept private. However, operators may execute queries-
to determine if a player is associated with other banned players by IP or
network.
Some features of sban that the first release of Verbana will likely lack:
* A GUI. The sban GUI does not work particularly well anyway, and I don't know formspec. Use commands.
* Import/export from various other ban formats. I plan to import data from sban, but I don't have a use case for the rest.
* A GUI. The sban GUI does not work particularly well anyway, and I don't know
formspec. Use commands.
* Import/export from various other ban formats. I plan to import data from sban,
but I don't have a use case for the rest. However, if someone wants to write
a module to import from e.g. xban2, be my guest.
Requirements
============
* Verbana must be listed as a trusted mod in minetest.conf (`secure.trusted_mods`), in order to use a sqlite database.
* Verbana must be listed as a trusted mod in minetest.conf (`secure.trusted_mods`),
in order to use a sqlite database.
* lsqlite3 (SQLite3 for Lua) must be installed and accessible to minetest's Lua.
* The easiest way I know how to do this: install luarocks, and execute `sudo luarocks --lua-version 5.1 install lsqlite3`
* The minetest server must use IPv4 exclusively. I've made zero attempt to support IPv6.
* The easiest way I know how to do this: install luarocks, and execute
`sudo luarocks --lua-version 5.1 install lsqlite3`
* The minetest server must use IPv4 exclusively. I've made zero attempt to support
IPv6.
--------------
list of commands for documentation:
# Administration
sban_import [<filename>]
verification on | off
# General status
reports [<timespan>=1w]
bans [<number>=20]
who2
# Player inspection
pgrep <pattern> [<limit>=20]
asn <player_name> | <IP>
cluster <player_name>
status <player_name> [<number>]
inspect <player_name>
ban_record <player_name>
logins <player_name> [<number>=20]
# Player management
kick <player_name> [<reason>]
ban <player_name> [<timespan>] [<reason>]
unban <player_name> [<reason>]
suspect <player_name> [<reason>]
unsuspect <player_name> [<reason>]
verify <player_name> [<reason>]
unverify <player_name> [<reason>]
whitelist <player_name> [<reason>]
unwhitelist <player_name> [<reason>]
master <alt> <master>
unmaster <player_name>
# IP inspection
ip_inspect <IP> [<timespan>=1w]
ip_status <IP> [<number>]
# IP management
ip_block <IP> [<timespan>] [<reason>]
ip_unblock <IP> [<reason>]
ip_suspect <IP> [<reason>]
ip_unsuspect <IP> [<reason>]
ip_trust <IP> [<reason>]
ip_untrust <IP> [<reason>]
# ASN inspection
asn_inspect <ASN> [<timespan>=1w]
asn_status <ASN> [<number>]
asn_stats <ASN>
# ASN management
asn_block <ASN> [<timespan>] [<reason>]
asn_unblock <ASN> [<reason>]
asn_suspect <ASN> [<reason>]
asn_unsuspect <ASN> [<reason>]
# Available to all players
report <message>
first-login <player_name>