2128 lines
137 KiB
Text
2128 lines
137 KiB
Text
<!--
|
||
The FreeBSD Mongolian Documentation Project
|
||
|
||
Original revision 1.73
|
||
|
||
$FreeBSD$
|
||
-->
|
||
|
||
<chapter id="mac">
|
||
<chapterinfo>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Том</firstname>
|
||
<surname>Рөүдс</surname>
|
||
<contrib>Бичсэн </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
<authorgroup>
|
||
<author>
|
||
<firstname>Цагаанхүүгийн</firstname>
|
||
<surname>Ганболд</surname>
|
||
<contrib>Орчуулсан </contrib>
|
||
</author>
|
||
</authorgroup>
|
||
</chapterinfo>
|
||
|
||
<title>Mandatory Access Control буюу Албадмал Хандалтын хяналт</title>
|
||
|
||
<sect1 id="mac-synopsis">
|
||
<title>Ерөнхий агуулга</title>
|
||
|
||
<indexterm><primary>MAC</primary></indexterm>
|
||
<indexterm>
|
||
<primary>Албадмал Хандалтын хяналт</primary>
|
||
<see>MAC</see>
|
||
</indexterm>
|
||
|
||
<para>&os; 5.X нь &posix;.1e ноорог дээр тулгуурласан TrustedBSD төслийн
|
||
аюулгүй байдлын шинэ өргөтгөлүүдийг танилцуулсан. Хамгийн чухал аюулгүй байдлын
|
||
шинэ арга замуудын хоёр нь файлын системийн Access Control Lists буюу
|
||
Хандалтын Хяналтын Жагсаалтууд (<acronym>ACL</acronym>-үүд) болон
|
||
Mandatory Access Control (<acronym>MAC</acronym>) буюу
|
||
Албадмал Хандалтын Хяналт боломжууд юм. Албадмал Хандалтын Хяналт нь аюулгүй байдлын
|
||
шинэ бодлогуудыг бий болгож хандалтын хяналтын модулиудыг ачаалах боломжийг олгодог.
|
||
Зарим нь тухайн үйлчилгээг хатуужуулж системийн нарийн дэд олонлогуудын хамгаалалтуудыг
|
||
хангадаг. Бусад нь хаяглагдсан, олон талын аюулгүй байдлыг бүх субьект болон
|
||
обьектуудын хувьд хангадаг байна. Тодорхойлолтын албадмал буюу зайлшгүй шаардлагатай
|
||
гэж хэлсэн хэсэг нь хяналтуудын албадлагыг администраторууд болон систем
|
||
хийдэг бөгөөд discretionary access control (<acronym>DAC</acronym>,
|
||
&os; дээрх стандарт файл болон System V <acronym>IPC</acronym> зөвшөөрлүүд)
|
||
буюу тусдаа байх хандалтын хяналтаар хийгддэг шиг хэрэглэгчээр өөрөөр нь хийлгэдэггүй гэсэн
|
||
үг юм.</para>
|
||
|
||
<para>Энэ бүлэг Mandatory Access Control Framework (<acronym>MAC</acronym> Framework)
|
||
буюу Албадмал Хандалтын Хяналт Тогтолцоо болон залгагдаж болох аюулгүй байдлын бодлогын модулиудын
|
||
олонлогт анхаарлаа төвлөрүүлж төрөл бүрийн аюулгүй байдлын арга замуудыг идэвхжүүлэх
|
||
болно.</para>
|
||
|
||
<para>Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Одоогоор &os;-д ямар ямар аюулгүй байдлын <acronym>MAC</acronym>
|
||
бодлогын модулиуд орсон болон тэдгээртэй холбоотой арга замуудын талаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Аюулгүй байдлын <acronym>MAC</acronym> бодлогын модулиуд юу шийддэг
|
||
болон хаяглагдсан болон хаяглагдаагүй бодлогын хоорондын ялгааны талаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Системийг хэрхэн үр ашигтайгаар <acronym>MAC</acronym> тогтолцоог
|
||
ашиглахаар тохируулах талаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><acronym>MAC</acronym> тогтолцоонд орсон аюулгүй байдлын өөр өөр
|
||
бодлогын модулиудыг хэрхэн тохируулах талаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><acronym>MAC</acronym> тогтолцоо болон үзүүлсэн жишээнүүдийг ашиглан
|
||
илүү аюулгүй орчинг хэрхэн бий болгох талаар.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Тогтолцоо зөв хийгдсэнийг шалгахын тулд <acronym>MAC</acronym> тохиргоог
|
||
хэрхэн тест хийх талаар.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>&unix; болон &os;-ийн үндсүүдийг ойлгосон байх
|
||
(<xref linkend="basics">).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Цөмийн тохиргоо/эмхэтгэлийн (<xref linkend="kernelconfig">)
|
||
үндсүүдтэй танилцсан байх.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Аюулгүй байдалтай танилцаж энэ нь &os;-д хэрхэн хамааралтай
|
||
болохыг мэдэх (<xref linkend="security">).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<warning>
|
||
<para>Энд байгаа мэдээллийг буруу ашиглавал системд хандаж чадахгүй
|
||
болгох, хэрэглэгчдийн доройтол эсвэл X11-ийн хангадаг боломжуудад хандаж
|
||
чадахгүйд хүргэж болох юм. Хамгийн чухал нь <acronym>MAC</acronym> нь
|
||
системийг бүр мөсөн аюулгүй болгоно гэж найдаж болохгүй юм. <acronym>MAC</acronym>
|
||
тогтолцоо нь байгаа аюулгүй байдлын бодлогыг зөвхөн сайжруулдаг;
|
||
аюулгүй байдлын сайн практикгүй, байнгын аюулгүй байдлын шалгалтгүйгээр
|
||
систем хэзээ ч бүрэн аюулгүй байж чадахгүй.</para>
|
||
|
||
<para>Мөн энэ бүлгийн хүрээнд байгаа жишээнүүд нь зөвхөн жишээнүүд гэдгийг
|
||
тэмдэглэх ёстой юм. Ялангуяа эдгээр тухайлсан тохиргоонуудыг жинхэнэ систем
|
||
дээр хэрэглэхийг зөвлөдөггүй. Төрөл бүрийн аюулгүй байдлын бодлогын
|
||
модулиудыг бүтээх нь ихээхэн бодолт болон тест хийхийг шаарддаг. Бүгд хэрхэн
|
||
яаж ажилладгийг бүрэн ойлгоогүй хүнийн хувьд бүхэл системийг дахин үзэж
|
||
олон файлууд эсвэл сангуудыг дахин тохируулахад хүргэж болох юм.</para>
|
||
</warning>
|
||
|
||
<sect2>
|
||
<title>Юуг хэлэлцэхгүй вэ</title>
|
||
|
||
<para>Энэ бүлэг нь <acronym>MAC</acronym> тогтолцоотой холбоотой өргөн хүрээний
|
||
аюулгүй байдлын асуудлуудыг хамардаг. Шинэ <acronym>MAC</acronym> аюулгүй
|
||
байдлын бодлогын модулиудыг хөгжүүлэх талаар хэлэлцэхгүй болно.
|
||
<acronym>MAC</acronym> тогтолцоонд орсон хэд хэдэн аюулгүй байдлын бодлогын
|
||
модулиуд нь тусгай онцлогуудтай бөгөөд эдгээр нь тест хийх болон шинэ модуль хөгжүүлэхэд
|
||
зориулагдсан юм. Эдгээрт &man.mac.test.4;, &man.mac.stub.4; болон
|
||
&man.mac.none.4; орно. Эдгээр аюулгүй байдлын бодлогын модулиудын талаар
|
||
болон тэдгээрийн хангадаг төрөл бүрийн арга замуудын талаар дэлгэрэнгүй мэдээллийг
|
||
гарын авлагын хуудаснуудаас лавлана уу.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-inline-glossary">
|
||
<title>Энэ бүлэг дэх түлхүүр ухагдахуунууд</title>
|
||
|
||
<para>Энэ бүлгийг уншихаасаа өмнө хэд хэдэн түлхүүр ухагдахуунуудыг
|
||
тайлбарлах ёстой. Энэ нь учирч болох ямар нэг эндүүрлийг цэгцэлж
|
||
шинэ ухагдахуунууд болон мэдээллийн огцом танилцуулгаас зайлсхийх болно
|
||
гэж найдаж байна.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><emphasis>compartment</emphasis> буюу тасалгаа: Тасалгаа нь
|
||
хэрэглэгчдэд системийн тусгай бүрэлдэхүүн хэсгүүдэд хандах хандалтыг өгдөг
|
||
хуваагдах эсвэл тусгаарлагдах програмууд болон өгөгдлийн олонлог юм.
|
||
Мөн тасалгаа нь ажлын групп, хэлтэс, төсөл эсвэл сэдэв зэрэг бүлэглэлийг
|
||
илэрхийлдэг. Тасалгаануудыг ашиглан мэдэх хэрэгтэй аюулгүй байдлын
|
||
бодлогыг хийж гүйцэтгэх боломжтой байдаг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>high water mark</emphasis> буюу өндөр
|
||
түвшин: Өндөр түвшин бодлого нь өндөр түвшний мэдээлэлд хандах зорилгоор
|
||
аюулгүй байдлын түвшнүүдийг дээшлүүлэхийг зөвшөөрдөг бодлого юм.
|
||
Ихэнх тохиолдолд процесс дууссаны дараа анхдагч түвшин сэргээгддэг.
|
||
Одоогоор &os; <acronym>MAC</acronym> тогтолцоо нь үүнд зориулсан
|
||
бодлогогүй, гэхдээ бүрэн бүтэн байдлын үүднээс тодорхойлолт нь оржээ.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>integrity</emphasis> буюу бүрэн бүтэн байдал: Бүрэн
|
||
бүтэн байдал нь түлхүүр ойлголт бөгөөд өгөгдөлд тавигдаж болох итгэмжлэлийн
|
||
түвшин юм. Өгөгдлийн бүрэн бүтэн байдал дээшлэх тусам тэр өгөгдөлд итгэх
|
||
чадвар бас дээшилдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>label</emphasis> буюу хаяг/шошго: Хаяг/шошго нь
|
||
файлууд, сангууд эсвэл систем дэх бусад зүйлсэд хамааруулж болох
|
||
аюулгүй байдлын шинж чанар юм. Энэ нь итгэмжлэлийн тамга гэгдэж
|
||
болно; хаяг/шошго файлд тавигдсан бол тэр файлын аюулгүй байдлын
|
||
өмчүүдийг тайлбарлах бөгөөд зөвхөн ижил аюулгүй байдлын тохиргоотой
|
||
файлууд, хэрэглэгчид, эх үүсвэрүүд гэх зэргээс хандалтыг зөвшөөрөх
|
||
болно. Хаяг/шошгоны утгуудын утга санаа болон тайлбар нь
|
||
бодлогын тохиргооноос хамаардаг: зарим бодлогууд нь хаяг/шошгыг
|
||
обьектийн бүрэн бүтэн байдал эсвэл нууцгай байдал гэж ойлгодог бол
|
||
бусад бодлогууд хаяг/шошгыг хандалт хийхийн тулд дүрмүүдийг агуулахад
|
||
ашиглаж болох юм.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>level</emphasis> буюу түвшин: Аюулгүй байдлын
|
||
шинж чанарын ихэсгэсэн эсвэл багасгасан тохиргоо. Түвшин ихсэх тусам
|
||
түүний аюулгүй байдал бас дээшилнэ гэж үздэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>low water mark</emphasis> буюу доод түвшин: Доод
|
||
түвшин нь тийм ч аюулгүй биш мэдээлэлд хандахын тулд аюулгүй байдлын
|
||
түвшингүүдийг доошлуулахыг зөвшөөрдөг бодлого юм. Ихэнх тохиолдолд
|
||
процесс дууссаны дараа хэрэглэгчийн анхдагч аюулгүй байдлын түвшин сэргээгддэг.
|
||
&os;-д үүнийг ашигладаг цорын ганц аюулгүй байдлын бодлогын модуль бол
|
||
&man.mac.lomac.4; юм.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>multilabel</emphasis> буюу олон хаяг/шошго:
|
||
<option>multilabel</option> өмч нь ганц хэрэглэгчийн горимд
|
||
&man.tunefs.8; хэрэгсэл, ачаалалтын үйлдлүүдийн үед
|
||
эсвэл шинэ файлын систем үүсгэх үед &man.fstab.5; файл ашиглан
|
||
тохируулж болох файлын системийн тохируулга юм. Энэ тохируулга нь
|
||
өөр өөр обьектуудад өөр өөр <acronym>MAC</acronym> хаяг/шошгонуудыг
|
||
хамааруулахыг администраторт зөвшөөрөх болно. Энэ тохируулга нь
|
||
хаяглалтыг дэмждэг аюулгүй байдлын бодлогын модулиудад зөвхөн
|
||
хамаардаг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>object</emphasis> буюу обьект: Обьект буюу
|
||
системийн обьект нь <emphasis>subject</emphasis> буюу
|
||
субьектийн удирдлагын доор мэдээлэл дамжин урсдаг тэр мөн чанар
|
||
юм. Үүнд сангууд, файлууд, талбарууд, дэлгэцүүд,
|
||
гарууд, санах ой, соронзон хадгалалт, хэвлэгчид эсвэл бусад
|
||
дурын хадгалалт/хөдлөх төхөөрөмж ордог. Үндсэндээ
|
||
обьект нь өгөгдлийн чингэлэг эсвэл системийн эх үүсвэр юм;
|
||
<emphasis>обьект</emphasis>од хандах нь өгөгдөлд хандана
|
||
гэсэн үг юм.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>policy</emphasis> буюу бодлого:
|
||
Зорилгод хэрхэн хүрэхийг тодорхойлох дүрмүүдийн цуглуулга юм.
|
||
<emphasis>Бодлого</emphasis> нь ихэвчлэн зарим нэг зүйлүүдтэй
|
||
хэрхэн ажиллахыг баримтжуулдаг. Энэ бүлэг нь сэдэв дахь
|
||
<emphasis>бодлого</emphasis> гэсэн энэ нэр томъёог
|
||
<emphasis>аюулгүй байдлын бодлого</emphasis> гэж үзэх болно;
|
||
өөрөөр хэлбэл өгөгдөл болон мэдээллийн урсгалыг хянах дүрмүүдийн
|
||
цуглуулга гэж үзэх бөгөөд тэр өгөгдөл болон мэдээлэлд хэн хандалттай байхыг
|
||
тодорхойлох болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>sensitivity</emphasis> буюу мэдрэмтгий байдал:
|
||
<acronym>MLS</acronym>-ийг хэлэлцэж байх үед ихэвчлэн хэрэглэдэг.
|
||
Мэдрэмтгий байдлын түвшин нь өгөгдөл ямар чухал эсвэл нууцлаг байх ёстой болохыг
|
||
тайлбарлахад хэрэглэгддэг нэр томъёо юм. Мэдрэмтгий байдлын түвшин ихсэх
|
||
тусам нууцгай байдлын чухал ач холбогдол эсвэл өгөгдлийн итгэмжлэгдсэн байдал
|
||
бас ихэсдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>single label</emphasis> буюу ганц хаяг/шошго:
|
||
Ганц хаяг/шошго нь өгөгдлийн урсгалд хандалтын хяналт хийхийн тулд бүхэл файлын систем
|
||
ганц хаяг/шошгыг хэрэглэх үе юм. <option>multilabel</option> тохируулгыг
|
||
тохируулаагүй ямар ч үед файлын систем үүнийг тохируулсан байхад бүх файлууд нь
|
||
ижил хаяг/шошгоны тохиргоог дагах болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><emphasis>subject</emphasis> буюу субьект: субьект нь
|
||
хэрэглэгч, хэрэглэгчийн процессор, системийн процесс гэх мэт
|
||
<emphasis>обьектууд</emphasis>ийн хооронд мэдээллийг урсгах
|
||
идэвхтэй мөн чанар юм. &os; дээр энэ нь бараг үргэлж хэрэглэгчийн өмнөөс
|
||
процессод үйлчилж байгаа thread буюу урсгал байдаг.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-initial">
|
||
<title>MAC-ийн тайлбар</title>
|
||
|
||
<para>Энэ бүх шинэ ухагдахуунуудыг санаад <acronym>MAC</acronym> тогтолцоо
|
||
хэрхэн системийн аюулгүй байдлыг ерөнхийд нь нэмэгдүүлдэгийг эргэцүүлье.
|
||
<acronym>MAC</acronym> тогтолцооны хангадаг төрөл бүрийн аюулгүй байдлын модулиуд нь
|
||
сүлжээ болон файлын системүүдийг хамгаалах, зарим портууд болон сокетуудад
|
||
хэрэглэгчид хандахыг хаах гэх зэрэгт ашиглагдаж болно. Магадгүй бодлогын модулиудыг
|
||
ашиглах хамгийн шилдэг арга нь хэд хэдэн аюулгүй байдлын бодлогын модулиудыг нэг зэрэг
|
||
олон давхаргажсан аюулгүй байдлын орчны хувьд дуудаж тэдгээрийг холих явдал байж болох юм.
|
||
Олон давхаргажсан аюулгүй байдлын орчинд олон бодлогын модулиуд нь аюулгүй байдлыг
|
||
шалгаж ажиллаж байдаг. Энэ нь зөвхөн тусгай зориулалтаар ашиглаж байгаа системийн
|
||
элементүүдийг ихэвчлэн хатуужуулдаг чангатгах бодлогоос өөр юм. Цорын ганц сул тал нь
|
||
олон файлын системийн хаяг/шошгонууд, сүлжээний хандалтын хяналтыг хэрэглэгч бүр
|
||
дээр тохируулах гэх мэт тохиолдлуудад удирдлагын хувьд илүү
|
||
ажилтай байдаг явдал юм.</para>
|
||
|
||
<para>Сул талууд нь тогтолцооны үйлчлэх нөлөөлөлтэй харьцуулахад бага зүйл юм.
|
||
Жишээ нь тусгайлсан тохиргоонд ямар бодлогууд шаардлагатайг шилж сонгох
|
||
чадвар нь ажиллагааны хувьд илүү ачааллыг багасгадаг. Хэрэгцээгүй бодлогуудын
|
||
дэмжлэгийг багасгах нь системийн нийт ажиллагааг нэмэгдүүлэхээс гадна сонголтын уян хатан
|
||
байдлыг санал болгодог. Сайн шийдэл нь аюулгүй байдлын ерөнхий шаардлагуудыг
|
||
бодолцож энэ тогтолцооны санал болгодог төрөл бүрийн аюулгүй байдлын
|
||
модулиудыг үр ашигтайгаар авч хэрэгжүүлдэг.</para>
|
||
|
||
<para>Тиймээс <acronym>MAC</acronym> боломжуудыг ашигладаг систем нь хэрэглэгчийн
|
||
хүссэнээрээ аюулгүй байдлын шинж чанаруудыг өөрчлөх боломжийг хамгийн багаар бодоход
|
||
зөвшөөрөхгүй байж баталгаажуулах ёстой юм. Хэрэглэгчийн бүх хэрэгслүүд, програмууд
|
||
болон скриптүүд нь сонгосон аюулгүй байдлын бодлогын модулиудын хандалтын дүрмүүдийн
|
||
шахалтын доор ажиллах ёстой бөгөөд <acronym>MAC</acronym> хандалтын дүрмүүдийн
|
||
ерөнхий хяналт нь системийн администраторын гарт байдаг байна.</para>
|
||
|
||
<para>Аюулгүй байдлын бодлогын модулиудыг анхааралтай сонгох нь системийн администраторын
|
||
цорын ганц үүрэг байдаг. Зарим орчнуудын хувьд сүлжээнд хандалтын хяналтыг хязгаарлах
|
||
хэрэгтэй байдаг. Ийм тохиолдлуудад &man.mac.portacl.4;, &man.mac.ifoff.4; болон бүр
|
||
&man.mac.biba.4; бодлогын модулиуд зөв эхлэл болж болох юм. Бусад тохиолдлуудад
|
||
файлын системийн обьектуудын чанд нууцлал/итгэмжлэлийг шаардаж болох юм.
|
||
Энэ зорилгоор &man.mac.bsdextended.4; болон &man.mac.mls.4; зэрэг бодлогын
|
||
модулиуд байдаг.</para>
|
||
|
||
<para>Сүлжээний тохиргоон дээр үндэслэн бодлогын шийдвэрүүдийг хийдэг.
|
||
Магадгүй сүлжээ эсвэл Интернэтэд хандахын тулд &man.ssh.1;-ийн хангадаг
|
||
боломжуудад зөвхөн зарим нэг хэрэглэгчдийг хандахыг зөвшөөрөх ёстой
|
||
байж болох юм. Эдгээр тохиолдлуудад &man.mac.portacl.4; нь
|
||
сонгох бодлогын модуль болох юм. Гэхдээ файлын системүүдийн хувьд
|
||
юу хийх ёстой вэ? Зарим нэг сангуудад бусад бүлгүүдээс эсвэл тусгай
|
||
хэрэглэгчдээс хандах бүх хандалтыг чангаруулах ёстой юу? Эсвэл
|
||
тусгай файлууд уруу хийх хэрэглэгчийн эсвэл хэрэгслийн хандалтыг
|
||
зарим обьектуудыг нууц гэж тохируулан бид хязгаарлах ёстой юу?</para>
|
||
|
||
<para>Файлын системийн тохиолдолд обьектуудад хандах хандалт нь зарим хэрэглэгчдийн
|
||
хувьд итгэмжлэгдсэн/нууц, бусдуудын хувьд үгүй байж болох юм.
|
||
Жишээ нь хөгжүүлэх том багийг хэд хэдэн хөгжүүлэгчдээс тогтох жижиг бүлгүүдэд
|
||
хувааж болох юм. B төсөл дэх хөгжүүлэгчдийн бичсэн обьектуудад A төсөл дэх
|
||
хөгжүүлэгчид хандах ёсгүй. Бас тэд C төсөл дэх хөгжүүлэгчдийн үүсгэсэн
|
||
обьектуудад хандах хэрэгтэй байж болох юм. Ийм тохиолдол харин ч байж
|
||
болох юм. <acronym>MAC</acronym> тогтолцооны өөр өөр аюулгүй
|
||
байдлын бодлогын модулиудыг ашиглан хэрэглэгчдийг эдгээр бүлгүүдэд
|
||
хувааж мэдээллийн алдагдлаас айлгүйгээр тохирох талбаруудад хандалтыг
|
||
өгч болох юм.</para>
|
||
|
||
<para>Тиймээс аюулгүй байдлын бодлогын модуль бүр нь системийн ерөнхий аюулгүй
|
||
байдлыг сайжруулах өвөрмөц аргатай байдаг. Модулийн сонголтыг хийхдээ аюулгүй
|
||
байдлын бодлогын хувьд сайн бодож хийх хэрэгтэй. Ихэнх тохиолдлуудад
|
||
ерөнхий бодлогыг дахин харж сайжруулан систем дээр дахин хэрэгжүүлэх хэрэгтэй байж
|
||
болох юм. <acronym>MAC</acronym> тогтолцооны санал болгодог өөр өөр
|
||
аюулгүй байдлын бодлогын модулиудыг ойлгох нь администраторуудад
|
||
өөр өөрсдийн нөхцөлдөө тохируулан хамгийн шилдэг бодлогуудыг сонгоход
|
||
туслах болно.</para>
|
||
|
||
<para>&os;-ийн анхдагч цөм нь <acronym>MAC</acronym> тогтолцоонд зориулсан
|
||
тохируулгагүй байдаг, тиймээс энэ бүлэгт байгаа жишээнүүд эсвэл мэдээллийг
|
||
туршихаасаа өмнө дараах цөмийн тохируулгыг нэмэх ёстой:</para>
|
||
|
||
<programlisting>options MAC</programlisting>
|
||
|
||
<para>Тэгээд цөмийг дахин бүтээж суулгах шаардлагатай болно.</para>
|
||
|
||
<caution>
|
||
<para><acronym>MAC</acronym> бодлогын модулиудын төрөл бүрийн гарын
|
||
авлагын хуудаснууд нь тэдгээрийг цөмд оруулан бүтээсэн гэж мэдэгддэг боловч
|
||
системийг сүлжээнээс гаргаж түгжих зэрэг олон боломжтой байдаг.
|
||
<acronym>MAC</acronym>-ийг хэрэгжүүлэх нь галт ханыг хэрэгжүүлэхтэй
|
||
бараг адил бөгөөд системээс бүр мөсөн гарч түгжигдэхээс сэргийлэхийн
|
||
тулд анхааралтай байх ёстой. Өмнөх тохиргоондоо эргэж буцааж болдог
|
||
байх чадварыг бодолцох ёстой бөгөөд <acronym>MAC</acronym>
|
||
шийдлийг алсаас хийхдээ маш болгоомжтой хийх хэрэгтэй юм.</para>
|
||
</caution>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-understandlabel">
|
||
<title>MAC хаяг/шошгонуудыг ойлгох нь</title>
|
||
|
||
<para><acronym>MAC</acronym> хаяг/шошго нь системийн турш нэлэнхүйд нь
|
||
субьектууд болон обьектуудад өгч болох аюулгүй байдлын шинж чанар
|
||
юм.</para>
|
||
|
||
<para>Хаяг/шошгыг тохируулах үед хэрэглэгч үүнийг яг юу болох, юу хийгдэхийг ойлгож
|
||
чадаж байх ёстой. Обьект дээр байдаг шинж чанарууд нь бодлогын модуль
|
||
дуудагдсан болон бодлогын модулиуд тэдгээрийн шинж чанаруудыг
|
||
өөр аргаар ойлгуулдгаас хамаарна. Дутуу ойлгосноос эсвэл утга санаануудыг нь
|
||
ойлгох чадваргүй байдлаас болоод буруу тохируулсан бол үр дүн нь тааж болшгүй
|
||
байх бөгөөд магадгүй системийн хүсээгүй ажиллагаанд хүргэж болох юм.</para>
|
||
|
||
<para>Обьект дээрх аюулгүй байдлын хаяг/шошго нь бодлогын гаргах аюулгүй байдлын
|
||
хандалтын хяналтын шийдвэрийн хэсэг болон хэрэглэгддэг. Зарим бодлогуудад
|
||
хаяг/шошго нь өөрөө шийдвэр гаргахад шаардлагатай бүх мэдээллийг
|
||
агуулдаг; бусад загваруудад хаяг/шошгонууд нь илүү том дүрмийн олонлогийн хэсэг
|
||
болон процесс хийгдэж болох юм. Гэх мэт олныг дурдаж болно.</para>
|
||
|
||
<para>Жишээ нь файл дээр <literal>biba/low</literal> гэж хаяг/шошгыг тохируулах
|
||
нь Biba аюулгүй байдлын бодлогын модулиар хангагдаж байдаг хаяг/шошгыг
|
||
<quote>low</quote> гэсэн утгатайгаар илэрхийлж байна гэсэн үг юм.</para>
|
||
|
||
<para>&os;-д хаяглалтын боломжийг дэмждэг цөөн бодлогын модулиуд нь
|
||
урьдчилан тодорхойлсон тусгай гурван хаяг/шошгыг санал болгодог. Эдгээр нь
|
||
low буюу доод, high буюу өндөр болон equal буюу тэнцүү гэсэн хаяг/шошгууд юм.
|
||
Тэдгээр нь хандалтын хяналтыг бодлогын модуль бүртэй өөр өөрөөр хийдэг боловч
|
||
low хаяг/шошго нь хамгийн доод тохиргоо болох ба equal хаяг/шошго нь
|
||
субьект эсвэл обьектийг хаах эсвэл хамаарахгүй гэж тохируулах бөгөөд high
|
||
хаяг/шошго нь Biba болон <acronym>MLS</acronym> бодлогын модулиудад
|
||
байх хамгийн дээд тохиргоог хийх болно.</para>
|
||
|
||
<para>Ганц хаяг/шошго бүхий файлын системийн орчинд обьектууд дээр зөвхөн
|
||
нэг хаяг/шошго хэрэглэгдэх болно. Энэ нь хандалтын зөвшөөрлүүдийн
|
||
нэг олонлогийг бүхэл бүтэн системийн дагуу ашиглах бөгөөд олон орчны
|
||
хувьд энэ нь хангалттай байж болох юм. Файлын систем дэх обьектууд
|
||
эсвэл субьектууд дээр олон хаяг/шошгонууд тавих цөөн тохиолдлууд
|
||
байдаг. Ийм тохиолдолд <option>multilabel</option>
|
||
тохируулгыг &man.tunefs.8; уруу дамжуулж өгч болох юм.</para>
|
||
|
||
<para>Biba болон <acronym>MLS</acronym>-ийн хувьд тоон хаяг/шошгыг
|
||
шаталсан хяналтын тодорхой түвшинг заахын тулд тохируулж болно.
|
||
Энэ тоон түвшин нь мэдээллийг ангиллын өөр өөр бүлгүүдэд хуваах буюу
|
||
эрэмбэлж тэр бүлэг эсвэл илүү өндөр бүлгийн түвшинд хандах хандалтыг
|
||
зөвхөн зөвшөөрөхөд хэрэглэгддэг.</para>
|
||
|
||
<para>Ихэнх тохиолдлуудад администратор нь файлын системийн дагуу
|
||
хэрэглэхийн тулд зөвхөн ганц хаяг/шошгыг тохируулдаг.</para>
|
||
|
||
<para><emphasis>Хөөе хүлээгээрэй, энэ нь <acronym>DAC</acronym>-тай
|
||
адил юм байна! <acronym>MAC</acronym> нь хяналтыг зөвхөн
|
||
администраторт өгдөг гэж бодсон.</emphasis> Энэ өгүүлбэр нь
|
||
зарим талаараа үнэн хэвээр байгаа, учир нь <username>root</username>
|
||
хэрэглэгчид хяналт байгаа бөгөөд тэрээр хэрэглэгчдийг тохирох зэрэглэл/хандалтын
|
||
түвшингүүдэд байрлуулахаар бодлогуудыг тохируулдаг. Харамсалтай нь
|
||
бодлогын олон модулиуд нь <username>root</username> хэрэглэгчийг
|
||
бас хязгаарлаж чадна. Обьектууд дээрх үндсэн хяналт нь тэгээд бүлэгт
|
||
суллагдах боловч <username>root</username> нь тохиргоонуудыг
|
||
ямар ч үед буцааж эсвэл өөрчилж болох юм. Энэ нь Biba болон
|
||
<acronym>MLS</acronym> зэрэг бодлогуудын хамардаг
|
||
шаталсан/цэвэрлэгээ загвар юм.</para>
|
||
|
||
<sect2>
|
||
<title>Хаяг/шошгоны тохиргоо</title>
|
||
|
||
<para>Хаяг/шошгоны бодлогын модулийн тохиргооны бараг л бүх зүйлсийг
|
||
үндсэн системийн хэрэгслүүдийг ашиглан гүйцэтгэдэг. Эдгээр тушаалууд нь
|
||
обьект эсвэл субьектийн тохиргоо эсвэл тохиргооны удирдлага болон шалгалтын
|
||
хувьд энгийн интерфэйсээр хангадаг.</para>
|
||
|
||
<para>Бүх тохиргоог &man.setfmac.8; болон &man.setpmac.8;
|
||
хэрэгслүүдийг ашиглан хийнэ. <command>setfmac</command>
|
||
тушаал нь системийн обьектууд дээр <acronym>MAC</acronym>
|
||
хаяг/шошгонуудыг тохируулахад хэрэглэгддэг бол <command>setpmac</command>
|
||
тушаал нь системийн субьектууд дээр хаяг/шошгонуудыг тохируулахад
|
||
хэрэглэгддэг. Дараах тушаалыг ажиглаарай:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfmac biba/high test</userinput></screen>
|
||
|
||
<para>Дээрх тушаалыг ажиллуулсны дараа хэрэв ямар ч алдаа гараагүй бол
|
||
хүлээх мөр буцаагдах болно. Эдгээр тушаалууд нь хөдөлгөөнгүй биш байх
|
||
цорын ганц үе нь алдаа гарах үе юм; &man.chmod.1; болон &man.chown.8;
|
||
тушаалуудтай адил юм. Зарим тохиолдолд энэ алдаа нь
|
||
<errorname>Permission denied</errorname> гэсэн байж болох бөгөөд
|
||
энэ нь ихэвчлэн хязгаарласан обьект дээр хаяг/шошгыг тохируулах буюу засах
|
||
үед гардаг.<footnote><para>Өөр бусад нөхцлүүд бас өөр амжилтгүйтлүүдийг
|
||
бий болгож болох юм. Жишээ нь хэрэглэгч обьектийг дахин хаяглахыг оролдоход
|
||
файл нь түүний эзэмшээгүй файл байж болох юм. Энэ обьект нь байхгүй юм уу эсвэл
|
||
зөвхөн уншигдахаар байж болох юм. Албадмал бодлого нь файлыг процесс дахин
|
||
хаяглахыг зөвшөөрөхгүй, энэ нь магадгүй файлын өмч, процессийн өмч эсвэл
|
||
санал болгосон шинэ хаяг/шошгоны утгын өмчөөс болсон байж болох юм.
|
||
Жишээ нь: доод бүрэн бүтэн байдалд ажиллаж байгаа хэрэглэгч өндөр бүрэн
|
||
бүтэн байдлын файлын хаяг/шошгыг өөрчлөхөөр оролджээ. Эсвэл магадгүй
|
||
доод бүрэн бүтэн байдалд ажиллаж байгаа хэрэглэгч доод бүрэн бүтэн
|
||
байдлын файлын хаяг/шошгыг дээд бүрэн бүтэн байдлын хаяг/шошго уруу
|
||
өөрчлөхөөр оролджээ.</para></footnote> Системийн администратор
|
||
үүнийг давж гарахын тулд дараах тушаалуудыг ашиглаж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfmac biba/high test</userinput>
|
||
<errorname>Permission denied</errorname>
|
||
&prompt.root; <userinput>setpmac biba/low setfmac biba/high test</userinput>
|
||
&prompt.root; <userinput>getfmac test</userinput>
|
||
test: biba/high</screen>
|
||
|
||
<para>Дээрхээс харахад ажиллуулсан процессод өөр хаяг/шошго зааж бодлогын модулийн
|
||
тохиргоонуудыг өөрчлөхөд <command>setpmac</command> тушаалыг
|
||
хэрэглэж болох юм байна. <command>getpmac</command> хэрэгсэл нь
|
||
ихэвчлэн тухайн үед ажиллаж байгаа <application>sendmail</application> зэрэг
|
||
процессуудад хэрэглэгддэг. Хэдийгээр энэ нь тушаалын оронд процессийн ID-г
|
||
авдаг боловч логик нь туйлын төстэй юм. Хэрэв хэрэглэгчид өөрийн хандалтад
|
||
байхгүй файлыг удирдахыг оролдвол дуудагдсан бодлогын модулиудын дүрмүүдээс
|
||
болоод <errorname>Operation not permitted</errorname> алдаа
|
||
<function>mac_set_link</function> функцээр харуулагдах
|
||
болно.</para>
|
||
|
||
<sect3>
|
||
<title>Нийтлэг хаяг/шошгоны төрлүүд</title>
|
||
|
||
<para>&man.mac.biba.4;, &man.mac.mls.4; болон
|
||
&man.mac.lomac.4; бодлогын модулиудын хувьд энгийн хаяг/шошгонуудыг
|
||
зааж өгөх боломж олгогдсон байдаг. Эдгээр нь high буюу өндөр/дээд,
|
||
equal буюу тэнцүү болон low буюу доод гэсэн хэлбэрийг авах бөгөөд
|
||
эдгээр хаяг/шошгонуудын юу хангадаг талаар товч тайлбарыг доор
|
||
дурдав:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>low</literal> хаяг/шошго нь обьект эсвэл субьектийн
|
||
авч болох хамгийн доод хаяг/шошгоны тохиргоо гэгддэг.
|
||
Үүнийг обьектууд эсвэл субьектууд дээр тохируулах нь өндөр гэж
|
||
тэмдэглэгдсэн обьектууд эсвэл субьектууд уруу хандах тэдгээрийн
|
||
хандалтыг хаах болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>equal</literal> хаяг/шошго нь бодлогоос чөлөөлөгдөх
|
||
обьектууд дээр зөвхөн тавигдах ёстой.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>high</literal> хаяг/шошго нь обьект эсвэл субьектэд
|
||
хамгийн их боломжит тохиргоог зөвшөөрдөг.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Бодлогын модуль бүрийн хувьд тэдгээр тохиргоо бүр өөр өөр мэдээллийн
|
||
урсгалын зааврыг хийх болно. Тохирох гарын авлагын хуудаснуудыг унших нь
|
||
эдгээр ерөнхий хаяг/шошгоны тохиргоонуудын төрх байдлыг цаашид
|
||
тайлбарлах болно.</para>
|
||
|
||
<sect4>
|
||
<title>Хаяг/шошгоны илүү нарийн тохиргоо</title>
|
||
|
||
<para>Тоон зэргээр илэрхийлсэн хаяг/шошгонууд нь
|
||
<literal>comparison:compartment+compartment</literal>
|
||
буюу <literal>харьцуулалт:тасалгаа+тасалгаа</literal> гэсэнд
|
||
зориулагдаж хэрэглэгддэг, тиймээс дараах нь:</para>
|
||
|
||
<programlisting>biba/10:2+3+6(5:2+3-20:2+3+4+5+6)</programlisting>
|
||
|
||
<para>Ингэж тайлбарлагдаж болно:</para>
|
||
|
||
<para><quote>Biba Бодлогын Хаяг/Шошго</quote>/<quote>Зэрэг 10</quote>
|
||
:<quote>Тасалгаанууд 2, 3 болон 6</quote>:
|
||
(<quote>зэрэг 5 ...</quote>)</para>
|
||
|
||
<para>Энэ жишээн дээр эхний зэрэг нь <quote>эффектив тасалгаанууд</quote>тай
|
||
<quote>эффектив зэрэг</quote> гэж тооцогддог, хоёр дахь зэрэг
|
||
нь доод зэрэг бөгөөд хамгийн сүүлийнх нь өндөр зэрэг юм.
|
||
Ихэнх тохиргоонуудад эдгээр тохируулгуудыг ашигладаггүй, харин
|
||
тэдгээрийг илүү нарийн тохиргоонд зориулж санал болгодог.</para>
|
||
|
||
<para>Системийн обьектуудад хамааруулахад тэдгээр нь системийн субьектуудтай
|
||
харьцуулах юм бол зөвхөн тухайн үеийн зэрэг/тасалгаануудтай байдаг.
|
||
Системийн субьектууд нь систем болон сүлжээний интерфэйсүүдэд байгаа
|
||
эрхүүдийн хүрээг тусгадаг. Сүлжээний интерфэйсүүд дээр хандалтын
|
||
хяналтын хувьд хаяг/шошгонууд нь ашиглагддаг.</para>
|
||
|
||
<para>Субьект болон обьект хослол дахь зэрэг болон тасалгаанууд нь
|
||
<quote>давамгайлал</quote> гэгддэг харилцааг бүтээхэд хэрэглэгддэг.
|
||
Энэ харилцаанд субьект нь обьектийг давамгайлдаг, эсвэл обьект нь субьектийг
|
||
давамгайлдаг, эсвэл аль нэг нь нөгөөгөө давамгайлахгүй, эсвэл
|
||
хоёулаа нэг нэгнийгээ давамгайлдаг. <quote>хоёулаа давамгайлах</quote>
|
||
тохиолдол нь хоёр хаяг/шошго тэнцүү байхад тохиолддог. Biba-ийн
|
||
мэдээллийн урсгалын мөн чанараас болоод төсөлд тохирох <quote>мэдэх хэрэгтэй</quote>
|
||
тасалгаануудын олонлогийн эрхүүд танд байдаг. Гэхдээ обьектууд нь бас
|
||
тасалгаануудын олонлогтой байна. Хэрэглэгчид нь
|
||
өөрсдөө хязгаарлалтгүй байдаг тасалгаа дахь обьектуудад хандахын тулд
|
||
<command>su</command> эсвэл <command>setpmac</command> тушаалуудыг
|
||
ашиглан өөрсдийнхөө эрхүүдийг дэд эрхүүд болгож болох юм.</para>
|
||
</sect4>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Хэрэглэгчид болон хаяг/шошгоны тохиргоонууд</title>
|
||
|
||
<para>Хэрэглэгчдийн өөрсдийнх нь файлууд болон процессууд систем дээр тодорхойлсон
|
||
аюулгүй байдлын бодлоготой зөв харилцан ажилладаг байхын тулд хэрэглэгчид нь өөрсдөө
|
||
хаяг/шошгонуудтай байх шаардлагатай байдаг. Үүнийг <filename>login.conf</filename>
|
||
файлд нэвтрэлтийн ангиллуудыг ашиглан тохируулдаг. Хаяг/шошгонуудыг ашигладаг
|
||
бодлогын модуль бүр хэрэглэгчийн ангиллын тохиргоог хийх болно.</para>
|
||
|
||
<para>Бодлогын модуль бүрийн тохиргоог агуулах жишээ оруулгыг доор
|
||
үзүүлэв:</para>
|
||
|
||
<programlisting>default:\
|
||
:copyright=/etc/COPYRIGHT:\
|
||
:welcome=/etc/motd:\
|
||
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
|
||
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
|
||
:manpath=/usr/share/man /usr/local/man:\
|
||
:nologin=/usr/sbin/nologin:\
|
||
:cputime=1h30m:\
|
||
:datasize=8M:\
|
||
:vmemoryuse=100M:\
|
||
:stacksize=2M:\
|
||
:memorylocked=4M:\
|
||
:memoryuse=8M:\
|
||
:filesize=8M:\
|
||
:coredumpsize=8M:\
|
||
:openfiles=24:\
|
||
:maxproc=32:\
|
||
:priority=0:\
|
||
:requirehome:\
|
||
:passwordtime=91d:\
|
||
:umask=022:\
|
||
:ignoretime@:\
|
||
:label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:</programlisting>
|
||
|
||
<para><literal>label</literal> тохируулга нь хэрэглэгчийн ангиллын
|
||
<acronym>MAC</acronym>-ийн үйлчлэх анхдагч хаяг/шошгыг тохируулахад
|
||
хэрэглэгддэг. Хэрэглэгчид энэ утгыг өөрчлөх зөвшөөрөл хэзээ ч өгөгдөхгүй
|
||
учраас энэ нь хэрэглэгчийн хувьд сонгох боломжгүй юм. Гэхдээ жинхэнэ тохиргоон дээр
|
||
администратор нь бодлогын модуль бүрийг идэвхжүүлэхийг хэзээ ч хүсэхгүй.
|
||
Энэ тохиргоонуудаас аль нэгийг нь хийж гүйцэтгэхээсээ өмнө энэ бүлгийн үлдсэнийг
|
||
дахин шалгаж уншихыг зөвлөж байна.</para>
|
||
|
||
<note>
|
||
<para>Хэрэглэгчид нь эхний нэвтрэлтийнхээ дараа өөрсдийн хаяг/шошгыг
|
||
өөрчилж болох юм. Гэхдээ энэ өөрчлөлт нь бодлогын шахалтуудын
|
||
эрхшээлд байдаг. Дээрх жишээ нь процессийн хамгийн бага бүрэн
|
||
бүтэн байдлыг 5, түүний хамгийн их утга нь 15, гэхдээ анхдагч
|
||
эффектив хаяг/шошго нь 10 гэж Biba бодлогод хэлж байна.
|
||
Процесс нь магадгүй хэрэглэгч setpmac тушаалыг ажиллуулснаас
|
||
болоод хаяг/шошгоо өөрчлөхөөр сонгох хүртэл 10 дээр ажиллах болно.
|
||
setpmac тушаал нь нэвтрэлтийн үед хүрээг тохируулах Biba-ийн
|
||
шахалтад байх болно.</para>
|
||
</note>
|
||
|
||
<para>Бүх тохиолдлуудад <filename>login.conf</filename>-д
|
||
өөрчлөлт хийсний дараа нэвтрэлтийн ангиллын боломжийн мэдээллийн баазыг
|
||
<command>cap_mkdb</command> тушаал ашиглан дахин бүтээх ёстой
|
||
бөгөөд энэ нь ойртож байгаа жишээ эсвэл хэлэлцүүлэг бүрт тусгагдах болно.</para>
|
||
|
||
<para>Олон сайтууд нь хэд хэдэн өөр өөр хэрэглэгчийн ангиллуудыг шаарддаг
|
||
ялангуяа асар их тооны хэрэглэгчидтэй байж болохыг тэмдэглэх хэрэгтэй юм.
|
||
Маш сайн төлөвлөх хэрэгтэй бөгөөд удирдахад туйлын хэцүү болж болох юм.</para>
|
||
|
||
<para>&os;-ийн ирээдүйн хувилбарууд нь хэрэглэгчдийг хаяг/шошгонуудад
|
||
тааруулахдаа шинэ аргыг оруулах болно, гэхдээ энэ нь &os; 5.3-аас
|
||
хойш хэсэг хугацаа өнгөртөл бэлэн болохгүй юм.</para>
|
||
</sect3>
|
||
|
||
<sect3>
|
||
<title>Сүлжээний интерфэйсүүд болон хаяг/шошгоны тохиргоонууд</title>
|
||
|
||
<para>Хаяг/шошгонууд нь сүлжээний дагуух өгөгдлийн урсгалыг хянахад туслах
|
||
зорилгоор сүлжээний интерфэйсүүд дээр бас тавигдаж болно. Бүх тохиолдолд
|
||
тэдгээр нь бодлогууд обьектуудад үйлчилдэг шигээр үйлчилдэг.
|
||
<literal>biba</literal> дээрх өндөр тохиргоонуудтай хэрэглэгчдийг
|
||
жишээ нь доод хаяг/шошготой сүлжээний интерфэйсүүдэд хандахыг
|
||
зөвшөөрдөггүй.</para>
|
||
|
||
<para>Сүлжээний интерфэйсүүд дээр <acronym>MAC</acronym> хаяг/шошгыг
|
||
тохируулахдаа <option>maclabel</option> тохируулгыг <command>ifconfig</command>
|
||
тушаал уруу өгч болох юм. Жишээ нь:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ifconfig bge0 maclabel biba/equal</userinput></screen>
|
||
|
||
<para>тушаал нь <literal>biba/equal</literal>-ийн <acronym>MAC</acronym>
|
||
хаяг/шошгыг &man.bge.4; интерфэйс дээр тохируулах болно.
|
||
<literal>biba/high(low-high)</literal>-тай төстэй
|
||
тохиргоог ашиглаж байх үед бүх хаяг/шошгыг тэр чигээр нь хаалтанд ("")
|
||
хийх ёстой, тэгэхгүй бол алдаа буцаагдах болно.</para>
|
||
|
||
<para>Хаяглалтыг дэмждэг бодлогын модуль бүр тааруулах боломжтой
|
||
хувьсагчтай байдаг бөгөөд тэдгээрийг сүлжээний интерфэйсүүд дээр
|
||
<acronym>MAC</acronym> хаяг/шошгыг хаахдаа хэрэглэж
|
||
болох юм. Хаяг/шошгыг <option>equal</option> буюу тэнцүү гэж
|
||
тохируулах нь ижил нөлөөлөлтэй байх болно. Тэдгээр тааруулах боломжтой
|
||
хувьсагчуудын хувьд <command>sysctl</command>-ийн
|
||
тушаалын гаралт, бодлогын гарын авлагын хуудаснууд эсвэл бүр
|
||
энэ бүлгийн үлдсэн хэсэг дэх мэдээллийг дахин үзээрэй.</para>
|
||
</sect3>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Ганц хаяг/шошго уу эсвэл олон хаяг/шошго уу?</title>
|
||
<!-- Stopped here with my edits -->
|
||
<para>Анхдагчаар систем нь <option>singlelabel</option>
|
||
тохируулгыг ашиглах болно. Гэхдээ энэ нь администраторт юу гэж ойлгогдох
|
||
вэ? Хэд хэдэн ялгаанууд байдаг бөгөөд тэдгээр нь системийн аюулгүй байдлын
|
||
загварт уян хатан чанарын хувьд давуу болон сул талуудыг үзүүлдэг.</para>
|
||
|
||
<para><option>singlelabel</option> нь зөвхөн нэг хаяг/шошгоны хувьд
|
||
зөвшөөрөх бөгөөд жишээлбэл <literal>biba/high</literal>-ийг
|
||
субьект эсвэл обьект бүрийн хувьд ашиглах юм. Энэ нь удирдлагын хувьд бага
|
||
ажиллагааг өгдөг боловч хаяглалтыг дэмждэг бодлогуудын уян хатан чанарыг
|
||
бууруулдаг. Олон администраторууд өөрсдийн аюулгүй байдлын бодлогодоо
|
||
<option>multilabel</option> тохируулгыг ашиглахыг хүсэж болох
|
||
юм.</para>
|
||
|
||
<para><option>multilabel</option> тохируулга нь субьект эсвэл обьект бүрийг
|
||
хуваалтад зөвхөн нэг хаяг/шошгыг зөвшөөрөх стандарт <option>singlelabel</option>
|
||
тохируулгын оронд өөрийн гэсэн тусдаа <acronym>MAC</acronym> хаягтай байхыг
|
||
зөвшөөрөх болно. <option>multilabel</option> болон <option>single</option>
|
||
хаяг/шошгоны тохируулгууд нь Biba, Lomac, <acronym>MLS</acronym> болон
|
||
<acronym>SEBSD</acronym> зэрэг хаяглалтын боломжийг хийж гүйцэтгэдэг
|
||
бодлогуудад зөвхөн шаардлагатай байдаг.</para>
|
||
|
||
<para>Ихэнх тохиолдолд <option>multilabel</option>-ийг тохируулах
|
||
ерөөсөө хэрэггүй байж болох юм. Дараах тохиолдол болон аюулгүй байдлын
|
||
загварыг авч үзье:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><acronym>MAC</acronym> тогтолцоо болон төрөл бүрийн бодлогуудын
|
||
холимгийг ашигладаг &os; вэб сервер.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Энэ машин нь зөвхөн нэг хаяг/шошго <literal>biba/high</literal>-ийг
|
||
системийн бүх юмандаа шаарддаг. Энд ганц хаяг/шошго нь үргэлж нөлөөлөх болохоор
|
||
файлын систем нь <option>multilabel</option> тохируулгыг
|
||
шаардахгүй.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Гэхдээ энэ машин нь вэб сервер болох бөгөөд бичих боломжоос хамгаалахын
|
||
тулд вэб серверийг <literal>biba/low</literal>-д ажиллуулах
|
||
ёстой. Biba бодлого болон энэ нь хэрхэн ажилладаг талаар сүүлд
|
||
хэлэлцэх болно. Тэгэхээр хэрэв өмнөх тайлбар ойлгоход хэцүү байгаа
|
||
бол зүгээр л цааш үргэлжлүүлэн уншаад буцаж эргэж ирээрэй.
|
||
Сервер нь ажиллаж байх үеийн төлвийнхээ ихэнх үед
|
||
<literal>biba/low</literal> тавигдсан тусдаа хуваалтыг ашиглаж
|
||
болох юм. Энэ жишээн дээр нэлээн их зүйл байхгүй байгаа, жишээ нь
|
||
өгөгдөл, тохиргоо болон хэрэглэгчийн тохиргоонууд дээр хязгаарлалтууд
|
||
байхгүй; гэхдээ энэ нь зөвхөн дээр дурдсаныг батлах хурдхан жишээ
|
||
юм.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Хэрэв хаягладаггүй бодлогуудын аль нэг ашиглагдах бол
|
||
<option>multilabel</option> тохируулга хэзээ ч шаардагдахгүй.
|
||
Эдгээрт <literal>seeotheruids</literal>,
|
||
<literal>portacl</literal> болон <literal>partition</literal>
|
||
бодлогууд ордог.</para>
|
||
|
||
<para>Хуваалтад <option>multilabel</option> тохируулгыг ашиглаж
|
||
<option>multilabel</option>-ийн ажиллагаан дээр тулгуурласан
|
||
аюулгүй байдлын загварыг байгуулах нь удирдлагын хувьд илүү ажиллагаанд
|
||
хүргэж болох юм. Учир нь файлын систем дэх бүх зүйлс хаяг/шошготой болох
|
||
юм. Эдгээр зүйлсэд сангууд, файлууд, болон бүр төхөөрөмжийн цэгүүд хүртэл
|
||
орно.</para>
|
||
|
||
<para>Дараах тушаал нь файлын системүүд дээр олон хаяг/шошготой байхаар
|
||
<option>multilabel</option>-ийг тохируулна. Үүнийг зөвхөн ганц хэрэглэгчийн
|
||
горимд хийж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>tunefs -l enable /</userinput></screen>
|
||
|
||
<para>Энэ нь swap файлын системийн хувьд шаардлагатай биш юм.</para>
|
||
|
||
<note>
|
||
<para>Зарим хэрэглэгчид <option>multilabel</option> тугийг root
|
||
хуваалт дээр тохируулахад асуудлуудтай тулгарсан байж болох юм.
|
||
Хэрэв ийм тохиолдол бол энэ бүлгийн <xref linkend="mac-troubleshoot">
|
||
хэсгийг дахин үзнэ үү.</para>
|
||
</note>
|
||
<!--
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Тааруулах боломжтой хувьсагчуудаар MAC-ийг хянах нь</title>
|
||
|
||
<para>Ямар ч модулийг дуудалгүйгээр <acronym>MAC</acronym>-ийн зарим
|
||
хэсгүүдийг <command>sysctl</command> интерфэйс ашиглан тохируулж
|
||
болно. Эдгээр тааруулах боломжтой хувьсагчуудыг доор тайлбарласан
|
||
бөгөөд бүх тохиолдолд нэг (1) нь идэвхжүүлэхийг илтгэдэг бол
|
||
тэг (0) нь хаахыг илтгэнэ:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_fs</literal> нь
|
||
анхдагчаар нэг (1) байх бөгөөд <acronym>MAC</acronym> файлын системийн
|
||
бодлогуудыг файлын системүүд дээр идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_kld</literal> нь
|
||
анхдагчаар нэг (1) байх бөгөөд <acronym>MAC</acronym> цөмийн холбох
|
||
бодлогуудыг динамик цөмийн холбогчид (&man.kld.4;-г харна уу)
|
||
идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_network</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд <acronym>MAC</acronym> сүлжээний
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_pipe</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд хоолойнууд дээр <acronym>MAC</acronym>
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_process</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд процесс хоорондын холбоог хэрэглэдэг
|
||
процессууд дээр <acronym>MAC</acronym>
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_socket</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд сокетууд (&man.socket.2; гарын авлагын
|
||
хуудсыг үзнэ үү) дээр <acronym>MAC</acronym>
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_system</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд бүртгэл хөтлөх болон дахин ачаалах зэрэг системийн
|
||
үйлдлүүд дээр <acronym>MAC</acronym>
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.enforce_vm</literal> нь
|
||
анхдагчаар нэг (1) байдаг бөгөөд виртуал санах ойн систем дээр <acronym>MAC</acronym>
|
||
бодлогуудыг идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<note>
|
||
<para>Бодлого бүр эсвэл <acronym>MAC</acronym> тохируулга нь тааруулах
|
||
боломжтой хувьсагчуудыг дэмждэг. Эдгээр нь ихэвчлэн
|
||
<literal>security.mac.<policyname></literal> модны нэг
|
||
хэсэг байдаг. <acronym>MAC</acronym>-ийн бүх тааруулах боломжтой хувьсагчуудыг
|
||
харахын тулд дараах тушаалыг ашиглана:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -da | grep mac</userinput></screen>
|
||
</note>
|
||
|
||
<para>Энэ нь бүх үндсэн <acronym>MAC</acronym> бодлогуудыг анхдагчаар
|
||
идэвхжүүлсэн гэж тайлбарлагдах ёстой. Хэрэв модуль нь цөмд цуг бүтээгдсэн бол
|
||
систем нь туйлын түгжигдсэн байх бөгөөд локал сүлжээнд холбогдож чадахгүй
|
||
эсвэл Интернэтэд холбогдохгүй зэрэг байх байсан. Модулиудыг цөмд оруулж
|
||
бүтээхийг зөвлөдөггүйн учир энэ юм. <command>sysctl</command>-оор
|
||
боломжуудыг шууд хаах чадварыг энэ нь зөвхөн хязгаарлаад зогсохгүй
|
||
шинэ системийг дахин бүтээж суулгах шаардлагагүйгээр администраторт агшин
|
||
зуур системийн бодлогуудыг солих боломжийг зөвшөөрдөг.</para>
|
||
-->
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-planning">
|
||
<title>Аюулгүй байдлын тохиргоог төлөвлөх нь</title>
|
||
|
||
<para>Шинэ технологи хийгдэх болгонд төлөвлөлтийн үе шат үргэлж зөв зүйтэй санаа
|
||
байдаг. Төлөвлөх шатуудын үеэр администратор ерөнхийд нь
|
||
<quote>том дүр зургийг</quote> харах ёстой бөгөөд ядаж дараах зүйлүүдийг
|
||
хараандаа байлгаж байх хэрэгтэй:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Шийдлийн шаардлагууд;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Шийдлийн зорилгууд;</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para><acronym>MAC</acronym> суулгацуудын хувьд эдгээрт дараах зүйлс орно:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Системүүд дээр байгаа мэдээлэл болон эх үүсвэрүүдийг хэрхэн
|
||
ангилах.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Мэдээлэл ба эх үүсвэрүүдийн ямар төрлүүдэд хандахыг
|
||
хийгдэх ёстой хязгаарлалтуудын төрлийн хамтаар хязгаарлах.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Энэ зорилгод хүрэхийн тулд аль <acronym>MAC</acronym>
|
||
модуль эсвэл модулиуд шаардлагатай болох.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Системийн эх үүсвэрүүд болон аюулгүй байдлын тохиргоонуудыг
|
||
дахин тохируулж өөрчлөх боломж үргэлж байдаг бөгөөд системээс хайж файлууд болон
|
||
хэрэглэгчийн бүртгэлүүдийг засах нь ихэвчлэн маш тохиромжгүй байдаг.
|
||
Төлөвлөх нь ямар нэг асуудалгүй, үр ашигтай итгэгдсэн системийг бүтээхэд
|
||
туслах юм. Тохиргоо бүхий итгэгдсэн системийн туршилт нь ихэвчлэн
|
||
амин чухал байдаг бөгөөд <acronym>MAC</acronym> шийдлийг жинхэнэ ажиллах
|
||
системүүд дээр ашиглахаас <emphasis>өмнө</emphasis> лавтай ашигтай
|
||
байдаг билээ. <acronym>MAC</acronym> бүхий систем дээр сул тохируулж
|
||
орхих нь амжилтгүй байдлыг тохируулж байна гэсэн үг юм.</para>
|
||
|
||
<para>Өөр өөр орчнууд өөр тусгай хэрэгцээ болон шаардлагуудтай байж болох
|
||
юм. Гүнзгий, бүрэн гүйцэд аюулгүй байдлын хувийн тохируулгыг үүсгэх нь
|
||
систем ажиллагаанд орсны дараа өөрчлөлтүүдийн хэрэгцээг багасгах
|
||
болно. Тиймээс дараа дараагийн хэсгүүд администраторуудад байдаг
|
||
өөр өөр модулиудын талаар өгүүлэх бөгөөд тэдгээрийн хэрэглээ болон тохиргоог
|
||
тайлбарлаж зарим тохиолдолд тэдгээр нь ямар нөхцөл байдлын үед хамгийн
|
||
тохиромжтой байхыг харуулах болно. Жишээ нь вэб сервер нь
|
||
&man.mac.biba.4; болон &man.mac.bsdextended.4; бодлогуудыг
|
||
ашиглаж болох юм. Бусад тохиолдлуудад жишээ нь маш цөөн локал хэрэглэгчидтэй
|
||
машины хувьд &man.mac.partition.4; магадгүй зөв сонголт болж
|
||
болох юм.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-modules">
|
||
<title>Модулийн тохиргоо</title>
|
||
|
||
<para><acronym>MAC</acronym> тогтолцоонд орсон модуль бүр дээр дурдсан
|
||
шиг цөмд эмхэтгэгдэж эсвэл цөмийн ажиллах үеийн модуль хэлбэрээр дуудагдаж
|
||
болно. Бидний зөвлөдөг арга бол модулийг эхний ачаалалтын үйлдлийн үеэр
|
||
дуудагдахаар болгож модулийн нэрийг <filename>/boot/loader.conf</filename>
|
||
файлд нэмэх явдал юм.</para>
|
||
|
||
<para>Дараах хэсгүүд нь төрөл бүрийн <acronym>MAC</acronym> модулиудыг
|
||
хэлэлцэж тэдгээрийн боломжуудыг тайлбарлах болно. Тэдгээрийг тусгай
|
||
орчинд хийж гүйцэтгэхийг энэ бүлэг бас хамрах болно. Зарим модулиуд
|
||
хаяглалтын хэрэглээг дэмждэг бөгөөд хаяглалт нь
|
||
<quote>энийг зөвшөөрсөн, харин энийг зөвшөөрөөгүй</quote> гэх
|
||
зэрэг хаяг/шошгыг хэрэгжүүлж хандалтыг хянадаг байна. Хаяг/шошгоны
|
||
тохиргооны файл нь файлуудад хэрхэн хандаж болох, сүлжээний холболтыг
|
||
хэрхэн солилцож болох гэх зэрэг олон асуудлуудыг хянадаг. Өмнөх хэсэг нь
|
||
файл бүрийн эсвэл хуваалт бүрийн хандалтын хяналтыг идэвхжүүлэхийн тулд
|
||
<option>multilabel</option> тугийг файлын системүүдэд хэрхэн
|
||
тохируулах талаар үзүүлсэн.</para>
|
||
|
||
<para>Ганц хаяг/шошго бүхий тохиргоо нь системийн дагуу зөвхөн нэг хаяг/шошгыг
|
||
хэрэглэх бөгөөд ийм учраас <command>tunefs</command>-ийн
|
||
тохируулга <option>multilabel</option> гэж нэрлэгдсэн юм.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-seeotheruids">
|
||
<title>MAC seeotheruids модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC See Other UIDs Policy буюу MAC-ийн бусад UID-уудыг харах бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_seeotheruids.ko</filename></para>
|
||
|
||
<para>Цамийн тохиргооны мөр:
|
||
<literal>options MAC_SEEOTHERUIDS</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга:
|
||
<literal>mac_seeotheruids_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.seeotheruids.4; модуль нь
|
||
<command>sysctl</command>-ийн тааруулах боломжтой
|
||
<literal>security.bsd.see_other_uids</literal> болон
|
||
<literal>security.bsd.see_other_gids</literal> хувьсагчуудыг
|
||
дуурайж өргөтгөдөг. Энэ тохируулга нь тохиргооноос өмнө ямар ч
|
||
хаяг/шошгонуудыг тохируулахыг шаарддаггүй бөгөөд бусад модулиудтай
|
||
хамааралгүйгээр ажиллаж чаддаг.</para>
|
||
|
||
<para>Модулийг дуудаж ачаалсны дараа боломжуудыг хянахын тулд дараах
|
||
<command>sysctl</command>-ийн тааруулах боломжтой хувьсагчуудыг
|
||
ашиглаж болно:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.seeotheruids.enabled</literal>
|
||
нь модулийн боломжуудыг идэвхжүүлж анхдагч тохируулгуудыг
|
||
ашиглана. Эдгээр анхдагч тохируулгууд нь бусад хэрэглэгчдийн
|
||
эзэмшиж байгаа процессууд болон сокетуудыг харах боломжийг
|
||
хэрэглэгчдийн хувьд хаах болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
<literal>security.mac.seeotheruids.specificgid_enabled</literal>
|
||
нь зарим нэг бүлгүүдийг энэ бодлогоос чөлөөлж тэдгээрийг зөвшөөрөх болно.
|
||
Энэ бодлогоос зарим нэг бүлгүүдийг чөлөөлөхийн тулд
|
||
<command>sysctl</command> тушаалын
|
||
<literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal>
|
||
хувьсагчийг ашиглана. Дээрх жишээн дээрх <replaceable>XXX</replaceable>-ийг
|
||
чөлөөлөх бүлгийн тоон ID-аар солих хэрэгтэй.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>
|
||
<literal>security.mac.seeotheruids.primarygroup_enabled</literal>
|
||
нь тусгай анхдагч бүлгүүдийг энэ бодлогоос чөлөөлөхийн тулд ашигладаг.
|
||
Энэ хувьсагчийг хэрэглэхэд <literal>security.mac.seeotheruids.specificgid_enabled</literal>
|
||
хувьсагч тохируулагдаагүй байж болно.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-bsdextended">
|
||
<title>MAC bsdextended модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC</primary>
|
||
<secondary>Файлын Системийн Галт Ханын Бодлого</secondary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_bsdextended.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр:
|
||
<literal>options MAC_BSDEXTENDED</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга:
|
||
<literal>mac_bsdextended_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.bsdextended.4; модуль файлын системийн галт ханыг
|
||
идэвхжүүлдэг. Энэ модулийн бодлого нь стандарт файлын системийн
|
||
зөвшөөрлүүдийн загварын өргөтгөл болж файлын систем дэх файлууд,
|
||
хэрэгслүүд болон сангуудыг хамгаалахын тулд администраторт галт
|
||
ханатай адил дүрмийн олонлогийг үүсгэх боломжийг олгодог.
|
||
Файлын системийн обьектод хандахыг оролдоход дүрмүүдийн
|
||
жагсаалтаас тохирох дүрэм таарах хүртэл эсвэл төгсгөл хүртэл шалгадаг.
|
||
Энэ ажиллагааг &man.sysctl.8;-ийн хувьсагч
|
||
security.mac.bsdextended.firstmatch_enabled параметрийг
|
||
хэрэглэж өөрчилж болно. &os; дэх бусад галт ханын модулиудтай адилаар
|
||
хандалтын хяналтын дүрмүүдийг агуулах файлыг үүсгэж &man.rc.conf.5;-ийн
|
||
хувьсагчийн тусламжтайгаар ачаалах үед системээр уншуулж болно.</para>
|
||
|
||
<para>Дүрмийн жагсаалтыг &man.ipfw.8;-ийн синтакстай төстэйгөөр бичигддэг
|
||
&man.ugidfw.8; хэрэгслийг ашиглан оруулж болно. Илүү хэрэгслүүдийг
|
||
&man.libugidfw.3; сан дахь функцуудыг ашиглан бичиж болно.</para>
|
||
|
||
<para>Энэ модультай ажиллаж байхдаа маш болгоомжтой байх хэрэгтэй; учир нь
|
||
буруу хэрэглээ файлын системийн зарим хэсэгт хандах боломжгүй болгож
|
||
болох юм.</para>
|
||
|
||
<sect2>
|
||
<title>Жишээнүүд</title>
|
||
|
||
<para>&man.mac.bsdextended.4; модуль ачаалагдсаны дараа
|
||
тухайн үед байгаа дүрмийн тохиргоог жагсаахад дараах тушаал ашиглагдаж
|
||
болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ugidfw list</userinput>
|
||
0 slots, 0 rules</screen>
|
||
|
||
<para>Яг бодож байсны дагуу ямар ч дүрмүүд тодорхойлогдоогүй байна.
|
||
Энэ нь бүгд хандах боломжтой байна гэсэн үг юм. <username>root</username>-ийг
|
||
орхиж бусад хэрэглэгчдийн бүх хандалтыг хаах дүрмийг үүсгэхийн тулд
|
||
ердөө л дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput></screen>
|
||
|
||
<note>
|
||
<para>&os; 5.3-аас өмнөх хувилбаруудад
|
||
<parameter>add</parameter> параметр байдаггүй. Ийм тохиолдолд
|
||
<parameter>set</parameter> параметрийг ашиглах ёстой.
|
||
Тушаалын жишээг доорхоос харна уу.</para></note>
|
||
|
||
<para>Энэ нь бүх хэрэглэгчдийг <command>ls</command> зэрэг хамгийн энгийн тушаалуудыг
|
||
ажиллуулахыг хаах учраас маш буруу санаа юм. Илүү эх оронч дүрмүүдийн
|
||
жагсаалт иймэрхүү байж болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ugidfw set 2 subject uid <replaceable>user1</replaceable> object uid <replaceable>user2</replaceable> mode n</userinput>
|
||
&prompt.root; <userinput>ugidfw set 3 subject uid <replaceable>user1</replaceable> object gid <replaceable>user2</replaceable> mode n</userinput></screen>
|
||
|
||
<para>Энэ нь <username>user1</username> хэрэглэгчээс
|
||
<username><replaceable>user2</replaceable></username>-ийн гэрийн
|
||
сан уруу хандах сангийн жагсаалт үзүүлэх зэрэг дурын болон бүх хандалтыг
|
||
хаах болно.</para>
|
||
|
||
<para><username>user1</username>-ийн оронд
|
||
<option>not uid <replaceable>user2</replaceable></option> тохируулгыг
|
||
дамжуулж болно. Энэ нь дээрхийн адил хандалтын хязгаарлалтуудыг зөвхөн нэг
|
||
хэрэглэгчийн хувьд биш бүх хэрэглэгчийн хувьд тавих болно.</para>
|
||
|
||
<note>
|
||
<para><username>root</username> хэрэглэгчид эдгээр өөрчлөлтүүд
|
||
нөлөөлөхгүй.</para>
|
||
</note>
|
||
|
||
<para>Энэ нь файлын системийг бэхэлж батжуулахад туслахын тулд
|
||
&man.mac.bsdextended.4; модулийг хэрхэн ашиглаж болох
|
||
ерөнхий санааг харуулах ёстой. Илүү дэлгэрэнгүй мэдээллийг
|
||
&man.mac.bsdextended.4; болон &man.ugidfw.8; гарын
|
||
авлагын хуудаснуудаас үзнэ үү.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-ifoff">
|
||
<title>MAC ifoff модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC интерфэйс дуугай болгох бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_ifoff.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр:
|
||
<literal>options MAC_IFOFF</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга: <literal>mac_ifoff_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.ifoff.4; модуль нь сүлжээний интерфэйсүүдийг шууд идэвхгүй болгож
|
||
системийн эхний ачаалалтын үеэр идэвхжүүлэхгүй байлгах зорилгоор байдаг. Энэ нь
|
||
систем дээр ямар ч хаяг/шошгуудыг тохируулахыг шаарддаггүйгээс гадна бас бусад
|
||
<acronym>MAC</acronym> модулиудаас хамааралгүй юм.</para>
|
||
|
||
<para>Хяналтын ихэнх нь доор дурдсан <command>sysctl</command>-ийн тааруулж болох
|
||
хувьсагчуудаар хийгддэг.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.ifoff.lo_enabled</literal> нь
|
||
loopback (&man.lo.4;) буюу буцах интерфэйс дээрх бүх урсгалыг
|
||
нээнэ/хаана.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.ifoff.bpfrecv_enabled</literal> нь
|
||
Berkeley Packet Filter буюу Беркли Пакет шүүгч интерфэйс (&man.bpf.4;)
|
||
дээрх бүх урсгалыг нээнэ/хаана.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.ifoff.other_enabled</literal> нь
|
||
бусад бүх интерфэйсүүд дээр бүх урсгалыг нээнэ/хаана.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>&man.mac.ifoff.4;-ийн хамгийн нийтлэг хэрэглээний нэг бол
|
||
ачаалах дарааллын үеэр сүлжээний урсгалыг зөвшөөрөх ёсгүй орчинд сүлжээг
|
||
монитор хийх явдал юм. Өөр нэг санал болгох хэрэглээ бол
|
||
хамгаалагдсан сангуудад шинэ эсвэл өөрчлөгдсөн файлуудыг олсон тохиолдолд
|
||
сүлжээний урсгалыг автоматаар хаахын тулд
|
||
<filename role="package">security/aide</filename>-г
|
||
ашигладаг скриптийг бичих байж болох юм.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-portacl">
|
||
<title>MAC portacl модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC Порт Хандалт Хяналтын Жагсаалтын Бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_portacl.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр:
|
||
<literal>MAC_PORTACL</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга: <literal>mac_portacl_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.portacl.4; модулийг төрөл бүрийн <command>sysctl</command>
|
||
хувьсагчуудыг ашиглан локал <acronym>TCP</acronym> болон
|
||
<acronym>UDP</acronym> портуудыг холбохыг хязгаарлахад хэрэглэдэг.
|
||
Мөн чанартаа &man.mac.portacl.4; нь заагдсан эрх бүхий портуудыг
|
||
өөрөөр хэлбэл 1024-оос бага портуудыг холбох боломжийг
|
||
<username>root</username> биш хэрэглэгчдэд зөвшөөрдөг.</para>
|
||
|
||
<para>Ачаалагдсаны дараа энэ модуль нь бүх сокетууд дээр <acronym>MAC</acronym>
|
||
бодлогыг идэвхжүүлдэг. Дараах тааруулж болох хувьсагчууд байдаг:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.portacl.enabled</literal> нь
|
||
бодлогыг бүр мөсөн нээнэ/хаана.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.portacl.port_high</literal> нь
|
||
&man.mac.portacl.4;-ийн хамгаалалтыг нь идэвхжүүлдэг хамгийн дээд
|
||
портын дугаарыг тохируулдаг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.portacl.suser_exempt</literal> нь
|
||
тэгээс ялгаатай утгаар тохируулагдсан үедээ <username>root</username>
|
||
хэрэглэгчийг энэ бодлогоос чөлөөлнө.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.portacl.rules</literal> нь
|
||
яг mac_portacl бодлогыг заадаг; доорхоос харна уу.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para><literal>mac_portacl</literal> бодлого нь
|
||
<literal>security.mac.portacl.rules</literal> sysctl-д
|
||
заагдсаны дагуу хэрэгцээнээсээ хамааран хэдэн ч дүрмүүдтэй байж болох
|
||
<literal>rule[,rule,...]</literal> текст хэлбэрийн байдаг.
|
||
Дүрэм бүр <literal>idtype:id:protocol:port</literal>
|
||
гэсэн хэлбэрийн байдаг. <parameter>idtype</parameter>
|
||
параметр нь <literal>uid</literal> эсвэл <literal>gid</literal>
|
||
байж болох бөгөөд <parameter>id</parameter> параметрийг
|
||
хэрэглэгчийн id эсвэл бүлгийн id гэж тайлбарладаг.
|
||
<parameter>protocol</parameter> параметр нь
|
||
<literal>tcp</literal> эсвэл <literal>udp</literal>
|
||
гэж заагдан дүрмийг <acronym>TCP</acronym> эсвэл
|
||
<acronym>UDP</acronym>-ийн алинд хамаарахыг тодорхойлоход
|
||
хэрэглэгддэг. Сүүлийн <parameter>port</parameter> параметр нь
|
||
заагдсан хэрэглэгч эсвэл бүлэгт холбохыг зөвшөөрөх портын дугаар
|
||
юм.</para>
|
||
|
||
<note>
|
||
<para>Дүрмийн олонлог нь цөмөөр шууд тайлбарлагддаг болохоор хэрэглэгчийн ID
|
||
бүлгийн ID болон портын параметруудын хувьд зөвхөн тоон утгуудыг ашиглаж
|
||
болно. Өөрөөр хэлбэл хэрэглэгч, бүлэг болон портын үйлчилгээний нэрсийг
|
||
ашиглаж болохгүй.</para>
|
||
</note>
|
||
|
||
<para>Анхдагчаар &unix; төст системүүд дээр 1024-өөс бага портуудыг зөвхөн
|
||
эрх бүхий процессууд буюу өөрөөр хэлбэл <username>root</username>-ээр
|
||
ажилладаг процессуудад ашиглахад/холбоход хэрэглэдэг. &man.mac.portacl.4;-ийн
|
||
хувьд эрхгүй процессуудыг 1024-өөс бага портуудад холбохыг зөвшөөрөхдөө
|
||
энэ стандарт &unix; хязгаарлалтыг хаасан байх ёстой. Үүнийг
|
||
&man.sysctl.8;-ийн <literal>net.inet.ip.portrange.reservedlow</literal>
|
||
болон <literal>net.inet.ip.portrange.reservedhigh</literal>
|
||
хувьсагчуудыг тэг болгон хийж болно.</para>
|
||
|
||
<para>Доор жишээнүүдийг үзнэ үү, эсвэл дэлгэрэнгүй мэдээллийг
|
||
&man.mac.portacl.4; гарын авлагын хуудаснаас лавлана уу.</para>
|
||
|
||
<sect2>
|
||
<title>Жишээнүүд</title>
|
||
|
||
<para>Дараах жишээнүүд нь дээрх хэлэлцүүлгийг арай илүү тайлбарлах
|
||
болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl security.mac.portacl.port_high=1023</userinput>
|
||
&prompt.root; <userinput>sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0</userinput></screen>
|
||
|
||
<para>Эхлээд бид &man.mac.portacl.4;-ийг стандарт эрх бүхий
|
||
портуудыг хамарч ердийн &unix; холболтын хязгаарлалтуудыг
|
||
хаахаар тохируулна.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput></screen>
|
||
|
||
<para><username>root</username> хэрэглэгчийг энэ бодлогоор хязгаарлахгүйн
|
||
тулд <literal>security.mac.portacl.suser_exempt</literal>-г
|
||
тэгээс ялгаатай утгаар тохируулна. &man.mac.portacl.4; модуль нь
|
||
одоо &unix; төст системүүд анхдагч тохиргоотойгоор ажилладаг шигээр
|
||
тохируулагдсан байна.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput></screen>
|
||
|
||
<para><acronym>UID</acronym> 80 бүхий (ердийн тохиолдолд
|
||
<username>www</username> хэрэглэгч) хэрэглэгчид 80 портыг
|
||
холбохыг зөвшөөрнө. <username>root</username> эрхгүйгээр
|
||
вэб сервер ажиллуулахыг <username>www</username> хэрэглэгчид
|
||
зөвшөөрөхөд үүнийг ашиглаж болно.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput></screen>
|
||
|
||
<para><acronym>UID</acronym> 1001 бүхий хэрэглэгчид
|
||
<acronym>TCP</acronym> 110 (<quote>pop3</quote>)
|
||
болон 995 (<quote>pop3s</quote>) портуудыг холбохыг
|
||
зөвшөөрнө. Энэ нь 110 болон 995 портуудаар холболтуудыг
|
||
хүлээн авдаг сервер эхлүүлэхийг хэрэглэгчид зөвшөөрдөг.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-partition">
|
||
<title>MAC хуваалтын модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC Процессийн Хуваалтын Бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_partition.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр:
|
||
<literal>options MAC_PARTITION</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга:
|
||
<literal>mac_partition_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.partition.4; бодлого нь процессуудыг тэдгээрийн
|
||
<acronym>MAC</acronym> хаяг/шошго дээр үндэслэн тусгай
|
||
<quote>хуваалтуудад</quote> оруулдаг. Үүнийг &man.jail.8;-ийн
|
||
тусгай нэг төрөл гэж бодох хэрэгтэй, гэхдээ энэ нь тийм ч зохистой
|
||
харьцуулалт биш юм.</para>
|
||
|
||
<para>Ачаалах процессийн үеэр энэ бодлогыг дуудаж идэвхжүүлэхийн тулд
|
||
&man.loader.conf.5; файлд нэмэгдэх ёстой нэг модуль нь энэ юм.</para>
|
||
|
||
<para>Энэ бодлогын ихэнх тохиргоо нь доор тайлбарлагдах &man.setpmac.8;
|
||
хэрэгслээр хийгддэг. Энэ бодлогод зориулагдсан дараах
|
||
<command>sysctl</command>-ийн хувьсагч байдаг:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.partition.enabled</literal> нь
|
||
<acronym>MAC</acronym> процессийн хуваалтуудыг хэрэглэхийг
|
||
идэвхжүүлдэг.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Энэ бодлого идэвхтэй болоход хэрэглэгчдэд зөвхөн өөрийн процессуудыг болон
|
||
нэг хуваалтад байгаа бусад хэрэглэгчдийн процессуудыг харахыг зөвшөөрөх бөгөөд
|
||
гэхдээ энэ хуваалтын хүрээнээс гадна байгаа хэрэгслүүдтэй ажиллахыг зөвшөөрөхгүй
|
||
байх болно. Жишээ нь дээрх <literal>insecure</literal> ангилалд байгаа
|
||
хэрэглэгчийг <command>top</command> тушаал болон процесс үүсгэх ёстой бусад
|
||
олон тушаалуудад хандахыг зөвшөөрөхгүй юм.</para>
|
||
|
||
<para>Хэрэгслүүдийг хуваалтын хаяг/шошго уруу оруулах буюу тохируулахын тулд
|
||
<command>setpmac</command> хэрэгслийг хэрэглэнэ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setpmac partition/13 top</userinput></screen>
|
||
|
||
<para>Энэ нь <command>top</command> тушаалыг <literal>insecure</literal>
|
||
ангилал дахь хэрэглэгчдийн хаяг/шошгоны олонлогт нэмэх болно.
|
||
<literal>insecure</literal> ангиллын хэрэглэгчдийн үүсгэсэн бүх
|
||
процессууд <literal>partition/13</literal> хаяг/шошгод
|
||
байхыг тэмдэглэх нь зүйтэй юм.</para>
|
||
|
||
<sect2>
|
||
<title>Жишээнүүд</title>
|
||
|
||
<para>Дараах тушаал нь хуваалтын хаяг/шошго болон процессийн жагсаалтыг
|
||
танд харуулах болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ps Zax</userinput></screen>
|
||
|
||
<para>Дараагийн тушаал нь өөр хэрэглэгчийн процессийн хуваалтын хаяг/шошго болон
|
||
тэр хэрэглэгчийн тухайн үед ажиллаж байгаа процессуудыг харахыг
|
||
зөвшөөрөх болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ps -ZU trhodes</userinput></screen>
|
||
|
||
<note>
|
||
<para>&man.mac.seeotheruids.4; бодлого дуудагдаж ачаалагдаагүй бол
|
||
<username>root</username> хаяг/шошго дахь процессуудыг
|
||
хэрэглэгч харж чадна.</para>
|
||
</note>
|
||
|
||
<para>Жинхэнэ ур дүй шаардсан шийдэл нь
|
||
<filename>/etc/rc.conf</filename> файл дахь бүх үйлчилгээнүүдийг
|
||
хааж тэдгээрт зөв хаяглалтыг тохируулж тэдгээрийг скриптээр
|
||
эхлүүлдэг байж болох юм.</para>
|
||
|
||
<note>
|
||
<para>Дараах бодлогууд нь санал болгосон гурван анхдагч хаяг/шошгоны
|
||
оронд бүхэл тоон тохируулгуудыг дэмждэг. Эдгээр тохируулгууд болон тэдгээрийн
|
||
хязгаарлалтууд нь модулийн гарын авлагын хуудаснуудад дэлгэрэнгүй
|
||
тайлбарлагдсан байгаа.</para>
|
||
</note>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-mls">
|
||
<title>MAC олон түвшинт аюулгүй байдлын модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC олон түвшинт аюулгүй байдлын бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_mls.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр:
|
||
<literal>options MAC_MLS</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга: <literal>mac_mls_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.mls.4; бодлого нь систем дэх субьектууд болон обьектуудын
|
||
хоорондын хандалтыг мэдээллийн урсгалын чанд бодлогын тусламжтайгаар
|
||
хянаж хэрэгжүүлдэг.</para>
|
||
|
||
<para><acronym>MLS</acronym> орчнуудад <quote>clearance</quote>
|
||
буюу цэвэрлэгээ түвшин нь субьект болон обьектуудын хаяг/шошгонд
|
||
тасалгаануудын цуг тохируулагддаг. Эдгээр цэвэрлэгээ буюу мэдрэхүйн түвшингүүд
|
||
нь зургаан мянгаас их тоонд хүрч болох учир ямар ч администраторын хувьд
|
||
субьект эсвэл обьект бүрийг нарийн тохируулах нь сүрдмээр ажил
|
||
байдаг. Харин үүнийг хөнгөвчлөх гурван ширхэг <quote>хормын</quote> хаяг/шошго
|
||
энэ бодлогод орсон байдаг.</para>
|
||
|
||
<para>Эдгээр хаяг/шошгонууд нь <literal>mls/low</literal>,
|
||
<literal>mls/equal</literal> болон <literal>mls/high</literal>
|
||
юм. Эдгээр хаяг/шошгонууд нь гарын авлагын хуудсанд дэлгэрэнгүй
|
||
тайлбарлагдсан болохоор энд зөвхөн товчхон тайлбарлая:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>mls/low</literal> хаяг/шошго нь доод тохиргоог агуулдаг
|
||
бөгөөд энэ нь түүнийг бусад бүх обьектуудаар захируулахыг зөвшөөрдөг.
|
||
<literal>mls/low</literal>-ээр хаяглагдсан болгон доод цэвэрлэгээний
|
||
түвшинтэй байх бөгөөд өндөр түвшний мэдээлэлд хандах нь зөвшөөрөгдөөгүй
|
||
байх болно. Мөн энэ хаяг/шошго нь цэвэрлэгээний өндөр түвшингийн обьектуудад
|
||
бичих эсвэл тэдгээрт мэдээлэл дамжуулахаас сэргийлдэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>mls/equal</literal> хаяг/шошго энэ бодлогоос чөлөөлөгдөхөөр
|
||
болсон обьектуудад тавигдах ёстой.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>mls/high</literal> хаяг/шошго нь цэвэрлэгээний боломжит
|
||
хамгийн өндөр түвшин юм. Энэ хаяг/шошгыг заасан обьектууд систем дэх
|
||
бусад бүх обьектуудаас давуу эрхтэй байх бөгөөд гэхдээ тэдгээр нь доод
|
||
ангиллын обьектуудад мэдээлэл алдагдахыг зөвшөөрөхгүй
|
||
байх болно.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para><acronym>MLS</acronym> дараах боломжуудыг олгодог:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Шатлаагүй зэрэглэлүүдийн олонлогтой аюулгүй
|
||
байдлын шаталсан түвшин;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Тогтмол дүрмүүд: дээш уншихгүй, доош бичихгүй (субьект нь
|
||
өөрөөсөө дээд түвшинд биш зөвхөн өөрийн түвшний болон доод түвшний
|
||
обьектуудад унших хандалттай байж болно. Үүнтэй адилаар субьект нь
|
||
өөрөөсөө доод түвшинд биш зөвхөн өөрийн түвшний болон дээд түвшний
|
||
обьектуудад бичих хандалттай байж болно.);</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Нууцлаг байдал (өгөгдлийн зохисгүй ил болголтоос сэргийлэх);</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Мэдрэмжийн олон түвшингүүдэд өгөгдөлтэй зэрэгцээгээр ажиллах
|
||
системүүдийн дизайны үндэс (нууц болон итгэмжлэгдсэн мэдээллийн
|
||
хооронд мэдээлэл алдахгүйгээр).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Тусгай төхөөрөмжүүд болон интерфэйсүүдийн хувьд дараах
|
||
<command>sysctl</command>-ийн тааруулах боломжтой
|
||
хувьсагчууд байдаг:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.mls.enabled</literal> нь
|
||
<acronym>MLS</acronym> бодлогыг нээх/хаахад хэрэглэгддэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.mls.ptys_equal</literal> нь
|
||
бүх &man.pty.4; төхөөрөмжүүдийг үүсгэлтийнх нь үеэр
|
||
<literal>mls/equal</literal> гэж хаяглана.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.mls.revocation_enabled</literal> нь
|
||
обьектуудын хаяг/шошго доод зэргийнх уруу болж өөрчлөгдсөний дараа
|
||
тэдгээрт хандах хандалтыг цуцлахад хэрэглэгддэг.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.mls.max_compartments</literal> нь
|
||
обьектуудад хамгийн их тооны тасалгааны түвшингүүдийг тохируулахад
|
||
хэрэглэгддэг; үндсэндээ системд зөвшөөрөгдсөн тасалгааны хамгийн их
|
||
дугаар байна.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para><acronym>MLS</acronym> хаяг/шошгонуудтай ажиллахын тулд
|
||
&man.setfmac.8; байдаг. Обьектод хаяг/шошгыг олгохын тулд
|
||
дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfmac mls/5 test</userinput></screen>
|
||
|
||
<para><filename>test</filename> файлын хувьд <acronym>MLS</acronym>
|
||
хаяг/шошгыг авахын тулд дараах тушаалыг ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>getfmac test</userinput></screen>
|
||
|
||
<para>Энэ нь <acronym>MLS</acronym> бодлогын боломжуудын товч
|
||
дүгнэлт юм. Өөр нэг хандлага нь <acronym>MLS</acronym>
|
||
бодлогын мэдээллийг тохируулах мастер бодлогын файлыг
|
||
<filename class="directory">/etc</filename> санд үүсгэж
|
||
тэр файлыг <command>setfmac</command> тушаалд өгөх явдал
|
||
юм. Энэ аргыг бүх бодлогуудыг авч үзсэнийхээ дараа тайлбарлах
|
||
болно.</para>
|
||
|
||
<sect2>
|
||
<title>Албадмал Мэдрэмжийг төлөвлөх нь</title>
|
||
|
||
<para>Олон түвшинт аюулгүй байдлын бодлогын модулиар администратор
|
||
эмзэг мэдээллийн урсгалыг хянахын тулд төлөвлөдөг. Анхдагчаар
|
||
өөрийн блок дээш унших, блок доош бичих мөн чанараараа систем
|
||
бүгдийг доод төлөвт болгодог. Бүгд хандах боломжтой байх
|
||
бөгөөд администратор тохиргооны явцад аажмаар үүнийг
|
||
мэдээллийн итгэмжлэгдсэн байдлыг нэмэгдүүлэн өөрчилдөг.</para>
|
||
|
||
<para>Дээрх гурван үндсэн хаяг/шошгоноос гадна администратор
|
||
хэрэглэгчид болон бүлгүүдийг шаардлагын дагуу тэдгээрийн
|
||
хооронд мэдээллийн урсгалыг хаахаар бүлэглэж болно.
|
||
Цэвэрлэгээний түвшингүүдэд мэдээллийг танигдсан үгсээр хайх нь
|
||
амар байж болох бөгөөд жишээ нь <literal>Confidential</literal>,
|
||
<literal>Secret</literal>, болон <literal>Top Secret</literal>
|
||
гэх зэрэг ангиллууд байж болох юм. Зарим администраторууд
|
||
төслийн түвшингүүд дээр үндэслэн өөр бүлгүүдийг үүсгэж
|
||
болох юм. Ангиллын аргаас үл хамааран ийм хязгаарласан бодлогыг хийхээс
|
||
өмнө сайн бодож гаргасан төлөвлөгөө байж байх ёстой.</para>
|
||
|
||
<para>Энэ аюулгүй байдлын бодлогын модулийн хувьд зарим жишээ тохиолдлууд
|
||
гэх юм бол e-commerce вэб сервер, компанийн чухал мэдээлэл болон
|
||
санхүүгийн байгууллагын орчнуудыг агуулсан файл сервер байж болох юм.
|
||
Хамгийн үнэмшилгүй газар бол зөвхөн хоёр, гуравхан хэрэглэгчтэй ажлын
|
||
станц байх юм.</para>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-biba">
|
||
<title>MAC Biba модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC Biba Бүрэн Бүтэн байдлын бодлого</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_biba.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны мөр: <literal>options MAC_BIBA</literal></para>
|
||
|
||
<para>Ачаалалтын тохируулга: <literal>mac_biba_load="YES"</literal></para>
|
||
|
||
<para>&man.mac.biba.4; модуль <acronym>MAC</acronym>
|
||
Biba бодлогыг дууддаг. Энэ бодлого нь <acronym>MLS</acronym>
|
||
бодлоготой адил ажилладаг бөгөөд ялгаатай нь мэдээллийн урсгалын
|
||
дүрмүүд нь нэлээн эсрэгээр байдаг. Энэ нь эмзэг мэдээллийн буурсан
|
||
урсгалаас сэргийлдэг гэдэг бол <acronym>MLS</acronym> бодлого нь
|
||
эмзэг мэдээллийн өгссөн урсгалаас сэргийлдэг; тиймээс энэ хэсгийн ихэнх нь
|
||
хоёр бодлогод хоёуланд нь хамаатай юм.</para>
|
||
|
||
<para>Biba орчнуудад <quote>integrity</quote> буюу бүрэн бүтэн
|
||
байдлын хаяг/шошго субьект эсвэл обьект бүр дээр тавигддаг.
|
||
Эдгээр хаяг/шошгууд нь шаталсан зэргүүд болон шатлаагүй
|
||
бүрэлдэхүүнүүдээс тогтдог. Обьект болон субьектийн зэрэг өсөх тусам
|
||
бүрэн бүтэн байдал ч бас дээшилдэг.</para>
|
||
|
||
<para>Дэмжигдсэн хаяг/шошгууд нь <literal>biba/low</literal>,
|
||
<literal>biba/equal</literal>, болон <literal>biba/high</literal>
|
||
бөгөөд доор тайлбарлав:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>biba/low</literal> хаяг/шошго нь обьект эсвэл
|
||
субьектийн авч болох хамгийн доод бүрэн бүтэн байдал гэж үздэг.
|
||
Үүнийг обьектууд эсвэл субьектууд дээр тавих нь илүү өндрөөр
|
||
тэмдэглэгдсэн обьектууд эсвэл субьектууд уруу хийх тэдгээрийн
|
||
бичих хандалтыг хаана. Гэхдээ тэдгээрт унших хандалт байх
|
||
болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>biba/equal</literal> хаяг/шошго нь
|
||
бодлогоос чөлөөлөгдөх обьектууд дээр зөвхөн тавигдах ёстой.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>biba/high</literal> хаяг/шошго нь доод
|
||
хаяг/шошго дээр тавигдсан обьектуудад бичихийг зөвшөөрөх боловч
|
||
тэр обьектийг уншихыг зөвшөөрдөггүй. Бүхэл системийн бүрэн бүтэн
|
||
байдалд нөлөөлдөг обьектуудад энэ хаяг/шошгыг тавихыг зөвлөдөг.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Biba дараах боломжуудыг олгодог:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Шатлаагүй бүрэн бүтэн байдлын зэрэглэлүүдийн
|
||
олонлог бүхий шаталсан бүрэн бүтэн байдлын түвшин;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Тогтмол дүрмүүд: дээш бичихгүй, доош уншихгүй (<acronym>MLS</acronym>-ийн
|
||
эсрэг). Субьект нь
|
||
өөрөөсөө дээд түвшинд биш зөвхөн өөрийн түвшний болон доод түвшний
|
||
обьектуудад бичих хандалттай байж болно. Үүнтэй адилаар субьект нь
|
||
өөрөөсөө доод түвшинд биш зөвхөн өөрийн түвшний болон дээд түвшний
|
||
обьектуудад унших хандалттай байж болно;</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Бүрэн бүтэн байдал (өгөгдлийн зохисгүй өөрчлөлтөөс сэргийлэх);</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Бүрэн бүтэн байдлын түвшингүүд (MLS-ийн мэдрэмжийн
|
||
түвшингүүдийн оронд).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Дараах <command>sysctl</command>-ийн тааруулах боломжтой
|
||
хувьсагчуудыг Biba бодлоготой ажиллахын тулд хэрэглэж болно.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>security.mac.biba.enabled</literal> нь
|
||
машин дээр Biba бодлогыг нээхэд/хаахад хэрэглэгдэж болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.biba.ptys_equal</literal> нь
|
||
Biba бодлогыг &man.pty.4; төхөөрөмжүүд дээр хаахад хэрэглэглэгдэж
|
||
болно.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>security.mac.biba.revocation_enabled</literal> нь
|
||
хаяг/шошго субьектийг захирахаар өөрчлөгдсөн бол обьектод хийх
|
||
хандалтыг цуцлах болно.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Системийн обьектууд дахь Biba бодлогын тохиргоонд хандахын тулд
|
||
<command>setfmac</command> болон <command>getfmac</command>
|
||
тушаалуудыг ашиглана:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfmac biba/low test</userinput>
|
||
&prompt.root; <userinput>getfmac test</userinput>
|
||
test: biba/low</screen>
|
||
|
||
<sect2>
|
||
<title>Албадмал бүрэн бүтэн байдлыг төлөвлөх нь</title>
|
||
|
||
<para>Бүрэн бүтэн байдал нь мэдрэмтгий байдлаас өөр бөгөөд мэдээллийг
|
||
итгэгдээгүй талуудаар хэзээ ч удирдуулахгүй байлгаж баталгаажуулдаг.
|
||
Үүнд субьектууд болон обьектууд, тэдгээрийн хооронд дамжих мэдээлэл
|
||
ордог. Энэ нь хэрэглэгчдэд зөвхөн өөрчилж чадах боломж болон
|
||
бүр зарим тохиолдолд тэдэнд хэрэгтэй мэдээлэлд хандах боломжийг
|
||
олгодог.</para>
|
||
|
||
<para>&man.mac.biba.4; аюулгүй байдлын бодлогын модуль нь аль файлууд
|
||
болон програмуудыг хэрэглэгч эсвэл хэрэглэгчид харах ёстойг заахыг администраторт
|
||
зөвшөөрч програмууд болон файлууд нь аюул заналаас ангид бөгөөд тэр хэрэглэгч,
|
||
эсвэл хэрэглэгчдийн бүлгийн хувьд системээр итгэгдсэн гэдгийг баталгаажуулж
|
||
дууддаг.</para>
|
||
|
||
<para>Эхний төлөвлөлтийн үеэр администратор зэргүүд, түвшингүүд
|
||
болон бүсүүдэд хэрэглэгчдийг хуваахад бэлдэх ёстой. Хэрэглэгчдийн хувьд зөвхөн
|
||
өгөгдлөөс гадна бас програмууд болон хэрэгслүүдэд тэдгээрийг эхлэхээс өмнө болон
|
||
тэдгээрийг эхлүүлсний дараа тэдгээрт хандах хандалт хаагдсан байх болно.
|
||
Энэ бодлогын модуль идэвхжүүлэгдсэний дараа систем өндөр хаяг/шошго уруу
|
||
анхдагчаар шилжих бөгөөд хэрэглэгчдийн хувьд өөр зэргүүд болон түвшингүүдийг
|
||
тохируулах нь администраторын хэрэг юм. Цэвэрлэгээний түвшингүүдийг
|
||
дээр тайлбарласны дагуу ашиглахын оронд сайн төлөвлөх арга нь сэдвүүдийг
|
||
оруулж болох юм. Жишээ нь эх кодын архив, эх код эмхэтгэгч болон бусад хөгжүүлэлтийн
|
||
хэрэгслүүдэд өөрчлөх хандалтыг зөвхөн хөгжүүлэгчдэд зөвшөөрөх байж болно.
|
||
Тэгээд бусад хэрэглэгчдийг тест хийгчид, дизайн хийгчид эсвэл зүгээр л энгийн
|
||
хэрэглэгчид зэрэг өөр зэрэглэлд бүлэглэж зөвхөн унших хандалтыг зөвшөөрөх
|
||
юм.</para>
|
||
|
||
<para>Цаанаасаа хийгдсэн аюулгүй байдлын хяналтаас болоод
|
||
доод түвшний бүрэн бүтэн байдлын субьект нь дээд түвшний бүрэн бүтэн байдлын
|
||
субьект уруу бичиж чаддаггүй; дээд түвшний бүрэн бүтэн байдлын субьект нь доод
|
||
түвшний бүрэн бүтэн байдлын обьектийг ажиглаж эсвэл уншиж чаддаггүй.
|
||
Хамгийн доод боломжит зэрэгт хаяг/шошгыг тохируулах нь субьектуудыг түүнд
|
||
хандах боломжгүй болгож болох юм. Энэ аюулгүй байдлын бодлогын модулийн
|
||
зарим хэтийн орчнуудад хүчилсэн вэб сервэр, хөгжүүлэлтийн болон тестийн машин,
|
||
болон эх кодын архив зэрэг орж болох юм. Тийм ч ашигтай бус шийдэлд
|
||
персонал ажлын станц, чиглүүлэгч маягаар ашиглагдаж байгаа машин эсвэл
|
||
сүлжээний галт хана зэрэг байж болох юм.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-lomac">
|
||
<title>MAC LOMAC модуль</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC LOMAC</primary>
|
||
</indexterm>
|
||
<para>Модулийн нэр: <filename>mac_lomac.ko</filename></para>
|
||
|
||
<para>Цөмийн тохиргооны файл: <literal>options MAC_LOMAC</literal></para>
|
||
<para>Ачаалалтын тохируулга: <literal>mac_lomac_load="YES"</literal></para>
|
||
|
||
<para><acronym>MAC</acronym> Biba бодлогоос ондоо нь &man.mac.lomac.4;
|
||
бодлого нь бүрэн бүтэн байдлын дүрмүүдийг эвдэхгүйн тулд бүрэн бүтэн байдлын
|
||
түвшинг заавал багасгасны дараа бүрэн бүтэн байдлын хувьд доор орших обьект уруу
|
||
хандахыг зөвшөөрдөг.</para>
|
||
|
||
<para>Low-watermark integrity policy буюу доод түвшний бүрэн бүтэн байдлын
|
||
<acronym>MAC</acronym> хувилбарыг хуучин &man.lomac.4;-ийн
|
||
шийдэлтэй эндүүрч болохгүй бөгөөд энэ хувилбар нь Biba-тай бараг л төстэй ажилладаг
|
||
боловч ялгаатай тал нь субьектийн бууруулалтыг туслах зэргийн тасалгааны тусламжтай
|
||
дэмжихийн тулд хөвөгч хаяг/шошгуудыг ашигладаг явдал юм. Энэ хоёр дахь тасалгаа нь
|
||
<literal>[auxgrade]</literal> хэлбэрийг авдаг. lomac бодлогыг
|
||
туслах зэргээр зааж өгөх үед энэ нь иймэрхүү харагдах ёстой:
|
||
<literal>lomac/10[2]</literal>. Энд байгаа хоёр (2) гэсэн тоо нь туслах
|
||
зэрэг юм.</para>
|
||
|
||
<para><acronym>MAC</acronym> LOMAC бодлого нь бүрэн бүтэн байдлын
|
||
хаяг/шошгоор бүх системийн обьектуудыг хаа сайгүй хаяглах явдалд
|
||
тулгуурладаг бөгөөд субьектуудад бүрэн бүтэн байдлын хувьд доор орших обьектуудаас
|
||
уншихыг зөвшөөрч дараа нь өндөр бүрэн бүтэн байдал бүхий обьектуудад
|
||
ирээдүйд хийгдэж болзошгүй бичилтүүдээс урьдчилан сэргийлэхийн тулд субьект
|
||
дээрх хаяг/шошгыг доошлуулж бууруулдаг. Энэ нь дээр хэлэлцэгдсэн
|
||
<literal>[auxgrade]</literal> тохируулга болохоор уг бодлого нь
|
||
илүү сайн нийцтэй байдлыг хангаж Biba-аас бага эхний тохиргоог шаардаж
|
||
болох юм.</para>
|
||
|
||
<sect2>
|
||
<title>Жишээнүүд</title>
|
||
|
||
<para>Biba болон <acronym>MLS</acronym> бодлогуудын нэгэн адил
|
||
<command>setfmac</command> болон <command>setpmac</command>
|
||
хэрэгслүүд системийн обьектууд дээр хаяг/шошгонууд байрлуулахад хэрэглэгдэж
|
||
болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfmac /usr/home/trhodes lomac/high[low]</userinput>
|
||
&prompt.root; <userinput>getfmac /usr/home/trhodes</userinput> lomac/high[low]</screen>
|
||
|
||
<para>Энд байгаа туслах зэрэг нь <literal>low</literal> буюу доор гэж
|
||
байгааг анзаараарай, энэ нь зөвхөн <acronym>MAC</acronym>
|
||
LOMAC бодлогын хангадаг боломж юм.</para>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-implementing">
|
||
<title>MAC Шорон дахь Nagios</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC Шорон дахь Nagios</primary>
|
||
</indexterm>
|
||
|
||
<para>Дараах нь зөв тохируулсан бодлогуудын хамтаар төрөл бүрийн
|
||
<acronym>MAC</acronym> модулиудыг ашиглан аюулгүй орчинг
|
||
үүсгэхийг харуулах болно. Энэ нь зөвхөн тест бөгөөд хүн бүгдийн
|
||
аюулгүй байдлын асуудалд бүрэн хариулт болно гэж тооцох ёсгүй
|
||
юм. Бодлогыг зөвхөн шийдэж түүнийг орхигдуулах нь хэзээ ч
|
||
ажиллахгүй бөгөөд жинхэнэ ажиллаж байгаа үйлдвэрлэлийн
|
||
орчинд сүйрлийн болж болох юм.</para>
|
||
|
||
<para>Энэ процессийг эхлүүлэхээсээ өмнө <literal>multilabel</literal>
|
||
тохируулга файлын систем бүр дээр энэ бүлгийн эхэнд дурдсаны дагуу
|
||
тавигдах ёстой. Ингэж хийхгүй бол алдаа гарах болно. Энд байхдаа
|
||
<filename role="package">net-mngt/nagios-plugins</filename>,
|
||
<filename role="package">net-mngt/nagios</filename>, болон
|
||
<filename role="package">www/apache13</filename> портууд
|
||
бүгд суулгагдаж тохируулагдаж зөв ажиллаж байгаа эсэхийг шалгаарай.</para>
|
||
|
||
<sect2>
|
||
<title>Хэрэглэгчийн insecure ангилал үүсгэнэ</title>
|
||
|
||
<para>Дараах хэрэглэгчийн ангиллыг <filename>/etc/login.conf</filename>
|
||
файлд нэмж:</para>
|
||
|
||
<programlisting>insecure:\
|
||
:copyright=/etc/COPYRIGHT:\
|
||
:welcome=/etc/motd:\
|
||
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
|
||
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
||
:manpath=/usr/share/man /usr/local/man:\
|
||
:nologin=/usr/sbin/nologin:\
|
||
:cputime=1h30m:\
|
||
:datasize=8M:\
|
||
:vmemoryuse=100M:\
|
||
:stacksize=2M:\
|
||
:memorylocked=4M:\
|
||
:memoryuse=8M:\
|
||
:filesize=8M:\
|
||
:coredumpsize=8M:\
|
||
:openfiles=24:\
|
||
:maxproc=32:\
|
||
:priority=0:\
|
||
:requirehome:\
|
||
:passwordtime=91d:\
|
||
:umask=022:\
|
||
:ignoretime@:\
|
||
:label=biba/10(10-10):</programlisting>
|
||
|
||
<para>мөн дараах мөрийг анхдагч хэрэглэгчийн ангилалд нэмж процедурыг эхэлнэ:</para>
|
||
|
||
<programlisting>:label=biba/high:</programlisting>
|
||
|
||
<para>Энэ хийгдсэний дараа мэдээллийн баазыг дахин бүтээхийн тулд
|
||
дараах тушаалыг ажиллуулах ёстой:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Ачаалалтын тохиргоо</title>
|
||
|
||
<para>Дахин ачаалах гэсний хэрэггүй, шаардлагатай модулиудыг
|
||
систем эхлүүлэхэд дуудахын тулд дараах мөрүүдийг
|
||
<filename>/boot/loader.conf</filename> файлд нэмнэ:</para>
|
||
|
||
<programlisting>mac_biba_load="YES"
|
||
mac_seeotheruids_load="YES"</programlisting>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Хэрэглэгчдийг тохируулна</title>
|
||
|
||
<para><username>root</username> хэрэглэгчийг анхдагч ангилалд
|
||
доор дурдсаныг ашиглан тохируулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen>
|
||
|
||
<para><username>root</username> эсвэл системийн хэрэглэгчид биш
|
||
бүх хэрэглэгчийн бүртгэлүүд одоо нэвтрэлийн ангилал шаардах болно.
|
||
Нэвтрэлтийн ангилал шаардлагатай, түүнгүй бол хэрэглэгчид &man.vi.1;
|
||
зэрэг нийтлэг тушаалд хандах боломжгүй болно.
|
||
Дараах <command>sh</command> скрипт үүнийг хийх болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput>
|
||
<userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen>
|
||
|
||
<para><username>nagios</username> болон <username>www</username>
|
||
хэрэглэгчдийг insecure ангилалд оруулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>pw usermod nagios -L insecure</userinput></screen>
|
||
<screen>&prompt.root; <userinput>pw usermod www -L insecure</userinput></screen>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Contexts буюу Сэдвийн файл үүсгэнэ</title>
|
||
|
||
<para>Сэдвийн файл нь одоо үүсгэгдсэн байх ёстой; дараах жишээ файлыг
|
||
<filename>/etc/policy.contexts</filename>-д
|
||
байрлуулах ёстой.</para>
|
||
|
||
<programlisting># This is the default BIBA policy for this system.
|
||
|
||
# System:
|
||
/var/run biba/equal
|
||
/var/run/* biba/equal
|
||
|
||
/dev biba/equal
|
||
/dev/* biba/equal
|
||
|
||
/var biba/equal
|
||
/var/spool biba/equal
|
||
/var/spool/* biba/equal
|
||
|
||
/var/log biba/equal
|
||
/var/log/* biba/equal
|
||
|
||
/tmp biba/equal
|
||
/tmp/* biba/equal
|
||
/var/tmp biba/equal
|
||
/var/tmp/* biba/equal
|
||
|
||
/var/spool/mqueue biba/equal
|
||
/var/spool/clientmqueue biba/equal
|
||
|
||
# For Nagios:
|
||
/usr/local/etc/nagios
|
||
/usr/local/etc/nagios/* biba/10
|
||
|
||
/var/spool/nagios biba/10
|
||
/var/spool/nagios/* biba/10
|
||
|
||
# For apache
|
||
/usr/local/etc/apache biba/10
|
||
/usr/local/etc/apache/* biba/10</programlisting>
|
||
|
||
<para>Энэ бодлого нь мэдээллийн урсгалд хязгаарлалтуудыг тавьж аюулгүй
|
||
байдлыг хангадаг. Энэ тусгайлсан тохиргооны хувьд хэрэглэгчид,
|
||
<username>root</username> болон бусад хэрэглэгчид
|
||
<application>Nagios</application> програмд хандахаар хэзээ ч
|
||
зөвшөөрөгдсөн байх ёсгүй. <application>Nagios</application>-ийн
|
||
тохиргооны файлууд болон процессууд нь бүр мөсөн өөртөө багтсан буюу
|
||
шоронд хийгдсэн байх болно.</para>
|
||
|
||
<para>Одоо энэ файлыг өөрийн систем уруу уншуулахдаа дараах тушаалыг
|
||
ажиллуулна:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput>
|
||
&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput></screen>
|
||
|
||
<note>
|
||
<para>Дээрх файлын системийн байршил орчноосоо хамааран өөр байж
|
||
болно; гэхдээ үүнийг файлын систем бүр дээр ажиллуулах
|
||
ёстой.</para>
|
||
</note>
|
||
|
||
<para><filename>/etc/mac.conf</filename> файл гол хэсэгт
|
||
дараах өөрчлөлтүүдийг шаарддаг:</para>
|
||
|
||
<programlisting>default_labels file ?biba
|
||
default_labels ifnet ?biba
|
||
default_labels process ?biba
|
||
default_labels socket ?biba</programlisting>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Сүлжээг идэвхжүүлнэ</title>
|
||
|
||
<para>Дараах мөрийг <filename>/boot/loader.conf</filename>-д
|
||
нэмнэ:</para>
|
||
|
||
<programlisting>security.mac.biba.trust_all_interfaces=1</programlisting>
|
||
|
||
<para>Тэгээд дараа нь доор дурдсаныг <filename>rc.conf</filename> файлд
|
||
хадгалагдсан сүлжээний картны тохиргоонд нэмнэ. Хэрэв анхдагч Интернэтийн
|
||
тохиргоо <acronym>DHCP</acronym>-ээр хийгдсэн бол системийг
|
||
ачаалах болгоны дараа үүнийг гараараа тохируулах хэрэгтэй болох юм:</para>
|
||
|
||
<programlisting>maclabel biba/equal</programlisting>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Тохиргоог тест хийх нь</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC Тохиргоог тест хийх нь</primary>
|
||
</indexterm>
|
||
|
||
<para>Вэб сервер болон <application>Nagios</application>
|
||
нь системийг эхлүүлэхэд ажиллахааргүй байгаа эсэхийг шалгаад дахин ачаална.
|
||
<username>root</username> хэрэглэгч <application>Nagios</application>-ийн
|
||
тохиргооны сан дахь ямар ч файлд хандаж чадах ёсгүйг баталгаажуулна.
|
||
Хэрэв <username>root</username> нь <filename>/var/spool/nagios</filename>-д
|
||
&man.ls.1;-ийг ажиллуулж чадаж байвал ямар нэг юм буруу байна гэсэн үг.
|
||
Зөв бол <quote>permission denied</quote> алдаа буцаагдах
|
||
ёстой.</para>
|
||
|
||
<para>Хэрэв бүгд зүгээр юм шиг санагдвал <application>Nagios</application>,
|
||
<application>Apache</application>, болон
|
||
<application>Sendmail</application>-ийг одоо аюулгүй байдлын бодлогод
|
||
тааруулж ажиллуулж болно. Үүнийг дараах тушаал хийх болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /etc/mail && make stop && \
|
||
setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \
|
||
setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen>
|
||
|
||
<para>Бүгд зөв ажиллаж байгаа эсэхийг баталгаажуулж дахин
|
||
шалгаарай. Хэрэв үгүй бол бүртгэлийн файлуудаас алдааны мэдэгдлүүд байгаа эсэхийг
|
||
шалгана. &man.sysctl.8; хэрэгсэл ашиглаж &man.mac.biba.4; аюулгүй байдлын
|
||
бодлогын модулийн үйлчлэлийг хааж бүгдийг эхнээс нь эхлэхийг
|
||
оролдоорой.</para>
|
||
|
||
<note>
|
||
<para><username>root</username> хэрэглэгч аюулгүй байдлын үйлчлэлийг өөрчилж
|
||
тохиргооны файлыг айлгүйгээр засварлаж чадна. Дараах тушаал нь шинээр үүсгэсэн
|
||
бүрхүүлийн хувьд аюулгүй байдлын бодлогыг доод зэрэг уруу орж буурахыг
|
||
зөвшөөрөх болно:</para>
|
||
|
||
<screen>&prompt.root; <userinput>setpmac biba/10 csh</userinput></screen>
|
||
|
||
<para>Үүнийг болгохгүй байлгахын тулд &man.login.conf.5;-оор
|
||
хэрэглэгчийг хүрээнд оруулна. Хэрэв &man.setpmac.8; тушаалыг
|
||
тасалгааных нь хүрээнээс гадна ажиллуулах гэж оролдвол алдаа буцаагдах
|
||
бөгөөд тушаал ажиллахгүй байх болно. Энэ тохиолдолд root-ийг
|
||
<literal>biba/high(high-high)</literal> болгож
|
||
тохируулна.</para>
|
||
</note>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-userlocked">
|
||
<title>Хэрэглэгчийг түгжих</title>
|
||
|
||
<para>Энэ жишээ нь харьцангуй жижиг, тавиас бага хэрэглэгчтэй хадгалалтын
|
||
системийг авч үздэг. Хэрэглэгчид нь нэвтрэлтийн боломжуудтай байх
|
||
бөгөөд тэдэнд зөвхөн өгөгдөл биш бас хандалтын эх үүсвэрүүдийг хадгалахыг
|
||
зөвшөөрнө.</para>
|
||
|
||
<para>Энэ тохиолдолд &man.mac.bsdextended.4; нь
|
||
&man.mac.seeotheruids.4;-тэй холилдон оршиж болох бөгөөд
|
||
системийн обьектуудад хандахыг хаагаад зогсохгүй бас хэрэглэгчийн
|
||
процессийг нуух хандалтыг бас хаадаг.
|
||
|
||
<para>Дараах мөрүүдийг <filename>/boot/loader.conf</filename>
|
||
файлд нэмж эхэлнэ:</para>
|
||
|
||
<programlisting>mac_seeotheruids_enabled="YES"</programlisting>
|
||
|
||
<para>&man.mac.bsdextended.4; аюулгүй байдлын бодлогын модулийг
|
||
дараах rc.conf хувьсагчийг хэрэглэн идэвхтэй болгож болно:</para>
|
||
|
||
<programlisting>ugidfw_enable="YES"</programlisting>
|
||
|
||
<para><filename>/etc/rc.bsdextended</filename> файлд хадгалагдах
|
||
анхдагч дүрмүүд нь системийг эхлүүлэхэд дуудагдана. Гэхдээ анхдагч оруулгууд нь
|
||
өөрчлөлтүүд шаардаж болох юм. Энэ машин нь зөвхөн хэрэглэгчдэд үйлчлэхээр
|
||
зориулагдсан болохоор сүүлийн хоёроос бусдыг хааж тайлбар болгон үлдээж
|
||
болох юм. Сүүлийн хоёр нь анхдагчаар хэрэглэгчийн эзэмших системийн обьектуудыг
|
||
дуудуулах болно.</para>
|
||
|
||
<para>Шаардлагатай хэрэглэгчдийг энэ машин уруу нэмээд дахин ачаална.
|
||
Тест хийх зорилгоор хоёр консол дээр өөр хэрэглэгчээр нэвтрэхийг
|
||
оролдоорой. Бусад хэрэглэгчдийн процессууд харж болохоор байгаа эсэхийг харахын
|
||
тулд <command>ps aux</command> тушаалыг ажиллуулна.
|
||
&man.ls.1;-ийг нөгөө хэрэглэгчийн гэрийн сан дээр ажиллуулахыг оролдоорой,
|
||
энэ нь амжилтгүй болох болно.</para>
|
||
|
||
<para>Супер хэрэглэгчийн хандалтыг хаахын тулд ашигладаг тусгай
|
||
<command>sysctl</command>-уудыг өөрчлөхөөс бусад тохиолдолд
|
||
<username>root</username> хэрэглэгчээр тест битгий хийгээрэй.</para>
|
||
|
||
<note>
|
||
<para>Шинэ хэрэглэгч нэмэгдэхэд тэдгээрийн &man.mac.bsdextended.4;
|
||
дүрмүүд дүрмийн олонлогийн жагсаалтад байхгүй байна. Дүрмийн олонлогийг
|
||
хурдан шинэчлэхийн тулд &man.kldunload.8; болон &man.kldload.8;
|
||
хэрэгслүүдийг ашиглан аюулгүй байдлын бодлогын модулийг буулгаж дараа нь
|
||
түүнийг дахин ачаалж хийнэ.</para>
|
||
</note>
|
||
</sect1>
|
||
|
||
<sect1 id="mac-troubleshoot">
|
||
<title>MAC Тогтолцооны алдааг олж засварлах</title>
|
||
|
||
<indexterm>
|
||
<primary>MAC алдааг олж засварлах</primary>
|
||
</indexterm>
|
||
|
||
<para>Хөгжүүлэлтийн явцад цөөн хэрэглэгчид энгийн тохируулга дээр асуудлууд
|
||
гарснаа мэдээлсэн. Эдгээр асуудлуудын заримыг доор
|
||
жагсаав:</para>
|
||
|
||
<sect2>
|
||
<title><option>multilabel</option> тохируулгыг <filename>/</filename>
|
||
дээр идэвхжүүлж болохгүй байна</title>
|
||
|
||
<para><option>multilabel</option> туг миний root
|
||
(<filename>/</filename>) хуваалтан дээр идэвхтэй болохгүй байна!</para>
|
||
|
||
|
||
<para>50 хэрэглэгч тутмын нэг нь ийм асуудалтай байдаг бололтой, харин бид
|
||
энэ асуудалтай эхний тохиргооны үеэр тулгарсан. <quote>bug</quote>
|
||
буюу "цох" гэж нэрлэгдэх үүний цаадах ажиглалт нь үүнийг буруу баримтжуулалт
|
||
эсвэл баримтын буруу тайлбарлалтын үр дүн гэж намайг итгэхэд хүргэсэн.
|
||
Энэ яагаад болсноос үл хамааран үүнийг шийдэхийн тулд дараах алхмуудыг
|
||
хийж болох юм:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para><filename>/etc/fstab</filename>-ийг засварлаж
|
||
root хуваалтыг зөвхөн унших зорилгоор <option>ro</option> гэж
|
||
тохируулна.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Ганц хэрэглэгчийн горимд дахин ачаална.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para><command>tunefs</command> <option>-l enable</option>
|
||
тушаалыг <filename>/</filename> дээр ажиллуулна.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Системийг энгийн горимд дахин ачаална.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para><command>mount</command> <option>-urw</option>
|
||
<filename>/</filename> тушаалыг ажиллуулж <option>ro</option>
|
||
тохируулгыг <option>rw</option> болгож <filename>/etc/fstab</filename>
|
||
файлд өөрчлөн системийг дахин ачаална.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>root файлын систем дээр <option>multilabel</option>
|
||
тохируулга зөв тохируулагдсаныг баталгаажуулж <command>mount</command>
|
||
тушаалын гаралтыг дахин шалгаарай.</para>
|
||
</step>
|
||
</procedure>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title><acronym>MAC</acronym>-ийн дараа X11 серверийг эхлүүлж
|
||
чадахгүй байна</title>
|
||
|
||
<para><acronym>MAC</acronym>-ийн тусламжтай аюулгүй орчинг
|
||
үүсгэсний дараа би X-ийг дахиж эхлүүлж чадахаа больчихлоо!</para>
|
||
|
||
<para>Энэ нь <acronym>MAC</acronym>
|
||
<literal>хуваалт</literal>ын бодлого эсвэл
|
||
<acronym>MAC</acronym> хаяглалтын бодлогуудын аль нэгний
|
||
буруу хаяглалтаас болсон байж болох юм. Дибаг хийхийн тулд доор дурдсаныг
|
||
оролдоод үзээрэй:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Алдааны мэдэгдлийг шалгана; хэрэв хэрэглэгч
|
||
<literal>insecure</literal> ангилалд байгаа бол
|
||
<literal>хуваалт</literal>ын бодлого гэмтэн байж болох юм.
|
||
Хэрэглэгчийн ангиллыг <literal>default</literal> буюу
|
||
анхдагч ангилал уруу тохируулж мэдээллийн баазыг
|
||
<command>cap_mkdb</command> тушаалын тусламжтай дахин бүтээх
|
||
хэрэгтэй. Хэрэв энэ нь асуудлыг арилгаж чадахгүй байгаа бол
|
||
хоёрдугаар алхам уруу ор.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Хаяг/шошгоны бодлогуудыг давхар шалгаарай. Асуудалтай
|
||
байгаа хэрэглэгч, X11 програм болон <filename class="directory">/dev</filename>
|
||
оруулгуудын хувьд бодлогууд зөв заагдсан эсэхийг
|
||
баталгаажуулаарай.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Хэрэв эдгээрийн аль нь ч асуудлыг тань шийдэхгүй бол
|
||
<ulink url="http://www.TrustedBSD.org">TrustedBSD</ulink>
|
||
вэб сайтад байрлах TrustedBSD-ийн хэлэлцүүлгийн жагсаалтууд эсвэл
|
||
&a.questions; захидлын жагсаалт уруу алдааны мэдэгдэл
|
||
болон өөрийн орчны тухай мэдээллийг илгээгээрэй.</para>
|
||
</step>
|
||
</procedure>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title>Error: &man..secure.path.3; cannot stat <filename>.login_conf</filename></title>
|
||
|
||
<para>Намайг <username>root</username>-ээс систем дээрх өөр хэрэглэгч уруу
|
||
шилжихийг оролдох үед
|
||
<errorname>_secure_path: unable to state .login_conf</errorname>
|
||
гэсэн алдаа гараад байна.</para>
|
||
|
||
<para>Энэ мэдэгдэл нь тэр болох гэж байгаа хэрэглэгчийн хаяг/шошгоны тохиргооноос
|
||
хэрэглэгчийн өөрийнх нь тохиргоо өндөр байгааг ихэвчлэн үзүүлдэг.
|
||
Жишээ нь систем дээрх хэрэглэгч <username>joe</username> анхдагч
|
||
<option>biba/low</option> гэсэн хаяг/шошготой байна гэж бодъё.
|
||
<option>biba/high</option> хаяг/шошготой <username>root</username>
|
||
хэрэглэгч <username>joe</username>-ийн гэр санг харж чадахгүй.
|
||
Энэ нь <username>root</username> хэрэглэгч <command>su</command>
|
||
тушаал ашиглан <username>joe</username> болсон ч гэсэн болохгүй байна.
|
||
Энэ тохиолдолд Biba бүрэн бүтэн байдлын загвар нь <username>root</username>
|
||
хэрэглэгчийг бүрэн бүтэн байдлын доод түвшин тохируулагдсан обьектуудыг
|
||
харахыг зөвшөөрөхгүй байх болно.</para>
|
||
</sect2>
|
||
|
||
<sect2>
|
||
<title><username>root</username> хэрэглэгчийн нэр эвдэрсэн байна!</title>
|
||
|
||
<para>Энгийн эсвэл бүр ганц хэрэглэгчийн горимд <username>root</username>
|
||
хэрэглэгч танигддаггүй. <command>whoami</command> тушаал
|
||
0 (тэг) буцаах бөгөөд <command>su</command> тушаал
|
||
<errorname>who are you?</errorname> гэсэн алдааны мэдэгдлийг
|
||
буцаадаг. Юу болоод байгаа юм бол оо?</para>
|
||
|
||
<para>Энэ нь хаяглах бодлого &man.sysctl.8;-оор хаагдсан эсвэл
|
||
бодлогын модулийг буулгаснаас болдог. Хэрэв бодлого хаагдсан эсвэл
|
||
түр зуур хаагдсан бол <option>label</option> тохируулгыг арилган
|
||
нэвтрэлтийн боломжуудын мэдээллийн баазыг дахин тохируулах
|
||
хэрэгтэй. Бүх <option>label</option> тохируулгууд арилсан эсэхийг
|
||
баталгаажуулж <filename>login.conf</filename> файлаа дахин
|
||
шалгаж мэдээллийн баазаа <command>cap_mkdb</command>
|
||
тушаалаар дахин бүтээх хэрэгтэй.</para>
|
||
|
||
<para>Энэ нь <filename>master.passwd</filename> файлд
|
||
эсвэл мэдээллийн баазад хандах хандалтыг бодлого хязгаарласнаас болоод
|
||
бас гарч болох юм. Системд ашиглагдаж байгаа ерөнхий бодлоготой
|
||
зөрчилдөх хаяг/шошгоны доор администратор файлыг өөрчлөхөд ихэвчлэн
|
||
ингэдэг. Ийм тохиолдлуудад хэрэглэгчийн мэдээллийг систем унших
|
||
бөгөөд файл нь шинэ хаяг/шошго удамшин авсан болохоор хандалт хаалттай
|
||
байх болно. Бодлогыг &man.sysctl.8;-ий тусламжтай хаах хэрэгтэй.
|
||
Ингэхэд бүх зүйлс хэвийндээ эргэн орох болно.</para>
|
||
</sect2>
|
||
</sect1>
|
||
</chapter>
|
||
|
||
<!--
|
||
Local Variables:
|
||
mode: sgml
|
||
sgml-declaration: "../chapter.decl"
|
||
sgml-indent-data: t
|
||
sgml-omittag: nil
|
||
sgml-always-quote-attributes: t
|
||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||
End:
|
||
-->
|