A TCP-level bot gate for BBS systems. BotGate sits in front of your BBS's real telnet port and requires each caller to press ESC twice within a configurable timeout before your actual BBS software ever sees the connection. Callers who don't respond - or who are obviously automated rather than human - are disconnected without ever reaching the BBS. Originally built to protect a Spitfire BBS node running behind a NetSerial virtual-modem bridge, but should work with any BBS reachable over telnet since it operates purely at the TCP/telnet level with no dependency on, or awareness of, what's actually running behind it.
Features: Custom ansi/ascii prompt screens - Synchronet-style .can blocklist support - Geo-blocking via IP2Location-format .htaccess lists - Reverse-DNS hostname matching - Per-IP simultaneous connection cap - Automatic rate-limiting with a self-managed, human-readable temporary ban file -For Sync sysops optional proxy protocol support, so Sync (with HAPROXY_PROTO enabled) can still see the real caller's IP for their own filtering and logs - Pure Python 3 standard library, no third-party dependencies, runs on Linux, Windows, and macOS.
[
https://github.com/xbit44/botgate]
https://github.com/xbit44/botgate