selinux
ÐÐЯ
ÐÐÐСÐÐÐÐ
ÐÐ ÐСТÐÐÐÐÐÐÐ ÐÐТÐÐ ÐÐЯ ФÐÐÐÐÐ
ФÐÐÐЫ
СÐÐТРÐТРТÐÐÐÐ
ÐÐТÐРЫ
ÐÐЯ
SELinux − Linux Ñ ÑлÑÑÑенной безопаÑноÑÑÑÑ Ð¾Ñ NSA (SELinux)
ÐÐÐСÐÐÐÐ
Linux Ñ ÑлÑÑÑенной безопаÑноÑÑÑÑ Ð¾Ñ NSA – ÑÑо ÑеализаÑÐ¸Ñ Ð³Ð¸Ð±ÐºÐ¾Ð¹ аÑÑиÑекÑÑÑÑ Ð¼Ð°Ð½Ð´Ð°Ñного ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпом в опеÑаÑионной ÑиÑÑеме Linux. ÐÑÑиÑекÑÑÑа SELinux пÑедоÑÑавлÑÐµÑ Ð¾Ð±ÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑазлиÑнÑÑ Ð²Ð¸Ð´Ð¾Ð² полиÑик мандаÑного ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпом, вклÑÑÐ°Ñ Ð¾ÑнованнÑе на конÑепÑиÑÑ Type Enforcement® (пÑинÑдиÑелÑное пÑиÑвоение Ñипов), Role-Based Access Control (ÑпÑавление доÑÑÑпом на оÑнове Ñолей) и Multi-Level Security (многоÑÑÐ¾Ð²Ð½ÐµÐ²Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ). ÐополниÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¸ ÑеÑниÑеÑÐºÐ°Ñ Ð´Ð¾ÐºÑменÑаÑÐ¸Ñ Ð¿Ð¾ SELinux доÑÑÑпна по адÑеÑÑ https://github.com/SELinuxProject.
Файл конÑигÑÑаÑии /etc/selinux/config позволÑÐµÑ ÑпÑавлÑÑÑ Ð²ÐºÐ»ÑÑением и оÑклÑÑением SELinux и, еÑли SELinux вклÑÑÑн, ÑÑÑанавливаÑÑ Ñежим его ÑабоÑÑ – ÑазÑеÑиÑелÑнÑй или пÑинÑдиÑелÑнÑй. ÐеÑеменной SELINUX можно задаÑÑ Ð·Ð½Ð°Ñение оÑклÑÑÑнной, ÑазÑеÑиÑелÑной или пÑинÑдиÑелÑной, ÑÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ Ð¾Ð´Ð¸Ð½ из ÑÑÐ¸Ñ Ð²Ð°ÑианÑов. ÐÑли вÑбÑаÑÑ Ð¾ÑклÑÑение Ñежима, код ÑдÑа и пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ SELinux бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¾ÑклÑÑÑн, ÑиÑÑема бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð±ÐµÐ· какой-либо заÑиÑÑ SELinux. ÐÑи ÑÑÑановке ÑазÑеÑиÑелÑного Ñежима код SELinux вклÑÑÑн, но не вÑполнÑÐµÑ Ð¾ÑÐºÐ°Ð·Ñ Ð² доÑÑÑпе, а ÑолÑко жÑÑналиÑÑÐµÑ Ñе дейÑÑвиÑ, коÑоÑÑе бÑли Ð±Ñ Ð·Ð°Ð¿ÑеÑÐµÐ½Ñ Ð¿Ñи пÑинÑдиÑелÑном Ñежиме. ÐÑи ÑÑÑановке пÑинÑдиÑелÑного Ñежима код SELinux вклÑÑÑн, вÑполнÑÐµÑ Ð¾ÑÐºÐ°Ð·Ñ Ð² доÑÑÑпе и жÑÑналиÑÑÐµÑ ÑооÑвеÑÑÑвÑÑÑие попÑÑки доÑÑÑпа. ÐÐ°Ð±Ð¾Ñ Ð¾Ñказов в доÑÑÑпе в ÑазÑеÑиÑелÑном Ñежиме Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑлиÑаÑÑÑÑ Ð¾Ñ ÑÑого набоÑа в пÑинÑдиÑелÑном Ñежиме как по пÑиÑине Ñого, ÑÑо пÑинÑдиÑелÑнÑй Ñежим пÑедоÑвÑаÑÐ°ÐµÑ Ð´Ð°Ð»ÑнейÑее вÑполнение опеÑаÑии поÑле пеÑвого оÑказа, Ñак и из-за Ñого, ÑÑо поÑле полÑÑÐµÐ½Ð¸Ñ Ð¾Ñказа в доÑÑÑпе ÑаÑÑÑ ÐºÐ¾Ð´Ð° пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²ÐµÑнÑÑÑÑ Ðº ÑабоÑе в менее пÑивилегиÑованном Ñежиме.
Файл конÑигÑÑаÑии /etc/selinux/config Ñакже ÑпÑавлÑÐµÑ Ñем, ÐºÐ°ÐºÐ°Ñ Ð¿Ð¾Ð»Ð¸Ñика акÑивна в ÑиÑÑеме. SELinux позволÑÐµÑ ÑÑÑановиÑÑ Ð² ÑиÑÑеме неÑколÑко полиÑик, но одновÑеменно можно иÑполÑзоваÑÑ ÑолÑко Ð¾Ð´Ð½Ñ Ð¸Ð· ниÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð½ÐµÑколÑко видов полиÑики SELinux, напÑимеÑ, ÑÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñика (targeted), полиÑика многоÑÑовневой безопаÑноÑÑи (mls). Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñика позволÑÐµÑ Ð±Ð¾Ð»ÑÑинÑÑÐ²Ñ Ð¿ÑоÑеÑÑов полÑзоваÑÐµÐ»Ñ Ð²ÑполнÑÑÑÑÑ Ð±ÐµÐ· огÑаниÑений, помеÑÐ°Ñ Ð² оÑделÑнÑе Ð´Ð¾Ð¼ÐµÐ½Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи, огÑаниÑеннÑе полиÑикой, ÑолÑко оÑделÑнÑе ÑлÑжбÑ. ÐапÑимеÑ, пÑоÑеÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑполнÑÑÑÑÑ Ð² никак не огÑаниÑенном домене, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑпÑавлÑÑÑÐ°Ñ Ð¿ÑогÑамма или ÑпÑавлÑÑÑÐ°Ñ Ð¿ÑогÑамма apache бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð² оÑделÑном ÑпеÑиалÑно наÑÑÑоенном домене. ÐÑли иÑполÑзÑеÑÑÑ Ð¿Ð¾Ð»Ð¸Ñика MLS (Multi-Level Security), вÑе пÑоÑеÑÑÑ Ð±ÑдÑÑ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ Ð¿Ð¾ деÑалÑно наÑÑÑоеннÑм доменам безопаÑноÑÑи и огÑаниÑÐµÐ½Ñ Ð¿Ð¾Ð»Ð¸Ñикой. MLS Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ñ Ðелла â ÐападÑлÑ, в коÑоÑой пÑоÑеÑÑÑ Ð¾Ð³ÑаниÑиваÑÑÑÑ Ð½Ðµ ÑолÑко по ÑипÑ, но и по ÑÑÐ¾Ð²Ð½Ñ Ð´Ð°Ð½Ð½ÑÑ.
ЧÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ, ÐºÐ°ÐºÐ°Ñ Ð¿Ð¾Ð»Ð¸Ñика бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ, ÑледÑÐµÑ ÑÑÑановиÑÑ Ð¿ÐµÑеменнÑÑ ÑÑÐµÐ´Ñ SELINUXTYPE в /etc/selinux/config. ЧÑÐ¾Ð±Ñ Ð¿ÑимениÑÑ Ðº ÑиÑÑеме изменение Ñипа полиÑики, необÑодимо пеÑезагÑÑзиÑÑ ÑиÑÑÐµÐ¼Ñ Ð¸, возможно, повÑоÑно пÑоÑÑавиÑÑ Ð¼ÐµÑки. РкаÑÐ°Ð»Ð¾Ð³Ð°Ñ /etc/selinux/{SELINUXTYPE}/ необÑодимо ÑÑÑановиÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñакой полиÑики ÑооÑвеÑÑÑвÑÑÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑиÑ.
ÐалÑнейÑÑÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ Ð¾ÑделÑной полиÑики SELinux можно вÑполниÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð½Ð°Ð±Ð¾Ñа наÑÑÑаиваемÑÑ Ð¿Ñи компилÑÑии паÑамеÑÑов и набоÑа логиÑеÑÐºÐ¸Ñ Ð¿ÐµÑеклÑÑаÑелей ÑÑÐµÐ´Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð¸Ñики. system−config−selinux позволÑÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑÑи логиÑеÑкие пеÑеклÑÑаÑели и наÑÑÑаиваемÑе паÑамеÑÑÑ.
Ðногие доменÑ, коÑоÑÑе заÑиÑÐµÐ½Ñ SELinux, Ñакже ÑодеÑÐ¶Ð°Ñ man-ÑÑÑаниÑÑ SELinux Ñ Ð¸Ð½ÑоÑмаÑией о наÑÑÑойке ÑооÑвеÑÑÑвÑÑÑей полиÑики.
ÐÐ ÐСТÐÐÐÐÐÐÐ ÐÐТÐÐ ÐÐЯ ФÐÐÐÐÐ
ÐÑем Ñайлам, каÑалогам, ÑÑÑÑойÑÑвам … назнаÑÐµÐ½Ñ ÐºÐ¾Ð½ÑекÑÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи/меÑки. ÐÑи конÑекÑÑÑ ÑÑанÑÑÑÑ Ð² ÑаÑÑиÑеннÑÑ Ð°ÑÑибÑÑÐ°Ñ Ñайловой ÑиÑÑемÑ. ÐÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ SELinux ÑаÑÑо возникаÑÑ Ð¸Ð·-за непÑавилÑного пÑоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑок в Ñайловой ÑиÑÑеме. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ñзвано загÑÑзкой компÑÑÑеÑа Ñ ÑдÑом, оÑлиÑнÑм Ð¾Ñ SELinux. ÐоÑвление ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑибке, ÑодеÑжаÑего file_t, обÑÑно ознаÑÐ°ÐµÑ ÑеÑÑÑзнÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑоÑÑавлением меÑок в Ñайловой ÑиÑÑеме.
ÐÑÑÑим ÑпоÑобом повÑоÑного пÑоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑок в Ñайловой ÑиÑÑеме ÑвлÑеÑÑÑ Ñоздание Ñайла Ñлага /.autorelabel и поÑледÑÑÑÐ°Ñ Ð¿ÐµÑезагÑÑзка. system−config−selinux Ñакже Ð¸Ð¼ÐµÐµÑ ÑÑÑ ÑÑнкÑионалÑноÑÑÑ. ÐÑоме Ñого, Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного пÑоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑок Ð´Ð»Ñ Ñайлов можно иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ restorecon/fixfiles.
ФÐÐÐЫ
/etc/selinux/config
СÐÐТРÐТРТÐÐÐÐ
booleans(8), setsebool(8), sepolicy(8), system-config-selinux(8), togglesebool(8), restorecon(8), fixfiles(8), setfiles(8), semanage(8), sepolicy(8)
ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ огÑаниÑенной ÑлÑÐ¶Ð±Ñ Ð² ÑиÑÑеме имееÑÑÑ man-cÑÑаниÑа ÑледÑÑÑего ÑоÑмаÑа:
ÐапÑимеÑ, Ð´Ð»Ñ ÑлÑÐ¶Ð±Ñ httpd имееÑÑÑ ÑÑÑаниÑа httpd_selinux(8).
man -k selinux
ÐÑÐ²ÐµÐ´ÐµÑ ÑпиÑок вÑÐµÑ man-ÑÑÑÐ°Ð½Ð¸Ñ SELinux.
ÐÐТÐРЫ
ÐÑа ÑÑÑаниÑа ÑÑководÑÑва бÑла напиÑана Dan Walsh