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 は、SQL 解析とクエリ最適化のプロセスを通じて SQL を実行します。パーサーは SQ...
通常、IE ブラウザでの CSS の互換性の問題を解決するために、フロート レイアウトが使用されます...
1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカウ...
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...
MySQL 5.7.13 Mac用インストールチュートリアル、非常に詳細で、以下のように記録されてい...
1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...
日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...
前回のブログでは、Nginx と httpd を使用して、逆生成用のバックエンド Tomcat サー...
私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...
最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...
MySQLは私がとても気に入っているデータベースです。今日はWindows 8システムでインストール...
目次ルーティングマネージャー背景はじめる問題を解決する方法要約するルーティングマネージャー各ジャンプ...
解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...
CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...
1. VMware vSphere 導入の早期計画のポイント1. vSphereの利点(わずかに)...