Una ex causis ingenti successu Linux OS in immersis, mobilibus machinis et ministris est satis summus gradus securitatis nuclei, officia et applicationes cognatae. sed si
Background on Linux Securitatis Modules et SELinux
Securitas Consectetur Linux copiae regulae et accessus mechanismatum secundum exempla mandatorii et munere fundati accessus ad defendendas rationes Linux a minis potentiae et defectus Discretionis Access Control (DAC), quod traditum Unix systematis securitatis corrigit. Exertum in visceribus securitatis Nationalis US Agency ortum est, et protinus maxime a redemptoribus Secure Computing Corporation and MITER elaboratum est, necnon aliquot laboratorium investigationis.
Linux Securitatis Modules
Linus Torvalds complures commentarias de novis NSA evolutionibus fecit ut in linea Linux nuclei includi possent. ambitum generalem describit, cum praefinito interceptores ad operationes rerum objectarum regendas et certas quasdam tutelas agrorum in nucleo notitiarum structurarum ad congruentia attributa reponenda. Haec environment tum modulis nucleis oneratis adhiberi potest ad exemplar securitatis quodlibet optatum efficiendum. LSM plene Linux nucleum v2.6 anno 2003 intravit.
In compage LSM comprehendit agros custodias in structuris datas et vocat ad functiones interceptionum in punctis criticis in codice nucleo manipulandi et accessum imperium praestandum. Etiam functionality addit ad securitatem modulorum perscriptum. The /sys/kernel/security/lsm interface list of active modules in the systema continet. Unci LSM reponuntur in tabulis, quae ordine certo in CONFIG_LSM vocantur. Singula documenta de uncis inclusa sunt in fasciculi capitalis includendi/linux/lsm_hooks.h.
Subsystem LSM effecit ut plenam integrationem SELinux cum versione stabilis Linux nuclei v2.6 absolveret. Fere statim, SELinux vexillum de facto in ambitus Linux securam factus est et in popularibus distributionibus inclusus est: Inceptum Linux, Fedora, Debian, Ubuntu inclusum est.
SELinux Glossarium
- identitatem - Usor SELinux non est idem ac usor Unix/Linux solitus, in eadem ratione cohaerere possunt, sed essentia prorsus diversa. Quaelibet ratio Linux vexillum uni vel pluribus respondere potest in SELinux. Identitas SELinux pertinet ad contextum securitatis altiore, quod decernit quibus dominiis coniungere potes nec potes.
- Domains - In SELinux, ditione est executio contextus subiecti, i.e., processus. Dominium directe determinat accessum quem processus habet. A dominium est basically index eorum quae processus facere possunt vel quid processus cum diversis speciebus facere potest. Exempla ditionum quaedam sunt sysadm_t pro administratione systematis, et in usuario quod est usor usoris non-privilegiatus normalis. Systema init in init_t domain decurrit et processus nominatus in domain nominandi_t decurrit.
- partes β Quae media est inter domain et SELinux utentes. Partes determinant quae ad dominia utentis pertinere possunt et quae genera rerum accedere possunt. Hic accessus imperium mechanismum impedit minas privilegii propagationis incursus. Munera scripta sunt in Munus Substructio Access Control (RBAC) exemplum securitatis in SELinux adhibitum.
- types - A Typus Enforcement album attributum quod obiecto assignatum est ac decernit quis accedere possit. Similis definitio dominii, excepto quod regio ad processum applicatur, et typus applicatur obiectis ut directoriis, fasciculis, basibus, etc.
- Subdita et objecta - Processus subditi sunt et currunt in certo contextu, seu in securitate dominii. Facultates systematis operandi: fasciculi, directoria, bases, etc., sunt obiecta quaedam generis, id est, gradus secreti.
- SELinux Politiae β SELinux variis rationibus ad systema tuendum utitur. Consilium SELinux accessum usorum ad muneribus, muneribus ad dominia, et ad dominia ad rationes definit. Primum, usoris licitum est munus obtinere, deinde munus licitum est ditionibus accedere. Demum ditione nonnisi ad certas rerum species accedere potest.
LSM et SELinux architectura
Quamvis nomen, LSMs non sunt plerumque moduli Linux onerati. Nihilominus, sicut SELinux, protinus in nucleum inseritur. Quaelibet mutatio ad LSM fontem codicem novam nuclei compilationem requirit. Optio correspondens in uncinis nucleis effici debet, alioquin LSM signum post tabernus non movebitur. Sed etiam hoc in casu, per optionem OS bootloader effici potest.
LSM reprehendo acervus
LSM hamis nucleis instructa functionibus nucleis quae ad compescendos pertinere possunt. Una lineamenta LSMs est ut reclinant. Ita vexillum compescit ut adhuc compleatur, et singulae tabulae LSM tantum additamenta moderamina ac ditionem addit. Id quod bannum revolvi non potest. Hoc in figura demonstratur: si usus DAC compescit defectio est, res ne LSM quidem attinget.
SELinux adoptat in architectura securitatis Flask DENSis investigandi systematis operandi, praesertim principium minimi privilegii. Ratio huius notionis, ut eius nomen suggerit, usori vel processui concedit solum iura quae necessaria sunt ad actiones intentas exsequendas. Hoc principium in typing accessu coactus ad effectum adducitur, ita accessum imperium in SELinux fundi => exemplar typus fundatur.
Per accessum typing coactus, SELinux multo maiorem accessum moderandi facultatem habet quam exemplar traditum DAC in Unix/Linux systematibus operantibus adhibitum. Exempli gratia, numerum portum retis limitare potes quem in servo ftp coniunget, permittit ut in quodam folder et scripto et mutando lima, non tamen eas delendo.
SELinux principales partes sunt:
- Exactio Policy Servo - Summa mechanismus ad accessum ordinandum imperium.
- Ratio securitatis consilium datorum.
- Commercium cum LSM eventu interceptoris.
- Selinuxfs β Pseudo-FS, idem quod /proc&sys/fs/selinux. Dynamice disseminatum est a nucleo Linux in runtime et in continentibus fasciculis SELinux status notitias.
- Aditus Vector Cache - Mechanismus auxiliaris ad augendam fructibus.
Ut SELinux operatur
Sic omnia opera.
- Subiectum quoddam, in verbis SELinux, actionem permissam in obiecto post DAC perscriptio agit, ut in tabula summa ostenditur. Haec petitio ut operationem perficiat ad eventum LSM accedit interceptor.
- Inde, petitio, una cum re et obiecto securitatis contextu, ad SELinux Abstractio et Hook Logicus modulus, qui mutuam cum LSM respondere debet, praetermittitur.
- Auctoritas decernendi de re aditum ad obiectum est Exactio Policy Servo et notitia ex SELinux AnHL accipit.
- Ad decernendum de accessu vel negatione, Exactio Policy Servo vertit ad Obvius Vector Cache (AVC) subsystem caching subsystem pro quibus utitur regularibus.
- Si solutio regulae respondentis in cella non invenitur, petitio ad datorum securitatem deducitur.
- Proventus inquisitionis ex datorum et AVC regreditur ad Exactionem Exactionis Servo.
- Si inventum consilium congruit actioni petitae, tunc operatio permittitur. Alioquin operatio prohibetur.
Administrandi SELinux Optiones
SELinux in uno trium modorum operatur;
- Exactio - Arcta adhaesio ad rationes securitatis.
- Permissiva - Violatio restrictionum permittitur, correspondens nota in ephemeride habetur.
- Debilitatum-Securitatis consilia non sunt in effectu.
Vides quomodo SELinux cum sequenti praecepto sit.
[admin@server ~]$ getenforce
Permissive
Modum mutandi antequam reboet, exempli gratia, constituendi ad coercitionem, vel 1. Modus permissivus correspondet numerico codici 0 .
[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅
Modum emendare potes etiam tabellam emendo:
[admin@server ~]$ cat /etc/selinux/config
# 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 three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=scopum
Differentia cum setenfoce est quod, cum tabernus ratio operandi, modus SELinux secundum valorem parametri SELINUX in file configurationis constituetur. Praeterea mutationes ad coercitionem <=> debilitatum tantum effectum sortiuntur, tabellam /etc/selinux/config emendando et post reboot.
View brevis status fama:
[admin@server ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
Ad visum SELinux attributa quaedam normae utilitates modulo -Z utuntur.
[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL PID TTY TIME CMD
system_u:system_r:httpd_t:s0 2914 ? 00:00:04 httpd
system_u:system_r:httpd_t:s0 2915 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2916 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2917 ? 00:00:00 httpd
...
system_u:system_r:httpd_t:s0 2918 ? 00:00:00 httpd
Cum normali output of ls -l comparati sunt, plures campi additi in hac forma:
<user>:<role>:<type>:<level>
Novissimus campus aliquid significat quasi pignus classificationis et compositum ex duobus elementis;
- s0 - significatum, etiam scriptum ut intervallum low-level
- c0, c1 ... c1023 - categoriae.
Configuratione aditus mutantur
Utere semodule ad onus, addendi et removendi modulorum SELinux.
[admin@server ~]$ semodule -l |wc -l #ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
408
[admin@server ~]$ semodule -e abrt #enable - Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
[admin@server ~]$ semodule -d accountsd #disable - ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
[admin@server ~]$ semodule -r avahi #remove - ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
Primum quadrigis semage login SELinux usorem coniungit cum usore operante, secundus indicem ostendit. Postremo mandatum ultimum cum -r switch removet tabularum faciendarum SELinux utentium ad OS rationes. Explicatio syntaxis pro MLS/MCS Valorum dolor in sectione praecedenti est.
[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol
bigas Semanage user mappings administrare inter usores et munera SELinux usus est.
[admin@server ~]$ semanage user -l
Labeling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
guest_u user s0 s0 guest_r
staff_u staff s0 s0-s0:c0.c1023 staff_r sysadm_r
...
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u
Parametri mandatum:
- -a consuetudo munus mapping viscus adde;
- -l list of matching users and roles;
- -d user munus delere mapping viscus;
- -R index munerum utenti adnexus;
Lima, Portus et Pretio Boolean
Quisque modulus SELinux copiam documenti tagging regulas praebet, sed regulas tuas etiam si necesse est addere potes. Exempli gratia, optamus interretialem cultorem ad iura accessum ad folder /srv/www.
[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/
Primum mandatum registra novas regulas signans, secunda tabulae figurarum vel potius ponit secundum regulas hodiernas.
Item, TCP/UDP portus ita notantur ut sola officia opportuna in eas audire possint. Exempli gratia, ut pro instrumento interretiali audiatur in portu 8080, mandatum currere debes.
[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080
Notabilis numerus modulorum SELinux parametros habet qui bona Boolean capere possunt. Totum indicem talium parametrorum uti getsebool videri potest -a. Mutare potes valores booleanos utentes setebool.
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off
Officina, aditus interface ad Pgadmin-textus
Intueamur exemplum practicum: instituimus telam pgadmin7.6-rHEL 4 ad administrandum datorum PostgreSQL. Ambulavimus paulo
Incipimus cum suspicionibus typicis, annotando /var/log/httpd/error_log. Sunt quidam interesting viscus ibi.
[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690]
[timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.
Hie, maxime Linux, administratores valde tentabuntur setencorce 0 currere, et finis illius erit. Ingenue id primum feci. Hoc est sane etiam exitum, sed longe ab optimo.
Quamvis gravia consilia, SELinux usor amica esse potest. Modo install sarcinam setroubleshoot et log systema explora.
[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd
Quaeso note quod auditd servitium hoc modo silebitur et non utens systemctl, obstante praesentia systematis in OS. In ratio log indicabitur non solum eo interclusio, sed etiam ratio ut superare ban.
Haec mandata exequimur;
[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1
Ad pgadmin4-textae paginae reprimimus aditum, omnia opera.
Source: www.habr.com