TMAegis
More rules for tdsql

TMA-TDSQL-9.6

Ensure `max_connect_errors` Is Reasonably Set

LowLevel 2Automatedtdsql

Description

max_connect_errors controls the threshold of consecutive connection errors from the same host after which MySQL automatically blocks subsequent connections from that host. Runs the mysql client against the TDSQL data node selected by TDSQL_MYSQL_OPTS (e.g. "-h10.0.0.5 -P4001 -utdsql_audit"); keep the password in ~/.my.cnf or a login path rather than MYSQL_PWD or the command line (see 1.4 and 1.5). Passes when max_connect_errors is 100 or less (TDSQL default 2000).

How it is checked

Audit method: SQL query

sql_query
out=$(mysql ${TDSQL_MYSQL_OPTS:-} -NBe "SELECT CASE WHEN @@global.max_connect_errors <= 100 THEN 'compliant' ELSE 'noncompliant' END" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

SET GLOBAL max_connect_errors = 100;

Properties

Operating systems
Any
Tags
tdsqlauthentication
Reference
CIS Tencent TDSQL 10.3.22 Benchmark v1.0.0 - 9.6 Ensure `max_connect_errors` Is Reasonably Set

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target tdsql --level 2