Linux siostaman tèarainteachd a

Is e aon de na h-adhbharan airson cho soirbheachail ‘s a tha Linux OS air innealan freumhaichte, gluasadach agus frithealaichean an ìre mhath àrd de thèarainteachd a’ chrainn, seirbheisean co-cheangailte agus tagraidhean. Ach ma tha thoir sùil nas mionaidiche gu ailtireachd an kernel Linux, an uairsin tha e do-dhèanta ceàrnag a lorg ann le uallach airson tèarainteachd, mar sin. Càite a bheil fo-shiostam tèarainteachd Linux am falach agus dè a tha ann?

Cùl-fhiosrachadh Modalan Tèarainteachd Linux agus SELinux

Tha Security Enhanced Linux na sheata de riaghailtean agus inneal ruigsinneachd stèidhichte air na modalan ruigsinneachd èigneachail agus stèidhichte air dreuchd gus siostaman Linux a dhìon bho chunnartan a dh’ fhaodadh a bhith ann agus gus laigsean Smachd Ruigsinneachd Roghainneil (DAC) a chàradh, siostam tèarainteachd traidiseanta Unix. Thòisich am pròiseact ann am broinn Buidheann Tèarainteachd Nàiseanta na SA, agus bha na cunnradairean Secure Computing Corporation agus MITER, a bharrachd air grunn deuchainn-lannan rannsachaidh, an sàs gu dìreach san leasachadh.

Linux siostaman tèarainteachd a
Modalan Tèarainteachd Linux

Chuir Linus Torvalds grunn notaichean mu leasachaidhean ùra NSA gus an gabhadh an toirt a-steach don phrìomh mheur den kernel Linux. Thug e cunntas air àrainneachd chumanta, le seata de interceptors airson a bhith a’ riaghladh gnìomhachd air nithean agus seata de raointean dìon anns na structaran dàta kernel airson na buadhan co-fhreagarrach a stòradh. Faodar an àrainneachd seo a chleachdadh an uairsin le modalan kernel a ghabhas luchdachadh gus modal tèarainteachd sam bith a tha thu ag iarraidh a chuir an gnìomh. Chaidh LSM a-steach gu h-iomlan don Linux kernel v2.6 ann an 2003.

Tha frèam LSM a’ toirt a-steach raointean dìon ann an structaran dàta agus gairmean gnìomh eadar-ghluasaid aig puingean èiginneach anns a’ chòd kernel gus an riaghladh agus smachd ruigsinneachd a choileanadh. Bidh e cuideachd a’ cur ri comas-gnìomh airson modalan tèarainteachd a chlàradh. Anns an eadar-aghaidh / sys/kernel/security/lsm tha liosta de mhodalan gnìomhach san t-siostam. Tha dubhan LSM air an stòradh ann an liostaichean ris an canar san òrdugh a tha air a shònrachadh ann an CONFIG_LSM. Tha sgrìobhainnean dubhan mionaideach air an toirt a-steach don fhaidhle header include/linux/lsm_hooks.h.

Rinn fo-shiostam LSM e comasach làn-fhilleadh a-steach SELinux den aon dreach den kernel Linux seasmhach v2.6. Gu litearra sa bhad, thàinig SELinux gu bhith na inbhe de facto airson àrainneachd tèarainte Linux agus thàinig e gu bhith na phàirt de na sgaoilidhean as mòr-chòrdte: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

Gluais

  • Dearbh-aithne - Chan eil an neach-cleachdaidh SELinux an aon rud ris an id neach-cleachdaidh àbhaisteach Unix / Linux, faodaidh iad a bhith còmhla air an aon shiostam, ach tha iad gu tur eadar-dhealaichte ann an cruth. Faodaidh gach cunntas Linux àbhaisteach a bhith co-fhreagairt ri aon no barrachd ann an SELinux. Tha dearbh-aithne SELinux mar phàirt den cho-theacsa tèarainteachd iomlan a bhios a’ dearbhadh dè na raointean as urrainn dhut agus nach urrainn dhut a dhol còmhla.
  • Fearann - Ann an SELinux, is e an àrainn co-theacsa cur gu bàs a’ chuspair, ie am pròiseas. Tha an àrainn a 'mìneachadh gu dìreach an ruigsinneachd a tha aig pròiseas. Tha àrainn gu bunaiteach na liosta de na ghabhas pròiseasan a dhèanamh no dè na gnìomhan as urrainn do phròiseas a dhèanamh le diofar sheòrsaichean. Is e cuid de na h-eisimpleirean de raointean sysadm_t airson rianachd siostam, agus user_t a tha na raon cleachdaiche àbhaisteach gun bhuannachd. Bidh an siostam init a’ ruith san àrainn init_t, agus tha am pròiseas ainmichte a’ ruith anns an àrainn ainmichte_t.
  • Dreuchdan - Rud a tha na eadar-mheadhanair eadar raointean agus luchd-cleachdaidh SELinux. Bidh dreuchdan a’ mìneachadh dè na raointean a dh’ fhaodas a bhith aig neach-cleachdaidh agus dè an seòrsa stuthan a gheibh an neach-cleachdaidh. Tha inneal smachd ruigsinneachd mar seo a’ cur casg air bagairt ionnsaigh àrdachadh sochair. Tha dreuchdan air an sgrìobhadh a-steach don mhodail tèarainteachd Smachd Ruigsinneachd Stèidhichte air Dreuchd (RBAC) a thathar a’ cleachdadh ann an SELinux.
  • Seòrsaichean - Seòrsa feart liosta èigneachaidh a thèid a shònrachadh do nì agus a cho-dhùineas cò aig a gheibh cothrom air. Coltach ri bhith a’ mìneachadh àrainn, ach a-mhàin gu bheil an àrainn a’ buntainn ris a’ phròiseas, fhad ‘s a tha an seòrsa a’ buntainn ri nithean leithid clàran, faidhlichean, socaidean is mar sin air adhart.
  • Cuspairean agus nithean - Tha pròiseasan nan cuspairean agus gan ruith ann an co-theacsa sònraichte, no raon tèarainteachd. Tha goireasan siostam obrachaidh: faidhlichean, clàran, socaidean, msaa, nan nithean a tha air an sònrachadh de sheòrsa sònraichte, ann am faclan eile, ìre de dhìomhaireachd.
  • Poileasaidhean SELinux - Bidh SELinux a’ cleachdadh grunn phoileasaidhean gus an siostam a dhìon. Tha poileasaidh SELinux a’ mìneachadh ruigsinneachd luchd-cleachdaidh gu dreuchdan, dreuchdan gu raointean, agus raointean gu seòrsachan. An toiseach, tha ùghdarras aig an neach-cleachdaidh dreuchd fhaighinn, agus an uairsin tha ùghdarras aig an dreuchd faighinn gu raointean. Mu dheireadh, is dòcha nach bi cothrom aig àrainn ach air seòrsachan sònraichte de nithean.

Ailtireachd LSM agus SELinux

A dh'aindeoin an ainm, mar as trice chan e modalan Linux a ghabhas luchdachadh a th' ann an LSMn. Ach, dìreach mar SELinux, tha e air fhilleadh a-steach don kernel gu dìreach. Feumaidh atharrachadh sam bith air còd stòr LSM cruinneachadh kernel ùr. Feumaidh an roghainn fhreagarrach a bhith air a chomasachadh anns na roghainnean kernel, air neo cha tèid an còd LSM a chuir an gnìomh às deidh bròg. Ach eadhon sa chùis seo, faodar a chomasachadh leis an roghainn bootloader OS.

Linux siostaman tèarainteachd a
Stac de sgrùdaidhean LSM

Tha LSM uidheamaichte le dubhan ann am prìomh ghnìomhan kernel a dh’ fhaodadh a bhith buntainneach airson sgrùdaidhean. Is e aon de na prìomh fheartan aig LSM gu bheil iad stèidhichte air stac. Mar sin, tha na sgrùdaidhean àbhaisteach fhathast gan coileanadh, agus cha bhith gach còmhdach LSM a’ cur ach smachdan agus smachdan a bharrachd. Tha seo a’ ciallachadh nach urrainnear an casg a chuir air ais. Tha seo air a shealltainn anns an fhigear, ma tha toradh sgrùdaidhean àbhaisteach DAC a 'fàilligeadh, cha ruig e eadhon na dubhan LSM.

Ghabh SELinux ri ailtireachd tèarainteachd Flask de shiostam obrachaidh rannsachaidh Fluke, gu sònraichte prionnsapal an sochair as lugha. Is e brìgh a ’bhun-bheachd seo, mar a tha an t-ainm aca a’ moladh, a bhith a ’toirt don neach-cleachdaidh no pròiseas a-mhàin na còraichean sin a tha riatanach airson na gnìomhan a tha san amharc a bhuileachadh. Tha am prionnsapal seo air a bhuileachadh le bhith a’ cleachdadh taidhpeadh ruigsinneachd èignichte, agus mar sin tha smachd ruigsinneachd SELinux stèidhichte air an àrainn => modal seòrsa.

Tro bhith a’ taipeadh ruigsinneachd èigneachail, tha comasan smachd ruigsinneachd fada nas motha aig SELinux na am modal DAC traidiseanta a thathas a’ cleachdadh ann an siostaman obrachaidh Unix/Linux. Mar eisimpleir, faodaidh tu àireamh port lìonra a chuingealachadh a thachras don fhrithealaiche ftp, leigeil le sgrìobhadh agus atharrachadh faidhlichean ann am pasgan sònraichte, ach gun a bhith gan sguabadh às.

Is iad na prìomh phàirtean de SELinux:

  • Frithealaiche Co-èigneachaidh Poileasaidh - Am prìomh dhòigh airson smachd ruigsinneachd a chuir air dòigh.
  • Stòr-dàta de phoileasaidhean tèarainteachd siostam.
  • Eadar-obrachadh leis an neach-èisteachd tachartas LSM.
  • Selinuxfs - Pseudo-FS, an aon rud ri / proc agus air a chuir suas ann an / sys / fs / selinux. Air a chuairteachadh gu dinamach leis an kernel Linux aig àm ruith agus tha faidhlichean ann anns a bheil fiosrachadh inbhe SELinux.
  • Vector tasgadan ruigsinneachd - Uidheam cuideachaidh gus coileanadh a leasachadh.

Linux siostaman tèarainteachd a
Mar a tha SELinux ag obair

Tha seo uile ag obair mar a leanas.

  1. Bidh cuspair, ann an teirmean SELinux, a’ coileanadh gnìomh ceadaichte air nì às deidh sgrùdadh DAC, mar a chithear san dealbh gu h-àrd. Thèid an t-iarrtas obrachaidh seo gu neach-èisteachd tachartas LSM.
  2. Às an sin, thèid an t-iarrtas, còmhla ri co-theacsa tèarainteachd a’ chuspair agus an nì, a chuir gu modal SELinux Abstraction agus Hook Logic le uallach airson eadar-obrachadh leis an LSM.
  3. Is e an t-Seirbheis Co-èigneachaidh Poileasaidh an t-ùghdarras co-dhùnaidh air ruigsinneachd an cuspair air an nì, agus gheibh e dàta bho SELinux AnHL.
  4. Gus co-dhùnadh a dhèanamh air ruigsinneachd, no casg, tha an t-Seirbheis Co-èigneachaidh Poileasaidh a’ toirt iomradh air an fho-shiostam tasgadan de na riaghailtean Access Vector Cache (AVC) as motha a chleachdar.
  5. Mura lorgar am fuasgladh airson an riaghailt fhreagarrach san tasgadan, thèid an t-iarrtas a chuir chun stòr-dàta poileasaidh tèarainteachd.
  6. Thèid toradh an sgrùdaidh bhon stòr-dàta agus AVC a thilleadh chun Fhrithealaiche Co-èigneachaidh Poileasaidh.
  7. Ma tha am poileasaidh a chaidh a lorg co-chòrdail ris a’ ghnìomh a chaidh iarraidh, tha an obrachadh ceadaichte. Mur eil, tha an obrachadh air a thoirmeasg.

A’ riaghladh roghainnean SELinux

Tha SELinux ag obrachadh ann an aon de thrì modhan:

  • Cur an gnìomh - Cur an gnìomh teann air poileasaidhean tèarainteachd.
  • Ceadaichte - Tha briseadh air cuingealachaidhean ceadaichte, tha an comharra co-fhreagarrach air a dhèanamh sa log.
  • Ciorramach - Chan eil poileasaidhean tèarainteachd ann an gnìomh.

Chì thu dè am modh anns a bheil SELinux leis an àithne a leanas.

[admin@server ~]$ getenforce
Permissive

Ag atharrachadh a 'mhodh mus ath-thòisich, mar eisimpleir, suidhich e gu bhith a' cur an gnìomh, no 1. Tha am paramadair ceadaichte a 'freagairt ris a' chòd àireamhach 0.

[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #то же самое

Faodaidh tu cuideachd am modh atharrachadh le bhith a’ deasachadh an fhaidhle:

[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=targaid

Is e an eadar-dhealachadh le setenfoce nuair a bhios an siostam obrachaidh a’ bròg, thèid am modh SELinux a shuidheachadh a rèir luach paramadair SELINUX anns an fhaidhle rèiteachaidh. A bharrachd air an sin, bidh cur an gnìomh <=> atharrachaidhean ciorramach a’ tighinn gu buil dìreach le bhith a’ deasachadh an fhaidhle /etc/selinux/config agus às deidh ath-thòiseachadh.

Thoir sùil air geàrr-chunntas air staid:

[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

Gus feartan SELinux fhaicinn, bidh cuid de ghoireasan stoc a’ cleachdadh an roghainn -Z.

[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

An coimeas ris an toradh àbhaisteach ls -l, tha grunn raointean a bharrachd anns a’ chruth a leanas:

<user>:<role>:<type>:<level>

Tha an raon mu dheireadh a’ comharrachadh rudeigin mar stampa tèarainteachd agus tha measgachadh de dhà eileamaid ann:

  • s0 - cudromachd, cuideachd air a chlàradh anns an eadar-ama ìre ìosal-àrd-ìre
  • 'S e c0, c1 … c1023 an roinn-seòrsa.

Ag atharrachadh an rèiteachaidh ruigsinneachd

Cleachd semodule gus modalan SELinux a luchdachadh, cuir ris agus thoir air falbh iad.

[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 - удалить модуль

A 'chiad sgioba logadh a-steach semanage a’ ceangal neach-cleachdaidh SELinux ri neach-cleachdaidh siostam obrachaidh, tha an dàrna fear ga liostadh. Mu dheireadh, tha an àithne mu dheireadh leis an tionndadh -r a 'toirt air falbh mapadh luchd-cleachdaidh SELinux gu cunntasan OS. Lorgar mìneachadh air a’ cho-chòrdadh airson luachan Raon MLS/MCS anns an earrainn roimhe seo.

[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

sgioba cleachdaiche semanage air a chleachdadh gus mapadh eadar luchd-cleachdaidh SELinux agus dreuchdan a riaghladh.

[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

Roghainnean àithne:

  • -a cuir a-steach inntrigeadh mapaidh dreuchd àbhaisteach;
  • -l liosta de luchd-cleachdaidh agus dreuchdan co-fhreagarrach;
  • -d thoir air falbh inntrigeadh mapaidh dreuchd àbhaisteach;
  • -R liosta de dhleastanasan ceangailte ris an neach-cleachdaidh;

Faidhlichean, puirt agus booleans

Tha gach modal SELinux a’ toirt seachad seata de riaghailtean comharrachaidh fhaidhlichean, ach faodaidh tu cuideachd na riaghailtean agad fhèin a chur ris ma tha feum air. Mar eisimpleir, tha sinn ag iarraidh gum bi còraichean-slighe aig an fhrithealaiche lìn air a' phasgan / srv/www.

[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/

Bidh a’ chiad àithne a’ clàradh riaghailtean comharrachaidh ùra, agus bidh an dàrna àithne ag ath-shuidheachadh, no an àite sin a’ nochdadh, seòrsaichean faidhle a rèir nan riaghailtean gnàthach.

Mar an ceudna, tha puirt TCP/UDP air an comharrachadh ann an dòigh is nach urrainn ach na seirbheisean iomchaidh èisteachd riutha. Mar eisimpleir, gus am bi frithealaiche lìn ag èisteachd air port 8080, feumaidh tu àithne a ruith.

[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080

Tha crìochan aig àireamh mhòr de mhodalan SELinux a dh'fhaodas luachan boolean a ghabhail. Chithear an liosta gu lèir de na roghainnean sin le getsebool -a. Faodar luachan Boolean atharrachadh le bhith a’ cleachdadh setsebool.

[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

Practicum, faigh cothrom air an eadar-aghaidh Pgadmin-web

Beachdaich air eisimpleir bho chleachdadh, chuir sinn a-steach pgadmin7.6-web air RHEL 4 gus stòr-dàta PostgreSQL a rianachd. Chaidh sinn seachad air pìos beag oidhirp le stèidheachadh pg_hba.conf, postgresql.conf agus config_local.py, cuir na còraichean air na pasganan, chuir iad a-steach na modalan Python a tha a dhìth bho phìob. Tha a h-uile dad deiseil, ruith agus faigh Mearachd 500 taobh a-staigh an fhrithealaiche.

Linux siostaman tèarainteachd a

Bidh sinn a’ tòiseachadh le daoine a tha fo amharas àbhaisteach, thoir sùil air /var/log/httpd/error_log. Tha beagan inntrigidhean inntinneach an sin.

[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.

Aig an ìre seo, bidh a’ mhòr-chuid de luchd-rianachd Linux air an tàladh gu làidir gus setencorce 0 a ruith, agus a dhèanamh leis. Gus a bhith onarach, is e seo a’ chiad uair a rinn mi e. Tha seo, gu dearbh, cuideachd na shlighe a-mach, ach fada bhon fheadhainn as fheàrr.

A dh 'aindeoin na dealbhaidhean duilich, faodaidh SELinux a bhith furasta a chleachdadh. Dìreach stàlaich am pasgan setroubleshoot agus faic log an t-siostaim.

[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd

Thoir an aire gum feumar an t-seirbheis sgrùdaichte ath-thòiseachadh mar seo, agus chan ann le systemctl, a dh’ aindeoin làthaireachd systemd san OS. Ann an log an t-siostam thèid a chomharrachadh chan e a-mhàin fìrinn bacadh, ach cuideachd an adhbhar agus dòigh air faighinn seachad air a’ chasg.

Linux siostaman tèarainteachd a

Bidh sinn a’ coileanadh nan òrduighean seo:

[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1

Nì sinn sgrùdadh air ruigsinneachd air duilleag-lìn pgadmin4-lìn, bidh a h-uile dad ag obair.

Linux siostaman tèarainteachd a

Linux siostaman tèarainteachd a

Source: www.habr.com

Cuir beachd ann