Faiga saogalemu Linux

O se tasi o mafuaʻaga o le manuia tele Linux O le OS i luga o masini feaveaʻi ma 'auʻaunaga e iai se tulaga maualuga o le saogalemu mo le kernel, auaunaga e fesoʻotaʻi ma ai, ma polokalama. Ae afai va'ai toto'a i le fausaga o le kernel Linux, ona e le mafai lea ona e mauaina se sikuea i totonu e nafa ma le saogalemu. O fea o lafi ai le vaega o le saogalemu? Linux ma o a mea e aofia ai?

prehistory Linux Module Puipuiga ma le SELinux

Fa'aleleia le Puipuiga Linux o se seti o tulafono ma auala e maua ai avanoa e faʻavae i luga o faʻataʻitaʻiga faʻamalosia ma faʻavae i matafaioi e puipuia ai faiga Linux e faasaga i ni taufaamata'u e ono tula'i mai ma ni fa'aleleiga mo mea sese o le Discretionary Access Control (DAC), o se faiga masani a le Unix mo le saogalemu. Na afua mai le galuega faatino i totonu o le US National Security Agency, faatasi ai ma le atina'eina na faatinoina e konekarate o le Secure Computing Corporation ma le MITRE, faapea foi ma le tele o fale suesue.

Faiga saogalemu Linux
Linux Puipuiga Module

Sa faia e Linus Torvalds ni nai faʻamatalaga i atinaʻe fou a le NSA ina ia mafai ona aofia ai i le kernel autu. LinuxNa ia faʻamatalaina se siosiomaga masani, faʻatasi ai ma se seti o interceptors mo le puleaina o gaioiga o mea faitino ma se seti o fanua puipuia i totonu o fausaga faʻamaumauga kernel mo le teuina o uiga talafeagai. Ona mafai lea ona faʻaaogaina lenei siosiomaga e loadable kernel modules e faʻatino ai soʻo se faʻataʻitaʻiga saogalemu e manaʻomia. Na matua tuʻufaʻatasia atoatoa le LSM i totonu o le kernel. Linux v2.6 i le 2003.

Ole auivi a le LSM e aofia ai vaega puipui i faʻamaumauga faʻamaumauga ma valaʻau i galuega faʻalavelave i vaega taua i le kernel code e faʻaogaina ai ma faʻatino le faʻaogaina o avanoa. E fa'aopoopoina fo'i galuega fa'atino mo le resitalaina o fa'aoga saogalemu. O le /sys/kernel/security/lsm interface o lo'o i ai se lisi o fa'aoga fa'agaoioi i luga ole faiga. LSM matau o lo'o teuina i lisi e vala'au i le fa'atonuga o lo'o fa'amaoti mai i CONFIG_LSM. O fa'amatalaga au'ili'ili i matau o lo'o aofia i le faila faila e aofia ai/linux/lsm_hooks.h.

Na fa'atagaina e le vaega o le LSM le tu'ufa'atasia atoatoa o le SELinux le lomiga lava lea e tasi o le kernel mautu Linux v2.6. SE vave lavaLinux ua avea ma tulaga faatonuina moni mo siosiomaga saogalemu Linux ma avea ma vaega o tufatufaga sili ona lauiloa: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

Fa'amatalaga o le SELinux

  • Fa'asinomaga — Tagata fa'aoga SELinux e lē tutusa ma le Unix masani/Linux ID o le tagata faʻaoga, e mafai ona latou nonofo faʻatasi i luga o le polokalama e tasi, ae e matua eseese lava i le uiga. O teugatupe masani taʻitasi Linux atonu e tutusa ma le tasi pe sili atu i le SELinuxFa'asinomaga SELinux o se vaega taua o le tulaga lautele o le saogalemu e fuafua ai po o fea 'upega tafaʻilagi e mafai ona ulufale i ai ma po o fea e le mafai.
  • Domains — I le itu i saute sasa'eLinux O le domain o le fa'atinoga lea o se mataupu, e pei o se faiga. O le domain e fuafua sa'o ai le avanoa e maua e se faiga. O le domain o se lisi lea o mea e mafai ona fai e faiga po'o gaioiga e mafai ona faia e se faiga i ituaiga eseese. O nisi o fa'ata'ita'iga o domain o le sysadm_t mo le pulega o le faiga, ma le user_t, o se domain masani ma e le'i fa'apitoa mo le tagata fa'aoga. O le faiga init e tamo'e i le domain init_t, ma o le faiga ua faaigoaina e tamo'e i le domain named_t.
  • Matafaioi — O le ā e avea ma sui i le va o 'upega tafaʻilagi ma tagata faʻaoga SELinuxO matafaioi e fuafua po o fea vaega e mafai ona auai i ai se tagata faʻaoga ma po o a ituaiga o mea e mafai ona latou ulufale i ai. O lenei faiga e pulea ai le ulufale atu e puipuia ai le taufaamataʻu o osofaʻiga faʻateleina o avanoa. O matafaioi ua tuʻufaʻatasia i totonu o le faʻataʻitaʻiga saogalemu o le Pulea o Avanoa Faʻavae i le Galuega (RBAC) e faʻaaogaina i le SE.Linux.
  • Ituaiga - O se ituaiga Fa'amalosia lisi uiga o lo'o tu'uina atu i se mea ma fuafua po'o ai e mafai ona maua. E tutusa ma le fa'auigaina o le domain, se'i vagana o lena vaega e fa'atatau i se fa'agasologa, ma le ituaiga e fa'atatau i mea faitino e pei o directories, faila, sockets, etc.
  • Mataupu ma mea faitino - O fa'agasologa o mata'upu ma fa'agasolo i se tulaga fa'apitoa, po'o le puipuiga malu. Punaoa faʻaogaina: faila, directories, sockets, etc., o mea ia e tuʻuina atu i se ituaiga, i se isi faaupuga, se tulaga faalilolilo.
  • Faiga Fa'avae a le SELinux - Ina ia puipuia le faiga SELinux e fa'aaogaina le tele o faiga fa'avae. Faiga Fa'avae SELinux Fa'amatalaina le avanoa a le tagata fa'aoga i matafaioi, matafaioi i vaega, ma vaega i ituaiga. Muamua, ua fa'atagaina se tagata fa'aoga i se matafaioi, ona fa'atagaina lea o se matafaioi e ulufale i vaega. Ma le mea mulimuli, e na'o nisi ituaiga o mea faitino e mafai ona maua e se vaega.

LSM ma le fausaga SELinux

E ui i le igoa, ae o LSM e le o ni modules e mafai ona utaina. LinuxAe ui i lea, e pei lava o le SELinux, e tu'ufa'atasia sa'o lava i totonu o le kernel. So'o se suiga i le code puna o le LSM e mana'omia ai se fa'aputuga kernel fou. E tatau ona fa'agaoioia le filifiliga talafeagai i fa'atulagaga o le kernel, a leai o le a le fa'agaoioia le code LSM pe a uma ona amata. Peita'i, e tusa lava pe i lenei tulaga, e mafai ona fa'agaoioia e ala i se filifiliga OS bootloader.

Faiga saogalemu Linux
LSM siaki faaputuga

O lo'o fa'apipi'iina le LSM i fa'amau i galuega autu o fatu e mafai ona talafeagai mo siaki. O se tasi o vaega autu o LSM o loʻo faʻaputuina. O le mea lea, o loʻo faʻaauau pea siaki masani, ma o vaega taʻitasi o le LSM e naʻo le faʻaopoopoina o faʻatonuga ma faʻatonuga. O lona uiga e le mafai ona toe soloia le tapu. O loʻo faʻaalia i le ata; afai o le taunuuga o siaki masani a le DAC e le manuia, o le a le oʻo lava le mataupu i matau LSM.

SELinux Na faʻaaogaina le fausaga saogalemu o le Flask o le faiga faʻaoga suʻesuʻega a Fluke, aemaise lava le mataupu faavae o le faʻamanuiaga aupito itiiti. O le uiga autū o lenei manatu, e pei ona taʻu mai e le igoa, o le tuʻuina atu lea i se tagata faʻaoga poʻo se faʻagasologa naʻo aia tatau e manaʻomia e faʻatino ai le gaioiga faʻamoemoeina. O lenei mataupu faavae e faʻatinoina e ala i le faʻaaogaina o le ulufale faʻamalosia, ma faʻapea ona pulea ai aia tatau i le SE.Linux e faʻavae i luga o le faʻataʻitaʻiga o le ituaiga ole domain =>.

Fa'afetai i le fa'amalosia o le taina o le avanoa SELinux e sili atu ona taua le gafatia o le puleaina o avanoa nai lo le faʻataʻitaʻiga masani a le DAC e faʻaaogaina i le Unix OS/LinuxMo se faʻataʻitaʻiga, e mafai ona e faʻatapulaʻaina le numera o le uafu fesoʻotaʻiga o le a faʻalogo i ai le 'auʻaunaga FTP, e faʻataga ai le tusitusi ma le suia o faila i totonu o se faila faapitoa, ae aua le tapeina.

Vaega autū o le SELinux e fa'apea:

  • Polokalama Fa'amalosia Faiga - Le auala autu mo le faʻatulagaina o le faʻatonutonuina o avanoa.
  • Fa'amaumauga o faiga fa'avae mo le saogalemu.
  • Feso'ota'iga ma le fa'alavelave fa'alavelave a le LSM.
  • Selinuxfs — O se pseudo-FS, e tutusa ma le /proc ma ua fa'apipi'iina i totonu o le /sys/fs/selinux. Ua fa'atumuina fa'afuase'i e le kernel. Linux i le taimi o le fa'atinoina ma o lo'o i ai faila o lo'o i ai fa'amatalaga e uiga i le tulaga o le SELinux.
  • Avanoa Vector Cache - O se auala fesoasoani mo le faateleina o le gaosiga.

Faiga saogalemu Linux
Fuafuaga Fa'agaioiga a le SELinux

E galue uma e pei o lenei.

  1. O se mataupu patino, i faaupuga SELinux, faatino le gaioiga faatagaina i le mea faitino pe a uma ona faamaonia le DAC, e pei ona faaalia i le ata o loo i luga. O lenei talosaga e faatino ai le faagaoioiga e tuuina atu i le LSM event interceptor.
  2. Mai iina, o le talosaga, faatasi ai ma le anotusi saogalemu o le mataupu ma le mea faitino, e tuuina atu i le SE module.Linux Abtraction ma Hook Logic, e nafa ma fegalegaleaiga ma le LSM.
  3. O le pulega e faia faaiuga e uiga i le avanoa o se mataupu i se mea faitino o le Policy Enforcement Server, ma e mauaina faamatalaga mai le SE.Linux AnHL.
  4. Ina ia faia fa'ai'uga e uiga i le avanoa po'o le fa'afitia, e liliu atu le Ofisa o le Fa'amalosia o Faiga Fa'avae i le Access Vector Cache (AVC) so'oga fa'aoga mo tulafono sili ona fa'aoga.
  5. Afai e le maua se fofo mo le tulafono tutusa i totonu o le cache, ona tuʻuina atu lea o le talosaga ile faʻamaumauga o faiga faʻavae puipuiga.
  6. O le su'esu'ega mai le fa'amaumauga ma le AVC ua toe fa'afo'i atu i le Polokalama Fa'amalosia Faiga.
  7. Afai o le faiga faavae ua maua e fetaui ma le faʻatonuga o loʻo talosagaina, ona faʻatagaina lea o le taotoga. A leai, e fa'asa le taotoga.

Puleaina o fa'atulagaga SELinux

SELinux e galue i se tasi o auala e tolu:

  • Fa'amalosia - Fa'atumauina faiga fa'avae tau puipuiga.
  • Fa'ataga - Fa'atagaina le soliga o tapula'a; o se fa'amatalaga tutusa e faia i totonu o le api talaaga.
  • Fa'aletonu—E le'o aoga faiga fa'avae.

Va'ai po'o le a le faiga o lo'o iai le SELinux E mafai ona e faia i le poloaiga lenei.

[admin@server ~]$ getenforce
Permissive

Suia le faiga a'o le'i toe fa'afou, mo se fa'ata'ita'iga, fa'atulaga i le fa'amalosia, po'o le 1. O le fa'ataga fa'atagaina e fetaui ma le numera numera 0.

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

E mafai foi ona e suia le faiga e ala i le teuteuina o le faila:

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

O le eseesega ma le setenfoce o le taimi e amata ai le operating system, o le SE mode e amata ai.Linux o le a setiina e tusa ai ma le taua o le parakalafa o le faila fa'atulagaina o le SELINUX. E le gata i lea, o suiga i le fa'amalosia o le fa'atulagaga <=> disabled e fa'ato'ā aoga pe a uma ona fa'asa'oina le faila /etc/selinux/config ma pe a uma ona toe amata.

Va'ai i se lipoti puupuu tulaga:

[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

Ina ia matamata i uiga SELinux O nisi o mea faigaluega masani e faʻaaogaina le parakalafa -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

Pe a faatusatusa i le galuega masani o le ls -l, e tele isi fanua faaopoopo i le faatulagaga lenei:

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

O le fanua mulimuli o loʻo faʻaalia ai se mea e pei o se faʻavasegaga saogalemu ma e aofia ai se tuufaatasiga o elemene e lua:

  • s0 - taua, fa'apena fo'i ua tusia ose va'aiga maualalo-maualuga
  • c0, c1… c1023 - vaega.

Suia le faatulagaga o avanoa

Fa'aaoga le semodule e uta ai vaega SELinux, fa'aopoopo ma aveese.

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

Au muamua vaiasoge login feso'ota'i le tagata fa'aoga SELinux faatasi ai ma le tagata faʻaoga o le operating system, o le lona lua e faʻaalia ai le lisi. Mulimuli ane, o le poloaiga mulimuli ma le -r switch e aveese ai le SE user mapping.Linux i tala o le OS. O le fa'atulagaga o tau o le MLS/MCS Range o lo'o fa'amatalaina i le vaega ua mavae.

[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

au semanage tagata fa'aoga fa'aaogaina e pulea ai fa'afanua i le va o tagata fa'aoga ma matafaioi SELinux.

[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

Fa'atonuga tapula'a:

  • -se fa'aopoopo fa'asologa o fa'afanua fa'atulagaina;
  • -l lisi o tagata fa'aoga tutusa ma matafaioi;
  • -d tape le fa'ailoga o le fa'afanua o tagata fa'aoga;
  • -R lisi o matafaioi faʻapipiʻi i le tagata faʻaoga;

Faila, Taulaga ma Fa'atauga Boolean

Vaega SE taitasiLinux E tu'uina atu ai se seti o tulafono o le fa'ailogaina o faila, ae e mafai fo'i ona e fa'aopoopoina au lava tulafono pe a mana'omia. Mo se fa'ata'ita'iga, matou te manana'o e tu'uina atu i le 'au'aunaga uepi aia tatau e ulufale ai i le faila /srv/www.

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

O le poloaiga muamua e resitalaina tulafono fou o le makaina, ma le lona lua toe setiina, pe setiina, ituaiga faila e tusa ai ma tulafono o loʻo iai nei.

E fa'apea fo'i, ua fa'ailoga ports TCP/UDP i se auala e na'o au'aunaga talafeagai e mafai ona fa'alogo iai. Mo se faʻataʻitaʻiga, ina ia mafai e le 'upega tafaʻilagi ona faʻalogo i luga o le taulaga 8080, e tatau ona e faʻatautaia le poloaiga.

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

O se numera tele o vaega SELinux o lo'o i ai ni parakalafa e mafai ona fa'aogaina ai tau Boolean. O le lisi atoa o ia parakalafa e mafai ona va'aia e fa'aaoga ai le getsebool -a. E mafai ona suia tau Boolean e fa'aaoga ai le 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

A'oa'oga, maua avanoa ile Pgadmin-web interface

Sei o tatou vaʻai i se faʻataʻitaʻiga aoga: matou faʻapipiʻi le pgadmin7.6-web i luga o le RHEL 4 e faʻatautaia le PostgreSQL database. Sa matou savavali teisi sailiga faʻatasi ai ma faʻatulagaga o pg_hba.conf, postgresql.conf ma config_local.py, seti faʻatagaga faila, faʻapipiʻi le Python modules o loʻo misi mai le pip. Ua saunia mea uma, matou te tatalaina ma maua 500 Fa'aumau Tutotonu sese.

Faiga saogalemu Linux

Matou te amata i masalosaloga masani, siaki /var/log/httpd/error_log. O lo'o iai ni fa'amatalaga mananaia iina.

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

O iinei e tele ai pulega Linux O le a iai se faaosoosoga malosi e fa'agaoioi le setencorce 0, ma o le i'uga lea. E moni lava, o le mea lena na ou faia i le taimi muamua. E mautinoa lava o se fofo, ae e le o le fofo sili lea.

E ui lava i le telē o mamanu SELinux E faigofie ona fa'aoga. Na'o le fa'apipi'iina o le afifi setroubleshoot ma matamata i le system log.

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

Faamolemole ia matau e tatau ona toe amata le auaunaga su'etusi i lenei auala, ae le o le faaaogaina o le systemctl, e ui i le i ai o le systemd i le OS. I le log system o le a faailoa atu e le gata o le mea moni o le poloka, ae faapea foi le mafuaaga ma auala e foia ai le tapu.

Faiga saogalemu Linux

Matou te faia nei poloaiga:

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

Matou te siakiina le avanoa i le pgadmin4-web page, e aoga mea uma.

Faiga saogalemu Linux

Faiga saogalemu Linux

puna: www.habr.com

Faʻatau talimalo faʻatuatuaina mo nofoaga ma DDoS puipuiga, VPS VDS servers 🔥 Fa'atau le 'upega tafa'ilagi talimalo fa'atuatuaina ma le puipuiga DDoS, 'au'aunaga VPS VDS | ProHoster