私は最近、基本的にIPMIシステムを実行する組み込みBMCを備えたSuperMicro X8DTU-Fマザーボードを購入しました。これは、ARMプロセッサで実行されている小さなLinuxシステムであることがわかりました。
残念ながら、それは大量のソフトウェアを実行していますが、その多くは必要ありません。ファイアウォールの内側に置くことはできません。ただし、IPMI機能が必要です。これらのいずれかを使用したことがある人は、物を安全にする方法についていくつかの特定の提案をしていますか?それは本質的にROMファイルシステムであるものから起動します、そしてそれが実行するさまざまなサーバーのいずれかをオフにするフックもないようです...
また、さまざまなサービスのすべてを通じてシステムにアクセスするために使用できる名前とパスワードのリストを確認する方法にも興味があります。デフォルトはADMIN
/ADMIN
ですが、/ confまたは/ etc内のファイルに「ADMIN」が含まれていないため、心配になります。がある /conf/shadow
および/conf/webshadow
ファイル、その中に神秘的な「テスト」IDが含まれているため、あまり快適に感じられません。
/conf/crontab
の使用は、dlawsonが指摘したように、私には素晴らしいアイデアのように思えます。これにより、毎分1回スクリプトを実行して、httpとssh以外をすべてシャットダウンすることができます。
/etc/init.d/cdserver stop
/etc/init.d/fdserver stop
/etc/init.d/cim_sfcb stop
/etc/init.d/webgo stop
それでも、パスワードベースのアクセス制御を備えたWebサーバー(クライアント証明書を検証する方法がわからない)と、リモートの脆弱性を知っている人がいます。使用していないときは(ほとんどの場合)オフにするのが妥当な解決策のようです。 crontabエントリを追加して5分または10分ごとにシャットダウンすることで、誰かが完了したときにシャットダウンを忘れるケースをキャッチできます。
Sshデーモンは dropbear のバージョンであり、かなり大幅に変更されているようです。 /conf/PMConfig.dat
(Webサーバーでも使用されます)からユーザー名とプレーンテキストのパスワードを読み取り、有効な名前とパスワードをrootユーザーとしてログインし、~/.ssh/authorized_keys
ファイルを無視します。この最後の問題は迷惑です。それはあなたにパスワードログインを許可することを強制し、どこからでもすべてがその名前とパスワードを取得するかどうかに応じてバックドアの可能性を開きます。
それがあなたが直面するジレンマです。セキュリティに無関心な開発者によってかなり明らかに設計されたシステムにインストールされたこの変更されたsshデーモンを本当にどれだけ信頼しますか?シェルスクリプトで見た破片の破片の数を考えると、それほど多くはありません。異常な命名規則(/etc/rc?.d/sshdは/etc/init.d/sshへのシンボリックリンク)、使用されていないように見える大量のコード、およびssh起動スクリプトだけの機能など、 /conf/portcfg_ssh
ファイルとrestart
コマンドでさえ完全に壊れています。 (これらを使用しないでください。sshdは再起動せず、既存のログインがない限り、ねじ込まれます。BMCを再起動し、再フラッシュする必要がありました。)
私が考えることができる最良のオプションは、ものを使用する場合、cronジョブを使用して代替ポートでsshを開始することです。そのため、少なくともポートスキャンに表示される可能性は低くなります。
最後のコンポーネントはIPMIネットワーク管理ポートです。これらをオフにする方法がわかりません。
理想的には、管理ネットワークは他のネットワークとは異なるネットワークであるか、ルーティングされたアクセスが制限された少なくとも異なるVLANである必要があります。
これらのシステムは実際にはそれほど多くのサービスを実行していません。
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
555/tcp open dsf
5120/tcp open unknown
5900/tcp open vnc
5988/tcp open unknown
MAC Address: 00:30:48:D9:3A:71 (Supermicro Computer)
(およびIPMI自体のUDP/623)
これらのほとんどは、リモート管理を行う場合に必要です。リモート管理を行いたくない場合は、IPMIコントローラーをまったく有効にしないか、代わりにX9DTUボードを購入することを検討してください(-Fは「組み込みBMC」を示します)。
完全なリモート管理を実行したいが、別のネットワークでIPMIコントローラーを実行できず、一部のアクセスを無効にしたい場合は、IPMIコントローラーにiptablesコマンドを実行させることができます。コマンドを実行するためにsshログインをスクリプト化するか、BMCの開発キットをSupermicroに要求して、カスタムiptablesスクリプトを使用して新しいイメージを構築できます。
[〜#〜]更新[〜#〜]
ここでシステムをもう一度見ました。/confファイルシステムはrwにマウントされています。どのinitスクリプトも/ confで直接何も呼び出さなかった(私が見ることができる)が、crontabファイルはある。したがって、iptablesスクリプトをコピーし、/ conf/crontabを編集して適切な間隔で呼び出すことができると思います。 BMC initでできるだけ早く実行する必要がありますが、毎分実行する必要はありません。または多分あなたは気にしない。
Supermicro IPMIを保護する際に考慮すべき1つは、sshサーバーです。 X8SIL-F IPMIコードの古いバージョンでは、どのようなパスワードを指定しても、ssh接続を受け入れていました。次にソフトウェアはパスワードをチェックして接続を拒否または受け入れますが、sshポート転送を作成するための短いウィンドウがありました。 このため、人々はIPMI IPについてスパム/不正使用の苦情を受けていました 。 X8SIL-Fマザーボードの場合、2.60 IPMIファームウェアバージョンで問題が修正されました(以前に修正された可能性があり、2.54の変更ログエントリはそれである可能性があります)。
2番目の問題は、デフォルトのパスワードを持つ匿名ユーザーです。匿名ユーザーは、ファームウェアバージョン2.22で修正されているようです。
IPMIのWebインターフェースで[〜#〜] https [〜#〜]を有効にするための小さなトリックがあります。
IPMIファームウェアがそれをサポートしている場合(X8DTH-iFの私の2.04ファームウェアはサポートしています)、最初に、構成-> SSLに移動して2つのPEMファイル(証明書と秘密鍵)をアップロードし、次に手動でHTTPSアクセスを有効にすることができますIPMIモジュールを再起動します。
最後に、 https:// bmc-ip-or-hostname / でIPMIのWebインターフェースにアクセスできます。 HTTPSの動作がHTTPよりも遅いとは言えません。
ファイルシステムをどのように表示しましたか?ポート22にTelnetで接続すると、dropbearが実行されていることがわかりますが、さまざまなユーザー名でSSHを実行しようとしても、パスワードの入力を求められません。管理者権限を持つ新しいユーザーを追加しましたが、SSHはそのユーザーに対しても応答しません。私は、Winbond Hermon IPMI 2.0チップ、ファームウェアリビジョン01.29、ビルド時間2009-12-31を備えたSupermicro X7SPA-HFマザーボードを使用しています。
Iptablesでセキュリティを確保しようとした人はいますか? iptablesがインストールされているようです。いくつかの信頼できるIPからのすべての受け入れを拒否するルールセットをもう少し安全にするために作成したいと思います。 crontabが唯一のオプションですか?そして、もしあなたがiptablesをめちゃくちゃにしたら?