シェルスクリプトはアクセス制御を設定し、複数回のログイン失敗後にIPをブロックしてSSHのブルートフォースクラッキングを防止します。 ホストがサーバーに対して SSH リモート管理を実行していることが判明し、10 分以内に間違ったパスワードが 3 回入力されると、firewalld を使用して応答し、この IP の再接続を禁止し、6 時間後に再び接続が許可されます。 1. システム: Centos7.1 64 ビット 2. 方法: /var/log/secureを読み込んでキーワードFailedを検索する 1月4日 16:29:01 centos7 sshd[1718]: 192.168.120.1 ポート 2171 ssh2 からの root のパスワードに失敗しました 1月4日 16:29:02 centos7 sshd[1718]: pam_succeed_if(sshd:auth): 要件「uid >= 1000」はユーザー「root」によって満たされていません 1月4日 16:29:04 centos7 sshd[1718]: 192.168.120.1 ポート 2171 ssh2 からの root のパスワードに失敗しました 1月4日 16:29:06 centos7 sshd[1718]: エラー: 192.168.120.1 ポート 2171:0 から切断を受信しました: [preauth] 1月4日 16:45:53 centos7 sshd[1758]: 192.168.120.134 ポート 40026 ssh2 からの root のパスワードに失敗しました 3. シェルコード、test.shを作成する #!bin/bash #違法なIPアドレスを傍受する 月=$(LANG=C 日付 +"%b") day=$(LANG=C 日付 +"%e") now=$(LANG=C 日付 +"%T") ten=$(LANG=C date -d "10分前" +"%T") cat /var/log/secure |awk '$1=="'$month'" && $2=='"$day"' && $3>="'$ten'" && $3<="'$now'" { print}' |grep '失敗'|awk -F'from' '{ print $2}' |awk '{ print $1}'|sort |uniq -c > baduser.txt #計算回数 times=`awk '{ print $1 }' baduser.txt` #禁止された IP アドレス シーケンス=1 i を $times で する ip=`sed -n ''$seq'p' baduser.txt |awk '{ print $2}'` [ $i -ge 3 ]の場合 それから ファイアウォール-cmd --add-rich-rule='ルール ファミリ=ipv4 送信元アドレス='$ip' ポート ポート=22 プロトコル=tcp 拒否' --timeout=6h フィ seq=`式 $seq + 1` 終わり 4. test.sh スクリプトを cron スケジュール タスクに追加し、60 分ごとに実行します。 # crontab -e */60 * * * * sh /root/test.sh 5. テスト 1. ターミナル ウィンドウを開き、ssh でサーバーに接続し、間違ったパスワードでサーバーに数回接続します。 IP がサーバーの baduser.txt ファイルに追加され、サーバーに接続できず、拒否されます。 ssh のブルートフォースクラッキングを防ぐためのシェルスクリプト設定に関するこの記事はこれで終わりです。シェルスクリプトによるブルートフォースクラッキング対策に関する関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Quill エディタでカスタム HTML レコードを挿入する詳細な例
この記事では、画像を読み込むためのJavaScriptキャンバスの具体的なコードを参考までに紹介しま...
序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...
目次アイデア傍受を要求するレスポンスインターセプションhttpClient.tsを使用してリクエスト...
目次ここでの問題は次の通りです:解決策1:解決策2: コンストラクタで初期化を割り当てる採掘場の概要...
目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...
入力タイプ「file」とは何ですか?これが何なのかは説明する必要はないと思います。誰もが知っているこ...
1. CSSを通す必要がある背景CSS におけるメディアクエリの用途は、デバイスサイズの判別、マウス...
これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...
Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...
1. 数学関数ABS(x) xの絶対値を返します。 BIN(x) xの2進値を返します(OCTは8...
react-routerでは、コンポーネント内のジャンプは<Link>で使用できます。し...
翻訳Kool Desktop Environment の略称。 Linux、Unix、FreeBSD...
MySQL には、複数の .sql ファイル (SQL ステートメントを含む) をインポートする方法...
注意:仮想マシンのメモリは2G以上が推奨され、 Alibaba Cloudのアクセラレーションイメー...
この記事の例では、メモ帳機能を実装するためのVueの具体的なコードを参考までに共有しています。具体的...