Linux systemata securitatis

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 propius vultus accipies ad architecturae Linux nuclei, tunc impossibile est in ea invenire quadratam securitatis responsalem qua talis. Ubi est Linux securitatis subsystem occultatio et quid est?

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 systemata securitatis
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.

Linux systemata securitatis
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.

Linux systemata securitatis
Ut SELinux operatur

Sic omnia opera.

  1. 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.
  2. Inde, petitio, una cum re et obiecto securitatis contextu, ad SELinux Abstractio et Hook Logicus modulus, qui mutuam cum LSM respondere debet, praetermittitur.
  3. Auctoritas decernendi de re aditum ad obiectum est Exactio Policy Servo et notitia ex SELinux AnHL accipit.
  4. Ad decernendum de accessu vel negatione, Exactio Policy Servo vertit ad Obvius Vector Cache (AVC) subsystem caching subsystem pro quibus utitur regularibus.
  5. Si solutio regulae respondentis in cella non invenitur, petitio ad datorum securitatem deducitur.
  6. Proventus inquisitionis ex datorum et AVC regreditur ad Exactionem Exactionis Servo.
  7. 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 quest cum fundis pg_hba.conf, postgresql.conf et config_local.py, pone folder permissiones, modulorum absentis Pythonis pituitae inauguratus est. Omnia parata sunt, deducimus et accipimus Error Internum Servo D.

Linux systemata securitatis

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.

Linux systemata securitatis

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.

Linux systemata securitatis

Linux systemata securitatis

Source: www.habr.com