GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare "setroubleshootd" su CentOS/RHEL

Cosa viene risolto

SELinux (Security Enhanced Linux) fornisce il controllo dell'accesso obbligatorio al sistema operativo Linux. SELinux è abbastanza pervasivo, anche se solo in modalità PERMESSA. Questo può esporre bug latenti in componenti non SELinux che non sono visibili a meno che SELinux non sia in esecuzione. Gli utenti frustrati hanno sviluppato la percezione che SELinux sia difficile da usare.

Il servizio setroubleshoot ha lo scopo di rendere SELinux più amichevole. Raccoglie gli eventi di controllo di SELinux dal kernel ed esegue una serie di plug-in di analisi per esaminare una violazione di accesso rilevata da SELinux. Registra quindi i risultati dell'analisi e segnala eventuali clienti che hanno richiesto notifiche di questi eventi. Una volta che lo strumento che fa uso di questo è il sealert strumento, che presenta notifiche desktop simili agli avvisi biff e-mail.

SELinux deve essere abilitato per eseguire questo servizio.

Controllo del servizio

Su CentOS/RHEL 6 e versioni successive, setroubleshootd non richiede uno script init per l'avvio/arresto, mentre utilizza dbus per avviarlo, ma viene comunque utilizzato per analizzare il messaggio AVC. Due nuovi programmi fungono da metodo per avviare la risoluzione dei problemi quando necessario, ad esempio sedispatch e seapplet . "invio ” ottiene tutti i messaggi dal sistema di audit e usa la libreria di audit per cercare i messaggi AVC e quando trova un messaggio di rifiuto AVC, andrà a setroubleshootd se è già in esecuzione o avvierà setroubleshootd se non è in esecuzione. L'utilità seapplet viene eseguita nella barra degli strumenti del sistema, in attesa di messaggi dbus in setroubleshootd. Lancia il fumetto di notifica, consentendo all'utente di rivedere i messaggi AVC.

Installazione

1. Installare il pacchetto di risoluzione dei problemi.

# yum install setroubleshoot

2. Verifica lo stato di selinux e assicurati che sia impostato su Enforcing

# sestatus

3. Il servizio setroubleshoot è controllato da /etc/setroubleshoot/setroubleshoot.cfg file di configurazione.

Nota :Nella maggior parte dei casi possiamo utilizzare la configurazione predefinita, ma potremmo volerla rivedere per funzionalità aggiuntive come la sua capacità di inviare messaggi di posta elettronica per ogni rifiuto di accesso.

Test della funzionalità

Associa il demone sshd a una porta non standard. ovvero Definisci una porta aggiuntiva su /etc/sshd/sshd_config file:

Port 22
Port 222

Riavvia sshd, si collegherà alla porta 22 con successo, ma non gli sarà permesso collegarsi alla porta 222. Poiché è bloccata da SELinux come porta non standard per il tipo di porta ssh_port_t. Durante il riavvio del servizio sshd, verifica “ps aux | grep setroubleshoot” output del comando e il servizio dbus avrebbe attivato il processo 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

Durante il riavvio del servizio SSHD, proverà a collegarsi alla porta 222 ma setroubleshoot lo bloccherà e i dettagli del registro verranno acquisiti nel file /var/log/audit/audit.log per la negazione dell'accesso alla porta 222 non standard .

# 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

Il file audit.log può essere letto utilizzando lo strumento 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
Servizio del sistema operativo Linux "risoluzione dei problemi"


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare e configurare R sul sistema Linux RHEL 8 / CentOS 8

  3. CentOS / RHEL 7 :Come installare e configurare telnet

  4. Come installare e configurare Samba in CentOS/RHEL

  5. Come installare e configurare telnet in RHEL / CentOS 5,6

Come installare e configurare Checkmk su CentOS 8 / RHEL 8

Come installare e configurare Nagios Core su CentOS 8 / RHEL 8

Come installare e configurare il server VNC in CentOS 7 / RHEL 7

Come installare e configurare Jenkins su CentOS 8 / RHEL 8

Come installare e configurare MariaDB in CentOS / RHEL 7

Come installare e configurare il server VNC su CentOS/RHEL 8