CentOS 6を使い続けるリスクとCentOS 7移行時の注意点
CentOS 6が、2020年11月30日をもってサポート終了となりました。CentOSは、Linuxディストリビューションの中で数少ない有償OSであるRed Hat Enterprise Linux(=RHEL)と高い互換性を持つ無償OSであり、元々ベンダーによるサポートはありませんがコミュニティによるサポートが提供されています。ここでは、サポート終了後のリスクと、OSリプレイス時の注意点などを紹介します。
CentOS 6を2020年11月30日以降も使い続けるリスク
CentOSのサポートには、新機能の追加やセキュリティ対策のパッケージがリリースされる「完全更新」と、最低限必要なセキュリティ対策のパッケージリリースのみが行われる「メンテナンス更新」の2種類があります。「完全更新」は2017年に既に終了しており、2020年11月30日には最低限の「メンテナンス更新」も終了してしまいました。
サポート終了(メンテナンス更新終了)後のリスク
メンテナンス更新が終了すると、次のようなリスクが発生します。
セキュリティホールの修正パッチがなくなる
ソフトウェアは、悪意のあるクラッカーからの攻撃や、ウイルス・マルウェアなどに対して継続的な防御策(=セキュリティパッチ適用)を講じていく必要があります。しかしサポートが終了すると、修正パッチが発行されなくなるため、セキュリティリスクが急上昇してしまうのです。
CentOS 5のサポート終了後に発生した主な脆弱性の例
実際に、CentoOS 5のサポート終了後には、次のような脆弱性が発見され、重大なセキュリティリスクに発展しました。
- 特権ユーザの奪取
- 一部プロセスを第三者がリモートから不正に操作し、意図しないサービスダウンが発生
- CPU命令の投機的実行(CPUに本来不要な命令を発行させ、通常はアクセスできないメモリ空間にアクセスを行い、パスワードや暗号鍵など重要情報を窃取する攻撃)
このように、メンテナンス更新の終了後は重大なセキュリティインシデント発生のリスクが高まります。
CentOS特有の事情
CentOSはRHELから商標を徹底的に排除し、無償化していることが特徴です。企業向けの有料版LinuxであるRHELと同等の機能を無料で使用できるため、コストと機能の両立を求められがちな企業向けサーバ用OSとして普及しています。つまり、CentOSの脆弱性を突くことは、悪意を持った第三者にとって効率の良い攻撃手法になり得るわけです。メンテンナンス更新終了後のCentOS 6は、攻撃者の標的になりやすい環境といえるでしょう。
運用コスト肥大
一部のベンダーでは2020年11月30日以降も独自の修正パッチを提供するサービスを打ち出しています。しかし、こうしたサービスは当然のことながら有料です。2020年11月30日より前なら無料であった修正パッチが有料となるため、その分だけ運用コストが増えるということになります。
CentOS 6と7の違い
このように、CentOS 6をサポート終了後も使い続けることは、さまざまなリスクが伴います。したがって、できるだけ早急に新環境(CentOS 7以降)へリプレイスをするべきでしょう。ここからはCentOS 7への移行を想定し、CentOS 6との違いを簡単にまとめて紹介します。
CentOS 6とCentOS 7の違い
カーネルバージョンのアップデート
カーネルはOSの「頭脳」「核」とも言える部分です。CentOS 6ではカーネルバージョン2.6系を採用していましたが、CentOS 7からは3.x系が採用されています。これは、いわゆる「メジャーバージョンアップ」が適用されている状態で、OSの仕様やコマンドの変更、新機能の追加など、大規模な修正が加えられていることを意味します。主な変更点は以下のとおりです。
64bit版に統一
CentOS 6までは32bit版が用意されていましたが、CentOS 7からは64bit版に統一されています。
デフォルトファイルシステムがext4からxfsへと変更
xfsへの変更により、ファイルサイズおよびファイルシステムサイズが500TBまでサポート可能になりました。最大容量が増えただけでなく、データの読み書きにおいて高いスループットが実現できるような設計になっています。
ネットワーク系コマンドの変更
・インターフェイスの情報表示が「ifconfig」から「ip address show (ip a)」および「ip link show (ip l)」へ
・ルーティングテーブルの表示が「route」から「ip route (略 ip r)」へ
・インターフェイスの統計情報が「netstat -i」から「ip -s link」へ
サービス系コマンド「systemd」の導入
CentOS 6からCentOS 7への変更の中でも、最も運用面のインパクトが大きい項目です。systemdの採用により、システム起動・サービス管理の仕組みが一変しました。CentOS 7においては、サービスを含めたリソース管理が、従来の「SysVinit/Upstart」から「systemd」による一元管理へと変更されており、プロセスグループによるグループごとのリソース制限が可能になっています。また、サービス管理も「systemctl」コマンドに一本化されており、旧来の「chkconfig/service」を用いたスタイルから変化しています。
ファイアウォールの変更
パケットフィルタリングについて、従来のiptabelesによる管理からfirewalldへと変更されました。firewalldでは「ゾーン」と呼ばれる単位でセキュリティポリシーの適用が可能になっています。
CentOS 7移行時の注意点
このようにCentOS 6とCentOS 7は、OSとしての仕組みに複数の違いがあります。したがって、CentOS 6からCentOS 7への移行は新規構築に近くなるでしょう。例えば、CentOS 7ではPHPの対応バージョンが「5.5以降」もしくは「7.0以降」であることから、PHPを用いたコンテンツに対しては更新が必要になります。その他にも、ファイアウォール設定の見直しやOS内で動作する個別パッケージの更新など、必須レベルのタスクが複数存在します。したがって、事前に入念な準備と計画をもって、移行作業にのぞむべきでしょう。以下は、CentOS 7への移行で注意すべきポイントの一例です。
ファイアウォール設定の見直し
CentOS 7では、iptablesのみで管理していたフィルタリングではなく、NICごとに仮想FWを割り当てる方式へと変更されています。また、ゾーンという概念も追加されているため、セキュリティの設定をゼロから行うことが望ましいでしょう。
ソフトウェアパッケージのアップデート
CentOS 6.5以降のバージョンの場合、アップグレードツールを利用してCentOS 7にバージョンを上げることも可能ですが、その場合落とし穴が存在します。移行元環境がCentOS 6.7以降の場合は、ソフトウェアパッケージによってはCentOS 7のものよりも新しいバージョンが適用されている可能性があります。この状態でCentOS 7へとアップグレードすると依存関係に矛盾が生じ、一括アップデートが上手く動作しないのです。この場合は、rpmコマンドなどを用いて随時手動検索を行い、移行対象のソフトウェアパッケージをリストアップしたうえで、手動削除⇒再インストールという作業が必要です。
データのみ移行が吉
上記のように個別パッケージの削除・インストールという手間があるため、CentOS 7環境を新規で構築し、必要なソフトウェアパッケージをインストールしたうえで、データのみを移行する方法が安全です。
どうしても間に合わない場合は「延長サポート」という選択肢も
- アプリケーション、コンテンツの正常稼働のために、どうしてもOSのバージョンが上げられない…
- OSのバージョンアップに向けて取り組んでいるが、11月中の移行は難しそう…
- 来年サイトのリニューアルが決まっているので、わざわざ今 OSのバージョンアップを図らなくてもいいのでは…
など、事情によりCentOS 6 を引き続き利用しなくてはいけないこともあるかもしれません。
しかしOSのサポート期間終了後は、仮に重大な脆弱性が発見されたとしてもパッチやアップデートは提供されないため、セキュリティ面で非常に不安な状況です。そこでCentOS 6をしばらくの間使い続けなくてはいけない場合は、重大なセキュリティーホールが発見された際に修正パッチが提供される「延長サポート」の利用を検討することをおすすめします。
まとめ
本稿では、CentOS 6のサポート終了に伴うリスクと、CentOS 7へ移行する場合の注意点などについて解説しました。OSのリプレイスはどのような環境においても避けられない厄介事ですが、ITインフラを刷新する良い機会にもなります。現状のサーバ環境・運用について改めて見直し、改善できることがないか今一度見直してみるのはいかがでしょうか。サーバ・運用・セキュリティ・移行作業など、インフラにまつわるお悩みがあればお気軽に弊社までご相談くださいね。