GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にFail2Banをインストールする方法

ほとんどのLinuxサーバーは、リモート管理の目的でポート22を介したSSHログインを提供します。このポートはよく知られているポートであるため、ブルートフォース攻撃によって攻撃されることがよくあります。 Fail2banは、ログファイルをスキャンしてブルートフォースログインの試行をリアルタイムで実行し、firewalldまたはiptablesを使用して攻撃者を禁止するソフトウェアです。 Fail2banは、管理者が設定した時間枠内にサーバーへの不要なアクセスまたはセキュリティ違反の取り組みを認識し、ブルートフォース攻撃または辞書攻撃の兆候を示すIPアドレスをブロックします。このプログラムはバックグラウンドで動作し、ログファイルを継続的にスキャンして、異常なログインパターンやセキュリティ違反の試みがないか調べます。

このチュートリアルでは、CentOS7でfirewalldを使用したFail2Banのインストールと構成を示します。

Fail2Banのインストール

CentOS 7にFail2Banをインストールするには、最初にEPEL(Enterprise Linux用の追加パッケージ)リポジトリをインストールする必要があります。 EPELにはすべてのCentOSバージョンの追加パッケージが含まれています。これらの追加パッケージの1つはFail2Banです。

rootユーザーに切り替えた後、次のコマンドを実行する必要があります。

yum install epel-release
yum install fail2ban fail2ban-systemd

SELinuxがインストールされている場合は、SELinuxポリシーを更新します。

yum update -y selinux-policy*
Fail2Banの設定を構成する

インストールしたら、jail.local構成ファイルを使用してソフトウェアを構成およびカスタマイズする必要があります。 jail.localファイルはjail.confファイルをオーバーライドし、カスタム構成の更新を安全にするために使用されます。

jail.confファイルのコピーを作成し、jail.localという名前で保存します:

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

次のコマンドを使用して、Nanoで編集するためにjail.localファイルを開きます。

nano /etc/fail2ban/jail.local

ファイルコードは、1つまたは複数のIPアドレスの禁止を防止したり、禁止期間を設定したりするために実行されるコードの多くの行で構成されている場合があります。一般的なjail構成ファイルには次の行が含まれています。

[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

無視 禁止されないIPのリストを設定するために使用されます。 IPアドレスのリストは、スペース区切り文字で指定する必要があります。このパラメータは、個人のIPアドレスを設定するために使用されます(固定IPからサーバーにアクセスする場合)。

バンタイム パラメータは、ホストを禁止する必要がある秒数を設定するために使用されます。

検索時間 ホストを禁止する必要があるかどうかを確認するために使用されるパラメーターです。ホストが最後の検索時にmaxretyを生成すると、禁止されます。

Maxretry は、ホストによる再試行回数の制限を設定するために使用されるパラメーターです。この制限を超えると、ホストは禁止されます。

SSHを保護するためにjailファイルを追加します。

Nanoエディターで新しいファイルを作成する

nano /etc/fail2ban/jail.d/sshd.local

上記のファイルに、次のコード行を追加します。

[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

パラメータ有効 はtrueに設定され、保護を提供するため、保護を非アクティブ化するために、falseに設定されます。 filterパラメーターは、パス/etc/fail2ban/filter.d/sshd.confにあるsshd構成ファイルをチェックします。

パラメータアクション /etc/fail2ban/action.d/firewallcmd-ipset.confから入手可能なフィルターを使用して禁止する必要のあるIPアドレスを取得するために使用されます。

ポート 場合と同様に、パラメータをport=1212などの新しい値に変更できます。ポート22を使用する場合、このパラメーターを変更する必要はありません。

ログパス ログファイルが保存されるパスを提供します。このログファイルはFail2Banによってスキャンされます。

Maxretry 失敗したログインエントリの上限を設定するために使用されます。

バンタイム パラメータは、ホストを禁止する必要がある秒数を設定するために使用されます。

Fail2Banサービスの実行

CentOSファイアウォールをまだ実行していない場合は、開始します。

systemctl enable firewalld
systemctl start firewalld

次のコマンド行を実行して、サーバー上で保護用のFail2Banソフトウェアを実行します。

systemctl enable fail2ban
systemctl start fail2ban 
失敗したログインエントリの追跡

次のコマンドを使用して、sshポート経由でサーバーにログインする試みが失敗したかどうかを確認します。

cat /var/log/secure | grep 'Failed password'

上記のコマンドを実行すると、さまざまなIPアドレスからの失敗したrootパスワードの試行のリストが取得されます。結果の形式は、以下に示すものと同様になります。

Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2
Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2
Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2

Fail2Banによる禁止されたIPの確認

次のコマンドは、ブルートフォースの脅威として認識された禁止IPアドレスのリストを取得するために使用されます。

iptables -L -n

Fal2Banステータスを確認する

次のコマンドを使用して、Fail2Ban刑務所のステータスを確認します。

fail2ban-client status

結果は次のようになります:

[[email protected] ]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

IPアドレスの禁止を解除する

禁止リストからIPアドレスを削除するために、パラメータIPADDRESSは、禁止を解除する必要がある適切なIPに設定されます。 「sshd」という名前は刑務所の名前です。この場合は、上記で構成した「sshd」刑務所です。次のコマンドがその役割を果たします。

fail2ban-client set sshd unbanip IPADDRESS

Cent OS
  1. CentOS7にPHP7、7.2、7.3をインストールする方法

  2. CentOSにFail2banをインストールする

  3. CentOSにLogaholicをインストールする方法

  1. CentOS7にJava11および12をインストールする方法

  2. CentOS7にWine4.0をインストールする方法

  3. CentOS7にVim8.2をインストールする方法

  1. CentOS7にVirtualBoxをインストールする方法

  2. CentOS8にGitをインストールする方法

  3. CentOS8にDockerをインストールする方法