tracker/server/store/middleware/ip
2016-03-02 21:05:32 -05:00
..
blacklist.go errors: remove errors package 2016-03-02 21:05:32 -05:00
README.md doc: fixed IP blacklist/whitelist middleware documentation capitalization/snake_caseation 2016-03-02 21:05:32 -05:00
whitelist.go config.yaml: camelCase to snake_case 2016-03-02 21:05:32 -05:00

IP Blacklisting/Whitelisting Middlewares

This package provides the announce middlewares ip_blacklist and ip_whitelist for blacklisting or whitelisting IP addresses and networks for announces.

ip_blacklist

The ip_blacklist middleware uses all IP addresses and networks stored in the IPStore to blacklist, i.e. block announces.

Both the IPv4 and the IPv6 addresses contained in the announce are matched against the IPStore. If one or both of the two are contained in the IPStore, the announce will be rejected completely.

ip_whitelist

The ip_whitelist middleware uses all IP addresses and networks stored in the IPStore to whitelist, i.e. allow announces.

If present, both the IPv4 and the IPv6 addresses contained in the announce are matched against the IPStore. Only if all IP address that are present in the announce are also present in the IPStore will the announce be allowed, otherwise it will be rejected completely.

Important things to notice

Both middlewares operate on announce requests only. The middlewares will check the IPv4 and IPv6 IPs a client announces to the tracker against an IPStore. Normally the IP address embedded in the announce is the public IP address of the machine the client is running on. Note however, that a client can override this behaviour by specifying an IP address in the announce itself. This middleware does not (dis)allow announces coming from certain IP addresses, but announces containing certain IP addresses. Always keep that in mind.

Both middlewares use the same IPStore. It is therefore not advised to have both the ip_blacklist and the ip_whitelist middleware running. (If you add an IP address or network to the IPStore, it will be used for blacklisting and whitelisting. If your store contains no addresses, no announces will be blocked by the blacklist, but all announces will be blocked by the whitelist. If your store contains all addresses, no announces will be blocked by the whitelist, but all announces will be blocked by the blacklist.)