GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menginstal dan mengkonfigurasi "setroubleshootd" di CentOS/RHEL

Apa yang dimaksud dengan pemecahan masalah

SELinux (Security Enhanced Linux) menyediakan kontrol akses wajib ke sistem operasi Linux. SELinux cukup meresap, meskipun hanya dalam mode PERMISSIVE. Ini dapat mengekspos bug laten di komponen non-SELinux yang tidak terlihat kecuali SELinux sedang berjalan. Pengguna yang frustrasi telah mengembangkan persepsi bahwa SELinux sulit digunakan.

Layanan setroubleshoot dimaksudkan untuk membuat SELinux lebih ramah. Ini mengumpulkan peristiwa audit SELinux dari kernel dan menjalankan serangkaian plug-in analisis untuk memeriksa pelanggaran akses yang terdeteksi oleh SELinux. Ini kemudian mencatat hasil analisis dan memberi sinyal kepada klien mana pun yang telah meminta pemberitahuan tentang peristiwa ini. Setelah alat yang memanfaatkan ini adalah sealert alat, yang menyajikan pemberitahuan desktop yang mirip dengan peringatan email biff.

SELinux harus diaktifkan untuk menjalankan layanan ini.

Kontrol Layanan

Pada CentOS/RHEL 6 dan di atasnya, pemecahan masalah tidak memerlukan skrip init untuk memulai/menghentikan, sedangkan untuk memulainya menggunakan dbus, tetapi tetap digunakan untuk menganalisis pesan AVC. Dua program baru bertindak sebagai metode untuk memulai pemecahan masalah saat diperlukan, yaitu sedispatch dan seapplet . “kirim kirim ” mendapatkan semua pesan dari sistem audit dan menggunakan perpustakaan audit untuk mencari pesan AVC dan ketika menemukan pesan penolakan AVC, itu akan pergi ke setroubleshootd jika sudah berjalan atau akan mulai setroubleshootd jika tidak berjalan. Utilitas seapplet berjalan di bilah alat sistem, menunggu pesan dbus di setroubleshootd. Ini meluncurkan gelembung notifikasi, memungkinkan pengguna untuk meninjau pesan AVC.

Pemasangan

1. Instal paket setroubleshoot.

# yum install setroubleshoot

2. Verifikasi status selinux dan pastikan sudah diatur ke Enforcing

# sestatus

3. Layanan setroubleshoot dikendalikan oleh /etc/setroubleshoot/setroubleshoot.cfg berkas konfigurasi.

Catatan :Dalam kebanyakan kasus, kita dapat menggunakan konfigurasi default, tetapi mungkin ingin meninjaunya untuk fitur tambahan seperti kemampuannya mengirim pesan email untuk setiap penolakan akses.

Menguji fungsionalitas

Ikat daemon sshd ke port non-standar. yaitu Tentukan port tambahan pada /etc/sshd/sshd_config berkas:

Port 22
Port 222

Restart sshd, itu akan mengikat ke port 22 dengan sukses, tetapi tidak akan diizinkan untuk mengikat ke port 222. Karena itu diblokir oleh SELinux sebagai port non-standar untuk jenis port ssh_port_t. Saat memulai ulang layanan sshd, verifikasi “ps aux | grep setroubleshoot” perintah output dan layanan dbus akan memicu proses 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

Saat memulai ulang layanan SSHD, layanan akan mencoba mengikat ke Port 222 tetapi setroubleshoot akan memblokirnya dan detail log akan disimpan di file /var/log/audit/audit.log untuk penolakan akses ke port non-statndard 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

file audit.log dapat dibaca menggunakan alat 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
Layanan OS Linux 'pemecahan masalah'


Cent OS
  1. CentOS / RHEL 7 :Cara menginstal dan mengkonfigurasi telnet

  2. Cara menginstal dan mengkonfigurasi Samba di CentOS / RHEL

  3. Cara Menginstal dan mengkonfigurasi telnet di RHEL / CentOS 5,6

  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara menginstal dan mengkonfigurasi R pada Sistem Linux RHEL 8 / CentOS 8

  3. Cara menginstal dan mengkonfigurasi samba di RHEL 8 / CentOS 8

  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  3. Cara Instal dan Konfigurasi Redmine di CentOS 7