TMPディレクトリーのセキュリティ保護
noexecフラグを使用してTMPディレクトリーをマウントする前に、別の実行可能ディレクトリーにJNAをマップします。
エンタープライズ・セキュリティ・ポリシーでは、多くの場合、実行なし(noexec
)フラグを使用して/tmp
ディレクトリーをマウントすることが求められます。デフォルトで、Cassandra Java Native Access(JNA)は/tmp
にマップされます。JNAが起動するには実行可能ディレクトリーが必要です。JNAを別の(実行可能な)ディレクトリーにマップし直して、DSEサービスを実行するユーザーにフル・アクセスを許可するようにパーミッションを変更します。
手順
- ディレクトリーを作成し、Cassandraユーザーにフル・アクセス権を付与します。
-
JNA一時ディレクトリーをマップします。jvm.optionsファイルで新しいディレクトリーのパスを使用して以下のフラグを追加します。
-Djna.tmpdir=JNA_startup_directory
jvm.optionsファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/cassandra/jvm.options tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/cassandra/conf/jvm.options -
DataStax Enterpriseを再起動します。
JNA起動ディレクトリーを使用できないためにDataStax Enterpriseが起動に失敗すると、システム・ログに以下のエラーが記録される場合があります。
tail -3 /var/log/cassandra/system.log
エラーは、次のようになります。ERROR main 2015-12-18 09:57:00,879 CassandraDaemon.java:213 - JNA failing to initialize properly. Use -Dcassandra.boot_without_jna=true to bootstrap even so. INFO Thread-2 2015-12-18 09:57:00,880 DseDaemon.java:418 - DSE shutting down... INFO Thread-2 2015-12-18 09:57:00,881 PluginManager.java:103 - All plugins are stopped.
「JNAの初期化に失敗する」を参照してください。