1. 接続制御プラグイン(connection_control)の紹介
接続制御プラグイン ファイルの基本名は 1.1 connection_controlプラグインを動的にインストールするmysql> プラグイン CONNECTION_CONTROL SONAME 'connection_control.so' をインストールします。 クエリは正常、影響を受けた行は 0 行 (0.04 秒) mysql> プラグイン CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so' をインストールします。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) 1.2 プラグインのステータスを確認するmysql> 選択 -> プラグイン名、プラグインステータス -> から -> INFORMATION_SCHEMA.PLUGINS -> どこ -> PLUGIN_NAME LIKE 'connection%'; +------------------------------------------+---------------+ | プラグイン名 | プラグインステータス | +------------------------------------------+--------------+ | CONNECTION_CONTROL | アクティブ | | CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | アクティブ | +------------------------------------------+---------------+ 1.3 インストールが完了すると、関連するシステム変数が表示されます。mysql> 'connection_control%' のような変数を表示します。 +-------------------------------------------------+------------+ | 変数名 | 値 | +-------------------------------------------------+------------+ | 接続制御失敗接続しきい値 | 3 | | 接続制御最大接続遅延 | 2147483647 | | 接続制御の最小接続遅延 | 1000 | +-------------------------------------------------+------------+ プラグインのインストールは非常に簡単であることがわかりますが、このプラグインには具体的にどのような機能がありますか?まず、関連するシステム変数について説明しましょう。
この時点で、 2. 接続制御実験具体的な実験をしてみましょう。実験効果を上げるために、失敗しきい値を 10 に設定し、最小遅延時間を 1 分に設定しました。つまり、10 回連続して接続に失敗した場合、最小遅延応答時間は 1 分です。わざと間違ったパスワードを入力して試してみましょう。 2.1 初期状態mysql> 'connection_control%' のような変数を表示します。 +-------------------------------------------------+------------+ | 変数名 | 値 | +-------------------------------------------------+------------+ | 接続制御失敗接続しきい値 | 10 | | 接続制御最大接続遅延 | 2147483647 | | 接続制御の最小接続遅延 | 60000 | +-------------------------------------------------+------------+ セット内の 3 行 (0.01 秒) mysql> information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS から * を選択します。 空のセット (0.00 秒) 2.2 故意に間違ったパスワードを入力する[root@localhost ~]# mysql -utestuser -p123 mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 エラー 1045 (28000): ユーザー 'testuser'@'localhost' のアクセスが拒否されました (パスワード使用: YES) 2.3 失敗記録の表示mysql> information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS から * を選択します。 +----------------+-----------------+ | ユーザーホスト | 失敗した試行 | +----------------+-----------------+ | 'テストユーザー'@'%' | 1 | +----------------+-----------------+ セット内の 1 行 (0.00 秒) # 連続失敗回数がしきい値を超えると、再接続時に遅延が発生します。つまり、パスワードが正しいかどうかが返されるまでに一定の時間がかかります。mysql> SELECT * FROM information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS; +----------------+-----------------+ | ユーザーホスト | 失敗した試行 | +----------------+-----------------+ | 'テストユーザー'@'%' | 10 | +----------------+-----------------+ mysql> プロセスリストを表示します。 +---------+----------+--------------------+--------------------+--------+--------------------------------------+------------------+ | ID | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 | +---------+----------+--------------------+--------------------+--------+--------------------------------------+------------------+ | 1817003 | root | localhost | NULL | クエリ | 0 | 開始 | プロセスリストを表示 | | 1817091 | testuser | localhost | NULL | 接続 | 16 | connection_control プラグインで待機中 | NULL | +---------+----------+--------------------+--------------------+--------+--------------------------------------+------------------+ 通常の状況では、間違ったパスワードを入力すると、すぐにエラーメッセージが返されます。連続した失敗回数がしきい値に達すると、次の接続試行が遅延されます。具体的な症状としては、スタックしてしまい、遅延が終わるまでエラーメッセージが返されないというものです。 したがって、このプラグインがクライアント側のブルートフォースクラッキングを防止できる理由を理解する必要があります。ブルートフォースクラッキングが1分間に120回試行されると仮定すると、このプラグインを有効にした後、一定回数連続して失敗すると応答が遅延され、失敗回数が増えるにつれて遅延時間が増加します。直前に次のクラッキングを開始できますが、遅延時間後にのみ次の試行を開始できるため、ブルートフォースクラッキングのリスクを大幅に削減できます。 ただし、接続制御プラグインを有効にした後は、遅延接続の有無に注意する必要があります。遅延接続も接続数を占有し、接続バックログが発生して接続不足につながる可能性があるためです。したがって、接続の遅延が発生した場合は、接続先をすぐに確認し、パスワードが正しく入力されていることを確認する必要があります。 このプラグインを有効にするには、適切なしきい値と遅延時間を必ず設定し、これらのパラメータを設定ファイルに書き込むようにしてください。通常、セキュリティ評価ではこの要件が発生する可能性があり、このとき接続制御プラグインが役立ちます。 以下もご興味があるかもしれません:
|
>>: よく使用される HTML メタタグ属性 (Web サイトの互換性と最適化に必要)
この記事では、MySQLのインストールと設定のリモートログインチュートリアルを参考までに紹介します。...
目次1. 基礎知識: 2. DHCPサーバーの設定: 1. サーバーのIPを確認する2. DHCP ...
プレビューアドレス: https://ovsexia.gitee.io/leftfixed/ htm...
1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...
目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...
1. テストテーブルを作成する テーブル `mysql_genarate` を作成します ( `id...
問題の説明今日、ページ スタイルを変更していたときに、子要素にmargin-top設定したのに、子要...
序文決まり文句です。ここでは、フロントエンドとバックエンドの分離についての私の理解についてお話ししま...
私のシステムとソフトウェアのバージョンは次のとおりです。システム環境: win7、64ビットMySQ...
目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...
目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...
1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトに...
いわゆるファビコンは、Favorites Icon の略で、中国語ではウェブサイトアバターと呼ばれて...
K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...
目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...