Solaris10でも定期的に脆弱性やバグ情報、そのセキュリティフィックスが公開される。インターネットに接続されている環境であれば、WindowsならWindowsUpdate、FreeBSDなら最新のソースをcvsupなり何なりで拾ってきて再構築、Linuxならディストリビューション次第だけれどもyumとかで比較的お気楽に自動アップデートができる。

Solarisの場合はパッチという形でセキュリティフィックスが公開され、smpatchというコマンドで必要なパッチの分析、ダウンロード、適用ができる。運用する上で大前提となる、セキュリティアップデートの仕方をちょっとまとめてみた。

今回使った機材
Solaris10 1/06
SunFire V120

まずは準備。いきなりsmpatchコマンドを実行しても「このSolarisはまだ登録されてませんよ」と出て何もできない。登録と言っても、利用者が持っているSun Onlineのアカウントと紐付けるだけだ。Sun Onlineのアカウントは、Solaris10のインストール用isoイメージファイルをダウンロードする際に必要なので、ダウンロードで入手したひとは持っているはず。書籍などで入手した人は別途取得する必要がある(と思う)。取得はSunのwebサイトから。

あとは自分の取得したSun Onlineのアカウントを/tmp/registrationprofile.properties等のファイルに記述する。以下のような感じ。パーミッションはrootのみ読めるようにする。

 userName=hogehoge
 password=oreore
 hostName=
 subscriptionKey=
 portalEnabled=false
 proxyHostName=
 proxyPort=
 proxyUserName=
 proxyPassword=

subscriptionKeyは有償サポートを受けると貰えるらしい。これがあるとSolaris10の機能拡張もオンラインでできるようになるようだ(3/05→1/06とか?)。無くてもセキュリティアップデートは提供される。この状態で登録用のコマンドを実行する。

 # sconadm register -a -r /tmp/registrationprofile.properties

コマンドが成功するとsmpatchが実行可能な状態になる。とりあえず、必要なパッチを調査するには、

 # smpatch analyze

アップデートを適用するには、

 # smpatch update

これでとりあえず最新の状態にはできる。ただし、パッチによっては再起動が必要なものがある(パッチ 適用時にその旨の警告が表示される)。この場合はrebootコマンドではなく、必ずshutdownコマンドで再起動をすること(/etc/rc0.d/K51installupdatesに処理が遷移されないと適用できないっぽい)。特に初回の適用など、それなりに時間がかかるものもあるので、端末にshutdown nowと出てから数分間シャットダウンしないからといってビックリしてはいけない。あとはman smpatchで。

再起動後にもう一度smpatch analyzeを実行し、必要なパッチが表示されなければ完了。全て適用済。

設定を見るとproxyサーバも指定出来そうだけど、なんか通信はsslで行われているようなので、proxyでキャッシュして複数台適用時にウハウハとかは望み薄かもしれない。要検証。