Ubuntu12.04でfail2banを使用してSSHを保護する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.
代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。
Fail2Banについて
サーバーは孤立して存在するわけではなく、最も基本的なSSH構成しかない仮想プライベートサーバーは、ブルートフォース攻撃に対して脆弱である可能性があります。 fail2banは、仮想サーバーを悪意のある動作から自動的に保護する方法を提供します。 このプログラムは、ログファイルをスキャンし、ログイン試行の繰り返しの失敗などの問題のあるアクションに対応することで機能します。
ステップ1-Fail2Banをインストールする
apt-getを使用してFail2Banをインストールします
sudo apt-get install fail2ban
ステップ2—構成ファイルをコピーします
デフォルトのfail2ban構成ファイルは、/ etc / fail2ban/jail.confにあります。 ただし、そのファイルで構成作業を行うべきではなく、代わりにそのファイルのローカルコピーを作成する必要があります。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ファイルがコピーされた後、新しいjail.localファイル内ですべての変更を行うことができます。 保護が必要な可能性のあるサービスの多くは、すでにファイルに含まれています。 それぞれが独自のセクションにあり、構成され、オフになっています。
ステップ3—Jail.Localでデフォルトを構成する
新しいfail2ban構成ファイルを開きます。
sudo nano /etc/fail2ban/jail.local
デフォルトの最初のセクションでは、fail2banが従う基本的なルールについて説明します。 仮想サーバーでより微妙な保護を設定する場合は、各セクションの詳細をカスタマイズできます。
以下のデフォルトのセクションをご覧ください。
[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host ignoreip = 127.0.0.1/8 bantime = 600 maxretry = 3 # "backend" specifies the backend used to get files modification. Available # options are "gamin", "polling" and "auto". # yoh: For some reason Debian shipped python-gamin didn't work as expected # This issue left ToDo, so polling is default backend for now backend = auto # # Destination email address used solely for the interpolations in # jail.{conf,local} configuration files. destemail = root@localhost
個人のIPアドレスをignoreip行に書き込みます。 各アドレスはスペースで区切ることができます。 IgnoreIPを使用すると、特定のIPアドレスをホワイトリストに登録し、それらがロックアウトされていないことを確認できます。 あなたの住所を含めることはあなたがあなた自身のサーバーからあなた自身を誤って禁止しないことを保証するでしょう。
次のステップは、 bantime を決定することです。これは、ホストがいずれかのルールに違反していることが判明した場合に、ホストがVPSからブロックされる秒数です。 これは、ボットが禁止されると次のターゲットに移動する場合に特に便利です。 デフォルトは10分に設定されています。必要に応じて、これを1時間(またはそれ以上)に上げることができます。
Maxretry は、ホストが禁止時間の長さにわたって禁止される前に、ホストが行う可能性のある誤ったログイン試行の量です。
バックエンドは自動のままにしておくことができます。
Destemail は、アラートが送信される電子メールです。 ドロップレットにメールサーバーを設定している場合、Fail2BanはIPアドレスを禁止するときにメールを送信できます。
追加の詳細-アクション
[アクション]セクションは、デフォルトの下にあります。 最初は次のようになります。
# # ACTIONS # # Default banning action (e.g. iptables, iptables-new, # iptables-multiport, shorewall, etc) It is used to define # action_* variables. Can be overridden globally or per # section within jail.local file banaction = iptables-multiport # email action. Since 0.8.1 upstream fail2ban uses sendmail # MTA for the mailing. Change mta configuration parameter to mail # if you want to revert to conventional 'mail'. mta = sendmail # Default protocol protocol = tcp [...]
Banaction は、一致するIPアドレスを禁止するためにfail2banが実行する手順について説明しています。 これは、configifが配置されているファイル拡張子の短いバージョンです。 デフォルトの禁止アクション「iptables-multiport」は、/ etc / fail2ban / action.d/iptables-multiport.confにあります。
MTA は、fail2banが悪意のあるIPに注意を喚起するために電子メールを送信するために使用する電子メールプログラムを指します。
この行でも、fail2banで監視するプロトコルをTCPからUDPに変更できます。
ステップ4(オプション)-Jail.Localでssh-iptablesセクションを設定します
SSHの詳細セクションは、構成の少し下にあり、すでにセットアップされてオンになっています。 このセクション内で変更を加える必要はありませんが、各行の詳細は以下にあります。
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6
Enabled は、SSH保護がオンになっていることを意味します。 「false」という単語でオフにすることができます。
port は、fail2banが監視するポートを指定します。 非標準ポートに仮想プライベートサーバーを設定した場合は、使用しているポートと一致するようにポートを変更します。
eg. port=30000
filter は、デフォルトでsshdに設定されており、fail2banが一致を見つけるために使用するルールを含む構成ファイルを参照します。 sshdは、/ etc / fail2ban / filter.d/sshd.confを参照します。
ログパスは、fail2banが追跡するログの場所を指します。
SSHセクション内のmaxtry 行には、デフォルトオプションと同じ定義があります。 ただし、複数のサービスを有効にしていて、それぞれに特定の値を設定する場合は、ここでSSHの新しい最大再試行回数を設定できます。
ステップ5—Fail2Banを再起動します
fail2ban構成に変更を加えた後は、必ずFail2Banを再起動してください。
sudo service fail2ban restart
fail2banがIPテーブル内で有効にするルールを確認できます。
sudo iptables -L