セキュリティ運用に必須のパッチ管理とログ監視(前編)

2018年5月9日(水)
面 和毅

はじめに

今回から、実際のセキュリティ運用に必須な「パッチ」の管理と「ログ」の監視について解説します。昨今、特にセキュリティに関してはパッチ適用の必要性が再認識されてきています。また、ログはインシデント対応やインシデント予兆の確認のために活用されています。

これらのパッチが適用できているか、ログから何か予兆は出ていないかなどを集中して管理・監視するためのツールについて、それぞれ触れていきます。

  1. パッチの集中管理を行うツール
  2. ログの集中監視を行うツール

今回は、1.の「パッチの集中管理を行うツール」について簡単に紹介します。

パッチ管理ツールとは

システムのパッチを管理するツールは、大きく分けて次の2種類に分けられます。

  • ディストリビューション等に付属のパッケージ管理ツール
  • CUIやWeb-UI等で複数のシステムのパッケージ・パッチを統合管理するもの

ここでは、2番めのパッチを統合管理するツールについて解説します。OSSで提供されている代表的なパッチ統合管理ツールには、次の2つがあります。

  • Foreman+Katello
  • Spacewalk

今回は、Foreman+KatelloとSpacewalkの概略を解説し、それぞれの基本的な機能を比較してみます。

Foremanとは

「Foreman」は「Red Hat Satellite 6.0」の中核となるOSSのツールです。様々なプラグインを用いて拡張でき、「Katello」もその中の1つです。Red Hat Satellite 6.0は、下記の4つのツールを組み合わせて構成されています。

  • Foreman:プロビジョニングと構成管理
  • Pulp:プロビジョニングと構成管理
  • Candlepin:プロビジョニングと構成管理
  • Katello:ソフトウェアライフサイクル管理

Foreman+Katelloをセットアップしてみる

Foreman+Katelloの構成は、既存のForemanにKatelloのプラグインをインストールすることでも実現できますが、まっさらな状態でインストールする場合はKatelloのインストーラを使用したほうが簡単です。

Katelloをインストールする際のハードウェア要件は、下記のとおりです。

  • CPU:2CPU(x64)
  • Memory:8GB(推奨は12GB)
  • HDD:容量が大きければ大きいほど良い
    ・/var/lib/pulp以下に管理するOSの更新パッケージが格納されます。一つのOSにつき、30GB以上が必要です。
    ・/var/spool/squid以下がテンポラリディレクトリとして使用されます。/var/lib/pulp以下と同じサイズ(一つのOSにつき、30GB以上)を用意しておいたほうが良いです。
    ・/var/lib/mongodbは4GB以上必要になります。目安として、/var/lib/pulpの40%程度が最小限になります。
    ・/ファイルシステムは20GB以上が必要になります。

なお、Katelloのインストール自体はKatelloのインストールマニュアルに従えば簡単に完了できるので、詳しい手順は割愛します。

Katelloを使ってOSを管理してみる

それでは、Katelloを使って実際にCentOS(7.4)を管理してみましょう。KatelloではWeb-UIからシステムを管理します。

図1のようにWeb-UIのアカウントでログインすると、図2のようなDashboard形式で管理しているシステムの状況が表示されます。Katelloでは管理組織(Organization)と位置(Location)でシステムのグループを作ることができ、それぞれのシステムでDashboardを確認できます。今回の例では、Organizationとして「JSOSUG」、Locationとして「TOKYO」「Osaka」「Nagoya」等を登録しています(図3、図4)。

図1:Web-UIのアカウントでログイン

図2:Dashboard形式で管理しているシステムの状況が表示される

図3:Organizationとして「JSOSUG」が登録されている

図4:Locationとして「TOKYO」「Osaka」「Nagoya」等が登録されている

管理するプロダクトの登録

Productとそのレポジトリを登録しておくことで、複数の種類のディストリビューション等の更新パッケージを管理できます。例えば、CentOS/RHELの各バージョンやDockerイメージ等です。

ちなみに、2018年4月時点ではKatelloでDebianのパッケージを管理するための機能拡張は開発中となっています。今後の機能拡張が待たれるところです。

なお、Productとレポジトリの登録方法も、前出のインストールガイドに詳しく書かれています。今回の例ではCentOS 7.4のbaseレポジトリとupdateレポジトリを「CentOS_7」というProduct名で登録して管理しています(図5)。インターネットからのレポジトリ更新スケジュールも「Sync Plan」として設定できます(図6)。

図5:CentOS 7.4のbaseレポジトリとupdateレポジトリを「CentOS_7」というProduct名で登録して管理

図6:インターネットからのレポジトリ更新スケジュールも「Sync Plan」として設定

ホストの登録

「Katello-Agent」をインストールして、既存のサーバを管理対象として登録します。Katello-Agentのインストール方法については、こちらのドキュメントを参照してください。

最初にホストを登録したい組織(今回の例ではJSOSUG)を選択しておき、画面上部のメニューから「Hosts」→「Content Hosts」と選択して「Register Content Host」をクリックするとホストを登録する手順が表示されるので、その手順に従います(図7、図8)。また、登録したホスト情報をEditすることで、ホストの管理(Manage) やOSの登録などを行えます。

図7:画面上部のメニューから「Hosts」→「Content Hosts」と選択して「Register Content Host」をクリック

図8:ホストを登録する手順が表示される

パッケージの更新

Katelloに登録して管理されているホストは、Katello内にダウンロードしたレポジトリと比較して、バージョンが古い場合はパッケージを更新できます。これにより、パッケージの更新を一括して集中監視できます。また、更新は一括/個別を選択して行うことができます(図9、図10)。

図9:パッケージの更新(一括)

図10:パッケージの更新(個別)

Spacewalkとは

「Spacewalk」は「Red Hat Satellite 5.x」のOSS版です。Red Hat Satelliteのバージョンとしては若干古めですが、その分Web等で参考になる情報が多くあります。また、他のディストリビューション等にも対応済みで、DebianやSuSE等も管理対象に含めることができます。開発自体も積極的に続けられており、2018年4月時点の最新バージョンは2.7です。

Spacewalkをセットアップしてみる

Spacewalkをインストールする際のハードウェア要件は、下記のとおりです。

  • Memory:2GB(推奨は4GB)
  • HDD:容量が大きければ大きいほど良い
    ・/var/satellite(パッケージがダウンロードされます)は、一つのchannel(前述のKatelloでのレポジトリと同様のものです)に対して6GBが推奨されています。

なお、Spacewalkもインストール自体はSpacewalkのインストールマニュアルに従えば簡単に完了できるので、詳しい手順は割愛します。

Spacewalkを使ってOSを管理してみる

それでは、Spacewalkで実際にCentOS(7.4)を管理してみましょう。SpacewalkもWeb-UIからシステムを管理します。

インストール直後にSpacewalkサーバにhttpsでアクセスすると、組織(Organization)の名前とSpacewalkのID・パスワードを設定する画面が出てきます(図11)。以降は、ここで設定したID・パスワードでログインすることになります(図12)。

図11:Spacewalkサーバで組織(Organization)の名前とSpacewalkのID・パスワードを設定する画面

図12:Spacewalkサーバのログイン画面

管理するChannelの登録

ローカルでパッケージの「Channel」を登録し、インターネット上に公開されているレポジトリと同期を取ることで、ローカルでパッケージを管理できます。例えば、CentOS/RHEL/Fedoraの各バージョン、SuSE、Debian等が登録可能です。

Channelの登録方法は、前出のインストールガイドを参照してください。今回の例では、CentOS 7.4のChannelを「CentOS_7_x86_6」、update Channelを「CentOS_7_x86_64_Update」というProduct名で登録して管理しています(図13)。ここではChannelの更新頻度も設定できます。

図13:Spacewalkで管理するChannelを登録

ホストの登録

「Spacewalk-Client」をインストールして、既存のサーバを管理対象として登録できます。Spacewalk-Clientのインストール方法とホストの登録方法については、こちらのドキュメントを参考にしてください。具体的にはSpacewalkでActivation Keyを作成し(図14)、管理するホストに手動でspacewalk-client/rhnのRPMパッケージをインストールします。

図14:SpacewalkでActivation Keyを作成

また、登録したホスト情報をEditすることで、ホストの管理(Manage)などを行えます。

パッケージの更新

Spacewalkに登録して管理しているホストは、Spacewalkにダウンロードしたレポジトリと比較して、バージョンが古い場合はパッケージを更新できます。一括もしくは個別で更新することもできます(図15)。

図15:Spacewalkにダウンロードしたリポジトリのパッケージ更新(個別)

Foreman+KatelloとSpacewalkの機能比較

最後に、Foreman+KatelloとSpacewalkの機能比較を図16にまとめました。Spacewalkの方が成熟度や対応するディストリビューションも多く、ドキュメントも多めです。

図16:Foreman+KatelloとSpacewalkの機能比較

現在でも両ツールの開発は継続されていますが、Foreman+Katelloの方が最新のRed Hat Satelliteとして実装されていることから、不足している機能等の補完・開発は今後も継続されていくと思われます。サポートしたいシステムが対応しており、英語で情報をキャッチできる方であればForeman+Katelloを使用すると良いでしょう。ただし、構築には少し時間がかかると思われます。

一方で、Spacewalkは簡単にインストールと設定ができるので、「手軽にパッチ管理を導入したい」といった場合にはSpacewalkを使用すると良いでしょう。

サイオステクノロジー株式会社 OSS/セキュリティエバンジェリスト
OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダや外資系、ユーザ企業などで様々な立場を経験。2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍し、同社でSIOSセキュリティブログ(http://security.sios.com)を連載中。
CISSP:#366942 近著:『Linuxセキュリティ標準教科書 』(LPI-Japan)」

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています