CentOSでのSELinuxセキュリティ設定

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コマンドなどの多くの方法があります。

  1. chconコマンド

説明:ファイルのSELinuxセキュリティコンテキストを変更します。

使用法:chcon [オプション] [-uSELinuxユーザー] [-rロール] [-lスコープ] [-tタイプ]ファイル

chcon [options] --reference =参照ファイル

オプション:-uユーザー属性を変更する

例:

(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プリセットセキュリティコンテキストの追加

例:

(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

CentOSでのSELinuxセキュリティ設定
CentOS7でGitBookを展開する
CentOS7の下にmysql5.7をインストールします
VMwareにCentOSをインストールする
CentOSの下にJDK + Tomcat8をデプロイします
Centos7にmysqlをインストールします
centos6.8でランプを構成する
Centos7の下にJenkinsをインストールします
Centos7でのRedis3のインストール
MariaDBCentos7の下にMariaDBをインストールします
CentOS6.5の下にmysql5.1をインストールします
CentOS7ネットワーク設定---接続性
CentOS6.6でのXen仮想化の戦闘
[CentOS環境の展開] CentOSでのJava7 / Java8の展開
Centos6.5でドッカー環境を構築する
CentOS7でOpenV **サーバーを構築する
CentOSでのRedisクラスターのインストール
CentOS7で静的IPを構成する
Centos6.5デスクトップバージョンのネットワーク設定
CentOSLinuxでの3つのパーティショニングツール
LinuxにMySQLをインストールする(CentOS 7)
CentOS7でのルートパスワードクラッキング
CentOS6の下にJavaJDK8をインストールします
CentOS7の下にMongoDBデータベースをインストールします
linuxインストールmongodbでのCentOS6.8
virtualboxのCentosネットワーク設定
Centosで静的IPを設定する
CentOS7の下にMesosチュートリアルをインストールします
CentOS5.9でkeepalivedをインストールして構成します
Centos5.2でLAMPをコンパイルしてインストールします
CentOSでNginxとuを使用する
[redisの概要] Centosの下にredisをインストールします
Centos6.9でのRabbitMQクラスター展開レコード
ジェンキンス学習のcentos6.9の下でのインストール
CentOS8でPXCクラスターを構築する
CentOS7でのElasticsearchクラスター展開レコード
CentOS7でOpenSSLとOpenSSHをアップグレードする
CentosでTomcatを展開して最適化する
CentOSの下にハーバーミラーウェアハウスをインストールします
centos7でFTPサーバーを構築する
CentOSでのJava-JDKのインストールと構成
Python3をインストールし、CentOS8でansible
Centos8の下に最新のOpenCV4.3をインストールします
CentOS6.8でdockerをインストールして使用する
CentOS7でFFMPEGソースコードをコンパイルする
CentOS7の下にPython3とPyをインストールします
CentOsでノードバージョンを手動でアップグレードする
centos7でのFFmpeg環境の展開記録
CentOS8でSELinuxを無効にする方法
CentOsでのノードバージョンの手動アップグレード
CentOS7でのErlang20.2のインストールと展開
CentosでのPPTP環境の展開記録
CentOS6.3の下にMono3.2とJexus5.4をインストールします