GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL に「setroubleshootd」をインストールして構成する方法

setroubleshootd とは

SELinux (Security Enhanced Linux) は、Linux オペレーティング システムへの必須のアクセス制御を提供します。 PERMISSIVE モードのみであっても、SELinux は非常に普及しています。これにより、SELinux が実行されていない限り表示されない非 SELinux コンポーネントの潜在的なバグが明らかになる可能性があります。欲求不満のユーザーは、SELinux は使いにくいという認識を持っています。

setroubleshoot サービスは、SELinux をより使いやすくすることを目的としています。カーネルから SELinux 監査イベントを収集し、一連の分析プラグインを実行して、SELinux によって検出されたアクセス違反を調べます。次に、分析の結果を記録し、これらのイベントの通知を要求したクライアントに通知します。これを利用するかつてのツールは sealert です このツールは、電子メールの biff アラートに似たデスクトップ通知を表示します。

このサービスを実行するには、SELinux を有効にする必要があります。

サービス コントロール

CentOS/RHEL 6 以降では、setroubleshootd の開始/停止に init スクリプトは必要ありませんが、dbus を使用して開始しますが、AVC メッセージを分析するために使用されます。 2 つの新しいプログラムは、必要に応じて setroubleshoot を開始する方法として機能します。例:sedispatchセプレット . 「セディスパッチ 」は、監査システムからすべてのメッセージを取得し、監査ライブラリを使用して AVC メッセージを検索し、AVC 拒否が発生したというメッセージを見つけると、setroubleshootd が既に実行されている場合は setroubleshootd に移動し、実行されていない場合は setroubleshootd を開始します。 seapplet ユーティリティはシステム ツールバーで実行され、setroubleshootd で dbus メッセージを待機します。通知バブルを起動し、ユーザーが AVC メッセージを確認できるようにします。

インストール

1. setroubleshoot パッケージをインストールします。

# yum install setroubleshoot

2. selinux のステータスを確認し、Enforcing に設定されていることを確認します

# sestatus

3. setroubleshoot サービスは /etc/setroubleshoot/setroubleshoot.cfg によって制御されます 構成ファイル。

注意 :ほとんどの場合、既定の構成を使用できますが、アクセス拒否ごとに電子メール メッセージを送信する機能などの追加機能について確認する必要がある場合があります。

機能のテスト

sshd デーモンを非標準ポートにバインドします。つまり、/etc/sshd/sshd_config で追加のポートを定義します ファイル:

Port 22
Port 222

sshd を再起動すると、ポート 22 に正常にバインドされますが、ポート 222 にバインドすることはできません。これは、ssh_port_t ポート タイプの非標準ポートとして SELinux によってブロックされているためです。 sshd サービスの再起動中に、「ps aux | grep setroubleshoot」コマンドの出力と、dbus サービスが setroubleshoot プロセスをトリガーします。

# service sshd restart;ps aux|grep setroubleshoot
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
root 31779 41.4 8.5 420396 175700 ? Rl 12:44 0:03 /usr/bin/python -Es /usr/sbin/setroubleshootd -f

SSHD サービスを再起動している間、ポート 222 にバインドしようとしますが、setroubleshoot はそれをブロックし、非標準ポート 222 へのアクセスの拒否に関するログの詳細が /var/log/audit/audit.log ファイルにキャプチャされます。 .

# cat /var/log/audit/audit.log
type=AVC msg=audit(1427956913.700:7926): avc: denied { name_bind } for pid=30949 comm="sshd" src=222 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1427956913.700:7926): arch=c000003e syscall=49 success=no exit=-13 a0=3 a1=7fc9e4d25410 a2=10 a3=7ffff48bd62c items=0 ppid=1 pid=30949 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 ses=1296 tty=(none) comm="sshd" exe="/usr/sbin/sshd" subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 key=(null)
type=AVC msg=audit(1427956913.703:7927): avc: denied { name_bind } for pid=30949 comm="sshd" src=222 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket

audit.log ファイルは、sealert ツールを使用して読み取ることができます。

# sealert -a /var/log/audit/audit.log
100% donefound 1 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------

SELinux is preventing /usr/sbin/sshd from name_bind access on the tcp_socket .

***** Plugin bind_ports (99.5 confidence) suggests *************************

If you want to allow /usr/sbin/sshd to bind to network port 222
Then you need to modify the port type.
Do
# semanage port -a -t PORT_TYPE -p tcp 222
where PORT_TYPE is one of the following: pki_tks_port_t, condor_port_t, ptal_port_t, ups_port_t, sieve_port_t, milter_port_t, pki_tps_port_t, zented_port_t, postgresql_port_t, winshadow_port_t, ntop_port_t, tor_port_t, squid_port_t, luci_port_t, speech_port_t, hddtemp_port_t, http_cache_port_t, ircd_port_t, prelude_port_t, quantum_port_t, certmaster_port_t, mssql_port_t, ionixnetmon_port_t, cvs_port_t, nessus_port_t, postgrey_port_t, movaz_ssc_port_t, zabbix_port_t, ocsp_port_t, pki_ocsp_port_t, iscsi_port_t, ssh_port_t, dccm_port_t, distccd_port_t, clockspeed_port_t, svn_port_t, postfix_policyd_port_t, traceroute_port_t, zabbix_agent_port_t, cyphesis_port_t, varnishd_port_t, afs_bos_port_t, pktcable_port_t, isns_port_t, msnp_port_t, lrrd_port_t, radacct_port_t, wccp_port_t, zebra_port_t, cma_port_t, ricci_port_t, websm_port_t, sap_port_t, matahari_port_t, sixxsconfig_port_t, glance_registry_port_t, dspam_port_t, l2tp_port_t, radsec_port_t, socks_port_t, afs_client_port_t, memcache_port_t, sip_port_t, pulseaudio_port_t, oracle_port_t, tor_socks_port_t, jabber_router_port_t, apcupsd_port_t, gpsd_port_t, puppet_port_t, saphostctrl_port_t, mysqlmanagerd_port_t, imaze_port_t, openhpid_port_t, jabber_client_port_t, aol_port_t, mysqld_port_t, clamd_port_t, utcpserver_port_t, pxe_port_t, mail_port_t, pki_ra_port_t, netport_port_t, monopd_port_t, zope_port_t, afs_pt_port_t, afs_vl_port_t, jacorb_port_t, florence_port_t, glance_port_t, presence_port_t, ipsecnat_port_t, howl_port_t, stunnel_port_t, amavisd_send_port_t, jabber_interserver_port_t, afs_fs_port_t, pingd_port_t, amanda_port_t, amavisd_recv_port_t, soundd_port_t, afs_ka_port_t, piranha_port_t, munin_port_t, mpd_port_t, jboss_debug_port_t, jboss_messaging_port_t, cobbler_port_t, commplex_port_t, hplip_port_t, amqp_port_t, ricci_modcluster_port_t, jboss_management_port_t, pyzor_port_t, razor_port_t, mmcc_port_t, kismet_port_t, pki_kra_port_t, lirc_port_t, asterisk_port_t, nodejs_debug_port_t, virt_port_t, sype_port_t, radius_port_t, netsupport_port_t, dbskkd_port_t, dict_port_t, repository_port_t, transproxy_port_t, virt_migration_port_t, xfs_port_t, xen_port_t, kerberos_master_port_t, festival_port_t, streaming_port_t, boinc_port_t, port_t, pgpkeyserver_port_t, gatekeeper_port_t, pegasus_http_port_t, xserver_port_t, git_port_t, vnc_port_t, mongod_port_t, openvpn_port_t, dcc_port_t, giftd_port_t, dogtag_port_t, pegasus_https_port_t, i18n_input_port_t, cluster_port_t, ctdb_port_t.

***** Plugin catchall (1.49 confidence) suggests ***************************

If you believe that sshd should be allowed name_bind access on the tcp_socket by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep sshd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
Linux OS サービス「setroubleshoot」


Cent OS
  1. CentOS / RHEL 7 :telnet をインストールして構成する方法

  2. CentOS / RHEL に Samba をインストールして構成する方法

  3. RHEL / CentOS 5,6 に telnet をインストールして構成する方法

  1. CentOS7にNginxをインストールして構成する方法

  2. RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

  3. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  1. CentOS7にRedisをインストールして設定する方法

  2. CentOS7にGitLabをインストールして構成する方法

  3. CentOS7にRedmineをインストールして設定する方法