Iji SELinux ma ọ bụ AppArmor tinye njikwa nnweta amanyere na Linux


Iji merie mmachi nke yana ịbawanye usoro nchekwa nyere site na ọkọlọtọ ugo/rwx ikike na ndepụta njikwa ohere, United States National Security Agency (NSA) chepụtara usoro mgbanwe amanyere ikike ịnweta ikike (MAC). dị ka SELinux (mkpụmkpụ maka Nchekwa Nchekwa Linux) iji gbochie n'etiti ihe ndị ọzọ, ike nke usoro iji nweta ma ọ bụ rụọ ọrụ ndị ọzọ na usoro ihe (dị ka faịlụ, akwụkwọ ndekọ aha, netwọk ọdụ ụgbọ mmiri, wdg) na kacha nta ikike kwere omume, mgbe ọ ka. na-enye ohere maka mgbanwe n'ikpeazụ na ihe nlereanya a.

Mac ọzọ a ma ama na nke a na-ejikarị eme ihe bụ AppArmor, nke na mgbakwunye na njirimara SELinux nyere, gụnyere usoro mmụta nke na-enye ohere ka usoro ahụ mụta ka otu ngwa si eme, na ịtọ oke site na ịhazi profaịlụ maka ojiji ngwa dị mma. .

Na CentOS 7, etinyere SELinux n'ime kernel n'onwe ya wee nye ya ohere itinye ọnọdụ na ndabara (karịa na nke a na ngalaba na-esote), na-emegide openSUSE na Ubuntu nke na-eji AppArmor.

N'isiokwu a, anyị ga-akọwa ihe dị mkpa nke SELinux na AppArmor na otu esi eji otu n'ime ngwaọrụ ndị a maka uru gị dabere na nkesa ị họọrọ.

Okwu Mmalite na SELinux na Otu esi eji ya na CentOS 7

Security Enhanced Linux nwere ike ịrụ ọrụ n'ụzọ abụọ dị iche iche:

  1. Mmenye: SELinux na-agọnarị ịnweta dabere na iwu amụma SELinux, usoro ntuziaka na-ejikwa injin nchekwa.
  2. Ekwere: SELinux anaghị anabata ohere, mana abanyela ngọnarị maka omume ndị a gaara ajụ ma ọ bụrụ na ọ na-agba ọsọ na ọnọdụ mmanye.

SELinux nwekwara ike nwee nkwarụ. Agbanyeghị na ọ bụghị ọnọdụ ọrụ n'onwe ya, ọ ka bụ nhọrọ. Otú ọ dị, ịmụta otú e si eji ngwá ọrụ a dị mma karịa nanị ileghara ya anya. Buru ya n'uche!

Iji gosi ụdị SELinux dị ugbu a, jiri getenforce. Ọ bụrụ na ịchọrọ ịgbanwee ọnọdụ ọrụ, jiri setenforce 0 (iji tọọ ya ka ọ bụrụ Permissive) ma ọ bụ setenforce 1 (Enforcing).

Ebe ọ bụ na mgbanwe a agaghị adị ndụ na nrụgharị, ị ga-achọ idezi faịlụ /etc/selinux/config wee tọọ mgbanwe SELINUX ka ọ bụrụ mmanye, kwere, ma ọ bụ >nwere nkwarụ iji nweta nnọgidesi ike n'ofe nrụpụta:

N'akụkụ ndetu, ọ bụrụ na getenforce laghachiri Nkwarụ, ị ga-eji ụdị ọrụ achọrọ dezie /etc/selinux/config wee malitegharịa. Ma ọ bụghị ya, ị gaghị enwe ike iji setenforce hazie (ma ọ bụ gbanwee) ọnọdụ ọrụ.

Otu n'ime ihe eji eme setenforce bụ ịgbagharị n'etiti ụdịdị SELinux (site na mmanye ruo ikike ma ọ bụ n'ụzọ ọzọ) iji dozie ngwa na-emejọ ma ọ bụ anaghị arụ ọrụ dịka a tụrụ anya ya. Ọ bụrụ na ọ na-arụ ọrụ mgbe ịtọsịrị SELinux ka ọ bụrụ ọnọdụ ikike, ị nwere ike inwe obi ike na ị na-elele okwu ikike SELinux.

Ikpe abụọ kpochapụwo ebe anyị ga-enwe ike ịmekọrịta SELinux bụ:

  1. Ịgbanwe ọdụ ụgbọ mmiri ndabara ebe daemon na-ege ntị.
  2. Ịtọ ntọala DocumentRoot maka onye nnabata mebere na mpụga /var/www/html.

Ka anyị were ihe atụ ndị a leba anya n'okwu abụọ a.

Otu n'ime ihe mbụ ọtụtụ ndị na-ahụ maka sistemụ na-eme iji chekwaa ihe nkesa ha bụ ịgbanwe ọdụ ụgbọ mmiri ebe SSH daemon na-ege ntị, na-emekarị ka ọ daa ndị na-enyocha ọdụ ụgbọ mmiri na ndị na-awakpo mpụga. Iji mee nke a, anyị na-eji ntuziaka Port na /etc/ssh/sshd_config sochiri nọmba ọdụ ụgbọ mmiri ọhụrụ dị ka ndị a (anyị ga-eji ọdụ ụgbọ mmiri 9999 na nke a):

Port 9999

Mgbe anyị nwara ịmalitegharị ọrụ ahụ wee lelee ọkwa ya, anyị ga-ahụ na ọ maliteghị:

# systemctl restart sshd
# systemctl status sshd

Ọ bụrụ na anyị leba anya na /var/log/audit/audit.log, anyị ga-ahụ na sshd egbochiri ịmalite na ọdụ ụgbọ mmiri 9999 site na SELinux n'ihi na nke ahụ bụ ọdụ ụgbọ mmiri echekwara maka ọrụ njikwa JBoss (ozi ndekọ SELinux gụnyere okwu ahụ AVC ka enwere ike mata ha ngwa ngwa site na ozi ndị ọzọ):

# cat /var/log/audit/audit.log | grep AVC | tail -1

N'oge a ọtụtụ ndị nwere ike gbanyụọ SELinux mana anyị agaghị. Anyị ga-ahụ na e nwere ụzọ maka SELinux, na sshd na-ege ntị n'ọdụ ụgbọ mmiri dị iche, na-ebikọ ọnụ. Gbaa mbọ hụ na etinyere ngwungwu policycoreutils-python wee mee:

# yum install policycoreutils-python

Ka ilele ndepụta ọdụ ụgbọ mmiri ebe SELinux na-enye ohere ka sshd gee ntị. Na foto na-esonụ, anyị nwekwara ike ịhụ na ọdụ ụgbọ mmiri 9999 ka edobere maka ọrụ ọzọ ma yabụ na anyị enweghị ike iji ya rụọ ọrụ ọzọ maka oge a:

# semanage port -l | grep ssh

N'ezie anyị nwere ike ịhọrọ ọdụ ụgbọ mmiri ọzọ maka SSH, mana ọ bụrụ na anyị ji n'aka na anyị agaghị eji igwe a kapịrị ọnụ maka ọrụ metụtara JBoss, anyị nwere ike gbanwee iwu SELinux dị ugbu a wee nyefee ọdụ ụgbọ mmiri ahụ na SSH kama:

# semanage port -m -t ssh_port_t -p tcp 9999

Mgbe nke ahụ gasịrị, anyị nwere ike iji iwu semanage nke mbụ iji lelee ma e kenyere ọdụ ụgbọ mmiri ahụ nke ọma, ma ọ bụ nhọrọ -lC (obere maka omenala ndepụta):

# semanage port -lC
# semanage port -l | grep ssh

Anyị nwere ike ịmalitegharịa SSH ugbu a wee jikọọ na ọrụ ahụ site na iji ọdụ ụgbọ mmiri 9999. Rịba ama na mgbanwe a GA-adịgide ndụ n'ịrụgharị.

Ọ bụrụ na ịchọrọ ịmepụta onye ọbịa Apache mebere site na iji ndekọ ọzọ karịa/var/www/html dị ka DocumentRoot (sị, dịka ọmụmaatụ, /websrv/sites/gabriel/public_html):

DocumentRoot “/websrv/sites/gabriel/public_html”

Apache ga-ajụ inye ọdịnaya n'ihi na index.html ejirila ụdị default_t SELinux, nke Apache enweghị ike ịnweta:

# wget http://localhost/index.html
# ls -lZ /websrv/sites/gabriel/public_html/index.html

Dịka ọmụmaatụ nke gara aga, ịnwere ike iji iwu na-esonụ iji chọpụta na nke a bụ n'ezie okwu metụtara SELinux:

# cat /var/log/audit/audit.log | grep AVC | tail -1

Ka ịgbanwee akara nke /websrv/sites/gabriel/public_html recursively ka ọ bụrụ httpd_sys_content_t, mee:

# semanage fcontext -a -t httpd_sys_content_t "/websrv/sites/gabriel/public_html(/.*)?"

Iwu a dị n'elu ga-enye Apache ohere ịgụ naanị na ndekọ ahụ na ọdịnaya ya.

N'ikpeazụ, iji tinye amụma (ma mee ka akara ngosi ahụ dị irè ozugbo), mee:

# restorecon -R -v /websrv/sites/gabriel/public_html

Ugbu a ị ga-enwe ike ịnweta ndekọ:

# wget http://localhost/index.html

Maka ozi ndị ọzọ na SELinux, rụtụ aka na Fedora 22 SELinux na ntuziaka onye nchịkwa.