1つは、SELinux構成ファイルです。
CentOS 7システムにSELinuxをデプロイするのは非常に簡単です。SELinuxはモジュールとしてカーネルに統合されているため、SELinuxはデフォルトですでにアクティブ化されています。管理者にとっては、SELinuxを構成および管理する必要があります。CentOS7システムのSELinuxグローバル構成ファイルは/ etc / sysconfig / selinuxであり、内容は次のとおりです。
[ root@centos7 ~]# vim /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted |
---|
SELinux = enforcingはSELinuxのマスタースイッチであり、有効な値はenforcing、permissive、またはdisabledです。
なかでも、無効とは、SELinux機能を無効にすることを意味します。SELinuxはカーネルモジュール機能であるため、設定を無効にすると、コンピュータを再起動する必要があります。 Permissiveは警告専用モードを表します。この状態で、サブジェクトプログラムが無許可のリソースにアクセスしようとすると、SELinuxはログを記録しますが、アクセスを傍受しません。つまり、最終アクセスは成功しますが、SELinuxログに記録されます。強制モードは強制アクティベーションを表し、SELinuxは不正なリソースアクセスを傍受し、関連するログを記録します。
setenforceを使用して、強制モードと許容モードを一時的に切り替えます。切り替えは現在のシステムにすぐに適用され、コンピューターを再起動すると無効になります。モードを永続的に変更するには、構成ファイルを変更する必要があります。
[ root @ centos7〜] #setenforce 0#SELinuxを許容モードに設定[root @ centos7〜] #setenforce 1#SELinuxを強制モードに設定 |
---|
2、SELinuxセキュリティコンテキスト
SELinuxは、SELinuxユーザー、ロール、タイプ、オプションのレベルなどのセキュリティ情報ラベルをプロセスとファイルに追加します。このすべての情報は、SELinuxを実行するときのアクセス制御の基礎です。以下は、SELinuxセキュリティコンテキストを表示するためのサンプルファイルです。ls-Zコマンドを使用してファイルまたはディレクトリのコンテキスト情報を表示でき、ps aux-Zはプロセスのセキュリティコンテキスト情報を表示できます。
[ root@centos7 ~]# ls -Z anaconda-ks.cfg -rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg [root@centos7 ~]# ps aux -Z |
---|
SELinuxのセキュリティコンテキストには次のものが含まれます
ユーザー:役割:タイプ:レベル
3、SELinuxのトラブルシューティング
SELinuxポリシーがリソースアクセス要求を許可するか拒否するかに関係なく、ログが記録されます。これはAVC(Access Vector Cache)です。 SELinuxによって拒否されたすべてのメッセージは、ログに記録されます。システムにインストールおよび実行されているサービスプロセスに応じて、拒否ログメッセージはさまざまなファイルに記録されます。表6-2に、プロセスとログファイルの関係を示します。
表6-2
ログファイルプロセス
/var/log/audit/audit.logauditdサービスが有効になっている
/ var / log / messages auditdサービスがオフになり、rsyslogdサービスがオンになります
/var/log/audit/audit.log、/var/log/messagesインストールsetroubleshoot関連パッケージ
autitdとrsyslogdが同時に有効になります
実稼働環境のほとんどのサーバーでは、グラフィカルインターフェイスが展開およびインストールされていないLinuxシステムがさらに多く、ログファイルを手動で表示する必要があります。管理者は、setroubleshoot関連のソフトウェアパッケージをインストールして、元々ぎくしゃくしたAVC拒否ログをより読みやすいsetroubleshootログに変換できるようにすることをお勧めします。次の2つの方法を使用して、ログを表示できます。
[ root@centos7 ~]# grep setroubleshoot /var/log/messages [root@centos7 ~]# grep denied /var/log/audit/audit.log |
---|
メッセージログを表示するとプロンプトが表示されます。太字のプロンプトに従ってsealertコマンドを実行して、人間化されたエラーメッセージを表示します。
setroubleshoot: SELinux is preventing /usr/sbin/httpd from read access on the file index.html. For complete SELinux messages. run sealert -l 7082b8b4-70f4-42fb-92ea-08a51299d080
[ root@centos7 ~]# sealert -l 7082b8b4-70f4-42fb-92ea-08a51299d080 |
---|
4、セキュリティコンテキストを変更します
SELinuxセキュリティコンテキストを変更および管理するには、chcon、semanage、fcontext、restoreconコマンドなどの多くの方法があります。
説明:ファイルのSELinuxセキュリティコンテキストを変更します。
使用法:chcon [オプション] [-uSELinuxユーザー] [-rロール] [-lスコープ] [-tタイプ]ファイル
chcon [options] --reference =参照ファイル
オプション:-uユーザー属性を変更する
rロール属性を変更する
l範囲属性を変更する
tタイプ属性を変更する
例:
(1)ファイルセキュリティコンテキストを変更します。
[ root @ centos7〜] #cp --preserve = all / etc / passwd / root /#ファイルをコピー(コンテキスト情報を保持)[root @ centos7〜] #ls -Z / root / passwd#ファイルを表示SELinuxセキュリティコンテキスト[root @ centos7〜] #chcon -t admin_home_t / root / passwd#ファイルセキュリティコンテキストのタイプを変更します[root @ centos7〜] #ls -Z / root / passwd |
---|
(2)ディレクトリセキュリティコンテキストを変更します。
[ root @ centos7〜] #chcon -R -t admin_home_t / root /#ディレクトリセキュリティコンテキストを再帰的に変更する |
---|
(3)参照ファイルに従って、ターゲットファイルのセキュリティコンテキストを変更します。
[ root@centos7 ~]# chcon --reference=/etc/passwd /root/passwd |
---|
chconによって変更されたセキュリティコンテキストは、SELinuxのデフォルトのセキュリティコンテキストではありません。ファイルシステムがSELinuxセキュリティラベルをリセットするか、restoreconコマンドを使用して指定されたディレクトリのセキュリティラベルをリセットすると、すべてのファイルとディレクトリのセキュリティラベルがシステムのデフォルトに復元されます。 SELinuxのデフォルトのプリセットセキュリティコンテキストを変更する必要がある場合は、semanageコマンドを使用して追加または変更する必要があります。
5、セマネージコマンド
説明:SELinuxポリシー管理ツール。
使用法:semanage fcontext [-S store]-{a | d | m | l | n | D} [-frst] file_spec
オプション:-a、-addプリセットセキュリティコンテキストの追加
d、-delete指定されたデフォルトのセキュリティコンテキストを削除します
D、-deleteallすべてのプリセットカスタムコンテキストを削除します
m、-modify指定されたプリセットセキュリティコンテキストを変更します
l、-listshowプリセットセキュリティコンテキスト
n、-noheadingはヘッダー情報を表示しません
例:
(1)SELinuxポリシーのデフォルトのプリセットセキュリティコンテキスト情報を表示します。システムは、ポリシーで定義されているすべてのディレクトリとセキュリティコンテキスト情報を一覧表示します。
[ root@centos7 ~]#semanage fcontext -l |
---|
(2)戦略を変更し、新しいプリセットセキュリティコンテキスト情報を追加します。
[ root@centos7 ~]# semanage fcontext -a -t samba_share_t /test/test.txt [root@centos7 ~]# mkdir /test; touch /test/test.txt [root@centos7 ~]# ls -Z /test/test.txt |
---|
(3)restoreconコマンドを使用して、test.txtファイルのセキュリティコンテキストをプリセット値に復元します。
[ root@centos7 ~]# restorecon /test/test.txt [root@centos7 ~]# ls -Z /test/test.txt |
---|
(4)ディレクトリのデフォルトのセキュリティコンテキストを再帰的に設定します。
[ root@centos7 ~]# semanage fcontext -a -t httpd_sys_content_t "/site/www(/.*)?" [root@centos7 ~]# mkdir -p /site/www/{web1,web2} [root@centos7 ~]# touch /site/www/{web1,web2}/index.html [root@centos7 ~]# ls -RZ /site/www [root@centos7 ~]# restorecon -R /site/ |
---|
(5)事前設定されたセキュリティコンテキストを削除します。
[ root@centos7 ~]# semanage fcontext -d /test/ test.txt |
---|
(6)事前設定されたSELinuxセキュリティコンテキストを確認します。
[ root@centos7 ~]# matchpathcon /site/www/ |
---|
6.2.6 ブール値を表示および変更する
SELinuxブール値はリアルタイムで変更できます。たとえば、SELinuxポリシーをリロードまたはコンパイルせずに、サービスがNFSファイルシステムにアクセスできるようにすることができます。 Getseboolは、SELinuxブール値を表示するために使用されるコマンドです。使用法は比較的簡単です。-aオプションは、すべてのブール値を表示するために使用されます。管理者は、パイプラインを通じて必要なブールパラメータをフィルタリングすることをお勧めします。たとえば、getsebool -a | grep ftpを使用して、FTPに関連するブール情報をフィルタリングします。表示効果では、左側がキーワード、右側がスイッチ、オンがオン、オフがオンを表します。具体的な順番は以下のとおりです。
[ root @ centos7〜] #getsebool -a abrt_anon_write off abrt_handle_event off allow_console_login on allow_cvs_read_shadow off allow_daemons_dump_core on allow_daemons_use_tcp_wrapper off allow_daemons_use_tty on allow_domain_fd_use .. .. |
---|
SELinuxブールステータスの変更も非常に簡単で、setsebool名Xを使用して実行できます。その中で、名前はブール名であり、Xはオンまたはオフを表します。デフォルトのsetseboolコマンドで変更されたbooleanパラメーターはすぐに有効になりますが、コンピューターの再起動後に復元されます。永続的に変更する場合は、-pパラメーターを使用する必要があります。
[ root@centos7 ~]# setsebool ftp_home_dir on [root@centos7 ~]# setsebool -p ftp_home_dir on |
---|
( adsbygoogle = window.adsbygoogle || []).push({});
Recommended Posts