GNU/Linux >> Linux の 問題 >  >> Linux

Linuxのセキュリティ:fail2banでシステムを保護する

システム管理者にとって、セキュリティは継続的な闘争です。システムを不要な攻撃から保護するのに十分なセキュリティを確保する必要がありますが、ユーザーの生産性が妨げられるほどではないからです。バランスを保つのは難しいです。 「セキュリティが多すぎる」という苦情は常にありますが、システムが危険にさらされると、「十分なセキュリティがなかった」から「なぜより優れたセキュリティ制御を使用しなかったのか」という苦情が出てきます。闘争は本物です。侵入者の攻撃に対して効果的でありながら、ユーザーが一般的に自由な方法で操作できるように十分にステルスである、配置できるコントロールがあります。 Fail2banは、ブルートフォースやその他の自動化された攻撃からサービスを保護するための答えです。

注:Fail2banは、ユーザー名/パスワード認証を必要とするサービスを保護するためにのみ使用できます。たとえば、fail2banでpingを保護することはできません。

この記事では、ブルートフォース攻撃からSSHデーモン(SSHD)を保護する方法を示します。 fail2banのようにフィルターを設定できます システム上のほぼすべてのリスニングサービスを保護するために、それらを呼び出します。

インストールと初期設定

幸い、fail2ban用のすぐにインストールできるパッケージがあります これには、システムのすべての依存関係が含まれます。

$ sudo dnf -y install fail2ban

fail2banを有効にして開始します 。

$ sudo systemctl enable fail2ban

$ sudo systemctl start fail2ban

fail2banに何らかの構文上の問題がない限り 構成では、標準の出力メッセージは表示されません。

次に、fail2banでいくつかの基本的なことを構成します システム自体に干渉することなくシステムを保護します。 /etc/fail2ban/jail.confをコピーします /etc/fail2ban/jail.localへのファイル 。 jail.local fileは、私たちが関心を持っている構成ファイルです。

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

/etc/fail2van/jail.localを開きます お気に入りのエディターで次の変更を行うか、これらのいくつかのパラメーターが設定されていることを確認してください。設定ignoreipを探します ロックアウトの可能性なしにアクセスできる必要があるすべてのIPアドレスをこの回線に追加します。デフォルトでは、ループバックアドレスと、保護されたシステムにローカルなすべてのIPアドレスを追加する必要があります。

ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20

IPアドレスのネットワーク全体を追加することもできますが、これにより、fail2banを使用したい保護の多くが失われます。 にとって。今のところ、シンプルでローカルなものにしてください。 jail.localを保存します ファイルを作成してfail2banを再起動します サービス。

$ sudo systemctl restart fail2ban

fail2banを再起動する必要があります 構成を変更するたび。

フィルタリングされたサービスの設定

fail2banの新規インストール あまり役に立たない。保護したいサービスには、いわゆるフィルターを設定する必要があります。ほとんどすべてのLinuxシステムはSSHでアクセス可能でなければなりません。システムのセキュリティを強化するためにSSHDを停止して無効にする状況がいくつかありますが、すべてのLinuxシステムでSSH接続が許可されていると思います。

誰もが知っているように、パスワードは優れたセキュリティソリューションではありません。しかし、それは私たちが生きる基準であることがよくあります。したがって、ユーザーまたは管理者のアクセスがSSHに制限されている場合は、SSHを保護するための手順を実行する必要があります。 fail2banを使用する SSHDでアクセス試行の失敗を「監視」し、その後の禁止を行うことは良いスタートです。

注:ユーザーのシステムへのアクセスを妨げる可能性のあるセキュリティ制御を実装する前に、失敗したログイン試行がしきい値設定を超えた場合、この新しい制御が10分間(または決定した期間)システムからユーザーをロックアウトする可能性があることをユーザーに通知してください。

フィルタリングされたサービスを設定するには、/etc/fail2ban/jail.dの下に対応する「jail」ファイルを作成する必要があります。 ディレクトリ。 SSHDの場合、sshd.localという名前の新しいファイルを作成します それにサービスフィルタリングの指示を入力します。

[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600

[sshd]を作成します 見出しを入力し、上記の設定を開始点として入力します。ほとんどの設定は一目瞭然です。直感的にわかりにくい2つの場合、「アクション」設定は、fail2banで必要なアクションを表します。 違反の場合に取る。私たちにとって、fail2ban iptablesを使用します 問題のあるシステムのIPアドレスを600秒(10分)の「禁止時間」で禁止します。

もちろん、ニーズに合わせてこれらの設定を変更することもできます。 10分は、ボットまたはスクリプトが安全性の低いホストに「移動」するのに十分な長さのようです。ただし、パスワードを3回以上間違えたユーザーを遠ざけるのに10分もかかりません。

設定に問題がなければ、fail2banを再起動します サービス。

禁止はどのように見えるか

保護されたシステム(192.168.1.83)では、tail /var/log/fail2ban.log 現在の禁止措置を確認します。

2020-05-15 09:12:06,722 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions        [25417]: NOTICE  [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions        [25417]: NOTICE  [sshd] Unban 192.168.1.69

IPアドレス192.168.1.69が09:12に禁止され、10分後の09:22に禁止が解除されたことがわかります。

リモートシステム192.168.1.69では、禁止アクションは次のようになります。

$ ssh 192.168.1.83

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

$ ssh 192.168.1.83

ssh: connect to host 192.168.1.83 port 22: Connection refused

禁止される前に、パスワードを3回間違って入力したことがわかります。禁止されたユーザーは、明示的に通知されない限り、ターゲットシステムに到達できなくなった理由を知りません。 fail2ban フィルタはサイレント禁止アクションを実行します。リモートユーザーには説明がなく、禁止が解除されたときにユーザーに通知されることもありません。

システムの禁止を解除する

必然的に、システムが禁止され、すぐに禁止を解除する必要があります。つまり、禁止期間が終了するのを待つことはできません。次のコマンドは、システムの禁止をすぐに解除します。

$ sudo fail2ban-client set sshd unbanip 192.168.1.69

このコマンドを発行した後、fail2banデーモンを再起動する必要はありません。

まとめ

これが基本的にfail2banの方法です 動作します。フィルタを設定し、条件が満たされると、リモートシステムが禁止されます。長期間禁止することができ、システムを保護するために複数のフィルターを設定することができます。 fail2banであることを忘れないでください は単一のソリューションであり、他の脆弱性からシステムを保護するものではありません。セキュリティに対する階層化された多面的なアプローチは、追求したい戦略です。十分なセキュリティを提供する単一のソリューションはありません。

他のフィルターといくつかの高度なfail2banの例を見つけることができます fail2ban.orgで説明されている実装。

[セキュリティについてもっと知りたいですか? ITセキュリティとコンプライアンスのチェックリストを確認してください。 ]


Linux
  1. procps-ngを使用してターミナルでLinuxシステムを監視します

  2. LynisでLinuxセキュリティをスキャンする

  3. Linuxシステムのファイアウォールにセキュリティを強化する

  1. エンタープライズLinuxでのセキュリティ監査の存続

  2. Linuxのセキュリティとユーザビリティのバランス

  3. inxiを使用したLinuxシステムの詳細

  1. Linux Mint / LinuxMint12のシングルユーザーモードでシステムを回復する

  2. コンピュータをどのように保護できますか?

  3. SurfShark VPN で Ubuntu Linux システムを保護する方法