feat: add per-listener SOCKS5 server authentication (RFC 1929)
Per-listener username/password auth via `auth:` config key. When set, clients must negotiate method 0x02 and pass RFC 1929 subnegotiation; no-auth (0x00) is rejected to prevent downgrade. Listeners without `auth` keep current no-auth behavior. Includes auth_failures metric, API integration (/status auth flag, /config auth_users count without exposing passwords), config parsing with YAML int coercion, integration tests (success, failure, method rejection, no-auth unchanged), and documentation updates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,9 @@ chain:
|
||||
# listeners:
|
||||
# - listen: 0.0.0.0:1080
|
||||
# pool: clean # default for bare "pool"
|
||||
# auth: # SOCKS5 username/password (RFC 1929)
|
||||
# alice: s3cret # username: password
|
||||
# bob: hunter2
|
||||
# bypass: # skip chain for these destinations
|
||||
# - 127.0.0.0/8 # loopback
|
||||
# - 10.0.0.0/8 # RFC 1918
|
||||
|
||||
Reference in New Issue
Block a user