mysql會話控制限制登入次數(connection_control外掛)

1006356403發表於2019-08-28

資料庫環境:

Server version: 5.7.16 MySQL Community Server (GPL)

安裝方式1:

mysql> Install plugin connection_control soname "connection_control.so";

mysql> Install plugin connection_control soname "connection_control.so";
Query OK, 0 rows affected (0.03 sec)
mysql>

mysql> show plugins;

mysql> show plugins;
+----------------------------+----------+--------------------+-----------------------+---------+
| Name                       | Status   | Type               | Library               | License |
+----------------------------+----------+--------------------+-----------------------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL                  | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL                  | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_TEMP_TABLE_INFO     | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| INNODB_SYS_VIRTUAL         | ACTIVE   | INFORMATION SCHEMA | NULL                  | GPL     |
| MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| CSV                        | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| partition                  | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL                  | GPL     |
| ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL                  | GPL     |
| ngram                      | ACTIVE   | FTPARSER           | NULL                  | GPL     |
| rpl_semi_sync_master       | ACTIVE   | REPLICATION        | semisync_master.so    | GPL     |
| rpl_semi_sync_slave        | ACTIVE   | REPLICATION        | semisync_slave.so     | GPL     |
| CONNECTION_CONTROL         | ACTIVE   | AUDIT              | connection_control.so | GPL     |
+----------------------------+----------+--------------------+-----------------------+---------+
47 rows in set (0.00 sec)

安裝方式2:

# vim /etc/my.cnf

[mysqld]

#新增如下引數

plugin-load=CONNECTION_CONTROL=connection_control.so

connection_control_min_connection_delay=60000

重啟即可

3、檢視相關配置,進行調整

連續失敗次數3和超過失敗連線上限後的最小延遲登入時間為1分;

mysql> show variables like "%connection_control%";

mysql> show variables like "%connection_control%";
+-------------------------------------------------+------------+
| Variable_name                                   | Value      |
+-------------------------------------------------+------------+
| connection_control_failed_connections_threshold | 3          |
| connection_control_max_connection_delay         | 2147483647 |
| connection_control_min_connection_delay         | 1000       |
+-------------------------------------------------+------------+
3 rows in set (0.00 sec)

4、測試:如果三次登入驗證失敗,將等待1分鐘,如圖

Last login: Wed Aug 28 16:11:53 2019 from 192.168.10.1
[root@host1 ~]# mysql -u root -p1
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

5、解除安裝:

mysql> uninstall plugin CONNECTION_CONTROL;

6、總結

連續失敗登入控制是生效,避免了大量的、非法連線×××的可能性,為了增加安全係數,可增加最小延遲時間。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30317998/viewspace-2655293/,如需轉載,請註明出處,否則將追究法律責任。

相關文章