McAfee SELinux のカスタム RPM パッケージを作成する方法
技術的な記事 ID:
KB94454
最終更新: 2021/07/29
環境
McAfee Agent (MA) 5.7.x
Security-Enhanced Linux (SELinux)
概要
この記事では、McAfee Agent で McAfee SELinux カスタム RPM パッケージを構築する手順を紹介します。 このパッケージには SELinux ポリシーが含まれており、MA プロセスがカスタムフォルダパス内で読み取り、書き込み、実行できるようになっています。
重要: このパッケージは ePO から配備できません。 以下の手順を使用して手動でインストールする必要があります。
- 製品ダウンロード のサイトから McAfeeAgent-selinux-5.7.x-ReleasePackages.tar.gz をダウンロードします。
- パッケージを Linux システム上の任意の場所にコピーし、以下のコマンドでパッケージを展開します:
[root@root selinux]# tar -xvf McAfeeAgent-selinux-5.7.0-ReleasePackages.tar.gz
展開されたパッケージ:
McAfeeAgent-selinux-5.7.0-ReleasePackages/
McAfeeAgent-selinux-5.7.0-ReleasePackages/MFEma-selinux-5.7.0-1.src.rpm
McAfeeAgent-selinux-5.7.0-ReleasePackages/MFEma-selinux-5.7.0-1.el7.noarch.rpm
McAfeeAgent-selinux-5.7.0-ReleasePackages/MFEma-selinux-5.7.0-1.el8.noarch.rpm
- 上記のファイルを展開したフォルダに移動します。以下のコマンドを使用します:
[root@root selinux]# cd McAfeeAgent-selinux-5.7.0-ReleasePackages/
[root@root McAfeeAgent-selinux-5.7.0-ReleasePackages]# ls -lsa
画面出力の例
total 160
0 drwxrwxr-x. 2 500 500 131 Feb 11 12:51 .
0 drwxr-xr-x. 3 root root 111 May 26 10:39 ..
64 -. 1 500 500 62564 Feb 11 12:51 MFEma-selinux-5.7.0-1.el7.noarch.rpm
56 -. 1 500 500 55692 Feb 11 12:51 MFEma-selinux-5.7.0-1.el8.noarch.rpm
40 -. 1 500 500 40675 Feb 11 12:51 MFEma-selinux-5.7.0-1.src.rpm
- 以下のコマンドを実行して、パッケージをインストールします:
rpm -ivh MFEma-selinux-5.7.xx.src.rpm
例:
[root@root McAfeeAgent-selinux-5.7.0]# rpm -ivh MFEma-selinux-5.7.0-1.src.rpm
画面出力の例:
1:MFEma-selinux-5.7.0-1 ## [100%]
注意 SA のレプリケーションパスを /test3/test3/test3 としている場合、このフォルダのコンテキストは root_t となります。 そのため、 masvc プロセスと macmnsvc プロセスがこのコンテキストでフォルダやファイルを管理できるようにする必要があります。
Example:
[root@root SOURCES]# ls -alZ
画面出力の例
total 168
drwxr-xr-x. 3 root root unconfined_u:object_r:admin_home_t:s0 240 May 26 11:05 .
drwxr-xr-x. 8 root root unconfined_u:object_r:admin_home_t:s0 89 Jan 20 11:01
-. 1 bserver bserver unconfined_u:object_r:admin_home_t:s0 53454 Feb 11 12:50 license.txt
- 以下のコマンドを実行すると、SOURCES フォルダに移動します。
pushd ${HOME}/rpmbuild/SOURCES
注意: Linux システムに rpmbuild がインストールされている必要があります。
- rpm コマンドのファイルが存在することを確認する
[root@root SOURCES]# ls -lsa
画面出力の例
total 168
0 drwxr-xr-x. 3 root root 240 May 26 11:05
0 drwxr-xr-x. 8 root root 89 Jan 20 11:01
56 -. 1 bserver bserver 53454 Feb 11 12:50 license.txt
4 -. 1 bserver bserver 1711 Feb 11 12:50 Makefile
8 -. 1 bserver bserver 5890 Feb 11 12:50 mfe_ma.fc
20 -. 1 bserver bserver 19039 Feb 11 12:50 mfe_ma.if
4 -. 1 bserver bserver 935 Feb 11 12:50 mfe_ma_perm.if
4 -. 1 bserver bserver 1041 Feb 11 12:50 mfe_ma_rt.fc
8 -. 1 bserver bserver 4735 Feb 11 12:50 mfe_ma_rt.if
4 -. 1 bserver bserver 2186 Feb 11 12:50 mfe_ma_rt.te
0 drwxr-xr-x. 2 root root 6 May 14 12:17 MFEma-selinux
4 -. 1 bserver bserver 1034 Feb 11 12:50 MFEma-selinux.tar.gz
52 -. 1 bserver bserver 50456 Feb 11 12:50 mfe_ma.te
4 -. 1 bserver bserver 3566 Feb 11 12:50 README.md
- mfe_ma.te ファイルの gen_require 関数セクションで、VI エディタを使ってコンテキストタイプを定義します。
注意: mfe_ma.te は、${HOME}/rpmbuild/SOURCES にあります。
例:
定義する前:
1. Required
class passwd all_passwd_perms;
type unconfined_service_t, crond_t, crontab_exec_t, crontab_t, user_cron_spool_t, crond_var_run_t, systemd_unit_file_t, useradd_t, groupadd_t, shell_exec_t, usr_t, var_t, etc_t, ldconfig_cache_t, rhsmcertd_t, system_dbusd_t, system_dbusd_var_run_t, rpm_script_t, net_conf_t, sysfs_t, pstore_t, configfs_t, sysctl_fs_t, binfmt_misc_fs_t, system_map_t;'
)
After defining:
gen_require(`
1. Required
class passwd all_passwd_perms;
type root_t, unconfined_service_t, crond_t, crontab_exec_t, crontab_t, user_cron_spool_t, crond_var_run_t, systemd_unit_file_t, useradd_t, groupadd_t, shell_exec_t, usr_t, var_t, etc_t, ldconfig_cache_t, rhsmcertd_t, system_dbusd_t, system_dbusd_var_run_t, rpm_script_t, net_conf_t, sysfs_t, pstore_t, configfs_t, sysctl_fs_t, binfmt_misc_fs_t, system_map_t;
')
- VI エディタ(Shift+G を押す)を使って、以下の行をファイルの最後に追加します。
allow mfe_ma_masvc_t root_t:dir { manage_dir_perms };
allow mfe_ma_masvc_t root_t:file { manage_file_perms };
allow mfe_ma_macmnsvc_t root_t:dir { manage_dir_perms };
allow mfe_ma_macmnsvc_t root_t:file { manage_file_perms };
- VIエディタを終了し(Esc キーとコロンキー:を押します)、ファイルを保存します。
- /rpmbuild/SOURCES フォルダに入っていない場合は、以下のコマンドを入力します:
cd ${HOME}/rpmbuild/SOURCES
- 以下の make コマンドを実行してください。 対象となるポリシーファイルを、/rpmbuild/SOURCES 内の selinux-* フォルダに配置します。
[root@root SOURCES]# make
画面出力の例
SOURCES is mfe_ma.te mfe_ma_rt.te mfe_ma.fc mfe_ma_rt.fc
TARGETS is mfe_ma.pp mfe_ma_rt.pp
- 以下のコマンドを順次実行してください:
mkdir -p ${HOME}/rpmbuild/SOURCES/MFEma-selinux
cp -f license.txt ${HOME}/rpmbuild/SOURCES/MFEma-selinux
pushd selinux-*
cp -f mfe_ma*targeted ${HOME}/rpmbuild/SOURCES/MFEma-selinux
pushd ${HOME}/rpmbuild/SPECS
rpmbuild --define 'pkg_version ' --define '_src 1' -ba MFEma-selinux.spec
注意: には、rpm パッケージのバージョンよりも高い数値が入ります。
例:
[root@root SOURCES]#rpmbuild --define 'pkg_version 2' --define '_src 1' -ba MFEma-selinux.spec
注意: 上記の rpmbuild コマンドは、MA バージョン 5.7.0 のカスタム RPM パッケージを ${HOME}/rpmbuild/RPMS/noarch/ 内に作成します。
例:
[root@root SOURCES]#cd ${HOME}/rpmbuild/RPMS/noarch/
[root@root noarch] ls
MFEma-selinux-5.7.0-2.noarch.rpm
Version #.#.# must be greater than the already installed version.
- 以下のコマンドで MA の SELinux を更新します:
rpm -uvh MFEma-selinux-5.7.0-2.noarch.rpm
詳細は、${HOME}/rpmbuild/SOURCES/README.md を参照してください。
免責事項
この記事の内容のオリジナルは英語です。英語の内容と翻訳に相違がある場合、常に英語の内容が正確です。一部の内容は Microsoft の機械翻訳による訳文となっています。
|