DOnations]プログラムの一環として200ドルの寄付を受け取りました。Shell(SSH)は、ネットワークサービスを安全に運用するための暗号化ネットワークプロトコルです。通常、コンピューターシステムのリモートコントロールやファイルの転送に使用されます。SSHがパブリックインターネットに公開されると、セキュリティの問題になります。ブルートフォース方式でパスワードを推測しようとするボットが見つかります。PyFilterは、サーバーへの不正なログインリクエストをすべて除外し、送信されたリクエストが多すぎる場合はブロックすることを目的としています。ログファイルを読み取り、失敗したリクエストがユーザー設定可能な時間内に同じIPアドレスから送信されたかどうかを確認することで機能します。その後、失敗した試行が多すぎる場合、ファイアウォールにルールを追加し、サーバーへの接続を拒否します。このチュートリアルでは、PyFilterをインストールして設定し、SSHリクエストをブロックします。次に、PyFilterをサービスとしてインストールし、オプションでクロスサーバー禁止同期を設定します。最後に、IPアドレスの禁止を解除する方法を調べます。前提条件このチュートリアルを完了するには、次のものが必要です。rootユーザーとファイアウォール。Ubuntu16.04にデフォルトですでにインストールされています。+`でインストールされたPIP。[ステップ4]でPyFilterのクロスサーバー禁止同期機能を設定します。ステップ1-PyFilterのダウンロードと設定Githubからリポジトリを複製してPyFilterをダウンロードします。ホームディレクトリに切り替えて、リポジトリを複製します。`というディレクトリが作成されます。local`フォルダーに移動します。/usr/local/PyFilter次に、構成ファイルを作成する必要があります。config.default.json`にあるデフォルトの設定ファイルが付属しています。デフォルトのファイルを直接編集するのではなく、これをコピーしてコピーしたバージョンを編集します。このようにして、何かがうまくいかなかった場合、比較するデフォルトの設定ファイルがあります。デフォルトの構成ファイルをコピーします。Config/config.jsonデフォルト設定では、要求は最後の要求から5秒以内である必要があり、それは5回発生する必要があります。PyFilterを実行して、動作を確認しましょう。+」というスクリプトが含まれています。最初に、スクリプトの権限を変更して実行可能にします。run.sh許可が与えられたら、スクリプトを実行してPyFilterを起動します。./run.shPyFilterはログの監視を開始し、イベントが発生すると出力が表示されます。logsデフォルトでは、PyFilterは、前の失敗したリクエストから5秒以内に発生する5つ以上の失敗したリクエストを行うIPを禁止します。これはPyFilter構成ファイルで変更できます。+`ディレクトリにも記録されます。IPが禁止を保証する制限に達すると、次のような出力が表示されます。次に、PyFilterをサービスとしてインストールして、自動的に実行されるようにします。ステップ3-PyFilter用のサービスを作成するPyFilterが機能することがわかったので、サーバーとして再起動するたびに起動するように、サービスとして実行するようにPyFilterを設定しましょう。+`というスクリプトがあります。実行できるようにスクリプトを変更します。install.sh次に、スクリプトを起動します。./install.sh次の出力が表示され、インストールが成功したことが示されます。+」であることを示します。run.pyエラーが表示された場合は、インストール手順を再度確認してください。次に、禁止されたIPアドレスを他のサーバーと共有するようにPyFilterを構成する方法を見てみましょう。ステップ4-クロスサーバー禁止同期のためのPyFilterの設定(オプション)クロスサーバー禁止の同期により、禁止されたIPアドレスをPyFilterを使用して他のすべてのサーバーと同期し、それらを保護し、禁止される資格を満たしていない場合でもそのアドレスを禁止できます。これは、IPがすでに禁止されているため、他のシステムを標的とする潜在的なボットよりも一歩先を行くことができることを意味します。前提条件で述べたように、Redisをインストールして構成する必要があります。Pythonモジュールも必要です。redis次に、SQLiteの代わりにRedisを使用するように構成ファイルを編集します。config.json`ファイルを開きます。Config/config.json次の行を見つけます。redis`に変更します。""次に、Redis接続情報を変更します。ファイルのこのセクションを見つけます。},このセクションを変更して、Redisサーバーの接続の詳細が含まれるようにします。+`をホスト名に変更します。この名前は、クロスサーバー禁止同期が正しく機能するために、同じRedisサーバーを使用してPyFilterを実行している個々のシステムごとに一意である必要があります。ファイルを保存し、エディターを終了します。次に、PyFilterを再起動してこれらの変更を適用します。PyFilterこれでPyFilterがインストールされ実行されました。ステップ5-IPアドレスに関する位置データを収集するためのPyFilterの構成(オプション)PyFilterは、禁止されたIPに関する位置データを取得して、攻撃の大部分の発信元に関する統計情報を提供できます。このオプションモジュールは、この情報をPyFilterのログに追加します。Pythonモジュールが必要です。+`でインストールできます。geoip2このモジュールをインストールしたら、PyFilterを再起動して新しいモジュールを認識します。PyFilterこれで、禁止されたIPアドレスが表示されると、IPに関する追加情報が表示されます。.PyFilterは、リクエストの発信元の国を正常に記録しています。最後に、アドレスの禁止を解除する方法を見てみましょう。ステップ6-IPアドレスの禁止を解除するPyFilterは、純粋にiptablesルールを作成してIPアドレスを禁止する手段です。blacklist」に保存します。+`にあるいくつかの禁止されたIPv4アドレスの例です。2018このIPアドレスの禁止を解除するには、テキストエディターで関連するブラックリストファイルを開きます。/usr/local/PyFilter/Config/blacklist.v4関連するiptablesルールをファイルから削除します。この場合、ファイルから「203.0.113.13」を削除しました。2018次に、ファイルを保存してエディターを閉じます。+`でPyFilterを再起動すると、PyFilterはこのファイルを使用してファイアウォールルールを更新します。Firewallルールを一覧表示および削除する方法]を参照してください。+`ファイル内のホワイトリストに追加することにより、特定のIPアドレスを無視するようにPyFilterに指示することもできます。結論これでPyFilterがインストールされ、SSH接続を監視できました。