aboutsummaryrefslogtreecommitdiff
path: root/mn_MN.UTF-8/books/handbook/mac/chapter.sgml
blob: e613d022677bb82e4b354525ab737ecde679e30c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
     The FreeBSD Mongolian Documentation Project

     Original revision 1.80

     $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;&nbsp;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>
      </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.&lt;policyname&gt;</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>

      <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>
	</sect2>
  </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/apache22</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 &gt;= 1001) &amp;&amp; ($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 &amp;&amp; make stop &amp;&amp; \
setpmac biba/equal make start &amp;&amp; setpmac biba/10\(10-10\) apachectl start &amp;&amp; \
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>

    <para>Дараах мөрийг <filename>/boot/loader.conf</filename> 
	файлд нэмж эхэлнэ:</para>

    <programlisting>mac_seeotheruids_load="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:
-->