GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nakonfigurovat „setroubleshootd“ na CentOS/RHEL

Co je to setroubleshootd

SELinux (Security Enhanced Linux) poskytuje povinné řízení přístupu k operačnímu systému Linux. SELinux je docela všudypřítomný, i když pouze v PERMISSIVE režimu. To může odhalit skryté chyby v komponentách jiných než SELinux, které nejsou viditelné, pokud není spuštěn SELinux. Frustrovaní uživatelé si vytvořili dojem, že použití SELinuxu je obtížné.

Služba setroubleshoot je určena k tomu, aby byl SELinux přátelštější. Shromažďuje události auditu SELinux z jádra a spouští řadu analytických zásuvných modulů, které zkoumají narušení přístupu zjištěné SELinuxem. Následně zaznamenává výsledky analýzy a signalizuje všem klientům, kteří si vyžádali upozornění na tyto události. Jedním z nástrojů, který toto využívá, je sealert nástroj, který zobrazuje oznámení na ploše podobně jako e-mailová biffová upozornění.

Ke spuštění této služby musí být povolen SELinux.

Řízení služeb

Na CentOS/RHEL 6 a vyšších, setroubleshootd nevyžaduje init skript ke spuštění/zastavení, zatímco ke spuštění používá dbus, ale přesto se používá k analýze zprávy AVC. Dva nové programy fungují jako metoda pro zahájení odstraňování problémů v případě potřeby, např. sedispatch a seapplet . „sedispatch ” získá všechny zprávy z auditního systému a použije knihovnu auditu k vyhledání zpráv AVC a když najde zprávu o odmítnutí AVC, přejde na setroubleshootd, pokud již běží, nebo spustí setroubleshootd, pokud neběží. Obslužný program seapplet běží na systémové liště a čeká na zprávy dbus v setroubleshootd. Spustí bublinu s upozorněním, která uživateli umožní zkontrolovat zprávy AVC.

Instalace

1. Nainstalujte balíček pro odstraňování problémů.

# yum install setroubleshoot

2. Ověřte stav selinux a ujistěte se, že je nastaven na Enforcing

# sestatus

3. Služba setroubleshoot je řízena pomocí /etc/setroubleshoot/setroubleshoot.cfg konfigurační soubor.

Poznámka :Ve většině případů můžeme použít výchozí konfiguraci, ale možná ji budeme chtít zkontrolovat kvůli dalším funkcím, jako je její schopnost odesílat e-mailové zprávy při každém zamítnutí přístupu.

Testování funkčnosti

Navažte démona sshd na nestandardní port. tj. Definujte další port na /etc/sshd/sshd_config soubor:

Port 22
Port 222

Restartujte sshd, úspěšně se naváže na port 22, ale nebude mu povoleno navázat se na port 222. Protože to SELinux blokuje jako nestandardní port pro typ portu ssh_port_t. Při restartování služby sshd ověřte „ps aux | grep setroubleshoot” výstup příkazu a služba dbus by spustila proces 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

Při restartování služby SSHD se pokusí navázat na port 222, ale setroubleshoot jej zablokuje a podrobnosti protokolu budou zachyceny v souboru /var/log/audit/audit.log pro odepření přístupu k nestandardnímu portu 222 .

# 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

soubor audit.log lze číst pomocí nástroje 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
„Odstraňování problémů“

služby Linux OS


Cent OS
  1. CentOS / RHEL 7 :Jak nainstalovat a nakonfigurovat telnet

  2. Jak nainstalovat a nakonfigurovat Sambu v CentOS / RHEL

  3. Jak nainstalovat a nakonfigurovat telnet v RHEL / CentOS 5,6

  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat a nakonfigurovat R na RHEL 8 / CentOS 8 Linux System

  3. Jak nainstalovat a nakonfigurovat sambu na RHEL 8 / CentOS 8

  1. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  2. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7