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

badIPs.comでサーバーを保護し、DebianでFail2banを使用してIPを報告する方法

このチュートリアルでは、badipsの不正使用トラッカーをFail2banと組み合わせて使用​​して、サーバーまたはコンピューターを保護するプロセスについて説明します。 Debian8JessieおよびDebian7Wheezyシステムでテストしました。

badIPとは何ですか?

BadIpsは、fail2banとの組み合わせで不良として報告されたIPのリストです。

このチュートリアルには2つの部分があり、最初の部分ではリストの使用を扱い、2番目の部分ではデータの挿入を扱います。


badIPsリストを使用する

セキュリティレベルとカテゴリを定義する

RESTAPIを使用するだけでIPアドレスリストを取得できます。

このURLを取得すると:https://www.badips.com/get/categories
サービスに存在するさまざまなカテゴリがすべて表示されます。

  • 2番目のステップでは、魔女のスコアがあなたのために作成されているかどうかを判断します。
  • 統計を編集したり、実験などにデータを使用したりする場合は、スコア0から始めることができます。
  • プライベートサーバーまたはWebサイトをファイアウォールで保護する場合は、2のスコアを使用します。スコアが0または1を超えていなくても、独自の結果と組み合わせることができます。
  • ウェブショップやトラフィックの多い、お金を稼ぐeコマースサーバーを保護しようとしている場合は、3または4の値を使用することをお勧めします。おそらく、独自の結果(キー/同期)と組み合わせることもできます。
  • 妄想的な場合は、5を取ります。

2つの変数を取得したので、それらを連結してリンクを作成し、リンクを取得しましょう。

http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}

注:私のように、あなたはすべてのサービスを受けることができます。この場合、サービスの名前を「any」に変更します。

結果のURLは次のとおりです。

https://www.badips.com/get/list/any/3

スクリプトを作成しましょう

了解しました。完了したら、簡単なスクリプトを作成します。

  1. リストを一時ファイルに入れます。
  2. (1回のみ)iptablesにチェーンを作成します。
  3. チェーンにリンクされているすべてのデータ(古いエントリ)をフラッシュします。
  4. 各IPを新しいチェーンにリンクします。
  5. 完了したら、チェーンにリンクされているすべてのINPUT / OUTPUT/FORWARDをブロックします。
  6. 一時ファイルを削除します。

次に、そのためのスクリプトを作成します:

cd /home/<user>/
vi myBlacklist.sh

そのファイルに次のコンテンツを入力します。

#!/bin/sh
# based on this version http://www.timokorthals.de/?p=334
# adapted by Stéphane T.

_ipt=/sbin/iptables    # Location of iptables (might be correct)
_input=badips.db       # Name of database (will be downloaded with this name)
_pub_if=eth0           # Device which is connected to the internet (ex. $ifconfig for that)
_droplist=droplist     # Name of chain in iptables (Only change this if you have already a chain with this name)
_level=3               # Blog level: not so bad/false report (0) over confirmed bad (3) to quite aggressive (5) (see www.badips.com for that)
_service=any           # Logged service (see www.badips.com for that)

# Get the bad IPs
wget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }

### Setup our black list ###
# First flush it
$_ipt --flush $_droplist

# Create a new chain
# Decomment the next line on the first run
# $_ipt -N $_droplist

# Filter out comments and blank lines
# store each ip in $ip
for ip in `cat $_input`
do
# Append everything to $_droplist
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j LOG --log-prefix "Drop Bad IP List "
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j DROP
done

# Finally, insert or append our black list
$_ipt -I INPUT -j $_droplist
$_ipt -I OUTPUT -j $_droplist
$_ipt -I FORWARD -j $_droplist

# Delete your temp file
rm $_input
exit 0

それが完了したら、ブラックリストを更新するcronジョブを作成する必要があります。

このために、私はcrontabを使用し、毎日午後11時30分(バックアップの遅延の直前)にスクリプトを実行しました。

crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS

スクリプトをchmodすることを忘れないでください:

chmod + x myBlacklist.sh

これで、サーバー/コンピューターの安全性が少し向上するはずです。

次のように手動でスクリプトを実行することもできます:

cd /home/<user>/
./myBlacklist.sh

少し時間がかかるはずです…だから、スクリプトを壊さないでください。実際、その価値は最後の行にあります。

Fail2banを使用してIPアドレスをbadIPに報告する

このチュートリアルの第2部では、Fail2banを使用してbdIPアドレスをbadips.comWebサイトに報告する方法を紹介します。

Fail2ban> =0.8.12

レポートはFail2banで作成されます。 Fail2banのバージョンに応じて、この章の最初または2番目のセクションを使用する必要があります。バージョン0.8.12でfail2banを使用している場合。

fail2banバージョン0.8.12以降を使用している場合。

fail2ban-server --version

報告する各カテゴリに、アクションを追加するだけです。

[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6

ご覧のとおり、カテゴリはSSHです。ここ(https://www.badips.com/get/categories)を参照して、正しいカテゴリを見つけてください。

Fail2ban <0.8.12

バージョンが0.8.12未満の場合は、アクションを作成する必要があります。これはここからダウンロードできます:https://www.badips.com/asset/fail2ban/badips.conf。

wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf

上記のbadips.confを使用すると、上記のようにカテゴリごとにアクティブ化するか、グローバルに有効化できます。

cd /etc/fail2ban/
vi jail.conf
[DEFAULT]

...

banaction = iptables-multiport
badips

ここで、fail2banを再起動します。これからレポートを開始する必要があります。

service fail2ban restart

IPレポートの統計


最後のステップ–あまり役に立ちません…キーを作成できます。
これはデータを表示したい場合に便利です。
これをコピーして貼り付けるだけで、JSON応答が表示されます。コンソール。

wget https://www.badips.com/get/key -qO -
{
  "err":"",
  "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.",
  "key":"5f72253b673eb49fc64dd34439531b5cca05327f"
}

次に、badipsのWebサイトにアクセスし、「キー」を入力して[統計]をクリックします。

ここに行きます…カテゴリ別のすべての統計。


Debian
  1. DebianJessieのFail2BanとTinyhoneypotでIPv4セキュリティを強化する

  2. Debian9でCSFを使用してファイアウォールを構成する方法

  3. CentOS8でFail2Banを使用してApacheとSSHを保護する方法

  1. Debian9にVNCをインストールして設定する方法

  2. vsftpd FTPサーバーをインストールし、Debian11でTLSを使用して保護する方法

  3. Ubuntu/DebianサーバーにPostfixとDovecotを使用してSpamassassinをインストールする方法

  1. Debian9でVSFTPDを使用してFTPサーバーをセットアップする方法

  2. Debian11でPostfixAdminを使用してメールサーバーを設定する方法

  3. Debian11にNFSサーバーをインストールして設定する方法