6209
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
1 ---
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
2 labels:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
3 - 'Stage-Alpha'
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
4 summary: 'Flag accounts registered by IPs matching blocklists'
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
5 depends:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
6 - mod_anti_spam
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
7 ---
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
8
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
9 This module is designed for servers with public registration enabled, and
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
10 makes it easier to identify accounts that have been registered by potentially
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
11 "bad" IP addresses, e.g. those that are likely to be used by spam bots.
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
12
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
13 **Note:** Running a Prosody instance with public registration enabled opens up
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
14 your server as a potential relay for spam and abuse, which can have a negative
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
15 impact on your server and the network as a whole. We do not recommended it
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
16 unless you have prior experience operating public internet services and are
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
17 prepared for the time and effort necessary to tackle any issues. For other
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
18 advice, see the Prosody documentation on [public servers](https://prosody.im/doc/public_servers).
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
19
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
20 ## How does it work?
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
21
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
22 When a user account is registered on your server, this module checks the user's
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
23 IP address against a list of configured blocklists. If a match is found, it
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
24 flags the account using [mod_flags].
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
25
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
26 Flags can be reviewed and managed by using the mod_flags commands and flagged
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
27 accounts can be automatically restricted, e.g. by mod_firewall or similar.
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
28
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
29 This module supports two kinds of block lists:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
30
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
31 - DNS blocklists (DNSBLs)
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
32 - Text files, with one IP/subnet per line
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
33
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
34 ## Configuration
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
35
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
36 **Note:** mod_dnsbl requires mod_anti_spam to be installed, but it does not
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
37 need to be enabled or loaded (only some code is shared). mod_flags is also
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
38 required, and this will be automatically loaded if not specified in the
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
39 config file.
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
40
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
41 The main configuration option is `dnsbls`, a list of DNSBL addresses:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
42
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
43 ```lua
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
44 dnsbls = {
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
45 "dnsbl.dronebl.org";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
46 "cbl.abuseat.org";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
47 }
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
48 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
49
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
50 You can set a message to be sent to users who register from a matched IP
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
51 address:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
52
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
53 ```lua
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
54 dnsbl_message = "Your IP address has been detected on a block list. Some functionality may be restricted."
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
55 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
56
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
57 You can change the default flag that is applied to accounts:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
58
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
59 ```lua
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
60 dnsbl_flag = "dnsbl_hit"
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
61 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
62
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
63 ### File-based blocklists
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
64
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
65 As well as real DNSBLs, you can also put file-based blocklists here, by
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
66 prefixing `@` to a filesystem path (Prosody must have read permission to
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
67 access the file):
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
68
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
69 ```lua
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
70 dnsbls = {
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
71 "dnsbl.dronebl.org";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
72 "@/etc/prosody/ip_blocklist.txt";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
73 }
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
74 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
75
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
76 The file must contain a single IP address or subnet on each line, though blank
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
77 lines and comments are ignored. For example:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
78
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
79 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
80 # This is a comment
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
81 203.0.113.0/24
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
82 2001:db8:7894::/64
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
83 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
84
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
85 File-based lists are automatically reloaded when you reload Prosody's
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
86 configuration.
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
87
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
88 ### Advanced configuration
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
89
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
90 You can override the flag and message on a per-blocklist basis with a slightly
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
91 more detailed configuration syntax:
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
92
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
93 ```lua
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
94 dnsbls = {
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
95 ["dnsbl.dronebl.org"] = {
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
96 flag = "dnsbl_hit";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
97 message = "Your account is restricted because your IP address has been detected as running an open proxy. For more information see https://dronebl.org/lookup?ip={registration.ip}";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
98 };
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
99 ["@/etc/prosody/ip_blocklist.txt"] = {
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
100 flag = "local_blocklist";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
101 message = "Your account is restricted";
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
102 };
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
103 }
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
104 ```
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
105
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
106 ## Compatibility
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
107
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
108 Compatible with Prosody 0.12 and later.
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
109
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
110 If you are using Prosody 0.12, make sure you install mod_flags from the
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
111 community module repository. If you are using a later version, mod_flags is
|
Trần H. Trung <xmpp:trần.h.trung@trung.fun>
parents:
diff
changeset
|
112 already included with Prosody.
|