私は最近IPv6接続を持ついくつかのサーバーを使用する必要がありましたが、fall2banがIPv6をサポートしておらず、拒否ホストもサポートしていないことに驚きました。 Googleで検索してみると、人々は一般的に次のことをお勧めします。
- IPv6によるSSHログインを無効にする(私にとっては解決策ではありません)
- サーバーはパスワード認証ではなく、秘密鍵/公開鍵認証のみを使用します(動作しますが、大規模な攻撃によりサーバーの処理能力が大量に消費されたり、DDoS攻撃によってサーバーが使用できなくなる可能性があります)
- ip6tablesを使用して同じIPの連続攻撃をブロックする
- IPv6サポートでsshguardを使用する
これまでに収集した内容によると、IPv6の禁止アドレスはIPv4のアドレスとは若干異なります。これは、ISPがユーザーに単一のアドレス(/ 128)を提供せず、サブネット全体(現在は/ 48を持つ)を提供するためです。したがって、個々のIPv6アドレスを禁止しても攻撃から効果的に保護することはできません。 ip6tablesとsshguardを使用して攻撃を検出するためのサブネットブロックトピックについて複数の検索を実行しましたが、情報が見つかりませんでした。
sshguardがIPv6攻撃に対してサブネットを無効にするかどうかを知っている人はいますか?
サブネットでIPv6攻撃を許可しないようにip6tablesを設定する方法を知っている人はいますか?
それとも、私が見つけたよりも攻撃を軽減するより良い方法を知っている人はいますか?
PS:私はシステムでCentOS 7を使用しています。
答え1
サーバーを攻撃するには、攻撃者はまずサーバーのIPアドレスを知る必要があります。 IPv6では、選択できるアドレスが多すぎるため、正しいアドレスを見つけるためにIP範囲を検索することは不可能です。
つまり、2つの異なるIPv6アドレスだけをインターフェイスに割り当てることができます。サイトのドメイン名が常に同じIPアドレスを指し、sshdが新しく割り当てられたIPアドレスのみを受信するようにします。
いったん変更されると、サイトのドメイン名とIPアドレスがわかると、攻撃者がSSHDにアクセスすることはできません。
SSHを使用して接続するときは、セカンダリホスト名を使用する必要があります。ホスト名は、IPv6 アドレスよりはるかに大きいエントロピーを持つことができます。 63個の英数字を使用すると、誰かがSSHホスト名を推測することはできません。
誰かがsshdで使用しているIPv6アドレスを見つけたら、sshdを新しいIPv6アドレスに移動してAAAAレコードを更新するだけです。それから最初から始めなければなりません。
正当なSSHユーザーがホスト名および/またはIPアドレスを公開できる可能性がある場合は、SSHを使用してアクセスするユーザーごとに異なるホスト名を作成できます。最初は、更新するAAAAレコードが1つだけであるように、これらのすべてのCNAMEに1つのホスト名を付けました。
答え2
良いニュースは失敗2禁止IPv6のサポートが最近リリースされました。
Debian IPv6 サーバーの場合は、以下をお勧めします。このチュートリアル。
CentOS IPv6サーバーの場合はダウンロードすることをお勧めします。ここ次に、次のコマンドを実行し、それに応じてバージョン番号を置き換えます。
tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install
sshdの刑務所が有効になっていることを確認してください/etc/fail2ban/jail.local、例えば:
[sshd]
enabled=1