Ṣiṣe Iṣakoso Iṣakoso Wiwọle Dandan pẹlu SELinux tabi AppArmor ni Lainos


Lati bori awọn idiwọn ti ati lati mu awọn ilana aabo ti a pese nipasẹ boṣewa awọn igbanilaaye ugo/rwx ati awọn atokọ iṣakoso iwọle, Ile-iṣẹ Aabo Orilẹ-ede Amẹrika (NSA) ṣe agbekalẹ ọna irọrun Iṣakoso Iṣakoso Wiwọle (MAC) ti o mọ bi SELinux (kukuru fun Aabo Imudara ti Aabo) lati le ni ihamọ laarin awọn ohun miiran, agbara awọn ilana lati wọle si tabi ṣe awọn iṣẹ miiran lori awọn nkan eto (bii awọn faili, awọn ilana, awọn ibudo nẹtiwọọki, ati bẹbẹ lọ) si igbanilaaye ti o kere ju, lakoko gbigba fun awọn iyipada nigbamii si awoṣe yii.

MAC miiran ti o gbajumọ ati lilo ni ibigbogbo ni AppArmor, eyiti o jẹ afikun si awọn ẹya ti a pese nipasẹ SELinux, pẹlu ipo ẹkọ ti o fun laaye eto lati\"kọ ẹkọ" bii ohun elo kan ṣe huwa, ati lati ṣeto awọn aala nipa tito leto awọn profaili fun lilo ohun elo to ni aabo .

Ni CentOS 7, SELinux ṣafikun sinu ekuro naa funrararẹ ati muu ṣiṣẹ ni Ipo Ifaagun nipasẹ aiyipada (diẹ sii lori eyi ni abala atẹle), ni idakeji si openSUSE ati Ubuntu eyiti o lo AppArmor.

Ninu nkan yii a yoo ṣe alaye awọn pataki ti SELinux ati AppArmor ati bii o ṣe le lo ọkan ninu awọn irinṣẹ wọnyi fun anfani rẹ da lori pinpin ti o yan.

Ifihan si SELinux ati Bii o ṣe le Lo lori CentOS 7

Aabo ti mu dara si Linux le ṣiṣẹ ni awọn ọna oriṣiriṣi meji:

  1. Fifẹ: SELinux kọ wiwọle si da lori awọn ofin imulo SELinux, ipilẹ awọn itọsọna kan ti o ṣakoso ẹrọ aabo.
  2. Gbigbanilaaye: SELinux ko sẹ iwọle, ṣugbọn awọn kiko ti wa ni ibuwolu wọle fun awọn iṣe ti yoo ti sẹ ti o ba ṣiṣẹ ni ipo imuṣẹ.

SELinux tun le jẹ alaabo. Botilẹjẹpe kii ṣe ipo iṣiṣẹ funrararẹ, o tun jẹ aṣayan kan. Sibẹsibẹ, kọ ẹkọ bi o ṣe le lo ọpa yii dara julọ ju kikoju lọ. Jeki o ni lokan!

Lati ṣe afihan ipo lọwọlọwọ ti SELinux, lo getenforce . Ti o ba fẹ yi ipo iṣẹ pada, lo setenforce 0 (lati ṣeto si Gbigbanilaaye) tabi setenforce 1 (Fifẹ).

Niwọn igba ti iyipada yii ko ni ye atunbere kan, iwọ yoo nilo lati satunkọ faili/etc/selinux/config ati ṣeto oluyipada SELINUX si boya imuduro , iyọọda , tabi alaabo lati le ṣe aṣeyọri itẹramọṣẹ kọja awọn atunbere:

Lori akọsilẹ ẹgbẹ kan, ti getenforce pada Alaabo, iwọ yoo ni lati satunkọ/ati be be lo/selinux/atunto pẹlu ipo iṣẹ ti o fẹ ati atunbere. Bibẹẹkọ, iwọ kii yoo ni anfani lati ṣeto (tabi toggle) ipo iṣiṣẹ pẹlu setenforce .

Ọkan ninu awọn lilo aṣoju ti setenforce ni ti yiyi pada laarin awọn ipo SELinux (lati mu lagabara si iyọọda tabi ọna miiran ni ayika) lati ṣe iṣoro ohun elo kan ti n ṣe aṣiṣe tabi ko ṣiṣẹ bi o ti ṣe yẹ. Ti o ba ṣiṣẹ lẹhin ti o ṣeto SELinux si Ipo Gbigbanilaaye, o le ni igboya pe o n wo oro awọn igbanilaaye SELinux.

Awọn ọran Ayebaye meji nibiti a le ṣe pẹlu SELinux ni:

  1. Yiyipada ibudo aiyipada nibiti daemon tẹtisi.
  2. Ṣiṣeto itọsọna DocumentRoot fun alejo gbigba foju ita/var/www/html.

Jẹ ki a wo awọn ọran meji wọnyi nipa lilo awọn apẹẹrẹ atẹle.

Ọkan ninu ohun akọkọ ti ọpọlọpọ awọn alakoso eto ṣe lati le ni aabo awọn olupin wọn ni yi ibudo pada nibiti daemon SSH n tẹtisi, julọ lati ṣe irẹwẹsi awọn ọlọjẹ ibudo ati awọn ikọlu ita. Lati ṣe eyi, a lo itọsọna Port ni/etc/ssh/sshd_config atẹle pẹlu nọmba ibudo tuntun bi atẹle (a yoo lo ibudo 9999 ninu ọran yii):

Port 9999

Lẹhin igbiyanju lati tun bẹrẹ iṣẹ naa ati ṣayẹwo ipo rẹ a yoo rii pe o kuna lati bẹrẹ:

# systemctl restart sshd
# systemctl status sshd

Ti a ba wo /var/log/audit/audit.log, a yoo rii pe a daabobo sshd lati bẹrẹ lori ibudo 9999 nipasẹ SELinux nitori iyẹn ni ibudo ti o wa ni ipamọ fun iṣẹ Iṣakoso JBoss (Awọn ifiranṣẹ log SELinux pẹlu ọrọ “ AVC ”ki wọn le wa ni idanimọ rọọrun lati awọn ifiranṣẹ miiran):

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

Ni aaye yii ọpọlọpọ eniyan yoo jasi mu SELinux ṣiṣẹ ṣugbọn a kii yoo ṣe. A yoo rii pe ọna kan wa fun SELinux, ati sshd tẹtisi lori ibudo miiran, lati gbe ni iṣọkan papọ. Rii daju pe o ti fi sori ẹrọ ni package package

# yum install policycoreutils-python

Lati wo atokọ ti awọn ibudo nibiti SELinux gba sshd laaye lati tẹtisi. Ni aworan atẹle a tun le rii pe ibudo 9999 ti wa ni ipamọ fun iṣẹ miiran ati nitorinaa a ko le lo o lati ṣiṣẹ iṣẹ miiran fun akoko yii:

# semanage port -l | grep ssh

Dajudaju a le yan ibudo miiran fun SSH, ṣugbọn ti a ba ni idaniloju pe a ko nilo lati lo ẹrọ pataki yii fun eyikeyi awọn iṣẹ ti o ni ibatan JBoss, lẹhinna a le ṣe atunṣe ofin SELinux ti o wa tẹlẹ ki o fi ibudo yẹn si SSH dipo:

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

Lẹhin eyini, a le lo aṣẹ semanage akọkọ lati ṣayẹwo boya a ti yan ibudo naa ni deede, tabi awọn aṣayan -lC (kukuru fun aṣa atokọ):

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

A le tun bẹrẹ SSH bayi ki o sopọ si iṣẹ nipa lilo ibudo 9999. Ṣe akiyesi pe iyipada yii YOO ye atunbere kan.

Ti o ba nilo lati ṣeto olupin foju kan Apache nipa lilo itọsọna miiran ju/var/www/html bi DocumentRoot (sọ, fun apẹẹrẹ,/websrv/sites/gabriel/public_html):

DocumentRoot “/websrv/sites/gabriel/public_html”

Apache yoo kọ lati sin akoonu naa nitori a ti fi aami sii index.html pẹlu iru aiyipada_t SELinux, eyiti Apache ko le wọle si:

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

Bii pẹlu apẹẹrẹ ti tẹlẹ, o le lo aṣẹ atẹle lati rii daju pe eyi jẹ otitọ ọrọ ti o ni ibatan SELinux:

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

Lati yi aami ti/websrv/awọn aaye/gabriel/public_html pada si httpd_sys_content_t , ṣe:

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

Aṣẹ ti o wa loke yoo fun Apache ka-nikan wiwọle si itọsọna yẹn ati awọn akoonu rẹ.

Lakotan, lati lo eto imulo (ati jẹ ki aami naa yipada doko lẹsẹkẹsẹ), ṣe:

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

Bayi o yẹ ki o ni anfani lati wọle si itọsọna naa:

# wget http://localhost/index.html

Fun alaye diẹ sii lori SELinux, tọka si itọsọna Fedora 22 SELinux ati Itọsọna Alabojuto.