物理的なセキュリティ確保はとても重要です。 Linux の本番サーバは、セキュリティチェックを通過した人間のみがアクセスできる、鍵のかかったデータセンター内に配置されるべきです。環境や状況にもよりますが、ブートローダに対してパスワードを設定することも検討すべきです。
Linux システムの安全性を高める際に重要なことは、 Linux サーバの主な機能や役割を決めることです。機能や役割がはっきりしていないと、システムのどの場所を主に守るべきなのかがはっきりせず、作業の効率も落ちてしまいます。まずはインストールされているソフトウエアパッケージの一覧を確認して、不要なパッケージやセキュリティポリシーに合致しないパッケージを削除することが重要です。
サーバには一般に、 /
, /boot
, /var
, /tmp
, /home
などの個別のファイルシステムが設定されています。それぞれ別々のパーティション内に配置することで、 /var
や /tmp
のディレクトリ内にあるログや一時ファイルなどが容量を大きく浪費して、ルートパーティションに書き込めなくなってしまうような事態を防ぐことができます。場合によっては、サードパーティ製のアプリケーションを配置する /opt
ディレクトリを別のパーティションに配置する必要がある場合もあります。
ファイルやパーティション、ディスク全体の暗号化を行うことで、お使いのデータに対する不正なアクセスを保護し、ファイルや文書に対する機密を保護することができます。
データベースなどのアプリケーションは、サードパーティ製の製品として提供される専用のサーバの形態で提供されることがあります。そのような環境を使用する場合、メーカー側のスタッフと連携してデータセンターのメンテナンスタスクを実行する必要があります。また、プライバシーの要件を満たすためにディスクの暗号化を行う必要があるかもしれません。
ログインに使用していないシステムアカウントやベンダーのアカウントについては、ロック (施錠) を行っておくのが重要です。 /etc/shadow ファイル内のパスワード欄が ! や * で始まって いない ものが、ロックされていないアカウントになります。また passwd -l コマンドや usermod -L コマンドでアカウントをロックすると、同ファイルのパスワード欄の冒頭に ! が追加されますので、これによって簡単にロックを行うことができます。また、多くのシステムアカウントや共有アカウントは、既定で * , !!, !* のいずれかがパスワード欄に設定されていますが、これらも暗号化された…
cron
と at
の制限本章では、システムのセキュリティを改善するため、 cron
や at
デーモンへのアクセスを制限する方法について説明しています。
spectre-meltdown-checker
は、直近の 20 年間に製造されたほぼ全ての CPU 内に存在する投機的実行機能に関する脆弱性が、お使いのシステムに存在しているかどうかをテストするためのスクリプトです。この脆弱性はハードウエアの欠陥に起因するものであり、攻撃者はこの脆弱性を悪用することで、システム内に存在する全てのデータを読み取ることができる可能性があります。クラウド型のコンピューティングシステムの場合、 1 台の物理ホスト内に複数の仮想マシンが動作する仕組みであることから、この脆弱性を悪用できてしまうと、全ての仮想マシン内のデータを読み取ることができる可能性があることになります。この脆弱性を根本から解決するには、 CPU の再設計と入れ替えが必要になってしまいますが、それができるまでの間の回避策として、これらの脆弱性を緩和するためのソフトウエア修正が提供されています。お使いの SUSE システムを最新の状態に維持しておくことで、これらの修正は全てインストールされることになります。
spectre-meltdown-checker
は詳細なレポートを生成します。お使いのシステムに脆弱性が存在しないことを保証する仕組みではありませんが、緩和策が正しく適用され、潜在的な脆弱性が存在していないことを確認することができます。
YaST のモジュールである openSUSE Leap に対するセキュリティ関連の設定を一括で変更することができます。ログイン処理やパスワードの生成に関する設定のほか、起動の許可に関する設定やユーザの作成、既定のファイルアクセス許可などの設定が含まれています。このモジュールは、 YaST コントロールセンターから › を選択することで、起動を行うことができます。起動を行うと、 ダイアログは、 が選択された状態で始まりますが、それ以外の設定分野については、左側のペインで選択して表示させてください。
を利用することで、Polkit はグラフィカルな Linux デスクトップ環境で使用される認可フレームワークで、システムでの権限管理をより精密に行うための仕組みです。従来の Linux システムでは、最高位のシステム権限を持つユーザとして root
を規定し、それ以外のユーザやグループと分離していましたが、サウンドハードウエアにアクセスするための audio
グループなどのように、 root
とは別の権限構成も存在していました。このような構成では、特定の状態にある場合にのみ許可したり、一時的に許可したりするようなことが実現できませんでした。
このような場合、通常は sudo
コマンドなどで root
に成り代わり、特権を得て作業を行うことになりますが、 Polkit では要件に応じて特定のユーザやグループに対して、必要な権限のみを与えることができます。権限は処理と権限内容を記した設定ファイル内で動的に対応することができます。
POSIX ACL (アクセス制御リスト) は、ファイルシステム内のオブジェクト (ファイルやディレクトリなど) に対して設定することのできる、従来型のパーミッション (アクセス許可) の拡張です。 ACL を使用することで、従来型のパーミッションよりも柔軟な構成をとることができるようになります。
システムの機密を保持することは、代替のきかないシステムの管理者にとっては必須の課題となります。常にシステムが安全な状態にあることは誰も保証できませんので、定期的に (たとえば cron
などで) 追加のチェックを行い、システムが正しく制御されていることを確認することが重要となります。このような要件を満たすことができるのが AIDE (Advanced Intrusion Detection Environment; 高度な侵入検知環境) です。