カーネルパラメータやCPUに関する機能であまり普段設定する箇所ではないのですが、そのような設定項目があって有効になっている事の確認方法ぐらいは知っておいた方が良さそうです。
RedhatES5の資料になりますが下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
(1)ExecShieldが有効になっているか確認
1)ExecShieldとは?
・下記サイトの説明によると、特定のメモリー領域から命令を実行できないようするLinuxの機能で、バッファ・オーバーフロ-攻撃に対して有効な防御機能のようです。
Exec-Shieldとは
・デフォルトで有効になっているようですが、何かの手順ミスで無効になってしまっていないか確認します。
2)ExecShieldが有効になっている事を確認するには?
“kernel.exec-shield”、”kernel.randomize_va_space”というカーネルパラメータで制御されています。
sysctlコマンドで現時点で有効になっているか確認出来ます。
$ sysctl kernel.exec-shield kernel.exec-shield = 1 $ sysctl kernel.randomize_va_space kernel.randomize_va_space = 2
1と2の値の違いの意味はよく分かりませんが、有効にはなっているようです。
(2)Execute Disable (XD)、No Execute (NX)機能が有効になっているか確認
1)Execute Disable (XD)、No Execute (NX)機能とは?
・新しいのx86ファミリーの32ビットプロセッサーは、ページメモリ単位にコードの実行を保護する機能をサポートしています。
この機能は、AMDプロセッサーではNo Execute (NX)、インテルプロセッサーではExecute Disable (XD)と呼ばれるそうです。
・この機能はバッファーオーバーフロー脆弱性に対する不正な攻撃を防ぐのに役立つので出来るだけ有効にすべきとの事です。
・その他のプロセッサー(Itanium、POWER、64ビットx86)はこの機能をサポートしていて、これらのプラットフォーム用の標準カーネルもサポートしているようです。
2)使用しているCPUがこの機能サポートしているか確認するには?
PAE(Physical Address Extension、物理アドレス拡張)とNX機能がサポートされているか確認します。
下記コマンドで確認します。
$ cat /proc/cpuinfo
①CPUが32ビットか64ビットか?
“flags”欄に”lm”の文字があれば64ビット
②PAEとNX機能がサポートされているか?
“flags”欄に”pxe”、”nx”の文字があればサポートされている。
3)x86システム上で新しいカーネルがインストールされているか確認する
32ビットカーネルの場合は、XDまたはNXサポートを有効にするためにkernel-PAEパッケージがインストールされている必要があります。(64ビットx86カーネルパッケージの場合は対応済みなので必要ありません。)
①OSが32ビットか64ビットか?
以下のコマンドで確認できます。
$ uname -m
②インストールする場合
下記コマンドでインストールします。
# yum install kernel-PAE
インストール後、必要に応じて、新しいカーネルが起動時にロードされるように/etc/grub.confを編集します。
4)BIOSでNX、XD機能を有効にする
システムによってはこの機能をBIOSで選択して有効にする必要があります。
BIOSの設定画面でXD、NX機能が有効になっていることを確認します。 関連記事の目次
-
OpenSSH
- レンタルサーバー(VPS)にSSHでログイン
- VPS(レンタル)サーバー上のssh初期設定確認
- SSH接続の仕組み
- OpenSSHの設定ファイル
- OpenSSHの設定をよりセキュアに
- CentOS Stream9のSSH設定(OpenSSH)
- WinSCPを使ってファイル転送
ネットワーク、ポート番号
rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
auditdでシステム監査
ツール
トラブルシューティング
-
ネットワーク、ポート番号
- iptablesを使ってCentOSのファイアウォール設定
- CentOS6のTCPラッパーの概要と設定方法
- nmapでオープンしているポート番号とバージョンを確認
- yumコマンドで最新のパッケージにアップデート
- 更新可能なRPMパッケージのリストをメールで送信する
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- cronで使用するファイルのパーミッション設定
- CentOSのumaskの設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
yum、rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
ツール
トラブルシューティング