最近、私のFreeBSD 8.0(GENERIC)ボックスは、台湾のIPからの大量のリクエストに見舞われ、パスワードなどを推測しようとしました。とにかく、簡単に言えば、ある時点で私は箱に入れられないことに気づきました。直接ログインした後、hugeパスワード推測の数とメッセージmsk0: watchdog timeout
に気づきました。 msk0は私の有線イーサネット接続を参照しています。
インターフェイスをifconfig msk0 up
でバックアップし、そのインターフェイスのアドレスに正常にpingを実行できました。しかし、ボックスが直接接続されているメインルーターにpingを実行しようとすると、ハングしました。外部IPアドレスにpingを実行しようとすると、大量のsendto: no buffer space available
が返されました。
この問題は再起動で解決されましたが、明らかにこれは理想的な方法ではありません。このようなことが再び発生した場合、接続を復元するにはどのような手順を実行する必要がありますか? watchdog -t 0
で防ぐことができる場合があることを読みましたが、その道を進みたいかどうかはわかりません。
予防に関しては、一定の期間、一定数のログインに失敗したIPからの接続を拒否する方法はありますか?たとえば、15回のログオンに失敗すると、次の12時間は接続が拒否されますか?
Msk0がサポートするチップについてはわかりません。しかし、他の多くのカード/チップ/ドライバーでも同様の問題が発生しています。 99.9%の確率で、バグのあるファームウェアの実装(通常は安価な製造による)がウォッチドッグタイマーを正しく処理していません。
さらに、これはMarvelチップであり、Marvelはオープンソースに対応していません。ドライバー自体に問題がある可能性があります。いずれにせよ、開始するのに最適な場所は、 NICのトラブルシューティングに関するハンドブックページ の下部です。
私はこの種の問題についてかなりの割合を占めてきました。最も簡単な解決策は、より高価なNICに切り替えることです(ただし、eBayで古いものをほぼ無料で見つけることができます。家庭用機器の最初の選択肢です)。
トラブルシューティングで問題が解決しない場合は、 FreeBSDフォーラム にもトラブルシューティングの専門家がいます。
他の回答であなたの質問の最後の部分を見逃したので、ここに簡単に追加します。
私は* nixサーバーを公開しているすべての人に使用し、強くお勧めします: Fail2Ban
これはsecurity/py-fail2banの下のportsツリーにあるので、簡単に始めることができます。
ビルド後、お気に入りのエディターで_/usr/local/etc/fail2ban/jails.local
_を開きます。 IPFWを使用する場合のクイックスタートは次のとおりです。 pfを使用する場合は、少し異なります。
_[DEFAULT]
maxretry = 10
[auth-bsd-ipfw]
enabled = true
filter = bsd-sshd
action = bsd-ipfw
logpath = /var/log/auth.log
_
サービスを有効にして_echo 'fail2ban_enable="YES"' >> /etc/rc.conf
_そして開始します_/usr/local/etc/rc.d/fail2ban start
_
IPFWの表1の内容をしばらく監視して、_ipfw table 1 list
_でロックアウトされないようにします。期待どおりに機能したら、ファイアウォールルールを追加して、表1のIPをブロックします。ipfw add 00030 deny ip from "table(1)" to me
。必ずこれをスタートアップルールセットに追加して、再起動時にロードされるようにしてください。
Fail2Banは、ほぼすべてのログファイルを監視するために使用できます。ほとんどのサービスはすでに失敗したログインをログファイルに記録し、他のほとんどのサービスはログファイルに記録することができます。そして、グーグル経由でもたくさんの例が見つかりました(またはここで尋ねます)。