diff --git a/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml b/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
index dd851aedfa..325dd5dac9 100644
--- a/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
@@ -1,3082 +1,3052 @@
Жозеф Ж.
Баарбиш
Хувь нэмэр болгон оруулсан
Брэд
Дэйвис
SGML уруу хөрвүүлж шинэчилсэн
Лодойсамбын
Баянзул
Орчуулсан
Галт хана
Галт хана
аюулгүй байдал
галт хана
Танилцуулга
Галт ханын тусламжтайгаар систем уруу орж байгаа болон түүнээс гарч байгаа өгөгдлийн урсгалыг шүүн нэвтрүүлэх боломжтой болдог.
Галт хана нь сүлжээгээр дамжин өнгөрч байгаа пакетуудыг, дүрмүүдэд
заасны дагуу эсвэл нэвтрүүлэх, эсвэл хаах үүргийг гүйцэтгэдэг.
Галт ханын дүрмүүд нь пакетийг протоколын төрөл, эхлэл хост хаяг, очих хост хаяг, эхлэл порт хаяг, очих порт хаяг зэрэг хэд хэдэн шинжээр нь шинжлэх боломжийг олгодог.
Галт ханыг ашигласнаар тухайн хостын болон сүлжээний аюулгүй байдлыг нилээд нэмэгдүүлж чадна. Галт ханын тусламжтайгаар дараах зүйлсийг хийх боломжтой :
Дотоод сүлжээнд байрлаж байгаа сервер машин, түүн дээр ажиллаж байгаа програм үйлчилгээг Интернэтээр дамжин орж ирж буй гадны урсгалаас хамгаалах, тусгаарлах.
Дотоод сүлжээнд байрлаж байгаа хостоос Интернэт уруу хандах хандалтыг хаах, хязгаарлах.
Network address translation буюу Сүлжээний Хаягийн Хөрвүүлэлтийг
(NAT) дэмжих. Өөрөөр хэлбэл дотоод сүлжээндээ хувийн IP хаяг хэрэглэж,
Интернэтэд гарахдаа дундаа нэг холболтыг (нэг IP хаяг эсвэл автоматаар оноосон бүлэг хаягаар) хуваан хэрэглэх.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
пакетийг шүүн нэвтрүүлэх дүрмүүдийг хэрхэн оновчтойгоор тодорхойлох.
&os;-тэй хамт суусан галт ханануудын ялгаа.
OpenBSD-н
PF галт ханыг хэрхэн тохируулах болон хэрэглэх.
IPFILTER-г хэрхэн тохируулах болон хэрэглэх.
IPFW-г хэрхэн тохируулах болон хэрэглэх.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдсэн байх шаардлагатай:
&os; болон Интернэтийн тухай үндсэн ойлголт.
Галт ханын тухай ойлголтууд
галт хана
дүрмүүд
Галт ханын дүрмүүдийг дараах үндсэн хоёр янзаар үүсгэж болно:
inclusive буюу хамааруулсан
эсвэл exclusive буюу хамааруулаагүй
.
Хамааруулаагүй галт хана нь дүрмэнд тохирсон урсгалаас бусдыг нэвтрүүлнэ. Харин хамааруулсан галт хана бол эсрэгээр нь,
дүрмэнд тохирсон урсгалыг нэвтрүүлж бусдыг хаана.
- Болохгүй урсгалыг галт ханаар нэвтрүүлэх эрсдэлийг
+ Хамааруулсан галт хана нь Интернэтэд үйлчилгээнүүдийг санал
+ болгодог системүүдийн хувьд илүү сайн сонголт болдог бөгөөд гарч байгаа
+ урсгалыг илүү сайн хянах боломжийг олгодог. Энэ нь Интернэтээс таны хувийн
+ сүлжээ рүү хандах урсгалыг бас хянадаг. Дүрэмд харгалзаж тохирохгүй
+ бүх урсгалыг хааж бүртгэдэг.
+ Болохгүй урсгалыг галт ханаар нэвтрүүлэх эрсдэлийг
багасгадаг учраас хамааруулсан галт хана нь хамааруулаагүй
галт ханыг бодвол илүүтэйгээр аюулгүй байдлыг хангаж чаддаг.
+
+ Зааж хэлээгүй л бол энэ бүлгийн бүх тохиргоо болон дүрмүүд
+ нь хамааруулсан галт ханыг үүсгэдэг.
+
+
Төлөвт галт ханыг
ашиглан аюулгүй байдлыг цааш илүү сайжруулах боломжтой.
- Төлөвт галт хана нь галт ханаар дамжин тогтсон холболтуудыг бүртгэж,
+ Энэ төрлийн галт хана нь галт ханаар дамжин тогтсон холболтуудыг бүртгэж,
зөвхөн таарч байгаа тогтсон холболтоор эсвэл шинэ холболт үүсгэн урсгалыг нэвтрүүлдэг.
Төлөвт галт ханын нэг дутагдалтай тал гэвэл олон шинэ холболтууд нэг дор тогтох үед
Denial of Service буюу Үйлчилгээг Зогсоох(DoS) халдлагад өртөмтгий болдог. Иймээс галт ханыг
зохион байгуулахдаа төлөвт ба төлөвт-бус байдлыг хослуулан хэрэглэх нь хамгийн оновчтой байдаг.
Галт ханын багцууд
&os; дээр гурван янзын галт ханын багцууд хамрагдсан байдаг.
Нэрлэвэл: IPFILTER
(IPF гэж нэрлэх нь элбэг),
IPFIREWALL (IPFW гэж нэрлэх нь элбэг),
ба OpenBSD-н PacketFilter (PF гэж нэрлэх нь элбэг).
&os; нь мөн урсгалыг хязгаарлах(үндсэндээ зурвасын өргөнийг хязгаарлах) хоёр багцын хамт ирдэг:
&man.altq.4; болон &man.dummynet.4;. Dummynet нь анхнаасаа IPFW-тай, харин
ALTQ нь PF-тэй нягт холбоотой ажилладаг.
- IPFILTER-ийн хувьд урсгал хязгаарлалтыг хийхдээ
- NAT болон шүүлтэд IPFILTER-ийг ба
+ IPFILTER-ийн хувьд урсгал хязгаарлалтыг хийхдээ
+ NAT болон шүүлтэд IPFILTER-ийг ба
IPFW-ийг &man.dummynet.4;-тэй цуг юм уу
эсвэл PF-ийг
ALTQ-тай цуг ашиглан хийж болно.
IPFW, ба PF нь бүгд систем уруу орж байгаа болон гарч байгаа урсгалыг дүрмүүдийн тусламжтай удирдах боловч
синтаксын хувьд ч, арга замын хувьд ч өөр өөр байдаг.
&os; дээр олон галт ханын багцууд хамт ирдэг нь өөр өөр хэрэгцээ шаардлагатай хүмүүст
хүртээмжтэй байхыг гол зорилгоо болгосонд оршино. Түүнээс аль ч галт хана нь нөгөөгөөсөө илүү, эсвэл дутуу гэсэн үг биш юм.
Зохиогч IPFILTER-г сонгон авсан нь түүний төлөвт дүрмүүд нь
NAT орчинд хэрэглэхэд төвөг багатай, мөн
дотроо ftp proxy агуулсан байдгаас болсон хэрэг. Энэхүү ftp proxy-г ашиглан
гадагшаа гарах FTP урсгалыг зөвшөөрсөн дүрмүүдийг бичихэд хялбар байдаг.
Бүх галт ханууд пакет удирдах талбарын утгыг шинжлэх зарчмаар ажиллах тул
- галт ханын дүрмүүдийг бичихийн өмнө TCP/IP протокол хэрхэн
+ галт ханын дүрмүүдийг бичихийн өмнө TCP/IP протокол хэрхэн
ажилладаг талаар болон пакет удирдах талбарын утгууд, энэ утгууд session буюу сесс
үүсэхэд хэрхэн хэрэглэгддэг талаар үндсэн ойлголттой байх шаардлагатай болдог.
Дээрх ойлголтуудын талаар дараах хаягаар орж уншина уу:
.
Жон
Феррел
Хянан залруулж шинэчилсэн
OpenBSD Пакет шүүгч (PF) ба
ALTQ
галт хана
PF
2003 оны 7 сард OpenBSD-н галт ханын програм болох
PF &os; уруу шилжиж, &os; Портын Цуглуулгад
орсон. 2004 онд гарсан &os; 5.3 нь PF-г
үндсэн системийн багцын нэг хэсэг болгон оруулсан анхны хувилбар юм.
PF нь бүрэн хэмжээнд ажиллах чадвартай
галт хана бөгөөд ALTQ-тай (Alternate
Queuing буюу Ээлжлэн солигдох дараалал) хамтран ажиллах боломжтой. ALTQ нь
Quality of Service буюу Үйлчилгээний Чанарын (QoS)
боломжоор хангадаг.
OpenBSD Төсөл нь PF FAQ-г хөтлөн
явуулдаг.
Тиймээс гарын авлагын энэ хэсэг нь &os;-д хамаатай
PF дээр илүү анхаарлаа хандуулахахаас гадна
хэрэглээний талаар зарим нэг ерөнхий мэдээллийг өгнө. Хэрэглээний
мэдээллийн талаар илүү дэлгэрэнгүйг PF FAQ-с үзнэ үү.
&os;-д зориулсан PF-ийн талаар илүү дэлгэрэнгүй мэдээллийг
хаягаас үзэж болно.
Цөмийн дуудагдах PF модулийг ашиглах нь
&os; 5.3 хувилбараас эхлэн PF нь тусдаа ажиллуулж
болох дуудагдах боломжтой модул хэлбэрээр үндсэн суулгацад орсон байдаг.
&man.rc.conf.5;-ийн pf_enable="YES"
илэрхийлэл байхад систем нь цөмийн PF модулийг динамикаар дуудах болно.
Гэхдээ систем PF-ийн дүрмийн олонлогийн тохиргооны
файлыг олохгүй бол PF модул нь дуудагдахгүй.
Анхдагч байрлал нь /etc/pf.conf. Хэрэв таны
PF дүрмийн олонлог өөр хаа нэгтээ байгаа бол
байрлалыг зааж өгөхийн тулд pf_rules="/path/pf.rules"
гэж өөрийн /etc/rc.conf тохиргооны файлдаа
оруулж өгөх хэрэгтэй.
&os; 7.0-с эхлэн /etc/
санд байсан жишээ pf.conf файл /usr/share/examples/pf/ руу орсон болно.
7.0-с өмнөх &os;-ийн хувилбаруудад анхдагчаар /etc/pf.conf
байдаг.
PF модулийг тушаалын мөрөөс бас дуудан ажиллуулж
болно:
&prompt.root; kldload pf.ko
Дуудагдах модул нь бүртгэл хийх дэмжлэгийг хангадаг &man.pflog.4;
боломжтойгоор хийгдсэн байдаг. Хэрэв танд PF-ийн
өөр боломжууд хэрэгтэй бол PF-ийн дэмжлэгийг
цөмд оруулан эмхэтгэх хэрэгтэй.
PF цөмийн тохиргоонууд
цөмийн тохиргоонууд
pf төхөөрөмж
цөмийн тохиргоонууд
pflog төхөөрөмж
цөмийн тохиргоонууд
pfsync төхөөрөмж
PF дэмжлэгийг &os; цөмд оруулж эмхэтгэх нь
шаардлагагүй боловч дуудагдах модульд ороогүй байдаг PF-ийн нэмэлт
боломжуудын нэг бөгөөд PF-ийн ашигладаг төлвийн хүснэгтэд
зарим өөрчлөлтүүдийг ил гаргадаг псевдо төхөөрөмж болох &man.pfsync.4;
гэгддэг боломжийг ашиглахын тулд та тэгж хийж өгч болох юм. Үүнийг
&man.carp.4;-тэй хослуулан ажиллагаа доголдоход тойрон гарах галт ханаыг
PF ашиглан бүтээж болно. CARP-ийн
- талаар дэлгэрэнгүйг гарын авлагын бүлэг 29-с
+ талаар дэлгэрэнгүйг гарын авлагын -с
үзэж болно.
Цөмийн PF тохиргоонуудыг
/usr/src/sys/conf/NOTES-с олж болох бөгөөд
доор үзүүлэв:
device pf
device pflog
device pfsync
device pf тохиргоо Packet Filter
галт ханыг (&man.pf.4;) дэмждэг болгоно.
device pflog тохиргоо
псевдо буюу хуурамч &man.pflog.4; сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч
төхөөрөмжийн тусламжтайгаар &man.bpf.4; дескриптор уруу урсгалыг бүртгэх
боломжтой. &man.pflogd.8; дэмонг бүртгэлийг дискэн дээр хадгалахад хэрэглэнэ.
device pfsync тохиргоо
псевдо буюу хуурамч &man.pfsync.4; сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч
төхөөрөмжийн тусламжтайгаар төлвийн өөрчлөлтүүдийг
хянах боломжтой.
rc.conf боломжууд
Дараах &man.rc.conf.5; илэрхийллүүд
PF болон &man.pflog.4;-ийг ачаалах үед тохируулна:
pf_enable="YES" # Enable PF (load module if required)
pf_rules="/etc/pf.conf" # rules definition file for pf
pf_flags="" # additional flags for pfctl startup
pflog_enable="YES" # start pflogd(8)
pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
pflog_flags="" # additional flags for pflogd startup
Хэрвээ энэ галт ханын цаана LAN байгаа бөгөөд
LAN-д байгаа компьютерууд уруу пакет дамжуулах шаардлагатай бол эсвэл
NAT ашиглах бодолтой байгаа бол дараах илэрхийлэл танд бас хэрэгтэй:
gateway_enable="YES" # Enable as LAN gateway
Шүүгч дүрмүүдийг үүсгэх нь
PF нь &man.pf.conf.5;-с (анхдагчаар /etc/pf.conf)
өөрийн тохиргооны дүрмүүдийг унших бөгөөд тэнд заагдсан дүрмүүд буюу тодорхойлолтуудын
дагуу пакетуудыг өөрчлөх, орхих буюу эсвэл дамжуулдаг. &os; суулгацад
/usr/share/examples/pf/-д байрлах хэд хэдэн жишээ
файлууд байдаг. PF-ийн дүрмийн олонлогуудын талаар бүрэн мэдээллийг
PF FAQ-с
лавлана уу.
PF FAQ-г үзэж байхдаа
&os;-ийн хувилбар бүр өөр өөр PF хувилбартай болохыг анхаарна уу:
&os; 5.X —
PF нь OpenBSD 3.5-ынх
&os; 6.X —
PF нь OpenBSD 3.7-ынх
&os; 7.X —
PF нь OpenBSD 4.1-ынх
&a.pf; нь PF галт ханыг тохируулж ажиллуулах
талаар асуухад тохиромжтой газар юм. Асуулт асуухаасаа өмнө захидлын
жагсаалтын архиваас шалгахаа мартуузай!
PF-тэй ажиллах нь
PF-ийг хянахдаа &man.pfctl.8;-г ашиглана.
Зарим нэг хэрэгтэй тушаалуудыг доор жагсаав (Бүх боломжит тохиргоонуудын
талаар &man.pfctl.8; гарын авлагын хуудаснаас лавлахаа мартуузай):
Тушаал
Зорилго
pfctl
PF-г идэвхжүүлэх
pfctl
PF-г болиулах
pfctl all /etc/pf.conf
Бүх дүрмүүдийг арилгаж (nat, шүүх, төлөв, хүснэгт, гэх мэт.)
/etc/pf.conf файлаас дахин ачаалах
pfctl [ rules | nat | state ]
Шүүх дүрмүүд, nat дүрмүүд, эсвэл төлвийн хүснэгтийн талаар тайлан гаргах
pfctl /etc/pf.conf
Дүрмийн олонлогийг ачаалалгүйгээр /etc/pf.conf-д
алдаа байгаа эсэхийг шалгах
ALTQ-г идэвхжүүлэх
ALTQ-г идэвхжүүлэх ганц арга зам бол түүний боломжуудыг
&os; цөмтэй хамт хөрвүүлэн эмхэтгэх юм. Мөн сүлжээний картын драйвер болгон ALTQ-г
дэмждэггүй тул өөрийн тань хэрэглэж буй &os; хувилбарын хувьд дэмжигддэг драйверуудын жагсаалтыг
&man.altq.4; гарын авлагын хуудаснаас үзнэ үү.
Дараах тохируулгууд
ALTQ-г идэвхжүүлж нэмэлт үүргүүдийг оруулдаг.
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
options ALTQ мөр ALTQ
-г бүхэлд нь идэвхжүүлнэ.
- options ALTQ_CBQ мөр Class Based Queuing
+ options ALTQ_CBQ мөр Class Based Queuing
буюу Ангиллаас Хамаарсан Дараалал Үүсгэх(CBQ) боломжийг идэвхжүүлнэ.
CBQ нь шүүгч дүрмүүд дээр үндэслэн урсгалуудад эрэмбэ тогтоох зорилгоор
зурвасын өргөнийг өөр өөр ангиллуудад болон дарааллуудад хуваах боломжийг олгоно.
- options ALTQ_RED мөр Random Early
- Detection буюу Санамсаргүй Эрт Илрүүлэлт(RED)-г идэвхжүүлнэ.
+ options ALTQ_RED мөр Random Early
+ Detection буюу Санамсаргүй Эрт Илрүүлэлт(RED)-г идэвхжүүлнэ.
RED-г сүлжээний даац хэтрэхээс сэргийлэхэд хэрэглэдэг.
RED дарааллын уртыг хэмжиж, түүнийг байх ёстой дээд ба
доод хэмжээтэй жиших байдлаар ажилладаг. Хэрэв дараалал дээд хэмжээнээс урт болбол
шинэ пакетууд орхигдох болно. Нэртэйгээ адилаар, RED нь холболтуудаас пакетийг
санамсаргүйгээр орхигдуулдаг.
- options ALTQ_RIO мөр нь Random Early
- Detection In and Out буюу Орох ба Гарах Санамсаргүй Эрт Илрүүлэлтийг идэвхжүүлнэ.
+ options ALTQ_RIO мөр нь Random Early
+ Detection In and Out буюу Орох ба Гарах Санамсаргүй Эрт Илрүүлэлтийг идэвхжүүлнэ.
options ALTQ_HFSC мөр нь
-Hierarchical Fair Service Curve Packet Scheduler буюу Үе давхаргат Зохимжит Үйлчилгээний Муруйн Пакет Хуваарилагчийг
+Hierarchical Fair Service Curve Packet Scheduler буюу Үе давхаргат Зохимжит Үйлчилгээний Муруйн Пакет Хуваарилагчийг
идэвхжүүлнэ. HFSC талаар илүү дэлгэрэнгүй мэдээллийг дараах хаягаас үзнэ үү:
.
- options ALTQ_PRIQ мөр нь Priority Queuing буюу Эрэмбэт Дараалал Үүсгэх
+ options ALTQ_PRIQ мөр нь Priority Queuing буюу Эрэмбэт Дараалал Үүсгэх
(PRIQ)-г идэвхжүүлнэ. PRIQ нь эрэмбэ өндөртэй дараалалд байгаа
урсгалыг эхэнд нэвтрүүлэх зарчмаар ажилладаг.
options ALTQ_NOPCC мөр нь ALTQ-г
SMP-тай хамт ажиллах боломжтой болгоно.
SMP системийн хувьд энэ боломжийг заавал идэвхжүүлэх хэрэгтэй.
IPFILTER (IPF) Галт хана
галт хана
IPFILTER
-
- Энэ хэсэг дээр үргэлжлүүлэн ажиллаж байна. Агуулга зарим хэсэгт буруу байхыг үгүйcгэхгүй.
-
-
IPFILTER-г зохиосон хүн бол Даррин Рид билээ. IPFILTER нь
үйлдлийн системээс хамааралгүй: нээлттэй эхийн програм бөгөөд
&os;, NetBSD, OpenBSD, &sunos;, HP/UX, ба &solaris; зэрэг олон үйлдлийн систем уруу
шилжүүлэгдсэн юм. IPFILTER эрчимтэй дэмжигдэж,
сайжруулсан хувилбарууд нь тогтмол гарсаар байгаа.
IPFILTER нь цөмийн талд ажиллах галт хана болон
NAT механизм дээр суурилсан бөгөөд түүнийг удирдах, хянахын тулд
хэрэглэгчийн интерфэйс програмыг ашиглана. Галт ханын дүрмүүдийг нэмэх болон хасахдаа
&man.ipf.8; хэрэгслийг хэрэглэнэ. NAT дүрмүүдийг
нэмэх болон хасахдаа &man.ipnat.1; хэрэгслийг хэрэглэнэ. &man.ipfstat.8; хэрэгсэл
нь IPFILTER-н цөмийн талд ажиллаж байгаа хэсгийн статистикийг хэвлэхэд зориулагдсан.
&man.ipmon.8; програм харин IPFILTER-н үйлдлүүдийг системийн бүртгэлийн файлд
бүртгэнэ.
IPF-г анх зохиохдоо сүүлд тохирсон дүрэм дийлнэ
гэсэн
логикийн дагуу бүтээсэн ба зөвхөн төлөвт-бус дүрмүүдийг ашигладаг байлаа.
Цаг хугацаа өнгөрөхөд IPF илүү хөгжиж, quick
тохируулга
болон төлөвт keep state
тохируулгуудыг агуулах болсон нь орчин үеийн
хэрэгцээ шаардлагад илүү нийцэх болжээ. IPF-н албан ёсны баримтжуулалтанд
хуучин уламжлалт дүрмүүдийг бичих параметрүүд болон файлтай ажиллах логикууд багтсан байдаг.
Харин шинэ функцуудыг нь зөвхөн нэмэлт боломж байдлаар оруулсан нь аюулгүй байдлыг хавьгүй
-илүү хангасан галт хана бий болгож байгаа тэднийг хэт доогуур тавьсан санагддаг.
+илүү хангасан аюулгүй галт хана бий болгож байгаа тэднийг хэт доогуур тавьсан санагддаг.
Энэ бүлэгт байгаа зааврууд нь quick
болон төлөвт keep state
тохируулгуудыг агуулсан дүрмүүдээс үндсэндээ бүрдсэн байгаа. Энэ бол хамааруулсан галт ханын дүрмүүдийг
бичих үндсэн арга барил юм.
-
-
- Хамааруулсан галт хана нь зөвхөн дүрмэнд тохирсон пакетуудыг нэвтрүүлнэ.
-Ийм маягаар галт ханын цаанаас Интернэт уруу ямар ямар үйлчилгээнүүд
-гарч болох болон эсрэгээр Интернэтээс дотоод сүлжээ уруу ямар ямар үйлчилгээнүүд нэвтэрч
-болохыг удирдах боломжтой. Эдгээрээс бусад бүх урсгалыг хааж, бүртгэдэг байхаар зохиогдсон
-байдаг. Хамааруулсан галт хана нь хамааруулаагүй галт ханаас аюулгүй байдлын хувьд
-хэд дахин илүү, тиймээс энд бид зөвхөн хамааруулсан галт ханын дүрмүүдийн талаар
-ярилцах болно.
-
Хуучин уламжлалт дүрмүүдтэй ажиллах аргуудын талаар дэлгэрэнгүй тайлбарыг:
ба хаягаар орж үзнэ үү.
IPF FAQ-г хаягаар орж үзнэ үү.
Нээлттэй эхийн IPFilter програмын захидлын жагсаалтын архивыг хаягаар орж үзнэ үү.
IPF-г идэвхжүүлэх
IPFILTER
идэвхжүүлэх
IPF нь &os; үндсэн суулгацтай хамт, ажиллах үеийн ачаалах боломжтой модуль байдлаар ирдэг.
-rc.conf тохиргооны файл дотор ipfilter_enable="YES" илэрхийлэл байгаа үед систем IPF цөмийн
+rc.conf тохиргооны файл дотор ipfilter_enable="YES" илэрхийлэл байгаа үед систем IPF цөмийн
модулийг динамикаар ачаална. Энэ ачаалах боломжтой модуль нь бүртгэх боломжтойгоор,
анхдагч default pass all тохируулгын хамт бүтээгдсэн байдаг. Анхдагч дүрмийг
block all болгохын тулд IPF-г цөмд эмхэтгэх шаардлага байхгүй. Зөвхөн
дүрмүүдийнхээ төгсгөлд бүгдийг хаах дүрмийг бичиж өгөхөд хангалттай.
Цөмийн тохируулгууд
цөмийн тохируулгууд
IPFILTER
цөмийн тохируулгууд
IPFILTER_LOG
цөмийн тохируулгууд
IPFILTER_DEFAULT_BLOCK
IPFILTER
цөмийн тохируулгууд
&os; цөм уруу дараах боломжуудыг эмхэтгэн IPF-г идэвхжүүлэх
албагүй боловч, суурь мэдлэг болгон энд үзүүллээ. IPF-г цөм уруу хөрвүүлэн
эмхэтгэснээр ачаалах боломжтой модулийг хэрэглэх боломжгүй болдог.
Цөмийн тохиргоон дахь жишээ IPF илэрхийллүүд
/usr/src/sys/conf/NOTES гэсэн цөмийн эх файлд
байх ба доор сийрүүлбэл:
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK
options IPFILTER мөр нь IPFILTER
галт ханыг идэвхжүүлнэ.
options IPFILTER_LOG мөр нь log
гэсэн түлхүүр үг орсон дүрмүүдийн хувьд урсгалыг ipl
пакет бүртгэх хуурамч—төхөөрөмж уруу бүртгэх боломжтой болгоно.
options IPFILTER_DEFAULT_BLOCK мөр нь
галт ханын pass дүрмэнд тохироогүй пакетийг
хаах анхдагч чанарыг зааж өгнө.
Эдгээр тохируулгууд нь зөвхөн тэдгээрийг тохируулан,
тусгайлан цөм бүтээж суулгасны дараа идэвхждэг.
rc.conf тохируулгууд
IPF-г систем ачаалах үед идэвхтэй болгохын тулд /etc/rc.conf дотор
дараах илэрхийллүүд байх ёстой:
ipfilter_enable="YES" # Start ipf firewall
ipfilter_rules="/etc/ipf.rules" # loads rules definition text file
ipmon_enable="YES" # Start IP monitor log
ipmon_flags="-Ds" # D = start as daemon
# s = log to syslog
# v = log tcp window, ack, seq
# n = map IP & port to names
Хэрэв энэ галт ханын цаана хувийн IP хаяг хэрэглэдэг LAN байгаа бол
NAT функцыг идэвхжүүлэхийн тулд дараах мөрүүдийг нэмэх хэрэгтэй:
gateway_enable="YES" # Enable as LAN gateway
ipnat_enable="YES" # Start ipnat function
ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat
IPF
ipf
- Таны бичсэн дүрмүүдийг ачаалахад ipf тушаалыг хэрэглэнэ. Ер нь бол
-та өөрийн дүрмүүдээс бүтсэн файлыг үүсгээд, түүнийгээ дээрх тушаалын ашиглан
+ Таны бичсэн дүрмүүдийг ачаалахад &man.ipf.8; тушаалыг хэрэглэнэ.
+Та өөрийн дүрмүүдээс бүтсэн файлыг үүсгээд, түүнийгээ дээрх тушаалын ашиглан
галт ханын одоо ажиллаж байгаа дотоод дүрмүүдтэй сольж тавьна гэсэн үг юм:
&prompt.root; ipf -Fa -f /etc/ipf.rules
нь бүх дотоод дүрмүүдийн хүснэгтийг цэвэрлэ гэсэн үг.
нь ачаалах дүрмүүдээ энэ файлаас унш гэсэн үг.
Ийм байдлаар та өөрийн хүссэн дүрмүүдийн файлыг үүсгээд,
дээрх IPF тушаалыг ажиллуулан системийг шинээр ачаалахгүйгээр
ажиллаж байгаа галт ханын дүрмүүдийг шинээр өөрчлөх боломжтой болж байна.
Дээрх аргаар галт ханын дүрмүүдийг хэдэн ч удаа сольж болох тул энэ арга нь
шинэ дүрмүүдийг туршихад тохиромжтой арга юм.
Энэ тушаалтай ажиллах боломжтой бусад тугуудын талаар
дэлгэрэнгүйг &man.ipf.8; заавар хуудаснаас үзнэ үү.
&man.ipf.8; тушаал дүрмүүдийн файлыг стандарт текст файл гэж
тооцдог. Симбол орлуулалттай скрипт байдлаар бичигдсэн файлыг ойлгохгүй.
Гэвч скрипт симбол орлуулалтын хүчийг ашиглан IPF дүрмүүдийг бүтээх
арга зам байгаа. Илүү дэлгэрэнгүй мэдээллийг
хэсгээс үзнэ үү.
IPFSTAT
ipfstat
IPFILTER
статистик
&man.ipfstat.8;-н анхдагч чанар бол галт ханыг хамгийн сүүлд асааснаас хойших,
эсвэл ipf -Z тушаалыг өгөн хуримтлуулагчийг хамгийн сүүлд тэглэснээс хойших
галт ханаар орж байгаа болон гарч байгаа пакетуудыг хэрэглэгчийн тодорхойлж өгсөн дүрмүүдээр
шүүсэн үр дүнд бий болсон статистик тоог гаргаж ирэн, дэлгэцэнд харуулах юм.
Дэлгэрэнгүйг &man.ipfstat.8; заавар хуудаснаас үзнэ үү.
&man.ipfstat.8; тушаалын анхдагч үр дүн дараах байдалтай байна:
input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
input packets logged: blocked 99286 passed 0
output packets logged: blocked 0 passed 0
packets logged: input 0 output 0
log failures: input 3898 output 0
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 169364 lost 0
packet state(out): kept 431395 lost 0
ICMP replies: 0 TCP RSTs sent: 0
Result cache hits(in): 1215208 (out): 1098963
IN Pullups succeeded: 2 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0)
Дотогшоо урсгалын хувьд ,
гадагшаа урсгалын хувьд тохируулгыг өгөхөд
кернелийн ашиглаж буй дүрмүүдийн жагсаалтыг гаргаж харуулна.
ipfstat -in нь дотогшоо урсгалын
дотоод дүрмүүдийн хүснэгтийг дүрмүүдийн дугаарын хамт харуулна.
ipfstat -on нь гадагшаа урсгалын
дотоод дүрмүүдийн хүснэгтийг дүрмүүдийн дугаарын хамт харуулна.
Үр дүн нь дараах байдалтай байна:
@1 pass out on xl0 from any to any
@2 block out on dc0 from any to any
@3 pass out quick on dc0 proto tcp/udp from any to any keep state
ipfstat -ih нь дотогшоо урсгалын
дотоод дүрмүүдийн хүснэгтийг дүрмүүдийн хэдэн удаа тохирсон тооны хамт харуулна.
ipfstat -oh нь гадагшаа урсгалын
дотоод дүрмүүдийн хүснэгтийг дүрмүүдийн хэдэн удаа тохирсон тооны хамт харуулна.
Үр дүн нь дараах байдалтай байна:
2451423 pass out on xl0 from any to any
354727 block out on dc0 from any to any
430918 pass out quick on dc0 proto tcp/udp from any to any keep state
ipfstat тушаалын хамгийн чухал функцуудын
нэг бол, &os;-н ажиллаж байгаа процессийн хүснэгтийг &man.top.1;
харуулдаг шиг төлвийн хүснэгтийг туг харуулдаг явдал юм.
Таны галт хана гадны халдлагад өртөх үед энэ функц түүнийг илрүүлэх, шинжлэх, халдлагад
оролцож буй пакетуудыг харах боломжийг олгоно. Нэмэлт дэд тугууд нь хяналт хийх
эхлэл болон очих IP хаяг, порт, эсвэл протоколыг сонгох боломжийг олгодог.
Дэлгэрэнгүйг &man.ipfstat.8; заавар хуудаснаас үзнэ үү.
IPMON
ipmon
IPFILTER
бүртгэл хөтлөлт
ipmon тушаал зохистой ажиллахын тулд цөмийн
-IPFILTER_LOG тохируулга идэвхжсэн байх ёстой. Энэ тушаал хоёр өөр горимд
+IPFILTER_LOG тохируулга идэвхжсэн байх ёстой. Энэ тушаал хоёр өөр горимд
ажиллах чадвартай. Төрөлх горим нь энэ тушаалыг тушаал мөрөн дээр
туггүйгээр оруулахад ажиллах анхдагч горим юм.
Демон горим нь болж өнгөрсөн үйл явцын бүртгэлийг эргэж харахын тулд
системийн бүртгэлийг тасралтгүй хөтлөн явуулахад тохиромжтой горим юм.
&os; болон IPFILTER энэ горимд ажиллахаар тохируулагдсан байдаг. &os;
-нь системийн бүртгэлийг автоматаар тойруулах чадвартай. Тиймээс бүртгэлийн мэдээллийг syslogd
+нь системийн бүртгэлийг автоматаар тойруулах чадвартай. Тиймээс бүртгэлийн мэдээллийг &man.syslogd.8;
процесс уруу гаргах нь энгийн файл уруу гаргах анхдагч аргаас дээр байдаг.
-Анхдагч rc.conf файл дотор ipmon_flags илэрхийлэл
- тугуудыг хэрэглэсэн байхыг олж харж болно:
+Анхдагч rc.conf файл дотор ipmon_flags илэрхийлэл
+ тугуудыг хэрэглэдэг:
ipmon_flags="-Ds" # D = start as daemon
# s = log to syslog
# v = log tcp window, ack, seq
# n = map IP & port to names
Бүртгэл хөтлөн явуулахын давуу талыг дурдахад илүүц биз.
Бүртгэлийн тусламжтай ямар пакетууд орхигдсон, тэдгээр пакетууд хаанаас ирсэн,
хаашаа явж байсан зэрэг мэдээллийг эргэн харах боломжтой болдог. Энэ бүх мэдээлэл
гадны халдлагыг мөрдөхөд чухал түлхэц болно.
Хэдийгээр бүртгэх боломжоор хангагдсан боловч, IPF дангаараа бүртгэлийг үүсгэж
чадахгүй. Галт ханын администратор аль дүрмийн бүртгэлийг бичихийг шийдэн, тэдгээр дүрмүүдэд
log түлхүүр үгийг нэмж өгнө. Ер нь, зөвхөн deny дүрмүүдийн бүртгэл бичигддэг.
Бүгдийг хориглосон анхдагч дүрмийг log түлхүүр үгийн хамт дүрмүүдийнхээ
-хамгийн төгсгөлд бичиж өгөх нь нилээд өргөн хэрэглэгддэг арга юм. Ийм байдлаар
+хамгийн төгсгөлд бичиж өгөх нь нилээд өргөн хэрэглэгддэг арга юм. Ингэснээр
таны дүрмүүдийн алинтай ч тохироогүй пакетуудыг мэдэх боломжтой болно.
IPMON бүртгэл хөтлөлт
Syslogd нь бүртгэлийн мэдээллийг дотор нь ангилах
өөрийн тусгай аргатай. facility
ба түвшин
гэсэн тусгай ангилалаар ялгадаг.
горимон дахь IPMON нь facility
-аар security-г
хэрэглэдэг. IPMON-ы бүх бүртгэлийн мэдээлэл security нэрийн дор бичигддэг. Хэрэв хүсвэл
доорх түвшнүүдийг ашиглан бүртгэгдсэн мэдээллийг илүү ангилж болно:
LOG_INFO - нэвтрүүлэх, хаахаас үл хамааран "log" түлхүүрийг үйлдэл ашиглан пакетуудыг бүртгэх.
LOG_NOTICE - нэвтэрсэн пакетуудыг бүртгэх.
LOG_WARNING - хаагдсан пакетуудыг бүртгэх.
LOG_ERR - бүртгэсэн пакетууд болон богино гэгдсэн пакетууд
IPFILTER-н бүх бүртгэлийн мэдээллийг /var/log/ipfilter.log
-файл дотор бичихийн тулд, та энэ файлыг эхлээд үүсгэх хэрэгтэй. Үүний тулд дараах
+файл дотор бичихийн тулд, файл эхлээд үүссэн байх хэрэгтэй. Үүний тулд дараах
тушаалыг өгөх хэрэгтэй:
&prompt.root; touch /var/log/ipfilter.log
- syslog-н функцуудыг /etc/syslog.conf файл доторх
+ &man.syslogd.8;-н функцуудыг /etc/syslog.conf файл доторх
тодорхойлох илэрхийллүүдээр удирдаж болно. syslog.conf файл нь
-IPF мэт програмуудын үүсгэсэн системийн мэдэгдлүүдтэй ажиллахад уян хатан болгодог.
+IPF мэт програмуудын үүсгэсэн системийн мэдэгдлүүдтэй syslog-г
+ ажиллахад уян хатан болгодог.
Дараах илэрхийллүүдийг /etc/syslog.conf файл дотор нэмж
бичнэ үү:
security.* /var/log/ipfilter.log
security.* нь бүх бүртгэгдсэн мэдэгдлүүдийг
дурдсан файлд бичихийг хэлж өгч байна.
/etc/syslog.conf файлд хийсэн өөрчлөлтүүдийг
идэвхжүүлэхийн тулд та системээ дахин ачаалах эсвэл /etc/rc.d/syslogd reload
-тушаалыг ашиглан syslog процессод /etc/syslog.conf файлыг дахин уншуулах
+тушаалыг ашиглан &man.syslogd.8; демонд /etc/syslog.conf файлыг дахин уншуулах
хэрэгтэй.
Дээр шинээр үүсгэсэн бүртгэлийг тойруулахын тулд
/etc/newsyslog.conf файл дотор өөрчлөлт оруулахаа мартуузай.
Бүртгэгдсэн мэдэгдлийн формат
ipmon-ы үүсгэсэн мэдэгдэл зайгаар тусгаарлагдсан
өгөгдлийн талбаруудаас бүрдэнэ. Бүх мэдэгдэлд байдаг гол талбарууд гэвэл:
Пакетийг хүлээж авсан огноо.
Пакетийг хүлээж авсан цаг. Цаг, минут, секунд, бутархай секундэд (олон орны нарийвчлалтай)
харгалзан HH:MM:SS.F форматтай байна.
Пакеттай ажилласан интерфэйсийн нэр, жишээлбэл dc0.
Дүрмийн бүлэг болон дүрмийн дугаар, жишээлбэл @0:17.
Эдгээрийг ipfstat-in тушаалын тусламжтай үзэж болно.
Үйлдэл: нэвтрүүлсэн бол р, хаасан бол b, богино пакет бол S,
аль ч дүрмэнд тохироогүй бол n, бүртгэх дүрэм бол L. Эдгээр тугуудыг дараах эрэмбээр харуулна:
S, p, b, n, L. Том P эсвэл B үсэг нь тухайн пакет ямар нэг дүрмээс биш, глобал тохиргооноос
хамааран бүртгэгдсэн болохыг заана.
Хаягууд. Үндсэндээ гурван талбар байна: эхлэл
хаяг болон порт (таслалаар тусгаарлагдсан), -> тэмдэг, ба очих хаяг болон порт.
-209.53.17.22,80 -> 198.73.220.17,1722.
+Жишээ нь 209.53.17.22,80 -> 198.73.220.17,1722.
- PR-н дараа протоколын нэр болон дугаар, жишээлбэл PR tcp.
+ PR-н дараа протоколын нэр болон дугаар, жишээлбэл PR tcp.
len-ы дараа толгойн урт болон
-пакетийн нийт урт, жишээлбэл len 20 40.
+пакетийн нийт урт, жишээлбэл len 20 40.
Хэрэв TCP пакет бол зураасаар эхэлж тугуудаар удаалсан
нэмэлт талбар байна. Үсгүүд болон түүнд харгалзах тугуудын талаар &man.ipmon.8; заавар
хуудаснаас үзнэ үү.
Хэрэв ICMP пакет бол, төгсгөлд нь хоёр талбар байна.
Эхнийх нь үргэлж ICMP
утгатай байна, дараагийнх нь налуу зураасаар тусгаарлагдсан
ICMP мэдэгдэл болон дэд мэдэгдлийн төрөл, жишээлбэл портод хандаж чадсангүй гэсэн мэдэгдлийн хувьд ICMP 3/3 байна.
Симбол орлуулалттай скриптийг үүсгэх нь
Зарим туршлагатай IPF хэрэглэгчид дүрмүүдийг агуулсан файл үүсгээд
түүнийгээ симбол орлуулалттай скрипт байдлаар ажиллуулах боломжтой болгон бичдэг.
-Үүний гол давуу тал нь та зөвхөн симбол нэрд харгалзах утгыг өөрчилбөл, скриптийг ажиллуулахад
+Үүний гол давуу тал нь зөвхөн симбол нэрд харгалзах утгыг өөрчлөх хэрэгтэй бөгөөд, скриптийг ажиллуулахад
уг симбол орлуулалт орсон дүрэм бүр шинэ утгыг авах болно. Скриптийн хувьд,
олон дахин хэрэглэгддэг утгуудыг бичихэд симбол орлуулалтыг ашиглаж, тэдгээрийг
олон дүрмэнд орлуулж өгнө гэсэн үг юм. Дараах жишээн дээрээс харна уу.
- Энд хэрэглэгдсэн скриптийн синтакс нь sh, csh, ба tcsh бүрхүүл дээр ажиллах
+ Энд хэрэглэгдсэн скриптийн синтакс нь &man.sh.1;, &man.csh.1;, ба &man.tcsh.1; бүрхүүл дээр ажиллах
боломжтой.
Симбол орлуулалтын талбарууд нь урдаа долларын тэмдэгтэй байна: $.
Симбол талбарууд нь $ тэмдэг урдаа байхгүй.
Симбол талбарыг орлох утга нь давхар хашилтан(") дотор байрлана.
Дүрмийн файлаа дараах байдалтай үүсгэж эхлэх хэрэгтэй:
############# Start of IPF rules script ########################
oif="dc0" # name of the outbound interface
odns="192.0.2.11" # ISP's DNS server IP address
myip="192.0.2.7" # my static IP address from ISP
ks="keep state"
fks="flags S keep state"
# You can choose between building /etc/ipf.rules file
# from this script or running this script "as is".
#
# Uncomment only one line and comment out another.
#
# 1) This can be used for building /etc/ipf.rules:
#cat > /etc/ipf.rules << EOF
#
# 2) This can be used to run script "as is":
/sbin/ipf -Fa -f - << EOF
# Allow out access to my ISP's Domain name server.
pass out quick on $oif proto tcp from any to $odns port = 53 $fks
pass out quick on $oif proto udp from any to $odns port = 53 $ks
# Allow out non-secure standard www function
pass out quick on $oif proto tcp from $myip to any port = 80 $fks
# Allow out secure www function https over TLS SSL
pass out quick on $oif proto tcp from $myip to any port = 443 $fks
EOF
################## End of IPF rules script ########################
Байх ёстой бүх зүйлс бүгд байна. Энэ жишээн дээр дүрмүүд чухал биш,
харин симбол орлуулалт хэрхэн ажилладгыг харуулсан байна. Хэрэв дээрх жишээ
/etc/ipf.rules.script нэртэй файл дотор байсан бол, эдгээр
дүрмүүдийг дараах тушаалыг өгч дахин ачаалах боломжтой:
&prompt.root; sh /etc/ipf.rules.script
Суулгагдсан симболтой дүрмийн файлыг хэрэглэхэд нэг асуудал тулгардаг:
IPF симбол орлуулалтыг ойлгохгүй, ийм скриптийг шууд уншиж чаддаггүй.
Дараах скриптийг хоёр аргын нэгээр хэрэглэж болно:
cat-р эхэлсэн мөрийг ил гарга, харин
/sbin/ipf-р эхэлсэн мөрүүдийг далдал. ipfilter_enable="YES"-г
/etc/rc.conf файл дотор байрлуул, дараа нь өөрчлөлт бүрийн дараа скриптийг
ажиллуулан /etc/ipf.rules файлыг үүсгэ эсвэл өөрчлөлт оруул.
/etc/rc.conf файл дотор ipfilter_enable="NO"
(энэ анхдагч утга) мөрийг нэмэн системийн эхлэл скриптэд IPFILTER-г идэвхгүй болго.
- Дээрхтэй адил скриптийг өөрийн /usr/local/etc/rc.d/ эхлэл хавтаст
+ Дээрхтэй адил скриптийг өөрийн /usr/local/etc/rc.d/ эхлэл хавтаст
байрлуул. Энэ скрипт ipf.loadrules.sh ч юм уу ойлгомжтой нэртэй байх ёстой.
.sh гэсэн өргөтгөлтэй байх ёстой.
#!/bin/sh
sh /etc/ipf.rules.script
Энэ скриптийн эрхүүд эзэмшигч root-н хувьд
унших, бичих, ажиллах эрхтэй байх ёстой.
&prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh
Одоо систем ачаалсны дараа таны IPF дүрмүүд ачаалагдсан байх болно.
IPF Дүрмүүдийн олонлог
-
-
Пакет дотор агуулагдаж байгаа утгуудыг үндэслэн тухайн пакетийг
-нэвтрүүлэх болон хаахыг хэлж байгаа дүрмүүдийг дүрмийн олонлог гэнэ. Хостуудын
-хоорондох хоёр чиглэлтэй пакет солилцоо нь сесс харилцааг бүрдүүлнэ. галт ханын
-дүрмийн олонлогоор пакет хоёр дахин шүүгдэнэ, эхний удаа Интернэтээс пакетийг
-хүлээн авахад, дараагийн удаа буцаж Интернэт рүү гарч явахад. Бүх TCP/IP үйлчилгээнүүдийн
-хувьд (жишээ нь: telnet, www, mail, г.м.) ямар протоколоор ажиллах болон эхлэл ба
-очих IP хаяг, эхлэл ба очих порт хаяг зэргийг урьдаас тодорхойлж өгсөн байдаг.
-Эдгээр үзүүлэлтүүд дээр үндэслэн нэвтрүүлэх болох хаах дүрмүүдийг зохиодог.
+нэвтрүүлэх болон хаахыг хэлж байгаа IPF дүрмүүдийг дүрмийн олонлог гэнэ. Хостуудын
+хоорондох хоёр чиглэлтэй пакет солилцоо нь сесс харилцааг бүрдүүлнэ. Галт ханын
+дүрмийн олонлог нь Интернэтээс ирж байгаа пакетуудыг болон систем
+буцааж тэдэнд хариу өгсөн пакетуудыг боловсруулдаг. Бүх TCP/IP үйлчилгээнүүд
+(жишээ нь: telnet, www, mail, г.м.) өөрийн протокол болон зөвшөөрөгдсөн
+(сонсож байгаа) портоороо тодорхойлогддог.
+Тухайн нэг үйлчилгээ рүү зорисон пакетууд нь тусгай зориулалтаар ашиглагддаггүй
+ порт ашиглан эх хаягаас гарч очих хаягийн тухайн үйлчилгээний порт руу
+ чиглэдэг.
+Дээрх бүх параметрууд (өөрөөр хэлбэл: портууд болон хаягууд) дээр үндэслэн
+ нэвтрүүлэх болох хаах дүрмүүдийг зохиодог.
IPFILTER
Дүрмүүдтэй ажиллах дэс дараалал
IPF-г анх зохиохдоо сүүлд тохирсон дүрэм дийлнэ
логикийн дагуу бүтээсэн ба зөвхөн төлөвт-бус дүрмүүдийг ашигладаг байлаа.
Цаг хугацаа өнгөрөхөд IPF илүү хөгжиж, quick
тохируулга
болон төлөвт keep state
тохируулгуудыг агуулах болсон нь орчин үеийн
хэрэгцээ шаардлагад илүү нийцэх болжээ.
Энэ бүлэгт байгаа зааврууд нь quick
болон төлөвт keep state
тохируулгуудыг агуулсан дүрмүүдээс үндсэндээ бүрдсэн байгаа. Энэ бол хамааруулсан галт ханын дүрмүүдийг
бичих үндсэн арга барил юм.
-
-
-Хамааруулсан галт хана нь зөвхөн дүрмэнд тохирсон пакетуудыг нэвтрүүлнэ.
-Ийм маягаар галт ханын цаанаас Интернэт уруу ямар ямар үйлчилгээнүүд
-гарч болох болон эсрэгээр Интернэтээс дотоод сүлжээ уруу ямар ямар үйлчилгээнүүд хандаж
-болохыг удирдах боломжтой. Эдгээрээс бусад бүх урсгалыг хааж, бүртгэдэг байхаар зохиогдсон
-байдаг. Хамааруулсан галт хана нь хамааруулаагүй галт ханаас аюулгүй байдлын хувьд
-хэд дахин илүү, тиймээс энд бид зөвхөн хамааруулсан галт ханын дүрмүүдийн талаар
-ярилцах болно.
-
Галт ханын дүрмүүдтэй ажиллахдаа маш
анхааралтай байх хэрэгтэй. Зарим тохиргоо серверээс
бүх холбоог тань тасалж мэднэ. Ийм аюулаас хол
байхын тулд, галт ханын тохиргоог анхлан хийхдээ ssh
зэрэг алсын хандалтаас илүүтэйгээр ойрын удирдлагыг сонгоорой.
Дүрмийн синтакс
IPFILTER
дүрмийн синтакс
Энд дурдах дүрмийн синтакс нь орчин үеийн төлөвт
дүрмүүдийн хүрээнд, сүүлд тохирсон дүрэм дийлнэ
логикоор
ажиллахаар хялбаршуулан бичигдсэн байгаа. Хуучин уламжлалт дүрмүүдийн
синтаксын бүрэн тайлбарыг &man.ipf.8; заавар хуудаснаас үзнэ үү.
# гэсэн тэмдэгт тайлбарын эхлэлийг заах ба
дүрэм бичсэн мөрийн төгсгөлд эсвэл өөрөө бүтэн мөр байдлаар байрлана.
Хоосон мөрийг тооцохгүй.
Дүрмүүд нь түлхүүр үгүүдийг агуулна. Эдгээр түлхүүр үгүүд нь
тухайн мөрөнд зүүнээс баруун тийш тодорхой дэс дараагаар бичигдэнэ.
Түлхүүр үгүүд тодоор бичигдэх тул түүгээр нь ялгаж танина. Зарим түлхүүр
үгүүд дэд-тохируулгатай байна. Тэр нь өөрөө түлхүүр үг байж болохоос гадна
цааш дэд-тохируулгуудыг агуулсан байж болно. Доорх синтаксын үг бүр нь
дор байрлах мөрүүдэд задаргааны хамт байгаа.
ACTION IN-OUT OPTIONS SELECTION STATEFUL PROTO
SRC_ADDR,DST_ADDR OBJECT PORT_NUM TCP_FLAG
STATEFUL
ACTION = block | pass
IN-OUT = in | out
OPTIONS = log | quick | on
interface-name
SELECTION = proto value |
source/destination IP | port = number | flags
flag-value
PROTO = tcp/udp | udp | tcp |
icmp
SRC_ADD,DST_ADDR = all | from
object to object
OBJECT = IP address | any
PORT_NUM = port number
TCP_FLAG = S
STATEFUL = keep state
ACTION
Тухайн дүрмэнд тохирч байгаа пакетийг хэрхэхийг action буюу
үйлдэл зааж өгнө. Бүх дүрэм үйлдэлтэй байх ёстой. Дараах
үйлдлүүдийг хэрэглэж болно:
block гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал тухайн пакетийг орхигдуулахыг зааж өгнө.
pass гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал тухайн пакетийг нэвтрүүлэхийг зааж өгнө.
IN-OUT
Дүрэм нь орох болон гарах урсгалын алинд үйлчлэхийг
-заавал зааж өгөх ёстой. Энэ нь in эсвэл out түлхүүр үгийн аль нэг нь заавал
+заавал зааж өгөх ёстой. Энэ нь in эсвэл out түлхүүр үгийн аль нэг нь заавал
бичигдсэн байх ёстой гэсэн үг юм. Үгүй бол синтаксын алдаа өгч, танигдахгүй.
in гэдэг нь Интернэт уруу харж байгаа
интерфэйс дээр хүлээж авсан дотогшоо ирж байгаа пакетийн хувьд энэ дүрэм
үйлчлэхийг зааж өгнө.
out гэдэг нь Интернэт уруу харж байгаа
интерфэйс уруу чиглэсэн гадагшаа явж байгаа пакетийн хувьд энэ дүрэм үйлчлэхийг
зааж өгнө.
OPTIONS
Эдгээр options буюу тохируулгуудыг энд үзүүлсэн дэс
дарааллын дагуу хэрэглэх ёстой.
log гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал пакетийн толгой
ipl бүртгэл уруу (дор Бүртгэл Хөтлөх хэсэгт
заасны дагуу) бичигдэхийг зааж өгнө.
quick гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал энэ дүрэм нь хамгийн сүүлийн дүрэм болохыг зааж өгнө.
Ингэснээр short-circuit
замыг тухайн пакетийн хувьд дараагийн
дүрмүүдийг шалгахыг болиулна. Орчин үеийн дүрэмтэй ажиллах логикийн хувьд энэ
тохируулгыг заавал хэрэглэнэ.
on гэдэг нь selection буюу сонголтын
параметрүүдийн ажиллах интерфэйсийг зааж өгнө. Интерфэйсүүдийн нэрийг
&man.ifconfig.8;-н тусламжтай харж болно. Энэ тохируулгыг хэрэглэснээр,
тухайн дүрэм зөвхөн энэ интерфэйсээр зохих чиглэлд(in/out) явж байгаа
пакетийн хувьд үйлчилнэ. Орчин үеийн дүрэмтэй ажиллах логикийн хувьд энэ
тохируулгыг заавал хэрэглэнэ.
- пакетийг бүртгэхэд, түүний толгойг IPL пакет бүртгэх
-хуурамч-төхөөрөмж уруу бичнэ. log түлхүүр үгийн дараа шууд залгаад,
+ Пакетийг бүртгэхэд, түүний толгойг IPL пакет бүртгэх
+хуурамч-төхөөрөмж уруу бичнэ. log түлхүүр үгийн дараа шууд залгаад,
дараах тодотгогчдыг(дараах дэс дарааллаар) хэрэглэж болно:
body гэдэг нь пакетийн толгойн дараа
пакетийн агуулгын эхний 128 байтыг бүртгэхийг зааж өгнө.
first Хэрэв log
-түлхүүр үг keep state
тохируулгын хамт хэрэглэгдсэн бол,
+түлхүүр үг keep state тохируулгын хамт хэрэглэгдсэн бол,
түүний араас ирэх keep state
-д тохирч байгаа бүх пакетийг
биш зөвхөн энэ тохируулгыг идэвхжүүлсэн эхний пакетийг бүртгэхийн тулд
энэ тохируулгыг хэрэглэнэ.
SELECTION
Энэ бүлэгт танилцуулж байгаа түлхүүр үгүүд тухайн пакетийг
дүрмэнд тохирсон эсэхийг тогтоохын тулд шалгадаг пакетийн онцлогийг
тодорхойлоход хэрэглэгддэг. Мөн subject түлхүүр үг байх ба дэд-тохируулга
түлхүүр үгийн аль нэгийг сонгон хэрэглэнэ. Дараах ерөнхий онцлогуудыг
хэрэглэх боломжтой, гэхдээ доорх дэс дарааллаар хэрэглэх хэрэгтэй:
PROTO
proto гэдэг нь subject түлхүүр үг бөгөөд
өөрийн харгалзах дэд-тохируулгын хамт хэрэглэгдэх ёстой. Утга нь
ямар протокол дээр ажиллахыг хэлж өгнө. Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд энэ тохируулгыг заавал хэрэглэнэ.
tcp/udp | udp | tcp | icmp эсвэл
/etc/protocols файл дотор байгаа протоколуудыг
хэрэглэж болно. Тусгай tcp/udp гэсэн түлхүүр үг
-TCP эсвэл UDP пакетийг сонгоход хэрэглэгддэг ба,
+TCP эсвэл UDP пакетийг сонгоход хэрэглэгддэг ба,
давхар эсвэл төстэй дүрмүүдийг арилгах үүднээс нэмэгдсэн байгаа.
SRC_ADDR/DST_ADDR
all гэсэн түлхүүр үг нь
өөр ямар ч параметргүй from any to any
гэдэгтэй адил юм.
- from src to dst: from ба to гэсэн
+ from src to dst: from ба to гэсэн
түлхүүр үгүүд IP хаягийг шүүхэд хэрэглэгдэнэ. Дүрэмд хэрэглэхдээ эхлэл ба
-очих параметрийг ХОЁУЛАНГ зааж өгөх ёстой. any
+очих параметрийг хоёуланг зааж өгөх ёстой. any
гэсэн тусгай түлхүүр үгийн тусламжтай бүх IP хаягийг зөвшөөрч өгч болно.
-Хэрэглэх жишээ: from any to any
- эсвэл from 0.0.0.0/0 to any
эсвэл from any to
- 0.0.0.0/0
эсвэл from 0.0.0.0 to any
эсвэл
- from any to 0.0.0.0
.
-
-
-
- IP хаягийг цэгтэй тоон хэлбэр болон багийн хамт эсвэл
-зүгээр цэгтэй тоон хэлбэрээр бичиж болно.
-
- Багаар хялбархан илэрхийлэх боломжгүй IP хаягуудыг
-хэрэглэх боломжгүй. Баг бичих талаар тусламжийг дараах вэб хуудсаар
+Хэрэглэх жишээ: from any to any
+ эсвэл from 0.0.0.0/0 to any эсвэл from any to
+ 0.0.0.0/0 эсвэл from 0.0.0.0 to any эсвэл
+ from any to 0.0.0.0.
+
+ Цэгээр тусгаарлагдсан тоо/баг хэлбэрээр хялбархан илэрхийлэх боломжгүй IP хаягуудыг
+хэрэглэх боломжгүй. net-mgmt/ipcalc порт ашиглан үүнийг
+ хялбарчилж болох юм. Нэмэлт мэдээллийг дараах вэб хуудсаар
орж үзнэ үү: .
PORT
Хэрэв эхлэл эсвэл очих порт, эсвэл хоёулангаар нь тохируулах бол
-энэ нь зөвхөн TCP ба UDP пакетуудад хамаарна. Порт жишсэн дүрэм
+энэ нь зөвхөн TCP ба UDP пакетуудад хамаарна. Порт жишсэн дүрэм
бичихдээ /etc/services файл доторх үйлчилгээний нэр эсвэл
-бүхэл тоон портын дугаарыг хэрэглэнэ. Портыг from обьекттой хамт хэрэглэх үед
-энэ нь эхлэл портын дугаарыг, to обьекттой хамт хэрэглэх үед
+бүхэл тоон портын дугаарыг хэрэглэнэ. Портыг from обьекттой хамт хэрэглэх үед
+энэ нь эхлэл портын дугаарыг, to обьекттой хамт хэрэглэх үед
энэ нь очих портын дугаарыг заана. Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд port тохиргоог to обьекттой
-заавал хамт хэрэглэнэ. Хэрэглэх жишээ: from any to any port = 80
+заавал хамт хэрэглэнэ. Хэрэглэх жишээ: from any to any port = 80
-
+
- Портыг жиших оператороор эсвэл порт зурвасыг зааж өгөх
-зэргээр хэд хэдэн янзаар жишиж болно.
+ Портын харьцуулалтыг төрөл бүрийн жиших операторуудыг
+ ашиглан хэд хэдэн аргаар хийж болно. Портын зурвасыг бас
+ зааж өгч болно.
port "=" | "!=" | "<" | ">" | "<=" | ">=" |
"eq" | "ne" | "lt" | "gt" | "le" | "ge".
Порт зурвасыг зааж өгөхдөө, port "<>" |
"><" гэж хэрэглэнэ.
Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд эхлэл болон очих порт тохируулах параметрүүдийн дараа,
дараах хоёр параметрийг заавал хэрэглэнэ.
TCP_FLAG
Тугуудыг зөвхөн TCP шүүлтийн үед хэрэглэнэ.
-Үсгүүдээр нь TCP пакетийн толгойтойг шалгах боломжит тугуудыг
+Үсгүүдээр нь TCP пакетийн толгойтой таарч байгаа эсэхийг шалгах боломжит тугуудыг
үзүүлсэн байна.
Орчин үеийн дүрэмтэй ажиллах логик нь flags S параметрийг
tcp сесс эхлүүлэх хүсэлтийг тэмдэглэхдээ хэрэглэдэг.
STATEFUL
keep state гэдэг нь нэвтрүүлэх төрлийн дүрмийн хувьд
сонгох параметрүүдтэй тохирсан ямар ч пакет төлөвт шүүх нэмэлт боломжийг идэвхжүүлэх ёстойг
зааж өгнө.
Орчин үеийн дүрэмтэй ажиллах логикийн хувьд энэ тохируулгыг заавал
хэрэглэнэ.
Төлөвт шүүлт
IPFILTER
төлөвт шүүлт
Хостуудын хоорондох хоёр чиглэлтэй пакет солилцоо сесс харилцаанаас бүрддэг.
Төлөвт шүүлт нь урсгалыг сесс харилцаанаас бүрдэж буй хоёр чиглэлтэй пакет
солилцоо гэж үздэг. keep-state-г идэвхжүүлсэн үед, keep-state нь хоёр чиглэлтэй сесс харилцааны
үед солилцсон бүх пакетуудын хувьд дотоод дүрмүүдийг динамик байдлаар үүсгэдэг. Мөн
-энэ нь сесс эхлүүлсэн болон хүлээн авсан хостуудын хоорондох сесс харилцаа нь
+энэ нь сесс эхлүүлсэн болон хүлээн авсан хостуудын хоорондох сесс харилцаа
хоёр чиглэлтэй пакет солилцох процедуртай зохицож байгаа эсэхийг магадлах чадвартай байдаг.
Сесс харилцааны загварт зохицоогүй пакетийг хуурамч гэж үзэн хүлээж авахгүй.
- TCP эсвэл UDP сесстэй холбоотой
-ICMP пакетуудыг keep state нэвтрүүлнэ. Тэгэхээр, keep state дүрмээр
-зөвшөөрөгдсөн вэбээр хийх аялалын хариуд ICMP type 3 code 4 хариуг хүлээн авбал
+ TCP эсвэл UDP сесстэй холбоотой
+ICMP пакетуудыг keep state нэвтрүүлнэ. Тэгэхээр, keep state дүрмээр
+зөвшөөрөгдсөн вэбээр хийх аялалын хариуд ICMP type 3 code 4 хариуг хүлээн авбал
галт хана үүнийг автоматаар нэвтрүүлнэ гэсэн үг юм. Хэрэв IPF хүлээн авсан пакетийг
идэвхтэй байгаа сессийн нэг хэсэг гэж баттай итгэж байвал, өөр протокол дээр байсан ч
пакетийг нэвтрүүлнэ.
Үүний цаана юу болох вэ гэвэл:
Интернэт уруу холбогдсон интерфэйсээр гарч байгаа пакетуудыг
хамгийн түрүүнд динамик төлвийн хүснэгтэнд шалгана. Хэрэв тухайн пакет ямар нэг
идэвхтэй байгаа сесс харилцаанд оролцож байгаа зөвшөөрөгдсөн дараагийн пакет
байх юм бол, галт ханаар нэвтрүүлэх ба динамик төлвийн хүснэгтэн дэх
-сесс харилцааны төлөв шинэчлэгдэнэ. Үлдсэн пакетуудыг гадагшаа урсгалын дүрмээр
-шалгах болно.
+сесс харилцааны төлөв шинэчлэгдэнэ. Идэвхтэй сесс харилцаанд хамааралгүй
+пакетуудыг гадагшаа урсгалын дүрмээр шалгах болно.
- Интернэт уруу холбогдсон интерфэйс дээр ирж байгаа пакетуудыг
+ Интернэт уруу холбогдсон интерфэйсээс ирж байгаа пакетуудыг
хамгийн түрүүнд динамик төлвийн хүснэгтэнд шалгана. Хэрэв тухайн пакет ямар нэг
идэвхтэй байгаа сесс харилцаанд оролцож байгаа зөвшөөрөгдсөн дараагийн пакет
байх юм бол, галт ханаар нэвтрүүлэх ба динамик төлвийн хүснэгтэн дэх
-сесс харилцааны төлөв шинэчлэгдэнэ. Үлдсэн пакетуудыг дотогшоо урсгалын дүрмээр
-шалгах болно.
+сесс харилцааны төлөв шинэчлэгдэнэ. Идэвхтэй сесс харилцаанд хамааралгүй
+пакетуудыг дотогшоо урсгалын дүрмээр шалгах болно.
Харилцаа дуусахад динамик төлвийн хүснэгтээс зохих бичлэг
устгагдана.
Төлөвт шүүлтийн тусламжтайгаар та шинэ сесс зөвшөөрөх/хаах
үйл ажиллагаан дээр төвлөрч ажиллаж чадна. Хэрэв шинэ сесс зөвшөөрөгдсөн бол
түүний дараагийн бүх пакетуудыг автоматаар нэвтрүүлэх ба хуурамч пакетууд
автоматаар буцаагдана. Хэрэв шинэ сесс хаагдсан бол
түүний дараагийн ямар ч пакет нэвтэрч чадахгүй. Төлөвт шүүлт нь
сүүлийн үеийн халдлагуудад ашиглагдаж байгаа аргуудын эсрэг хамгаалах
-чадвартай техникийн хувьд өндөр түвшний асуулга явуулах чадвартай юм.
+чадвартай, техникийн хувьд өндөр түвшний шүүлт хийх чадвартай юм.
Хамааруулсан дүрмийн олонлогийн жишээ
Дараах дүрмийн олонлог нь аюулгүй байдлыг маш сайн хангасан, хамааруулсан
-галт ханын дүрмүүдийг хэрхэн бичих жишээ юм. Хамааруулсан галт хана нь зөвхөн pass дүрмүүдэд
-тохирсон үйлчилгээг зөвшөөрч, бусдыг бүгдийг хаана. Бүх галт хананууд хамгийн багадаа хоёр
-интерфэйстэй байх ба галт хана маягаар ажиллахын тулд дүрмүүдийг тусгайлан зааж өгсөн байна.
+ галт ханын дүрмүүдийг хэрхэн бичих жишээ юм. Хамааруулсан галт хана нь зөвхөн pass дүрмүүдэд
+ тохирсон үйлчилгээг зөвшөөрч, бусдыг бүгдийг хаана.
+ Бусад машинуудыг хамгаалах ёстой галт хананууд буюу сүлжээний галт хананууд
+ нь багаар бодоход хоёр интерфэйстэй байх ёстой бөгөөд ерөнхийдөө
+ нэг талд (LAN) итгэж нөгөөд (Интернэт) итгэхгүй байхаар
+ тохируулагдсан байдаг. Мөн ажиллаж байгаа системээ зөвхөн хамгаалахаар
+ галт хана тохируулагдсан байж болох бөгөөд ийм галт ханыг хостын галт хана
+ гэх бөгөөд энэ нь итгэлгүй сүлжээн дэх серверүүдийн хувьд ялангуяа
+ тохиромжтой байдаг.
&os;-г оролцуулаад бүх &unix; төрлийн систем нь үйлдлийн систем дэх
дотоод харилцаандаа lo0 интерфэйс болон 127.0.0.1
гэсэн IP хаягийг хэрэглэхээр бүтээгдсэн байдаг. Галт ханын дүрмүүд нь дотооддоо хэрэглэж байгаа
эдгээр пакетуудыг чөлөөтэй нэвтрүүлэх дүрмүүдийг агуулсан байх ёстой.
- Интернэттэй холбогдож байгаа интерфэйс дээр та өөрийн
+ Интернэттэй холбогдож байгаа интерфэйс дээр
Интернэт уруу гарч байгаа болон Интернэтээс ирж байгаа хандалтыг удирдах
болон хянах дүрмүүдийг байрлуулна. Энэ нь таны PPP tun0
интерфэйс эсвэл таны DSL эсвэл кабель модемд холбогдсон NIC байж болно.
- Галт ханын цаана байгаа хувийн LAN-уудад нэг болон түүнээс дээш тооны NIC-ууд
-холбогдсон тохиолдолд, тэдгээр интерфэйсүүдийн хувьд тэдгээр LAN интерфэйсүүдээс ирсэн
-пакетуудыг чөлөөтэй нэвтрүүлэх дүрмийг агуулсан байх ёстой.
+ Галт ханын цаана байгаа хувийн сүлжээнд нэг болон түүнээс дээш тооны NIC-ууд
+холбогдсон тохиолдолд, тэдгээр интерфэйсүүдийн хувьд тэдгээр LAN интерфэйсүүдийн нэгээс
+ нөгөө рүү ба/эсвэл гадагш гарсан пакетуудыг чөлөөтэй нэвтрүүлэх дүрмийг агуулсан байх ёстой.
- Дүрмүүд эхлээд гурван үндсэн хэсэгт хуваагдан зохион байгуулагдсан байх
-ёстой: бүх чөлөөт халдашгүй интерфэйсүүд, нийтийн гадагшаа интерфэйс, ба
-нийтийн дотогшоо интерфэйс.
+ Дүрмүүд гурван үндсэн хэсэгт хуваагдан зохион байгуулагдсан байх
+ёстой: эхлээд итгэлтэй интерфэйсүүд, дараа нь нийтийн гадагшаа интерфэйс, төгсгөлд нь
+нийтийн итгэлтэй дотогшоо интерфэйс.
Нийтийн интерфэйс хэсэгт байгаа дүрмүүд тухайн интерфэйс болон чиглэлийн
хувьд хамгийн олон тохиолддог дүрмүүд нь хамгийн түрүүнд, цөөн тохиолддог дүрмүүдээс өмнө байхаар,
хаах болох бүртгэх дүрмүүд нь хамгийн сүүлд байхаар бичигдсэн байна.
Дараах жишээн дээрх Гадагшаа хэсэг нь Интернэт хандалтыг зөвшөөрч өгөх
-үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн 'pass' дүрмүүдээс бүрдэж байна.
-Бүх дүрмүүд 'quick', 'on', 'proto', 'port', ба 'keep state' тохируулгуудыг агуулсан байгаа.
-'proto tcp' дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг тодорхойлох байдлаар,
-сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор 'flag' тохируулгыг агуулсан байна.
+үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн pass дүрмүүдээс бүрдэж байна.
+Бүх дүрмүүд quick, on,
+proto, port, болон keep state тохируулгуудыг агуулсан байгаа.
+proto tcp дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг тодорхойлох байдлаар,
+сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор flag тохируулгыг агуулсан байна.
Дотогшоо хэсэгт эхлээд хүсээгүй пакетуудыг хаах дүрмүүдийг бичсэн байна.
-Энэ нь хоёр өөр шалтгаантай. Эхнийх нь, энэ дүрмүүдээр хаагдсан зүйлс нь
-доор байгаа өөр нэг дүрмээр зөвшөөрөгдсөн пакетийн нэг хэсэг байж болох талтай. Хоёр дахь
-шалтгаан нь, цөөхөн тоотой хүлээж авдаг ба бүртгэх хүсэлгүй байгаа пакетуудыг сонгон, тэдгээрийг
-бүрнээр хаах дүрмийг эхлээд бичиж өгснөөр эдгээр пакетууд хамгийн сүүлд байгаа ямар ч дүрмүүдэд
-тохироогүй пакетуудыг бүртгээд хаана гэсэн дүрмээр дайрахгүй болгож байгаа юм. Учир нь энэ хэсгийн хамгийн
-сүүлд байгаа бүгдийг бүртгээд хаана гэсэн дүрэм бол өөрийн систем уруу халдаж байгаа халдлагын нотолгоог
-цуглуулах таны нэг арга билээ.
-
- Өөр нэг тэмдэглэн хэлэх зүйл бол, хүсээгүй пакетуудын хариуд ямар ч хариу явуулахгүй,
-тэд зүгээр л орхигдож алга болно. Ингэснээр халдлага явуулагч түүний явуулсан пакетууд
+Энэ нь хоёр өөр шалтгаантай. Эхнийх нь хортой пакетуудын зарим нь зөвшөөрсөн
+ урсгалын хэсэг байж болох юм. allow дүрэмд таарч байгаа
+ тэр хэсэг дээр тулгуурлан эдгээр пакетуудыг зөвшөөрөлгүйгээр
+ хаах ёстой. Хоёр дахь шалтгаан нь тухайн хэсэгт байгаа хамгийн сүүлийн
+ дүрмээр хааж бүртгэхийн оронд тэдгээр мэдэгдэж байгаа сонирхолгүй
+ татгалзалтуудыг чимээгүйгээр хааж болох юм. Хэсэг бүр дэх
+ сүүлийн дүрэм бүх пакетуудыг хааж бүртгэдэг бөгөөд таны систем рүү
+ халдаж байгаа хүмүүсийг шүүхэд шаардагдах баримтыг бий болгоход
+ ашиглагдаж болох юм.
+
+ Өөр нэг санаа тавин тэмдэглэн хэлэх зүйл бол хүсээгүй урсгалын хариуд ямар ч хариу явуулахгүй
+ байх явдал юм. Буруу пакетуудыг зүгээр орхиж тэд алга болох ёстой юм.
+ Ингэснээр халдлага явуулагч түүний явуулсан пакетууд
таны системд хүрсэн эсэх талаар юу ч мэдэхгүй үлдэх болно. Таны системийн талаар хэдий хэр бага мэднэ,
тэд ямар нэг муу зүйл хийж чадах хүртэл төдий чинээ урт хугацаа зарцуулна гэсэн үг юм.
-Дотогшоо 'nmap OS fingerprint' оролдлогын эхний тохиолдлыг би бүртгэж байгаа,
-
-
- яагаад гэвэл энэ бол гадны халдлагын нэг хэлбэр юм.
+ log first тохируулгыг агуулах дүрмүүд
+ анхны удаа таарахад бүртгэж авдаг. Энэ тохируулга нь
+ жишээ nmap OS fingerprint дүрэмд орсон
+ байдаг. security/nmap хэрэгслийг
+ халдагчид таны серверийн үйлдлийн системийг танихын тулд ихэвчлэн
+ ашигладаг.
- 'log first' орсон дүрмийн хувьд та анхны бүртгэлийг харах юм бол
-ipfstat -hio тушаалаар энэ дүрэм хэдэн удаа тохирсон байгааг
-шалгаарай. Магадгүй та халдлагад өртөж байж болох юм.
+ log first дүрмийн хувьд бүртгэлийн мэдээлэл
+ бүртгэгдэх бүрт ipfstat -hio тушаалаар энэ дүрэм хэдэн
+ удаа тохирсон байгааг шалгаж болно. Ихээхэн хэмжээний бүртгэлийн
+ мэдээлэл нь таныг халдлагад өртөж байгааг ихэвчлэн илэрхийлдэг.
- Хэрвээ мэдэхгүй дугаартай портын хувьд пакетууд бүртгэгдсэн байвал
-/etc/services файлаас эсвэл
+ /etc/services файлыг ашиглан мэдэгдэхгүй
+ портын дугаарыг хайж олж болох юм. Мөн
хаягаар тухайн
-порт ямар зориулалтаар ашиглагддагийг орж шалгаарай.
+порт ямар зориулалтаар ашиглагддагийг орж шалгаж болох юм.
Троянуудын хэрэглэдэг портын дугааруудыг
хаягаар орж шалгаарай.
- Дараах дүрмийн олонлог нь миний өөрийн систем дээрээ хэрэглэдэг
-аюулгүй байдлыг бүрэн хангасан хамааруулсан галт ханын дүрмийн олонлог байгаа юм.
-Та энэ дүрмүүдийг өөрийн системдээ ашиглахад буруудах юмгүй.
+ Дараах дүрмийн олонлог нь ажиллаж байгаа систем дээр шалгагдсан
+аюулгүй байдлыг бүрэн хангасан хамааруулсан галт ханын дүрмийн олонлог юм.
+ Үүнийг өөрийн системд хялбарханаар тааруулж болох юм.
Зөвшөөрөхийг хүсэхгүй байгаа үйлчилгээнүүдийн хувьд харгалзах
-нэвтрүүлэх дүрмийг далдлаарай.
+pass дүрмийг далдлаарай.
- Хэрэв бүртгэлд байгаа зарим мэдэгдлийг дахин харахыг хүсэхгүй, бүртгэхийг
-хүсэхгүй байгаа бол дотогшоо хэсэгт хаах дүрэм нэмж бичээрэй.
+ Хүсээгүй мэдээллийг бүртгэхгүйн тулд дотогшоо хэсэгт
+ block дүрэм нэмж бичээрэй.
Дүрэм бүрт байгаа dc0 гэсэн интерфэйсийн нэрийн оронд
-таны системийг Интернэт уруу холбож байгаа NIC картны интерфэйсийн нэрийг сольж тавиарай.
+таны системийг Интернэт уруу холбож байгаа NIC картны интерфэйсийн нэрээр сольж тавиарай.
Хэрэглэгчийн PPP-н хувьд, энэ нь tun0 байна.
Дараах илэрхийллүүдийг /etc/ipf.rules дотор бичих хэрэгтэй:
#################################################################
# No restrictions on Inside LAN Interface for private network
# Not needed unless you have LAN
#################################################################
#pass out quick on xl0 all
#pass in quick on xl0 all
#################################################################
# No restrictions on Loopback Interface
#################################################################
pass in quick on lo0 all
pass out quick on lo0 all
#################################################################
# Interface facing Public Internet (Outbound Section)
-# Interrogate session start requests originating from behind the
+# Match session start requests originating from behind the
# firewall on the private network
-# or from this gateway server destine for the public Internet.
+# or from this gateway server destined for the public Internet.
#################################################################
# Allow out access to my ISP's Domain name server.
# xxx must be the IP address of your ISP's DNS.
# Dup these lines if your ISP has more than one DNS server
# Get the IP addresses from /etc/resolv.conf file
pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
pass out quick on dc0 proto udp from any to xxx port = 53 keep state
# Allow out access to my ISP's DHCP server for cable or DSL networks.
# This rule is not needed for 'user ppp' type connection to the
# public Internet, so you can delete this whole group.
# Use the following rule and check log for IP address.
# Then put IP address in commented out rule & delete first rule
pass out log quick on dc0 proto udp from any to any port = 67 keep state
#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state
# Allow out non-secure standard www function
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Allow out secure www function https over TLS SSL
pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state
# Allow out send & get email function
pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state
# Allow out Time
pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
# Allow out nntp news
pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
-# Allow out gateway & LAN users non-secure FTP ( both passive & active modes)
+# Allow out gateway & LAN users' non-secure FTP ( both passive & active modes)
# This function uses the IPNAT built in FTP proxy function coded in
# the nat rules file to make this single rule function correctly.
# If you want to use the pkg_add command to install application packages
# on your gateway system you need this rule.
pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
-# Allow out secure FTP, Telnet, and SCP
+# Allow out ssh/sftp/scp (telnet/rlogin/FTP replacements)
# This function is using SSH (secure shell)
pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
-# Allow out non-secure Telnet
+# Allow out insecure Telnet
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
-# Allow out FBSD CVSUP function
+# Allow out FreeBSD CVSup
pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
# Allow out ping to public Internet
pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state
-# Allow out whois for LAN PC to public Internet
+# Allow out whois from LAN to public Internet
pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
# Block and log only the first occurrence of everything
# else that's trying to get out.
-# This rule enforces the block all by default logic.
+# This rule implements the default block
block out log first quick on dc0 all
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Match packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Block all inbound traffic from non-routable or reserved address spaces
block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918 private IP
block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918 private IP
block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918 private IP
block in quick on dc0 from 127.0.0.0/8 to any #loopback
block in quick on dc0 from 0.0.0.0/8 to any #loopback
block in quick on dc0 from 169.254.0.0/16 to any #DHCP auto-config
block in quick on dc0 from 192.0.2.0/24 to any #reserved for docs
block in quick on dc0 from 204.152.64.0/23 to any #Sun cluster interconnect
block in quick on dc0 from 224.0.0.0/3 to any #Class D & E multicast
##### Block a bunch of different nasty things. ############
# That I do not want to see in the log
# Block frags
block in quick on dc0 all with frags
# Block short tcp packets
block in quick on dc0 proto tcp all with short
# block source routed packets
block in quick on dc0 all with opt lsrr
block in quick on dc0 all with opt ssrr
# Block nmap OS fingerprint attempts
# Log first occurrence of these so I can get their IP address
block in log first quick on dc0 proto tcp from any to any flags FUP
# Block anything with special options
block in quick on dc0 all with ipopts
# Block public pings
block in quick on dc0 proto icmp all icmp-type 8
# Block ident
block in quick on dc0 proto tcp from any to any port = 113
# Block all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
block in log first quick on dc0 proto tcp/udp from any to any port = 137
block in log first quick on dc0 proto tcp/udp from any to any port = 138
block in log first quick on dc0 proto tcp/udp from any to any port = 139
block in log first quick on dc0 proto tcp/udp from any to any port = 81
# Allow traffic in from ISP's DHCP server. This rule must contain
# the IP address of your ISP's DHCP server as it's the only
# authorized source to send this packet type. Only necessary for
# cable or DSL configurations. This rule is not needed for
# 'user ppp' type connection to the public Internet.
# This is the same IP address you captured and
# used in the outbound section.
pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
# Allow in standard www function because I have apache server
pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Allow in non-secure Telnet session from public Internet
# labeled non-secure because ID/PW passed over public Internet as clear text.
# Delete this sample group if you do not have telnet server enabled.
#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Allow in secure FTP, Telnet, and SCP from public Internet
# This function is using SSH (secure shell)
pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Block and log only first occurrence of all remaining traffic
# coming into the firewall. The logging of only the first
-# occurrence stops a .denial of service. attack targeted
-# at filling up your log file space.
-# This rule enforces the block all by default logic.
+# occurrence avoids filling up disk with Denial of Service logs.
+# This rule implements the default block.
block in log first quick on dc0 all
################### End of rules file #####################################
NAT
NAT
IP маскарад
NAT
сүлжээний хаягийн хөрвүүлэлт
NAT
- NAT нь Network Address Translation буюу
+ NAT нь Network Address Translation буюу
Сүлжээний хаягийн Хөрвүүлэлтийн товчлол юм. &linux;-н талаар ойлголттой хүмүүсийн хувьд,
энэ ойлголтыг IP маскарад гэж нэрлэдэг; NAT ба IP маскарад
нь нэг зүйл юм. IPF NAT-н бидэнд олгож байгаа олон зүйлүүдийн нэг бол
галт ханын цаана байгаа Local Area Network буюу Ойрын Зайн Сүлжээ(LAN)-н хувьд
ISP-с оноож өгсөн ганц IP хаягийг Интернэтэд хуваан хэрэглэх юм.
Ингэх ямар шаардлага байнаа гэж та гайхан асуух байх.
ISP-ууд өөрийн ашгийн-бус хэрэглэгчиддээ ихэвчлэн динамик IP хаяг оноодог.
Динамик гэдэг нь таныг ISP руу залган нэвтрэн орох болгонд, кабель эсвэл
-DSL модемтой хэрэглэгчдийн хувьд модемоо асааж унтраах болгонд танд
-өөр өөр IP хаяг онооно гэсэн үг юм. Энэ IP хаягаар та Интернэтэд гарах болно.
+DSL модемтой хэрэглэгчдийн хувьд модемоо асааж унтраах болгонд
+өөр өөр IP хаяг онооно гэсэн үг юм. Таны системийг Интернэтэд танихад
+ энэ динамик IP хаягийг ашигладаг.
Та гэртээ таван PC-тэй бөгөөд бүгд Интернэт уруу гардаг байх хэрэгтэй гэж бодъё.
Тэгвэл та PC тус бүрт тусад нь эрх худалдан авч, таван утасны үзүүртэй байх хэрэгтэй болно.
- Тэгвэл NAT-н тусламжтай та ISP-гаасаа зөвхөн ганцхан эрх худалдан аваад,
-бусад дөрвөн PC-гээ switch буюу шилжүүлэгч уруу холбож, харин switch-ээ таны LAN-нд гарц байдлаар ажиллах
+ NAT-н тусламжтай ISP-гаас зөвхөн ганцхан эрх
+ шаардлагатай. Бусад дөрвөн PC-гээ switch буюу шилжүүлэгч уруу холбож, харин switch-ээ таны LAN-нд гарц байдлаар ажиллах
&os; системийн NIC руу залгана. NAT нь LAN-д байгаа бүх PC-ны хувьд хувийн IP
хаягийг ганцхан гадаад IP хаяг уруу автоматаар хөрвүүлэх болно. NAT нь эргэж
ирж байгаа пакетуудын хувьд эсрэг хөрвүүлэлтийг мөн хийнэ.
- Ихэнх тохиолдолд NAT-г ISP-н зөвшөөрөлгүйгээр,
-мэдэгдэлгүйгээр хийдэг бөгөөд хэрэв ISP энэ тухайн мэдвэл таны эрхийг хаах
-хүртэл арга хэмжээ авдаг. Зүй нь бол хэрэглэгчид Интернэт холболтондоо илүү мөнгө
-төлж, хэзээ ч өөрчлөгдөхгүй бүлэг статик IP хаягийг авах явдал юм. ISP харин хэрэглэгчиддээ
-итгэл хүлээлгэн хэрэглэгчид нь NAT-г дотоод хувийн LAN-даа хэрэглэнэ гэж боддог.
-
- NAT хийгдсэн хувийн LAN IP хаягт зориулж бүлэг IP хаягийг тусгайлан
+ NAT хийгдсэн хувийн LAN-уудад зориулж бүлэг IP хаягийг тусгайлан
гаргасан байдаг. RFC 1918 стандартад зааснаар бол, дараах бүлэг IP-г хувийн сүлжээндээ ашиглах
боломжтой, эдгээр IP хэзээ ч гадаад Интернэт уруу гарахгүй болно:
Эхлэх IP 10.0.0.0
-
Төгсөх IP 10.255.255.255
Эхлэх IP 172.16.0.0
-
Төгсөх IP 172.31.255.255
Эхлэх IP 192.168.0.0
-
Төгсөх IP 192.168.255.255
IPNAT
NAT
ба IPFILTER
ipnat
NAT дүрмүүдийг ipnat тушаалын
тусламжтай ачаална. Ихэвчлэн NAT дүрмүүд /etc/ipnat.rules
файл дотор байрлана. Дэлгэрэнгүйг &man.ipnat.1; хэсгээс үзнэ үү.
NAT ажиллаж эхэлсний дараа NAT дүрмүүдэд
өөрчлөлт оруулах шаардлагатай бол NAT дүрмүүд байгаа файл дотор өөрчлөлтийг хийсний дараа,
одоо хэрэглэгдэж байгаа NAT дүрмүүдийг устгаж, хөрвүүлэгч хүснэгтийг цэвэрлэхийн
-тулд ipnat тушаалыг тугийн хамт ажиллуулах хэрэгтэй.
+тулд ipnat тушаалыг тугийн хамт ажиллуулах хэрэгтэй.
Харин NAT дүрмүүдийг дахин ачаалахдаа тушаалыг
дараах байдалтай өгөх хэрэгтэй:
&prompt.root; ipnat -CF -f /etc/ipnat.rules
NAT-н талаар зарим статистикийг харъя гэвэл дараах
тушаалыг ашиглана:
&prompt.root; ipnat -s
NAT хүснэгтийн одоо ашиглаж байгаа оноолтын жагсаалтыг
харахын тулд дараах тушаалыг ашиглана:
&prompt.root; ipnat -l
Вербос буюу хэр зэрэг харуулах горимыг нээхийн тулд, дүрэмтэй ажиллах болон идэвхтэй
байгаа дүрмүүдийн хүснэгтийг харахын тулд:
&prompt.root; ipnat -v
IPNAT Дүрмүүд
NAT дүрмүүд нь маш уян хатан бөгөөд хэрэглэгчдийн
хэрэгцээг хангах олон зүйлүүдийг хийж чадна.
Энд үзүүлсэн дүрмийн синтаксыг ашгийн-бус орчинд ихэвчлэн хэрэглэгддэг
дүрмүүдэд зориулан хялбаршуулсан байгаа. Дүрмийн синтаксын бүрэн тайлбарыг &man.ipnat.5;
заавар хуудаснаас үзнэ үү.
NAT дүрмийн синтакс дараах байдалтай байна:
map IF LAN_IP_RANGE -> PUBLIC_ADDRESS
Дүрэм нь map гэсэн түлхүүр үгээр эхэлнэ.
IF-г гадаад интерфэйсээр сольж тавьна.
LAN_IP_RANGE нь танай дотоод хэрэглэгчийн
хэрэглэж буй IP хаяглалтыг заана, ихэвчлэн 192.168.1.0/24
гэсэн маягтай байна.
PUBLIC_ADDRESS нь гадаад IP
байж болно эсвэл IF-д оноосон IP хаягийг
хэрэглэхийг заасан 0/32 гэсэн тусгай түлхүүр үг байж болно.
NAT хэрхэн ажилладаг вэ
Гадаад очих хаягтай пакет галт хана дээр LAN-с хүрэлцэн ирнэ.
Эхлээд гадагшаа шүүлтийн дүрмүүдээр гарна, дараа нь NAT-н
ээлж ирэх ба өөрийн дүрмүүдийг дээрээс доош шалгаж эхэлнэ. Хамгийн эхэнд тохирсон нь
дийлнэ. NAT өөрийн дүрэм бүрийг пакетийн интерфэйсийн нэр болон
эхлэл хаягаар тулгаж шалгана. Пакетийн интерфэйсийн нэр NAT
-дүрэмтэй тохирвол пакетийн [эхлэл IP хаяг, өөрөөр хэлбэл хувийн LAN IP хаяг]
+дүрэмтэй тохирвол пакетийн эхлэл IP хаяг (өөрөөр хэлбэл хувийн LAN IP хаяг)
NAT дүрмийн сумны зүүн талд зааж өгсөн
IP хаягийн зурвас дотор байгаа эсэхийг шалгана. Хэрэв энэ тохирвол
пакетийн эхлэл хаягийг 0/32 түлхүүр үгийн тусламжтай
олж авсан гадаад IP хаягаар сольж бичнэ. NAT
өөрийн дотоод NAT хүснэгтэнд бичлэг нэмэх ба энэ нь
пакет Интернэтээс буцаж ирэхэд түүнийг буцаан хувийн IP хаяг уруу нь хөрвүүлэн,
цааш шүүлтийн дүрмүүдээр оруулах боломжийг олгоно.
IPNAT-г идэвхжүүлэх
IPNAT-г идэвхжүүлэхийн тулд эдгээр илэрхийллүүдийг
/etc/rc.conf дотор нэмж бичнэ.
Өөрийн машиныг интерфэйсүүдийн хооронд пакетуудыг чиглүүлдэг
болгохын тулд:
gateway_enable="YES"
Систем ачаалахад IPNAT-г автоматаар ачаалдаг
болгохын тулд:
ipnat_enable="YES"
IPNAT-н дүрмүүдийг хаанаас ачаалахыг зааж өгөхдөө:
ipnat_rules="/etc/ipnat.rules"
Маш том LAN-д зориулсан NAT
LAN-даа олон тооны PC-тэй сүлжээний хувьд эсвэл нэгээс олон
LAN-тай сүлжээний хувьд, энэ олон хувийн IP хаягуудыг нэг гадаад IP хаяг уруу
нийлүүлэх үйл явцад NAT хийгдсэн олон LAN PC дээр ижил портын
дугаар олон дахин хэрэглэгдсэнээс мөргөлдөөн үүсэх гэх мэт нөөцтэй холбоотой асуудал гардаг.
Нөөцтэй холбоотой энэ асуудлаас гарахын тулд дараах хоёр арга зам байдаг.
Хэрэглэх портуудыг оноох
Энгийн NAT дүрэм дараах байдалтай байна:
map dc0 192.168.1.0/24 -> 0/32
Дээрх дүрмэнд пакет IPNAT-р дайрч өнгөрөхөд
-пакетийн эхлэл порт өөрчлөгдөхгүй. portmap гэсэн түлхүүр үгийн тусламжтай
-IPNAT эхлэл порт зурвасыг ашиглах боломжтой болно.
+пакетийн эхлэл порт өөрчлөгдөхгүй. portmap гэсэн түлхүүр үгийг нэмсэнээр
+ IPNAT-ийг заасан зурвас дахь зөвхөн эхлэл портуудыг ашиглахаар зааж өгнө.
Жишээ нь, дараах дүрэм IPNAT-г эхлэл порт хаягийг
тухайн зурвас дотор байхаар өөрчлөхийг зааж өгч байна.
map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000
Дээр нь бид auto түлхүүр үгийн тусламжтай
аль портуудыг ашиглах боломжтой байгааг өөрөө тодорхойлохыг зааж өгч болно:
map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto
Гадаад хаягийн цөөрмийг хэрэглэх
Маш том LAN-уудын хувьд дэндүү олон LAN хаягуудыг нэг гадаад
хаягт оноох нь боломжгүй болох үе ирдэг. Хэрэв бүлэг гадаад IP сул байгаа бол,
-та эдгээр IP хаягуудыг цөөрөм
байдлаар ашиглаж болох ба,
+эдгээр IP хаягуудыг цөөрөм
байдлаар ашиглаж болох ба,
IPNAT эдгээрээс нэгийг сонгон авч гадагшаа явж байгаа
пакетийн хаягт оноох байдлаар хэрэглэх болно.
Жишээ нь, доор үзүүлсэн шиг бүх пакетуудыг ганц
гадаад IP-д оноохын оронд:
map dc0 192.168.1.0/24 -> 204.134.75.1
гадаад IP хаягийн зурвасыг сүлжээний хуваалтын хамт зааж өгч болно:
map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0
эсвэл CIDR тэмдэглэгээг хэрэглэж болно:
map dc0 192.168.1.0/24 -> 204.134.75.0/24
Портын дахин чиглүүлэлт
LAN дотор вэб сервер, цахим шуудангийн сервер, өгөгдлийн
сангийн сервер болон DNS серверийг өөр өөр PC дээр тараан ажиллуулах нь
түгээмэл байдаг. Энэ тохиолдолд эдгээр серверээс гарч байгаа урсгал
мөн NAT хийгдсэн байх ёстой. Гэхдээ гаднаас ирж буй
урсгалыг зөв LAN PC уруу дахин чиглүүлэх арга зам байх хэрэгтэй болно.
Энэ асуудлыг шийдэхийн тулд IPNAT нь дахин чиглүүлэлт хийх
-NAT нэмэлт боломжийг олгодог. Таны вэб сервер
-10.0.10.25 гэсэн LAN хаягтай байна,
-мөн та 20.20.20.5 гэсэн ганц гадаад IP-тай
-байлаа гэж бодъё. Тэгвэл та дүрмээ дараах байдалтай:
+NAT нэмэлт боломжийг олгодог. Вэб сервер
+10.0.10.25 гэсэн LAN хаягтай бөгөөд
+20.20.20.5 гэсэн ганц гадаад IP-тай
+байлаа гэж бодъё. Тэгвэл дүрмийг дараах байдалтай:
rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80
эсвэл:
rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80
эсвэл гаднаас DNS хүсэлтүүд хүлээн авдаг
10.0.10.33 гэсэн хаягтай LAN DNS Серверийн хувьд:
rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udp
гэж бичих байсан.
FTP ба NAT
FTP-г Интернэт одоогийнх шиг байхаас өмнөх үе, их сургуулиуд
түрээсийн шугамаар хоорондоо холбогдож, судлаач эрдэмтэд хоорондоо файл солилцохын тулд
FTP-г ашигладаг байх үес үлдсэн үлэг гүрвэл гэж хэлж болох юм. Тэр үед
өгөгдлийн аюулгүй байдлын талаар огт анхаардаггүй байлаа. Цаг хугацаа өнгөрөхөд
FTP протоколыг шинээр гарч ирж байгаа Интернэтийн гол нуруу сүлжээнд хэрэглэх болсон ба
түүний хэрэглэгчийн нэр, нууц үгийг цэвэр текст хэлбэрээр дамжуулдаг байдал нь
хэзээ ч өөрчлөгдөөгүй бөгөөд орчин үеийн аюулгүй байдлын шаардлагад
нийцэхгүй болсон билээ. FTP нь active буюу идэвхтэй, passive буюу идэвхгүй гэсэн хоёр
горимд ажилладаг. Өгөгдлийн сувгийг хэрхэн ашиглаж байгаа дээр гол ялгаа нь гардаг.
-Өгөгдлийн сувгийг ftp сесс хүсэгч байдлаар ажиллуулдаг тул идэвхгүй горимд ажиллах
+Өгөгдлийн сувгийг эхэлж ftp сесс хүсэгч нь авдаг тул идэвхгүй горимд ажиллах
нь аюулгүй байдлыг илүүтэйгээр хангана. FTP-н талаар илүү сайн тайлбарыг болон түүний
горимуудын талаар хаягаар үзнэ үү.
IPNAT Дүрмүүд
IPNAT нь дотроо NAT
оноолт дүрэмд тодорхойлж өгөх боломжтой тусгай FTP прокси тохируулгыг
агуулсан байдаг. Энэ нь идэвхтэй болон идэвхгүй FTP сесс эхлүүлэх хүсэлтэд
оролцож байгаа бүх гадагшаа чиглэлтэй FTP пакетийг хянаж чадна. Мөн
өгөгдлийн сувагт үнэхээр хэрэглэгдэж байгаа порт дугаарыг агуулсан түр зуурын
шүүлтийн дүрмүүдийг динамикаар үүсгэж чадна. Ийм байдлаар FTP-с болж үүсдэг
дээд хэсгийн портуудыг өргөн зурвасаар нээх эрсдэлээс галт ханыг хамгаалж байгаа юм.
Доорх дүрэм нь дотоод LAN-н бүх урсгалыг зохицуулна:
map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcp
Доорх дүрэм гарцаас ирж буй FTP урсгалыг зохицуулна:
map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp
Доорх дүрэм дотоод LAN-с ирж буй бүх FTP-н биш урсгалыг зохицуулна:
map dc0 10.0.10.0/29 -> 0/32
FTP оноолтын дүрэм нь бидний ердийн оноолтын дүрмүүдийн өмнө бичигдэнэ.
Бүх пакетийг хамгийн дээр бичигдсэн дүрмээс эхлэн шалгана.
Интерфэйсийн нэр тохирвол дотоод LAN эхлэл IP хаяг, дараа нь FTP пакет эсэхийг
шалгана. Хэрэв бүгд тохирвол, тусгай FTP прокси эдгээр FTP сесс пакетуудыг
NAT хийхээс гадна гадагш нь болон дотогш нь нэвтрүүлэх
түр зуурын шүүлтийн дүрмийг үүсгэнэ. FTP-н биш бусад бүх LAN пакетууд эхний
дүрмэнд тохирохгүй тул гуравдугаар дүрэм уруу шилжин дахин шалгагдана. Интерфэйс болон
эхлэл IP тохирох тул NAT хийгдэнэ.
IPNAT FTP Шүүлтийн Дүрмүүд
NAT FTP прокси ашиглаж байгаа тохиолдолд
FTP-н хувьд ганцхан шүүлтийн дүрэм хэрэгтэй.
- FTP Прокси байхгүй бол та дараах гурван дүрмийг хэрэглэнэ:
+ FTP Прокси байхгүй бол дараах гурван дүрмийг хэрэглэнэ:
# Allow out LAN PC client FTP to public Internet
# Active and passive modes
pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state
# Allow out passive mode data channel high order port numbers
pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state
# Active mode let data channel in from FTP server
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state
IPFW
галт хана
IPFW
- IPFIREWALL (IPFW) нь &os;-ийн хандиваар &os;-ийн сайн дурын гишүүдийн бүтээсэн,
+ IPFIREWALL (IPFW) нь &os;-ийн хандиваар &os;-ийн сайн дурын гишүүдийн бүтээсэн,
тэдний эрх мэдэлд байдаг галт ханын програм юм. Энэ нь хуучин уламжлалт төлөвт
дүрмүүдийг хэрэглэдэг бөгөөд Simple Stateful logiс буюу Хялбар Төлөвт логикийг
бий болгохын тулд уламжлалт дүрэм бичих техникийг хэрэглэдэг.
Стандарт &os; суулгац дахь IPFW-н хялбар дүрмийн олонлог
(/etc/rc.firewall болон /etc/rc.firewall6
файл дотор байрлана) нь нилээд хялбар бөгөөд өөрт тохируулан засварласны дараа хэрэглэхээр бодолцон
бичигдсэн байдаг. Жишээн дээр ихэнх суулгацад тохиромжтой төлөвт шүүлтийг хэрэглээгүй байгаа.
Тиймээс энэ хэсэгт энэ жишээг хэрэглэхгүй болно.
IPFW-н төлөвт дүрмийн синтакс нь галт хана суулгах анхан шатны мэдлэгээс
хол давсан техникийн хувьд ярвигтай сонголтын боломжуудаар хүч нэмсэн байдаг.
IPFW нь мэргэжлийн түвшний хэрэглэгчид эсвэл өндөр түвшний пакет сонголт
шаардлагатай байгаа техникийн өндөр түвшний компьютер сонирхогчид зориулагдсан юм.
IPFW-н дүрмүүдийн хүчийг мэдрэхийн өмнө протоколууд өөрийн тусгай пакетийн толгойн
мэдээллийг хэрхэн үүсгэдэг болон хэрэглэдэг талаар нилээд дэлгэрэнгүй мэдлэгийг
олж авсан байх хэрэгтэй. Тийм түвшний тайлбарыг энд өгөх нь номын энэ бүлгийн
мэдлээс халих тул энд оруулах боломжгүй юм.
IPFW нь долоон хэсгээс бүрдэнэ, гол хэсэг болох цөмийн галт ханын шүүлтийн
дүрмийг боловсруулагч болон түүний бусад хэсэг болох пакет данслах боломж, бүртгэх боломж, NAT
-боломжийг идэвхжүүлэх 'divert буюу эргүүлэх' дүрэм, болон өндөр түвшний тусгай зориулалттай боломжууд,
-dummynet трафик хязгаарлагч боломжууд, 'fwd дүрэм' дамжуулах боломж, гүүр боломжууд, болон
+боломжийг идэвхжүүлэх divert дүрэм, болон өндөр түвшний тусгай зориулалттай боломжууд,
+dummynet трафик хязгаарлагч боломжууд, fwd дүрэм дамжуулах боломж, гүүр боломжууд, болон
ipstealth боломжуудаас бүрдэнэ. IPFW нь IPv4 болон IPv6-г дэмждэг.
IPFW-г идэвхжүүлэх
IPFW
идэвхжүүлэх
IPFW нь &os; үндсэн суулгацтай хамт, ажиллах үеийн ачаалах боломжтой модуль байдлаар ирдэг.
-rc.conf тохиргооны файл дотор firewall_enable="YES" илэрхийлэл байгаа үед систем IPFW цөмийн
+rc.conf тохиргооны файл дотор firewall_enable="YES" илэрхийлэл байгаа үед систем IPFW цөмийн
модулийг динамикаар ачаална. NAT функцыг ашиглахгүй бол
IPFW-г цөмд эмхэтгэх шаардлага байхгүй.
rc.conf файл дотор firewall_enable="YES"
илэрхийллийг нэмээд системийг дахин асаасны дараа ачаалах үйл явцын нэг хэсэг болж
дараах мессеж дэлгэцэн дээр гарах болно:
ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabled
Ачаалах боломжтой модульд бүртгэх боломжийг эмхэтгээгүй байгаа.
-Бүртгэлийг идэвхжүүлэхийн тулд, мөн вербос бүртгэлийн хязгаарыг тогтоохын тулд
-/etc/sysctl.conf файл дотор дараах илэрхийллүүдийг нэмж өгөх
-хэрэгтэй, бүртгэлийн систем дараагийн удаа ачаалахад идэвхжинэ:
+Бүртгэлийг идэвхжүүлж вербос бүртгэлийн хязгаарыг тогтоохын тулд
+/etc/sysctl.conf файл дотор тохируулж болох тохиргоо бий.
+Эдгээр илэрхийллүүдийг нэмсэнээр бүртгэлийн систем дараагийн удаа ачаалахад идэвхжинэ:
net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5
Цөмийн тохируулгууд
цөмийн тохируулгууд
IPFIREWALL
цөмийн тохируулгууд
IPFIREWALL_VERBOSE
цөмийн тохируулгууд
IPFIREWALL_VERBOSE_LIMIT
IPFW
цөмийн тохируулгууд
NAT функцыг хэрэглэхгүй бол &os; цөм уруу
дараах боломжуудыг эмхэтгэн IPFW-г идэвхжүүлэх албагүй болно.
Суурь мэдлэг болгон энд үзүүллээ.
options IPFIREWALL
Энэ тохируулга IPFW-г цөмийн нэг хэсэг болгон идэвхжүүлнэ
options IPFIREWALL_VERBOSE
- Энэ тохируулга 'log' гэсэн түлхүүр үг орсон дүрмийн хувьд
+ Энэ тохируулга log гэсэн түлхүүр үг орсон дүрмийн хувьд
IPFW-р дайран өнгөрөх пакетуудыг бүртгэх боломжтой болгоно.
options IPFIREWALL_VERBOSE_LIMIT=5
Энэ тохируулга &man.syslogd.8;-р нэгэн зэрэг бүртгэгдэж буй
-пакетийн тоог хязгаарлана. галт ханын үйлдлүүдийг бүртгэхийг хүсэж байгаа
-найрсаг орчнуудад та энэ тохируулгыг хэрэглээрэй. Энэ тохируулга нь
+пакетийн тоог хязгаарлана. Галт ханын үйлдлүүдийг бүртгэхийг хүсэж байгаа
+дайсагнасан орчнуудад энэ тохируулгыг хэрэглэж болно. Энэ тохируулга нь
syslog-г живүүлэх замаар явагдах үйлчилгээг зогсоох халдлагыг хааж өгөх болно.
цөмийн тохируулгууд
IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_DEFAULT_TO_ACCEPT
- Энэ тохируулга нь галт ханыг дамжин өнгөрч байгаа бүх зүйлийг нэвтрүүлэх анхдагч
-төлөвт оруулна. галт ханыг анх удаа тохируулж байгаа үед энэ нь илүү тохиромжтой.
+ Энэ тохируулга нь анхдагчаар галт ханыг дамжин өнгөрч байгаа бүх зүйлийг
+ нэвтрүүлэхийг зөвшөөрөх бөгөөд энэ нь галт ханыг анх удаа тохируулж байгаа үед илүү тохиромжтой.
цөмийн тохируулгууд
IPDIVERT
options IPDIVERT
Энэ тохируулга NAT функцыг идэвхжүүлнэ.
Хэрэв та IPFIREWALL_DEFAULT_TO_ACCEPT-г оруулаагүй эсвэл
-ирж байгаа пакетуудыг нэвтрүүлэх дүрмүүд бичээгүй бол та энэ машинаас ирж
-байгаа болон явж байгаа бүх пакетуудыг хаачихлаа гэсэн үг юм.
+ирж байгаа пакетуудыг нэвтрүүлэх дүрмүүд бичээгүй бол ирж
+байгаа болон явж байгаа бүх пакетуудыг галт хана хаах болно.
/etc/rc.conf Тохируулгууд
- галт ханыг идэвхжүүлэхийн тулд:
+ Галт ханыг идэвхжүүлэхийн тулд:
firewall_enable="YES"
&os;-тэй хамт ирдэг анхдагч галт ханын төрлүүдээс нэгийг
сонгохын тулд, /etc/rc.firewall файлыг уншсаны дараа
нэгийг сонгоод, түүнийгээ дараах илэрхийлэлд бичиж өгнө:
firewall_type="open"
Боломжит утгууд нь:
open — бүх урсгалыг нэвтрүүлнэ.
client — зөвхөн энэ машиныг хамгаална.
simple — бүхэл бүтэн сүлжээг хамгаална.
closed — loopback интерфэйсээс бусад IP
урсгалыг боломжгүй болгоно.
UNKNOWN — галт ханын дүрмүүдийг ачаалах
боломжгүй болгоно.
- filename — галт ханын дүрмүүдийг агуулсан
+ filename — галт ханын дүрмүүдийг агуулсан
файлын бүрэн зам.
ipfw галт хана уруу тусгайлан бэлдсэн
дүрмүүдийг хоёр аргаар ачаалж болно. Нэг нь, firewall_type хувьсагчийн
утганд &man.ipfw.8;-д зориулсан ямар ч тушаал мөрийн тохируулгагүйгээр бичигдсэн
галт ханын дүрмүүд-г агуулсан файлын бүрэн замыг өгөх. Дүрмүүдийг агуулсан
хялбар жишээ файл дараах байдалтай байж болно:
add block in all
add block out all
Нөгөө нь, систем ачаалах үед ажиллах ipfw тушаалуудыг
агуулсан ажиллах боломжтой скриптийн бүрэн замыг firewall_script
хувьсагчид оноох юм. Дээр үзүүлсэн дүрмүүдийн файлтай дүйх дүрмүүдийн скрипт дараах байдалтай
байна:
#!/bin/sh
ipfw -q flush
ipfw add block in all
ipfw add block out all
Хэрэв firewall_type нь client
эсвэл simple утгыг авсан бол, /etc/rc.firewall
файл доторх анхдагч дүрмүүдийг тухайн машинд тохируулан өөрчлөх хэрэгтэй.
Мөн энэ бүлэгт хэрэглэж байгаа жишээнүүдийн хувьд firewall_script-н утга
/etc/ipfw.rules гэж үзэж байгаа болно.
Бүртгэлийг идэвхжүүлэхийн тулд:
firewall_logging="YES"
firewall_logging хувьсагчийн
хийх ганц зүйл гэвэл net.inet.ip.fw.verbose sysctl
хувьсагчийн утгыг 1 болгох юм ( хэсгийг үзнэ үү). rc.conf
дотор бүртгэлийг хязгаарлах хувьсагч байхгүй, харин үүний тулд
sysctl хувьсагчаар дамжуулан хийж болно. /etc/sysctl.conf
файл дотор эсвэл гараараа утгыг оноож өгч болно:
net.inet.ip.fw.verbose_limit=5
Хэрэв таны машин гарц байдлаар ажиллаж байгаа бол,
жишээ нь &man.natd.8;-н тусламжтай Сүлжээний хаягийн Хөрвүүлэлт (NAT) хийж байгаа бол,
/etc/rc.conf файл доторх шаардлагатай тохируулгуудын
мэдээллийг хэсэг уруу хандана уу.
IPFW Тушаал
ipfw
- галт ханыг ажиллаж байх явцад түүний идэвхтэй байгаа дотоод
+ Галт ханыг ажиллаж байх явцад түүний идэвхтэй байгаа дотоод
дүрмүүдэд шинэ дүрэм нэмэх, дүрэм хасах зэрэг өөрчлөлтүүдийг гараар хийх
-гол механизм бол ipfw тушаал юм. Энэ аргыг хэрэглэхэд тулгардаг нэг асуудал
-бол нэгэнт системийг унтраасан эсвэл зогсоосон бол таны нэмсэн эсвэл хассан
+гол механизм бол ipfw тушаал юм. Энэ аргыг хэрэглэхэд тулгардаг нэг асуудал
+бол нэгэнт системийг унтраасан эсвэл зогсоосон бол нэмсэн эсвэл хассан
эсвэл өөрчилсөн бүх дүрмүүд алга болно. Бүх дүрмүүдээ нэг файлд бичээд систем
ачаалах үед энэ файлыг ашиглан дүрмүүдийг ачаалах, эсвэл одоо ажиллаж байгаа
галт ханын дүрмүүдийг файл дотор хийсэн өөрчлөлтүүдээр бүхлээр нь сольж тавих нь
энд хэрэглэж байгаа, та бүхэнд зөвлөх арга барил юм.
Удирдлагын дэлгэцэн дээр ажиллаж байгаа галт ханын
-дүрмүүдийг харуулахад ipfw тушаалыг одоо хэр нь хэрэглэсээр байна.
+дүрмүүдийг харуулахад ipfw тушаалыг одоо хэр нь хэрэглэсээр байна.
IPFW-н данс хөтлөх боломж нь дүрэм бүрийн хувьд тухайн дүрэмд тохирсон
пакетийг тоолох тоолуурыг үүсгэдэг. Ямар нэг дүрмийг шалгах үйл явцад тухайн
дүрэм ажиллаж байгаа эсэхийг тогтоох аргуудын нэг бол дүрмийг тоолуурын хамт
жагсаан харах байдаг.
Бүх дүрмүүдийг дараагаар нь жагсаан харахын тулд:
&prompt.root; ipfw list
Бүх дүрмүүдийг тухайн дүрэм хамгийн сүүлд тохирсон цагны хамт
жагсаан харахын тулд:
&prompt.root; ipfw -t list
- Данслалтын мэдээлэл болон дүрмүүдийг тохирсон пакетийн тооны
-хамт харахын тулд. Эхний багана нь дүрмийн дугаар, дараа нь энэ дүрэмд
+ Дараагийн жишээ нь данслалтын мэдээлэл буюу дүрмүүдийг тохирсон пакетийн тооны
+хамт харуулж байна. Эхний багана нь дүрмийн дугаар, дараа нь энэ дүрэмд
тохирсон гарч байгаа пакетийн тоо, дараа нь энэ дүрэмд тохирсон орж байгаа
пакетийн тоо, тэгээд дүрэм өөрөө байна.
&prompt.root; ipfw -a list
Статик дүрмүүдээс гадна динамик дүрмүүдийг жагсаан харахын тулд:
&prompt.root; ipfw -d list
Мөн хугацаа нь дууссан динамик дүрмүүдийг харахын тулд:
&prompt.root; ipfw -d -e list
Тоолууруудыг тэглэхийн тулд:
&prompt.root; ipfw zero
Зөвхөн NUM дугаартай тоолуурыг тэглэхийн тулд:
&prompt.root; ipfw zero NUM
IPFW Дүрмийн Олонлог
-
+
Пакет дотор агуулагдаж байгаа утгуудыг үндэслэн тухайн пакетийг
-нэвтрүүлэх болон хаахыг хэлж байгаа дүрмүүдийг дүрмийн олонлог гэнэ. Хостуудын
-хоорондох хоёр чиглэлтэй пакет солилцоо нь сесс харилцааг бүрдүүлнэ. галт ханын
-дүрмийн олонлогоор пакет хоёр дахин шүүгдэнэ, эхний удаа Интернэтээс пакетийг
-хүлээн авахад, дараагийн удаа буцаж Интернэт уруу гарч явахад. Бүх TCP/IP үйлчилгээнүүдийн
-хувьд (жишээ нь: telnet, www, mail, г.м.) ямар протоколоор ажиллах болон эхлэл ба
-очих IP хаяг, эхлэл ба очих порт хаяг зэргийг урьдаас тодорхойлж өгсөн байдаг.
-Эдгээр үзүүлэлтүүд дээр үндэслэн нэвтрүүлэх болох хаах дүрмүүдийг зохиодог.
+нэвтрүүлэх болон хаахыг хэлж байгаа дүрмүүдийг IPFW дүрмийн олонлог гэнэ. Хостуудын
+хоорондох хоёр чиглэлтэй пакет солилцоо нь сесс харилцааг бүрдүүлнэ. Галт ханын
+дүрмийн олонлог нь Интернэтээс ирж байгаа пакетууд болон тэдгээрт хариу болж
+системээс явж байгаа пакетуудыг боловсруулдаг.
+Бүх TCP/IP үйлчилгээнүүдийн
+хувьд (жишээ нь: telnet, www, mail, г.м.) протокол болон зөвшөөрөгдсөн (сонсох)
+портыг урьдчилан тодорхойлсон байдаг.
+Тухайн нэг үйлчилгээ рүү чиглэсэн пакетууд нь зөвшөөрөгдөөгүй (өндөр)
+ портууд ашиглан эх хаягаас гарч очих хаягийн тухайн үйлчилгээний
+ порт руу хүрдэг. Дээрх өгөгдлүүд (өөрөөр хэлбэл портууд ба хаягууд)
+ нь үйлчилгээнүүдийг зөвшөөрөх эсвэл хаах дүрмүүдийг үүсгэхэд
+ шалгуур болон ашиглагдаж болно.
IPFW
Дүрмүүдтэй ажиллах дэс дараалал
- пакетийг галт хана хүлээн аваад дүрмийн олонлогт байгаа хамгийн
+ Пакетийг галт хана хүлээн аваад дүрмийн олонлогт байгаа хамгийн
эхний дүрэмтэй тулгах ба цааш дүрмүүдийн дугаарын өсөх дарааллын дагуу
дээрээс доош нэг нэгээр шалгаж эхэлнэ. Пакет аль нэг дүрмийн сонголтын
параметртай тохирвол, түүнд харгалзах үйлдлийг хийж, тухайн пакетийн хувьд
цааш хайлтыг дуусгана. Энэ аргыг эхэнд тохирсон нь дийлнэ
хайлтын
арга гэнэ. Хэрэв тухайн пакет ямар ч дүрэмд тохирохгүй бол, энэ пакетийг 65535 дугаартай
бүх пакетийг хааж, явуулсан хүнд нь ямар ч хариу өгөлгүй орхигдуулна гэсэн
-ipfw-н анхдагч дүрэмд албаар тохируулна.
+IPFW-н анхдагч дүрэмд албаар тохируулна.
count, skipto ба tee
дүрмүүдийн дараа хайлт үргэлжилнэ.
- Энд байгаа зааварчилгаанууд нь төлөвт 'keep state', 'limit', 'in'/'out',
-ба via зэрэг тохируулгуудыг агуулсан дүрмүүд дээр үндэслэгдсэн байгаа. Энэ бол хамааруулсан
+ Энд байгаа зааварчилгаанууд нь төлөвт keep state, limit, in, out
+ болон via зэрэг тохируулгуудыг агуулсан дүрмүүд дээр үндэслэгдсэн байгаа. Энэ бол хамааруулсан
галт ханын дүрмийн олонлогийг бичих үндсэн арга барил юм.
-
-
-Хамааруулсан галт хана нь зөвхөн дүрмүүдэд тохирсон пакетуудыг нэвтрүүлнэ.
-Ийм маягаар галт ханын цаанаас Интернэт уруу ямар ямар үйлчилгээнүүд
-гарч болох болон эсрэгээр Интернэтээс дотоод сүлжээ уруу ямар ямар үйлчилгээнүүд нэвтэрч
-болохыг удирдах боломжтой. Эдгээрээс бусад бүх урсгалыг хааж, бүртгэдэг байхаар зохиогдсон
-байдаг. Хамааруулсан галт хана нь хамааруулаагүй галт ханаас аюулгүй байдлын хувьд
-хэд дахин илүү, тиймээс энд бид зөвхөн хамааруулсан галт ханын дүрмүүдийн талаар
-ярилцах болно.
-
- галт ханын дүрмүүдтэй ажиллахдаа маш анхааралтай байх хэрэгтэй.
+ Галт ханын дүрмүүдтэй ажиллахдаа маш анхааралтай байх хэрэгтэй.
Зарим тохиргоо серверээс бүх холбоог тань тасалж мэднэ.
Дүрмийн Синтакс
IPFW
дүрмийн синтакс
Энд үзүүлсэн дүрмийн синтакс нь стандарт хамааруулсан
галт хана үүсгэхэд шаардлагатай дүрмийн олонлогийг бичих хэмжээнд
тохируулан хялбаршуулсан байгаа. Дүрмийн синтаксын бүрэн тайлбарыг &man.ipfw.8;
заавар хуудаснаас үзнэ үү.
Дүрмүүд нь түлхүүр үгүүдийг агуулна. Эдгээр түлхүүр үгүүд нь
тухайн мөрөнд зүүнээс баруун тийш тодорхой дэс дараагаар бичигдэнэ.
Түлхүүр үгүүд тодоор бичигдэх тул түүгээр нь ялгаж танина. Зарим түлхүүр
үгүүд дэд-тохируулгатай байна. Тэр нь өөрөө түлхүүр үг байж болохоос гадна
цааш дэд-тохируулгуудыг агуулсан байж болно.
# гэсэн тэмдэгт тайлбарын эхлэлийг заах ба
дүрэм бичсэн мөрийн төгсгөлд эсвэл өөрөө бүтэн мөр байдлаар байрлана.
Хоосон мөрийг тооцохгүй.
CMD RULE_NUMBER ACTION LOGGING SELECTION
STATEFUL
CMD
Шинэ дүрэм бүр дотоод хүснэгтэнд бичигдэхийн тулд
add гэсэн түлхүүр үгийг өмнөө агуулж байх ёстой.
RULE_NUMBER
Дүрэм бүр өөрийн дүрмийн дугаартай байх ёстой.
ACTION
Тухайн дүрмийн сонголтын үзүүлэлтэд пакет тохироход
заасан action буюу үйлдлийг гүйцэтгэх ба дүрэм нь дараах үйлдлүүдийн
аль нэгтэй холбогдсон байна.
allow | accept | pass |
permit
Эдгээр нь бүгд нэг зүйлийг, тухайлбал: дүрэмд тохирсон пакетуудыг нэвтрүүлж, галт ханын
дүрэмтэй ажиллах явцаас гарахыг хэлж өгч байна. Эдгээр дүрмүүдийн дараа хайлт
дуусна.
check-state
нь динамик дүрмийн хүснэгттэй пакетуудыг
тулгана. Хэрэв тохирвол, энэ динамик дүрмийг үүсгэсэн дүрэмд харгалзах
үйлдлийг гүйцэтгэнэ, үгүй бол дараагийн дүрэмд шилжинэ. check-state дүрэмд
сонголтын шалгуур байхгүй. Хэрэв дүрмийн олонлогт check-state дүрэм байхгүй бол
эхний keep-state эсвэл limit дүрмийг динамик дүрмийн хүснэгттэй тулгана.
deny | drop
Энэ хоёр үг хоёул дүрэмд тохирсон пакетуудыг хаяхыг
заана. Хайлт энд дуусна.
Бүртгэл хөтлөлт
log эсвэл logamount
- Пакет log гэсэн түлхүүр үг орсон дүрэмд тохироход, энэ тухай мессеж
-syslogd уруу SECURITY гэсэн facility нэртэйгээр бүртгэгдэнэ. Зөвхөн
-тухайн дүрмийн хувьд бүртгэгдсэн пакетийн тоо logamount параметрийн утгыг
-даваагүй тохиолдолд бүртгэл явагдана. Хэрэв logamount-н утгыг зааж өгөөгүй бол,
-sysctl-н net.inet.ip.fw.verbose_limit хувьсагчийн утгыг хязгаарын утга болгон авна.
+ Пакет log гэсэн түлхүүр үг орсон дүрэмд тохироход, энэ тухай мессеж
+&man.syslogd.8; уруу SECURITY гэсэн facility нэртэйгээр бүртгэгдэнэ. Зөвхөн
+тухайн дүрмийн хувьд бүртгэгдсэн пакетийн тоо logamount параметрийн утгыг
+даваагүй тохиолдолд бүртгэл явагдана. Хэрэв logamount-н утгыг зааж өгөөгүй бол,
+sysctl-н net.inet.ip.fw.verbose_limit хувьсагчийн утгыг хязгаарын утга болгон авна.
Аль ч тохиолдолд тэг гэсэн утга бүртгэлийн хязгаарыг үгүй болгоно. Хязгаарт тулсан
тохиолдолд, бүртгэлийг дахин идэвхжүүлэхийн тулд бүртгэлийн тоолуурыг эсвэл
-тухайн дүрмийн пакет тоолуурыг дахин эхлүүлнэ. ipfw reset log тушаалыг үзнэ үү.
+тухайн дүрмийн пакет тоолуурыг дахин эхлүүлнэ. ipfw reset log тушаалыг үзнэ үү.
Бүртгэл нь бусад бүх пакет тохирох нөхцлүүд амжилттай нотлогдсоны дараа,
мөн тухайн пакет дээр эцсийн үйлдлийг(зөвшөөрөх, татгалзах) хийхийн өмнө явагдана.
Ямар дүрмүүдийн хувьд бүртгэл явуулахыг та шийдэх болно.
Сонголт
Энд танилцуулах түлхүүр үгнүүд нь тухайн пакет дүрэмд тохирч байгаа
үгүй эсэхийг тодорхойлох үед, шалгагдаж байгаа пакетийн шинжүүдийг тодорхойлно.
Дараах байнгын хэрэглээний шинжүүд өгөгдсөн байдаг ба доорх дэс дарааллаар хэрэглэнэ:
udp | tcp | icmp
- эсвэл /etc/protocols файлд байгаа ямар ч протоколын
-нэрийг хэрэглэж болно. Харин утга нь шалгагдах протоколын нэрийг заана. Энэ бол заавал
+ /etc/protocols файлд байгаа ямар ч протоколын
+нэрийг бас хэрэглэж болно. Харин утга нь шалгагдах протоколын нэрийг заана. Энэ бол заавал
тавигдах шаардлага юм.
from src to dst
-from src to dst: from ба to гэсэн
-түлхүүр үгүүд IP хаягийг шүүхэд хэрэглэгдэнэ. Хэрэглэх бол эхлэл ба
-очих параметрийг ХОЁУЛАНГ зааж өгөх хэрэгтэй. any
-гэсэн тусгай түлхүүр үгийн тусламжтай ямар ч IP хаягийг зөвшөөрч өгч болно.
-Хэрэглэх жишээ: from any to any
- эсвэл from 0.0.0.0/0 to any
эсвэл from any to
- 0.0.0.0/0
эсвэл from 0.0.0.0 to any
эсвэл
- from any to 0.0.0.0
.
-
- from ба to гэсэн түлхүүр үгүүд IP хаягийг шүүхэд хэрэглэгдэнэ.
-Дүрмэнд хэрэглэхдээ эхлэл ба очих параметрүүдийг ХОЁУЛАНГ зааж өгөх ёстой.
+ from ба to гэсэн түлхүүр үгүүд IP хаягийг шүүхэд хэрэглэгдэнэ.
+Дүрмэнд хэрэглэхдээ эхлэл ба очих параметрүүдийг ХОЁУЛАНГ зааж өгөх ёстой.
any гэсэн тусгай түлхүүр үгийн тусламжтай бүх IP хаягийг
зөвшөөрч өгч болно. me гэсэн тусгай түлхүүр үг нь таны
&os; системийн аль нэг интерфэйс дээр тохируулсан IP хаягийг заах ба
-галт хана ажиллаж байгаа PC-г (өөрөөр хэлбэл энэ машин) 'from me to any'
-эсвэл 'from any to me' эсвэл 'from 0.0.0.0/0 to any' эсвэл 'from any to 0.0.0.0/0'
-эсвэл 'from 0.0.0.0 to any' эсвэл 'from any to 0.0.0.0' эсвэл 'from me to 0.0.0.0'
+галт хана ажиллаж байгаа PC-г (өөрөөр хэлбэл энэ машин) from me to
+any эсвэл from any to me эсвэл from 0.0.0.0/0 to any эсвэл
+from any to 0.0.0.0/0 эсвэл from 0.0.0.0 to any эсвэл from
+any to 0.0.0.0 or from me to 0.0.0.0
гэсэн байдлаар төлөөлнө. IP хаягуудыг цэгтэй тоон хэлбэр/багийн-урт байдлаар эсвэл
зүгээр цэгтэй тоон хэлбэрээр бичиж болно. Энэ бол заавал тавигдах шаардлага юм.
-Багийн уртыг бичихтэй холбоотой тусламжийг дараах хаягаар орж үзнэ үү.
+Тооцооллыг хялбар болгохын тулд net-mgmt/ipcalc
+портыг ашиглаж болох юм. Нэмэлт мэдээллийг хэрэгслийн вэб хуудаснаас үзэж
+болно:
port number
Портын дугаарыг дэмждэг протоколуудын хувьд
-(TCP ба UDP гэх мэт), тааруулахыг хүсэж байгаа портын
+(TCP ба UDP гэх мэт), тааруулахыг хүсэж байгаа портын
дугаарыг заавал бичиж өгөх ёстой байдаг. Портын тоон утгын оронд үйлчилгээний нэрийг(/etc/services
файлаас) хэрэглэж болно.
in | out
Орж байгаа болон гарч байгаа пакетуудыг харгалзан тааруулна.
-in ба out нь түлхүүр үгүүд бөгөөд дүрэмд тааруулах шалгуур болгож энэ хоёр
+in ба out нь түлхүүр үгүүд бөгөөд дүрэмд тааруулах шалгуур болгож энэ хоёр
үгийн аль нэгийг заавал бичсэн байх ёстой.
via IF
Нэрээр нь зааж өгсөн интерфэйсээр дайран өнгөрч буй пакетуудыг
тааруулна. via гэсэн түлхүүр үг нь тухайн интерфэйсийг тааруулах үйл явцын
нэг хэсэг байдлаар байнга шалгаж байхыг зааж өгнө.
setup
Энэ түлхүүр үг нь TCP пакетуудын хувьд
сесс эхлүүлэх хүсэлтийг зааж өгч байгаа заавал хэрэглэх түлхүүр үг юм.
keep-state
Энэ бол заавал хэрэглэх түлхүүр үг юм. Дүрэм таарахад, галт хана
яг тэр протоколыг ашиглан эхлэл болон очих IP/портын хооронд үүсэх
хоёр чиглэлтэй урсгалыг тааруулах анхдагч чанартай динамик дүрэм үүсгэнэ.
limit {src-addr | src-port | dst-addr |
dst-port}
Дүрэмд заасантай адил параметрүүдтэй холболтын тоог N-р
хязгаарлана. Нэг ба түүнээс дээш тооны эхлэл болон очих хаягууд, портуудыг зааж өгч болно.
-'limit' ба 'keep-state'-г нэг дүрэмд хамтад нь хэрэглэж болохгүй. Limit нь 'keep-state'-тэй адил төлөвт
+limit ба keep-state-г нэг дүрэмд хамтад нь хэрэглэж болохгүй.
+limit тохируулга нь keep-state-тэй адил төлөвт
функцуудыг гүйцэтгэхээс гадна өөрийн нэмэлт функцүүлтэй.
Төлөвт Дүрмийн Тохируулгууд
IPFW
төлөвт шүүлт
Төлөвт шүүлт нь урсгалыг сесс харилцаанаас бүрдэж буй хоёр чиглэлтэй пакет
солилцоо гэж үздэг. Мөн энэ нь сесс эхлүүлсэн болон хүлээн авсан хостуудын хоорондох сесс харилцаа нь
хоёр чиглэлтэй пакет солилцох процедуртай зохицож байгаа эсэхийг магадлах чадвартай байдаг.
Сесс харилцааны загварт зохицоогүй пакетийг хуурамч гэж үзэн хүлээж авахгүй.
- 'check-state' нь IPFW дүрмийн олонлогийн хаана нь пакетийг
+ check-state нь IPFW дүрмийн олонлогийн хаана нь пакетийг
динамик дүрмүүдийн боломжоор шалгахыг тогтооно. Таарсан тохиолдолд,
пакет галт ханыг нэвтэрч цааш явах ба энэ хоёр чиглэлт сесс харилцааны туршид
солилцох пакетуудын хувьд шинэ динамик дүрэм үүснэ. Таараагүй тохиолдолд,
пакет дүрмийн олонлогийн дараагийн дүрэмд шалгагдахаар шилжинэ.
Динамик дүрмүүдийн боломж нь маш олон тооны динамик дүрмүүдийг
нээдэг SYN-живүүлэх халдлагаас үүсэх нөөцийн хомсдолд эмзэг байдаг. Энэ халдлагаас зайлсхийхийн
-тулд &os; limit гэсэн шинэ тохируулгыг нэмж өгсөн байдаг. Энэ тохируулгын
-тусламжтай нэгэн зэрэг явагдах сесс харилцааны тоог хязгаарлана. Limit тохируулгад
+тулд &os; limit гэсэн шинэ тохируулгыг нэмж өгсөн байдаг. Энэ тохируулгын
+тусламжтай нэгэн зэрэг явагдах сесс харилцааны тоог хязгаарлана. limit тохируулгад
зааж өгсөн эхлэл болон очих талбаруудаар пакетийн IP хаягийг асуулга явуулах замаар шалгасны дараа,
-энэ дүрэмд энэ IP хаягийн хослол хэдэн удаа таарсан тоог харгалзан хэрэв энэ тоо хязгаараас
-давсан бол тухайн пакетийг гээнэ.
+энэ дүрэмд энэ IP хаягийн хослол хэдэн удаа таарсан тоог харгалзан хэрэв энэ тоо limit-д
+зааснаас давсан бол тухайн пакетийг гээнэ.
- галт ханын мессежийг бүртгэх
+ Галт ханын мессежийг бүртгэх
IPFW
бүртгэл хөтлөлт
Бүртгэл хөтлөлтийн ашиг тус тодорхой юм: Таны бүртгэхээр идэвхжүүлсэн
дүрмүүдийн хувьд, ямар пакетууд гээгдсэн, тэдгээр нь ямар хаягаас ирсэн, хаашаа явж байсан
зэрэг мэдээллийг эргэн харах боломжийг олгох ба гадны халдлагыг мөрдөхөд танд чухал хувь
нэмэр болно.
Бүртгэл хөтлөх боломжийг идэвхжүүлсэн хэдий ч,
IPFW нь өөрөө ямар ч дүрмийг үүсгэхгүй. Администратор аль дүрмүүдийн хувьд
-бүртгэл явуулахыг шийдэн, тэдгээр дүрмүүддээ log гэсэн түлхүүр үгийг нэмж бичнэ.
+бүртгэл явуулахыг шийдэн, тэдгээр дүрмүүддээ log гэсэн түлхүүр үгийг нэмж бичнэ.
Ихэвчлэн зөвхөн татгалзах дүрмүүдийг бүртгэдэг, жишээлбэл ирж буй ICMP ping-г
-татгалзах гэх мэт. Хамгийн сүүлд байгаа ipfw-н анхдагч татгалзах дүрмийг хувилан log түлхүүр
+татгалзах гэх мэт. Хамгийн сүүлд байгаа ipfw default deny everything
дүрмийг хувилан log түлхүүр
үгтэйгээр үүсгэх нь элбэг байдаг. Ийм байдлаар дүрмийн олонлогийн аль ч дүрмэнд таараагүй
пакетуудыг харах боломжтой болно.
Бүртгэл хөтлөлт нь хоёр талдаа иртэй сэлэмтэй адил юм,
хэрэв та хайхрамжгүй хандвал, диск дүүрэн бүртгэлийн мэдээлэл
дотроо учраа олохгүй суух болно. Дискийг дүүргэх DoS халдлага нь
-хамгийн эртний халдлагуудын нэг юм. Эдгээр бүртгэлийн мессеж нь syslogd-д
+хамгийн эртний халдлагуудын нэг юм. Эдгээр бүртгэлийн мессеж нь syslogd-д
бичигдэхээс гадна, root консол дэлгэцэн дээр гарах учир удахгүй ядаргаатай санагдаж
эхэлдэг.
IPFIREWALL_VERBOSE_LIMIT=5 гэсэн
-цөмийн тохируулга нь системийн бүртгэл хөтлөгч болох syslogd уруу
+цөмийн тохируулга нь системийн бүртгэл хөтлөгч болох &man.syslogd.8; уруу
шидэгдэж байгаа тухайн дүрэмд тохирсон пакетад харгалзах
дараалсан мессежийн тоог хязгаарлана. Энэ тохируулгыг идэвхжүүлсэн үед,
тодорхой дүрмийн хувьд дараалсан мессежийн тоог зааж өгсөн тоогоор хязгаарлана.
Нэг ижил зүйлийг хэлсэн 200 бүртгэлийн бичлэгээс мэдэж авах зүйл хомс юм.
-Жишээ нь, тодорхой дүрмийн хувьд дараалсан таван бичлэг syslogd-д бичигдэнэ,
-үлдсэн дараалсан ижил бичлэгүүд тоологдоод syslogd-д дараах байдалтай бичигдэнэ:
+Жишээ нь, тодорхой дүрмийн хувьд дараалсан таван бичлэг syslogd-д бичигдэнэ,
+үлдсэн дараалсан ижил бичлэгүүд тоологдоод syslogd-д дараах байдалтай бичигдэнэ:
last message repeated 45 times
Бүртгэл хөтлөгдөж байгаа бүх пакетуудын мессежүүд /etc/syslog.conf
файлд анхдагч байдлаар зааж өгсөн /var/log/security файлд бичигдэнэ.
Дүрмийн скриптийг бүтээх
Туршлагатай IPFW хэрэглэгчид дүрмүүдийг агуулсан файл үүсгээд
түүнийгээ скрипт байдлаар ажиллуулах боломжтой байхаар бичдэг.
-Үүний гол давуу тал нь шинэ дүрмүүдийг идэвхжүүлэхийн тулд
+Үүний гол давуу тал нь дүрмүүдийг идэвхжүүлэхийн тулд
системийг дахин ачаалах шаардлагагүй болно. Энэ аргыг ашиглан хэдэн ч
удаа дараалан галт ханын дүрмүүдийг ачаалж болох тул шинэ дүрмүүдийг
шалгах үед хэрэглэхэд тохиромжтой байдаг. Скрипт учраас олон дахин бичигдэж байгаа
утгын оронд симбол орлуулалтыг ашиглах боломжтой. Энэ талаар дараах жишээн дээрээс харна уу.
- Энд хэрэглэгдсэн скриптийн синтакс нь sh, csh, ба tcsh бүрхүүл дээр ажиллах
+ Энд хэрэглэгдсэн скриптийн синтакс нь &man.sh.1;, &man.csh.1;, &man.tcsh.1; бүрхүүл дээр ажиллах
боломжтой. Симбол орлуулалттай талбарууд нь урдаа $ буюу долларын тэмдэгтэй байна.
Симбол талбарууд нь $ тэмдэг урдаа байхгүй. Симбол талбарыг орлох утга нь
давхар хашилтан (") дотор байрлана.
Дүрмийн файлаа дараах байдалтай үүсгэж эхлэх хэрэгтэй:
############### start of example ipfw rules script #############
#
ipfw -q -f flush # Delete all rules
# Set defaults
oif="tun0" # out interface
odns="192.0.2.11" # ISP's DNS server IP address
cmd="ipfw -q add " # build rule prefix
ks="keep-state" # just too lazy to key this each time
$cmd 00500 check-state
$cmd 00502 deny all from any to any frag
$cmd 00501 deny tcp from any to any established
$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks
$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks
$cmd 00611 allow udp from any to $odns 53 out via $oif $ks
################### End of example ipfw rules script ############
Байх ёстой бүх зүйлс бүгд байна. Энэ жишээн дээр дүрмүүд чухал биш,
харин симбол орлуулалт хэрхэн ажилладагыг харуулсан байна.
Хэрэв дээрх жишээ /etc/ipfw.rules нэртэй файл дотор байсан бол,
эдгээр дүрмүүдийг дараах тушаалыг өгч дахин ачаалах боломжтой:
&prompt.root; sh /etc/ipfw.rules
/etc/ipfw.rules гэсэн файл ямар ч нэртэй байж
болох ба таны хүссэн ямар ч газар байж болно.
Дараах скриптийг хоёр аргын нэгээр хэрэглэж болно:
Дээрхтэй адил зүйлсийг дараах тушаалыг гараар оруулан
гүйцэтгэж болно:
&prompt.root; ipfw -q -f flush
&prompt.root; ipfw -q add check-state
&prompt.root; ipfw -q add deny all from any to any frag
&prompt.root; ipfw -q add deny tcp from any to any established
&prompt.root; ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state
&prompt.root; ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state
&prompt.root; ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state
Төлөвт дүрмийн олонлог
Дараах NAT хийгдээгүй дүрмийн олонлог нь
аюулгүй байдлыг маш сайн хангасан, хамааруулсан галт ханын дүрмүүдийг
хэрхэн бичих жишээ юм. Хамааруулсан галт хана нь зөвхөн pass дүрмүүдэд тохирсон
-үйлчилгээг зөвшөөрч, бусдыг бүгдийг хаана. Бүх галт хананууд хамгийн багадаа хоёр
+үйлчилгээг зөвшөөрч, бусдыг бүгдийг хаана. Сүлжээний бүх сегментийг хамгаалахаар
+хийгдсэн галт хананууд хамгийн багадаа хоёр
интерфэйстэй байх ба галт хана маягаар ажиллахын тулд дүрмүүдийг тусгайлан зааж
өгсөн байна.
&os;-г оролцуулаад бүх &unix; төрлийн систем нь үйлдлийн систем
дэх дотоод харилцаандаа lo0 интерфэйс болон 127.0.0.1 гэсэн IP хаягийг хэрэглэхээр
бүтээгдсэн байдаг. Галт ханын дүрмүүд нь дотооддоо хэрэглэж байгаа эдгээр пакетуудыг
чөлөөтэй нэвтрүүлэх дүрмүүдийг агуулсан байх ёстой.
- Интернэттэй холбогдож байгаа интерфэйс дээр та өөрийн Интернэт уруу гарч
-байгаа болон Интернэтээс ирж байгаа хандалтыг удирдах болон хянах дүрмүүдийг байрлуулна.
-Энэ нь таны PPP tun0 интерфэйс эсвэл таны DSL эсвэл кабель
+ Интернэттэй холбогдож байгаа интерфэйс дээр гадагшаа болон
+дотогшоо холболтуудыг удирдах болон хянах дүрмүүдийг байрлуулна.
+Энэ нь таны PPP tun0 интерфэйс эсвэл таны DSL эсвэл кабель
модемд холбогдсон NIC байж болно.
Галт ханын цаана байгаа хувийн LAN-уудад нэг болон түүнээс дээш
тооны NIC-ууд холбогдсон тохиолдолд, тэдгээр интерфэйсүүдийн хувьд тэдгээр LAN
интерфэйсүүдээс ирсэн пакетуудыг чөлөөтэй нэвтрүүлэх дүрмийг агуулсан байх ёстой.
Дүрмүүд эхлээд гурван үндсэн хэсэгт хуваагдан зохион байгуулагдсан
байх ёстой: бүх чөлөөт халдашгүй интерфэйсүүд, нийтийн гадагшаа интерфэйс болон нийтийн дотогшоо интерфэйс.
Нийтийн интерфэйс бүр дээр байгаа дүрмүүдийн дараалал нь хамгийн олон тохиолддог
дүрмүүд нь хамгийн түрүүнд цөөн тохиолддог дүрмүүдээс өмнө байхаар, тухайн интерфэйс болон чиглэлийн
хувьд хаах болон бүртгэх дүрмүүд нь хамгийн сүүлд байхаар бичигдсэн байна.
Дараах жишээн дээрх гадагшаа хэсэг нь Интернэт хандалтыг зөвшөөрч өгөх
-үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн 'allow' дүрмүүдээс бүрдэж байна.
-Бүх дүрмүүд 'proto', 'port', 'in/out', 'via' ба 'keep state' тохируулгуудыг агуулсан байгаа.
-'proto tcp' дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг keep state төлөвт хүснэгтэд нэмэх байдлаар,
-сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор 'setup' тохируулгыг агуулсан байна.
+үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн allow дүрмүүдээс бүрдэж байна.
+Бүх дүрмүүд proto, port, in/out, via ба
+keep state тохируулгуудыг агуулсан байгаа.
+proto tcp дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг keep state төлөвт хүснэгтэд нэмэх байдлаар,
+сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор setup тохируулгыг агуулсан байна.
Дотогшоо хэсэгт эхлээд хүсээгүй пакетуудыг хаах дүрмүүдийг бичсэн байна.
-Энэ нь хоёр өөр шалтгаантай. Эхнийх нь, энэ дүрмүүдээр хаагдсан зүйлс нь доор байгаа өөр нэг дүрмээр
-зөвшөөрөгдсөн пакетийн нэг хэсэг байж болох талтай. Хоёр дахь шалтгаан нь, цөөхөн тоотой хүлээж авдаг
-ба бүртгэх хүсэлгүй байгаа пакетуудыг сонгон, тэдгээрийг бүрнээр хаах дүрмийг эхлээд бичиж өгснөөр
-эдгээр пакетууд хамгийн сүүлд байгаа ямар ч дүрмүүдэд тохироогүй пакетуудыг бүртгээд хаана гэсэн
-дүрмээр дайрахгүй болгож байгаа юм. Учир нь энэ хэсгийн хамгийн сүүлд байгаа бүгдийг бүртгээд хаана
-гэсэн дүрэм бол өөрийн систем уруу халдаж байгаа халдлагын нотолгоог цуглуулах таны нэг арга билээ.
-
- Өөр нэг тэмдэглэн хэлэх зүйл бол, хүсээгүй пакетуудын хариуд ямар ч хариу явуулахгүй,
-тэд зүгээр л орхигдож алга болно. Ингэснээр халдлага явуулагч түүний явуулсан пакетууд таны системд
+Энэ нь хоёр өөр шалтгаантай. Эхнийх нь хортой пакетууд нь
+зөвшөөрөгдсөн пакетийн нэг хэсэг байж болох талтай. Эдгээр пакетуудыг
+allow дүрэмд таарсан хэсэг дээр тулгуурлан зөвшөөрөлгүйгээр орхих ёстой.
+Хоёр дахь шалтгаан нь тухайн хэсгийн хамгийн сүүлийн дүрмээр хааж бүртгэхийн оронд мэдэгдэж байгаа,
+сонирхолгүй пакетуудыг чимээгүйхэн хааж болох юм.
+Бүх пакетуудыг бүртгээд хаадаг хэсгийн хамгийн сүүлийн дүрмийг өөрийн систем уруу халдаж
+байгаа хүмүүсийг шүүхэд шаардагдах халдлагын нотолгоог цуглуулахад хэрэглэж болно.
+
+ Өөр нэг тэмдэглэн хэлэх зүйл бол, хүсээгүй пакетуудын хариуд ямар ч хариу явуулахгүй
+ байх ёстойг санах хэрэгтэй. Буруу пакетууд орхигдож алга болох ёстой.
+ Ингэснээр халдлага явуулагч нь түүний явуулсан пакетууд таны системд
хүрсэн эсэх талаар юу ч мэдэхгүй үлдэх болно. Таны системийн талаар хэдий хэр бага мэднэ, төдий чинээ
-аюулгүй байна гэсэн үг юм. Хэрвээ мэдэхгүй дугаартай портын хувьд пакетууд бүртгэгдсэн байвал
+аюулгүй байна гэсэн үг юм. Танигдаагүй портын дугаартай пакетуудын хувьд
/etc/services/ файлаас эсвэл
хаягаар тухайн порт ямар зориулалтаар ашиглагддагийг орж шалгаарай.
Троянуудын хэрэглэдэг портын дугааруудыг хаягаар орж шалгаарай.
Хамааруулсан дүрмийн олонлогийн жишээ
Дараах NAT хийгдээгүй дүрмийн олонлог нь
бүрэн хэмжээний хамааруулсан дүрмийн олонлог байгаа юм. Та энэ дүрмүүдийг өөрийн системдээ
ашиглахад буруудах юмгүй. Зөвшөөрөхийг хүсэхгүй байгаа үйлчилгээнүүдийн хувьд харгалзах
-нэвтрүүлэх дүрмийг далдлаарай. Хэрэв бүртгэлд байгаа зарим мэдэгдлийг дахин харахыг хүсэхгүй,
-бүртгэхийг хүсэхгүй байгаа бол дотогшоо хэсэгт хаах дүрэм нэмж бичээрэй. Дүрэм бүрт байгаа
-'dc0' гэсэн интерфэйсийн нэрийн оронд таны системийг Интернэт уруу холбож байгаа NIC картны
-интерфэйсийн нэрээр сольж тавиарай. Хэрэглэгчийн PPP-н хувьд, энэ нь 'tun0' байна.
+pass дүрмийг далдлаарай. Хэрэв бүртгэлд байгаа зарим мэдэгдлийг дахин харахыг хүсэхгүй,
+бүртгэхийг хүсэхгүй байгаа бол дотогшоо хэсэгт deny дүрэм нэмж бичээрэй. Дүрэм бүрт байгаа
+dc0 гэсэн интерфэйсийн нэрийн оронд таны системийг Интернэт уруу холбож байгаа NIC картны
+интерфэйсийн нэрээр сольж тавиарай. Хэрэглэгчийн PPP-н хувьд, энэ нь tun0 байна.
- Эдгээр дүрмүүдийг хэрэглэх явцад та хэв маяг олж харах болно.
+ Эдгээр дүрмүүдийг хэрэглэх явцад хэв маяг олж харах болно.
Интернэт уруу чиглэсэн сесс эхлүүлэх хүсэлтийг төлөөлж байгаа
-илэрхийллүүд бүгд keep-state хэрэглэж байгаа.
+илэрхийллүүд бүгд keep-state хэрэглэж байгаа.
Интернэтээс ирж буй бүх зөвшөөрөгдсөн үйлчилгээнүүд живүүлэх халдлагыг
-зогсоох үүднээс limit гэсэн тохируулгын хамт бичигдсэн байгаа.
+зогсоох үүднээс limit гэсэн тохируулгын хамт бичигдсэн байгаа.
- Бүх дүрмүүд чиглэлийг тодотгохын тулд in эсвэл out-г хэрэглэсэн байгаа.
+ Бүх дүрмүүд чиглэлийг тодотгохын тулд in эсвэл out-г хэрэглэсэн байгаа.
- Бүх дүрмүүд пакетийн дайран өнгөрөх интерфэйсийг тодорхойлж өгөхдөө via-г хэрэглэсэн байгаа.
+ Бүх дүрмүүд пакетийн дайран өнгөрөх interface-name интерфэйсийг тодорхойлж өгөхдөө via-г хэрэглэсэн байгаа.
Дараах дүрмүүд /etc/ipfw.rules дотор байрлана.
################ Start of IPFW rules file ###############################
# Flush out the list before we begin.
ipfw -q -f flush
# Set rules command prefix
cmd="ipfw -q add"
pif="dc0" # public interface name of NIC
# facing the public Internet
#################################################################
# No restrictions on Inside LAN Interface for private network
# Not needed unless you have LAN.
# Change xl0 to your LAN NIC interface name
#################################################################
#$cmd 00005 allow all from any to any via xl0
#################################################################
# No restrictions on Loopback Interface
#################################################################
$cmd 00010 allow all from any to any via lo0
#################################################################
# Allow the packet through if it has previous been added to the
# the "dynamic" rules table by a allow keep-state statement.
#################################################################
$cmd 00015 check-state
#################################################################
# Interface facing Public Internet (Outbound Section)
# Interrogate session start requests originating from behind the
# firewall on the private network or from this gateway server
# destine for the public Internet.
#################################################################
# Allow out access to my ISP's Domain name server.
# x.x.x.x must be the IP address of your ISP.s DNS
# Dup these lines if your ISP has more than one DNS server
# Get the IP addresses from /etc/resolv.conf file
$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state
$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state
# Allow out access to my ISP's DHCP server for cable/DSL configurations.
# This rule is not needed for .user ppp. connection to the public Internet.
# so you can delete this whole group.
# Use the following rule and check log for IP address.
# Then put IP address in commented out rule & delete first rule
$cmd 00120 allow log udp from any to any 67 out via $pif keep-state
#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state
# Allow out non-secure standard www function
$cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state
# Allow out secure www function https over TLS SSL
$cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state
# Allow out send & get email function
$cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state
$cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state
# Allow out FBSD (make install & CVSUP) functions
# Basically give user root "GOD" privileges.
$cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root
# Allow out ping
$cmd 00250 allow icmp from any to any out via $pif keep-state
# Allow out Time
$cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state
# Allow out nntp news (i.e. news groups)
$cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state
# Allow out secure FTP, Telnet, and SCP
# This function is using SSH (secure shell)
$cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state
# Allow out whois
$cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state
# deny and log everything else that.s trying to get out.
# This rule enforces the block all by default logic.
$cmd 00299 deny log all from any to any out via $pif
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Deny all inbound traffic from non-routable reserved address spaces
$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs
$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster interconnect
$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast
# Deny public pings
$cmd 00310 deny icmp from any to any in via $pif
# Deny ident
$cmd 00315 deny tcp from any to any 113 in via $pif
# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd 00320 deny tcp from any to any 137 in via $pif
$cmd 00321 deny tcp from any to any 138 in via $pif
$cmd 00322 deny tcp from any to any 139 in via $pif
$cmd 00323 deny tcp from any to any 81 in via $pif
# Deny any late arriving packets
$cmd 00330 deny all from any to any frag in via $pif
# Deny ACK packets that did not match the dynamic rule table
$cmd 00332 deny tcp from any to any established in via $pif
# Allow traffic in from ISP's DHCP server. This rule must contain
# the IP address of your ISP.s DHCP server as it.s the only
# authorized source to send this packet type.
# Only necessary for cable or DSL configurations.
# This rule is not needed for .user ppp. type connection to
# the public Internet. This is the same IP address you captured
# and used in the outbound section.
#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state
# Allow in standard www function because I have apache server
$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Allow in secure FTP, Telnet, and SCP from public Internet
$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Allow in non-secure Telnet session from public Internet
# labeled non-secure because ID & PW are passed over public
# Internet as clear text.
# Delete this sample group if you do not have telnet server enabled.
$cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Reject & Log all incoming connections from the outside
$cmd 00499 deny log all from any to any in via $pif
# Everything else is denied by default
# deny and log all packets that fell through to see what they are
$cmd 00999 deny log all from any to any
################ End of IPFW rules file ###############################
NAT болон Төлөвт дүрмийн олонлогийн жишээ
NAT
ба IPFW
IPFW-н NAT функцыг идэвхжүүлэхийн тулд зарим
нэмэлт тохиргооны илэрхийллүүдийг идэвхжүүлэх хэрэгтэй болдог. Цөмийн эх кодын
-бусад IPFIREWALL илэрхийллүүд дээр 'option IPDIVERT' илэрхийллийг нэмж эмхэтгэн
+бусад IPFIREWALL илэрхийллүүд дээр option IPDIVERT илэрхийллийг нэмж эмхэтгэн
тусгайлан бэлдсэн цөмийг гаргаж авах хэрэгтэй.
/etc/rc.conf доторх энгийн IPFW тохируулгууд дээр
нэмж дараах тохируулгууд хэрэгтэй болно.
natd_enable="YES" # Enable NATD function
natd_interface="rl0" # interface name of public Internet NIC
natd_flags="-dynamic -m" # -m = preserve port numbers if possible
- Төлөвт дүрмүүдийг divert natd (Сүлжээний хаягийн Хөрвүүлэлт)
+ Төлөвт дүрмүүдийг divert natd (Сүлжээний хаягийн Хөрвүүлэлт)
дүрмийн хамт хэрэглэх нь дүрмийн олонлог бичих логикийг төвөгтэй болгодог.
-'check-state' ба 'divert natd' дүрмүүдийн дүрмийн олонлог дахь байрлал нь маш
+check-state ба divert natd дүрмүүдийн дүрмийн олонлог дахь байрлал нь маш
их нөлөөтэй. Энэ нь хялбар дайраад-өнгөрөх логик урсгал биш болно.
-'skipto' гэсэн шинэ үйлдлийн төрлийг хэрэглэх болно. skipto тушаалыг хэрэглэхийн тулд
-хаашаа үсрэхээ тодорхойлохын тулд бүх дүрмүүдийг дугаарлах хэрэгтэй болно.
+skipto гэсэн шинэ үйлдлийн төрлийг хэрэглэх болно. skipto-г хэрэглэхдээ
+skipto дүрмийн дугаар хаашаа үсрэхээ мэдэж байхын тулд бүх дүрмүүдийг дугаарлах хэрэгтэй болно.
Дараах тайлбаргүй жишээн дээр пакет дүрмийн олонлогоор дайрч
өнгөрөх дарааллыг тайлбарлахаар сонгон авсан дүрэм бичих арга байгаа юм.
Дүрэмтэй ажиллах процесс дүрмийн файлд байгаа хамгийн эхний
дүрмээр эхлэн цааш дүрмүүдийг нэг нэгээр уншин, файлын төгсгөл хүртэл эсвэл
пакет аль нэг дүрмийн сонголтын шалгуурт тохирч галт ханыг орхих хүртэл үргэлжилнэ.
100, 101, 450, 500, ба 510 дугаартай дүрмүүдийн байрлалыг сайн анзаарах хэрэгтэй.
Эдгээр дүрмүүд нь гадагшаа болон дотогшоо чиглэлтэй пакетуудын хөрвүүлэлтийг
удирдах бөгөөд ингэснээр keep-state динамик хүснэгтэн дэх тэдгээрт харгалзах
мөрөнд хувийн LAN IP хаяг бүртгэгдсэн байх нөхцөлийг хангана. Дараа нь,
бүх зөвшөөрөх болон татгалзах дүрмүүдэд пакетийн явж буй чиглэл (өөрөөр хэлбэл гадагшаа эсвэл дотогшоо)
ба интерфэйсийг зааж өгсөн байгааг анзаараарай. Мөн гадагшаа сесс эхлүүлэх хүсэлтүүд,
-сүлжээний хаягийн хөрвүүлэлтийн бүх skipto дүрмүүд 500-с эхэлж байгааг анзаарна уу.
+сүлжээний хаягийн хөрвүүлэлтийн бүх skipto rule 500-с эхэлж байгааг анзаарна уу.
Нэгэн LAN хэрэглэгч вэб хуудас үзэхийн тулд вэб хөтчийг хэрэглэж байна гэж бодъё.
-Веб хуудсууд 80-р портыг ашиглан холбогдоно. Пакет галт хананд ирнэ,
+Веб хуудсууд 80-р портоор дамждаг. Пакет галт хананд ирнэ,
гадагшаа чиглэж байгаа тул 100-р дүрмэнд тохирохгүй. 101-р дүрмийг мөн
өнгөрнө, яагаад гэвэл энэ нь хамгийн анхны пакет тул keep-state
динамик хүснэгтэнд хараахан бичигдэж амжаагүй байгаа. Пакет эцэст нь
125-р дүрэм дээр ирж, дүрэмд таарна. Энэ пакет Интернэт уруу харсан
NIC-р гадагшаа гарч байгаа. пакетийн эхлэл IP хаяг нь хувийн LAN IP хаяг хэвээр байгаа.
-Энэ дүрмэнд таарах үед хоёр үйлдэл хийгдэнэ. keep-state тохируулга энэ дүрмийг
+Энэ дүрмэнд таарах үед хоёр үйлдэл хийгдэнэ. keep-state тохируулга энэ дүрмийг
keep-state динамик дүрмийн хүснэгтэнд нэмнэ, мөн зааж өгсөн үйлдлийг гүйцэтгэнэ.
Үйлдэл нь динамик хүснэгтэд нэмэгдсэн мэдээллийн нэг хэсэг байна. Энэ тохиолдолд
-"skipto rule 500" байна. 500-р дүрэм нь пакетийн IP хаягийг NAT хийж,
+skipto rule 500 байна. 500-р дүрэм нь пакетийн IP хаягийг NAT хийж,
пакетийг гадагш явуулна. Үүнийг бүү мартаарай, энэ бол маш чухал шүү.
-Энэ пакет өөрийн замаар хүрэх газраа хүрээд буцаж ирэхдээ мөн л энэ дүрмийн олонлогийг дайрна.
+Энэ пакет өөрийн замаар хүрэх газраа хүрэх бөгөөд хариу пакет үүсч буцаж илгээгдэнэ.
+Энэ шинэ пакет буцаж ирэхдээ мөн л энэ дүрмийн олонлогийг дайрна.
Энэ үед харин 100-р дүрэмд тохирч, очих IP хаяг нь буцаж харгалзах LAN IP хаяг уруу хөрвүүлэгдэнэ.
-Дараа нь check-state дүрмээр гарах ба хүснэгтэнд явагдаж байгаа сесс харилцаанд оролцож байгаа
+Дараа нь check-state дүрмээр гарах ба хүснэгтэнд явагдаж байгаа сесс харилцаанд оролцож байгаа
гэж тэмдэглэгдсэн тул цааш LAN уруу нэвтрэн орно. Тэгээд өөрийг нь анх явуулсан LAN PC уруу очих ба
алсын серверээс өөр хэсэг өгөгдлийг авахыг хүссэн шинэ пакетийг явуулна. Энэ удаа энэ пакет
-check-state дүрмээр шалгагдах ба түүний гадагшаа урсгалд харгалзах мөр олдох тул харгалзах
-үйлдэл 'skipto 500'-г гүйцэтгэнэ. Пакет 500-р мөр уруу үсэрч NAT хийгдэн цааш
+check-state дүрмээр шалгагдах ба түүний гадагшаа урсгалд харгалзах мөр олдох тул харгалзах
+үйлдэл skipto 500-г гүйцэтгэнэ. Пакет 500-р мөр уруу үсэрч NAT хийгдэн цааш
өөрийн замаар явах болно.
Дотогшоо урсгал дээр, идэвхтэй сесс харилцаанд оролцож байгаа
-гаднаас ирж байгаа бүх зүйлс автоматаар check-state дүрмээр болон зохих
-divert natd дүрмүүдээр шийдэгдэнэ. Энд бидний хийх ёстой зүйл бол
+гаднаас ирж байгаа бүх зүйлс автоматаар check-state дүрмээр болон зохих
+divert natd дүрмүүдээр шийдэгдэнэ. Энд бидний хийх ёстой зүйл бол
хэрэггүй пакетуудыг татгалзаж, зөвшөөрөгдсөн үйлчилгээг нэвтрүүлэх юм.
Галт ханын байгаа машин дээр апачи сервер ажиллаж байна, тэгээд Интернэтээс
хүмүүс энэ дотоод вэб сайт уруу хандаж байна гэж бодъё. Шинэ дотогшоо сесс эхлүүлэх
хүсэлтийн пакет 100-р дүрэмд тохирох бөгөөд түүний IP хаяг галт ханын LAN IP
хаяг уруу оноолт хийгдэнэ. Дараа нь энэ пакет цааш бүх дүрмүүдээр шалгагдан
эцэст нь 425-р дүрэмд тохирно. Энэ дүрэмд таарах үед хоёр үйлдэл хийгдэнэ.
Энэ дүрэм keep-state динамик дүрмийн хүснэгтэнд нэмэгдэнэ, мөн зааж өгсөн үйлдлийг гүйцэтгэнэ.
Гэвч энэ тохиолдолд энэ эхлэл IP хаягнаас эхэлсэн шинэ сесс эхлүүлэх хүсэлтийн тоо 2-оор хязгаарлагдана.
Энэ нь тодорхой порт дээр ажиллаж байгаа үйлчилгээний хувьд DoS халдлагаас хамгаална.
-Харгалзах үйлдэл нь зөвшөөрөгдсөн тул пакет LAN уруу нэвтэрнэ. Буцах замд check-state
-дүрэм энэ пакетийг идэвхтэй сесс харилцаанд хамаарч байгааг таних тул 500-р дүрэм уруу шилжүүлэн,
+Харгалзах үйлдэл нь allow тул пакет LAN уруу нэвтэрнэ. Хариу болон үүсгэгдсэн пакетыг
+check-state дүрэм идэвхтэй сесс харилцаанд хамаарч байгаа гэж танина. Тэгээд 500-р дүрэм уруу шилжүүлэн,
пакет тэнд NAT хийгдээд цааш гадагшаа интерфэйсээр гарна.
Жишээ дүрмийн олонлог #1:
#!/bin/sh
cmd="ipfw -q add"
skip="skipto 500"
pif=rl0
ks="keep-state"
good_tcpo="22,25,37,43,53,80,443,110,119"
ipfw -q -f flush
$cmd 002 allow all from any to any via xl0 # exclude LAN traffic
$cmd 003 allow all from any to any via lo0 # exclude loopback traffic
$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check-state
# Authorized outbound packets
$cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks
$cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks
$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 130 $skip icmp from any to any out via $pif $ks
$cmd 135 $skip udp from any to any 123 out via $pif $ks
# Deny all inbound traffic from non-routable reserved address spaces
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast
# Authorized inbound packets
$cmd 400 allow udp from xx.70.207.54 to any 68 in $ks
$cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1
$cmd 450 deny log ip from any to any
# This is skipto location for outbound stateful rules
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any
######################## end of rules ##################
Дараах жишээ дээрхтэй нилээд төстэй боловч туршлагагүй IPFW дүрэм бичигчид зориулан
дүрмүүд юунд зориулагдсаныг тайлбарласан тайлбартай байгаагаараа онцлог юм.
Жишээ дүрмийн олонлог #2:
#!/bin/sh
################ Start of IPFW rules file ###############################
# Flush out the list before we begin.
ipfw -q -f flush
# Set rules command prefix
cmd="ipfw -q add"
skip="skipto 800"
pif="rl0" # public interface name of NIC
# facing the public Internet
#################################################################
# No restrictions on Inside LAN Interface for private network
# Change xl0 to your LAN NIC interface name
#################################################################
$cmd 005 allow all from any to any via xl0
#################################################################
# No restrictions on Loopback Interface
#################################################################
$cmd 010 allow all from any to any via lo0
#################################################################
# check if packet is inbound and nat address if it is
#################################################################
$cmd 014 divert natd ip from any to any in via $pif
#################################################################
# Allow the packet through if it has previous been added to the
# the "dynamic" rules table by a allow keep-state statement.
#################################################################
$cmd 015 check-state
#################################################################
# Interface facing Public Internet (Outbound Section)
-# Interrogate session start requests originating from behind the
+# Check session start requests originating from behind the
# firewall on the private network or from this gateway server
-# destine for the public Internet.
+# destined for the public Internet.
#################################################################
# Allow out access to my ISP's Domain name server.
# x.x.x.x must be the IP address of your ISP's DNS
# Dup these lines if your ISP has more than one DNS server
# Get the IP addresses from /etc/resolv.conf file
$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state
# Allow out access to my ISP's DHCP server for cable/DSL configurations.
$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state
# Allow out non-secure standard www function
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state
# Allow out secure www function https over TLS SSL
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state
# Allow out send & get email function
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state
# Allow out FreeBSD (make install & CVSUP) functions
# Basically give user root "GOD" privileges.
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root
# Allow out ping
$cmd 080 $skip icmp from any to any out via $pif keep-state
# Allow out Time
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state
# Allow out nntp news (i.e. news groups)
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state
# Allow out secure FTP, Telnet, and SCP
# This function is using SSH (secure shell)
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state
# Allow out whois
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state
# Allow ntp time server
$cmd 130 $skip udp from any to any 123 out via $pif keep-state
#################################################################
# Interface facing Public Internet (Inbound Section)
-# Interrogate packets originating from the public Internet
-# destine for this gateway server or the private network.
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
#################################################################
# Deny all inbound traffic from non-routable reserved address spaces
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast
# Deny ident
$cmd 315 deny tcp from any to any 113 in via $pif
# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81 in via $pif
# Deny any late arriving packets
$cmd 330 deny all from any to any frag in via $pif
# Deny ACK packets that did not match the dynamic rule table
$cmd 332 deny tcp from any to any established in via $pif
# Allow traffic in from ISP's DHCP server. This rule must contain
# the IP address of your ISP's DHCP server as it's the only
# authorized source to send this packet type.
# Only necessary for cable or DSL configurations.
# This rule is not needed for 'user ppp' type connection to
# the public Internet. This is the same IP address you captured
# and used in the outbound section.
$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state
# Allow in standard www function because I have Apache server
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2
# Allow in secure FTP, Telnet, and SCP from public Internet
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2
# Allow in non-secure Telnet session from public Internet
# labeled non-secure because ID & PW are passed over public
# Internet as clear text.
# Delete this sample group if you do not have telnet server enabled.
$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2
# Reject & Log all unauthorized incoming connections from the public Internet
$cmd 400 deny log all from any to any in via $pif
# Reject & Log all unauthorized out going connections to the public Internet
$cmd 450 deny log all from any to any out via $pif
# This is skipto location for outbound stateful rules
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any
# Everything else is denied by default
# deny and log all packets that fell through to see what they are
$cmd 999 deny log all from any to any
################ End of IPFW rules file ###############################
diff --git a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
index b6c748b6c3..c5bb70a11d 100644
--- a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
@@ -1,1495 +1,1482 @@
Жим
Мок
Шинэчилж дахин бүтцийг өөрчилсөн
Жэйк
Хэмби
Анхлан хувь нэмэр болгож оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
FreeBSD цөмийг тохируулах нь
Ерөнхий агуулга
цөм
өөрчлөн тохируулж цөм бүтээх нь
Цөм нь &os; үйлдлийн системийн гол зүрх юм. Энэ нь санах ойг удирдах,
аюулгүй байдлын хяналтуудыг хийх, сүлжээнд холбогдох, диск уруу хандах
зэрэг олон үйлдлүүдийг хариуцан хийдэг. &os; улам илүү динамикаар тохируулагдах
болсон боловч зарим тохиолдолд цөмийг дахин тохируулж хөрвүүлэх шаардлага гардаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Та магадгүй яагаад өөрт тохируулсан цөм бүтээх хэрэгтэй талаар.
Цөмийн тохиргооны файлыг хэрхэн бичих эсвэл байгаа тохиргооны файлыг
хэрхэн өөрчлөх талаар.
Цөмийн тохиргооны файлыг хэрхэн ашиглаж шинэ цөм үүсгэж бүтээх талаар.
Шинэ цөмийг хэрхэн суулгах талаар.
Хэрэв юм буруугаар эргэвэл хэрхэн алдааг олох талаар.
Энэхүү бүлгийн жишээнүүд дэх тушаалууд нь амжилттай болохын тулд
root эрхээр ажиллах ёстой.
Яагаад өөрчлөн тохируулсан цөм бүтээх хэрэгтэй вэ?
Уламжлалаар бол &os; нь monolithic
цөмтэй байсан байна.
Энэ нь цөм тоотой хэдэн төхөөрөмжүүдийн жагсаалтыг дэмжсэн нэг том програм
байсан гэсэн үг бөгөөд хэрэв та цөмийн ажиллагааг өөрчлөх бол шинэ цөм хөрвүүлж
дараа нь компьютераа шинэ цөмөөр ачаалан эхлүүлэх шаардлагатай байсан билээ.
Өнөөдөр &os; нь цөмийн ихэнх ажиллагаагаа шаардлагын дагуу динамикаар ачаалдаг
ба цөмөөс буцааж буулгах боломж бүхий модулиудаар тусгаарлагдсан загвар уруу шилжиж
байна. Энэ нь цөм шинэ тоног төхөөрөмжид (зөөврийн компьютер дэх PCMCIA
картууд зэрэг) дасан зохицож түүнийг хурдан хүртээмжтэй болгох, эсвэл цөм анх
хөрвүүлэгдэхдээ цөмд хэрэггүй байсан шинэ ажиллагааг цөмд бий болгох боломжийг
бүрдүүлдэг. Үүнийг модульчлагдсан цөм хэмээдэг юм.
Тэгсэн ч гэсэн зарим статик цөмийн тохиргоог заавал хийх шаардлагатай. Зарим
тохиолдолд ажиллагаа нь цөмтэй нягт холбоотой учраас динамикаар ачаалахаар хийх
боломжгүй байдаг юм. Бас энэ нь энгийнээр бол тэр үйл ажиллагаанд зориулж динамикаар
ачаалах модулийг бичих цаг хэнд ч олдоогүй байж болох юм.
- Өөрчлөн тохируулсан цөм бүтээх нь BSD хэрэглэгчийн хувьд хамгийн чухал тэсвэрлэн давж гарах
+ Өөрчлөн тохируулсан цөм бүтээх нь BSD дэвшилтэт хэрэглэгчдийн хувьд хамгийн чухал
ажиллагаануудын нэг юм. Энэ процесс нь цаг их зарцуулах боловч таны &os; системд
олон ашиг өгөх болно.Өргөн хүрээний тоног төхөөрөмжүүдийг дэмжих ёстой
GENERIC цөмтэй харьцуулахад өөрчлөн тохируулсан цөм нь
зөвхөн таны PC-ний тоног төхөөрөмжүүдийг дэмждэг. Энэ нь дараах хэд хэдэн ашигтай:
Хурдан ачаалах хугацаа. Цөм нь таны систем дэх тоног төхөөрөмжүүдийг зөвхөн
шалгах учраас системийг ачаалах хугацаа мэдэгдэхүйц багасдаг.
- Санах ойн ашиглалт багасна. Өөрчлөн тохируулсан цөм нь ихэнхдээ
- GENERIC цөмөөс бага санах ойг ашигладаг бөгөөд
- энэ нь их чухал юм, яагаад гэвэл цөм үргэлж жинхэнэ санах ойд байж байх
- шаардлагатай байдаг. Ийм учраас өөрчилсөн цөм нь бага хэмжээний RAM-тай систем
+ Санах ойн ашиглалт багасна. Өөрчлөн тохируулсан цөм нь
+ ашиглагдахгүй байгаа боломжууд болон төхөөрөмжийн драйверуудыг
+ орхигдуулснаар ихэнхдээ GENERIC цөмөөс бага санах ойг
+ ашигладаг. Цөмийн код нь бусад програмуудад санах ойг ашиглах боломжгүй
+ болгож санах ойд үргэлж байрлаж байдаг учир энэ нь маш чухал юм.
+ Ийм учраас өөрчилсөн цөм нь бага хэмжээний RAM-тай систем
дээр ялангуяа ашигтай байдаг.
Нэмэлт тоног төхөөрөмжийн дэмжлэг. Дууны картууд зэрэг
GENERIC цөмд байхгүй төхөөрөмжүүдийн дэмжлэгийг
нэмэх боломжийг танд өөрчлөн тохируулсан цөм олгоно.
Том
Рөүдс
Бичсэн
Системийн тоног төхөөрөмж хайж олох нь
Цөмийн тохиргоо уруу орж үзээд алдахаасаа өмнө машиныхаа
тоног төхөөрөмжийн бүртгэлийг олж авах нь ухаалаг явдал юм.
&os; нь үндсэн үйлдлийн систем биш тохиолдолд байгаа үйлдлийн
системийн тохиргоог харан бүртгэлийн жагсаалтыг хялбархан
үүсгэж болно. Жишээ нь µsoft;-ийн
Device Manager буюу төхөөрөмжийн
менежер нь суулгагдсан төхөөрөмжүүдийн талаарх чухал
мэдээллийг ихэвчлэн агуулдаг.
Device Manager нь control panel
буюу хяналтын самбарт байрладаг.
µsoft.windows;-ийн зарим хувилбаруудад
System гэсэн дүрс байдаг бөгөөд
энэ нь Device Manager уруу хандах
боломжтой дэлгэцийг харуулдаг.
Хэрэв өөр үйлдлийн систем машин дээр байхгүй бол
администратор энэ мэдээллийг өөрөө олох хэрэгтэй болно.
Нэг арга нь &man.dmesg.8; хэрэгсэл болон &man.man.1;
тушаалуудыг ашиглах явдал юм. &os; дээр ихэнх төхөөрөмжийн
драйверууд нь дэмжигдсэн тоног төхөөрөмжүүдийн жагсаалтыг
харуулсан гарын авлагын хуудастай байдаг бөгөөд ачаалах үед
шалгаж байх явцад олдсон тоног төхөөрөмжийг харуулдаг.
Жишээ нь дараах мөрүүд нь psm
драйвер хулгана олсон гэдгийг харуулж байна:
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
Энэ драйвер нь өөрчлөн тохируулах цөмийн тохиргооны
файлд орсон байх эсвэл &man.loader.conf.5; ашиглан ачаалагдсан
байх хэрэгтэй болно.
Зарим тохиолдолд dmesg-ээс гарч
байгаа өгөгдөл нь ачаалалтын шалгалт, илрүүлэлтийн гаралтыг
биш зөвхөн системийн мэдэгдлүүдийг үзүүлдэг. Эдгээр тохиолдлуудад
/var/run/dmesg.boot файлыг
үзэн гаралтыг олж авч болно.
Тоног төхөөрөмжийг олох өөр нэг арга бол илүү дэлгэрэнгүй
гаралтыг үзүүлдэг &man.pciconf.8; хэрэгслийг ашиглах явдал юм.
Жишээ нь:
ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernet
pciconf ашиглан
олж авсан энэ бяцхан мэдээлэл нь ath
драйвер утасгүй Ethernet төхөөрөмжийг олсныг харуулж байна.
man ath тушаалыг
ашиглавал &man.ath.4; гарын авлагын хуудсыг харуулах
болно.
Ашигтай мэлээлэл олж авахын тулд &man.man.1; уруу
тугийг өгөн ашиглаж болно. Дээрхээс
ингэж өгч болно:
&prompt.root; man -k Atheros
Тухайн нэг үг агуулсан гарын авлагын хуудсын жагсаалтыг
олж авахын тулд:
ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)
Тоног төхөөрөмжийн жагсаалтаар зэвсэглэснээр
цөмийг өөрчлөн тохируулж бүтээх процесс нь арай хялбар болно.
Цөмийн драйверууд, дэд системүүд, болон модулиуд
kernel
drivers / modules / subsystems
Өөрчлөн тохируулсан цөмийг бүтээхийн өмнө тэгж хийх шалтгаанаа
бодож үзэх хэрэгтэй. Хэрэв тусгайлсан тоног төхөөрөмжийн дэмжлэг хэрэгтэй
байгаа бол тэр нь модуль хэлбэрээр аль хэдийн байж байж болох юм.
Цөмийн модулиуд нь /boot/kernel
санд байх бөгөөд ажиллаж байгаа цөмд &man.kldload.8;-г ашиглан динамикаар
дуудаж болдог. Цөмийн бүх драйверуудын ихэнх нь тусгай модуль болон гарын
авлагын хуудастай байдаг. Жишээ нь сүүлийн хэсэг ath
гэсэн утасгүй Ethernet драйверийн талаар дурдсан байдаг.
Энэ төхөөрөмж нь өөрийн гарын авлагадаа дараах мэдээллийг агуулсан
байдаг:
Alternatively, to load the driver as a module at boot time, place the
following line in &man.loader.conf.5:
if_ath_load="YES"
Зааврын дагуу /boot/loader.conf файлд
if_ath_load="YES" мөрийг нэмснээр энэ модулийг
ачаалах үед динамикаар дуудах боломжийг идэвхжүүлнэ.
Гэхдээ зарим тохиолдолд холбоотой модуль байдаггүй. Энэ нь
зарим нэг дэд системүүд болон маш чухал драйверуудын хувьд бодит
бөгөөд жишээ нь fast file system (FFS) буюу
түргэн файлын систем нь цөмд заавал байх шаардлагатай тохируулга юм.
Мөн сүлжээний дэмжлэгийн (INET) хувьд ийм байна.
Харамсалтай нь драйвер шаардлагатай эсэхийг хэлэх цорын ганц зам нь
модулийг нь шалгах явдал юм.
Төхөөрөмж эсвэл тохируулгын цөмд цуг бүтээгдсэн дэмжлэгийг устгаж
эвдэрхий цөмтэй үлдэх нь их хялбар юм. Жишээ нь &man.ata.4;
драйверийг цөмийн тохиргооны файлаас авчих юм бол ATA
дискийн хөтөчүүд нь loader.conf-д тусгай мөр
нэмэлгүйгээр эхлэн ачаалахгүй байж болох юм. Хэрэв эргэлзэж байгаа
бол модулийг шалгаад дараа нь ердөө л дэмжлэгийг цөмд үлдээх
хэрэгтэй.
Өөрчлөн тохируулсан цөмийг бүтээх ба суулгах нь
цөм
бүтээх / суулгах
Эхлээд цөм бүтээх сангаар аялая. Дурдсан бүх сангуудаас гол нь
/usr/src/sys сан байх бөгөөд
/sys гэсэн замаар бас хандах боломжтой.
Энд байгаа хэд хэдэн дэд сангууд цөмийн өөр өөр хэсгүүдийг илэрхийлэх бөгөөд
бидний зорилгод хамгийн чухал нь таны өөрчлөн тохируулах цөмийн тохиргоог
засварлах arch/conf
сангууд болон таны цөм бүтээгдэх шатны талбар compile
сан юм. arch нь
i386, alpha,
amd64, ia64,
powerpc, sparc64, эсвэл
pc98 (Японд их ашиглагддаг PC тоног төхөөрөмжийн
өөр нэг хөгжүүлэлтийн салбар) зэргийг төлөөлдөг. Тухайн архитектурын сан доторх
код зөвхөн тэр архитектуртай холбоотой; бусад кодын хэсэг нь &os; порт хийгдэх
боломж бүхий бүх тавцангуудын хувьд адил машинаас чөлөөт код байна. Сангийн бүтцийн
логик зохион байгуулалт нь дэмжлэг хийгдсэн төхөөрөмж, файлын систем болон өөрийн дэд
санд байгаа тохируулга бүртэй хамт байгааг харж болно.
Энэ бүлэг жишээн дээр таныг i386 архитектур ашиглаж байгаа гэж авч үзнэ.
Хэрэв энэ нь таны хувьд өөр байх юм бол та өөрийн системийн архитектурын хувьд замуудын
нэрнүүддээ тохирох өөрчлөлтүүдийг хийгээрэй.
Хэрэв таны систем дээр /usr/src/sys сан
байхгүй бол цөмийн эх суугаагүй байна. Үүнийг хамгийн хялбар аргаар
хийхийн тулд root эрхээр sysinstall
ажиллуулж Configure сонгоод, дараа нь
Distributions сонгоод,
src сонгоод, дараа нь
base болон
sys-г сонгож татаж авна. Хэрэв та
sysinstall -д дургүй ба
албан ёсны
&os; CDROM-д хандах боломжтой бол
тушаалын мөрөөс эхийг бас суулгаж болно:
&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf -
Дараа нь arch/conf
сан уруу шилжээд GENERIC тохиргооны файлыг та өөрийн цөмдөө өгөх
нэр уруу хуул. Жишээ нь:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNEL
Уламжлалаар бол энэ нэр нь бүгд том үсгээр байдаг, хэрэв та олон өөр өөр төрлийн &os;
машинуудын ажиллагааг хянадаг бол машинуудынхаа нэрээр нэрлэх нь зохимжтой юм.
Бид энэ жишээнийхээ зорилгоор MYKERNEL гэж нэрлэе.
Өөрийн цөмийн тохиргооны файлаа шууд /usr/src
доор хадгалах нь буруу байж болох юм. Хэрэв та асуудлуудтай тулгарч байгаа бол
/usr/src -ийг устгаад л дахиж эхлэх нь зоригтой
алхам байж болох юм. Гэхдээ үүнийг хийгээд хэдэн секундын дараа л та өөрийн
өөрчлөн тохируулсан цөмийн тохиргооны файлаа устгасан болохоо мэдэх болно.
Мөн GENERIC файлыг шууд засварлах хэрэггүй бөгөөд
дараагийн удаа өөрийн эх модыг шинэчлэх
үйлдлийг хийхэд дарагдан хуулагдаж таны цөмийн өөрчлөлт алдагдаж магадгүй.
Та цөмийн тохиргооны файлаа өөр газар хадгалж дараа нь
i386 сан дахь
файл уруу тэмдэгт холбоос үүсгэж болно.
Жишээ нь:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNEL
Одоо MYKERNEL-ийг өөрийн дуртай текст засварлагч дээр
засаарай. Хэрэв та дөнгөж эхэлж байгаа бол байгаа цорын ганц засварлагч нь
vi байж болох бөгөөд түүнийг энд тайлбарлахад хэтэрхий
төвөгтэй боловч номын жагсаалтад
байгаа өөр олон номнуудад бичсэн байгаа. Гэхдээ &os; нь ee
гэдэг хялбар засварлагчийг санал болгодог бөгөөд хэрэв та эхлэн сурагч бол энэ нь
таны сонгох засварлагч байх болно. Өөрийн тохиргоог тусгах эсвэл GENERIC
файлаас өөрийн хийсэн өөрчлөлтүүдээс ялгахын тулд дээд хэсэгт байгаа мөрүүдийг
чөлөөтэй өөрчлөөрэй.
SunOS
Хэрэв та &sunos; эсвэл өөр BSD үйлдлийн системийн доор цөм бүтээж байсан бол
энэ файлын ихэнх хэсэг нь маш танил байх болно. Хэрэв та DOS зэрэг өөр үйлдлийн
системээс ирж байгаа бол нөгөө талаасаа GENERIC
тохиргооны файл төвөгтэй юм шиг санагдаж болох бөгөөд
Тохиргооны файл хэсгийн
тайлбаруудыг удаан нухацтай дагаарай.
Хэрэв та &os; төслийн хамгийн сүүлийн эхээр өөрийн эх модоо сүүлийн үеийн хэлбэрт авчирсан бол
шинэчлэх шатуудаа хэрэгжүүлж эхлэхээсээ өмнө /usr/src/UPDATING
файлыг үргэлж шалгаж байх нь чухал юм. Энэ файл нь шинэчилсэн эх код доторх тусгай
анхаарал шаардлагатай чухал асуудлууд эсвэл хэсгүүдийн талаар тайлбарладаг.
/usr/src/UPDATING нь үргэлж таны &os;
хувилбартай таардаг бөгөөд энэ гарын авлагаас илүү шинэ мэдээлэлтэй, сүүлийн үеийнх
байдаг.
Та цөмд зориулан эх кодоо хөрвүүлэх шаардлагатай.
-
-
Цөмийг бүтээх нь
/usr/src сан уруу орно:
&prompt.root; cd /usr/src
Цөмийг хөрвүүлнэ:
&prompt.root; make buildkernel KERNCONF=MYKERNEL
Шинэ цөмийг суулгана:
&prompt.root; make installkernel KERNCONF=MYKERNEL
Цөмийг бүтээхэд гүйцэд &os;-ийн эх мод байх шаардлагатай.
Анхдагчаар өөрчлөн тохируулсан цөмийг бүтээхэд бүх
цөмийн модулиуд бас бүтээгдэнэ. Хэрэв та цөмийг хурдан шинэчлэхийг
эсвэл зөвхөн өөрчлөн тохируулсан модулиудыг бүтээхийг хүсэж байгаа бол цөмийг бүтээж
эхлэхээсээ өмнө /etc/make.conf файлыг засварлах
хэрэгтэй:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Энэ хувьсагч нь бүгдийг биш бүтээх модулиудын жагсаалтыг тодорхойлдог.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Энэ хувьсагч нь бүтээх процессод оруулахгүй байх модулиудын жагсаалтыг
тодорхойлдог. Цөмийг бүтээх процессийн явцад танд хэрэг болохуйц бусад
хувьсагчуудын тухайд &man.make.conf.5; гарын авлагын хуудсанд хандаж
үзнэ үү.
/boot/kernel.old
Шинэ цөм /boot/kernel санд
/boot/kernel/kernel нэрээр хуулагдах бөгөөд
хуучин цөм нь /boot/kernel.old/kernel уруу хуулагдана.
Одоо системийг унтраагаад шинэ цөмийг ашиглан дахин ачаал. Хэрэв ямар нэг юм болохгүй болбол
энэ бүлгийн төгсгөлд байгаа алдааг олж засварлах
заавар танд хэрэгтэй байж болох юм. Таны шинэ цөм ачаалахгүй тохиолдолд хэрхэн сэргээх
талаар тайлбарласан хэсгийг заавал уншаарай.
Ачаалах &man.loader.8; ба тохиргоо зэрэг ачаалах процесстой холбоотой бусад файлууд
/boot -д хадгалагдана. Гуравдагч этгээдийн
эсвэл өөрчлөн тохируулсан модулиуд /boot/kernel-д
байрлах бөгөөд гэхдээ модулиудыг хөрвүүлсэн цөмийн адил сүүлийн үеийн хэлбэрт байлгах нь маш чухал гэдгийг
хэрэглэгчид мэдэх шаардлагатай. Хөрвүүлсэн цөмтэй хамт ажиллуулахааргүй модулиуд нь
тогтворгүй байдал эсвэл буруу ажиллагаанд хүргэж болзошгүй юм.
Жоэл
Даль
&os; 6.X -д зориулан шинэчилсэн
Тохиргооны файл
цөм
ТЭМДЭГЛЭЛҮҮД
ТЭМДЭГЛЭЛҮҮД
цөм
тохиргооны файл
Тохиргооны файлын ерөнхий хэлбэр нь маш энгийн билээ.
Мөр болгон түлхүүр үг бөгөөд нэг болон хэд хэдэн нэмэлт өгөгдлөөс тогтоно.
Амархан болгох үүднээс ихэнх мөрүүд нь зөвхөн нэг нэмэлт өгөгдөлтэй байна.
# тэмдэгтийн ард байгаа зүйлс тайлбар бөгөөд
хаягдаж тооцогдоно. Дараах хэсэгт түлхүүр үг болгоныг GENERIC -д
жагсаасан дарааллаар нь тайлбарлаж байна.
Архитектураас хамааралтай
тохируулгууд болон төхөөрөмжийн ядраамаар жагсаалтын талаар
GENERIC файл байгаа сангийн нэгэн адил санд байрлах
NOTES файлаас үзнэ үү.
Архитектураас хамааралгүй тохируулгуудын талаар
/usr/src/sys/conf/NOTES файлаас үзнэ үү.
+
+ &os; 5.0-с эхлэн тохиргооны файлуудад ашиглах боломжтой
+ шинэ include тохируулга бий болсон. Энэ нь
+ өөр нэг тохиргооны файлыг тухайн тохиргооны файлд оруулах
+ боломжийг бүрдүүлэх бөгөөд ингэснээр тухайн файлын хувьд
+ харьцангуй бага өөрчлөлтүүдийг арчлах боломжтой болгодог.
+ Жишээ нь хэрэв танд цөөн тооны нэмэлт тохируулга эсвэл
+ драйверуудтай GENERIC цөм шаардлагатай бол
+ энэ нь GENERIC-ийн хувьд цөөн өөрчлөлтийг арчлах боломжийг
+ танд олгоно:
+
+ include GENERIC
+ident MYKERNEL
+
+options IPFIREWALL
+options DUMMYNET
+options IPFIREWALL_DEFAULT_TO_ACCEPT
+options IPDIVERT
+
+
+ Энэ загвар нь тохиргооны файлуудыг эхнээс нь бичих
+ уламжлалт аргын хажууд хамаагүй илүү боломжийг олгодог гэдэгтэй
+ ихэнх админинстраторууд санал нэг байдаг: локал тохиргооны
+ файл нь зөвхөн GENERIC цөмөөс ялгаатай
+ локал өөрчлөлтүүдийг харуулах бөгөөд шинэчлэлт хийгдэхэд
+ GENERIC-д нэмэгдсэн шинэ боломжууд нь
+ nooptions эсвэл nodevice тохируулгуудаар
+ тусгайлан заагдаагүй л бол локал цөмд нэмэгддэг. Энэ бүлгийн
+ үлдсэн хэсэг ердийн тохиргооны файлын агуулга ба төрөл бүрийн тохируулгын
+ үүрэг болон ажиллах төхөөрөмжүүдийг тайлбарлах болно.
+
Тест хийх зорилгоор ихэнхдээ бүх байгаа тохируулгууд агуулсан файлыг бүтээхдээ
дараах тушаалыг root эрхээр ажиллуулна:
&prompt.root; cd /usr/src/sys/i386/conf && make LINT
цөм
тохиргооны файл
Дараах жишээ нь шаардлагатай бол тодотгох зорилгоор оруулсан төрөл бүрийн нэмэлт тайлбар бүхий
GENERIC цөмийн тохиргооны файл юм. Энэ жишээ нь
таны /usr/src/sys/i386/conf/GENERIC
дахь хуулбартай их ойрхон таарах ёстой.
цөмийн тохируулгууд
machine
machine i386
Энэ нь машины архитектур юм. Энэ нь
alpha, amd64,
i386, ia64,
pc98, powerpc, эсвэл
sparc64 -ийн аль нэг байх ёстой.
цөмийн тохируулгууд
cpu
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
Дараах тохируулга нь таны системд байгаа CPU-ийн төрлийг заана.
Та олон CPU мөртэй байж болох боловч (хэрэв, жишээ нь та
I586_CPU эсвэл I686_CPU
хоёрын алийг ашиглахаа сайн мэдэхгүй байгаа бол) өөрчлөн тохируулсан
цөмийн хувьд зөвхөн байгаа CPU-гээ заах нь зүйтэй юм. Хэрэв та өөрийн
CPU-ийн төрлийг сайн мэдэхгүй байгаа бол /var/run/dmesg.boot
файлыг шалгаж ачаалах үеийн мэдээллүүдийг үзэж болно.
цөмийн тохируулгууд
ident
ident GENERIC
Энэ нь цөмийг тодорхойлох нэр юм. Хэрэв та
түрүүний жишээнүүдэд дурдсан заавруудыг дагасан бол өөрийн цөмийг нэрлэсэн
шигээ өөрөөр хэлбэл MYKERNEL хэмээн өөрчлөх
хэрэгтэй. ident мөрд оруулсан утга нь таныг цөмийг ачаалах
үед хэвлэгдэн гарах учир та өөрийн ердийн цөмөөс шинэ цөмөө тусад нь хадгалахыг хүсвэл
шинэ цөмдөө өөр нэр өгөх нь ашигтай байдаг (өөрөөр хэлбэл та туршилтын цөм бүтээхийг
хүсвэл).
#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
&man.device.hints.5; нь төхөөрөмжүүдийн драйверуудын тохируулгуудыг
хийхэд ашиглагдана. &man.loader.8;-ийн ачаалах үе шалгах анхдагч байрлал нь
/boot/device.hints байна.
hints тохируулгыг ашиглаад та эдгээр зөвлөгөөнүүдийг
статикаар хөрвүүлж болно. Тэгэхэд /boot дотор
device.hints файл үүсгэх шаардлагагүй
болох юм.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
&os; -г бүтээх ердийн процесс нь дибаг (debug) хийх мэдээллийг агуулдаг
бөгөөд цөмийг бүтээх үед тохируулгыг &man.gcc.1;
уруу өгснөөр дибаг (debug) хийх мэдээлэл идэвхждэг.
options SCHED_4BSD # 4BSD scheduler
&os; -ийн уламжлалт, анхдагч системийн төлөвлөгч/хуваарилагч. Үүнийг үлдээ.
options PREEMPTION # Enable kernel thread preemption
Цөм дэх урсгалуудыг (thread) өөр илүү өндөр давуу эрхтэй урсгалуудаар
солих боломжийг бүрдүүлнэ. Энэ нь харилцан ажиллах болон таслах урсгалуудыг
(interrupt threads) хүлээлгэлгүйгээр аль болох түргэн ажиллуулахад тусалдаг.
options INET # InterNETworking
Сүлжээний дэмжлэг. Сүлжээнд холбогдохгүй ч гэсэн энэ тохиргоог үлдээгээрэй.
Ихэнх програмууд эргэн холбогдох (loopback буюу өөрөөр хэлбэл өөрийн PC
дотор сүлжээний холболт хийх) сүлжээг шаарддаг учир энэ нь үндсэндээ зайлшгүй
шаардлагатай.
options INET6 # IPv6 communications protocols
Энэ нь IPv6 холбооны протоколуудыг идэвхжүүлдэг.
options FFS # Berkeley Fast Filesystem
Энэ нь энгийн хатуу дискний файлын систем. Энэ тохируулгыг хатуу дискнээс
ачаалах бол үлдээгээрэй.
options SOFTUPDATES # Enable FFS Soft Updates support
Энэ тохируулга нь Зөөлөн Шинэчлэлүүдийг цөм идэвхжүүлдэг бөгөөд
диск уруу бичих хандалтыг хурдасгахад тусалдаг. Хэдийгээр энэ боломжийг
цөмөөр хангадаг боловч диск дээр идэвхжүүлэх шаардлагатай.
Таны системийн дискнүүд дээр Зөөлөн Шинэчлэлүүд идэвхжсэн эсэхийг
&man.mount.8; -ийн үр дүнгээр хянаарай. Хэрэв та soft-updates
тохируулгыг олж харахгүй байгаа бол &man.tunefs.8; (одоо байгаа системийн хувьд)
эсвэл &man.newfs.8; (шинэ файлын системийн хувьд) ашиглан идэвхжүүлэх хэрэгтэй.
options UFS_ACL # Support for access control lists
Энэ тохируулга нь хандалтыг хянах жагсаалтын дэмжлэгийг цөмд идэвхжүүлдэг.
Энэ нь өргөтгөсөн шинж чанарууд ба UFS2-ийг ашиглахад
тулгуурлаж байгаа бөгөөд энэ боломжийн талаар дээр
дэлгэрэнгүй тайлбарласан байдаг. ACL-үүд эхэндээ
идэвхжүүлсэн байдаг бөгөөд хэрэв урьд нь файлын систем дээр ашиглагдаж байсан
бол хандалтыг хянах жагсаалтыг устгаж файлуудыг хамгаалсан аргыг урьдчилан тааж
болшгүй байдалт хүргэдэг учир энэ тохируулгыг хааж болохгүй.
options UFS_DIRHASH # Improve performance on big directories
Энэ тохируулга нь нэмэгдэл санах ойг зарлагадаж том сангуудад хийх дискний
үйлдлүүдийг хурдасгах ажиллагааг оруулдаг. Та том сервер эсвэл харилцан ажиллах
ажлын станцад зориулж энэ тохируулгыг ерөнхийдөө хадгалах хэрэгтэй бөгөөд
хэрэв та &os;-г санах ой чухал жижиг систем ба дискний хандалтын хурдны ач
холбогдол багатай галт хана мэтийн систем дээр ашиглаж байгаа бол устгаарай.
options MD_ROOT # MD is a potential root device
Энэ тохируулга нь санах ой дээр тулгуурласан, root төхөөрөмж болж ашиглагдах
виртуал дискний дэмжлэгийг идэвхжүүлдэг.
цөмийн тохируулгууд
NFS
цөмийн тохируулгууд
NFS_ROOT
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
Сүлжээний файлын систем. Хэрэв та TCP/IP-аар &unix; файлын серверээс
хуваалтыг холболт хийх төлөвлөгөөгүй бол эдгээрийг тайлбар болгон хааж болно.
цөмийн тохируулгууд
MSDOSFS
options MSDOSFS # MSDOS Filesystem
&ms-dos; файлын систем. Хэрэв та DOS хэлбэржүүлсэн хатуу дискний хуваалтыг
ачаалах үед холболт хийх төлөвлөгөөгүй бол үүнийг айлгүйгээр тайлбар болгон хааж болно.
Энэ нь дээр тайлбарласны дагуу эхний удаа DOS хуваалтыг холболт хийхэд автоматаар ачаалагдах
болно. Мөн маш сайн emulators/mtools
програм хангамж нь холболт болон салгалт хийлгүйгээр DOS уян дискнүүдэд хандах боломжийг
бүрдүүлдэг (энэ нь MSDOSFS-ийг огт шаарддаггүй).
options CD9660 # ISO 9660 Filesystem
CDROM-уудад зориулсан ISO 9660 файлын систем. Хэрэв та CDROM хөтлөгч
байхгүй эсвэл CD-ээс өгөгдлийг хааяа холболт хийдэг бол (таныг анх өгөгдлийн CD-г
холболт хийх үед динамикаар ачаалагддаг учраас) тайлбар болгож хааж болно.
Дууны CD-үүд энэ файлын системийг хэрэглэдэггүй.
options PROCFS # Process filesystem (requires PSEUDOFS)
Процессийн файлын систем. Энэ нь &man.ps.1; шиг програмууд процессуудын
ажиллаж байгаа талаар дэлгэрэнгүй мэдээлэл танд өгөх боломжийг бүрдүүлдэг
/proc дээр холболт хийгдсэн хуурамч
файлын систем юм. Ихэнх дибаг хийх ба монитор хийх хэрэгслүүд
PROCFS -гүйгээр ажиллахаар хийгдсэн байдаг:
суулгалтууд нь энэ файлын системийг анхдагчаар холболт хийхгүй, тиймээс
PROCFS-ийг ашиглах нь ихэнх тохиолдолд
шаардлагагүй байдаг.
options PSEUDOFS # Pseudo-filesystem framework
6.X цөмүүд PROCFS ашиглаж байгаа бол бас
PSEUDOFS дэмжлэгийг оруулах шаардлагатай.
options GEOM_GPT # GUID Partition Tables.
Энэ тохируулга нь нэг диск дээр их олон тооны хуваалт байх боломжийг
авчирна.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
4.3BSD-тэй нийцтэй байх. Үүнийг энэ чигээр орхи; хэрэв үүнийг тайлбар болгож
хаавал зарим програмууд сонин ажиллаж эхэлнэ.
options COMPAT_FREEBSD4 # Compatible with &os;4
Энэ тохируулга нь &os; 5.X &i386; ба Alpha системүүд дээр &os;-ийн хуучин
хувилбарууд дээр хөрвүүлэгдсэн, хуучин системийн дуудлагуудын интерфэйсүүдийг ашигладаг
програмуудыг дэмжихэд шаардлагатай. Энэ тохируулгыг хуучин програмууд ашиглаж болзошгүй
бүх &i386; болон Alpha системүүд дээр ашиглахыг зөвлөж байна; ia64 ба &sparc64;
зэрэг 5.X дээр зөвхөн дэмжлэг хийгдсэн тавцангууд энэ тохируулгыг шаарддаггүй.
options COMPAT_FREEBSD5 # Compatible with &os;5
Энэ тохируулга нь &os; 5.X системийн дуудлагын интерфэйсүүдийг ашигладаг,
&os; 5.X хувилбарууд дээр эмхэтгэгдсэн програмуудыг &os; 6.X болон
түүнээс дараа үеийн хувилбарууд дээр дэмжихэд шаардлагатай.
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
Энэ нь цөмийг SCSI төхөөрөмжүүдийг шалгаж эхлэхээс өмнө 5 секунд түр зогсооно. Хэрэв
та зөвхөн IDE хатуу дисктэй бол үүнийг орхиж болно, эсрэг тохиолдолд ачаалалтыг хурдасгахын
тулд энэ тоог багасгаж болно. Мэдээж та үүнийг хийгээд &os; таны SCSI төхөөрөмжүүдийг
танихгүй бол та дахин үүнийг ихэсгэж болно.
options KTRACE # ktrace(1) support
Энэ нь дибаг хийхэд ашигтай, цөмийн процессийг дагах боломжийг идэвхжүүлдэг.
options SYSVSHM # SYSV-style shared memory
Энэ тохируулга нь System V хуваалцсан санах ойн боломж бүрдүүлдэг. Энэ боломжийн
өргөн хэрэглээнүүдийн нэг нь X дэх XSHM өргөтгөл бөгөөд үүнийг график их шаарддаг олон програмууд
автоматаар илүү хурд авахын тулд ашигладаг. Хэрэв та X ашигладаг бол үүнийг заавал оруулахыг
хүсэх болно.
options SYSVMSG # SYSV-style message queues
System V мэдээллүүдийн дэмжлэг. Энэ тохируулга нь зөвхөн хэдхэн зуун байтыг
цөмд нэмдэг.
options SYSVSEM # SYSV-style semaphores
System V семафорын дэмжлэг. Нэг их өргөн ашиглагддаггүй боловч
хэдхэн зуун байтыг цөмд нэмдэг.
&man.ipcs.1; тушаалын тохируулга нь эдгээр
System V боломж бүрийг ашигласан процессуудыг жагсаадаг.
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
Жинхэнэ-хугацааны (real-time) өргөтгөлүүд 1993 оны &posix;-д нэмэгдсэн.Портуудын
цуглуулгаас зарим програмууд эдгээрийг ашигладаг (&staroffice;).
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
Энэ тохируулга нь гарын төхөөрөмжийн цэгийг /dev-д үүсгэх боломжийг
олгоход шаардлагатай байдаг.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Giant гэдэг нь харилцан нэгийгээ оруулахгүй байх зарчмын (унтах мутекс) нэр бөгөөд
энэ нь цөмийн их эх үүсвэрүүдийг хамгаалдаг. Өнөөдөр энэ нь үйл ажиллагааны саатаж
байгаа хүлээн авах боломжгүй хэсэг бөгөөд үүнийг эх үүсвэр бүрийг хамгаалах цоожуудаар
идэвхтэйгээр сольж байгаа билээ. ADAPTIVE_GIANT тохируулга нь
хэсэг бүлэг мутексуудад Giant-ийг адаптиваар эргэхээр оруулдаг. Энэ нь урсгал (thread)
Giant мутексийг цоожлохыг хүсэж байх үед, гэхдээ энэ нь өөр CPU дээр урсгалаар цоожлогдсон
байна, эхний урсгал цоож сулрахыг хүлээн ажилласаар байна. Хэвийн үед урсгал унтаа байдалд
эргэж орох бөгөөд өөрийн дараагийн ажиллах боломжийг хүлээнэ. Та итгэлгүй байгаа бол
үүнийг орхино уу.
&os; 8.0-CURRENT болон түүнээс хожуу үеийн хувилбаруудад бүх
мутексууд нь NO_ADAPTIVE_MUTEXES тохируулгатайгаар
бүтээгдэж зохицох чадваргүй гэж тохируулагдаагүй л бол анхдагчаар адаптив буюу
зохицох чадвартай байдаг. Иймээс одоо Giant нь зохицох чадвартай
бөгөөд ADAPTIVE_GIANT тохируулга нь цөмийн тохиргооноос
хасагдсан юм.
цөмийн тохируулгууд
SMP
device apic # I/O APIC
apic төхөөрөмж нь I/O APIC-ийг тасалдал хүргэхэд ашиглах боломжийг нээдэг.
apic төхөөрөмж нь UP болон SMP цөмүүдэд хоёуланд нь ашиглагдаж болох бөгөөд
гэхдээ SMP цөмд зайлшгүй шаардлагатай. options SMP
мөрийг нэмж олон процессорын дэмжлэгийг оруулна уу.
apic төхөөрөмж нь зөвхөн i386 архитектур дээр байдаг бөгөөд
энэ тохиргооны мөрийг бусад архитектурууд дээр
ашиглах ёсгүй юм.
device eisa
Хэрэв та EISA эх хавтантай бол үүнийг оруулаарай. Энэ нь EISA шугамын бүх
төхөөрөмжүүдийн хувьд автомат илрүүлэлт болон тохиргооны дэмжлэгийг нээж өгдөг.
device pci
Хэрэв та PCI эх хавтантай бол үүнийг оруулаарай. Энэ нь PCI картуудыг автомат
илрүүлэлт болон PCI-аас ISA шугам уруу гарах дэмжлэгийг нээж өгдөг.
# Floppy drives
device fdc
Энэ нь уян диск хөтлөгчийн хянагч.
# ATA and ATAPI devices
device ata
Энэ драйвер бүх ATA болон ATAPI төхөөрөмжүүдийг дэмждэг. Орчин үеийн машинуудын
бүх PCI ATA/ATAPI төхөөрөмжүүдийг илрүүлэхийн тулд зөвхөн нэг
device ata мөр таны цөмд хэрэгтэй.
device atadisk # ATA disk drives
Энэ нь device ata мөртэй цуг ATA дискний
төхөөрөмжүүдэд хэрэгтэй.
device ataraid # ATA RAID drives
Энэ нь device ata мөртэй цуг ATA RAID
хөтлөгчүүдэд хэрэгтэй.
device atapicd # ATAPI CDROM drives
Энэ нь device ata мөртэй цуг ATA CDROM
хөтлөгчүүдэд хэрэгтэй.
device atapifd # ATAPI floppy drives
Энэ нь device ata мөртэй цуг ATA уян дискний
хөтлөгчүүдэд хэрэгтэй.
device atapist # ATAPI tape drives
Энэ нь device ata мөртэй цуг ATA соронзон хальсны
хөтлөгчүүдэд хэрэгтэй.
options ATA_STATIC_ID # Static device numbering
Энэ нь хянагчийн дугаарыг статик болгох бөгөөд энэнгүйгээр
төхөөрөмжийн дугаарууд динамикаар өгөгддөг.
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
SCSI хянагчууд. Таны системд байхгүй байгааг тайлбар болгон хаана уу.
Хэрэв та зөвхөн IDE системтэй бол эдгээр мөрүүдийг бүгдийг устгаж болно.
*_REG_PRETTY_PRINT мөрүүд нь өөр өөрийнхөө тохирох
драйверуудад зориулагдсан дибаг хийх тохируулгууд юм.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
SCSI захын төхөөрөмжүүд. Дахин хэлэхэд таны системд байхгүй байгааг тайлбар
болгон хаагаарай эсвэл та зөвхөн IDE тоног төхөөрөмжтэй бол эдгээр мөрүүдийг
бүгдийг устгаж болно.
USB &man.umass.4; драйвер болон бусад цөөн хэдэн драйверууд жинхэнэ
SCSI төхөөрөмжүүд биш боловч SCSI дэд системийг ашигладаг. Тийм болохоор
хэрэв цөмийн тохиргоонд тийм драйверууд орсон байвал SCSI дэмжлэгийг устгаагүй
эсэхээ шалгаарай.
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
Дэмжигдсэн RAID хянагчууд. Хэрэв танд эдгээрээс нэг нь ч байхгүй бол
тайлбар болгон хааж эсвэл устгаж болно.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
Гарын хянагч (atkbdc) AT гар ба PS/2 загварын заагч
төхөөрөмжүүдэд I/O үйлчилгээнүүдийг хангадаг. Энэ хянагчийг гарын драйвер
(atkbd) болон PS/2 заагч төхөөрөмжийн драйвер
(psm) шаарддаг.
device atkbd # AT keyboard
atkbd драйвер нь atkbdc
хянагчтай цуг AT гарын хянагчид залгасан AT 84 гар болон AT өргөжүүлсэн
гаруудад хандах боломж олгодог.
device psm # PS/2 mouse
Хэрэв таны хулгана PS/2 порт уруу залгагдаж байгаа бол энэ төхөөрөмжийг
ашиглана уу.
device kbdmux # keyboard multiplexer
Олон гар залгах боломжийн анхны дэмжлэг.
Хэрэв та систем дээрээ нэгээс олон гар ашиглахгүй бол энэ мөрийг аюулгүйгээр
устгаж болно.
device vga # VGA video card driver
Видео картын драйвер.
device splash # Splash screen and screen saver support
Эхлэх үе дэх хоромхон зуур гарах дэлгэц! Дэлгэц амраагчид нь үүнийг бас шаарддаг.
# syscons is the default console driver, resembling an SCO console
device sc
sc нь анхдагч консолийн драйвер бөгөөд SCO консолыг дуурайдаг.
Ихэнх бүрэн дэлгэцийн програмууд консол уруу termcap зэрэг
терминалийн өгөгдлийн баазын сангийн тусламжтайгаар ханддаг бөгөөд үүнийг ашиглах эсэх эсвэл
VT220-тай нийцтэй консол драйвер болох vt-ийг
ашиглах эсэх нь хамаагүй юм. Та нэвтэрсний дараа бүрэн дэлгэцийн програмууд энэ консол дээр ажиллахдаа
асуудалтай байвал өөрийн TERM хувьсагчаа scoansi
болгоорой.
# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
Энэ нь VT100/102-той арагшаагаа нийцтэй, VT220-той нийцтэй консол драйвер юм.
Энэ нь sc-тэй нийцгүй зарим зөөврийн компьютер дээр сайн
ажилладаг. Та нэвтэрсний дараа өөрийн TERM хувьсагчаа
vt100 эсвэл vt220 болгоорой.
Мөн энэ драйвер нь sc төхөөрөмжүүдэд зориулсан
termcap эсвэл terminfo
оруулгууд ихэнхдээ байхгүй байдаг асар олон тооны өөр өөр машинууд уруу сүлжээгээр
дамжин холбогдох үед ашигтай байж болно — vt100
нь виртуалаар дурын тавцан дээр байх ёстой.
device agp
Хэрэв та систем дээрээ AGP карттай бол үүнийг оруулна уу. Энэ нь AGP болон AGP GART-ийн
дэмжлэгийг эдгээр боломжуудаас тогтсон хавтанд зориулж нээнэ.
APM
# Power management support (see NOTES for more options)
#device apm
Тэжээлийн Нарийн Удирдлагын дэмжлэг. Зөөврийн компьютеруудад ашигтай,
гэхдээ энэ нь GENERIC-д
анхдагчаар хаалттай байдаг.
# Add suspend/resume support for the i8254.
device pmtimer
APM болон ACPI зэрэг тэжээл удирдах үйл явцуудад зориулсан таймер
төхөөрөмжийн драйвер.
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
PCMCIA дэмжлэг. Зөөврийн компьютер ашиглаж байгаа
бол энэ танд хэрэгтэй.
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
Эдгээр нь &ms-dos;/&windows; ертөнцөд
COM портууд хэмээгддэг сериал портууд юм .
Хэрэв та COM4 дээр дотуур модемтой бөгөөд
COM2 дээр сериал порттой бол &os; -ээс хандахын
тулд та модемийн IRQ-г 2 (ойлгоход амаргүй техникийн шалтгаанаар, IRQ2 = IRQ 9)
болгож өөрчлөх хэрэгтэй. Хэрэв та олон порттой сериал карттай бол өөрийн
/boot/device.hints файлд нэмэх зөв утгуудын
талаар дэлгэрэнгүй мэдээллийг &man.sio.4; гарын авлагаас шалгаарай.
Зарим видео картууд (S3 бичил схем дээр үндэслэснүүдийг дурдаж болно)
0x*2e8 хэлбэртэй IO хаягуудыг ашигладаг бөгөөд
олон хямд сериал картууд 16-бит хаягийн зайг бүрэн декод хийж чаддаггүй учир
энэ нь тэдгээр карттай зөрчилдөж COM4 портыг
бараг л ашиглах боломжгүй болгодог.
Сериал порт болгон бусдаас ялгаатай IRQ -тай байх (хуваалцсан тасалдал
ашиглахыг дэмждэг олон порттой картуудын нэгийг ашиглаж байгаагаас бусад тохиолдолд)
шаардлагатай учир COM3 болон
COM4-ийн анхдагч IRQ-үүдийг ашиглаж болохгүй.
# Parallel port
device ppc
Энэ нь ISA-шугамын параллел порт интерфэйс юм.
device ppbus # Parallel port bus (required)
Параллел портын шугамын дэмжлэгийг хангадаг.
device lpt # Printer
Параллел порт хэвлэгчүүдийн дэмжлэг.
Параллел хэвлэгчийн дэмжлэгийг нээхэд дээрх гурав гурвуулаа
шаардлагатай.
device plip # TCP/IP over parallel
Энэ нь параллел сүлжээний интерфэйсд зориулсан драйвер юм.
device ppi # Parallel port interface device
Ерөнхий-зориулалтын I/O (geek port
) + IEEE1284
I/O.
#device vpo # Requires scbus and da
zip drive
Энэ нь Iomega Zip хөтлөгчид зориулагдсан юм. scbus болон
da дэмжлэгийг шаарддаг. EPP 1.9 горимд байгаа
портуудын тусламжтай хамгийн сайн ажиллагаанд хүрдэг.
#device puc
Хэрэв та &man.puc.4; цавуу драйвераар дэмжигддэг дүлий
сериал эсвэл параллел PCI карттай бол энэ төхөөрөмжийг тайлбар болгосныг
болиулаарай.
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip
)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon
)
device vx # 3Com 3c590, 3c595 (Vortex
)
Төрөл бүрийн PCI сүлжээний картуудын драйверууд. Эдгээрээс таны системд байхгүйг
тайлбар болгон хааж эсвэл устгаарай.
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
MII шугамын дэмжлэг нь зарим PCI 10/100 Ethernet NIC-үүдэд шаардлагатай
бөгөөд тухайлбал MII-д нийцтэй дамжуулагч-хүлээн авагчууд эсвэл MII-тэй адил
ажилладаг дамжуулагч-хүлээн авагчийн хяналтын интерфэйсүүдийг дурдаж болно.
device miibus мөрийг цөмийн тохиргоонд нэмснээр
ердийн miibus API болон тусдаа драйвераар дэмжигдээгүй PHY-уудад зориулсан
ердийн драйвер зэрэг бүх PHY драйверуудын дэмжлэгийг оруулах болно.
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire
)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC
)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang
, Cyclone
)
MII шугамын хянагчийн кодыг ашигладаг драйверууд.
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device le
ISA Ethernet драйверууд. Аль картууд аль драйвераар дэмжигддэг талаар дэлгэрэнгүйг
/usr/src/sys/i386/conf/NOTES-ээс
харна уу.
# Wireless NIC cards
device wlan # 802.11 support
802.11-ийн ерөнхий дэмжлэг. Энэ мөр нь утасгүй сүлжээнд
шаардлагатай.
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
802.11 төхөөрөмжүүдэд зориулагдсан криптограф дэмжлэг.
Хэрэв та шифрлэлт болон 802.11i нууцлалын протоколуудыг
ашиглахаар шийдсэн бол эдгээр мөрүүд шаардлагатай.
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
Төрөл бүрийн утасгүй сүлжээний картуудын дэмжлэг.
# Pseudo devices
device loop # Network loopback
Энэ нь TCP/IP-д зориулсан өөртөө эргэн холбогдох ерөнхий төхөөрөмж юм.
Хэрэв та localhost (өөрөөр бас 127.0.0.1) уруу telnet эсвэл FTP хийвэл
энэ нь тань уруу энэ төхөөрөмжөөр эргэж ирнэ.Энэ нь
зайлшгүй шаардлагатай.
device random # Entropy device
Шифрлэлтийн хувьд аюулгүй дурын тоо үүсгэгч.
device ether # Ethernet support
Танд Ethernet карт байгаа тохиолдолд зөвхөн ether хэрэгтэй.
Энэ нь ерөнхий Ethernet протоколын кодыг агуулдаг.
device sl # Kernel SLIP
sl нь SLIP-ийн дэмжлэг юм. Энэ нь хялбар
суулгаж тохируулдаг, модемоос модем уруу холболт хийхэд илүү зохицсон, илүү
чадалтай PPP-ээр бараг бүхэлдээ солигдсон юм.
device ppp # Kernel PPP
Энэ нь дайл-ап холболтын цөм дэх PPP дэмжлэгт зориулагдсан. Мөн
tun-ийг ашиглаж илүү уян хатан чанар болон шаардлагаар
залгах зэрэг боломжууд бүхий PPP-ийн хэрэглэгчийн талбарын програм маягаар
хийгдсэн хувилбар ч бас байдаг.
device tun # Packet tunnel.
Энэ хэрэглэгчийн талбарын PPP програм хангамжид ашиглагддаг.
Дэлгэрэнгүй мэдээллийг энэ номын PPP
хэсгээс үзнэ үү.
device pty # Pseudo-ttys (telnet etc)
Энэ нь псевдо-терминал
эсвэл жинхэнэ биш (simulated) нэвтрэх порт юм.
Энэ нь ирж байгаа telnet болон
rlogin сессүүд, xterm,
болон Emacs зэрэг бусад програмуудад
ашиглагддаг.
device md # Memory disks
Санах ойн диск псевдо-төхөөрөмжүүд.
device gif # IPv6 and IPv4 tunneling
Энэ нь IPv4 дээгүүрх IPv6, IPv6 дээгүүрх IPv4,
IPv4 дээгүүрх IPv4, болон IPv6 дээгүүрх IPv6 хоолойнуудыг хийдэг.
gif төхөөрөмж нь авто-клон
хийх чадвартай бөгөөд төхөөрөмжийн цэгүүдийг хэрэгцээгээрээ үүсгэдэг.
device faith # IPv6-to-IPv4 relaying (translation)
Энэ псевдо-төхөөрөмж нь түүн уруу илгээсэн пакетуудыг барьж аваад
IPv4/IPv6 хувиргагч дэмон уруу замыг өөрчлөн явуулдаг.
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
Энэ нь Беркли Пакет Шүүгч юм. Энэ псевдо-төхөөрөмж нь
цацаж байгаа сүлжээн (өөрөөр хэлбэл Ethernet) дэх бүх пакетуудыг барьж авдаг,
бүгдийг сонсох горимд сүлжээний интерфэйсүүдийг шилжүүлэх боломж олгодог.
Эдгээр пакетуудыг дискэнд хадгалах болон эсвэл &man.tcpdump.1; програмаар
шалгаж болно.
Анхдагч чиглүүлэгчийн (гарц) болон бусад IP хаягийг
&man.dhclient.8; олж авахад &man.bpf.4; төхөөрөмжийг бас ашигладаг.
Хэрэв та DHCP ашиглаж байгаа бол үүнийг тайлбар болголгүй орхиорой.
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
Төрөл бүрийн USB төхөөрөмжүүдийн дэмжлэг.
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
Төрөл бүрийн Firewire төхөөрөмжүүдийн дэмжлэг.
&os;-ийн дэмждэг нэмэлт төхөөрөмжүүдийн талаар дэлгэрэнгүй мэдээллийг
/usr/src/sys/i386/conf/NOTES
файлаас үзнэ үү.
Том санах ойн тохируулгууд (PAE)
Физик хаягийн өргөтгөлүүд
(PAE)
том санах ой
Том санах ой бүхий машинууд Хэрэглэгч+Цөмийн Виртуал хаягийн зайн
(KVA) 4 гигабайт хязгаараас их уруу хандах
шаардлагатай байдаг. Энэ хязгаараас болоод Интел &pentium; Pro болон
сүүлийн үеийн CPU-үүдэд 36 битийн физик хаягийн зайд хандах дэмжлэгийг нэмсэн.
&intel; &pentium; Pro болон сүүлийн үеийн CPU-үүдийн
Физик Хаягийн Өргөтгөл (PAE) боломж нь 64 гигабайт хүртэлх
санах ойн тохиргоог зөвшөөрдөг. &os; нь энэхүү боломжийг &os;-ийн
одоо байгаа бүх гаргасан хувилбаруудын цөмийн тохиргооны
тохируулгаар дэмждэг. Интелийн санах ойн
архитектурын хязгаараас болж 4 гигабайтаас дээш болон доош санах
ойн ялгаа байхгүй. 4 гигабайтаас дээшхи санах ой нь ашиглаж болох
санах ойн санд нэмэгддэг.
PAE дэмжлэгийг цөмд нээхдээ
цөмийн тохиргооны файлд дараах мөрийг нэмнэ:
options PAE
&os; дэх PAE дэмжлэг зөвхөн
&intel; IA-32 процессоруудад байдаг. Мөн &os; дэх
PAE дэмжлэг нь өргөн шалгагдаагүй бөгөөд
&os;-ийн бусад тогтвортой боломжуудтай харьцуулахад бета чанарынхад
тооцогддог.
&os; дэх PAE дэмжлэг нь цөөн хэдэн хязгааруудтай:
VM зайн 4 гигабайтаас илүүд процесс хандаж чадахгүй.
&man.bus.dma.9; интерфэйс ашигладаггүй төхөөрөмжийн драйверууд
PAE-г идэвхжүүлсэн цөм дээр өгөгдлийн эвдрэлийг
үүсгэх бөгөөд ашиглахыг зөвлөдөггүй юм. Ийм учраас PAE-г
идэвхжүүлсэн цөм дээр ажилладаггүй бүх драйверуудыг оруулаагүй
PAE цөмийн тохиргооны файл &os;-д байдаг.
Зарим нэг тохируулгууд санах ойн эх үүсвэрийн хэрэглээг физик санах ойн
хэмжээгээр тодорхойлдог. Эдгээр тохируулгууд нь PAE
системийн их санах ойгоос болж хэрэгцээгүй илүү санах ойг гаргадаг.
Тийм нэг жишээнүүдийн нэг нь sysctl-ийн
тохируулга бөгөөд энэ нь цөм дэх хамгийн их байж болох vnode-уудын тоог хянадаг.
Энэ болон бусад тохируулгуудын утгыг боломжийн утгаар тааруулахыг зөвлөж байна.
Магадгүй цөмийн виртуал хаягийн (KVA) зайг ихэсгэх
эсвэл KVA-ийн шавхалтад хүргэхгүйн тулд байнга их ашиглагддаг
(дээр дурдсаныг харна уу) цөмийн эх үүсвэрийн хэмжээг багасгах шаардлагатай
байж болох юм. цөмийн тохируулга нь
KVA зайг ихэсгэхэд ашиглагдаж болно.
Ажиллагаа болон тогтвортой байдлыг хангах үүднээс &man.tuning.7; гарын
авлагатай танилцахыг зөвлөж байна. &man.pae.4; гарын авлага нь
&os;-ийн PAE дэмжлэгийн тухай хамгийн сүүлийн
үеийн мэдээллийг агуулдаг.
Хэрэв ямар нэг юм буруутвал
Өөрчлөн тохируулсан цөмийг бүтээж байх үед 4 төрлийн асуудал гарч
болзошгүй байдаг. Тэдгээр нь:
config амжилтгүй болох:
Хэрэв таныг цөмийн тайлбарыг &man.config.8;-т өгөхөд тушаал
амжилтгүй болбол та хаа нэгтээ энгийн алдаа хийсэн болов уу.
Аз болоход &man.config.8; асуудалтай байгаа мөрийн дугаарыг
хэвлэх учир та алдаатай мөрийг хурдан олох болно. Жишээ нь,
хэрэв та доор дурдсаныг харвал:
config: line 17: syntax error
Түлхүүр үг зөв бичигдсэн эсэхийг GENERIC
цөм болон бусад баримтаас харьцуулан шалгаж үзээрэй.
make амжилтгүй болох:
Хэрэв make тушаал амжилтгүй болбол
энэ ихэвчлэн цөмийн тайлбар дахь &man.config.8;-ийн олж
чадахааргүй тийм ч ноцтой бус алдааг дохиолдог. Дахин хэлэхэд,
өөрийн тохиргоог нягтлаарай, тэгээд хэрэв та асуудлыг шийдэж чадахгүй
бол &a.questions; уруу өөрийн цөмийн тохиргоотой цахим захидал
илгээгээрэй, ингэхэд хурдан шинжилгээ хийгдэх болно.
Цөм ачаалахгүй байх:
Хэрэв таны шинэ цөм ачаалахгүй бол эсвэл таны төхөөрөмжүүдийг танихгүй
байгаа бол бүү цочирд! Аз болоход &os; нийцгүй цөмүүдээс сэргэхэд
зориулсан маш сайн механизмтай байдаг. Ердөө л &os;-ийн ачаалагчаас
ачаалах цөмөө сонгоно. Системийн ачаалах меню гарч ирэх үед та үүнд
хандах боломжтой болно. Escape to a loader prompt
тохируулга 6-ын тоог сонго. Тушаал хүлээх мөрөн дээр unload kernel
гэж бичээд boot /boot/kernel.old/kernel
эсвэл зөв ачаалах өөр бусад цөмийн файлын нэрийг бичээрэй. Цөмийг дахин
тохируулах явцдаа ажилладаг цөмийг гарын дор хадгалж байх нь үргэлж
ухаалаг санаа байдаг.
Сайн цөмийг ачаалсныхаа дараа та өөрийн тохиргооны файлаа дахин шалгаж
цөмөө дахин бүтээхээр оролдоорой. Нэг тус дэм болох эх үүсвэр бол
бусад зүйлсээс гадна амжилттай ачаалалт бүр дэх цөмийн бүх мэдээллүүдийн
бичлэгийг хийдэг /var/log/messages файл юм.
Мөн &man.dmesg.8; тушаал нь сүүлийн ачаалалт дахь цөмийн мэдээллүүдийг
хэвлэдэг.
Хэрэв та цөмийг бүтээхэд асуудалтай байгаа бол
GENERIC болон өөр бусад ажилладаг
цөмийг дараагийн бүтээх явцад устгагдахааргүй өөр нэртэйгээр
гарын дор хадгалж байгаарай. Та kernel.old
-д найдаж болохгүй, учир нь шинэ цөмийг суулгах явцад
kernel.old нь хамгийн сүүлд
суулгагдсан бөгөөд магадгүй ажиллагаагүй тийм цөмөөр дарагдан
бичигддэг. Ажилладаг цөмийг зөв /boot/kernel
байр уруу аль болох хурдан шилжүүлээрэй, эсвэл &man.ps.1; зэрэг
тушаалууд зөв ажиллахгүй байж магадгүй юм. Ингэхийн тулд
сайн цөм байгаа сангийн нэрийг өөрчлөөрэй:
&prompt.root; mv /boot/kernel /boot/kernel.bad
&prompt.root; mv /boot/kernel.good /boot/kernel
Цөм ажиллах боловч &man.ps.1; ажиллахгүй болох:
Хэрэв та системийн хэрэгслүүд бүтээсэн хувилбараас өөр цөмийн хувилбарыг
суулгасан бол, жишээ нь -RELEASE дээр -CURRENT цөм бүтээсэн бол
системийн төлвийн тушаалууд болох &man.ps.1; болон &man.vmstat.8;
зэрэг нь ажиллахаа больно. Та өөрийн цөмтэйгөө адил хувилбарын эх модтой
бүтээгдсэн ертөнцийг дахин хөрвүүлж суулгах
хэрэгтэй. Энэ нь нэг шалтгаан бөгөөд ерөнхийдөө үйлдлийн системийн бусад
зүйлсээс өөр хувилбарын цөмийг ашиглах нь тийм ч сайн санаа биш юм.
diff --git a/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml b/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml
index 0a2536451e..fbea834dd1 100644
--- a/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml
@@ -1,3104 +1,3113 @@
FreeBSD-г олж авах нь
CDROM болон DVD Нийтлэгчид
Жижиглэнгийн хайрцагласан бүтээгдэхүүнүүд
FreeBSD нь хайрцагласан бүтээгдэхүүн хэлбэрээр (FreeBSD CD-үүд,
нэмэлт програм хангамж, болон хэвлэсэн баримт) хэд хэдэн жижиглэн
худалдаалагчдаас гардаг:
CompUSA
WWW:
Frys Electronics
WWW:
CD болон DVD цуглуулгууд
FreeBSD CD болон DVD цуглуулгуудыг олон жижиглэн худалдаалагчдаас
шууд худалдан авах боломжтой байдаг:
FreeBSD Mall, Inc.
700 Harvest Park Ste F
Brentwood, CA 94513
USA
Утас: +1 925 240-6652
Факс: +1 925 674-0821
Email: info@freebsdmall.com
WWW:
Dr. Hinner EDV
St. Augustinus-Str. 10
D-81825 München
Germany
Утас: (089) 428 419
WWW:
Ikarios
22-24 rue Voltaire
92000 Nanterre
France
WWW:
JMC Software
Ireland
Утас: 353 1 6291282
WWW:
The Linux Emporium
Hilliard House, Lester Way
Wallingford
OX10 9TA
United Kingdom
Утас: +44 1491 837010
Факс: +44 1491 837016
WWW:
Linux+ DVD Magazine
Lewartowskiego 6
Warsaw
00-190
Poland
Утас: +48 22 860 18 18
Email: editors@lpmagazine.org
WWW:
Linux System Labs Australia
21 Ray Drive
Balwyn North
VIC - 3104
Australia
Утас: +61 3 9857 5918
Факс: +61 3 9857 8974
WWW:
LinuxCenter.Ru
Galernaya Street, 55
Saint-Petersburg
190000
Russia
Утас: +7-812-3125208
Email: info@linuxcenter.ru
WWW:
Түгээгчид
Хэрэв та дахин худалдагч бөгөөд FreeBSD CDROM бүтээгдэхүүнүүдийг тараахыг хүсэж
байгаа бол түгээгч буюу дистрибьюторт хандана уу:
Cylogistics
809B Cuesta Dr., #2149
Mountain View, CA 94040
USA
Утас: +1 650 694-4949
Факс: +1 650 694-4953
Email: sales@cylogistics.com
WWW:
Ingram Micro
1600 E. St. Andrew Place
Santa Ana, CA 92705-4926
USA
Утас: 1 (800) 456-8000
WWW:
Kudzu, LLC
7375 Washington Ave. S.
Edina, MN 55439
USA
Утас: +1 952 947-0822
Факс: +1 952 947-0876
Email: sales@kudzuenterprises.com
LinuxCenter.Ru
Galernaya Street, 55
Saint-Petersburg
190000
Russia
Утас: +7-812-3125208
Email: info@linuxcenter.ru
WWW:
Navarre Corp
7400 49th Ave South
New Hope, MN 55428
USA
Утас: +1 763 535-8333
Факс: +1 763 535-0341
WWW:
FTP сайтууд
FreeBSD-д зориулсан абан ёсны эхүүдийг дэлхий даяар байрласан толин тусгал сайтуудаас
авч болно.
сайт нь сайн холбогдсон бөгөөд маш олон тооны холболтуудыг зөвшөөрдөг. Гэхдээ та
илүү ойр
толин тусгал сайтыг хайж олсон нь дээр биз ээ (ялангуяа хэрэв
та ямар нэгэн толин тусгал маягийн сайт тохируулж ажиллуулахыг хүсвэл).
FreeBSD толин тусгал сайтуудын
мэдээллийн бааз нь Гарын авлага дахь толин тусгалын жагсаалтаас
илүү зөв байдаг. Учир нь энэ нь хостуудын статик жагсаалтад тулгуурлалгүй өөрийн мэдээллээ
DNS серверээс авдаг юм.
Мөн FreeBSD нь дараах толин тусгал сайтууд дахь нэргүй FTP-ээс авч болохоор байдаг.
Хэрэв та нэргүй FTP-ээс FreeBSD-г авахыг сонговол өөртөө аль болох ойр сайтыг ашиглаад
үзээрэй. Primary Mirror Sites
буюу үндсэн толин тусгал
сайтууд дахь толин тусгал сайтууд нь бүхэл FreeBSD архивыг (архитектур
болгонд зориулсан одоо байгаа бүх хувилбарууд) ихэвчлэн агуулдаг боловч
танай улс юм уу эсвэл бүсэд байрлаж байгаа сайтаас татаж авахад танд илүү хурдан
байх болов уу. Бүсийн сайтууд нь хамгийн түгээмэл архитектуруудад зориулсан
хамгийн сүүлийн үеийн хувилбаруудыг агуулдаг боловч FreeBSD-ийн бүх архивыг
агуулаагүй байж болох юм. Бүх сайтууд нь нэргүй FTP-ээр хандах боломжийг
олгодог. Зарим сайтууд нь бас бусад аргуудаар хандах боломжийг олгодог.
Сайт болгоны хувьд хандах аргууд нь хостын нэрийн дараа хаалтанд өгөгдсөн
байгаа болно.
&chap.mirrors.ftp.inc;
BitTorrent
BitTorrent
Үндсэн хувилбарын CD-үүдийн ISO дүрсүүдийг BitTorrent-оор дамжуулан
авах боломжтой байдаг. Дүрсүүдийг татаж авах torrent файлын цуглуулга
http://torrents.freebsd.org:8080
хаяг дээр бий.
BitTorrent-ийн клиент програм хангамж нь
net-p2p/py-bittorrent порт эсвэл
өмнө нь эмхэтгэсэн багц хэлбэрээр байдаг.
BitTorrent-оор ISO дүрсийг татаж авсны дараагаар та
burncd-ийн талаар тайлбарласнаар
CD эсвэл DVD дээр шарж болох юм.
Нэргүй CVS
Танилцуулга
CVS
нэргүй
Нэргүй CVS (эсвэл өөрөөр anoncvs гэгддэг)
нь алсын CVS архивтай синхрончлол хийгдэхэд зориулагдсан FreeBSD-тэй
цуг багцлагдсан CVS хэрэгслүүдийн үзүүлдэг боломж юм. Мөн
FreeBSD-ийн хэрэглэгчдэд ямар нэгэн зөвшөөрлүүдгүйгээр зөвхөн унших эрхтэй
CVS үйлдлүүдийг FreeBSD төслийн албан ёсны anoncvs серверүүдийн аль нэг дээр
хийх боломжийг олгодог. Ашиглахын тулд CVSROOT
орчны хувьсагчийг тохирох anoncvs сервер руу зааж cvs login
тушаалд бүгдийн мэддэг anoncvs
нууц үгийг өгч
дараа нь &man.cvs.1; тушаал ашиглан локал архивт хандаж байгаа шигээр
хандана.
cvs login тушаал нь CVS серверт
өөрийгээ таниулан нэвтрэхэд хэрэглэгдсэн нууц үгсийг
таны HOME санд .cvspass
файлд хадгалдаг.Хэрэв энэ файл байхгүй бол
таныг cvs login тушаалыг эхний удаа
ашиглахаар оролдоход алдаа гарч болох юм. Ердөө л
хоосон .cvspass файл үүсгээд нэвтрэхийг
оролдоорой.
CVSup болон anoncvs
үйлчилгээнүүд нь хоюул үндсэндээ адил үүргийг гүйцэтгэдэг гэж бас хэлж
болох боловч синхрончлол хийх аргуудын хэрэглэгчийн сонголтод
нөлөөлж болох төрөл бүрийн сул болон давуу талуудтай байдаг. Товчхондоо
CVSup нь өөрийн сүлжээний эх үүсвэрүүдийн
хэрэглээндээ илүү үр ашигтай бөгөөд техникийн хувьд хамгийн
ухаалаг нь боловч ажиллагаа ихтэй байдаг. CVSup-г
ашиглахын тулд эхүүдийг авч эхлэхээсээ өмнө тусгай клиентийг эхлээд суулгаж тохируулсан
байх ёстой бөгөөд зөвхөн дараа нь нэлээн том хэмжээтэй хэсгүүдээр
CVSup нь цуглуулгуудыг
дууддаг.
Харин Anoncvs-г
нэг файлаас авахуулаад тусгай програм (ls эсвэл
grep гэх зэрэг) хүртэлх бүгдийг CVS модулийн нэрээр нь
шалгахад ашиглаж болно. Мэдээж anoncvs
нь CVS архив дээрх зөвхөн уншигдах үйлдлүүдэд бас сайн болохоор
хэрэв та FreeBSD төслийн хэсгүүдтэй хуваалцсан нэг архив дахь локал
хөгжүүлэлтийг дэмжих зорилготой байгаа бол CVSup нь
таны цорын ганц сонголт байх юм.
Нэргүй CVS-г ашиглах нь
Ердөө л CVSROOT орчны хувьсагчийг FreeBSD төслийн
anoncvs серверүүдийн аль нэг уруу зааснаар
&man.cvs.1;-ийг нэргүй CVS архив ашиглахаар тохируулах юм.
Биднийг энэ баримтыг бичиж байх үед дараах серверүүд байгааг дурдав:
Франц:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (нууц үг anoncvs
), ssh (нууц үггүй))
Япон:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(cvs login тушаалыг ашиглаж асуух үед нь
anoncvs
нууц үгийг оруулна.)
Тайвань:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(pserver (cvs login тушаалыг ашиглаж асуух үед нь дурын нууц үг оруулна), ssh (нууц үггүй))
SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub
АНУ:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(зөвхөн ssh - нууц үггүй)
SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub
АНУ:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (зөвхөн ssh2 - нууц үггүй)
SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub
CVS нь FreeBSD-ийн хэзээ нэгэн цагт байсан (эсвэл зарим тохиолдолд ирээдүйд байх)
эхүүдийн бараг л дурын хувилбарыг check out
буюу шалгаж авах
боломжийг олгодог болохоор та &man.cvs.1;-ийн залруулалт ()
туг болон түүнд зориулагдсан зарим зөвшөөрөгдөх ямар утгууд FreeBSD төслийн архивт байдгийг
мэддэг байх хэрэгтэй.
Залруулалтын хаягууд болон салбарын хаягууд гэсэн хоёр төрлийн хаяг байдаг.
Залруулалтын хаяг нь тухайн залруулалтыг заадаг. Үүний утга нь өдрөөс өдөрт
ижил хэвээр байна. Нөгөө талаас салбарын хаяг нь ямар ч үед хөгжүүлэлтийн өгөгдсөн шугам дахь
хамгийн сүүлийн залруулалтыг заадаг. Салбарын хаяг нь тухайн нэг залруулалтыг
заадаггүй болохоор үүний маргаашийн утга нь өнөөдрийнхөөс өөр байж болох юм.
нь хэрэглэгчдийн сонирхож болох
залруулалтуудын хаягуудыг агуулдаг. Дахин хэлэхэд портын цуглуулга нь
хөгжүүлэлтийн олон салбаргүй учир эдгээрийн аль нь ч портын цуглуулгын хувьд зөв биш
юм.
Та салбарын хаягийг заах юм бол тэр хөгжүүлэлтийн шугам дахь
файлуудын сүүлийн хувилбаруудыг хүлээн авах болно. Хэрэв та ямар нэг өнгөрсөн
хувилбарыг хүлээн авахыг хүсэж байгаа бол
тугаар огноог заан тэгж хийж болно. Илүү дэлгэрэнгүйг &man.cvs.1;
гарын авлагын хуудаснаас үзнэ үү.
Жишээнүүд
Ямар нэг юм хийхээсээ өмнө &man.cvs.1;-ийн гарын авлагын хуудсыг
нэг бүрчлэн уншихыг зөвлөдөг хэдий ч нэргүй CVS-ийг хэрхэн ашиглахыг харуулж
байгаа зарим жишээнүүдийг энд үзүүлэв:
-CURRENT-с ямар нэгэн зүйл шалгаж авах нь (&man.ls.1;):
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
Хүлээх мөрөн дээр дурын үгийг нууц үг
болгон ашиглаарай.
&prompt.user; cvs co ls
src/ модыг шалгаж авахын тулд SSH-г ашиглах нь:
&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.
6-STABLE салбар дахь &man.ls.1;-ийн хувилбарыг шалгаж авах нь:
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
Хүлээх мөрөн дээр дурын үгийг нууц үг
болгон ашиглаарай.
&prompt.user; cvs co -rRELENG_6 ls
&man.ls.1;-д хийгдсэн өөрчлөлтүүдийн жагсаалтыг (нэгдсэн ялгаанууд хэлбэрээр) үүсгэх нь
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
Хүлээх мөрөн дээр дурын үгийг нууц үг
болгон ашиглаарай.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
Өөр бусад ямар модулийн нэрс ашиглагдаж болохыг олох нь:
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
Хүлээх мөрөн дээр дурын үгийг нууц үг
болгон ашиглаарай.
&prompt.user; cvs co modules
&prompt.user; more modules/modules
Бусад эх үүсвэрүүд
Дараах нэмэлт эх үүсвэрүүд нь CVS-ийг сурахад тус болж болох юм:
Кал Полигийн CVS заавар.
CVS гэр,
CVS-ийн хөгжүүлэлт болон дэмжлэгийн нийгэм.
CVSweb нь
FreeBSD төслийн CVS-д зориулсан вэб интерфэйс юм.
CTM-г ашиглах нь
CTM
CTM нь алсын сангийн модыг төвтэй
синхрончлол хийхэд зориулсан арга юм. Энэ нь FreeBSD-ийн эх моднуудтай
ашиглахад зориулагдаж хөгжүүлэгдсэн бөгөөд цаг хугацаа өнгөрөх тусам бусад хүмүүс
бусад зорилгоор хэрэглэхэд ашигтайг мэдэж болох юм. Дельтанууд үүсгэх процессийн
талаар бараг баримт байхгүй болохоор бас хэрэв та CTM-г
бусад зүйлсэд зориулж ашиглахыг хүсэж байгаа бол дэлгэрэнгүй мэдээллийн талаар
&a.ctm-users.name; захидлын жагсаалтад хандана уу.
CTM-г би яагаад ашиглах ёстой вэ?
CTM нь танд FreeBSD эх моднуудын локал
хуулбарыг өгдөг. Модны төрөл бүрийн хэлбэрүүд
байдаг.
Таны бүхэл CVS мод эсвэл аль нэг салбаруудын нэгийг дагахыг хүсэж байгаагаас
хамаарч CTM нь танд мэдээлэл өгч чадна.
Та FreeBSD-ийн идэвхтэй хөгжүүлэгч боловч олиггүй юм уу эсвэл TCP/IP холболт байхгүй
эсвэл өөрчлөлтүүдийг автоматаар тан руу илгээгддэг байлгахыг хүсэж байгаа
бол CTM нь танд зориулагджээ.
Та хамгийн идэвхтэй салбаруудын хувьд өдөрт гурав хүртэлх дельтануудыг авах
хэрэгтэй болно. Гэхдээ та тэдгээрийг автомат цахим захидлаар илгээгддэг
байхыг бодох хэрэгтэй. Шинэчлэлтүүдийн хэмжээг үргэлж аль болох бага байлгадаг.
Энэ ихэвчлэн 5K-с бага байдаг, хааяа (арваас нэгт) 10-50K хэмжээтэй
байдаг бөгөөд заримдаа том 100K+ эсвэл илүү бас байдаг.
Та урьдчилан багцалсан хувилбарын оронд хөгжүүлэлтийн эхүүд дээр
шууд ажиллахтай холбоотой гардаг төрөл бүрийн анхааруулгуудын талаар бас
мэдэж байх хэрэгтэй болно. Энэ нь таныг current
эхүүдийг сонгох тохиолдолд ялангуяа үнэн байдаг. Таныг
FreeBSD-ийн одоо үеийн хэлбэрт байх нь
хэсгийг уншихыг зөвлөдөг.
CTM-г ашиглахад надад юу хэрэгтэй вэ?
Танд хоёр зүйл хэрэгтэй: CTM
програм болон түүнийг тэжээх эхний дельтанууд (current
түвшингүүдэд хүрэхийн тулд).
CTM програм нь хувилбар 2.0 гарснаас
хойш FreeBSD-ийн хэсэг болж ирсэн бөгөөд хэрэв танд эх байгаа бол энэ нь
/usr/src/usr.sbin/ctm санд байдаг.
CTM-г тэжээх дельтануудыг
нь FTP эсвэл цахим захидал гэсэн хоёр аргаар авч болно. Хэрэв танд Интернет уруу
хандах ерөнхий FTP хандалт байгаа бол дараах FTP сайтууд нь CTM-д
хандахыг дэмждэг:
эсвэл толин тусгалууд хаягийг үзнэ үү.
тохирох сан руу FTP хийгээд README
файлыг татаж аваад тэндээс эхлээрэй.
Хэрэв та өөрийн дельтануудыг цахим захидлаар авахыг хүсэж байгаа бол:
CTM түгээлтийн жагсаалтуудын
аль нэгэнд бүртгүүлэх хэрэгтэй. &a.ctm-cvs-cur.name; нь
бүхэл CVS модыг дэмждэг. &a.ctm-src-cur.name; нь
хөгжүүлэлтийн салбарын толгойг дэмждэг. &a.ctm-src-4.name; нь
4.X хувилбарыг дэмждэг, гэх мэт. (Хэрэв та өөрийгөө жагсаалтад
хэрхэн бүртгүүлэхийг мэдэхгүй байгаа бол дээрх жагсаалтын нэрэн дээр
дарах юм уу эсвэл &a.mailman.lists.link; уруу очоод
өөрийн хүсэж байгаа жагсаалтан дээрээ дарах хэрэгтэй. Бүртгэхэд
шаардлагатай бүгдийг жагсаалтын хуудас агуулсан байх ёстой.)
Өөрийн CTM шинэчлэлтүүдийг
хүлээн авч эхлэхдээ та тэдгээрийг задалж ашиглахдаа ctm_rmail
тушаал ашиглаж болох юм. Хэрэв та процессийг бүрэн автомат загвараар
ажилладаг байлгахыг хүсэж байгаа бол /etc/aliases
файл дахь оруулгаас ctm_rmail програмыг
шууд ашиглаж болох юм. Илүү дэлгэрэнгүйг ctm_rmail-ийн
гарын авлагын хуудаснаас шалгана уу.
CTM дельтануудыг авах ямар
аргыг ашиглаж байгаагаас үл хамааран та &a.ctm-announce.name;
захидлын жагсаалтад бүртгүүлэх хэрэгтэй. Ирээдүйд
CTM системийн ажиллагааны тухай
зарлалууд илгээгдэх газар нь зөвхөн энэ болох юм.
Дээрх жагсаалтын нэрэн дээр дарж жагсаалтад бүртгүүлэхийн тулд
заавруудыг дагах хэрэгтэй.
CTM-г эхний удаа хэрэглэх
CTM дельтануудыг ашиглаж эхлэхээсээ
өмнө дельтанууд дараа дараагийн удаа үүсгэгдэхэд нь зориулж та эхлэх цэг дээр ирэх
хэрэгтэй болно.
Танд юу байгааг эхлээд тодорхойлох хэрэгтэй. Бүгд
хоосон
сангаас эхэлж болно. Өөрийн CTM-ээр
дэмжигдсэн модыг эхлүүлэхийн тулд та эхний Empty
буюу хоосон
дельтаг ашиглах ёстой. Тодорхой нэг цэгт эдгээр started
буюу
эхэлсэн дельтануудын аль нэгийг өөрийн хүслээр CD дээр түгээж болохоор энэ нь
зориулагдсан боловч одоогоор тийм юм болоогүй байгаа билээ.
Моднууд нь хэдэн арван мегабайт байдаг болохоор өөртөө байгаагаас эхлэхийг
эрхэмлэх ёстой юм. Хэрэв танд -RELEASE CD байгаа бол та эхний эхийг түүнэс хуулж эсвэл
задалж болох юм. Энэ нь өгөгдлийн чухал дамжуулалтыг хэмнэх болно.
Та эдгээр starter
буюу эхлэх дельтануудыг
дугаарт нэмэгдсэн X-ээр таньж болно
(жишээ нь src-cur.3210XEmpty.gz).
X-ийн дараах тэмдэглээс нь таны эхний seed
буюу үрийн үүсэлд харгалзана. Дүрмээр бол Empty буюу
хоосноос шилжих үндсэн шилжилт нь 100 дельта бүрээс үүсгэгдэнэ.
Ингэхэд тэдгээр нь том байна! XEmpty
дельтануудын хувьд 70-аас 80 мегабайт gzip хийгдсэн
өгөгдөл нь нийтлэг байдаг.
Эхлэх анхдагч дельтаг сонгосны дараа танд түүний дараах өндөр дугааруудтай
бүх дельтанууд хэрэгтэй болно.
Өөрийн өдөр тутмын амьдралдаа CTM-г ашиглах нь
Дельтануудыг өгөхийн тулд ердөө л доор дурдсаныг хийнэ:
&prompt.root; cd /where/ever/you/want/the/stuff
&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.*
CTM нь gzip-ээр
тавигдсан дельтануудыг ойлгодог болохоор та тэдгээрийг эхлээд
gunzip хийх хэрэггүй юм. Энэ нь дискний зай
хэмнэх болно.
Бүх процессийн талаар маш нууцлаг гэж бодоогүй л бол
CTM нь таны модыг хөндөхгүй байх болно.
Дельтаг шалгахын тулд та тугийг бас ашиглаж
болох бөгөөд CTM нь таны модыг
үнэндээ хөндөхгүй; энэ нь зөвхөн дельтаны бүрэн бүтэн байдлыг шалгаж
таны одоогийн модонд цэвэр хийгдэх эсэхийг л үздэг.
CTM-д өгөгдөх бусад сонголтууд
бас байдаг бөгөөд эдгээрийг гарын авлагын хуудаснуудаас үзнэ үү,
эсвэл илүү дэлгэрэнгүйг эхүүдээс хайна уу.
Ингээд л бүгд бараг болж байна. Шинэ дельта авах бүртээ
өөрийн эхүүдийг хамгийн сүүлийн хувилбарт аваачихын тулд түүнийг
CTM-ээр ажиллуулах хэрэгтэй.
Дельтануудыг дахин татаж авахад хэцүү байгаа бол битгий
устгаарай. Ямар нэг муу юм болж болзошгүй гэж үзээд тэдгээрийг та
хаа нэгтэй хадгалахыг хүсэж болох юм. Танд зөвхөн уян диск байсан ч
гэсэн fdwrite тушаалыг ашиглан хуулбар хийх
нь зүйтэй.
Өөрийн локал өөрчлөлтүүдийг хадгалах нь
Хөгжүүлэгчийн хувьд эх модыг өөрчлөх эсвэл түүн дээр турших хүсэл төрж
болох юм. CTM нь локал өөрчлөлтүүдийг
хязгаарлалттайгаар дэмждэг: foo файлыг байгаа
эсэхийг шалгахын өмнө foo.ctm файлыг эхлээд
хайдаг. Хэрэв энэ файл байвал CTM нь
foo-ийн оронд энэ файл дээр ажилладаг.
Энэ нь бидэнд локал өөрчлөлтүүдийг хялбараар арчлах боломжийг
олгодог: өөрийн өөрчлөх төлөвлөгөөтэй байгаа файлуудаа .ctm
өргөтгөлтэй болгон хуулах хэрэгтэй. Дараа нь та кодыг чөлөөтэй оролдож
болох бөгөөд CTM нь .ctm
файлыг хамгийн сүүлийн хэлбэрт байлгах болно.
CTM-ийн бусад сонирхолтой сонголтууд
Шинэчлэлтээр яг юу хөндөгдөхийг олох
Та өөрийн эх архивт CTM-ийн
хийх өөрчлөлтүүдийн жагсаалтыг
сонголтыг CTM-д
өгөн тодорхойлж болно.
Та өөрчлөлтүүдийн бүртгэлүүдийг хадгалах, өөрчлөгдсөн файлуудад
урьдчилан эсвэл дараа нь боловсруулалт хийх эсвэл ердөө л хэтэрхий зовниж
байгаа бол энэ нь ашигтай юм.
Шинэчлэхээсээ өмнө нөөцлөлтүүд хийх
Заримдаа та CTM шинэчлэлтээр
өөрчлөгдөх бүх файлуудыг нөөцөлж авахыг хүсэж болох юм.
сонголтыг зааснаар
CTM-ийг өгөгдсөн
CTM дельтагаар хөндөгдөх бүх
файлуудыг нөөцөлж backup-file руу
хадгалахад хүргэнэ.
Шинэчлэлтээр хөндөгдөх файлуудыг хязгаарлах
Заримдаа та өгөгдсөн CTM шинэчлэлтийн
хүрээг хязгаарлах сонирхолтой эсвэл дельтануудын дарааллаас цөөн
хэдэн файлуудыг задлах сонирхолтой байж болох юм.
CTM-ийн ажилладаг файлуудын
жагсаалтыг та болон
сонголтуудыг ашиглан шүүлт хийх регулар илэрхийллүүдийг заан хянаж
болно.
Жишээ нь өөрийн хадгалсан CTM дельтануудын
цуглуулгаас lib/libc/Makefile-ийн
хамгийн сүүлийн хуулбарыг задалж авахын тулд дараах тушаалуудыг
ажиллуулна:
&prompt.root; cd /where/ever/you/want/to/extract/it/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*
CTM дельтанд заагдсан файл бүрийн
хувьд тушаалын мөрөнд өгөгдсөн дарааллаар
болон сонголтуудыг өгсөн.
Файл нь бүх болон
сонголтууд түүнд өгөгдсөний дараа
зөвхөн сонгогдох эрхтэй гэж тэмдэглэгдсэн бол CTM-ээр
боловсруулагддаг.
CTM-ийн ирээдүйн төлөвлөгөөнүүд
Маш их:
CTM-ийн хуурамч шинэчлэлтүүдийг
илрүүлэхийн тулд CTM системд ямар нэгэн нэвтрэлт танилт
ашиглах.
CTM-ийн сонголтуудыг цэвэрлэх,
тэдгээр нь толгой эргүүлэм, зөн совингийн эсрэг болсон.
Бусад зүйлс
ports цуглуулгад зориулсан дельтануудын
дараалал бас байдаг боловч сонирхол тийм ч өндөр байдаггүй.
CTM толин тусгалууд
CTM/FreeBSD нь дараах толин тусгал сайтууд дахь
нэргүй FTP-ээр хандаж авах боломжтой байдаг. Хэрэв та CTM-г
нэргүй FTP-ээр авахыг сонгосон бол өөртөө ойр сайтыг оролдож үзнэ үү.
Асуудал гарсан тохиолдолд &a.ctm-users.name; захидлын жагсаалтад
хандана уу.
Калифорни, Bay Area, албан ёсны эх
Өмнөд Африк, хуучин дельтануудад зориулсан нөөц сервер
Тайвань/R.O.C.
Хэрэв та өөртөө ойрхон толин тусгалыг олоогүй бол эсвэл толин тусгал нь
бүрэн биш байгаа бол alltheweb
зэрэг хайлтын системийг ашиглаад үзээрэй.
CVSup-г ашиглах нь
Танилцуулга
CVSup нь алсын сервер хост дээр
байгаа мастер CVS архиваас эх модыг шинэчлэх болон түгээхэд зориулагдсан
програм хангамжийн багц юм. FreeBSD-ийн эхүүд Калифорни дахь төв хөгжүүлэлтийн
машин дээрх CVS архивт арчлагдаж байдаг. CVSup-ийн
тусламжтай FreeBSD хэрэглэгчид өөрсдийн эх модыг хялбараар хамгийн сүүлийн
хэлбэрт аваачиж чаддаг байна.
CVSup нь шинэчлэлтийн
pull буюу татах загварыг
ашигладаг. Татах загвар дээр клиент бүр серверээс шинэчлэлтийг хүссэн үедээ
эсвэл хэрэгтэй үедээ асуудаг. Сервер нь өөрийн хэрэглэгчдээс ирэх хүсэлтүүдийг
идэвхгүйгээр хүлээж байдаг. Сервер хэзээ ч хүсээгүй шинэчлэлтүүдийг илгээдэггүй.
Хэрэглэгчид нь шинэчлэлтийг авахын тулд CVSup
клиентийг гараар ажиллуулах юм уу эсвэл түүнийг автоматаар давтамжтайгаар
ажиллуулахын тулд cron ажил тохируулах ёстой болно.
Ингэж том үсгээр бичсэн CVSup ухагдахуун нь
бүхэл програм хангамжийн багцыг хэлнэ. Түүний гол бүрэлдэхүүн хэсгүүд нь
хэрэглэгч бүрий машин дээр ажилладаг cvsup клиент, ба
FreeBSD-ийн толин тусгал сайтууд дээр ажиллаж байдаг cvsupd
сервер юм.
FreeBSD-ийн баримт болон захидлын жагсаалтуудыг уншиж байхдаа та
sup гэж хэлснийг харж болох юм.
Sup нь CVSup-ийн
өмнөх үе бөгөөд ижил зорилгоор ашиглагддаг байсан. CVSup
нь sup-тай бараг л адилаар ашиглагддаг бөгөөд үнэндээ sup
ашиглаж болохоор тохиргооны файлуудыг ашигладаг. CVSup
нь илүү хурдан бөгөөд уян хатан учраас Sup
нь FreeBSD төсөлд ашиглагдахаа больсон.
csup хэрэгсэл нь CVSup-г
C дээр бичсэн хувилбар юм. Үүний хамгийн том давуу тал бол илүү хурдан бөгөөд
Modula-3 хэлээс хамаардаггүй, тиймээс та түүнийг суулгах шаардлагагүй байдаг.
Мөн хэрэв та &os; 6.2 юм уу эсвэл түүнээс хойшх хувилбаруудыг ашиглаж байгаа
бол түүнийг шууд ашиглаж болно, учир нь энэ нь үндсэн системд орсон байдаг.
Хуучин &os; хувилбаруудын үндсэн системд &man.csup.1; байдаггүй, гэхдээ
та net/csup портууд юм уу эсвэл
урьдчилан эмхэтгэсэн багцыг хялбархан суулгаж болно.
csup хэрэгсэл нь гэхдээ CVS горимыг дэмждэггүй.
Хэрэв та бүрэн архивыг толин тусгал хийхийг хүсэж байгаа бол CVSup-г
ашиглах хэрэгтэй болно. Хэрэв та csup-г ашиглахаар
шийдсэн бол CVSup-ийн суулгалт дахь алхмуудыг
алгасаж энэ нийтлэлийн үлдсэн хэсгийг дагаж байхдаа
CVSup гэснийг csup
болгож солиорой.
Суулгалт
CVSup-г суулгах хамгийн хялбар арга бол
FreeBSD-ийн багцын цуглуулгаас
урьдчилан эмхэтгэсэн net/cvsup
багцыг ашиглах явдал юм. Хэрэв та CVSup-г
эхээс бүтээхийг эрхэмлэж байгаа бол net/cvsup
портыг ашиглаарай. Гэхдээ урьдчилан анхааруулъя: net/cvsup
порт нь Modula-3 системээс хамаардаг бөгөөд үүнийг татан авч суулгахад ихээхэн
хэмжээний дискний зай болон хугацаа шаарддаг.
Хэрэв та &xfree86; эсвэл &xorg;
зэрэг суулгагдаагүй сервер машин дээр CVSup-г ашиглах гэж байгаа
бол CVSup GUI-г агуулаагүй
net/cvsup-without-gui портыг ашиглах
хэрэгтэй.
Хэрэв та csup-г FreeBSD 6.1 эсвэл
түүнээс өмнөх хувилбаруудад суулгахыг хүсэж байгаа бол
FreeBSD-ийн багцын цуглуулгаас
урьдчилан эмхэтгэсэн net/csup
багцыг ашиглаж болно. Хэрэв та csup-г
эхээс бүтээхийг эрхэмлэж байгаа бол net/csup
портыг ашиглаж болно.
CVSup тохиргоо
CVSup-ийн ажиллагаа supfile
гэгддэг тохиргооны файлаар хянагддаг.
/usr/share/examples/cvsup/
санд зарим жишээ supfiles байдаг.
supfile дахь мэдээлэл
CVSup-д зориулж дараах асуултуудад
хариулдаг:
Ямар файлуудыг та хүлээн авахыг хүсэж
байна вэ?
Тэдгээрийн ямар хувилбаруудыг та хүсэж
байна вэ?
Тэдгээрийг та хаанаас авахыг хүсэж
байна вэ?
Та тэдгээрийг өөрийн машиныхаа
хаана байрлуулахыг хүсэж байна вэ?
Та өөрийн төлвийн файлуудыг
хаана байрлуулахыг хүсэж байна вэ?
Дараах хэсгүүдэд бид эдгээр асуултуудад хариулан түгээмэл
supfile-г бүтээх болно. Эхлээд бид
supfile-ийн ерөнхий бүтцийг тайлбарлах
болно.
supfile нь текст файл юм. Тайлбарууд
нь # тэмдэгтээс эхэлж мөр дуустал үргэлжилнэ.
Хоосон мөрнүүд болон зөвхөн тайлбараас тогтох мөрүүдийг орхидог.
Үлдэж байгаа мөр болгон хэрэглэгчийн авахыг хүсэж байгаа файлуудын
цуглуулгыг тайлбарладаг. Мөр нь файлуудын цуглуулга
буюу
файлуудын логик бүлэглэлийн нэрээс эхэлдэг бөгөөд эдгээрийг сервер
тодорхойлдог. Цуглуулгын нэр таны аль файлуудыг хүсэж байгааг серверт
хэлдэг. Цуглуулгын нэрийн дараа талбарууд байхгүй эсвэл байж болох
бөгөөд зайгаар тусгаарлагдсан байна. Эдгээр талбарууд нь дээрх
асуултуудад хариулдаг. Хоёр төрлийн талбар байдаг: тугны талбарууд ба
утгын талбарууд. Тугны талбар нь ганцаараа байгаа түлхүүр үгнээс
тогтдог, өөрөөр хэлбэл delete эсвэл
compress байна. Утгын талбар нь бас
түлхүүр үгээс эхлэх боловч хоосон зайгаар тусгаарлагдалгүйгээр
= болон хоёр дахь үгээс тогтоно. Жишээ нь
release=cvs нь утгын талбар юм.
supfile ихэвчлэн нэгээс илүү цуглуулгыг
хүлээн авахаар заасан байдаг. supfile-г
зохион байгуулах нэг арга нь цуглуулга бүрийн хувьд харгалзах бүх
талбаруудыг зааж өгөх явдал юм. Гэхдээ энэ нь supfile-ий
мөрүүдийг нэлээн урт болгодог бөгөөд supfile дахь
цуглуулгуудын бүгдийн хувьд ихэнх талбарууд нь ижил байдаг болохоор
таагүй юм. CVSup нь эдгээр асуудлуудыг
тойрон гарах анхдагч болгох арга замтай байдаг. Тусгай псевдо цуглуулгын
нэр *default-р эхэлсэн мөрүүд нь
тугнууд болон supfile дахь дараа дараачийн
цуглуулгуудын хувьд анхдагч болж ашиглагдах утгуудыг заахад хэрэглэгддэг.
Анхдагч утгыг цуглуулгатай цуг өөр утгыг заан өгч тухайн цуглуулгын хувьд
өөрчилж болдог. Анхдагчуудыг дундын supfile-д
нэмэлт *default мөрүүдээр өөрчилж эсвэл дарж
болдог.
Ийм мэдээлэлтэйгээр бид одоо FreeBSD-CURRENT-ийн гол эх модыг
хүлээн авч шинэчлэхэд зориулсан supfile-г
бүтээх болно.
Ямар файлуудыг та хүлээн авахыг хүсэж
байна вэ?
CVSup-аар авах боломжтой файлууд нь
collections
буюу цуглуулгууд гэгддэг бүлгүүдэд
хуваагдан зохион байгуулагддаг. Байгаа цуглуулгууд нь
дараах хэсэгт тайлбарлагдсан
байгаа. Энэ жишээн дээр бид FreeBSD-ийн хувьд бүх гол эхийг авахыг хүсэж
байна. src-all гэсэн ганц том цуглуулга
бидэнд үүнийг өгөх болно. supfile-аа
бүтээх эхний алхам болгож бид цуглуулгуудыг нэг мөрөнд нэгийг
тавьж жагсаана (энэ тохиолдолд зөвхөн нэг мөр байна):
src-all
Тэдгээрийн ямар хувилбаруудыг та хүсэж
байна вэ?
CVSup-ийн тусламжтай та хэзээ ч юм байсан
эхүүдийн бараг ямар ч хувилбарыг хүлээн авч чадна.
cvsupd сервер нь бүх хувилбаруудыг агуулсан
CVS архиваас шууд ажилладаг болохоор энэ нь боломжтой юм. Та тэдгээрийн
алийг хүсэж байгаагаа tag= болон
утга талбаруудыг ашиглан зааж өгч болно.
tag= талбарыг зөв зааж өгөхдөө анхааралтай
байх хэрэгтэй. Зарим хаягууд нь зөвхөн файлуудын зарим цуглуулгуудын
хувьд зөв байдаг. Хэрэв та буруу эсвэл буруу бичсэн хаягийг зааж өгөх юм
бол магадгүй таны устгахыг хүсээгүй файлуудыг CVSup нь
устгах юм. Ялангуяа ports-*
цуглуулгуудын хувьд зөвхөн
tag=.-г ашиглаарай.
tag= талбар нь симболын хаягийг архивт
нэрлэдэг. Хоёр төрлийн хаяг байдаг бөгөөд эдгээр нь
залруулалтын хаягууд болон салбарын хаягууд юм. Залруулалтын
хаяг нь тухайн нэг залруулалтыг заадаг.
Үүний утга нь өдрөөс өдөрт ижил хэвээр байна. Нөгөө талаас салбарын
хаяг нь ямар ч үед хөгжүүлэлтийн өгөгдсөн шугам дахь хамгийн сүүлийн
залруулалтыг заадаг. Салбарын хаяг нь тухайн нэг залруулалтыг
заадаггүй болохоор үүний маргаашийн утга нь өнөөдрийнхөөс өөр
байж болох юм.
нь хэрэглэгчдийн сонирхож болох
салбарын хаягуудыг агуулдаг. CVSup-ийн
тохиргооны файлд хаягийг зааж өгөхдөө өмнө нь tag=
гэж өгөх ёстой (RELENG_4 нь
tag=RELENG_4 болно).
Зөвхөн tag=. нь портын цуглуулгад
хамааралтай болохыг санаарай.
Хаягийн нэрийг яг үзүүлсэн шиг бичихдээ анхааралтай байгаарай.
CVSup нь зөв болон буруу
хаягуудыг ялгаж чаддаггүй. Хэрэв та хаягийг буруу бичвэл
CVSup нь
таныг зөв хаяг өгсөн гэж ойлгон ажиллах бөгөөд энэ нь ямар ч файлуудыг
заагаагүйд хүргэж болох юм. Энэ тохиолдолд энэ нь танд байгаа
эхүүдийг устгах болно.
Салбарын хаягийг заахад та тэр хөгжүүлэлтийн шугамын
файлуудын хамгийн сүүлийн хувилбаруудыг авах болно.
Хэрэв та ямар нэг өнгөрсөн хувилбарыг авахыг хүсвэл
талбарт огноог заан хийж өгч болно. &man.cvsup.1; гарын
авлагын хуудас үүнийг хэрхэн хийхийг тайлбарладаг.
Бидний жишээний хувьд FreeBSD-CURRENT-г авахыг бид хүсэж байна.
Бид энэ мөрийг өөрсдийн supfile-ийн
эхэнд нэмнэ:
*default tag=.
Хэрэв та tag= талбар эсвэл date=
талбарын алийг ч зааж өгөөгүй бол чухал тусгай тохиолдол гарч
ирнэ. Энэ тохиолдолд тодорхой нэг хувилбарыг хүлээн авахын оронд
серверийн CVS архиваас RCS файлуудыг шууд хүлээн авдаг.
Ажиллагааны ийм горимыг хөгжүүлэгчид ерөнхийдөө эрхэмлэдэг.
Өөрсдийн системүүд дээр архивын хуулбарыг арчилснаар тэд
залруулалтын түүхийг хайж файлуудын өнгөрсөн хувилбаруудыг шалгах
боломжтой болох юм. Гэхдээ энэ хонжоо нь дискний зайны хувьд
их өртөгтэйгээр орж ирдэг.
Тэдгээрийг та хаанаас авахыг хүсэж
байна вэ?
Бид host= талбарыг ашиглан cvsup-д
өөрийн шинэчлэлтүүдийг хаанаас авахыг хэлж өгдөг. CVSup
толин тусгал сайтуудын аль нь ч болох боловч та өөрийн кибер
ертөнцдөө ойрхныг турших хэрэгтэй. Энэ жишээн дээр бид
зохиомол FreeBSD түгээлтийн сайт
cvsup99.FreeBSD.org-г ашиглах
болно:
*default host=cvsup99.FreeBSD.org
Та CVSup-г ашиглахаасаа өмнө
үнэн хэрэг дээрээ байгаа жинхэнэ хостоор солих хэрэгтэй болно.
cvsup-г ажиллуулах үедээ та хостын тохируулгыг
тушаалын мөрөөс сонголтоор
өөрчлөн дарж болно.
Та тэдгээрийг өөрийн машиныхаа
хаана байрлуулахыг хүсэж байна вэ?
prefix= талбар нь хүлээн авсан файлуудыг
хаана байрлуулахыг cvsup хэлнэ.
Энэ жишээн дээр бид эх файлуудыг өөрсдийн гол эх модны /usr/src
байрлалд шууд байрлуулах болно. src сан нь
бидний хүлээн авахаар сонгосон цуглуулгад далд байгаа болохоор
энэ нь зөв юм:
*default prefix=/usr
cvsup
өөрийн төлвийн файлуудыг хаана арчлах ёстой вэ?
CVSup клиент нь base
буюу үндсэн гэгддэг сан дахь зарим төлвийн файлуудыг арчилж байдаг.
Эдгээр файлууд нь ямар шинэчлэлтүүдийг та аль хэдийн хүлээн авсныг
хянаж CVSup-ийг илүү үр ашигтай
ажиллахад тусалдаг. Бид стандарт үндсэн сан /var/db-г
ашиглах болно:
*default base=/var/db
Хэрэв таны үндсэн сан байхгүй байгаа бол одоо түүнийг үүсгэх
хугацаа болсон байна. Хэрэв үндсэн сан байхгүй бол
cvsup ажиллахаас татгалзах болно.
supfile-ийн бусад
тохиргоонууд:
supfile-д ерөнхийдөө байх ёстой бас нэг
мөр байдаг:
*default release=cvs delete use-rel-suffix compress
release=cvs нь сервер гол FreeBSD CVS
архиваас өөрийн мэдээллийг авах ёстойг зааж байна. Энэ нь
бараг үргэлж тохиолддог, хэдийгээр бусад боломжууд байдаг боловч
энэ хэлэлцүүлгийн хүрээнээс хальдаг.
delete нь
CVSup-д файлууд устгах зөвшөөрөл өгдөг.
CVSup нь таны эх модыг байнга
хамгийн сүүлийн хэлбэрт байлгадаг байхын тулд та үүнийг үргэлж
зааж өгөх хэрэгтэй. CVSup нь
өөрийн хариуцдаг зөвхөн тэр файлуудыг устгах тал дээр их анхааралтай
ажилладаг. Танд байж болох нэмэлт файлууд тэр хэвээрээ үлддэг.
use-rel-suffix нь ... ойлгоход төвөгтэй юм.
Хэрэв та үүний тухай жинхэнээсээ мэдье гэж хүсэж байгаа бол
&man.cvsup.1; гарын авлагын хуудаснаас үзнэ үү. Хэрэв тийм биш бол
ердөө заагаад л тэгээд санаа зовох хэрэггүй юм.
compress нь холбооны суваг дээр
gzip загварын шахалтын хэрэглээг идэвхжүүлдэг. Хэрэв таны
сүлжээний холболт T1 эсвэл түүнээс хурдан бол та магадгүй
шахалтыг ашиглах хэрэггүй юм. Хэрэв үгүй бол энэ нь бодитойгоор
тусалдаг.
Бүгдийг нийлүүлбэл:
Энд бидний жишээнд зориулсан бүхэл supfile
байна:
*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-all
refuse файл
Дээр дурдсанаар CVSup нь
татах аргыг ашигладаг. Энэ нь юу гэсэн үг вэ гэхээр
та CVSup сервер руу холбогдох бөгөөд
энэ нь Над дээрээс татаж авах боломжтой зүйлс энэ байна...
гэж хэлэх бөгөөд таны клиент OK, Би энэ,энэ, энийг авна.
гэж хариулна гэсэн үг юм. Анхдагч тохиргоон дээр
CVSup клиент нь таны тохиргооны файлд сонгосон хаяг болон
цуглуулгатай холбоотой бүх файлыг авна. Гэхдээ үүнийг та үргэлж хүсэхгүй байх,
ялангуяа хэрэв та doc, ports, эсвэл
www моднуудыг авч байгаа бол үүнийг хийхийг хүсэхгүй
байх — ихэнх хүмүүс дөрөв эсвэл таван хэлийг уншиж чаддаггүй
бөгөөд тиймээс тэдэнд хэлтэй холбоотой файлуудыг татаж авах хэрэггүй байдаг.
Хэрэв та портын цуглуулгыг CVSup хийж байгаа
бол та цуглуулга бүрийг тусад нь заан өгч үүнийг тойрон гарч болно
(өөрөөр хэлбэл, ports-astrology,
ports-biology, гэх мэтээр ports-all
гэхийн оронд). Гэхдээ doc
болон www моднууд нь хэлтэй холбоотой цуглуулгуудтай байдаггүй
болохоор та CVSup-ийн олон сайн боломжуудын
нэгийг ашиглах ёстой нь refuse юм.
refuse файл нь үндсэндээ
CVSup-д цуглуулгаас файл болгоныг
татаж авахгүй гэдгийг хэлдэг; өөрөөр хэлбэл клиентэд серверээс зарим
файлууд татаж авахаас татгалзахыг хэлж өгдөг.
refuse файл нь
base/sup/ сангаас
олдож болно (эсвэл хэрэв танд ийм файл байхгүй байгаа бол түүнийг дээрх санд байрлуулах
хэрэгтэй). base нь таны supfile-д
тодорхойлогдсон байдаг; бидний тодорхойлсон base нь
/var/db бөгөөд энэ нь анхдагчаар
refuse файл нь /var/db/sup/refuse
гэсэн үг юм.
refuse файл нь маш хялбар хэлбэршилттэй байдаг;
энэ нь таны татаж авахыг хүсээгүй файлууд эсвэл сангуудын нэрийг агуулдаг.
Жишээ нь хэрэв та Англи болон Германаар бага зэрэг ярьдгаас өөр хэлээр
ярьдаггүй бөгөөд баримтын Герман орчуулгыг авах сонирхолгүй байвал
өөрийн refuse файлд дараах:
doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*
мөрүүд болон гэх мэтээр бусад хэлнүүдийн хувьд оруулж өгөх хэрэгтэй
(та бүрэн жагсаалтыг FreeBSD
CVS архивыг шалган олж болно).
Энэ ашигтай боломжийг ашиглан удаан холболттой юм уу эсвэл өөрсдийн
Интернэтийн холболтод минутаар төлдөг хэрэглэгчид үнэ цэнэтэй хугацаагаа
хэмнэх болно. Учир нь тэд өөрсдийн хэзээ ч ашиглахгүй файлаа татаж авах
шаардлагагүй болох юм. CVSup-ийн
refuse файлууд болон бусад сайхан боломжуудын
талаар илүү мэдээллийг түүний гарын авлагын хуудаснаас үзнэ үү.
CVSup-г ажиллуулах нь
Одоо та шинэчлэлт хийж үзэхэд бэлэн боллоо. Үүнийг хийх тушаалын мөр
их амархан:
&prompt.root; cvsup supfile
энд байгаа supfile нь
таны дөнгөж үүсгэсэн supfile-ийн нэр юм.
Таныг X11 дээр ажиллаж байна гэж үзвэл cvsup нь
энгийн зүйлсийг хийх зарим товчлууруудтай GUI цонхыг үзүүлэх болно.
go товчлуурыг дарж ажиллахыг нь хараарай.
Та энэ жишээн дээр өөрийн жинхэнэ /usr/src
модыг шинэчилж байгаа болохоор cvsup нь
таны файлуудыг шинэчлэхэд шаардлагатай зөвшөөрлүүдтэй байхын тулд
та програмыг root эрхээс ажиллуулах хэрэгтэй
болно. Өөрийн тохиргооны файлыг дөнгөж үүсгэсэн бөгөөд урьд нь энэ програмыг
хэзээ ч ашиглаж байгаагүй бол таныг бухимдуулж магадгүй юм. Өөрийн файлуудыг
хөндөлгүйгээр туршилтын журмаар ажиллуулах хялбар арга байдаг.
Хаа нэгтээ хоосон сан үүсгээд түүнийг тушаалын мөрөнд нэмэлт өгөгдлөөр оруулж
өгнө:
&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/dest
Таны заасан сан бүх файлын шинэчлэлтүүдийн хувьд очих сан болдог.
CVSup нь /usr/src сан
доторх таны энгийн файлуудыг шалгадаг, гэхдээ тэдгээрийн алийг ч өөрчлөх буюу
устгахгүй. Файлын шинэчлэлтүүд харин /var/tmp/dest/usr/src
санд хийгдэнэ. CVSup нь ингэж ажиллахдаа бас
өөрийн үндсэн сангийн төлвийн файлуудыг өөрчлөлгүйгээр үлдээдэг.
Тэдгээр файлуудын шинэ хувилбарууд заагдсан сан уруу бичигдэх болно.
Танд /usr/src сан уруу унших эрх л байхад
иймэрхүү туршилтын ажиллагааг гүйцэтгэхэд root
эрх байх заавал шаардлагагүй юм.
Хэрэв та X11-г ажиллуулахгүй байгаа юм уу эсвэл танд GUI таалагддаггүй бол
cvsup-г ажиллуулахдаа тушаалын мөрөн дээр
хоёр сонголтыг нэмж өгөх хэрэгтэй:
&prompt.root; cvsup -g -L 2 supfile
сонголт нь CVSup-д
өөрийн GUI-г ашиглахгүйг хэлнэ. Хэрэв та X11-ийг ажиллуулахгүй байгаа бол
энэ автомат байдаг, үгүй бол та үүнийг зааж өгөх хэрэгтэй.
нь CVSup-д
хийж байгаа бүх шинэчлэлтүүдийнхээ талаар дэлгэрэнгүй мэдээллийг үзүүлэхийг
хэлж өгнө. Гурван түвшний харуулах горим байдаг бөгөөд энэ нь
-с хүртэл байна. Анхдагч нь
0 байх бөгөөд энэ нь алдааны мэдэгдлээс бусдыг харуулахгүй.
Бусад олон сонголтууд байдаг. Тэдгээрийн товч жагсаалтыг үзэхийн тулд
cvsup -H гэж бичнэ. Илүү дэлгэрэнгүй тайлбаруудын
талаар гарын авлагын хуудсыг үзнэ үү.
Шинэчлэлт ажилладаг аргад сэтгэл ханамжтай болсныхоо дараа
та CVSup-г давтамжтайгаар ажиллуулахын тулд
&man.cron.8; ашиглан хийж өгч болно. Мэдээж та &man.cron.8;-с
CVSup-г ажиллуулахдаа өөрийнхөө GUI-г
ашиглахгүй болгох хэрэгтэй.
CVSup-ийн файлын цуглуулгууд
CVSup-ийн файлын цуглуулгууд нь шатлалтайгаар
зохион байгуулагдсан байдаг. Цөөн том цуглуулгууд байдаг бөгөөд тэдгээр нь
арай жижиг дэд цуглуулгуудад хуваагддаг. Том цуглуулгыг хүлээн авах нь
түүний дэд цуглуулгууд тус бүрийг хүлээн авахтай адил юм. Цуглуулга хоорондын
шаталсан холбоонууд нь доорх жагсаалт дахь догол ашиглалтаар тусгагддаг.
Хамгийн түгээмэл хэрэглэгддэг цуглуулгууд нь src-all,
болон ports-all юм. Бусад цуглуулгуудыг тусгай зорилгоор
зөвхөн жижиг бүлэг хүмүүс ашигладаг бөгөөд зарим толин тусгал сайтууд тэдгээрийг
бүгдийг агуулдаггүй байж болох юм.
cvs-all release=cvs
Криптограф кодыг оролцуулаад FreeBSD-ийн гол CVS архив.
distrib release=cvs
FreeBSD-ийн түгээлт болон толин тусгал хийхтэй холбоотой файлууд.
doc-all release=cvs
FreeBSD гарын авлагын эхүүд ба бусад баримт. Энэ нь FreeBSD-ийн
вэб сайтын файлуудыг агуулдаггүй.
ports-all release=cvs
FreeBSD-ийн портын цуглуулга.
Хэрэв та бүхэл ports-all-г (бүх портын мод)
шинэчлэхийг хүсэхгүй байгаа бөгөөд доор жагсаагдсан дэд цуглуулгуудын
нэгийг ашиглаж байгаа бол ports-base
дэд цуглуулгыг шинэчилсэн эсэхээ үргэлж
шалгаж байх хэрэгтэй. ports-base-ээр
танилцуулагдсан портын бүтээлтийн дэд бүтцэд ямар нэгэн өөрчлөлт
орох болгонд тэдгээр өөрчлөлтүүд нь жинхэнэ
портуудад тун удахгүй ашиглагдах нь бараг л тодорхой байдаг юм.
Тиймээс хэрэв та зөвхөн жинхэнэ
портуудыг
шинэчилж тэдгээр нь шинэ боломжуудын заримыг ашигладаг бол
тэдгээрийн бүтээлт нь зарим нэг ид шидийн алдааны мэдэгдэлтэйгээр
амжилтгүй болох маш их магадлалтай юм. Энэ тохиолдолд
хамгийн эхэнд хийх зүйл бол
таны ports-base дэд цуглуулга
хамгийн сүүлийн үеийнх эсэхийг шалгах хэрэгтэй юм.
Хэрэв та ports/INDEX-ийн
өөрийн локал хуулбарыг бүтээх гэж байгаа бол
ports-all буюу бүх портыг
хүлээж авах ёстой (бүх портын мод).
ports/INDEX-г хэсэг модтой бүтээхийг
дэмждэггүй.
FAQ хаягийг үзнэ үү.
ports-accessibility
release=cvs
Хөгжлийн бэрхшээлтэй хэрэглэгчдэд туслахад зориулсан програм хангамж.
ports-arabic
release=cvs
Араб хэлний дэмжлэг.
ports-archivers
release=cvs
Архивлах хэрэгслүүд.
ports-astro
release=cvs
Одон оронтой холбоотой портууд.
ports-audio
release=cvs
Дууны дэмжлэг.
ports-base
release=cvs
Портын цуглуулгын бүтээх дэд бүтэц -
төрөл бүрийн файлууд /usr/ports
сангийн Mk/ болон
Tools/ дэд сангуудад байрладаг.
Дээрх чухал
анхааруулгыг үзнэ үү: та FreeBSD-ийн
портын цуглуулгын ямар ч хэсгийг шинэчлэхдээ
энэ дэд цуглуулгыг үргэлж
шинэчилж байх хэрэгтэй!
ports-benchmarks
release=cvs
Бенчмаркууд.
ports-biology
release=cvs
Биологи.
ports-cad
release=cvs
Компьютерийн тусламжтай дизайн хийх хэрэгслүүд.
ports-chinese
release=cvs
Хятад хэлний дэмжлэг.
ports-comms
release=cvs
Холбооны програм хангамж.
ports-converters
release=cvs
тэмдэгтийн код хөрвүүлэгчид.
ports-databases
release=cvs
Мэдээллийн баазууд.
ports-deskutils
release=cvs
Компьютер зохион бүтээгдэхээс өмнө
ширээн дээр байдаг байсан зүйлс.
ports-devel
release=cvs
Хөгжүүлэлтийн багажууд.
ports-dns
release=cvs
DNS-тэй холбоотой програм хангамж.
ports-editors
release=cvs
Засварлагчид.
ports-emulators
release=cvs
Бусад үйлдлийн системүүдэд зориулсан эмуляторууд.
ports-finance
release=cvs
Банк, санхүү болон тэдгээртэй холбоотой програмууд.
ports-ftp
release=cvs
FTP клиент ба серверийн багажууд.
ports-games
release=cvs
Тоглоомууд.
ports-german
release=cvs
Герман хэлний дэмжлэг.
ports-graphics
release=cvs
Графикийн багажууд.
ports-hebrew
release=cvs
Хэбрю хэлний дэмжлэг.
ports-hungarian
release=cvs
Унгар хэлний дэмжлэг.
ports-irc
release=cvs
Internet Relay Chat буюу чалчих багажууд.
ports-japanese
release=cvs
Япон хэлний дэмжлэг.
ports-java
release=cvs
&java; багажууд.
ports-korean
release=cvs
Солонгос хэлний дэмжлэг.
ports-lang
release=cvs
Програмчлалын хэлнүүд.
ports-mail
release=cvs
Захидлын програмууд.
ports-math
release=cvs
Тоо тооцоолох програм хангамж.
ports-mbone
release=cvs
MBone програмууд.
ports-misc
release=cvs
Бусад багажууд.
ports-multimedia
release=cvs
Мультимедиа програм хангамж.
ports-net
release=cvs
Сүлжээний програм хангамж.
ports-net-im
release=cvs
Шуурхай мэдэгдэл (instant messaging) илгээх програм хангамж.
ports-net-mgmt
release=cvs
Сүлжээний удирдлагын програм хангамж.
ports-net-p2p
release=cvs
p2p сүлжээ.
ports-news
release=cvs
USENET мэдээний програм хангамж.
ports-palm
release=cvs
Palm төрлийн
төхөөрөмжүүдэд зориулсан програм хангамжийн дэмжлэг.
ports-polish
release=cvs
Польш хэлний дэмжлэг.
ports-ports-mgmt
release=cvs
Портууд болон багцуудыг удирдах багажууд.
ports-portuguese
release=cvs
Португал хэлний дэмжлэг.
ports-print
release=cvs
Хэвлэлтийн програм хангамж.
ports-russian
release=cvs
Орос хэлний дэмжлэг.
ports-science
release=cvs
Шинжлэх ухаан.
ports-security
release=cvs
Аюулгүй байдлын хэрэгслүүд.
ports-shells
release=cvs
Тушаалын мөрийн бүрхүүлүүд.
ports-sysutils
release=cvs
Системийн хэрэгслүүд.
ports-textproc
release=cvs
текст боловсруулах хэрэгслүүд (ширээний хэвлэл ордоггүй).
ports-ukrainian
release=cvs
Украйн хэлний дэмжлэг.
ports-vietnamese
release=cvs
Вьетнам хэлний дэмжлэг.
ports-www
release=cvs
World Wide
Web-тэй холбоотой програм хангамж.
ports-x11
release=cvs
X Цонхны системийг дэмжих портууд.
ports-x11-clocks
release=cvs
X11 цагнууд.
ports-x11-drivers
release=cvs
X11 драйверууд.
ports-x11-fm
release=cvs
X11 файл менежерүүд.
ports-x11-fonts
release=cvs
X11 үсгийн маягууд ба үсгийн маягийн хэрэгслүүд.
ports-x11-toolkits
release=cvs
X11 багажны цуглуулгууд.
ports-x11-servers
release=cvs
X11 серверүүд.
ports-x11-themes
release=cvs
X11 харуулах маягууд.
ports-x11-wm
release=cvs
X11 цонхны менежерүүд.
projects-all release=cvs
FreeBSD төслийн архив дахь эхүүд.
src-all release=cvs
Криптограф кодыг оролцуулаад FreeBSD-ийн гол эхүүд.
src-base
release=cvs
/usr/src сангийн дээр байрлах
бусад файлууд.
src-bin
release=cvs
Ганц хэрэглэгчийн горимд хэрэг болох хэрэглэгчийн багажууд
(/usr/src/bin).
src-cddl
release=cvs
CDDL лицензийн доор байдаг хэрэгслүүд болон сангууд
(/usr/src/cddl).
src-contrib
release=cvs
Харьцангуй өөрчлөлтгүйгээр хэрэглэгддэг
FreeBSD төслөөс гаднах хэрэгслүүд ба сангууд
(/usr/src/contrib).
src-crypto release=cvs
Харьцангуй өөрчлөлтгүйгээр хэрэглэгддэг
FreeBSD төслөөс гаднах криптограф хэрэгслүүд ба сангууд
(/usr/src/crypto).
src-eBones release=cvs
Kerberos ба DES
(/usr/src/eBones). FreeBSD-ийн
одоогийн хувилбаруудад ашигладаггүй.
src-etc
release=cvs
Системийн тохиргооны файлууд
(/usr/src/etc).
src-games
release=cvs
Тоглоомууд
(/usr/src/games).
src-gnu
release=cvs
GNU Нийтийн Лицензтэй хэрэгслүүд
(/usr/src/gnu).
src-include
release=cvs
Толгой файлууд
(/usr/src/include).
src-kerberos5
release=cvs
Kerberos5 аюулгүй байдлын багц
(/usr/src/kerberos5).
src-kerberosIV
release=cvs
KerberosIV аюулгүй байдлын багц
(/usr/src/kerberosIV).
src-lib
release=cvs
Сангууд
(/usr/src/lib).
src-libexec
release=cvs
Бусад програмуудаар ажилладаг системийн програмууд
(/usr/src/libexec).
src-release
release=cvs
FreeBSD хувилбар гаргахад шаардагдах файлууд
(/usr/src/release).
src-rescue
release=cvs
Яаралтай сэргээлт хийхэд зориулсан статикаар холболт хийгдсэн програмууд;
&man.rescue.8;-г үзнэ үү
(/usr/src/rescue).
src-sbin release=cvs
Ганц хэрэглэгчийн горимд зориулсан системийн хэрэгслүүд
(/usr/src/sbin).
src-secure
release=cvs
Криптограф сангууд ба тушаалууд
(/usr/src/secure).
src-share
release=cvs
Олон системүүдийн хооронд хуваалцаж болох файлууд
(/usr/src/share).
src-sys
release=cvs
Цөм
(/usr/src/sys).
src-sys-crypto
release=cvs
Цөмийн криптограф код
(/usr/src/sys/crypto).
src-tools
release=cvs
FreeBSD-г арчлахад зориулсан төрөл бүрийн хэрэгслүүд
(/usr/src/tools).
src-usrbin
release=cvs
Хэрэглэгчийн хэрэгслүүд
(/usr/src/usr.bin).
src-usrsbin
release=cvs
Системийн хэрэгслүүд
(/usr/src/usr.sbin).
www release=cvs
FreeBSD WWW сайтын эх.
distrib release=self
CVSup серверийн өөрийн
тохиргооны файлууд. CVSup
толин тусгал сайтуудад хэрэглэгддэг.
gnats release=current
GNATS алдаа мөрдөх мэдээллийн бааз.
mail-archive release=current
FreeBSD захидлын жагсаалтын архив.
www release=current
Урьдчилан боловсруулсан FreeBSD WWW сайтын файлууд
(эх файлууд биш). WWW толин тусгал сайтуудад хэрэглэгддэг.
Дэлгэрэнгүй мэдээллийг
CVSup FAQ болон бусад
CVSup-ийн тухай мэдээллийг
CVSup гэрийн хуудас хаягаас үзнэ үү.
Ихэнх FreeBSD-тэй холбоотой CVSup-ийн
хэлэлцүүлэг &a.hackers;-д болдог. Програмын шинэ хувилбар тэнд, бас
&a.announce;-д зарлагддаг.
CVSup-ийн талаар асуултууд эсвэл
алдааны тайлангуудыг
CVSup FAQ холбоосоос үзнэ үү.
CVSup сайтууд
FreeBSD-д зориулсан CVSup серверүүд дараах хаягууд дээр
ажиллаж байгаа:
&chap.mirrors.cvsup.inc;
CVS Tags буюу хаягууд
cvs эсвэл
CVSup ашиглан эхийг авах юм уу эсвэл шинэчилж
байгаа үед revision tag буюу залруулалтын хаягийг зааж өгөх ёстой байдаг.
Залруулалтын хаяг нь &os; хөгжүүлэлтийн тодорхой нэг байх юм уу эсвэл
хугацааны тодорхой нэг цэг байдаг. Эхнийх нь branch tags
буюу салбарын хаягууд
гэгддэг бөгөөд хоёр дахь нь
хувилбарын хаягууд
гэгддэг.
Салбарын хаягууд
HEAD-с (энэ нь үргэлж зөв хаяг байдаг) бусад бүх
хаягууд зөвхөн src/ модонд хамаардаг.
ports/, doc/, болон
www/ моднууд нь салбарладаггүй.
HEAD
Гол шугамын симболын нэр, эсвэл FreeBSD-CURRENT.
Залруулалт заагаагүй тохиолдолд бас анхдагч байдаг.
CVSup-д энэ хаяг нь
. гэсэн тэмдэгтээр илэрхийлэгддэг
(цэг биш харин . тэмдэгт).
CVS-д энэ нь залруулалт заагаагүй тохиолдолд анхдагч байдаг.
Хэрэв та өөрөө хүсээгүй л бол STABLE машин дээр CURRENT
эхийг татан авч шинэчлэх нь ихэвчлэн тийм ч сайн санаа
биш юм.
RELENG_7
FreeBSD-7.X-д зориулсан хөгжүүлэлтийн шугам, бас
FreeBSD 7-STABLE гэгддэг
+
+
+
+
+ RELENG_7_2
+
+
+ FreeBSD-7.2-т зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
+ чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_7_1
FreeBSD-7.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_7_0
FreeBSD-7.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_6
FreeBSD-6.X-д зориулсан хөгжүүлэлтийн шугам, бас
FreeBSD 6-STABLE гэгддэг
RELENG_6_4
FreeBSD-6.4-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_6_3
FreeBSD-6.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_6_2
FreeBSD-6.2-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_6_1
FreeBSD-6.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_6_0
FreeBSD-6.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5
FreeBSD-5.X-д зориулсан хөгжүүлэлтийн шугам, бас
FreeBSD 5-STABLE гэгддэг.
RELENG_5_5
FreeBSD-5.5-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5_4
FreeBSD-5.4-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5_3
FreeBSD-5.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5_2
FreeBSD-5.2 болон FreeBSD-5.2.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5_1
FreeBSD-5.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_5_0
FreeBSD-5.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4
FreeBSD-4.X-д зориулсан хөгжүүлэлтийн шугам, бас
FreeBSD 4-STABLE гэгддэг.
RELENG_4_11
FreeBSD-4.11-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_10
FreeBSD-4.10-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_9
FreeBSD-4.9-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_8
FreeBSD-4.8-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_7
FreeBSD-4.7-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_6
FreeBSD-4.6 болон FreeBSD-4.6.2-д зориулсан хувилбарын салбар,
аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_5
FreeBSD-4.5-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_4
FreeBSD-4.4-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_4_3
FreeBSD-4.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад
чухал засваруудад зориулж зөвхөн ашиглагддаг.
RELENG_3
FreeBSD-3.X-д зориулсан хөгжүүлэлтийн шугам, бас
3.X-STABLE гэгддэг.
RELENG_2_2
FreeBSD-2.2.X-д зориулсан хөгжүүлэлтийн шугам, бас
2.2-STABLE гэгддэг. Энэ салбар нь гол төлөв хуучирсан.
Хувилбарын хаягууд
Эдгээр хаягууд нь &os;-ийн тодорхой нэг хувилбар гарсан үеийн цагийн
тодорхой цэгийг заадаг. Хувилбар инженерчлэлийн процессийн талаар
Хувилбар инженерчлэлийн
мэдээлэл болон
Хувилбарын процесс
баримтуудад илүү дэлгэрэнгүй баримтжуулагдсан байдаг.
src мод нь
RELENG_ гэж эхэлсэн хаягийн нэрсийг ашигладаг.
ports болон
doc моднууд нь
RELEASE гэж эхэлсэн хаягийн нэрсийг ашигладаг.
Төгсгөлд нь www мод нь
хувилбаруудад зориулсан ямар нэг тусгай нэрээр хаяглагддаггүй.
RELENG_7_2_0_RELEASE
FreeBSD 7.2
RELENG_7_1_0_RELEASE
FreeBSD 7.1
RELENG_7_0_0_RELEASE
FreeBSD 7.0
RELENG_6_4_0_RELEASE
FreeBSD 6.4
RELENG_6_3_0_RELEASE
FreeBSD 6.3
RELENG_6_2_0_RELEASE
FreeBSD 6.2
RELENG_6_1_0_RELEASE
FreeBSD 6.1
RELENG_6_0_0_RELEASE
FreeBSD 6.0
RELENG_5_5_0_RELEASE
FreeBSD 5.5
RELENG_5_4_0_RELEASE
FreeBSD 5.4
RELENG_4_11_0_RELEASE
FreeBSD 4.11
RELENG_5_3_0_RELEASE
FreeBSD 5.3
RELENG_4_10_0_RELEASE
FreeBSD 4.10
RELENG_5_2_1_RELEASE
FreeBSD 5.2.1
RELENG_5_2_0_RELEASE
FreeBSD 5.2
RELENG_4_9_0_RELEASE
FreeBSD 4.9
RELENG_5_1_0_RELEASE
FreeBSD 5.1
RELENG_4_8_0_RELEASE
FreeBSD 4.8
RELENG_5_0_0_RELEASE
FreeBSD 5.0
RELENG_4_7_0_RELEASE
FreeBSD 4.7
RELENG_4_6_2_RELEASE
FreeBSD 4.6.2
RELENG_4_6_1_RELEASE
FreeBSD 4.6.1
RELENG_4_6_0_RELEASE
FreeBSD 4.6
RELENG_4_5_0_RELEASE
FreeBSD 4.5
RELENG_4_4_0_RELEASE
FreeBSD 4.4
RELENG_4_3_0_RELEASE
FreeBSD 4.3
RELENG_4_2_0_RELEASE
FreeBSD 4.2
RELENG_4_1_1_RELEASE
FreeBSD 4.1.1
RELENG_4_1_0_RELEASE
FreeBSD 4.1
RELENG_4_0_0_RELEASE
FreeBSD 4.0
RELENG_3_5_0_RELEASE
FreeBSD-3.5
RELENG_3_4_0_RELEASE
FreeBSD-3.4
RELENG_3_3_0_RELEASE
FreeBSD-3.3
RELENG_3_2_0_RELEASE
FreeBSD-3.2
RELENG_3_1_0_RELEASE
FreeBSD-3.1
RELENG_3_0_0_RELEASE
FreeBSD-3.0
RELENG_2_2_8_RELEASE
FreeBSD-2.2.8
RELENG_2_2_7_RELEASE
FreeBSD-2.2.7
RELENG_2_2_6_RELEASE
FreeBSD-2.2.6
RELENG_2_2_5_RELEASE
FreeBSD-2.2.5
RELENG_2_2_2_RELEASE
FreeBSD-2.2.2
RELENG_2_2_1_RELEASE
FreeBSD-2.2.1
RELENG_2_2_0_RELEASE
FreeBSD-2.2.0
AFS сайтууд
FreeBSD-д зориулсан AFS серверүүд нь дараах сайтууд дээр ажиллаж байна:
Швед
Файлуудад хүрэх зам нь:
/afs/stacken.kth.se/ftp/pub/FreeBSD/
stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.se
Арчлагч ftp@stacken.kth.se
rsync сайтууд
Дараах сайтууд нь FreeBSD-г rsync протоколоор түгээгдэх боломжийг
бүрдүүлдэг. rsync хэрэгсэл нь
&man.rcp.1; тушаалтай бараг төстэйгөөр ажилладаг боловч
илүү олон тохируулгуудтай бөгөөд хоёр талын файлуудын зөвхөн ялгаатайг нь
дамжуулдаг. Ингэснээр сүлжээгээр хийх хамгийн сүүлийн хэлбэрт аваачих үйлдлийг
ихээхэн хурдасгадаг байна. Хэрэв та FreeBSD FTP сервер юм уу эсвэл
CVS архивын толин тусгал сайт бол энэ нь их ашигтай байдаг.
rsync цуглуулга нь олон үйлдлийн системүүд
дээр байдаг. FreeBSD-ийн хувьд net/rsync
порт эсвэл багцыг үзнэ үү.
Бүгд Найрамдах Чех Улс
rsync://ftp.cz.FreeBSD.org/
Байгаа цуглуулгууд:
ftp: FreeBSD FTP серверийн хэсэгчилсэн толин тусгал.
FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
Нидерланд
rsync://ftp.nl.FreeBSD.org/
Байгаа цуглуулгууд:
FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
Орос
rsync://cvsup4.ru.FreeBSD.org/
Байгаа цуглуулгууд:
FreeBSD-gnats: GNATS цох хянах
мэдээллийн сан.
Тайвань
rsync://ftp.tw.FreeBSD.org/
rsync://ftp2.tw.FreeBSD.org/
rsync://ftp6.tw.FreeBSD.org/
Байгаа цуглуулгууд:
FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
Их Британи
rsync://rsync.mirrorservice.org/
Байгаа цуглуулгууд:
sites/ftp.freebsd.org: FreeBSD FTP серверийн бүрэн толин тусгал.
Америкийн Нэгдсэн Улс
rsync://ftp-master.FreeBSD.org/
Энэ серверийг FreeBSD-ийн анхдагч толин тусгал сайтууд зөвхөн хэрэглэж
болно.
Байгаа цуглуулгууд:
FreeBSD: FreeBSD FTP серверийн мастер архив.
acl: FreeBSD-ийн мастер ACL жагсаалт.
rsync://ftp13.FreeBSD.org/
Байгаа цуглуулгууд:
FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
diff --git a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
index d4492a51cb..1bb7e52474 100644
--- a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
@@ -1,4959 +1,5085 @@
Мюррей
Стөүкли
Дахин зохион байгуулсан
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний орчны Серверүүд
Ерөнхий агуулга
Энэ бүлэгт &unix; системүүдэд өргөн хэрэглэгддэг, сүлжээний орчинд ажилладаг
зарим нэг үйлчилгээнүүдийн талаар авч үзнэ. Бид тэдгээр үйлчилгээнүүдийг хэрхэн
суулгах, тохируулах, турших болон үйлчилгээг хариуцах талаар үзэх болно.
Танд зориулж жишээ тохиргооны файлуудыг мөн оруулж өгсөн байгаа.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
inetd дэмоныг хэрхэн удирдах.
Сүлжээний орчны файл системийг хэрхэн зохион байгуулах.
Хэрэглэгчийн бүртгэлийг хуваалцах сүлжээний орчны мэдээллийн серверийг хэрхэн зохион байгуулах.
DHCP ашиглан автоматаар сүлжээний тохиргоог хэрхэн хийх.
Домэйн нэрийн серверийг хэрхэн зохион байгуулах.
Apache HTTP Серверийг хэрхэн зохион байгуулах.
File Transfer Protocol буюу Файл Дамжуулах Протокол(FTP) Серверийг хэрхэн зохион байгуулах.
Samba ашиглан &windows; хэрэглэгчдэд зориулсан
файл болон хэвлэгч серверийг хэрхэн зохион байгуулах.
NTP протокол ашиглан цаг болон өдрийг тохируулах хийгээд цагийн серверийг хэрхэн зохион байгуулах.
How to configure the standard logging daemon,
syslogd, to accept logs from remote
hosts.
Энэ бүлгийг уншихаасаа өмнө, та дараах шаардлагыг хангасан байх хэрэгтэй:
/etc/rc скриптүүдийн үндсийг ойлгосон байх.
Сүлжээний үндсэн нэр томъёоллыг мэддэг байх.
Гуравдагч этгээдийн програмыг() хэрхэн нэмж суулгахыг мэддэг байх.
Шерн
Лий
Хувь нэмрээ оруулсан
&os; 6.1-RELEASE-д зориулж шинэчилсэн
&os; Баримтжуулах Төсөл
Лодойсамбын
Баянзул
Орчуулсан
inetd Супер-Сервер
Ерөнхий агуулга
&man.inetd.8; нь олон тооны үйлчилгээний сүлжээний холболтыг удирддаг тул
заримдаа түүнийг Интернэт Супер-Сервер
гэж нэрлэх нь бий.
Гаднаас үүсч буй холболтыг inetd хүлээн авч, аль програмтай холбогдохыг
тодорхойлон, тухайн процессийг салаалуулж, сокетийг түүн рүү чиглүүлнэ (програмын стандарт оролт,
гаралт болон алдааны дескриптороор үйлчилгээний сокетийг өгнө). Байнга ашиглагддаггүй үйлчилгээний хувьд
inetd-г ажиллуулах нь бүх дэмонг дангаар бие-даах горимд ажиллуулсантай
харьцуулахад системийн нийт ачааллыг бууруулж өгдөг.
Голчлон, inetd нь бусад дэмонуудыг салаалуулахад хэрэглэгддэг
боловч chargen, auth,
ба daytime гэх мэт нилээд олон ердийн протоколуудыг шууд зохицуулан ажиллуулж чадна.
Энэ хэсэгт inetd-н үндсэн тохиргоог тушаалын мөрний тохируулгаар,
мөн /etc/inetd.conf тохиргооны файлаар хэрхэн хийхийг үзэх болно.
Тохиргоо
inetd нь &man.rc.8; системээр эхлүүлэгдэнэ.
inetd_enable тохируулгын анхдагч утга нь NO бөгөөд,
системийг суулгах явцад хэрэглэгчийн зааж өгсний дагуу sysinstall
програмын тусламжтай идэвхжүүлж болно.
inetd_enable="YES"
эсвэл
inetd_enable="NO"
гэсэн мөрийг /etc/rc.conf
файл дотор байрлуулснаар inetd-г систем ачаалахад
эхэлдэг болгож болно. Доор дурдсан:
/etc/rc.d/inetd rcvar
тушаалыг өгөн одоо идэвхтэй байгаа
тохиргоог харж болно.
Дээр нь, inetd_flags тохируулгаар дамжуулан
inetd програмд тушаалын мөрнөөс өөр бусад тохируулгуудыг
зааж өгч болно.
Тушаалын мөрний тохируулгууд
Ихэнх сервер дэмоны нэгэн адил, inetd нь
түүнийг өөрчлөн тохируулахад зориулагдсан олон тооны тохируулгуудын хамт ирдэг.
Тохируулгуудыг бүрнээр жагсаан бичвэл:
inetd
/etc/rc.conf файл доторх
inetd_flags тохируулгыг ашиглан
эдгээр тохируулгуудыг inetd-д дамжуулна.
Анхдагч байдлаар, inetd_flags нь -wW -C 60 гэсэн
утгыг авсан байх ба энэ нь inetd-ны үйлчилгээнүүдийн хувьд
TCP wrapping буюу TCP-ийн дундын хяналтыг идэвхжүүлэх ба нэг IP хаягнаас аль нэг үйлчилгээнд
нэг минутанд 60-аас дээш удаа хүсэлт тавих боломжгүй болгоно.
Хэдийгээр бид гаднаас хэтэрхий олон
тооны хандалт хийгдэж байгаа үед тохируулгаар түүнийг хэрхэн хязгаарлахыг
доор үзүүлж байгаа ч, анхлан суралцагчдад зөвлөхөд
эдгээр параметрүүдийг ихэвчлэн өөрчлөх шаардлагагүй байдаг.
Тохируулгуудын бүрэн жагсаалтыг &man.inetd.8; заавар хуудаснаас үзнэ үү.
-c maximum
Үйлчилгээг нэгэн зэрэг хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
-C rate
Үйлчилгээг нэг IP хаягнаас нэг минутын дотор хамгийн ихдээ хэдэн удаа
дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
-R rate
Үйлчилгээг нэг минутын дотор хамгийн ихдээ хэдэн удаа дуудаж болохыг заана;
Анхдагч утга нь 256. 0-г тавьснаар хязгааргүй болгоно.
-s maximum
Үйлчилгээг нэг IP хаягнаас хамгийн ихдээ хэдэн удаа
дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
inetd.conf
inetd-г /etc/inetd.conf
файлын тусламжтай тохируулна.
/etc/inetd.conf файлд өөрчлөлт хийсний дараа,
inetd-р тохиргооны файлыг дахин уншуулахдаа
дараах тушаалыг өгнө:
inetd-н тохиргооны файлыг дахин ачаалах нь
&prompt.root; /etc/rc.d/inetd reload
Тохиргооны файлын мөр бүр тусдаа дэмонг заана.
Файл доторх тайлбарууд нь мөрийн эхэнд #
тэмдэгтэй байна.
/etc/inetd.conf файл доторх бичлэгүүдийн формат дараах
байдалтай байна:
service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-arguments
IPv4 ашигладаг &man.ftpd.8; дэмоны хувьд жишээ бичлэг дараах байдалтай байж болно:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
service-name
Тухайн дэмоны үйлчилгээний нэрийг заана.
Энэ нь /etc/services файл дотор бичигдсэн үйлчилгээнүүдийн нэг
байх ёстой бөгөөд аль портон дээр сонсохыг inetd-д хэлж өгнө.
Хэрэв шинэ үйлчилгээ үүсгэсэн бол түүнийг заавал /etc/services файл
дотор нэмсэн байх ёстой.
socket-type
stream,
dgram, raw, эсвэл seqpacket эдгээрийн нэг байна.
stream-г холболтон дээр үндэслэсэн TCP дэмонуудын хувьд хэрэглэдэг бол,
dgram-г UDP протоколоор ажилладаг дэмонуудын хувьд хэрэглэнэ.
protocol
Доор дурдсанаас нэг нь байна:
Протокол
Тайлбар
tcp, tcp4
TCP IPv4
udp, udp4
UDP IPv4
tcp6
TCP IPv6
udp6
UDP IPv6
tcp46
TCP IPv4 ба v6 хоёул
udp46
UDP IPv4 ба v6 хоёул
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
нь inetd-р дуудагдсан
дэмон өөрийн сокетийг удирдаж чадах эсэхийг заана.
төрлийн сокет дэмоны хувьд тохируулгыг
хэрэглэх ёстой байдаг бол, ихэвчлэн олон урсгалтай байдаг
сокет дэмоны хувьд тохируулгыг хэрэглэх
хэрэгтэй байдаг. нь ихэвчлэн олон сокетийг нэг дэмонд
шилжүүлэн өгдөг бол, нь шинээр үүссэн сокет тус бүрт
харгалзуулан хүүхэд дэмонг салаалуулан үүсгэдэг.
inetd-ийн салаалуулан үүсгэж
болох хамгийн их хүүхэд дэмоны тоог
тохируулгын тусламжтай зааж өгч болно. Хэрэв
тухайн дэмоны ажиллаж болох тохиолдлыг 10-р хязгаарлах бол,
-н ард /10 гэж бичнэ.
/0 нь хүүхдийн тоог хязгаарлахгүй гэсэн утгатай.
-с гадна, нэг газраас тухайн дэмонтой
үүсгэж байгаа холболтын тоог хязгаарладаг өөр хоёр
тохируулгыг хэрэглэж болно.
нь тухайн ямар нэг IP хаягнаас
нэг минутанд үүсгэж болох холболтын тоог хязгаарлана,
жишээлбэл: 10 гэсэн утга нь тухайн ямар нэг IP хаягнаас
нэг минутын дотор тухайн үйлчилгээнд холбогдохоор оролдох
оролдлогын тоог 10-р хязгаарлана. нь
Тухайн ямар нэг IP хаяг дээр үүсгэгдсэн хүүхдийн тоог хязгаарлана.
Эдгээр тохируулгууд нь санаатай болон санамсаргүйгээр нөөцийг
хэтрүүлэн хэрэглэх, мөн Үйлчилгээг Зогсоох (DoS) халдлагаас хамгаалахад
хэрэгтэй байдаг.
Хэрэглэхдээ, ба
хоёрын аль нэгийг заавал хэрэглэх ёстой. Харин ,
ба
тохируулгуудыг сонгон хэрэглэж болно.
Stream төрлийн олон урсгалтай дэмоны хувьд, ,
эсвэл хязгаарлалтуудын
алийг ч хэрэглэхгүй тохиолдолд ердөө: nowait байна.
Дээрхтэй адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай бол: nowait/10 байна.
Мөн адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай,
минутанд нэг IP хаягнаас үүсгэх холболтын тоог 20-р хязгаарлах бол:
nowait/10/20 болно.
Эдгээр тохируулгуудыг &man.fingerd.8; дэмоны анхдагч тохиргоон дээр
жишээ болгон харвал:
finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
Эцэст нь, 100 хүүхдийн хязгаарлалттай, нэг IP хаягнаас үүсэх холболтын
тоог 5-р хязгаарласан дэмоны жишээг авбал: nowait/100/0/5 байх юм.
user
Энд тухайн дэмон ямар хэрэглэгчийн нэрээр ажиллахыг зааж өгнө.
Ихэвчлэн дэмонууд root хэрэглэгчийн нэр дээр ажилладаг.
Аюулгүй байдлын үүднээс, зарим серверүүд daemon, эсвэл
хамгийн бага эрхтэй nobody хэрэглэгчийн нэр дээр ажиллах нь
элбэг байдаг.
server-program
Энд гаднаас холболт хүлээн авахад ажиллуулах дэмоны
бүрэн замыг зааж өгнө. Хэрэв энэ дэмон inetd-р удирдагдсан
дотоод үйлчилгээ бол тохируулгыг хэрэглэх хэрэгтэй.
server-program-arguments
Үүнийг -тай хамт, argv[0]-с эхлэн
програмын аргументыг зааж өгөх байдлаар хэрэглэнэ. Хэрэв командын
мөрөнд mydaemon -d гэсэн байдлаар хэрэглэдэг бол, -н
утга mydaemon -d байна. Дахин хэлэхэд, хэрэв тухайн дэмон дотоод үйлчилгээний
нэг бол -г энд мөн хэрэглэнэ үү.
Аюулгүй байдал
Үйлдлийн системийг суулгах үед хийсэн сонголтуудаас хамааран
inetd-н үйлчилгээнүүдийн ихэнх нь
идэвхтэй болсон байдаг. Хэрэв хэрэглэх
онцын шаардлага байхгүй бол тэдгээрийг идэвхгүй болгоно уу.
/etc/inetd.conf файл дотор, идэвхгүй болгох гэж
байгаа демоныхоо харгалзах мөрийн урд #
тэмдгийг тавьж өгнө. Дараа нь inetd-н тохиргоог дахин
ачаална. fingerd зэрэг зарим дэмонууд гадны халдагчид
хэрэгтэй мэдээллийг түгээж байдаг тул тэдгээр үйлчилгээг бүрмөсөн хааж
болох юм.
Зарим дэмонууд аюулгүй байдлыг бодолцолгүйгээр бүтээгдсэн
байдаг ба холболт тогтоох харьцангуй урт болзоот хугацаатай, эсвэл болзоот
хугацааг огт зааж өгөөгүй байдаг. Энэ нь халдагчид тодорхой дэмон уруу холболт
тогтоох хүсэлтийг олон дахин илгээж, нөөцийг дуусгах замаар системд халдах
боломжийг олгодог. Хэрэв ямар нэг дэмоны хувьд үүссэн холболтын тоо
хэтэрхий олон байвал ,
эсвэл тохиргооны
тусламжтайгаар хязгаарлалт хийх нь оновчтой байдаг.
Анхдагч байдлаар TCP-ийн дундын хяналт (гүйцэтгэл хялбаршуулалт) идэвхтэй байдаг.
inetd-р дуудагдсан дэмонуудын хувьд TCP хязгаарлалтыг хэрхэн
тавих талаар дэлгэрэнгүй мэдээллийг &man.hosts.access.5;
заавар хуудаснаас үзнэ үү.
Элдэв зүйлс
daytime,
time,
echo,
discard,
chargen, ба auth бүгд
inetd-н дотоод үйлчилгээнүүд юм.
auth үйлчилгээ нь
сүлжээний орчинд, тодорхойлолт өгөх үйлчилгээ үзүүлдэг
бөгөөд тодорхой түвшинд тохиргоо хийх боломжтой байдаг бол
бусад үйлчилгээнүүдийг зөвхөн идэвхтэй эсвэл идэвхгүй болгох
боломжтой.
Дээрх үйлчилгээнүүдийн талаар бүрэн дүүрэн мэдээллийг &man.inetd.8; заавар хуудаснаас
үзнэ үү.
Том
Рөүдс
Дахин зохион байгуулж, сайжруулсан
Билл
Свингл
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний Файлын Систем (NFS)
NFS
FreeBSD дээр дэмжигддэг олон файлын системүүдийн нэг бол
Network File System буюу Сүлжээний Файлын Систем юм, мөн NFS гэж нэрлэнэ. NFS нь сүлжээний орчинд файл болон санг
бусадтай хуваалцах боломжийг олгодог. NFS-г
хэрэглэн, хэрэглэгчид болон програмууд алслагдсан систем рүү
дотоод файл руу хандаж байгаатай адилаар хандах боломжтой.
NFS-н тэмдэглүүштэй давуу талуудаас дурдвал:
Өргөн хэрэглэгддэг өгөгдлийг нэгтгэн нэг машин дээр
байрлуулж, түүнд алсаас хандах боломжтой болсноор
дотоод машинууд илүү бага диск хэрэглэх болно.
Хэрэглэгчийн хувьд сүлжээнд байгаа машин бүр дээр тус
тусдаа гэрийн сантай байх шаардлагагүй болно.
Гэрийн санг нэг удаа NFS сервер дээр үүсгээд
түүнийгээ сүлжээгээр дамжин хэрэглэх боломжтой.
Уян диск, CDROM болон &iomegazip; төхөөрөмжүүдийг сүлжээний
бусад машинууд хэрэглэх боломжтой болно.
Ингэснээр сүлжээнд хэрэглэгдэх зөөвөрлөх боломжтой
хадгалах төхөөрөмжүүдийн тоог багасгана.
NFS хэрхэн ажилладаг вэ
NFS нь үндсэн хоёр хэсгээс бүрдэнэ:
сервер болон нэг ба түүнээс дээш тооны харилцагч. Сервер машин дээр
хадгалагдаж байгаа өгөгдөл рүү харилцагч алсаас хандана.
Дээрх үйлдлийг зөв гүйцэтгэхийн тулд нилээд хэдэн процессийн
тохиргоог хийж, ажиллуулсан байх ёстой.
Сервер дээр дараах дэмонууд ажиллаж байх ёстой:
NFS
сервер
файл сервер
UNIX харилцагчид
rpcbind
mountd
nfsd
Дэмон
Тайлбар
nfsd
NFS харилцагчдаас ирэх
хүсэлтийг хүлээн авах NFS дэмон.
mountd
&man.nfsd.8;-с дамжиж ирсэн хүсэлтийг гүйцэтгэгч
NFS холбох дэмон.
rpcbind
Энэ дэмоны тусламжтай NFS
харилцагчид NFS сервер аль портон дээр
ажиллаж байгааг олж мэднэ.
Харилцагч nfsiod гэсэн дэмонг мөн
ажиллуулж болно. nfsiod дэмон
NFS серверээс ирэх хүсэлтийг гүйцэтгэнэ.
Ингэх нь системийг хэвийн, алдаагүй ажиллуулахад зайлшгүй
шаардлагагүй боловч зарим үзүүлэлтүүдийг сайжруулдаг тул нэмэлт
байдлаар хэрэглэж болно. Дэлгэрэнгүй мэдээллийг
&man.nfsiod.8; хуудаснаас үзнэ үү.
NFS-н тохиргоог хийх
NFS
тохиргоо
NFS-н тохиргоог хийх нь харьцангуй
амархан. Ажиллах ёстой процессуудыг системтэй хамт автоматаар
асдаг болгохын тулд /etc/rc.conf файлыг бага зэрэг
өөрчлөхөд хангалттай.
NFS сервер дээрх /etc/rc.conf файл дотор
дараах тохируулгууд идэвхжсэн байгаа эсэхийг шалгана уу:
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
mountd нь NFS серверийг
идэвхжүүлсэн тохиолдолд өөрөө автоматаар ажиллана.
Харилцагч талд, /etc/rc.conf файл дотор
дараах тохируулга идэвхтэй байгаа эсэхийг шалгана уу:
nfs_client_enable="YES"
/etc/exports файл дотор
NFS ямар файл системүүдийг экспорт
хийхийг (заримдаа хуваалцах
гэж мөн нэрлэнэ) зааж өгнө.
/etc/exports файлын мөр бүр нь нэг файл системд харгалзана.
Энэ файл системд хандах эрхтэй машинуудыг заахаас гадна,
ямар тохируулгаар хандахыг мөн зааж өгч болно. Энэ файл дотор бичигдэж
болох нилээд олон ийм тохируулгууд байгаа хэдий ч, бид тэдгээрээс
зөвхөн заримыг нь энд авч үзэх болно. Та бусад тохируулгуудын
талаар &man.exports.5; заавар хуудаснаас уншиж мэднэ үү.
Доор /etc/exports файлаас хэдэн жишээ мөрийг үзүүлэв:
NFS
экспортлох жишээ
Дараах жишээн дээрээс файл системийг
хэрхэн экспортлох санааг олж авах болно. Тохируулгууд нь
таны сүлжээний тохиргоо, нөхцөл байдлаас шалтгаалан
өөр байхыг анхаарна уу. Жишээ нь, /cdrom гэсэн санг
3 машин руу экспортлохын тулд дараах байдалтай бичнэ. Жишээн дээрх
3 машин сервертэй адил домэйн нэртэй, эсвэл таны /etc/hosts
файл дотор тодорхойлогдсон гэж үзсэн болно. туг нь
экспортлогдож буй файл системийг зөвхөн унших боломжтой
болохыг заана. Энэ тугийг тавьснаар алсаас хандаж буй машин
энэ файл систем дээр ямар нэг өөрчлөлт хийх боломжгүй болно.
/cdrom -ro host1 host2 host3
Дараах жишээн дээр /home санг
IP хаягаар нь зааж өгсөн 3 машин руу экспортолж байна.
Ингэж IP хаягаар нь зааж өгөх нь дотоод сүлжээндээ
DNS сервер ажиллуулаагүй үед их хэрэгтэй байдаг.
Эсвэл /etc/hosts файл дотор дотоод хостуудын
нэрийг тохируулж болно; &man.hosts.5; хэсгийг дахин үзнэ үү.
гэсэн туг нь дэд сангуудыг
холболтын цэг байхыг зөвшөөрч өгдөг. Өөрөөр хэлбэл,
дэд сангуудыг холболгүй орхиж, харилцагч зөвхөн өөрийн
хэрэгцээтэй байгаа сангаа холбохыг зөвшөөрнө гэсэн үг юм.
/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4
Дараах жишээн дээр /a санг
хоёр өөр домэйноос 2 харилцагч хандаж болохоор
экспортолж байна. гэсэн туг нь
алслагдсан систем дээрх root хэрэглэгч
экспортлогдсон файл систем дээр root эрхээр
бичихийг зөвшөөрнө. Хэрэв -maproot=root тугийг тусгайлан зааж өгөөгүй бол,
хэдий алслагдсан систем дээрх хэрэглэгч root эрхтэй ч
экспортлогдсон файл систем дээр бичих эрхгүй болно.
/a -maproot=root host.example.com box.example.org
Харилцагч экспортлогдсон файл систем рүү хандахын
тулд эрх нь байх ёстой. Тухайн харилцагч /etc/exports
файл дотор бүртгэлтэй эсэхийг шалгаарай.
/etc/exports файл дотор мөр болгон нь
нэг файл системийг нэг хост руу экспортлох мэдээллийг
төлөөлнө. Алслагдсан хост аль нэг файл системийн хувьд
зөвхөн ганц удаа л тодорхойлогдсон байх ёстой ба үүнд харгалзах
ганцхан анхдагч бичлэг байж болно. Жишээ нь, /usr нь
нэг файл систем гэж бодъё. /etc/exports файл доторх
дараах бичлэгүүд нь буруу юм:
# Invalid when /usr is one file system
/usr/src client
/usr/ports client
Учир нь /usr гэсэн файл системийг client
гэсэн хост руу экспортолсон хоёр бичлэг байна. Энэ тохиолдолд
дараах форматаар бичвэл зөв болно:
/usr/src /usr/ports client
Нэг хост руу экспортлогдож байгаа файл системийн хувьд
шинжүүдийг бүгдийг нэг мөрөнд жагсаан бичих ёстой.
Харилцагчийг зааж өгөөгүй мөрүүдийг энгийн хост гэж үзнэ.
Энэ нь файл системийг экспортлох боломжийг хязгаарлана,
гэвч энэ нь ихэнх хүмүүст хүнд асуудал биш байдаг.
Дараагийн жишээн дээр /usr ба /exports
гэсэн дотоод файл системийг экспортолсон байна:
# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -ro
/etc/exports файл дотор гарсан
өөрчлөлтүүдийг хүчинтэй болгохын тулд,
өөрчлөлт орсон тухай бүрд mountd дэмонг
албадан /etc/exports-г дахин уншуулах хэрэгтэй болдог.
Үүний тулд эсвэл HUP дохиог ажиллаж байгаа дэмонд өгөх хэрэгтэй:
&prompt.root; kill -HUP `cat /var/run/mountd.pid`
эсвэл mountd &man.rc.8; скриптийг зохих параметрийн
хамт ажиллуулах хэрэгтэй:
&prompt.root; /etc/rc.d/mountd onereload
rc скриптийг хэрэглэх зааврыг хэсгээс
үзнэ үү.
Бас нэг боломж нь, FreeBSD-г эхнээс нь ачаалж, бүх процессийг дахин
эхлүүлэх юм. Гэвч үүний тулд заавал системийг дахин ачаалах шаардлага байхгүй.
root эрхээр дараах тушаалуудыг өгснөөр зөвхөн хэрэгтэй процессуудаа
дахин эхлүүлэх боломжтой.
NFS сервер дээр:
&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -r
NFS харилцагч дээр:
&prompt.root; nfsiod -n 4
Одоо алсын файл системийг холбоход бэлэн боллоо.
Доорх жишээнүүд дээр серверийн нэрийг server,
харилцагчийн нэрийг client гэж авсан болно.
Хэрэв та алсын файл системийг зөвхөн түр хугацаагаар холбох гэж байгаа
эсвэл тохиргоогоо шалгах гэж байгаа бол, харилцагч талд
root эрхээр дараах тушаалыг өгөхөд хангалттай:
NFS
холболт
&prompt.root; mount server:/home /mnt
Энэ тушаалыг өгснөөр та сервер талд байгаа /home
гэсэн санг харилцагч талд байгаа /mnt сантай
холбох болно. Хэрэв бүх зүйл зөв тохируулагдсан бол, та харилцагч талын
/mnt сан дотор орж сервер дээр байгаа файлуудыг
харж чадах ёстой.
Хэрэв систем шинээр ачаалах бүрд ямар нэг алсын
файл системийг холбох хүсэлтэй байгаа бол,
түүнийгээ /etc/fstab файл дотор нэмж бичих хэрэгтэй.
Жишээ нь:
server:/home /mnt nfs rw 0 0
Боломжит бүх сонголтуудын талаар &man.fstab.5; заавар хуудаснаас үзнэ үү.
Цоожлолт
Зарим програмууд (ж.н. mutt)
зөв ажиллахын тулд файл цоожлолтыг шаарддаг.
NFS-н хувьд, rpc.lockd-г
файл цоожлолтонд хэрэглэж болно. Түүнийг идэвхжүүлэхийн тулд,
сервер болон харилцагч талд хоёуланд нь /etc/rc.conf
файл дотор дараах мөрүүдийг нэмж өгөх хэрэгтэй
(NFS сервер болон харилцагч талуудыг аль хэдийн тохируулчихсан
гэж үзэв):
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
Програмыг дараах байдалтай эхлүүлнэ:
&prompt.root; /etc/rc.d/lockd start
&prompt.root; /etc/rc.d/statd start
Хэрэв NFS харилцагч болон NFS
сервер талуудын хооронд жинхэнэ файл цоожлолт хийгдэх
шаардлагагүй бол, NFS харилцагч талд &man.mount.nfs.8;-д
тохируулгыг өгөн дотоод цоожлолт хийлгэж болно.
Дэлгэрэнгүй мэдээллийг &man.mount.nfs.8; заавар хуудаснаас үзнэ үү.
Практик хэрэглээ
NFS нь олон практик хэрэглээтэй. Хамгийн элбэг
тохиолддог хэрэглээг доор жагсаав:
NFS
хэрэглээ
Олон машиныг нэг CDROM эсвэл төхөөрөмжийг дундаа
хэрэглэдэг байхаар зохион байгуулах. Энэ нь нэг програмыг
олон машин дээр суулгах хамгийн хямд, хялбар арга юм.
Том сүлжээний хувьд, бүх хэрэглэгчдийн гэрийн санг хадгалдаг
төвлөрсөн NFS серверийг тохируулах. Эдгээр гэрийн сангуудыг
дараа нь сүлжээний орчинд экспортолсноор хэрэглэгчид аль машин дээр
ажиллаж буйгаас үл хамааран өөрийн нэг л сан дотор ажиллах боломжтой
болно.
Олон машин дундаа нэг /usr/ports/distfiles
сантай байх. Ийм замаар, нэг портыг олон машин дээр суулгах
хэрэгтэй үед машин бүр дээр эх файлыг татаж авалгүйгээр хурдан суулгах
боломжтой болно.
Вылий
Стилвэл
Хувь нэмрээ оруулсан
Шерн
Лий
Дахин эмхтгэсэн
Лодойсамбын
Баянзул
Орчуулсан
amd-р автоматаар холбох нь
amd
автоматаар холбогч дэмон
&man.amd.8; (автоматаар холбогч дэмон)
нь алсын файл системийн файл эсвэл санд хэрэглэгч
хандах тухай бүрт уг файл системийг автоматаар холбодог.
Хэсэг хугацааны туршид идэвхгүй байгаа файл системийг
amd мөн автоматаар салгана. amd-г
хэрэглэснээр /etc/fstab дотор бичигддэг байнгын
холболтоос гадна, холболт хийх боломжийг олгодог.
amd нь өөрийгөө, /host ба /net
сангууд дээр NFS сервер байдлаар холбож ажиллах бөгөөд эдгээр
сангууд доторх файлд хандах үед, amd
харгалзах алсын холболтыг хайж олоод автоматаар холбох болно.
/net нь экспортлогдсон файл системийг
IP хаягаар нь холбоход, харин /host нь
хост нэрээр нь холбоход хэрэглэгдэнэ.
/host/foobar/usr сан доторх
файлд хандана гэдэг нь amd-г
foobar гэсэн хост дээр экспортлогдсон /usr
санг холбохын зааж өгнө.
Экспортыг amd-р холбох
Алсын хост дээр байгаа боломжит холболтуудын
жагсаалтыг showmount тушаалын тусламжтай харж болно.
Жишээлбэл, foobar нэртэй хостын экспортыг харахын тулд:
&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usr
Жишээн дээр үзүүлснээр showmount нь /usr-г
экспортлогдсон болохыг харуулж байна. /host/foobar/usr сан
дотор ороход, amd нь foobar гэсэн хост нэрийг
тайлахыг оролдох ба заасан санг холбоно.
amd-г эхлэл скриптүүдээр эхлүүлж болох ба
үүний тулд /etc/rc.conf файл дотор дараах мөрийг нэмэх хэрэгтэй:
amd_enable="YES"
Мөн, amd програмд amd_flags тохируулгын
тусламжтай тугуудыг өгч болно. amd_flags-н анхдагч утга нь:
amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"
/etc/amd.map файл дотор экспортуудыг холбох анхдагч
тохируулгуудыг зааж өгсөн байна. /etc/amd.conf файл дотор
amd-н илүү дээд түвшний чанаруудыг тодорхойлж өгнө.
Дэлгэрэнгүй мэдээллийг &man.amd.8; ба &man.amd.conf.5; заавар хуудаснаас
үзнэ үү.
Жон
Линд
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Бусад системтэй нэгтгэхэд тохиолдох асуудлууд
ISA PC системд зориулсан зарим Ethernet адаптерууд
учир дутагдалтай байдгаас сүлжээний орчинд ажиллахад, тэр дундаа
NFS-тэй ажиллахад нилээд асуудалтай байдаг.
Энэ асуудал зөвхөн FreeBSD-д тохиолддоггүй боловч FreeBSD систем үүнд нилээд
өртөмтгий байдаг.
Энэ асуудал нь (FreeBSD) PC системийг өндөр үзүүлэлттэй машинуудтай (жишээлбэл,
Silicon Graphics, Inc., ба Sun Microsystems, Inc компаниудын хийсэн)
сүлжээнд холбох үед бараг үргэлж тохиолддог. NFS холболт хийхэд асуудалгүй,
зарим үйлдлүүдийг хийхэд амжилттай байх боловч, гаднаас ирж явж байгаа
хүсэлтүүдийг боловсруулж чадаж байгаа хэдий ч сервер гэнэт харилцагчид
хариу өгөхгүй болдог. Энэ асуудал мөн харилцагчийн хувьд, харилцагч
FreeBSD систем эсвэл ажлын машин байхаас үл шалтгаалан тохиолдоно.
Ихэнх системийн хувьд, нэгэнт ийм асуудалд орсон бол харилцагч талыг
ном ёсных нь дагуу унтраах боломжгүй болдог. Ганц авдаг арга хэмжээ бол системийг
хүчээр унтрааж асаах юм. Учир нь, NFS-н энэ асуудал одоо хир нь шийдэгдээгүй
байна.
Хэдийгээр зөв
шийдэл бол
FreeBSD системд тохирох илүү өндөр үзүүлэлттэй, илүү багтаамжтай
Ethernet адаптерийг олж авах боловч,
боломжит ажиллагааг хангахын тулд нэг арга байна.
Хэрэв FreeBSD систем нь сервер бол, харилцагч талаас
холболт хийхдээ тохируулгыг оруулж өгөх явдал юм.
Хэрэв FreeBSD систем нь харилцагч бол, NFS файл системтэй
холбогдохдоо тохируулгыг хэрэглэх юм.
Эдгээр тохируулгуудыг автомат холболтын хувьд
fstab бичлэгийн дөрөв дэх талбарыг ашиглан,
гар аргаар холболт хийх бол &man.mount.8; тушаалын
параметрыг ашиглан зааж өгч болно.
NFS сервер болон харилцагчид өөр өөр сүлжээнд
байхад гардаг өөр нэг асуудлыг энэ асуудалтай
хольж хутгах тохиолдол байдгийг энд дурдах нь зүйтэй болов уу.
Хэрэв тийм бол, чиглүүлэгчид шаардлагатай UDP
мэдээллийг дамжуулж чадаж байгаа эсэхийг
нягталж үзээрэй. Үгүй бол, өөр юу ч хийлээ гээд
та үр дүнд хүрч чадахгүй.
Дараах жишээн дээр, fastws нь өндөр үзүүлэлттэй
ажлын машины хост (интерфэйс) нэр, freebox нь
бага үзүүлэлттэй Ethernet адаптертай FreeBSD системийн
нэр юм. Мөн, /sharedfs нь экспортлогдох гэж байгаа NFS
файл систем (&man.exports.5;-г үз), ба /project нь
харилцагч талын экспортлогдсон файл системийг холбох цэг байх болно.
Аль ч тохиолдолд, эсвэл ба
зэрэг нэмэлт тохируулгууд таны хувьд хэрэгтэй байж болох юм.
FreeBSD системийг (freebox) freebox дээр
/etc/fstab дотор харилцагч байдлаар зааж өгөх жишээ:
fastws:/sharedfs /project nfs rw,-r=1024 0 0
freebox дээр гараар холбохдоо:
&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project
FreeBSD системийг (freebox) fastws дээр
/etc/fstab дотор сервер байдлаар зааж өгөх жишээ:
freebox:/sharedfs /project nfs rw,-w=1024 0 0
fastws дээр гараар холбохдоо:
&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project
Бараг бүх 16-битийн Ethernet адаптерийн хувьд
унших ба бичих хэмжээн дээр дээрх байдлаар хязгаарлалт
хийлгүйгээр ажиллах боломжтой байдаг.
Сонирхсон улсуудад толилуулахад, дээрх алдаа гарахад
чухам юу тохиолддог, яагаад засагдах боломжгүй болох талаар
дор тайлбарлав. NFS нь голчлон 8 K (хэдийгээр илүү бага хэмжээтэй
хэсэг дээр ажиллаж чадах боловч) хэмжээтэй блок
ууд дээр
ажилладаг. Хамгийн урт Ethernet пакет 1500 байт орчим байх ба,
NFS блок
нь хэд хэдэн Ethernet пакетуудад хуваагдах
хэрэгтэй болдог. Дээд түвшний програмын хувьд
энэ нь нэг нэгж хэвээр байх ба хүлээж аваад, нийлүүлээд, бататгал
хийхэд ч мөн нэг нэгж хэвээр байдаг. Өндөр үзүүлэлттэй ажлын машинууд
NFS нэгжийг бүрдүүлж байгаа тэдгээр пакетуудыг стандартад
заасны дагуу аль болох ойрхон ойрхон, нэг нэгээр нь цувуулж
гаргана. Жижиг, бага багтаамжтай картууд дээр, дээд түвшний програмд
дамжуулахаас өмнө сүүлийн пакет нь өмнөх пакетаа дарснаар
тухайн нэгжийг буцааж нийлүүлж, бататгах боломжгүй болно.
Үүнээс болж, ажлын машины болзоот хугацаа дуусаж бүхэл бүтэн 8 K
нэгжийг дахин дамжуулах болно. Энэ үйл ажиллагаа дахин дахин хязгааргүй
давтагдах болно.
Нэгжийн хэмжээг Ethernet пакетийн хэмжээнээс бага
байлгаснаар, бид Ethernet пакет тус бүрийг бататгаж
мухардалд орохоос сэргийлж чадна.
Өндөр үзүүлэлттэй ажлын машинууд PC систем рүү өгөгдлийг
цацсаар байх үед давхцал үүссээр байх боловч, илүү сайн карт
ашигласнаар NFS нэгж
ийн хувьд заавал тийм давхцал үүсэх
албагүй болно. Давхцал үүссэн тохиолдолд, түүнд өртсөн нэгжийг
дахин дамжуулах ба түүнийг хүлээн авч, нийлүүлж, бататгах боломж өндөртэй.
Билл
Свингл
Бичсэн
Эрик
Огрен
Сайжруулсан
Удо
Эрделхофф
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний Мэдээллийн Систем (NIS/YP)
Энэ юу вэ?
NIS
Solaris
HP-UX
AIX
Linux
NetBSD
OpenBSD
NIS,
нь Network Information Services буюу Сүлжээний Мэдээллийн Үйлчилгээнүүд
гэсэн үгийн товчлол бөгөөд &unix; (анхандаа &sunos;) системүүдийн
удирдлагыг төвлөрүүлэх зорилгоор Sun Microsystems анх хөгжүүлсэн.
Одоо энэ салбарын үндсэн стандарт болжээ; бүх гол &unix; төрлийн системүүд
(&solaris;, HP-UX, &aix;, Линукс, NetBSD, OpenBSD, FreeBSD, гэх мэт) NIS-г дэмждэг.
шар хуудасNIS
NIS анх Yellow Pages буюу Шар Хуудас
гэсэн нэртэй байсан боловч худалдааны тэмдгийн асуудлаас болж
Sun нэрийг нь сольсон. Хуучин нэр (ба yp) нь одоо хир нь хэрэглэгдсээр байдаг.
NIS
домэйнууд
Энэ нь RPC дээр үндэслэсэн, нэг NIS домэйнд байгаа
бүлэг машинууд дундаа адилхан тохиргооны файлтай боломжийг
олгодог харилцагч/сервер систем юм. Үүний тусламжтай
системийн администратор NIS харилцагч системийг
зайлшгүй байх үндсэн тохиргоотойгоор үүсгэх, тохиргооны өгөгдлийг
нэг дор нэмэх, хасах, өөрчлөх зэрэг үйлдлүүдийг хийх
боломжтой болдог.
Windows NT
Энэ нь &windowsnt;-н домэйн системтэй төстэй.
Хэдийгээр тэдгээрийн дотоод ажиллагаа нь ердөө ч адилхан биш боловч
үндсэн үүргийг нь адилтгаж болох юм.
Таны мэдэж байх ёстой Нэр томъёо/Процессууд
NIS сервер эсвэл NIS харилцагч байдлаар ажилладаг NIS-г FreeBSD дээр
зохион байгуулахын тулд нилээд хэдэн нэр томъёо, чухал хэрэглэгчийн
процессуудтай та тааралдах болно:
rpcbind
portmap
Нэр томъёо
Тайлбар
NIS домэйн нэр
NIS мастер сервер болон түүний бүх харилцагчид
(түүний зарц серверийг оруулаад) бүгд NIS домэйн нэртэй байна.
&windowsnt;-н домэйн нэртэй адилаар, NIS домэйн нэр DNS-тэй
ямар ч хамаагүй.
rpcbind
RPC-г (Remote Procedure Call буюу Алсын Процедур Дуудах, NIS-н
ашигладаг сүлжээний протокол) идэвхтэй байлгахын тулд заавал ажиллаж
байх ёстой. Хэрэв rpcbind ажиллахгүй бол,
NIS сервер ажиллуулах, NIS харилцагч болох боломжгүй.
ypbind
NIS харилцагчийг NIS сервертэй холбоно
.
NIS домэйн нэрийг системээс авч, RPC ашиглан сервертэй холбоно.
ypbind нь NIS орчны харилцагч-серверийн харилцааны цөм нь болж
өгдөг; Хэрэв харилцагчийн машин дээр ypbind үхвэл,
NIS сервер рүү хандах боломжгүй болно.
ypserv
Зөвхөн NIS сервер дээр ажиллаж байх ёстой;
энэ бол NIS сервер процесс өөрөө юм. Хэрэв &man.ypserv.8; үхвэл,
сервер NIS хүсэлтэд хариу өгөх боломжгүй болно (магадгүй,
түүний үүргийг үргэлжлүүлэх зарц сервер байгаа байх). Зарим
NIS-н хувьд (FreeBSD-гийх биш), анх холбогдож байсан сервер байхгүй болбол
өөр сервертэй холбоо тогтоохыг оролддоггүй хувилбарууд байдаг.
Ихэнхдээ, ийм үед ганц тус болох зүйл бол сервер процессийг
дахин эхлүүлэх (эсвэл серверийг бүхлээр нь), эсвэл харилцагч талын
ypbind процессийг дахин эхлүүлэх юм.
rpc.yppasswdd
Зөвхөн NIS эзэн сервер дээр ажиллаж байх ёстой өөр
нэг процесс; Энэ дэмон NIS харилцагч нарыг өөрсдийн нэвтрэх үгийг
солих боломжийг олгоно. Хэрэв энэ дэмон ажиллахгүй бол,
хэрэглэгчид NIS эзэн сервер рүү нэвтэрч орон тэнд нэвтрэх үгээ солих
хэрэгтэй болно.
Хэрхэн ажилладаг вэ?
NIS орчинд гурван төрлийн хост байна:
эзэн сервер, зарц сервер, ба харилцагч. Серверүүд нь
хостуудын тохиргооны мэдээллийг хадгалсан агуулахын үүргийг
гүйцэтгэнэ. Эзэн сервер энэ мэдээллийн бүрэн эрхтэй хуулбарыг
хадгалж байдаг бол, зарц сервер нь энэ мэдээллийн хуулбарыг
нөөцөнд хадгалж байдаг. Серверүүд харилцагчдыг эдгээр мэдээллээр
хангана.
Олон файлд байгаа мэдээллийг энэ маягаар хуваалцаж хэрэглэнэ.
master.passwd, group, ба hosts гэсэн файлуудыг
ихэвчлэн NIS тусламжтай хуваалцана. Эдгээр файлд байдаг мэдээлэл
харилцагч талын нэг процессод хэрэгтэй боллоо гэхэд түүнийг өөрийн дотоодоос
хайхын оронд түүнд оноогдсон NIS серверээс асуулга хийнэ.
Машины төрөл
NIS
эзэн сервер
NIS эзэн сервер. Энэ сервер, &windowsnt;-н анхдагч
домэйн сервер хянагчийн нэг адил, NIS харилцагчдын хэрэгцээний бүх файлуудыг
агуулсан байна. passwd, group ба NIS харилцагчийн хэрэглэх
бусад олон файлууд эзэн сервер дээр байна.
Нэг машин нэгээс олон NIS домэйны хувьд NIS эзэн
сервер байж болно. Гэхдээ, энд бид бага хэмжээний NIS орчны талаар
ярилцах тул энэ талаар энд үзэхгүй.
NIS
зарц сервер
NIS зарц сервер. &windowsnt;-н нөөц домэйн хянагчтай адилаар,
NIS зарц сервер нь NIS эзэн серверийн өгөгдлийн файлын хуулбарыг хадгална.
NIS зарц серверүүд нь нөөцөнд байдаг. Тэдгээр нь мөн эзэн серверийн
ачааллыг хуваалцаж байдаг: NIS Харилцагчид нь хамгийн түрүүнд хариу өгсөн
серверт холбогдох ба үүний тоонд зарц серверүүд ч бас орно.
NIS
харилцагч
NIS харилцагч. NIS харилцагч нь ихэнх
&windowsnt; ажлын машины адилаар, NIS серверт шалгуулж (эсвэл &windowsnt; ажлын
машины хувьд &windowsnt; домэйн хянагчид) нэвтэрнэ.
NIS/YP-г хэрэглэх нь
Энэ хэсэгт жишээ NIS орчныг үүсгэх болно.
Төлөвлөх
Та өөрийгөө нэгэн их сургуулийн жижигхэн лабораторын
администратор гэж бод. Энэ лаб 15 FreeBSD машинаас бүрдэх ба
одоогоор төвлөрсөн удирдлага байхгүй; машин бүр өөрийн
/etc/passwd ба /etc/master.passwd файлуудтай. Эдгээр файлуудыг
адилхан байлгахын тулд гараараа зөөж тавьдаг; одоогийн байдлаар лабораторид шинэ
хэрэглэгч нэмэхийн тулд, бүх 15 машин дээр нэг бүрчлэн adduser
тушаалыг оруулах хэрэгтэй байгаа. Мэдээж үүнийг өөрчлөх хэрэгтэй,
иймээс та лабораторидоо NIS хэрэглэхээр боллоо. Машинуудаасаа хоёрыг
нь сервер болгохоор сонгож авлаа.
Тиймээс, лабораторын тохиргоо дараах байдалтай байна:
Машины нэр
IP хаяг
Машины үүрэг
ellington
10.0.0.2
NIS эзэн
coltrane
10.0.0.3
NIS зарц
basie
10.0.0.4
Факультетийн ажлын машин
bird
10.0.0.5
Харилцагч машин
cli[1-11]
10.0.0.[6-17]
Бусад харилцагч машинууд
Хэрэв та NIS зураглалыг анх удаа хийж байгаа бол,
хаанаас эхлэхээ эхлээд сайн бодох хэрэгтэй. Сүлжээ чинь ямар ч
хэмжээтэй байж болно, гол нь хэд хэдэн сонголт хийх хэрэгтэй.
NIS Домэйн Нэрийг сонгох нь
NIS
домэйннэр
Өөрийн тань байнга хэрэглэдэг домэйн нэр
байж болохгүй.
Залруулж хэлбэл NIS домэйн нэр
байх ёстой. Харилцагч мэдээлэл
олж авахын тулд хүсэлтээ цацах үед NIS домэйн нэрийг хэрэглэнэ.
Үүгээр нэг сүлжээнд байгаа олон серверүүд хэн нь хэний асуултанд хариулах
ёстойгоо мэдэж авна. NIS домэйн нэрийг хоорондоо ямар нэг байдлаар
хамаатай бүлэг хостын нэр гэж ойлгож болно.
Зарим байгууллагууд өөрийн Интернэтийн домэйн нэрийг
NIS домэйн нэрээр хэрэглэх нь байдаг. Энэ нь сүлжээний ямар нэг асуудлыг
задлан шинжлэх явцад түвэг удах тул энэ аргыг зөвлөдөггүй. NIS домэйн нэр нь
сүлжээний орчинд цор ганц байх ёстой бөгөөд төлөөлж байгаа бүлэг машинаа онцолсон
нэр байвал дөхөм байдаг. Жишээлбэл, Acme Inc. компаний Урлагийн хэлтэс acme-art
гэсэн NIS домэйнтой байж болох юм. Бид өөрсдийн жишээндээ test-domain гэсэн
домэйн нэрийг авлаа.
SunOS
Гэвч, зарим үйлдлийн системүүд (цохон дурдвал &sunos;)
өөрийн NIS домэйн нэрийг Интернэт домэйн нэрээр хэрэглэдэг.
Хэрэв таны сүлжээний нэг болон түүнээс дээш тооны машин
ийм асуудалтай бол, та Интернэт домэйн нэрээ NIS домэйндоо хэрэглэх
ёстой.
Серверт тавигдах шаардлагууд
NIS серверт зориулсан машин сонгон авахдаа
анхаарах хэд хэдэн зүйлс бий. NIS-тэй холбоотой нэг учир дутагдалтай
зүйл бол харилцагчдын серверээс хамаарах хамаарал юм. Хэрэв
харилцагч өөрийн NIS домэйныг асуухаар сервертэй холбогдож чадахгүй бол,
тэр машин ашиглагдах боломжгүй болдог. Хэрэглэгч болон бүлгийн мэдээлэл
дутуугаас ихэнх системүүд түр хугацаанд зогсдог. Тиймээс, дахин дахин
асааж унтраалгаад байхааргүй, эсвэл туршилтад хэрэглэгдэхээр
машиныг сонгох хэрэгтэй. NIS сервер нь тусдаа, зөвхөн NIS серверт зориулагдсан
машин байх ёстой. Хэрэв ачаалал багатай сүлжээнд ажиллаж байгаа бол,
NIS серверийг өөр үйлчилгээ ажиллаж байгаа машин дээр тавьж болох талтай.
Хамгийн гол нь NIS сервер чинь ажиллахгүй болбол, бүх NIS харилцагчид чинь
мөн ажиллахгүй болохыг санаарай.
NIS Серверүүд
Бүх NIS мэдээлэл он цагийн дарааллаараа
NIS эзэн сервер дээр хадгалагдаж байдаг.
Энэ мэдээллийг хадгалж байгаа өгөгдлийн санг NIS буулгалт гэж нэрлэнэ.
FreeBSD-д, эдгээр буулгалтууд /var/yp/[domainname] файл дотор байрлана.
[domainname] нь NIS домэйн нэр болно. Нэг NIS сервер хэд хэдэн
домэйныг зэрэг агуулж чадах тул домэйн тус бүрт зориулсан хэд хэдэн
ийм сан байж болно. Домэйн бүр өөрийн гэсэн буулгалтуудтай байна.
NIS эзэн болон зарц серверүүд бүх NIS хүсэлтийг ypserv дэмоны
тусламжтай удирдаж явуулна. ypserv нь NIS харилцагч нараас
ирж буй хүсэлтийг хүлээн авч, домэйныг хөрвүүлэн, уг домэйн нэрд харгалзах
өгөгдлийн файлын замыг хайж олоод, өгөгдлийг буцаан харилцагчид дамжуулах үүрэгтэй.
NIS Эзэн Серверийг зохион байгуулах нь
NIS
серверийн тохиргоо
Эзэн NIS серверийг зохион байгуулах нь харьцангуй
ойлгомжтой. FreeBSD нь бэлэн NIS суучихсан ирдэг. Зөвхөн /etc/rc.conf
файл дотор дараах мөрүүдийг нэмэхэд л хангалттай, үлдсэнийг нь
FreeBSD таны өмнөөс хийгээд өгөх болно.
nisdomainname="test-domain"
Энэ мөр сүлжээ асахад (жишээ нь, систем дахин ачаалсны дараа)
NIS домэйн нэрийг test-domain болгоно.
nis_server_enable="YES"
Энэ мөр нь сүлжээ асахад NIS сервер процессуудыг
асаахыг хэлж өгнө.
nis_yppasswdd_enable="YES"
Энэ мөр нь rpc.yppasswdd дэмонг идэвхжүүлнэ. Дээр хэлсэнчлэн,
энэ дэмон нь харилцагч машин дээрээс хэрэглэгч өөрийн NIS нэвтрэх
үгийг солих боломжтой болгодог.
Таны NIS тохиргооноос хамааран, нэмэлт мөрүүдийг оруулах
хэрэгтэй болж магадгүй. NIS сервер мөртлөө давхар NIS
харилцагч серверийн тухай хэсгээс, доор, дэлгэрэнгүй
мэдээллийг авна уу.
Одоо, супер хэрэглэгчийн эрхээр /etc/netstart
тушаалыг өгөх л үлдлээ. Энэ нь таны /etc/rc.conf файл дотор
тодорхойлж өгсөн утгуудыг ашиглан бүх зүйлсийг таны өмнөөс
хийх болно.
NIS Буулгалтуудыг эхлүүлэх нь
NIS
буулгалтууд
NIS буулгалтууд нь өгөгдлийн сангийн
файлууд бөгөөд /var/yp сан дотор хадгалагдана.
Тэдгээрийг NIS эзэн серверийн /etc сан дотор байгаа
/etc/master.passwd файлаас бусад тохиргооны файлуудаас үүсгэдэг.
Энэ нь их учиртай. Мэдээж та өөрийн root болон удирдах
эрхтэй дансуудынхаа нэвтрэх үгийг NIS домэйн дахь бүх сервер дээр
тарааж тавих хүсэлгүй байгаа биз дээ. Тиймээс,
NIS буулгалтуудыг эхлүүлэхийн өмнө, дараах зүйлсийг хийх хэрэгтэй:
&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwd
Системийн дансуудад хамаарах мөрүүдийг (bin,
tty, kmem,
games, гэх мэт), мөн NIS харилцагч дээр тарааж
тавих хүсэлгүй байгаа дансуудад хамаарах мөрүүдийг (жишээлбэл
root ба бусад UID 0 (супер хэрэглэгчийн) дансууд) бүгдийг
устгах хэрэгтэй.
/var/yp/master.passwd файл бүлгийн болон нийтийн хувьд
унших эрхгүй (600 төлөв) байгааг нягтална уу! Шаардлагатай бол
chmod тушаалыг хэрэглээрэй.
Tru64 UNIX
Дээр дурдсаныг гүйцэтгэж дууссаны дараа,
сая NIS буулгалтуудыг эхлүүлнэ! FreeBSD нь танд үүнийг хийж өгөх
ypinit нэртэй скриптийг (холбогдох заавар хуудаснаас
дэлгэрэнгүй мэдээллийг авна уу) агуулж байдаг.
Энэ скрипт ихэнх &unix; үйлдлийн системд байдаг боловч,
заримд нь байхгүй байх тохиолдол бий.
Digital UNIX/Compaq Tru64 UNIX дээр энэ скрипт ypsetup гэсэн
нэртэй байдаг. Бид NIS эзэн серверийн хувьд буулгалтуудыг
үүсгэж байгаа тул ypinit тушаалыг
тохируулгын хамт өгнө. Дээрх алхмуудыг бүгдийг хийсний дараа,
NIS буулгалтуудыг үүсгэхдээ дараах тушаалыг өгнө:
ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.
ypinit нь /var/yp/Makefile.dist-с
/var/yp/Makefile-г үүсгэсэн байх ёстой.
Үүсэхдээ, энэ файл таныг ганц NIS сервертэй орчинд
зөвхөн FreeBSD машинуудтай ажиллаж байна гэж үзнэ.
test-domain нь зарц сервертэй тул,
та /var/yp/Makefile файлыг засах хэрэгтэй:
ellington&prompt.root; vi /var/yp/Makefile
Доорх мөрийг далдлах хэрэгтэй
NOPUSH = "True"
(хэрэв далдлагдаагүй бол).
NIS Зарц Серверийг зохион байгуулах нь
NIS
зарц сервер
NIS зарц серверийг зохион байгуулах нь
эзэн серверийг зохион байгуулахаас ч хялбар байдаг.
Зарц сервер рүү нэвтэрч ороод түрүүн хийсэн шигээ
/etc/rc.conf файлыг засах хэрэгтэй.
Ганц ялгаа нь ypinit тушаалыг өгөхдөө
тохируулгыг өгнө. тохируулга нь
NIS эзэн серверийн нэрийг хамт оруулахыг шаардах тул бидний
тушаалын мөр дараах байдалтай байна:
coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.
Одоо /var/yp/test-domain нэртэй сан
үүссэн байх ёстой. NIS эзэн серверийн буулгалтуудын хуулбарууд
энэ сан дотор байх ёстой. Эдгээр файлууд шинэчлэгдэж
байгаа эсэхийг нягтлаж байх хэрэгтэй.
Таны зарц серверийн /etc/crontab доторх дараах мөрүүд
үүнийг хийх болно:
20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuid
Энэ хоёр мөр нь зарц сервер өөрийн буулгалтуудыг
эзэн сервертэй ижилхэн байлгахыг хүчилнэ. Хэдийгээр
эдгээр мөрүүдийг заавал хэрэглэх шаардлагагүй боловч,
эзэн сервер өөрийх нь NIS буулгалтад гарсан өөрчлөлтүүд
зарц серверүүдийн хувьд дамжигдсан эсэхийг шалгадаг,
нэвтрэх үгийн тухай мэдээлэл нь системийн хувьд амин чухал зэргээс
дээрх шинэчлэлтийг хүчлэх нь зүгээр.
Одоо, зарц сервер талд мөн /etc/netstart тушаалыг өгч
NIS серверийг ажиллуулна.
NIS Харилцагчид
NIS харилцагч нь ypbind дэмоны тусламжтай
тодорхой нэг NIS сервертэй холбоо тогтооно. ypbind
системийн анхдагч домэйныг шалгах ба (domainname тушаалаар
өгөгдсөн), дотоод сүлжээнд RPC хүсэлтийг цацаж эхлэнэ.
Эдгээр хүсэлтүүд нь ypbind-н холбоо тогтоох гэж байгаа
домэйн нэрийг зааж өгнө. Хэрэв тухайн домэйнд
үйлчлэхээр тохируулагдсан сервер дээрх хүсэлтийг
хүлээн авбал, ypbind-д хариу өгөх ба хариуг хүлээж авсан
тал серверийн хаягийг тэмдэглэж авна. Хэрэв хэд хэдэн сервер
хариу өгсөн бол (нэг эзэн ба хэд хэдэн зарц), ypbind
хамгийн түрүүнд хариу өгсөн серверийг сонгон авна. Түүнээс хойш,
харилцагч өөрийн бүх NIS хүсэлтүүдээ тэр сервер рүү явуулна.
ypbind нь хааяа сервер амьд байгаа эсэхийг нягтлахын тулд
ping
хийж үзнэ. Хэрэв хангалттай хугацааны дотор хариу хүлээж
аваагүй бол, ypbind энэ домэйнтой холбоо тасарлаа гэж үзээд
өөр сервер олохын тулд хүсэлтээ цацаж эхэлнэ.
NIS Харилцагчийг зохион байгуулах
NIS
харилцагчийг тохируулах нь
FreeBSD машин дээр NIS харилцагчийг зохион байгуулах нь
нилээд хялбар байдаг.
/etc/rc.conf файлыг нээгээд, NIS
домэйн нэрийг зааж өгөх ба сүлжээ асах үед ypbind-г
ажиллуулдаг болгохын тулд дараах мөрүүдийг нэмж бичнэ:
nisdomainname="test-domain"
nis_client_enable="YES"
NIS серверээс хэрэгтэй нэвтрэх үгүүдийг импортолж
авахын тулд /etc/master.passwd файл дотор байгаа
бүх хэрэглэгчийн дансыг устгаад, файлын төгсгөлд
дараах мөрийг нэмэхийн тулд vipw тушаалыг
ашиглана:
+:::::::::
Энэ мөр нь NIS серверийн нэвтрэх үгийн буулгалтад
байгаа хүчинтэй хэрэглэгчид данс олгоно. Энэ мөрийг өөрчлөх замаар
NIS харилцагчийг хэд хэдэн янзаар тохируулж болно. Дэлгэрэнгүй
мэдээллийг доорх netgroups
section хэсгээс үзнэ үү. Цааш гүнзгийрүүлэн судлах хүсэлтэй бол
NFS ба NIS-г удирдах нь тухай O'Reilly-н номыг үзнэ үү.
Дор хаяж нэг дотоод эрхийг (өөрөөр хэлбэл NIS-с импортолж аваагүй)
/etc/master.passwd файл дотор авч үлдэх хэрэгтэй.
Энэ данс wheel бүлгийн гишүүн байх ёстой. Хэрэв NIS дээр ямар нэг
асуудал гарлаа гэхэд энэ эрхээр алсаас нэвтрэн орж, root болоод
асуудлыг шийдвэрлэх болно.
NIS серверээс бүх бүлгүүдийг импортолж авахын тулд
дараах мөрийг /etc/group файлд нэмнэ:
+:*::
Үүний дараа, ypcat passwd тушаалыг өгч
NIS серверийн passwd буулгалтыг харж чадаж байх ёстой.
NIS-н Аюулгүй байдал
Ер нь ямар ч алсын хэрэглэгчийн хувьд өөрийн чинь
домэйн нэрийг мэдэж байвал RPC хүсэлтийг &man.ypserv.8;-д явуулж
NIS буулгалтыг харах боломжтой. Ийм төрлийн зөвшөөрөгдөөгүй
үйлдлээс сэргийлэхийн тулд &man.ypserv.8; нь зөвхөн зааж өгсөн хостуудаас
ирсэн хандалтыг зөвшөөрдөг securenets
гэсэн функцыг агуулж
байдаг. Систем анх ачаалахад, &man.ypserv.8; нь securenets-н мэдээллийг
/var/yp/securenets гэсэн файлаас ачаална.
Энэ замыг тохируулгаар зааж өгөх ба янз бүр байж болно.
Энэ файлд сүлжээг сүлжээний багийн хамт зайгаар тусгаарлан
оруулж өгсөн байна. #
тэмдгээр эхэлсэн мөрүүд нь тайлбар болно.
Жишээ securenets файл дараах байдалтай байна:
# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0
Хэрэв &man.ypserv.8;-н хүсэлт хүлээж авсан хаяг
эдгээр дүрмүүдийн аль нэгэнд тохирч байвал хүсэлтийг
ердийн байдлаар боловсруулна. Хэрэв энэ хаяг ямар ч дүрмэнд
тохирохгүй байвал, хүсэлтийг үл анхаарах бөгөөд
анхааруулах бичлэгийг бүртгэлд нэмнэ. Хэрэв
/var/yp/securenets гэсэн файл байхгүй бол,
ypserv нь гаднаас ирсэн бүх хүсэлтийг хүлээн авна.
ypserv програм нь Wietse Venema-н TCP Wrapper багцыг
дэмждэг. Энэ нь администраторуудын хувьд /var/yp/securenets-ны оронд
TCP Wrapper-н тохиргооны файлыг хандалтыг хянахад хэрэглэх
боломжтой болгодог.
Хэдийгээр эдгээр хандалтыг хянах механизмууд нь
аюулгүй байдлыг адил түвшинд хангах боловч,
хоёул IP залилах
халдлагад өртөмтгий байдаг. NIS-тэй холбоотой
бүх урсгалыг галт хана дээрээ хааж өгөх хэрэгтэй.
/var/yp/securenets хэрэглэж байгаа серверүүд
хуучин TCP/IP дээр ажиллаж байгаа зүй ёсны NIS харилцагчид үйлчилж
чадахгүй байж магадгүй. Учир нь, тэдгээр нь өргөн цацалт хийхдээ
хост битүүдийг бүгдийг тэглэдэг ба өргөн цацалтын хаягийг тооцоолохдоо
дэд сүлжээний багийг таньж чаддаггүй болно. Хэдийгээр эдгээр асуудлуудыг
харилцагчийн тохиргоог өөрчилснөөр шийдэж болох боловч,
бусад асуудлууд нь харилцагчийн системийг цааш ашиглах боломжгүй эсвэл
/var/yp/securenets-г болиулах шаардлагатай болдог.
Ийм хуучин TCP/IP дээр ажилладаг сервер дээр
/var/yp/securenets-г хэрэглэх нь үнэхээр хэрэггүй бөгөөд
сүлжээний ихэнх хэсэгт NIS-г ашиглах боломжгүй байдаг.
TCP Wrapper-ууд
TCP Wrapper багцыг ашиглах нь
NIS серверийн хоцролтыг ихэсгэдэг. Энэ нэмэлт саатал нь
харилцагчийн програм дээр ялангуяа ачаалал ихтэй сүлжээнд,
эсвэл удаан NIS сервертэй бол хүлээх хугацаа дуусахад хүргэх талтай.
Хэрэв таны харилцагч систем чинь дээрх шинж тэмдгүүдийн аль нэгийг
агуулж байгаа бол та энэ харилцагч системээ NIS зарц сервер болгож өөрчлөн
хүчээр өөрөөсөө өөртөө холбогдохоор тохируулах хэрэгтэй.
Зарим хэрэглэгчдийн нэвтрэхийг хаах
Манай лабораторын жишээн дээр, basie нэртэй нэг
машин байгаа. Энэ машиныг зөвхөн багш нар хэрэглэх ёстой.
Бид энэ машиныг NIS домэйн дотроос гаргахыг хүсэхгүй байгаа, дээр нь
эзэн NIS сервер дээр байгаа passwd файл нь
багш нар болон оюутнуудын дансыг хоёуланг агуулж байгаа.
Бид одоо яах ёстой вэ?
NIS өгөгдлийн сан дотор бүртгэл нь байгаа ч, зарим
хэрэглэгчдийг тухайн машин руу нэвтрэхийг хаах нэг арга байна.
Үүний тулд -username гэсэн мөрийг
харилцагч машин дээр /etc/master.passwd файлын төгсгөлд нэмэх
хэрэгтэй. Энд username гэдэг нь
нэвтрэхийг нь хаах гэж байгаа хэрэглэгчийн нэр юм.
Дээрх үйлдлийг хийхдээ vipw-г ашиглахыг зөвлөж байна.
vipw нь /etc/master.passwd файл дотор хийгдсэн өөрчлөлтийг
хянах бөгөөд өөрчлөлт хийж дууссаны дараа нэвтрэх үгийн санг автоматаар
дахин үүсгэж өгдөг. Жишээ нь, хэрэв бид bill гэсэн хэрэглэгчийг
basie хост дээр нэвтрэхийг хаахыг хүсэж байгаа бол:
basie&prompt.root; vipw
[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;
Удо
Эрделхофф
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Netgroups-г Хэрэглэх нь
netgroups
Цөөхөн тооны машин эсвэл хэрэглэгчийн хувьд
тусгай дүрэм хэрэгтэй үед өмнөх хэсэгт дурдсан аргыг
хэрэглэх нь илүү тохиромжтой. Харин том сүлжээний хувьд
зарим хэрэглэгчийн чухал машин руу нэвтрэх эрхийг хаахаа мартах,
эсвэл бүх машиныг нэг бүрчлэн гараараа тохируулж өгөх, өөрөөр хэлбэл
NIS-н төвлөрсөн удирдлага гэсэн гол санааг ашиглаж чадахгүй байх
тохиолдлууд гарах болно.
NIS-г хөгжүүлэгчид энэ асуудлыг шийдэхийн тулд
netgroups буюу сүлжээний бүлгүүд гэсэн шинэ зүйлийг бий болгожээ.
Түүний зорилго болон семантикийг &unix; файл системийн
жирийн бүлэгтэй дүйцүүлж болох юм. Гол ялгаанууд нь гэвэл
тоон дугаар байхгүй, мөн сүлжээний бүлгийг тодорхойлж өгөхдөө
хэрэглэгч болон өөр сүлжээний бүлгийг оруулж болдог.
Сүлжээний бүлэг нь хэдэн зуун хэрэглэгч болон машинтай
том, төвөгтэй сүлжээтэй ажиллахад зориулж бүтээгдсэн юм.
Нэг талаар, хэрэв та үнэхээр тийм том сүлжээнд ажиллаж байгаа бол
энэ нь Сайн Зүйл юм. Харин нөгөө талаас, энэ байдал нь
жижигхэн сүлжээнд хялбар жишээн дээр сүлжээний бүлгийг тайлбарлах
бараг боломжгүй болгож байна. Энэ хэсгийн үлдсэн хэсэгт хэрэглэж
байгаа жишээн дээр энэ асуудлыг харуулахыг оролдлоо.
NIS-г лабораторидоо нэвтрүүлсэн тань танай удирдлагуудын
анхаарлыг татсан гэж бодьё. Одоо оюутны хотхон дотор байгаа
бусад машиныг NIS домэйнд оруулж өргөтгөх ажлыг хийхийг танд
даалгажээ. Дараах хоёр хүснэгтэнд шинээр нэмэх хэрэглэгч болон
машины нэрийг товч тайлбарын хамт үзүүллээ.
Хэрэглэгчийн нэр
Тайлбар
alpha, beta
IT хэлтсийн ердийн ажилчид
charlie, delta
IT хэлтсийн шинэ дагалдан
echo, foxtrott, golf, ...
бусад ердийн ажилчид
able, baker, ...
дадлагажигчид
Машины нэр
Тайлбар
war, death,
famine,
pollution
Таны хамгийн чухал серверүүд. Зөвхөн IT хэлтсийн
ажилчид л нэвтрэх эрхтэй.
pride, greed,
envy, wrath,
lust, sloth
Харьцангуй чухал биш серверүүд. IT хэлтэст харъяалагддаг бүх
хүмүүс нэвтрэх эрхтэй.
one, two,
three, four,
...
Ердийн ажлын машинууд. Зөвхөн үндсэн ажилчид
нэвтрэх эрхтэй.
trashcan
Чухал зүйл байхгүй маш хуучин машин.
Дадлагажигчид хүртэл нэвтрэх эрхтэй.
Хэрэв та дээрх хязгаарлалтуудыг
тус бүрд нь хэрэглэгчийг хаах замаар хийх гэж оролдвол
бүх машин дээр хаах хэрэглэгч тус бүрийн хувьд
-user мөрийг passwd
файл дотор нэмж өгөх ёстой болно. Хэрэв нэг л мөрийг
нэмэхээ мартвал асуудалд орно гэсэн үг.
Энэ байдалд сүлжээний бүлгийг ашиглах нь
нилээд олон давуу талтай. Хэрэглэгч бүрийг тус тусад нь
авч үзнэ; нэг хэрэглэгчийг нэг болон түүнээс дээш тооны
сүлжээний бүлэгт оноож, тухайн сүлжээний бүлгийн бүх гишүүдийн хувьд
нэвтрэхийг эсвэл зөвшөөрч эсвэл хаана. Хэрэв та шинэ машин нэмбэл,
зөвхөн сүлжээний бүлгүүдийн хувьд л нэвтрэх эрхийг зааж өгнө. Хэрэв шинэ
хэрэглэгч нэмбэл, тухайн хэрэглэгчийг нэг болон түүнээс дээш
тооны сүлжээний бүлэгт нэмэхэд л хангалттай. Эдгээр өөрчлөлтүүд нь нэг
нэгнээсээ хамааралгүй: хэрэглэгч ба машины бүх хувилбарт нэмэх...
шаардлагагүй болно. Хэрэв та NIS-г анхнаас нь бодлоготой хийх юм бол,
машинууд руу нэвтрэх эрхийг хянахдаа
зөвхөн ганцхан тохиргооны файлыг өөрчлөхөд хангалттай.
Хамгийн эхний алхам бол NIS сүлжээний бүлгийн буулгалтыг
эхлүүлэх юм. FreeBSD-н &man.ypinit.8; нь энэ буулгалтыг анхдагч байдлаар
үүсгэдэггүй, гэвч хэрэв нэгэнт үүсгэчихвэл түүний NIS-тэй ажиллах хэсэг нь
энэ буулгалт дээр ажиллах чадвартай. Хоосон буулгалт үүсгэхийн тулд:
ellington&prompt.root; vi /var/yp/netgroup
гэж бичээд дараах зүйлсийг нэмж бичнэ. Манай жишээний хувьд,
бидэнд дор хаяж дөрвөн сүлжээний бүлэг хэрэгтэй: IT ажилчид,
IT дагалдангууд, ердийн ажилчид болон дадлагажигчид.
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)
IT_EMP, IT_APP гэх мэт нь сүлжээний бүлгийн
нэр. Хаалтан дотор байгаа бүлэг нь хэрэглэгч нэмж байгаа нь. Бүлэг доторх
гурван талбар нь:
Дараах зүйлүүд хүчинтэй байх хостын нэр. Хэрэв хостын нэр зааж өгөхгүй бол,
бүх хостын хувьд хүчинтэй гэсэн үг. Хэрэв хостын нэр зааж өгвөл,
та үл ойлгогдох, толгой эргүүлсэн хачин зүйлстэй тулгарах болно.
Энэ сүлжээний бүлэгт хамаарах дансны нэр.
Тухайн дансны NIS домэйн. Хэрэв та нэгээс олон NIS
домэйнд харъяалагддаг азгүй залуусын нэг бол,
өөрийн сүлжээний бүлэгт өөр NIS домэйноос данс импортолж болно.
Эдгээр талбаруудын алинд ч орлуулагддаг тэмдэгт ашиглаж болно.
Дэлгэрэнгүй мэдээллийг &man.netgroup.5; заавар хуудаснаас үзнэ үү.
сүлжээний бүлгүүд
Сүлжээний бүлгүүдийн нэр 8-с дээш тэмдэгт байж
болохгүй, ялангуяа тухайн NIS домэйнд өөр үйлдлийн системтэй
машинууд ажиллаж байгаа бол. Нэрүүд нь том жижиг үсгийн ялгаатай;
сүлжээний бүлгийн нэрийг том үсгээр бичих нь
хэрэглэгчийн нэр, машины нэр болон сүлжээний бүлгийн нэрийг
хооронд нь ялгахад хялбар болгодог.
Зарим NIS харилцагчид (FreeBSD-с бусад) олон тооны гишүүдтэй
сүлжээний бүлэгтэй ажиллаж чаддаггүй. Жишээлбэл,
&sunos;-н зарим хуучин хувилбарууд сүлжээний бүлэг
15-с дээш тооны гишүүн-тэй бол асуудалтай байдаг.
Энэ хязгаарыг давахын тулд 15 ба түүнээс доош тооны хэрэглэгчтэй
дэд сүлжээний бүлгүүд үүсгээд, дараа нь эдгээр дэд сүлжээний бүлгүүдээс
тогтсон жинхэнэ сүлжээний бүлэг үүсгэх замаар үүсгэж болно:
BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3
Хэрэв танд нэг сүлжээний бүлэгт 225-с дээш хэрэглэгч хэрэгтэй
бол, дээрх үйлдлийг давтах маягаар цааш үргэлжлүүлж болно.
Шинээр үүсгэсэн NIS буулгалтаа идэвхжүүлэх болон тараах нь амархан:
ellington&prompt.root; cd /var/yp
ellington&prompt.root; make
Ингэснээр netgroup,
netgroup.byhost ба
netgroup.byuser гэсэн гурван NIS буулгалт үүсэх болно.
Дээрх шинэ буулгалтууд идэвхтэй болсон эсэхийг &man.ypcat.1; ашиглан
шалгаарай:
ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuser
Эхний тушаалын үр дүн /var/yp/netgroup файл доторхтой
төстэй байх ёстой. Хэрэв та хостоор тусгайлан сүлжээний бүлэг үүсгээгүй бол
хоёр дахь тушаалын үр дүнд юу ч гарах ёсгүй. Гурав дахь тушаалын
тусламжтай тухайн хэрэглэгчийн сүлжээний бүлгүүдийн жагсаалтыг
харахад хэрэглэгдэнэ.
Харилцагчийг тохируулахад нилээд хялбар.
war нэртэй серверийг тохируулахын тулд, &man.vipw.8;-г
ажиллуулаад
+:::::::::
гэсэн мөрийг
+@IT_EMP:::::::::
гэсэн мөрөөр сольж бичих хэрэгтэй.
Ингэснээр, зөвхөн IT_EMP сүлжээний бүлэгт заагдсан
хэрэглэгчдийн мэдээлэл war-н нэвтрэх үгийн санд импортлогдож,
зөвхөн эдгээр хэрэглэгчид л энэ машин руу нэвтрэх эрхтэй боллоо.
Харамсалтай нь, энэ хязгаарлалт нь
бүрхүүлийн ~ функцад, мөн хэрэглэгчийн нэр ба тоон дугаарыг
хооронд нь хөрвүүлдэг бүх дэд програмуудад хамаатай. Өөрөөр хэлбэл,
cd ~user тушаал ажиллахгүй,
ls -l тушаал хэрэглэгчийн нэрийн оронд
түүний тоон дугаарыг харуулах ба find . -user joe -print тушаал
Тийм хэрэглэгч байхгүй гэсэн алдааны мэдээлэл өгч амжилтгүй
болох болно. Үүнийг засахын тулд, бүх хэрэглэгчдийн бүртгэлийг
сервер рүү нэвтрэх эрхгүйгээр импортлох хэрэгтэй болно.
Үүний тулд өөр нэг мөрийг /etc/master.passwd файлд нэмж өгөх хэрэгтэй.
Энэ мөр нь:
+:::::::::/sbin/nologin гэсэн бичлэгийг агуулж байх ёстой бөгөөд,
энэ нь бүх бүртгэлийг импортол, гэхдээ импортлогдож байгаа бүртгэлүүдийн
бүрхүүлийг /sbin/nologin-р соль
гэсэн утгатай. Үүнтэй адилаар
passwd файлын ямар ч талбарыг /etc/master.passwd файл дахь анхдагч
утгыг сольж бичсэнээр өөрчилж болно.
+:::::::::/sbin/nologin гэсэн мөр +@IT_EMP::::::::: гэсэн мөрийн
дараа бичигдсэн эсэхийг сайтар нягтлаарай. Үгүй бол, NIS-с импортлогдсон бүх
хэрэглэгчдийн бүрхүүл /sbin/nologin болчихно шүү.
Дээрх өөрчлөлтийг хийсний дараа,
хэрэв IT хэлтэст шинэ ажилчин орвол,
зөвхөн ганцхан NIS буулгалтыг өөрчлөх боллоо. Чухал бус бусад серверийн хувьд
ижилхэн арга хэрэглэж, тэдгээрийн өөрийн /etc/master.passwd файл дотор байгаа
хуучин +::::::::: мөрийг:
+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologin
гэсэн мөрөөр сольж бичих хэрэгтэй. Ердийн ажлын машины хувьд:
+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologin
байх ёстой. Ингээд бүх зүйл асуудалгүй ажиллах болно.
Гэтэл хэдэн долоо хоногийн дараа дүрэм, журманд өөрчлөлт орлоо:
IT хэлтэс дадлагажигч авч эхэллээ. IT хэлтсийн дадлагажигчид
ердийн ажлын машин болон чухал бус серверүүдэд нэвтрэх эрхтэй;
IT дагалдангууд гол сервер рүү нэвтрэх эрхтэй болжээ. Одоо IT_INTERN
гэсэн шинэ сүлжээний бүлэг нэмж, энэ бүлэгт шинэ IT дадлагажигчдийг
нэмээд, энэ өөрчлөлтийг бүх машины тохиргоонд оруулж эхлэх хэрэгтэй...
Бидний хэлж заншсанаар: Төвлөрсөн төлөвлөгөөн дээрх алдаа,
бүх юмыг орвонгоор нь эргүүлнэ
.
Энэ мэт тохиолдолуудад NIS-н
өөр сүлжээний бүлгээс шинэ сүлжээний бүлэг үүсгэх боломж нь тус болно.
Нэг боломж нь үүрэг дээр үндэслэсэн сүлжээний бүлэг юм.
Жишээ нь, чухал серверүүд рүү нэвтрэх эрхийг хянахын тулд
BIGSRV гэсэн нэртэй сүлжээний бүлэг үүсгэж болох ба,
чухал бус серверүүдийн хувьд өөр SMALLSRV гэсэн бүрэг үүсгэж,
USERBOX гэсэн гурав дахь бүлгийг ердийн ажлын машинуудад зориулж
үүсгэж болох юм. Эдгээр сүлжээний бүлэг тус бүр
дээрх гурван төрлийн машинд нэвтрэх эрхтэй
сүлжээний бүлгүүдийг агуулна. NIS сүлжээний бүлгийн буулгалт
дараах байдалтай байна:
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
Нэвтрэх эрхийг хязгаарлах энэ арга нь
ижил төрлийн хязгаарлалттай машинуудыг нэг бүлэг болговол илүү
үр дүнтэй ажиллана. Харамсалтай нь, заавал тийм байх албагүй.
Ихэнх тохиолдолд, машин тус бүрээр нэвтрэх эрхийг хязгаарлах
боломжтой байх шаардлага зайлшгүй тулгардаг.
Машин дээр үндэслэсэн сүлжээний бүлэг тодорхойлох нь
дээрх мэтийн дүрэм журамд өөрчлөлт ороход хэрэглэж болох
хоёр дахь боломж юм. Энэ тохиолдолд, машин бүрийн
/etc/master.passwd файл дотор +
-р эхэлсэн хоёр
мөр бичлэг байна. Эхнийх нь энэ машин руу нэвтрэх эрхтэй дансуудаас бүрдсэн
сүлжээний бүлгийг нэмж өгнө, хоёр дахь нь бусад дансуудыг
/sbin/nologin бүрхүүлтэйгээр нэмнэ. Сүлжээний бүлгийн нэрийг
машины нэрийг БҮХ ҮСГИЙГ ТОМООР
байхаар сонгож авах нь
тохиромжтой. Өөрөөр хэлбэл, мөрүүд дараах байдалтай харагдах ёстой:
+@BOXNAME:::::::::
+:::::::::/sbin/nologin
Бүх машины хувьд дээрх үйлдлийг хийж дууссаны дараа,
өөрийн /etc/master.passwd файлыг дахин өөрчлөх шаардлагагүй болно.
Бусад бүх өөрчлөлтүүдийг NIS буулгалтыг өөрчилснөөр шийдэх болно. Дээрх асуудалд
тохирох сүлжээний бүлгийн буулгалтыг зарим нэмэлт өөрчлөлтүүдийн хамт
дор жишээ болгож үзүүлэв:
# Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]
Хэрэв та хэрэглэгчдийнхээ дансыг удирдахын тулд
ямар нэг өгөгдлийн санг ашигладаг бол, дээрх буулгалтын эхний
хэсгийг өгөгдлийн сангийнхаа тайлан бэлтгэх багажуудыг
ашиглах үүсгэх боломжтой. Энэ замаар, шинэ хэрэглэгчид машинуудад
хандах эрхийг автоматаар олж авах болно.
Эцэст нь анхааруулж хэлэх нэг зүйл байна: Машин дээр үндэслэсэн
сүлжээний бүлгийг хэрэглэхийг байнга зөвлөхгүй. Хэрэв
оюутны лабораторид зориулсан, хэдэн арван эсвэл хэдэн зуун
нэг ижил машинтай ажиллаж байгаа бол, NIS буулгалтыг тодорхой хэмжээнд барьж
байхын тулд машин дээр үндэслэсэн сүлжээний бүлгийн оронд үүрэг дээр үндэслэсэн
сүлжээний бүлгийг хэрэглэх хэрэгтэй.
Санаж явах чухал зүйлс
NIS орчинд ороод, өөрөөр хийх ёстой хэд хэдэн зүйлс байна.
Лабораторид шинэ хэрэглэгч нэмэх бүрдээ
зөвхөн эзэн NIS серверт нэмэх ёстой,
ба NIS буулгалтыг заавал дахин үүсгэх ёстой.
Хэрэв ингэхээ мартвал, шинэ хэрэглэгч эзэн NIS серверээс
өөр хаашаа ч нэвтэрч чадахгүй болно. Жишээ нь,
бид jsmith гэсэн шинэ хэрэглэгчийг лабораторид нэмэх боллоо:
&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domain
pw useradd jsmith-н оронд adduser jsmith-г мөн хэрэглэж болно.
Администратор эрхтэй дансуудыг NIS буулгалтад оруулах ёсгүй.
Администратор эрхээр орох ёсгүй хэрэглэгчдийн машин дээр администратор эрхтэй
дансууд болон нэвтрэх үгүүдийг тараах хүсэлгүй байгаа биз дээ.
NIS эзэн болон зарц серверийн аюулгүй байдлыг хангаж,
ажиллахгүй байх хугацааг багасгах хэрэгтэй. Хэрэв хэн нэг нь
серверт нууцаар нэвтэрч, эсвэл унтрааж орхивол хүмүүсийг лабораторын машинууд руу
нэвтрэх боломжгүй болгож, саад болох болно.
Энэ нь ямар ч төвлөрсөн удирдах системийн
гол сул тал юм. Хэрэв та өөрийн NIS серверийг хамгаалахгүй бол,
та маш олон ууртай хэрэглэгчидтэй таарах болно шүү!
NIS v1 нийцтэй байдал
FreeBSD-н ypserv нь NIS v1 харилцагчдад үйлчлэх
зарим дэмжигчтэй ирдэг. FreeBSD-н NIS нь зөвхөн NIS v2 протоколыг хэрэглэдэг,
гэхдээ бусад нь хуучин системүүдтэй нийцтэй ажиллахын тулд
v1 протоколыг дэмждэг байхаар бүтээгдсэн байдаг.
Эдгээр системтэй хамт ирсэн ypbind дэмонууд
хэдийгээр үнэн хэрэг дээрээ хэзээ ч хэрэглэхгүй боловч
NIS v1 сервертэй холболт үүсгэхийг оролддог (ба
v2 серверээс хариу хүлээж авсан ч өргөн цацалт хийж
хайлтаа үргэлжлүүлдэг талтай). Хэдийгээр
ердийн харилцагчийн хүсэлтийг дэмждэг боловч,
ypserv-н энэ хувилбар v1 буулгалтыг зөөх хүсэлттэй ажиллаж чадахгүй;
иймээс, зөвхөн v1 протоколыг дэмждэг хуучин NIS серверүүдтэй
холбоотойгоор эзэн эсвэл зарц байдлаар ажиллаж чадахгүй.
Аз болоход, ийм серверийг одоо хэрэглэж байгаа газар байхгүй.
NIS Сервер мөртлөө NIS Харилцагч
Сервер машин нь мөн NIS харилцагч байдлаар ажилладаг
олон сервертэй домэйнд ypserv-г ажиллуулахдаа
анхааралтай байх хэрэгтэй. Ийм серверийг өргөн цацалт хийлгэж,
өөр нэг сервертэй холбоо тогтоохыг зөвшөөрөхийн оронд өөрөө өөртэй нь
хүчээр холбох нь ихэвчлэн дээр байдаг. Хэрэв нэг сервер унтарч, бусад
серверүүд түүнээс хамааралтай байх юм бол хачин алдаанууд гарч болзошгүй.
Эцэст нь бүх харилцагчдын хүлээх хугацаа дуусаж,
бүгд өөр сервертэй холбогдохыг оролдох болно. Хэдийгээр бүх серверүүд
холболтуудаа сэргээж буцаад хэвийн байдалдаа орсон ч, саатлаас болж
харилцагчид холбогдож чадахгүй хэвээр байх болно.
Хостыг ямар нэг сервертэй холбогдохыг
ypbind тушаалыг тугийн хамт ажиллуулж,
урдаас зааж өгч болно. Хэрэв NIS серверийг дахин ачаалах тоолонд энэ
тушаалыг гараар оруулах хүсэлгүй байгаа бол, дараах мөрүүдийг
өөрийн /etc/rc.conf файл дотор нэмээрэй:
nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"
Дэлгэрэнгүй мэдээллийг &man.ypbind.8; заавар хуудаснаас үзнэ үү.
Нэвтрэх үгийн хэлбэр
NIS
нэвтрэх үгийн хэлбэр
NIS-г зохион байгуулах явцад ихэвчлэн тохиолддог асуудлуудын нэг бол
нэвтрэх үгийн хэлбэрийн нийцгүй байдал юм. Хэрэв таны NIS
сервер DES хувиргалттай нэвтрэх үгийг хэрэглэдэг бол,
зөвхөн DES хэрэглэдэг харилцагчид үйлчлэх чадвартай. Жишээлбэл,
хэрэв сүлжээнд чинь &solaris; NIS харилцагчид байгаа бол,
та бараг л DES хувиргалттай нэвтрэх үг хэрэглэх шаардлагатай гэсэн үг.
Таны сервер болон харилцагчид ямар хэлбэрийн нэвтрэх үг хэрэглэдгийг
шалгахдаа /etc/login.conf файлыг үзээрэй. Хэрэв тухайн хост
DES хувиргалттай нэвтрэх үг хэрэглэдэг бол, default буюу анхдагч ангилал
нь дараах мөрүүдийг агуулсан байх болно:
default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Further entries elided]
passwd_format нь өөр blf ба md5 гэсэн
утгуудыг авч болно (Blowfish болон MD5 хувиргалттай нэвтрэх үгийн хувьд).
Хэрэв та /etc/login.conf файлд өөрчлөлт хийсэн бол,
нэвтрэх чадварын санг дахин үүсгэх шаардлагатай. Үүний тулд дараах тушаалыг
root эрхээр өгөх хэрэгтэй:
&prompt.root; cap_mkdb /etc/login.conf
/etc/master.passwd файл дотор аль хэдийн үүссэн нэвтрэх үгийн
хэлбэр нь хэрэглэгч нэвтрэх чадварын сан дахин үүссэнээс хойш анх удаа нэвтрэх
үгээ солих хүртэл өөрчлөгдөхгүй.
Мөн, таны сонгосон хэлбэрээр нэвтрэх үгүүдэд
хувиргалт хийгддэг болгохын тулд,
/etc/auth.conf файл доторх crypt_default утга
таны сонгосон хэлбэрийг хамгийн түрүүнд оруулсан байгаа эсэхийг
шалгах хэрэгтэй. Жишээ нь, DES хувиргалттай нэвтрэх үгийг хэрэглэх үед:
crypt_default = des blf md5
&os; дээр тулгуурласан NIS сервер болон харилцагч бүр дээр дээрх
үйлдлүүдийг хийснээр, нэвтрэх үгийн хэлбэр бүгд таарч байгаа гэдэгт
санаа амар байж болно. Хэрэв NIS харилцагч дээр нэвтэрч ороход асуудал
гарвал, асуудлыг тодруулах нэг газар байна.
Хэрэв та холимог сүлжээний хувьд NIS сервер босгох гэж байгаа бол,
ихэнх систем дээр зайлшгүй байх хамгийн бага стандарт тул,
бүх системүүд дээрээ DES ашиглах хэрэгтэйг санаарай.
Грег
Саттер
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
Автомат Сүлжээний Тохиргоо (DHCP)
DHCP гэж юу вэ?
Динамик Хостын Тохиргооны Протокол
DHCP
- Интернэт Програм Хангамжийн Консорциум(ISC)
+ Internet Systems Consortium (ISC)
DHCP, Dynamic Host Configuration Protocol буюу Динамик Хостын Тохиргооны Протокол нь
систем ямар байдлаар сүлжээнд холбогдох,
тухайн сүлжээнд харилцаанд орохын тулд шаардагдах
мэдээллийг хэрхэн олж авахыг зааж өгдөг. FreeBSD-н
-6.0-с өмнөх хувилбарууд ISC (Internet Software Consortium) DHCP харилцагчийг
+6.0-с өмнөх хувилбарууд ISC (Internet Systems Consortium) DHCP харилцагчийг
(&man.dhclient.8;) хэрэглэдэг.
Хамгийн сүүлийн хувилбар дээр OpenBSD 3.7-с авсан
OpenBSD-н dhclient-г хэрэглэдэг. Энэ бүлэгт гарах
dhclient-р ISC ба OpenBSD DHCP харилцагчийг хоёуланг
нь төлөөлүүлсэн болно. DHCP серверийн хувьд ISC тархацын
серверийг авч үзэх болно.
Энэ хэсэгт авч үзэх зүйлс
Энэ хэсэгт ISC ба OpenBSD DHCP харилцагчийн харилцагч талыг бүтээж байгаа элементүүд,
болон ISC DHCP системийн сервер талыг бүтээж байгаа элементүүдийг хоёуланг нь
авч үзэх болно. Харилцагч талын програм, dhclient, нь
FreeBSD-тэй нэгдмэл байдлаар ирдэг бол, сервер талын хэсэг нь
net/isc-dhcp3-server портоос суулгах боломжтой байдлаар ирдэг.
&man.dhclient.8;, &man.dhcp-options.5;, ба &man.dhclient.conf.5; заавар хуудсууд болон доор өгөгдсөн зөвлөмжүүд
нь хэрэг болно.
Хэрхэн ажилладаг вэ?
UDP
Харилцагч машин дээр dhclient DHCP харилцагчийг
ажиллуулахад, тохиргооны мэдээллийг хүссэн хүсэлтийг цацаж эхэлнэ.
Анхдагч байдлаар, эдгээр хүсэлтүүд нь UDP 68-р портоос гарч, серверийн
UDP 67 порт руу илгээгдэнэ. Сервер харилцагчид IP хаяг болон сүлжээний баг,
чиглүүлэгч, DNS серверийн хаяг зэрэг хэрэгтэй мэдээллийг хариу илгээнэ.
Энэ бүх мэдээллийг DHCP түрээслэх
хэлбэрээр өгөх ба зөвхөн тодорхой
хугацааны туршид хүчинтэй байна (DHCP серверийг хариуцагч тохируулж өгсөн байна).
Ийм байдлаар, сүлжээнд холбогдохоо больсон харилцагчийн ашиглагдаагүй
IP хаягуудыг автоматаар буцааж авах боломжтой болно.
DHCP харилцагч серверээс өргөн мэдээллийг
авч чадна. Бүрэн жагсаалтыг &man.dhcp-options.5;-с олж үзэж болно.
FreeBSD-тэй нэгдмэл байдал
&os; нь ISC эсвэл OpenBSD DHCP харилцагч,
dhclient-г өөртэйгөө бүрэн нэгтгэсэн байдаг (&os; хувилбараас хамааран).
DHCP сервер ажиллаж байгаа сүлжээнд сүлжээний тохиргоог хийх нарийн
чимхлүүр ажлаас хөнгөвчлөх үүднээс, DHCP харилцагчийг систем суулгагч
болон үндсэн системийн аль алинд хамт оруулж өгсөн байдаг.
dhclient нь FreeBSD-н 3.2-с хойших бүх тархацуудад нэгтгэгдсэн байгаа.
sysinstall
sysinstall нь DHCP-г дэмждэг. sysinstall-р
сүлжээний интерфэйсийг тохируулахад асуудаг хоёр дахь асуулт бол:
Та энэ интерфэйсийг DHCP-р тохируулахыг хүсэж байна уу?
.
Зөвшөөрсөн хариулт өгсөн тохиолдолд dhclient-г ажиллуулах бөгөөд,
хэрэв амжилттай бол сүлжээний тохиргоо автоматаар хийгдэнэ.
Систем ачаалах үед DHCP ашигладаг болгохын тулд,
хоёр зүйлийг хийх хэрэгтэй:
DHCP
шаардлагууд
bpf төхөөрөмж цөмтэй хамт эмхэтгэгдсэн байх ёстой.
Үүний тулд, device bpf мөрийг цөмийн
тохиргооны файлд нэмж бичээд цөмийг дахин бүтээх
хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг
хэсгээс авна уу.
bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг
бөгөөд, DHCP-г ажиллуулахын тулд тусгайлан шинээр цөм бүтээх шаардлагагүй.
Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд,
bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог
төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын
тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд
bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг
маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г
ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй.
/etc/rc.conf файлыг нээгээд дараах мөрийг нэмж бичнэ:
ifconfig_fxp0="DHCP"
-д тайлбарласан ёсоор,
fxp0-г динамикаар тохируулах гэж байгаа
интерфэйсийн нэрээр сольж бичнэ.
Хэрэв таны dhclient өөр газар байгаа бол, эсвэл
хэрэв та dhclient-г нэмэлт тугуудын хамт ажиллуулах хүсэлтэй бол,
дараах мөрүүдийг нэмж бичнэ үү (эсвэл шаардлагатай хэсгийг засаж бичнэ үү):
dhclient_program="/sbin/dhclient"
dhclient_flags=""
DHCP
сервер
DHCP сервер dhcpd нь портуудын цуглуулгад байгаа
net/isc-dhcp3-server портын нэг хэсэг байдлаар ирдэг. Энэ порт нь
ISC DHCP сервер болон түүний баримтуудыг агуулсан байдаг.
Файлууд
DHCP
тохиргооны файлууд
/etc/dhclient.conf
dhclient нь /etc/dhclient.conf гэсэн тохиргооны
файлыг шаарддаг. Ихэвчлэн энэ файл зөвхөн тайлбаруудаас бүрдэх ба
анхдагч утгууд нь харьцангуй өөрчлөх шаардлагагүйгээр өгөгдсөн байдаг.
Энэ тохиргооны файлыг &man.dhclient.conf.5; заавар хуудсанд тайлбарласан байгаа.
/sbin/dhclient
dhclient нь статикаар холбогдсон байх ба
/sbin дотор байрлана. &man.dhclient.8; хуудаснаас
dhclient-н талаар дэлгэрэнгүй мэдээллийг авна уу.
/sbin/dhclient-script
dhclient-script нь зөвхөн FreeBSD-д байдаг, DHCP харилцагчийг
тохируулах зориулалттай тусгай скрипт юм. Энэ скриптийг
&man.dhclient-script.8; заавар хуудсанд тайлбарласан байх ба, ажиллуулахын
тулд хэрэглэгч ямар нэг засвар хийх шаардлагагүй.
/var/db/dhclient.leases
DHCP харилцагч нь түрээсэлж авсан хаягуудаа агуулсан өгөгдлийн
санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг. &man.dhclient.leases.5; хэсэгт
илүү дэлгэрэнгүй тайлбар бий.
Гүнзгийрүүлэн унших
DHCP протокол нь бүрэн хэмжээгээр RFC 2131-д
тодорхойлогдсон байдаг. Нэмэлт эх үүсвэрүүд -д мөн бий.
DHCP Серверийг Суулгах болон Тохируулах
Энэ хэсэгт авч үзэх зүйлс
- Энэ хэсэгт ISC (Internet Software Consortium) DHCP серверийг
+ Энэ хэсэгт ISC (Internet Systems Consortium) DHCP серверийг
ашиглан FreeBSD системийг хэрхэн DHCP сервер байдлаар ажиллуулах
талаар авч үзэх болно.
Сервер нь FreeBSD-н нэг хэсэг байдлаар ирдэггүй бөгөөд
ийм үйлчилгээ үзүүлэхийн тулд net/isc-dhcp3-server портыг
суулгах хэрэгтэй болдог. Портуудын цуглуулгын хэрхэн ашиглах талаар
хэсгээс дэлгэрэнгүй мэдээллийг авна уу.
DHCP Серверийг суулгах нь
DHCP
суулгах
FreeBSD системийг DHCP сервер байдлаар тохируулахын тулд,
&man.bpf.4; төхөөрөмж цөмд эмхэтгэгдсэн байх ёстой. Үүний тулд,
цөмийн тохиргооны файл дотор bpf төхөөрөмжийг нэмээд цөмийг дахин
бүтээх хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг
хэсгээс үзнэ үү.
bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг бөгөөд,
DHCP-г ажиллуулахын тулд
тусгайлан шинээр цөм бүтээх шаардлагагүй.
Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд,
bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог
төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын
тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд
bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг
маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г
ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй.
Үүний дараа net/isc-dhcp3-server
порттой хамт ирсэн жишээ dhcpd.conf файлыг засах хэрэгтэй.
Анхдагч байдлаар, /usr/local/etc/dhcpd.conf.sample гэсэн файл байх ба
өөрчлөлт хийхийнхээ өмнө энэ файлыг /usr/local/etc/dhcpd.conf
нэртэйгээр хуулж тавих хэрэгтэй.
DHCP Серверийг тохируулах
DHCP
dhcpd.conf
dhcpd.conf нь
дэд сүлжээ болон хостуудтай холбоотой өгөгдөл зарлалтаас
бүрдэх ба жишээн дээр тайлбарлавал илүү амархан байх болов уу:
option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}
Энэ тохируулга нь анхдагч хайлтын домэйн байдлаар
харилцагчид өгөх домэйныг заана. Энэ талаар дэлгэрэнгүй мэдээллийг
&man.resolv.conf.5; хэсгээс үзнэ үү.
Энэ тохируулга нь харилцагчийн хэрэглэх ёстой
DNS серверүүдийг таслалаар холбосон жагсаалт байна.
Хэрэглэгчид өгөх сүлжээний багийг заана.
Түрээслэлт (lease) хүчинтэй байх тийм тусгай хугацааг
харилцагч хүсэж болох юм. Хэрэв харилцагч хүсээгүй бол сервер энд заасан дуусах
хугацаагаар (секундээр) түрээс хийх болно.
Серверийн түрээслүүлэх хамгийн дээд хугацааг заана.
Харилцагч үүнээс урт хугацаагаар түрээслэх хүсэлт тавибал
хүсэлтийг хүлээж авах боловч зөвхөн max-lease-time секундын туршид
хүчинтэй байна.
Түрээслэх болон эргүүлж авахад DHCP сервер
DNS-г шинэчлэхийг оролдох шаардлагатай эсэхийг зааж өгнө.
ISC шийдлийн хувьд, энэ тохируулга заавал байх ёстой.
Харилцагчид оноох IP хаягуудын хүрээг заана. Энэ хүрээнд багтах
IP хаягуудыг харилцагчид өгөх болно.
Харилцагчид өгөх анхдагч гарцыг заана.
Хостын MAC хаягийг заана (ингэснээр DHCP сервер тухайн хостыг
хүсэлт тавихад таньж чадна).
Хостод тогтмол IP хаяг оноохыг заана.
Энд хостын нэрийг хэрэглэж болохыг тэмдэглэх хэрэгтэй.
DHCP сервер IP хаяг түрээслүүлэх
хариуг өгөхөөс өмнө хост нэрийг тайлах болно.
dhcpd.conf файлыг бичиж дууссаны дараа,
/etc/rc.conf файл дотор DHCP серверийг идэвхжүүлэх хэрэгтэй,
өөрөөр хэлбэл доорх мөрүүдийг нэмж бичих хэрэгтэй:
dhcpd_enable="YES"
dhcpd_ifaces="dc0"
dc0-г өөрийн тань DHCP сервер DHCP харилцагчдын хүсэлтийг
хүлээж авах ёстой интерфэйсийн нэрээр (эсвэл интерфэйсүүдийг зайгаар
тусгаарлан) сольж бичих хэрэгтэй.
Дараа нь, доорх тушаалыг өгөн серверийг ажиллуулах хэрэгтэй:
&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start
Серверийнхээ тохиргооны файлд өөрчлөлт оруулах бүрдээ,
SIGHUP дохиог dhcpd-д өгөх нь бусад дэмонуудын
хувьд тохиргоог дахин дууддаг шиг биш харин тохиргоог дахин
ачаалахгүй болохыг анхаарах хэрэгтэй. Процессийг зогсоохын
тулд SIGTERM дохиог өгөх хэрэгтэй ба дээрх тушаалыг өгөн дахин эхлүүлэх хэрэгтэй.
Файлууд
DHCP
тохиргооны файлууд
/usr/local/sbin/dhcpd
dhcpd нь статикаар холбогдсон байх ба
/usr/local/sbin дотор байрлана. Порттой хамт суусан
&man.dhcpd.8; заавар хуудаснаас dhcpd-н талаар дэлгэрэнгүй мэдээллийг
авна уу.
/usr/local/etc/dhcpd.conf
dhcpd нь /usr/local/etc/dhcpd.conf гэсэн тохиргооны
файлыг шаарддаг. Энэ файл дотор харилцагчид өгөх бүх мэдээллээс гадна
серверийн өөрийн үйл ажиллагаатай холбоотой мэдээлэл байх ёстой. Энэ
тохиргооны файлыг портоос суусан &man.dhcpd.conf.5; заавар хуудсанд тайлбарласан байгаа.
/var/db/dhcpd.leases
DHCP сервер нь түрээслүүлсэн хаягуудаа агуулсан
өгөгдлийн санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг.
Портоос суусан &man.dhcpd.leases.5; заавар хуудсанд илүү дэлгэрэнгүй
тайлбар бий.
/usr/local/sbin/dhcrelay
dhcrelay-г нэг DHCP сервер
харилцагчаас хүлээн авсан хүсэлтийг өөр сүлжээнд байгаа
нөгөө DHCP сервер рүү дамжуулдаг, нарийн бүтэцтэй орчинд хэрэглэнэ.
Хэрэв энэ функцыг ашиглах шаардлагатай бол,
net/isc-dhcp3-relay портыг суулгаарай.
Порттой хамт ирэх &man.dhcrelay.8; заавар хуудаснаас дэлгэрэнгүй
мэдээллийг авна уу.
Шерн
Лий
Хувь нэмрээ оруулсан
Том
Родес
Даниэл
Гэрзо
Лодойсамбын
Баянзул
Орчуулсан
Домэйн Нэрийн Систем (DNS)
Удиртгал
BIND
&os; анхдагч байдлаар DNS протоколын
хамгийн өргөн хэрэглэгддэг хэрэгжүүлэлт болох BIND (Berkeley
Internet Name Domain)-н аль нэг хувилбарыг агуулсан байдаг.
DNS нь нэрүүдийг IP хаягууд руу, мөн
эсрэгээр нь буулгахад хэрэглэгддэг протокол юм.
Жишээ нь, www.FreeBSD.org-г асуусан DNS асуулга явуулахад,
хариуд нь &os; Төсөлийн вэб серверийн IP хаяг ирэх бол,
ftp.FreeBSD.org-н хувьд асуулга явуулахад,
хариуд нь харгалзах FTP машины IP хаяг ирэх болно.
Яг үүнтэй адилаар эсрэгээр нь хийж болно. Ямар нэг IP-р асуулга
явуулахад түүний хост нэрийг олж болно. DNS хайлт хийхийн тулд
тухайн системд домэйн нэрийн сервер ажиллаж байх ёстой.
&os; нь одоо BIND9
DNS сервер програмын хамт ирдэг болсон.
Бидний суулгац нь файл системийн шинэчилсэн зохион байгуулалт,
автомат &man.chroot.8; тохиргоо зэрэг аюулгүй байдлыг дээд зэргээр
хангах функцүүдтэй ирдэг.
DNS
DNS бол Интернэт дээр тулгуурласан,
бүрэн эрхт root буюу эх сервер, Top Level Domain буюу Дээд Түвшний Домэйн (TLD)
сервер, болон домэйн тус бүрийн мэдээллийг агуулж байдаг
бусад жижиг нэрийн серверүүдээс бүтсэн нарийн төвөгтэй
систем юм.
BIND одоо
- Internet Software Consortium
+ Internet Systems Consortium
-н мэдэлд байдаг.
Нэр Томъёо
Энэ баримтыг ойлгохын тулд, DNS-тэй холбоотой
зарим нэр томъёог ойлгосон байх шаардлагатай.
resolver
reverse DNS
root zone
Нэр
Тайлбар
Forward буюу Ердийн DNS
Хост нэрийг IP хаяг руу буулгана.
Origin буюу Үүсэл
Тухайн бүсийн файлд хамрагдаж байгаа домэйныг заана.
- named, BIND, нэрийн сервер
+ named, BIND
&os;-н BIND нэрийн серверийг нэрлэх түгээмэл нэршил.
Resolver буюу Тайлагч
Машин, бүсийн мэдээллийн талаар нэрийн серверээс асуулга
явуулахын тулд ашигладаг системийн процесс.
Reverse буюу Урвуу DNS
- Ердийн DNS-н урвуу нь; IP
+ IP
хаягийг хост нэр рүү буулгана.
Root zone буюу Эх бүс
Интернэт бүсийн шатлалын эхлэл.
Файл системийн бүх файлууд эх санд харъяалагддаг шиг,
бүх бүсүүд эх бүсэд харъяалагдана.
Zone буюу Бүс
Нэг бүрэн эрхт газраар удирдуулж байгаа
домэйн, дэд домэйн, эсвэл DNS-н нэг хэсэг.
бүсүүд
жишээнүүд
Бүсүүдийн жишээ:
- . бол эх бүс.
+ . нь баримтад ихэвчлэн эх бүс гэж заагддаг.
org. бол эх бүсийн доорх Top Level Domain буюу
Дээд Түвшний Домэйн (TLD).
example.org. бол org. TLD-н
доорх бүс.
1.168.192.in-addr.arpa бол 192.168.1.*
-IP хүрээнд багтаж байгаа бүх IP
+IP хаягийн хүрээнд багтаж байгаа бүх IP
хаягуудыг агуулсан бүс.
Хост нэр зүүн тал руугаа явах тусам илүү тодорхой
болж байгааг та бүхэн анзаарсан байх. Жишээлбэл, example.org.
нь org.-с илүү тодорхой, харин org. нь эх бүсээс
илүү тодорхой байна. Хост нэрийн зохион байгуулалт нь
файл системийнхтэй төстэй: /dev директор нь
эх директорт харъяалагдана, гэх мэт.
Нэрийн Сервер ажиллуулах Шалтгаанууд
Нэрийн Серверүүд ихэвчлэн хоёр янз байна: authoritative буюу бүрэн эрхт нэрийн сервер,
ба caching буюу түр тогтоогч нэрийн сервер.
Бүрэн эрхт нэрийн сервер нь дараах тохиолдлуудад хэрэгтэй:
DNS мэдээллийг өөртөө агуулж, энэ мэдээллийг нийтэд зарлан,
ирсэн асуулгуудад бүрэн эрхтэйгээр хариулах хүсэлтэй үед.
Бүртгэлтэй домэйны хувьд, жишээлбэл example.org,
түүний дор орших хост нэрүүдэд IP хаяг оноож өгөх хэрэгтэй үед.
Бүлэг IP хаягуудад урвуу DNS мэдээлэл хэрэгтэй үед
(IP-с хост нэр рүү).
Нөөц эсвэл хоёрдогч нэрийн сервер, зарц гэж нэрлэнэ,
асуулгуудад хариулуулах шаардлагатай үед.
Түр тогтоогч нэрийн сервер дараах тохиолдлуудад хэрэгтэй:
Дотоод DNS сервер нь асуулгын хариуг
түр тогтоосноор гадаад нэрийн серверээс илүү хурдан хариу өгч
байгаа үед.
www.FreeBSD.org-р асуулга явуулсан үед, тайлагч ихэвчлэн
үйлчилгээ авдаг ISP-нхаа нэрийн серверээс асуугаад хариуг олж авна.
Дотоод, түр тогтоогч DNS сервер ажиллуулснаар,
асуулгыг гадаад интернэтээс зөвхөн ганц удаа явуулах бөгөөд,
хариуг тогтоож авна. Түүнээс хойших асуулгуудад түр тогтоогч нэрийн сервер
хариулах ба гадагшаа дахин асуулга явуулах шаардлага байхгүй.
Хэрхэн ажилладаг вэ?
- &os;-д BIND дэмонг ойлгомжтойгоор named гэж нэрлэнэ.
+ &os;-д BIND дэмонг named гэж нэрлэнэ.
Файл
Тайлбар
&man.named.8;
BIND дэмон.
&man.rndc.8;
Нэрийн серверийг хянах хэрэгсэл.
/etc/namedb
BIND-н бүсийн мэдээлэл хадгалагдаж байгаа сан.
/etc/namedb/named.conf
дэмоны тохиргооны файл.
Тухайн бүс сервер дээр хэрхэн тохируулагдсанаас хамаарч
энэ бүстэй хамааралтай файлууд /etc/namedb
директорын master,
slave, эсвэл dynamic
гэсэн дэд сангуудад байрлана. Эдгээр файлуудад
гадны асуулгад хариу болгон өгөх DNS мэдээллүүд
байрлана.
BIND-г ажиллуулах нь
+
BIND
ажиллуулах
BIND нь анхдагч байдлаар суучихсан ирдэг тул тохируулахад
хялбар байдаг.
named-н анхдагч тохиргоо нь
-&man.chroot.8; орчинд ажиллах, тайлагч нэрийн сервер байдлаар хийгдсэн байдаг.
+&man.chroot.8; орчинд ажиллах, тайлагч нэрийн сервер байдлаар хийгдсэн байдаг
+ бөгөөд локал IPv4 loopback хаяг (127.0.0.1) дээр ажиллахаар
+ хязгаарлагдсан байдаг.
Энэ тохиргоогоор серверийг ажиллуулахын тулд дараах тушаалыг өгөх хэрэгтэй:
- &prompt.root; /etc/rc.d/named forcestart
+ &prompt.root; /etc/rc.d/named onestart
named дэмонг систем ачаалах үед
ажиллуулдаг болгохын тулд /etc/rc.conf дотор дараах мөрүүдийг нэмэх
хэрэгтэй:
named_enable="YES"
Мэдээж /etc/namedb/named.conf файл дотор
өөр олон тохируулгууд байгаа боловч энэ баримтын мэдлээс халих
тул энд дурдсангүй. Хэрэв &os; дээрх named-н эхлэл
тохируулгуудын талаар сонирхож байгаа бол /etc/defaults/rc.conf
дотор байгаа named_* тугуудыг нэг ороод үзээрэй.
Мөн &man.rc.conf.5; заавар хуудаснаас тусламж авч болно.
хэсгийг уншихад илүүдэхгүй.
Тохиргооны файлууд
+
BIND
тохиргооны файлууд
named-н тохиргооны файлууд нь
/etc/namedb директор дотор байрлах ба
хэрэв хялбар тайлагчаас өөр түвшинд ажиллах хэрэгтэй бол
ажиллуулахаасаа өмнө тохиргооны файлд засвар хийх хэрэгтэй.
Ихэнх тохиргоог энэ сан дотор гүйцэтгэнэ.
-
- make-localhost-г хэрэглэх нь
-
- localhost-н хувьд эзэн бүсийг тохируулахын тулд
-/etc/namedb директорруу шилжээд дараах тушаалыг
-өгнө:
-
- &prompt.root; sh make-localhost
-
- Хэрэв бүх зүйл зүй ёсоор явагдвал,
-master дэд директор дотор шинэ файл үүссэн байх ёстой.
-Файлууд нь дотоод домэйны хувьд localhost.rev,
-IPv6 тохиргооны хувьд localhost-v6.rev гэсэн нэртэй байна.
-Анхдагч тохиргооны файлын хувьд named.conf файл дотор
-шаардлагатай мэдээллүүд байрлана.
-
-
/etc/namedb/named.conf
// $FreeBSD$
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
+ // Relative to the chroot directory, if any
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
-// In addition to the "forwarders" clause, you can force your name
-// server to never initiate queries of its own, but always ask its
-// forwarders only, by enabling the following line:
-//
-// forward only;
+// These zones are already covered by the empty zones listed below.
+// If you remove the related empty zones below, comment these lines out.
+ disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
+ disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
+ disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
-*/
+*/
+
+// If the 'forwarders' clause is not empty the default is to 'forward first'
+// which will fall back to sending a query from your local server if the name
+// servers in 'forwarders' do not have the answer. Alternatively you can
+// force your name server to never initiate queries of its own by enabling the
+// following line:
+// forward only;
+
+// If you wish to have forwarding configured automatically based on
+// the entries in /etc/resolv.conf, uncomment the following line and
+// set named_auto_forward=yes in /etc/rc.conf. You can also enable
+// named_auto_forward_only (the effect of which is described above).
+// include "/etc/namedb/auto_forward.conf";
Тайлбар дээр хэлсэнчлэн
дээд гарцын түр тогтоогчоос хүртэхийн тулд
forwarders-г идэвхжүүлж болох юм.
Энгийн үед, нэрийн сервер нь хариултыг олтлоо давталттай байдлаар
хэд хэдэн нэрийн серверүүдээр дамжин асууна.
Энэ тохируулгыг идэвхжүүлснээр, дээд гарцынхаа нэрийн серверээс
(эсвэл зааж өгсөн нэрийн сервер) хамгийн түрүүнд асууж, энэ серверийн
түр санах ойд байгаа мэдээллээс хүртэхийг эрмэлзэнэ.
Хэрэв дээд гарцын нэрийн сервер нь олон асуулгад хариулдаг, хурдан үйлчилдэг
сервер байвал дээрх тохируулгыг идэвхжүүлсний үр ашиг гарна.
127.0.0.1 энд ажиллахгүй. Энэ
IP хаягийг өөрийн дээд гарцын нэрийн серверээр сольж бичнэ үү.
/*
- * If there is a firewall between you and nameservers you want
- * to talk to, you might need to uncomment the query-source
- * directive below. Previous versions of BIND always asked
- * questions using port 53, but BIND versions 8 and later
- * use a pseudo-random unprivileged UDP port by default.
- */
- // query-source address * port 53;
+ Modern versions of BIND use a random UDP port for each outgoing
+ query by default in order to dramatically reduce the possibility
+ of cache poisoning. All users are strongly encouraged to utilize
+ this feature, and to configure their firewalls to accommodate it.
+
+ AS A LAST RESORT in order to get around a restrictive firewall
+ policy you can try enabling the option below. Use of this option
+ will significantly reduce your ability to withstand cache poisoning
+ attacks, and should be avoided if at all possible.
+
+ Replace NNNNN in the example with a number between 49160 and 65530.
+ */
+ // query-source address * port NNNNN;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
+// The traditional root hints mechanism. Use this, OR the slave zones below.
+zone "." { type hint; file "named.root"; };
+
+/* Slaving the following zones from the root name servers has some
+ significant advantages:
+ 1. Faster local resolution for your users
+ 2. No spurious traffic will be sent from your network to the roots
+ 3. Greater resilience to any potential root server failure/DDoS
+
+ On the other hand, this method requires more monitoring than the
+ hints file to be sure that an unexpected failure mode has not
+ incapacitated your server. Name servers that are serving a lot
+ of clients will benefit more from this approach than individual
+ hosts. Use with caution.
+
+ To use this mechanism, uncomment the entries below, and comment
+ the hint zone above.
+*/
+/*
zone "." {
- type hint;
- file "named.root";
+ type slave;
+ file "slave/root.slave";
+ masters {
+ 192.5.5.241; // F.ROOT-SERVERS.NET.
+ };
+ notify no;
};
-
-zone "0.0.127.IN-ADDR.ARPA" {
- type master;
- file "master/localhost.rev";
+zone "arpa" {
+ type slave;
+ file "slave/arpa.slave";
+ masters {
+ 192.5.5.241; // F.ROOT-SERVERS.NET.
+ };
+ notify no;
};
-
-// RFC 3152
-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
- type master;
- file "master/localhost-v6.rev";
+zone "in-addr.arpa" {
+ type slave;
+ file "slave/in-addr.arpa.slave";
+ masters {
+ 192.5.5.241; // F.ROOT-SERVERS.NET.
+ };
+ notify no;
};
+*/
+
+/* Serving the following zones locally will prevent any queries
+ for these zones leaving your network and going to the root
+ name servers. This has two significant advantages:
+ 1. Faster local resolution for your users
+ 2. No spurious traffic will be sent from your network to the roots
+*/
+// RFC 1912
+zone "localhost" { type master; file "master/localhost-forward.db"; };
+zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
+zone "255.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// RFC 1912-style zone for IPv6 localhost address
+zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; };
+
+// "This" Network (RFCs 1912 and 3330)
+zone "0.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// Private Use Networks (RFC 1918)
+zone "10.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "25.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "26.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "27.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "28.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "29.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "30.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "31.172.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "168.192.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// Link-local/APIPA (RFCs 3330 and 3927)
+zone "254.169.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// TEST-NET for Documentation (RFC 3330)
+zone "2.0.192.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// Router Benchmark Testing (RFC 3330)
+zone "18.198.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "19.198.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// IANA Reserved - Old Class E Space
+zone "240.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "241.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "242.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "243.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "244.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "245.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "246.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "247.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "248.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "249.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "250.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "251.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "252.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "253.in-addr.arpa" { type master; file "master/empty.db"; };
+zone "254.in-addr.arpa" { type master; file "master/empty.db"; };
+
+// IPv6 Unassigned Addresses (RFC 4291)
+zone "1.ip6.arpa" { type master; file "master/empty.db"; };
+zone "3.ip6.arpa" { type master; file "master/empty.db"; };
+zone "4.ip6.arpa" { type master; file "master/empty.db"; };
+zone "5.ip6.arpa" { type master; file "master/empty.db"; };
+zone "6.ip6.arpa" { type master; file "master/empty.db"; };
+zone "7.ip6.arpa" { type master; file "master/empty.db"; };
+zone "8.ip6.arpa" { type master; file "master/empty.db"; };
+zone "9.ip6.arpa" { type master; file "master/empty.db"; };
+zone "a.ip6.arpa" { type master; file "master/empty.db"; };
+zone "b.ip6.arpa" { type master; file "master/empty.db"; };
+zone "c.ip6.arpa" { type master; file "master/empty.db"; };
+zone "d.ip6.arpa" { type master; file "master/empty.db"; };
+zone "e.ip6.arpa" { type master; file "master/empty.db"; };
+zone "0.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "1.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "2.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "3.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "4.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "5.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "6.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "7.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "8.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "9.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "a.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "b.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "0.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "1.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "2.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "3.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "4.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "5.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "6.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "7.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+
+// IPv6 ULA (RFC 4193)
+zone "c.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "d.f.ip6.arpa" { type master; file "master/empty.db"; };
+
+// IPv6 Link Local (RFC 4291)
+zone "8.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "9.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "a.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "b.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+
+// IPv6 Deprecated Site-Local Addresses (RFC 3879)
+zone "c.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "d.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "e.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+zone "f.e.f.ip6.arpa" { type master; file "master/empty.db"; };
+
+// IP6.INT is Deprecated (RFC 4159)
+zone "ip6.int" { type master; file "master/empty.db"; };
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
-// primary.
+// master name server.
//
-// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
-// (This is named after the first bytes of the IP address, in reverse
-// order, with ".IN-ADDR.ARPA" appended.)
+// Do not forget to include the reverse lookup zone!
+// This is named after the first bytes of the IP address, in reverse
+// order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
//
-// Before starting to set up a primary zone, make sure you fully
-// understand how DNS and BIND works. There are sometimes
-// non-obvious pitfalls. Setting up a slave zone is simpler.
+// Before starting to set up a master zone, make sure you fully
+// understand how DNS and BIND work. There are sometimes
+// non-obvious pitfalls. Setting up a slave zone is usually simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
-/* An example master zone
-zone "example.net" {
- type master;
- file "master/example.net";
-};
-*/
-
/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
-/* Examples of forward and reverse slave zones
-zone "example.com" {
- type slave;
- file "slave/example.com";
- masters {
- 192.168.1.1;
- };
-};
+/* Example of a slave reverse zone
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/
named.conf доторх эдгээр жишээнүүд нь
ердийн болон урвуу бүсийн зарц бүртгэлүүд болно.
Шинэ бүс нэмэхдээ, named.conf файл дотор шинэ бүртгэл
оруулах хэрэгтэй.
Жишээ нь, example.org домэйны хувьд
хамгийн хялбар бүртгэл дараах байдалтай байна:
zone "example.org" {
type master;
file "master/example.org";
};
Энэ бүс нь эзэн бүс болохыг илэрхийллээс харж болно.
Мөн бүсийн мэдээллийг /etc/namedb/master/example.org файл дотор агуулж байгааг
илэрхийллээс харж болно.
zone "example.org" {
type slave;
file "slave/example.org";
};
Зарц бүсийн хувьд, тухайн бүсийн хувьд бүсийн мэдээлэл
эзэн нэрийн серверээс зөөгдөж ирэх ба зааж өгсөн файлд хадгалагдана.
Эзэн сервер унтарсан эсвэл холбоо тогтоох боломжгүй болбол,
зарц нэрийн серверт бүсийн мэдээлэл байгаа тул асуулгуудад хариулах
чадвартай байна.
Бүсийн Файлууд
BIND
бүсийн файлууд
example.org домэйны хувьд жишээ эзэн бүсийн файлыг
дор үзүүлэв (/etc/namedb/master/example.org файл):
- $TTL 3600 ; 1 hour
+ $TTL 3600 ; 1 hour default TTL
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
- 86400 ; Minimum TTL
+ 300 ; Negative Reponse TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
; Aliases
-www IN CNAME @
+www IN CNAME example.org.
.
тэмдэгтээр төгссөн хост нэрүүд нь жинхэнэ хост нэрүүд бөгөөд
.
тэмдэгтээр төгсөөгүй нэрүүдэд үүсэл залгагдахыг анхаарна уу.
-Жишээлбэл, www нь www.үүсэл-руу хөрвүүлэгдэх болно.
-Манай жишээн дээр бол, бидний үүсэл example.org. тул www нь
-www.example.org. болж хөрвүүлэгдэнэ.
+Жишээлбэл, ns1 нь ns1.example.org.-руу
+хөрвүүлэгдэх болно.
-
- Бүсийн файл дараах хэлбэртэй байна:
-
+ Бүсийн файл дараах хэлбэртэй байна:
recordname IN recordtype value
DNS
бичлэгүүд
-
- Хамгийн өргөн хэрэглэгддэг DNS бичлэгүүд:
-
+ Хамгийн өргөн хэрэглэгддэг DNS бичлэгүүд:
SOA
start of zone authority буюу бүсийн бүрэн эрхт мэдээллийн эхлэл
NS
бүрэн эрхт нэрийн сервер
A
хостын хаяг
CNAME
хуурамч дүрд өгөх хүлээн зөвшөөрөгдсөн нэр
MX
захидал солилцогч
PTR
домэйн нэрийг заагч (урвуу DNS-д хэрэглэнэ)
-
-example.org. IN SOA ns1.example.org. admin.example.org. (
+ example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
- 86400 ) ; Minimum TTL of 1 day
-
-
+ 300 ) ; Negative Reponse TTL
example.org.
- домэйн нэр, мөн энэ бүсийн файлын хувьд үүсэл болно.
+
+ домэйн нэр, мөн энэ бүсийн файлын хувьд үүсэл
+ болно.
+
ns1.example.org.
- энэ бүсийн гол/бүрэн эрхт нэрийн сервер.
+
+ энэ бүсийн гол/бүрэн эрхт нэрийн
+ сервер.
+
admin.example.org.
- энэ бүсийг хариуцагч хүн, @
тэмдэгтийг нь орлуулсан
-цахим захидлын хаяг. (admin@example.org нь admin.example.org болно)
+
+ энэ бүсийг хариуцагч хүн, @
тэмдэгтийг нь
+ орлуулсан цахим захидлын хаяг.
+ (admin@example.org нь admin.example.org болно)
2006051501
- Файлын сериал дугаар. Бүсийн файлд өөрчлөлт оруулах болгонд
+
+ Файлын сериал дугаар. Бүсийн файлд өөрчлөлт оруулах болгонд
энэ дугаарыг нэмэгдүүлэх шаардлагатай. Одоо цагт ихэнх админууд энэ сериал дугаарыг
yyyymmddrr хэлбэрээр хэрэглэх болсон. 2006051501 гэдэг нь
хамгийн сүүлд 05/15/2006-нд засвар хийсэн, хамгийн сүүлийн 01 гэдэг нь
энэ өдөр хийгдсэн хамгийн анхны засвар гэдгийг илтгэнэ. Энэ сериал дугаар
нь зарц серверүүдэд бүсийн мэдээлэл өөрчлөгдсөн талаар мэдээлэл өгдөг тул их чухал зүйл
байгаа юм.
-
- IN NS ns1.example.org.
+ IN NS ns1.example.org.
-
- Энэ бол NS бичлэг. Тухайн бүсийн хувьд бүрэн эрхт хариултыг
-өгч чадах сервер бүрийн хувьд энэ бичлэг байх ёстой.
+ Энэ бол NS бичлэг. Тухайн бүсийн хувьд бүрэн эрхт хариултыг
+ өгч чадах сервер бүрийн хувьд энэ бичлэг байх ёстой.
-
-localhost IN A 127.0.0.1
+ localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
-
- A бичлэг нь машины нэрийг заана. Дээр үзүүлсэнчлэн,
-ns1.example.org нь 192.168.1.2-руу буулгагдана.
+ A бичлэг нь машины нэрийг заана. Дээр үзүүлсэнчлэн,
+ ns1.example.org нь 192.168.1.2-руу буулгагдана.
-
- IN A 192.168.1.1
+ IN A 192.168.1.1
Энэ мөр нь 192.168.1.1 гэсэн IP хаягийг
үүсэлд оноож байна, бидний жишээн дээр example.org.
-
-www IN CNAME @
+ www IN CNAME @
-
- Хүлээн зөвшөөрөгдсөн нэрийн бичлэг нь машинд хуурамч дүр
+ Хүлээн зөвшөөрөгдсөн нэрийн бичлэг нь машинд хуурамч дүр
өгөхөд хэрэглэгдэнэ. Энэ жишээн дээр, www нь
example.org (192.168.1.1) гэсэн домэйн нэртэй
-эзэн
машины хуурамч дүрийн нэр юм. CNAME-г хуурамч хост нэр өгөхөд,
-эсвэл олон машины дунд тойрч хэрэглэгдэх нэг хост нэр өгөхөд хэрэглэнэ.
+master
машины хуурамч дүрийн нэр юм. CNAME-г тухайн хостын нэрийн хувьд
+өөр төрлийн бичлэгтэй хэзээ ч цуг хэрэглэж болохгүй.
MX бичлэг
-
- IN MX 10 mail.example.org.
+ IN MX 10 mail.example.org.
-
- MX бичлэг нь аль захидлын серверүүд тухайн бүсийн захидлыг
+ MX бичлэг нь аль захидлын серверүүд тухайн бүсийн захидлыг
хүлээж авах үүрэгтэй болохыг зааж өгнө. mail.example.org
нь захидлын серверийн хост нэр бөгөөд 10 нь энэ захидлын серверийн
зэрэглэлийг зааж байна.
-
- Нэг бүсэд 10, 20 гэх мэт ялгаатай зэрэглэлтэй
+ Нэг бүсэд 10, 20 гэх мэт ялгаатай зэрэглэлтэй
хэд хэдэн захидлын сервер байж болно. example.org
домэйн руу захидал явуулах гэж байгаа сервер эхлээд
хамгийн өндөр зэрэглэлтэй MX сервертэй (хамгийн бага зэрэглэлийн дугаартай), дараа нь дараагийн хамгийн өндөр зэрэглэлтэй
сервертэй гэх мэтчилэн захидлыг явуулж чадтал дарааллаар нь холбоо тогтооно.
-
- in-addr.arpa бүсийн файл (урвуу DNS) нь ижил хэлбэртэй байна. Ганцхан ялгаа нь
+ in-addr.arpa бүсийн файл (урвуу DNS) нь ижил хэлбэртэй байна. Ганцхан ялгаа нь
A болон CNAME бичлэгийн оронд PTR бичлэгийг хэрэглэнэ.
$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
- 3600 ) ; Minimum
+ 300 ) ; Negative Reponse TTL
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.
Энэ файлд, жишээ домэйны IP-с хост нэр рүү буулгасан
зохих шаардлагатай буулгалтуудыг үзүүлсэн байна.
+
+ PTR бичлэгийн баруун талын бүх нэрс төгссөн байх
+ ёстой (өөрөөр хэлбэл .
-ээр төгссөн
+ байна).
Түр тогтоогч Нэрийн Сервер (Caching Name Server)
BIND
түр тогтоогч нэрийн сервер
Түр тогтоогч нэрийн сервер гэдэг нь
-ямар ч бүсийн хувьд бүрэн эрхт биш нэрийн серверийг хэлнэ.
+рекурсив хүсэлтэд хариу өгөх гол үүрэгтэй нэрийн серверийг хэлнэ.
Ийм төрлийн сервер нь зөвхөн асуулга явуулах бөгөөд
-хариултыг дараа хэрэглэхээр тогтоож авдаг. Ийм нэрийн серверийг
-зохион байгуулахын тулд, тохиргоог ердийн нэрийн сервертэй адилаар
-хийх боловч, ямар ч бүсийн мэдээллийг оруулахгүй байхаар хийнэ.
+хариултыг дараа хэрэглэхээр тогтоож авдаг.
Аюулгүй байдал
Хэдийгээр BIND нь хамгийн өргөн хэрэглэгддэг DNS сервер боловч,
аюулгүй байдалтай холбоотой асуудлууд байнга тулгардаг.
Гадны халдлагад өртөж болзошгүй аюулгүй байдлын цоорхой заримдаа
олддог.
Хэдийгээр &os; named-г автоматаар &man.chroot.8; орчинд
оруулдаг боловч; DNS халдлагад ашиглаж болохуйц
хэд хэдэн механизмууд байсаар байна.
CERT-с гаргадаг аюулгүй байдлын
санамжуудыг уншихыг зөвлөж байна. Мөн &a.security-notifications;-д бүртгүүлж,
шинээр гарч байгаа Интернэт болон &os;-н аюулгүй байдлын асуудлуудын
талаар мэдээлэлтэй байхыг зөвлөе.
Хэрэв ямар нэгэн асуудал тулгарвал,
эхийг байнга шинэчилж, named-г шинээр бүтээх нь алдаа болохгүй.
Гүнзгийрүүлэн унших
BIND/named заавар хуудсууд:
&man.rndc.8; &man.named.8; &man.named.conf.5;
ISC BIND-н Албан ёсны Хуудас
-
-
-
- ISC BIND-н Албан ёсны Хэлэлцүүлэг
+ url="https://www.isc.org/software/bind">ISC BIND-н Албан ёсны Хуудас
- BIND FAQ
+ url="https://www.isc.org/software/guild">ISC BIND-н Албан ёсны Хэлэлцүүлэг
O'Reilly
"DNS ба BIND" 5 дахь Хэвлэлт
RFC1034
+ url="http://www.rfc-editor.org/rfc/rfc1034.txt">RFC1034
- Домэйн Нэрүүд - Зарчмууд болон Боломжууд
RFC1035
+ url="http://www.rfc-editor.org/rfc/rfc1035.txt">RFC1035
- Домэйн Нэрүүд - Хэрэгжүүлэлт болон Үзүүлэлтүүд
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Apache HTTP Сервер
вэб серверүүд
зохион байгуулах
Apache
Удиртгал
Дэлхийн хамгийн их ачаалалтай ажилладаг
зарим вэб сайтууд &os; дээр ажилладаг. Интернэтэд ажиллаж байгаа
вэб серверүүдийн олонхи нь Apache HTTP Серверийг ашиглаж
байна. Apache програм хангамжийн багц таны FreeBSD суулгах дискэнд
орсон байгаа. Хэрэв та &os;-г анх суулгахдаа Apache-г хамт
суулгаагүй бол www/apache13 эсвэл www/apache20
портоос суулгаж болно.
Apache нэгэнт амжилттай суусан бол түүнийг тохируулах
шаардлагатай.
Apache HTTP Server-н 1.3.X хувилбар нь
&os;-д хамгийн өргөн хэрэглэгддэг тул бид энэ хэсэгт энэ хувилбарыг үзэх болно.
Apache 2.X-д олон шинэ технологи нэвтэрсэн боловч
бид энэ талаар энд үзэхгүй. Apache 2.X-н талаар
дэлгэрэнгүй мэдээллийг хаягаар орж үзнэ үү.
Тохиргоо
Apache
тохиргооны файл
&os; дээрх Apache HTTP Серверийн гол тохиргооны файл
бол /usr/local/etc/apache/httpd.conf юм. Энэ файлд,
&unix;-н текст тохиргооны файлын нэгэн адил тайлбар мөрүүдийн өмнө
# тэмдэгтийг хэрэглэдэг. Бүх боломжит тохируулгуудын
талаар дэлгэрүүлж тайлбарлах нь энэ номын хүрээнээс халих тул,
хамгийн их өөрчлөлт хийгддэг директивүүдийг энд авч үзье.
ServerRoot "/usr/local"
Энэ директив Apache суулгацын
анхдагч директор шатлалын эхийг зааж өгнө. Хоёртын файлууд
серверийн эх директорын
bin ба sbin дэд директоруудад,
тохиргооны файлууд etc/apache дэд директорт байрлана.
ServerAdmin you@your.address
Сервертэй холбоотой асуудлуудын талаар
илгээх цахим захидлын хаягийг заана. Энэ хаяг алдааны хуудсууд гэх зэрэг
сервер талаас автоматаар үүсгэгддэг зарим хуудсууд дээр
бичигдэх болно.
ServerName www.example.com
ServerName нь хост дээр тохируулагдсан хост нэрээс
өөр нэрийг сервертээ өгөх боломжийг танд олгоно (өөрөөр хэлбэл, хостын жинхэнэ
хост нэрийн оронд www-г хэрэглэх). Энэ нэрээр таны сервер харилцагч
нартай харилцах болно.
DocumentRoot "/usr/local/www/data"
DocumentRoot: Энэ директорт байгаа вэб баримтуудыг
харилцагч нарт үзүүлэх болно. Анхдагч байдлаар, бүх хүсэлтүүд энэ
директорт өгөгдөнө. Гэвч симбол холбоосууд болон хуурамч дүрүүдийг
ашиглан өөр газар руу зааж өгч болно.
Apache-н тохиргооны файлд ямар нэг
өөрчлөлт хийхээсээ өмнө нөөц хуулбарыг авч үлдэхээ мартуузай.
Тохиргоо хийж дууссан бол одоо Apache-г ажиллуулах
хэрэгтэй.
Apache-г ажиллуулах нь
Apache
эхлүүлэх ба зогсоох
Бусад олон сүлжээний орчны серверүүд
inetd супер серверээс ажилладаг бол,
Apache тэгдэггүй. Харилцагч вэб хөтчүүдээс
ирэх HTTP хүсэлтүүдэд хариулахдаа илүү өндөр үзүүлэлттэй ажиллуулахын тулд
түүнийг бие даан ажилладаг байхаар тохируулсан байдаг.
Эхлүүлэх, зогсоох болон дахин эхлүүлэх зэрэг үйлдлийг
аль болох хялбар болгохын тулд бүрхүүлийн скрипт хялбаршуулагч
хамт ирдэг. Apache-г анх удаа эхлүүлэхийн тулд, дараах
тушаалыг өгнө:
&prompt.root; /usr/local/sbin/apachectl start
Хүссэн үедээ серверийг дараах тушаалаар зогсооно:
&prompt.root; /usr/local/sbin/apachectl stop
Тохиргооны файлд өөрчлөлт оруулсны дараа,
серверийг дахин эхлүүлэх шаардлагатай:
&prompt.root; /usr/local/sbin/apachectl restart
Тогтсон холболтуудыг таслалгүйгээр Apache-г
дахин эхлүүлэхийн тулд дараах тушаалыг өгнө:
&prompt.root; /usr/local/sbin/apachectl graceful
Нэмэлт мэдээллийг &man.apachectl.8; заавар хуудаснаас авна уу.
Систем ачаалах үед Apache-г эхлүүлэхийн тулд
дараах мөрүүдийг /etc/rc.conf файлд нэмж бичнэ:
apache_enable="YES"
буюу эсвэл Apache 2.2-ийн хувьд:
apache22_enable="YES"
Хэрэв систем ачаалах үед эхэлдэг Apache
httpd програмд нэмэлт тушаалын мөрний тохируулгуудыг
оруулах хүсэлтэй бол, дараах мөрийг мөн rc.conf файлд
нэмэх хэрэгтэй:
apache_flags=""
Одоо таны вэб сервер ажиллаж байна.
Та өөрийн вэб сайтыг вэб хөтөч дээрээ http://localhost/
хаягийг оруулан харж болно. Энд гарах анхдагч вэб хуудас бол
/usr/local/www/data/index.html юм.
Давхар байршуулалт
Apache нь хоёр төрлийн давхар
байршуулах үйлчилгээг дэмждэг. Эхнийх нь
нэр дээр үндэслэсэн давхар байршуулалт юм.
Нэр дээр үндэслэсэн давхар байршуулалт дээр
хост нэрийг ялгаж мэдэхдээ харилцагчийн HTTP/1.1 толгойн хэсгийг ашигладаг.
Иим байдлаар олон өөр домэйнууд нэг IP хаягийг хуваан хэрэглэх
боломжтой болдог.
Apache дээр, нэр дээр үндэслэсэн
давхар байршуулалтыг хэрэглэхийн тулд
доор дурдсантай төстэй бүртгэлийг httpd.conf
файл дотор нэмж бичих хэрэгтэй:
NameVirtualHost *
Таны вэб серверийн нэр www.domain.tld
бөгөөд www.someotherdomain.tld нэртэй домэйныг
давхар байршуулах хүсэлтэй бол, та дараах бүртгэлийг
httpd.conf файлд нэмэх хэрэгтэй болно:
<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
</VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>
Дээрх хаягуудын оронд хэрэгтэй хаягуудыг, замуудын оронд
баримтууд байгаа зохих замуудыг сольж бичнэ үү.
Давхар хостуудыг зохион байгуулах талаар
дэлгэрэнгүй мэдээллийг Apache-н албан ёсны баримтжуулалт:
-с олж үзнэ үү.
Apache Модулиуд
Apache
модулиуд
Үндсэн серверийн үүрэг функцыг сайжруулахын
тулд бүтээгдсэн Apache-н олон модулиуд байдаг.
FreeBSD Портуудын Цуглуулга нь Apache-г түүний
өргөн хэрэглэгддэг зарим модулиудын хамт хялбар суулгах
боломжийг олгодог.
mod_ssl
вэб серверүүд
аюулгүй
SSL
криптограф
mod_ssl модуль нь Secure Sockets Layer (SSL v2/v3) ба
Transport Layer Security (TLS v1) протоколоор дамжуулан өндөр
нууцлалыг хангахын тулд OpenSSL санг ашигладаг.
Энэ модуль нь батламж олгодог итгэмжлэгдсэн байгууллагаас
батламж авахын тулд шаардлагатай бүх зүйлсээр хангадаг тул
та үүнийг ашиглан &os; дээр аюулгүй вэб сервер ажиллуулж чадна.
Хэрэв та Apache-г суулгаж амжаагүй бол,
mod_ssl модулийг агуулдаг
Apache-н 1.3.X хувилбарыг www/apache13-modssl
портоос суулгаж болох юм.
Apache 2.X-н хувьд SSL дэмжлэгийг www/apache22
портоос авч болно. SSL дэмжлэг автоматаар идэвхжсэн байдаг.
Хэлний холболтууд
Ихэнх гол скрипт хэлнүүдэд зориулсан Apache-ийн
модулиуд байдаг. Эдгээр модулиуд нь
Apache-ийн модулиудыг
бүхэлд нь скрипт хэл дээр бичих боломжийг ихэвчлэн
бүрдүүлдэг. Эдгээр нь бас гадаад тайлбарлагчийг эхлүүлэх нэмэлт
зардал болон димамик вэб сайтуудын хувьд байдаг эхлүүлэх
хугацааны алдагдлыг тойрон гарах, серверт багтааж хийгдсэн
байнгын тайлбарлагч болон дараагийн хэсэгт тайлбарлагдсан
шигээр ихэвчлэн ашиглагддаг.
Динамик вэб сайтууд
web servers
dynamic
Сүүлийн 10 жилд, өөрийн ашиг орлогыг нэмэгдүүлэх,
хүмүүст хүрэх зорилгоор илүү олон компаниуд
бизнесээ Интернэтээр явуулах болжээ. Энэ нь
динамик агуулгатай вэб хуудсууд төрөн гарах
хэрэгцээ шаардлагыг улам нэмэгдүүлсэн. µsoft; гэх мэт зарим компаниуд
ч өөрийн бүтээгдэхүүнүүдэд тэдгээрээс оруулах болсон хэдий ч,
нээлттэй эхийн нэгдэл энэ асуудалд хариу өгсөн юм. Динамик вэб агуулгыг
бий болгох орчин үеийн боломжууд бол Django, Ruby on Rails,
mod_perl болон
mod_php юм.
Django
Python
Django
Django нь өндөр ажиллагаатай, гоёмсог вэб програмыг
хурдан бичих боломжийг хөгжүүлэгчдэд олгохоор хийгдсэн,
BSD лицензтэй тогтолцоо юм. Энэ нь өгөгдлийн төрлүүд
Python обьект хэлбэрээр хөгжүүлэгддэг байхаар болгосон
обьектийн харилцааг оноогчтой бөгөөд тэдгээр обьектуудад зориулсан
хөгжүүлэгчдэд SQL бичих шаардлагагүй болгож өгдөг, баялаг
динамик өгөгдлийн сангийн хандалтын API-тай юм. Энэ нь бас
програмын логикийг HTML үзүүлбэрээс тусгаарлах боломжийг
бүрдүүлэх нэмэлт загварын системтэй байдаг.
Django нь mod_python,
Apache, болон таны сонгосон SQL өгөгдлийн
сангийн хөдөлгүүрээс хамаардаг. FreeBSD порт нь эдгээр бүх
хамаарлуудыг тохирсон сонголтуудтай нь танд суулгаж өгөх болно.
Django-г Apache2, mod_python3, болон PostgreSQL-тэй суулгах нь
&prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL
Django болон бусад хамаарлууд суулгагдсаны дараа та
Django төслийн санг үүсгэх хэрэгтэй бөгөөд өөрийн сайт дээрх
тухайн URL дээр өөрийн програмыг дуудахын тулд суулгагдсан
Python тайлбарлагчийг ашиглахаар болгож Apache-г тохируулах хэрэгтэй.
Django/mod_python-д зориулсан Apache-ийн тохиргоо
Та өөрийн вэб програм руу тодорхой URL-уудад зориулсан
хүсэлтүүдийг дамжуулахаар Apache-г тохируулахын тулд
apache-ийн httpd.conf файлд мөр
нэмэх шаардлагатай:
<Location "/">
SetHandler python-program
PythonPath "['/dir/to/your/django/packages/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
</Location>
Ruby on Rails
Ruby on Rails
Ruby on Rails нь бүрэн гүйцэд хөгжүүлэлтийн стекийн
боломжийг олгодог бөгөөд вэб хөгжүүлэгчдийг хүчирхэг
програмыг хурдан шуурхай, илүү үр бүтээлтэй бичдэг байхаар
оновчлогдсон, нээлттэй эхийн вэб тогтолцоо юм. Үүнийг портын
системээс хялбараар суулгаж болно.
&prompt.root; cd /usr/ports/www/rubygem-rails; make all install clean
mod_perl
mod_perl
Perl
Apache/Perl нэгтгэх төсөл
Perl програмчлалын хэл ба Apache HTTP Серверийн
бүх хүч чадлыг нэгтгэсэн юм. mod_perl модулийн
тусламжтай Apache модулиудыг тэр чигээр нь
Perl дээр бичих боломжтой. Дээр нь, серверт суулгасан
шургуу хөрвүүлэгч, гадны хөрвүүлэгч ашиглах илүү ажил болон
Perl эхлүүлэх хугацааны алдагдлаас зайлсхийж чадсан юм.
mod_perl-г хэд хэдэн янзаар хэрэглэж болно.
mod_perl-г хэрэглэж эхлэхээс өмнө
mod_perl 1.0 зөвхөн Apache 1.3-тай ажилладаг,
mod_perl 2.0 зөвхөн Apache 2.X-тэй ажилладаг гэдгийг
санаарай. mod_perl 1.0-г www/mod_perl портоос,
түүний статикаар эмхэтгэсэн хувилбарыг www/apache13-modperl
портоос суулгаж болно. mod_perl 2.0-г
www/mod_perl2 портоос суулгаж болно.
Том
Рөүдс
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
mod_php
mod_php
PHP
PHP буюу PHP:Hypertext Preprocessor
бол
вэб хөгжүүлэлтэд тусгайлан тохируулсан, энгийн хэрэглээний
скрипт хэл юм. HTML дотор суулгах боломжтой түүний
синтакс C, &java;, ба Perl-с гаралтай. Энэ нь вэб хөгжүүлэгчдэд
динамикаар үүсгэгдэх вэб хуудсыг хурдан бичих боломжтой болгох
үүднээс тэгсэн хэрэг.
Apache вэб серверийг
PHP5-г дэмждэг болгохын тулд, lang/php5
портыг суулгаж эхлэх хэрэгтэй.
Хэрэв lang/php5 портыг
анх удаа суулгаж байгаа бол, боломжит
ТОХИРУУЛГУУД автоматаар дэлгэцэн дээр гарч ирнэ.
Хэрэв цэс гарч ирэхгүй бол, өөрөөр хэлбэл
lang/php5 портыг өмнө нь хэзээ нэгэн цагт
суулгаж байсан бол, тохируулгуудын харилцах цонхыг гаргаж ирэхийн тулд
дараах тушаалыг:
&prompt.root; make config
порт директор дотор өгөх хэрэгтэй.
Тохируулгуудын харилцах цонхонд,
mod_php5-г Apache-н
ачаалах боломжтой модуль байдлаар бүтээхийн тулд
APACHE тохируулгыг идэвхжүүлнэ.
Олон сайтууд PHP4-г янз бүрийн шалтгааны улмаас
(өөрөөр хэлбэл, нийцтэй байдал эсвэл аль хэдийн үйлчилгээнд гаргачихсан
вэб програмууд) ашигласаар байна. Хэрэв
mod_php4-г mod_php5-н оронд ашиглах
шаардлагатай бол, lang/php4 портыг ашиглаарай.
lang/php4 порт нь lang/php5 портод
байдаг тохиргооны болон бүтээх үеийн олон тохируулгуудыг дэмждэг.
Энэ хэсэг код динамик PHP програмыг дэмждэг болгоход
шаардлагатай модулиудыг суулгаж тохируулах болно. Доорх мөрүүд
/usr/local/etc/apache/httpd.conf файл дотор нэмэгдсэн эсэхийг шалгаарай:
LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
Үүний дараа, PHP модулийг ачаалахын тулд,
дараах тушаалыг өгч серверийг дахин ачаалах хэрэгтэй:
&prompt.root; apachectl graceful
Дараа, PHP-н хувилбарыг дээшлүүлэх үедээ,
make config тушаалыг өгөх шаардлагагүй;
идэвхжүүлсэн ТОХИРУУЛГУУД &os; Портуудын
тогтолцоонд автоматаар хадгалагдсан байгаа.
&os;-н PHP дэмжлэг нь дээд зэргээр
модульчлагдсан тул үндсэн суулгац нь маш хязгаарлагдмал
байдаг. lang/php5-extensions портыг ашиглан дэмжлэг
нэмэх нь үнэхээр амархан асуудал. PHP өргөтгөлийг суулгах явцад,
энэ порт танд цэсээс тогтсон интерфэйсийг санал болгоно. Өөрөөр,
өргөтгөлүүдийг нэг нэгээр нь харгалзах портуудаас суулгаж болно.
Жишээлбэл, PHP5-д MySQL өгөгдлийн
сангийн серверийн дэмжлэгийг нэмэхийн тулд,
databases/php5-mysql портыг суулгахад хангалттай.
Ямар нэг өргөтгөл суулгасны дараа,
тохиргооны өөрчлөлтийг хүчин төгөлдөр болгохын тулд Apache
серверийг дахин ачаалах шаардлагатайг анхаарна уу:
&prompt.root; apachectl graceful
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Файл Дамжуулах Протокол (FTP)
FTP серверүүд
Удиртгал
File Transfer Protocol буюу Файл Дамжуулах Протокол (FTP) нь хэрэглэгчдэд
FTP серверээс файлыг авах болон тавих хялбар
замыг бий болгодог. &os; үндсэн систем дотроо FTP
сервер програм ftpd-г агуулж байдаг. Энэ нь FreeBSD дээр
FTP серверийг босгох, удирдах ажлыг төвөггүй болгодог.
Тохиргоо
Тохиргоо хийхийн өмнөх хамгийн чухал алхам бол
ямар дансууд FTP серверт хандах эрхтэй байх вэ гэдгийг шийдэх байдаг.
Ердийн FreeBSD систем нь янз бүрийн дэмонуудад хэрэглэгддэг
олон тооны системийн дансуудтай байдаг ба гадны хэрэглэгчид
эдгээр дансыг ашиглан нэвтрэх ёсгүй. /etc/ftpusers файл дотор
FTP хандалт зөвшөөрөгдөөгүй хэрэглэгчдийн жагсаалтыг хадгална.
Анхдагч байдлаар, дээр дурдсан системийн дансууд энэ файлд байна.
FTP хандалтыг зөвшөөрөх ёсгүй өөр хэрэглэгчдийг ч мөн энэ файлд
нэмж болно.
Зарим хэрэглэгчдийн FTP хэрэглэхийг нь бүр болиулчихалгүйгээр,
зөвхөн зарим нэг эрхийг нь хязгаарлаж бас болно. Үүнийг
/etc/ftpchroot файлын тусламжтай гүйцэтгэж болно.
Энэ файл дотор FTP хандалтыг нь хязгаарлах хэрэглэгчид болон
бүлгүүдийн жагсаалт байна. &man.ftpchroot.5; заавар хуудсанд
бүх мэдээлэл байгаа тул энд дурдсангүй.
FTP
нийтийн
Хэрэв сервертээ нийтийн FTP хандалтыг зөвшөөрөх хүсэлтэй байгаа бол,
&os; систем дээрээ ftp нэртэй хэрэглэгч нэмэх хэрэгтэй.
Ингэснээр хэрэглэгчид таны FTP сервер рүү ftp эсвэл
anonymous гэсэн нэрээр ямар ч нэвтрэх үг шаардагдахгүйгээр
(тогтсон заншил ёсоор хэрэглэгч цахим шуудангийн хаягаа
нэвтрэх үгийн оронд хэрэглэх шаардлагатай) нэвтрэн орох болно.
Нийтийн хэрэглэгч системд орж ирэхэд FTP сервер түүний эрхийг
зөвхөн ftp хэрэглэгчийн гэрийн сан дотор
хязгаарлахын тулд &man.chroot.2;-г дуудна.
FTP харилцагчдад зориулсан мэндчилгээний үгнүүдийг
агуулсан хоёр текст файл байдаг. /etc/ftpwelcome файл
дотор байгааг нэвтрэлт хүлээх мөр гарахаас өмнө хэрэглэгчдэд дэлгэцэн дээр
хэвлэнэ. Амжилттай нэвтэрч орсны дараа /etc/ftpmotd файл
дотор байгааг дэлгэцэн дээр хэвлэнэ. Энэ файлын зам нь
нэвтэрч орсон орчинтой харьцангуйгаар авсан зам гэдгийг
анхаарна уу, тиймээс нийтийн хэрэглэгчдийн хувьд
~ftp/etc/ftpmotd файлыг хэвлэх болно.
FTP серверийн тохиргоог зохих ёсоор хийсний дараа,
/etc/inetd.conf файл дотор идэвхжүүлэх хэрэгтэй.
Үүний тулд, ftpd гэсэн мөрний өмнөх #
тэмдэгтийг арилгахад хангалттай:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
хэсэгт тайлбарласан ёсоор
энэ тохиргооны файлд өөрчлөлт оруулсны дараа
inetd-г дахин ачаалах шаардлагатай. Өөрийн
систем дээр inetd-г идэвхжүүлэх талаар
дэлгэрэнгүйг -с үзнэ үү.
Мөн ftpd-ийг дангаар нь ажиллуулахаар
тохируулж болно. Энэ тохиолдолд /etc/rc.conf файлд
тохирох хувьсагчийг тохируулахад хангалттай байдаг:
ftpd_enable="YES"
Дээрх хувьсагчийг тохируулсны дараа сервер дараачийн ачаалалт хийхэд
ажиллах боломжтой болох бөгөөд эсвэл дараах тушаалыг root
эрхээр ажиллуулан эхлүүлж болно:
&prompt.root; /etc/rc.d/ftpd start
Одоо та дараах тушаалыг өгөн FTP сервер рүү нэвтрэн орж болно:
&prompt.user; ftp localhost
Арчилгаа
syslog
бүртгэлийн файлууд
FTP
ftpd дэмон бүртгэл хөтлөхдөө &man.syslog.3;-г ашигладаг.
Анхдагч байдлаар, системийн бүртгэлийн дэмон FTP-тэй холбоотой
зурвасуудыг /var/log/xferlog файлд бичнэ. FTP бүртгэлийн файлын
байршлыг өөрчлөхийн тулд /etc/syslog.conf файл дотор, дараах
мөрийг засах хэрэгтэй:
ftp.info /var/log/xferlog
FTP
нийтийн
Нийтийн FTP сервер ажиллуулахад тохиолдох
болзошгүй асуудлуудын талаар мэдлэгтэй байгаарай.
Ялангуяа, нийтийн хэрэглэгчдэд файл байршуулахыг
зөвшөөрөх тухайд сайн бодох хэрэгтэй. Таны FTP сайт
лицензгүй програм хангамжуудыг наймаалцдаг талбар болох, эсвэл түүнээс ч
муу зүйл тохиолдохыг үгүйсгэхгүй. Хэрэв нийтийн FTP байршуулалтыг
зөвшөөрөх шаардлагатай бол, файлуудыг нягталж үзэхээс нааш
бусад нийтийн хэрэглэгчид тэдгээр файлыг унших эрхгүй байхаар
тохируулж өгөх хэрэгтэй.
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
µsoft.windows; харилцагчдад зориулсан Файл болон Хэвлэх Үйлчилгээ (Samba)
Samba сервер
Microsoft Windows
файл сервер
Windows харилцагчид
хэвлэх сервер
Windows харилцагчид
Ерөнхий Агуулга
Samba бол µsoft.windows; харилцагчдад
файл болон хэвлэх үйлчилгээг үзүүлдэг, өргөн хэрэглэгддэг
нээлттэй эхийн програм хангамжийн багц юм. Ийм төрлийн харилцагчид
FreeBSD файлын орчинд холбогдож, файлуудыг өөрийн дискэн дээр байгаа юм шиг,
эсвэл FreeBSD хэвлэгчийг өөрийн дотоод хэвлэгч шиг хэрэглэх боломжтой болдог.
Samba програм хангамжийн багцууд таны FreeBSD суулгах
дискэнд орсон байгаа. Хэрэв та анх FreeBSD суулгахдаа
Samba-г хамт суулгаагүй бол, net/samba3
порт эсвэл багцаас суулгаж болно.
Тохиргоо
Samba-н анхдагч тохиргооны файл
/usr/local/share/examples/samba/smb.conf.default гэж суугдсан байдаг. Энэ файлыг /usr/local/etc/smb.conf
нэртэй хуулаад, Samba-г ашиглаж
эхлэхээсээ өмнө өөртөө тааруулан засварлах ёстой.
smb.conf файл нь &windows; харилцагчтай хуваалцах
хүсэлтэй файл системийн хэсэг
ба хэвлэгчийн тодорхойлолт гэх зэрэг
Samba-н ажиллах үеийн тохиргооны мэдээллийг агуулж байдаг.
Samba багц дотор smb.conf файл дээр ажиллах хялбар
арга замыг хангасан swat нэртэй вэб дээр суурилсан
хэрэгсэл хамт ирдэг.
Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT)
Samba Web Administration Tool буюу Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT)
нь inetd-н дэмон хэлбэрээр ажиллана.
Тиймээс, Samba-г swat
ашиглан тохируулахын өмнө /etc/inetd.conf доторх
дараах мөрийг ил гаргах шаардлагатай:
swat stream tcp nowait/400 root /usr/local/sbin/swat swat
хэсэгт тайлбарласан ёсоор,
энэ тохиргооны файлд өөрчлөлт оруулсны дараа
inetd-ийн тохиргоог дахин ачаалах шаардлагатай.
swat-г inetd.conf дотор идэвхжүүлсний
дараа, вэб хөтөч ашиглан хаяганд холбогдоно.
Та эхлээд системийн root дансаар нэвтэрч орох ёстой.
Samba-н тохиргооны үндсэн хуудсанд
амжилттай нэвтэрч орсон бол, системийн баримтуудаар аялах,
эсвэл Globals цэсэн дээр дарж тохиргоог хийх боломжтой болно.
Globals хэсэг /usr/local/etc/smb.conf файлын
[global] хэсэгт байгаа хувьсагчдад харгалзана.
Глобал тохиргоо
swat-г хэрэглэж байгаа эсвэл
/usr/local/etc/smb.conf-г гараараа засаж байгаа аль нь ч бай,
Samba-г тохируулах явцад тааралдах хамгийн эхний
директивууд бол:
workgroup
Энэ нь сервер рүү хандах компьютеруудын NT Домэйн-Нэр эсвэл
Ажлын бүлгийн-Нэр.
netbios name
NetBIOS
Энэ директив Samba серверийн NetBIOS нэрийг заана.
Анхдагч байдлаар, хостын DNS нэрийн эхний хэсэгтэй адил байна.
серверийн мөр
Энэ директив net view тушаалын хариуд
гарч ирэх эсвэл зарим сүлжээний хэрэгслүүд дээр энэ серверийг
төлөөлж гарах мөрийг заана.
Аюулгүй байдлын Тохиргоо
/usr/local/etc/smb.conf доторх
хамгийн чухал хоёр тохиргоо бол аюулгүй байдлын загвар,
болон харилцагчдын нэвтрэх үгийн арын шугамны хэлбэр юм.
Дараах директивүүд эдгээр тохируулгуудыг хянана:
security
Энд хамгийн элбэг хэрэглэгддэг хоёр сонголт бол
security = share ба security = user юм. Хэрэв танай харилцагч нар
&os; машин дээр хэрэглэдэг хэрэглэгчийн нэртэй ижил нэрийг ашигладаг бол,
user түвшний аюулгүй байдлыг сонгохыг хүсэж байж магадгүй. Энэ бол
аюулгүй байдлын анхдагч бодлого бөгөөд эх үүсвэрт хандахаас өмнө харилцагчийг
системд нэвтэрч орохыг шаардана.
share түвшний аюулгүй байдалд, харилцагчид эх үүсвэрт хандахаас өмнө
хүчин төгөлдөр хэрэглэгчийн нэр болон нэвтрэх үгээр сервер рүү нэвтрэн орох
шаардлагагүй байдаг. Энэ бол Samba-н хуучин хувилбаруудын хувьд
аюулгүй байдлын анхдагч загвар байсан.
passdb backend
NIS+
LDAP
SQL өгөгдлийн сан
Samba-д хэд хэдэн төрлийн
арын шугамны магадлах загварууд байдаг. Харилцагчдыг
LDAP, NIS+, SQL өгөгдлийн сан, эсвэл хувиргасан нэвтрэх үгийн файлаар
магадлаж болно. Анхдагч магадлах арга бол smbpasswd бөгөөд
бид зөвхөн энэ талаар авч үзэх болно.
Анхдагч smbpasswd арын шугамыг хэрэглэж байгаа гэж үзвэл,
Samba харилцагчдыг магадлахын тулд
/usr/local/private/smbpasswd файлыг эхлээд үүсгэх ёстой.
Хэрэв &unix; хэрэглэгчийн эрхээр &windows; харилцагчаас ханддаг байх шаардлагатай бол,
дараах тушаалыг хэрэглэнэ:
&prompt.root; smbpasswd -a username
Samba 3.0.23c-аас эхлээд нэвтрэлтийн
файлуудад зориулсан сан нь /usr/local/etc/samba
сан юм. Энэ үед санал болгодог арын мэдээллийн сан нь tdbsam бөгөөд
хэрэглэгчийн бүртгэлийг нэмэхийн тулд дараах тушаалыг ашиглах ёстой:
&prompt.root; pdbedit username
Тохируулгуудын талаар нэмэлт мэдээллийг
Албан ёсны Samba HOWTO-с олж авна уу.
Энд цухас дурдсан үндсэн мэдлэгтэйгээр Samba-г ажиллуулж
эхлэх чадвартай байх ёстой.
Samba-г Эхлүүлэх нь
net/samba3 портод Samba-г
удирдахад зориулсан шинэ эхлэл скрипт орсон байгаа. Энэ
скриптийг идэвхжүүлэхийн тулд, өөрөөр хэлбэл энэ скриптийг ашиглан
Samba-г эхлүүлэх, зогсоох болон дахин эхлүүлдэг болохын тулд,
/etc/rc.conf файл дотор дараах мөрийг нэмж бичих хэрэгтэй:
samba_enable="YES"
Эсвэл илүү нарийнаар доор дурдсан шиг тохируулж болно:
nmbd_enable="YES"
smbd_enable="YES"
Ингэснээр мөн Samba-г систем ачаалах үед автоматаар
эхлүүлдэг болгоно.
Үүний дараа хүссэн үедээ Samba-г эхлүүлэхийн тулд
дараах тушаалыг өгөхөд хангалттай:
&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.
rc скриптийг ашиглах талаар дэлгэрэнгүй мэдээллийг
хэсгээс авна уу.
Samba нь үнэн хэрэгтээ гурван тусдаа дэмоноос
тогтоно. nmbd ба smbd дэмонууд
samba скриптээр эхлүүлдэг болохыг та анзаарах болно.
Хэрэв smb.conf дотор winbind нэр тайлах үйлчилгээг идэвхжүүлсэн бол
winbindd дэмон бас ажиллаж эхэлсэн болохыг харж болно.
Samba-г хүссэн үедээ зогсоохын тулд дараах тушаалыг өгөхөд
хангалттай:
&prompt.root; /usr/local/etc/rc.d/samba stop
Samba бол µsoft.windows; сүлжээтэй өргөн хүрээнд
нэгдмэл ажиллах боломжийг олгодог нарийн төвөгтэй програмын цогц юм.
Энд тайлбарласан үндсэн суулгацаас хальсан функцуудын талаар дэлгэрэнгүй
мэдээллийг хаягаар орж авна уу.
Том
Хөүкинс
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
NTP-р Цаг Тааруулах нь
NTP
Ерөнхий Агуулга
Цаг хугацаа өнгөрөхөд компьютерийн цаг зөрөх хандлагатай байдаг.
Network Time Protocol буюу Сүлжээний Цагийн Протоколыг(NTP) цагийг зөв байлгах, зөв ажиллуулахад
хэрэглэдэг.
Олон тооны Интернэт үйлчилгээнүүд компьютерийн цагаас хамаарч,
эсвэл хүртэж ажилладаг. Жишээлбэл, вэб сервер тодорхой цагаас хойш
өөрчлөлт орсон файлуудыг илгээх хүсэлт хүлээн авсан байж болох юм. Дотоод сүлжээний
орчинд, нэг файл серверээр үйлчлүүлж байгаа компьютеруудын хувьд
файлын цагийн тамга дүйж байхын тулд тэдгээрийн цагууд хоорондоо
тохирч байх ёстой. &man.cron.8; зэрэг үйлчилгээнүүд тодорхой цагт тушаалыг
гүйцэтгэхийн тулд системийн цагт бүрэн найдаж ажилладаг.
NTP
ntpd
FreeBSD &man.ntpd.8; NTP серверийн хамт ирдэг.
&man.ntpd.8; NTP нь таны машины цагийг тааруулахын тулд
бусад NTP серверүүдээс асуух эсвэл бусдад цагийн
мэдээллийг түгээх үйлчилгээг үзүүлдэг.
Зохимжтой NTP Серверийг Сонгох нь
NTP
серверийг сонгох нь
Цагаа тааруулахын тулд, та нэг болон түүнээс дээш тооны
NTP серверийг хэрэглэх хэрэгтэй болно.
Танай сүлжээний администратор эсвэл ISP үүнд зориулсан
NTP сервертэй байж болох юм—тийм эсэхийг тэдний заавраас шалгана уу.
нийтэд зориулсан NTP серверүүдийн
онлайн жагсаалтыг ашиглан өөртөө ойрхон байгаа NTP серверийг
олно уу. Сонгож авсан серверийнхээ ашиглах журмыг судлаарай.
Мөн хэрэв шаардлагатай бол зөвшөөрөл аваарай.
Таны сонгосон сервер холбогдох боломжгүй,
эсвэл цаг нь бүрэн итгэж болохооргүй үе гарах тул,
хоорондоо хамааралгүй хэд хэдэн NTP серверүүдийг сонгох нь хамгийн зөв
сонголт болдог. &man.ntpd.8; бусад серверээс хүлээн авсан
хариултуудыг маш ухаалгаар хэрэглэдэг—итгэж болох серверүүдийг
илүү авч үздэг.
Өөрийн Машиныг Тохируулах нь
NTP
тохиргоо
Үндсэн Тохиргоо
ntpdate
Хэрэв та машин асахад цагаа тааруулах хүсэлтэй
байгаа бол, &man.ntpdate.8;-г ашиглаж болно. Энэ нь олон дахин тааруулах
шаардлагагүй, ойр ойрхон асааж унтраадаг ширээний компьютерийн
хувьд зохимжтой байж болох юм. Гэхдээ ихэнх машины хувьд
&man.ntpd.8;-г ажиллуулах нь зүйтэй.
Систем ачаалах үед &man.ntpdate.8;-г ашиглах нь
&man.ntpd.8; ажиллаж байгаа машинуудын хувьд зөв санаа юм.
Учир нь &man.ntpd.8; програм нь цагийг алгуур өөрчилдөг байхад,
&man.ntpdate.8; машины одоогийн цаг болон зөв цагын хооронд
хир их ялгаа байгааг үл хайхран цагийг тааруулдаг.
&man.ntpdate.8;-г систем ачаалах үед идэвхжүүлэхийн тулд,
ntpdate_enable="YES" гэсэн мөрийг /etc/rc.conf файлд
нэмэх хэрэгтэй. Мөн цаг авах гэж байгаа бүх серверүүд болон
&man.ntpdate.8;-д өгөх тугуудыг ntpdate_flags-д зааж өгөх хэрэгтэй.
NTP
ntp.conf
Ерөнхий Тохиргоо
NTP-г /etc/ntp.conf файлын тусламжтай,
&man.ntp.conf.5;-д заасан хэлбэрээр тохируулна. Доор хялбар жишээг
үзүүлэв:
server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.drift
server тохируулгаар
ямар серверүүдийг ашиглахыг заана. Нэг мөрөнд нэг серверийг бичнэ.
Хэрэв аль нэг серверийг prefer гэсэн аргументаар
онцолсон бол, ntplocal.example.com шиг, тэр серверийг
бусдаас илүүд үзнэ. Илүүд үзсэн серверээс ирсэн хариу
бусад серверүүдийн хариунаас мэдэгдэхүйцээр
зөрж байгаа үед хариуг тоохгүй өнгөрөөнө. Түүнээс бусад тохиолдолд
бусад серверийн хариуг үл харгалзан тэр серверийн хариуг
хэрэглэх болно. prefer аргументийг ер нь
өндөр нарийвчлалтай, тусгай цаг хянадаг тоног төхөөрөмж дээр тулгуурласан NTP
серверийн хувьд хэрэглэнэ.
driftfile тохируулгаар
ямар файлд системийн цагийн алдах зөрүү утгыг хадгалж байгааг заана.
&man.ntpd.8; програм энэ утгыг ашиглан цагийн алдсан зөрүүг автоматаар нөхнө.
Ингэснээр цагийн бүх гадаад эх үүсвэрүүдтэй холбоо тогтоох боломжгүй болсон
үед, хэсэг хугацааны туршид ч гэсэн цагийг харьцангуй зөв ажиллуулах боломжийг
олгоно.
driftfile тохируулгаар ямар файлд таны зааж өгсөн
NTP серверүүдийн өмнөх хариунуудын тухай мэдээллийг
хадгалж байгааг заана. Энэ файлд NTP-н дотоод үйл ажиллагааны мэдээллийг
хадгалдаг. Энэ мэдээллийг өөр ямар ч процесс өөрчлөх ёсгүй.
Өөрийн Сервер рүү Хандах Хандалтыг Хянах нь
Анхдагч байдлаар, таны NTP сервер рүү Интернэтэд байгаа бүх хост
хандах боломжтой. /etc/ntp.conf файл дотор
restrict тохируулгаар ямар машинууд таны сервер рүү хандаж болохыг
хянаж болно.
Хэрэв та өөрийн NTP сервер рүү хэнийг ч хандуулахыг хүсэхгүй байгаа бол
/etc/ntp.conf файл дотор дараах мөрийг нэмэх хэрэгтэй:
restrict default ignore
Энэ нь таны серверээс өөрийн чинь локал тохиргоонд жагсаагдсан
аль ч сервер үрүү хандах боломжийг бас хаана.
Хэрэв та өөрийн NTP серверийг гадаад NTP сервертэй
синхрончлох хэрэгтэй бол ямар нэг серверийг зөвшөөрөх
ёстой. Дэлгэрэнгүй мэдээллийг &man.ntp.conf.5; гарын авлагаас
үзнэ үү.
Хэрэв та зөвхөн өөрийн сүлжээнд байгаа машинуудыг
таны сервертэй цагаа тааруулахыг зөвшөөрөөд, гэхдээ
таны серверийн тохиргоог өөрчлөх болон тэгш эрхтэй серверүүд шиг
цагийн мэдээллийг хуваахыг зөвшөөрөхгүй бол дээр дурдсаны оронд:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
гэсэн мөрийг бичнэ үү. Энд 192.168.1.0 нь таны сүлжээний
IP хаяг, 255.255.255.0 нь таны сүлжээний баг болно.
/etc/ntp.conf дотор олон тооны restrict
тохируулгууд байж болно. Илүү дэлгэрэнгүй мэдээллийг &man.ntp.conf.5;-н
Хандалтыг Удирдах Дэмжлэг дэд хэсгээс үзнэ үү.
NTP Серверийг Ажиллуулах нь
NTP серверийг систем ачаалах үед эхлүүлэхийн тулд,
ntpd_enable="YES" гэсэн мөрийг /etc/rc.conf файлд нэмж бичих
хэрэгтэй. Хэрэв &man.ntpd.8;-д нэмэлт тугуудыг өгөх хүсэлтэй бол,
/etc/rc.conf файлд байгаа ntpd_flags параметрийг засах хэрэгтэй.
Машиныг дахин ачаалалгүйгээр серверийг эхлүүлэхийн тулд,
ntpd тушаалыг /etc/rc.conf-д заасан
ntpd_flags нэмэлт параметрүүдийн хамтаар өгөх хэрэгтэй. Жишээлбэл:
&prompt.root; ntpd -p /var/run/ntpd.pid
ntpd-г Түр зуурын Интернэт Холболттой үед Хэрэглэх нь
&man.ntpd.8; програм зөв ажиллахын тулд байнгын Интернэт
холболт шаардлагагүй. Гэхдээ, хэрэгцээтэй үедээ гадагшаа залгадаг
тийм төрлийн түр зуурын холболттой бол, NTP трафикийг
гадагшаа залгах болон холболтыг бариад байхаас сэргийлэх нь чухал.
Хэрэв та PPP хэрэглэдэг бол, /etc/ppp/ppp.conf файл дотор байгаа
filter директивийг ашиглаж болно. Жишээ нь:
set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0
Дэлгэрэнгүй мэдээллийг &man.ppp.8;-н PACKET FILTERING
хэсгээс болон /usr/share/examples/ppp/-д байгаа жишээнүүдээс авч болно.
Зарим Интернэт үйлчилгээ үзүүлэгчид бага дугаартай портуудыг хаасан байдаг бөгөөд
ингэснээр хариу нь таны машинд хэзээ ч хүрэхгүй болж NTP ажиллахгүй болдог.
Цааших Мэдээлэл
NTP серверийн баримтжуулалтыг HTML хэлбэрээр
/usr/share/doc/ntp/-с олж үзэж болно.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
syslogd ашиглан алсын хост руу бүртгэх нь
Системийн бүртгэлтэй ажиллах нь аюулгүй байдлын болоод системийг
удирдах ажиллагааны чухал асуудал юм. Хостууд дунд зэргийн эсвэл том
сүлжээнд тархсан эсвэл тэдгээр нь төрөл бүрийн олон янзын сүлжээний хэсэг
болсон байх тохиолдолд эдгээр олон хостын бүртгэлийн файлуудыг
монитор хийх нь ихээхэн төвөгтэй болдог. Энэ тохиолдолд алсаас бүртгэхийг
тохируулах нь бүх л процессийг илүү тухтай болгодог.
Тусгайлан заасан бүртгэх хост руу төвлөрүүлэн бүртгэх нь бүртгэлийн
файлын удирдлагатай холбоотой зарим хүндрэлүүдийг багасгаж чаддаг.
&man.syslogd.8; болон &man.newsyslog.8; зэрэг &os;-ийн эх хэрэгслүүдийг
ашиглан бүртгэлийн файлын цуглуулга, нийлүүлэлт болон багасгалтыг нэг газар тохируулж
болдог. Дараах жишээ тохиргоонд logserv.example.com
гэж нэрлэгдсэн хост A локал сүлжээнээс бүртгэлийн мэдээллийг
цуглуулах болно. logclient.example.com гэж
нэрлэгдсэн хост B бүртгэлийн мэдээллийг сервер систем рүү
дамжуулах болно. Жинхэнэ тохиргоонд эдгээр хостууд зохих дамжуулах болон буцах
DNS эсвэл /etc/hosts файлд
оруулгууд шаардана. Тэгэхгүй бол өгөгдлийг сервер хүлээн авахгүй татгалзах
болно.
Бүртгэлийн серверийн тохиргоо
Бүртгэлийн серверүүд нь алсын хостуудаас бүртгэлийн мэдээллийг хүлээн
авахаар тохируулагдсан машинууд юм. Ихэнх тохиолдолд энэ нь тохиргоог
хялбар болгох зорилготой бөгөөд зарим тохиолдолд энэ нь удирдлагыг арай
сайжруулж байгаа хэлбэр байж болох юм. Аль ч шалтгаан байсан гэсэн
үргэлжлүүлэхээсээ өмнө цөөн хэдэн шаардлагыг дурдъя.
Зөв тохируулсан бүртгэлийн сервер дараах хамгийн бага шаардлагыг хангасан
байх шаардлагатай:
Клиент болон сервер дээр 514-р порт руу
UDP-г дамжуулах боломжийг бүрдүүлэх галт хананы
дүрэм;
Клиент машинаас алсын мэдэгдлүүдийг хүлээн авахаар syslogd
тохируулагдсан байх;
syslogd сервер болон бүх клиент машинууд нь дамжуулах
болон буцах DNS-ийн хувьд зөв оруулгуудтай
эсвэл /etc/hosts файлд зөв тохируулсан
байх шаардлагатай.
Бүртгэлийн серверийг тохируулахын тулд клиент нь
/etc/syslog.conf-д нэмэгдсэн байх
ёстой бөгөөд бүртгэх боломжийг зааж өгсөн байх шаардлагатай:
+logclient.example.com
*.* /var/log/logclient.log
Төрөл бүрийн дэмжигдсэн, байгаа facility
буюу боломжуудын талаарх дэлгэрэнгүй мэдээллийг
&man.syslog.conf.5; гарын авлагын хуудаснаас олж болно.
Нэмсэний дараа бүх facility мэдэгдлүүд
өмнө заасан /var/log/logclient.log файл руу
бүртгэгдэх болно.
Сервер машин дараах тохиргоог бас /etc/rc.conf
файлдаа хийсэн байх шаардлагатай:
syslogd_enable="YES"
syslogd_flags="-a logclient.example.com -vv"
Эхний тохиргоо нь syslogd демоныг эхлүүлэхийг
заах бөгөөд хоёр дахь нь клиетийн өгөгдлийг энэ сервер дээр хүлээн авахыг
зөвшөөрнө. Сүүлийн хэсэг нь бүртгэж байгаа
мэдэгдлүүдийн гаралтыг илүү дэлгэрэнгүй болгоно. Энэ нь facility-г
тохируулахад ихээхэн ашигтай байдаг. Администраторууд ямар төрлийн
мэдэгдлүүд ямар facility-р бүртгэгдэж байгааг хянах боломжийг энэ нь
бүрдүүлдэг.
Олон клиентээс бүртгэлийг хүлээн авахын тулд олон
сонголтыг зааж өгч болно. IP хаягууд болон
бүхэл сүлжээний блокийг бас зааж өгч болох бөгөөд боломжит сонголтуудын
бүх жагсаалтыг &man.syslog.3; гарын авлагын хуудаснаас үзнэ үү.
Төгсгөлд нь бүртгэлийн файлыг үүсгэх хэрэгтэй. Хэрэглэгсэн арга нь
хамаагүй боловч &man.touch.1; үүнтэй адил тохиолдлуудад сайн
ажилладаг:
&prompt.root; touch /var/log/logclient.log
Энэ үед syslogd демоныг дахин
ажиллуулж шалгах ёстой:
&prompt.root; /etc/rc.d/syslogd restart
&prompt.root; pgrep syslog
Хэрэв PID буцаагдвал сервер нь амжилттай
дахин эхэлсэн гэсэн үг бөгөөд клиентийн тохиргоо ажиллаж эхэлнэ. Хэрэв
сервер дахин эхлээгүй бол ямар нэг зүйл болсон эсэхийг
/var/log/messages файл дахь мэдэгдлүүдээс
шалгаарай.
Клиентийн бүртгэлийн тохиргоо
Бүртгэл илгээгч клиент нь өөр дээрээ хуулбараа үлдээхээс гадна
бас бүртгэлийн сервер рүү бүртгэлийн мэдээллийг явуулдаг машин юм.
Бүртгэлийн серверүүдийн нэгэн адил клиентүүд нь бас хамгийн бага
шаардлагыг хангасан байх ёстой:
&man.syslogd.8; нь бүртгэлийн сервер хүлээн авах ёстой
заасан төрлийн мэдэгдлүүдийг бүртгэлийн сервер рүү илгээхээр
тохируулагдсан байх ёстой;
Галт хана UDP пакетуудыг
514-р порт руу зөвшөөрөх ёстой;
Дамжуулах болон буцах DNS
тохируулагдсан эсвэл /etc/hosts файл зохих
оруулгуудтай байх шаардлагатай.
Клиентийн тохиргоо нь серверийнхтэй харьцуулах юм бол арай зөөлөн
байдаг. Клиент машин нь /etc/rc.conf файлдаа
дараахийг нэмж өгсөн байх шаардлагатай байдаг:
syslogd_enable="YES"
syslogd_flags="-s -vv"
Өмнө дурдсаны адил эдгээр тохиргоонууд нь
syslogd демоныг ачаалж эхлэхэд эхлүүлэхийг
заах бөгөөд бүртгэх мэдэгдлүүдийг дэлгэрэнгүйгээр харуулах болно.
сонголт нь бусад хостуудаас бүртгэлийг энэ
клиент хүлээн авахаас сэргийлдэг.
Facility нь мэдэгдэл үүсгэгдэж байгаа тэр системийн хэсгийг
тайлбарладаг. Жишээ нь ftp болон
ipfw нь хоёулаа facility юм. Эдгээр хоёр
үйлчилгээний хувьд бүртгэлийн мэдэгдлүүд үүсэхэд ихэвчлэн дээрх
хоёр хэрэгслийг бүртгэлийн мэдэгдэл бүртээ агуулсан байдаг.
Facility нь бүртгэлийн мэдэгдэл ямар чухлыг тэмдэглэхэд хэрэглэгдэх
дараалал эсвэл түвшинтэй байдаг. Хамгийн түгээмэл нь
warning ба info юм.
Боломжит бүх facilty болон дарааллуудын жагсаалтыг
&man.syslog.3; гарын авлагын хуудаснаас үзнэ үү.
Бүртгэлийн серверийг клиентийн /etc/syslog.conf
файлд заасан байх шаардлагатай. Энэ жишээн дээр алсын сервер рүү
бүртгэлийн өгөгдлийг илгээхийн тулд @
тэмдгийг ашигласан бөгөөд доор дурдсан мөртэй төстэй
харагдана:
*.* @logserv.example.com
Нэмсэний дараа өөрчлөлтийг хүчинтэй болгохын тулд
syslogd-г дахин эхлүүлэх шаардлагатай:
&prompt.root; /etc/rc.d/syslogd restart
Сүлжээгээр бүртгэлийн мэдэгдлүүдийг илгээж байгаа эсэхийг
тест хийхийн тулд клиент дээр &man.logger.1;-г ашиглаж мэдэгдлийг
syslogd руу илгээнэ:
&prompt.root; logger "Test message from logclient"
Энэ мэдэгдэл клиент дээрх
/var/log/messages болон
сервер дээрх /var/log/logclient.log
файлд одоо орсон байх ёстой.
Бүртгэлийн серверүүдийг дибаг хийх
Зарим тохиолдолд хэрэв бүртгэлийн сервер дээр мэдэгдлүүд нь
хүлээн авагдаагүй бол дибаг хийх шаардлагатай байж болох юм.
Хэд хэдэн шалтгаанаас болж ийм байдалд хүрч болох юм. Хамгийн
түгээмэл хоёр нь сүлжээний холболтын болон DNS-тэй
холбоотой асуудлууд юм. Эдгээр тохиолдлуудыг тест хийхийн тулд
хоёр хост хоёулаа /etc/rc.conf файлд заагдсан
хостын нэрээрээ нэг нэгэн рүүгээ хүрч чадаж байгааг шалгах
хэрэгтэй. Хэрэв энэ зөв ажиллаж байгаа бол /etc/rc.conf
файлд syslogd_flags тохиргоог өөрчлөх
шаардлагатай болно.
Дараах жишээн дээр /var/log/logclient.log нь хоосон
бөгөөд /var/log/messages файл нь амжилтгүй болсон
шалтгааныг харуулна. Дибаг хийж байгаа гаралтыг илүү дэлгэрэнгүй харуулахын
тулд дараах жишээтэй төстэйгөөр syslogd_flags
тохируулгыг өөрчилж дахин ачаалах хэрэгтэй:
syslogd_flags="-d -a logclien.example.com -vv"
&prompt.root; /etc/rc.d/syslogd restart
Доор дурдсантай төстэй дибаг өгөгдөл дахин ачаалсны дараа
дэлгэц дээр хурдан гарч өнгөрнө:
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
Logging to FILE /var/log/messages
syslogd: kernel boot file is /boot/kernel/kernel
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
rejected in rule 0 due to name mismatch.
Мэдэгдлүүд нэр зөрснөөс болоод дамжихгүй байгааг эндээс
харж болно. Тохиргоог алхам алхмаар дахин шалгасны дараа
/etc/rc.conf дахь дараах мөр
буруу бичигдсэн бөгөөд асуудалтай байгааг олж харна:
syslogd_flags="-d -a logclien.example.com -vv"
Энэ мөр logclien биш
logclient гэдгийг агуулсан байх ёстой.
Зөв болгож засан дахин ачаалсны дараа хүлээж байсан үр
дүнгээ харах болно:
&prompt.root; /etc/rc.d/syslogd restart
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
syslogd: kernel boot file is /boot/kernel/kernel
logmsg: pri 166, flags 17, from logserv.example.com,
msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
accepted in rule 0.
logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
Logging to FILE /var/log/logclient.log
Logging to FILE /var/log/messages
Энэ үед мэдэгдлүүдийг зөв хүлээн аван зөв
файлд бичих болно.
Аюулгүй байдлын хувьд бодолцох зүйлс
Сүлжээний аль ч үйлчилгээний нэгэн адил энэ тохиргоог
хийхээсээ өмнө аюулгүй байдлын шаардлагуудыг бодолцох ёстой. Заримдаа
бүртгэлийн файлууд нь локал хост дээр идэвхжүүлсэн үйлчилгээнүүд,
хэрэглэгчдийн бүртгэл болон тохиргооны өгөгдлийн талаарх эмзэг
өгөгдлүүдийг агуулсан байж болох юм. Клиентээс сервер рүү илгээсэн
сүлжээний өгөгдөл нь шифрлэгдээгүй эсвэл нууц үгээр хамгаалагдаагүй
байдаг. Хэрэв шифрлэх шаардлагатай бол өгөгдлийг шифрлэсэн хоолойгоор
дамжуулах security/stunnel
хэрэгслийг ашиглаж болох юм.
Локал аюулгүй байдал нь бас л асуудал юм. Бүртгэлийн файлууд нь
хэрэглэж байхад юм уу эсвэл бүртгэлийн багасгах үед шифрлэгддэггүй.
Локал хэрэглэгчид эдгээр файлуудад хандаж системийн тохиргооны талаар
нэмэлт мэдээлэл олж авч болох юм. Ийм тохиолдолд эдгээр файлууд дээр
зөв зөвшөөрлүүдийг тавих нь чухал юм. &man.newsyslog.8; хэрэгсэл нь
шинээр үүсгэгдсэн болон багасгагдсан бүртгэлийн файлууд дээр зөвшөөрөл
тавихыг дэмждэг. Бүртгэлийн файлууд дээр 600
горимыг тавьснаар хүсээгүй локал хэрэглэгчид тэдгээрийг шиншлэх
боломжийг хаах юм.
diff --git a/mn_MN.UTF-8/share/sgml/glossary/freebsd-glossary.sgml b/mn_MN.UTF-8/share/sgml/glossary/freebsd-glossary.sgml
index 26ffaf62b1..0f658dffd3 100644
--- a/mn_MN.UTF-8/share/sgml/glossary/freebsd-glossary.sgml
+++ b/mn_MN.UTF-8/share/sgml/glossary/freebsd-glossary.sgml
@@ -1,1999 +1,1999 @@
&os; Нэр томъёо
Энэ нэр томъёо нь &os;-ийн хүрээнийхэн болон баримтжуулалтад ашигласан
ухагдахуунууд ба товчлолуудыг агуулдаг.
A
ACL
ACPI
AMD
AML
API
APIC
APM
APOP
ASL
ATA
ATM
ACPI Machine Language
AML
Доор нь орших тоног төхөөрөмж болон OS-д
танилцуулсан баримтжуулагдсан интерфэйсийн хооронд давхаргын боломжийг
бий болгодог, ACPI-д нийцтэй үйлдлийн систем дэх
виртуал машинаар тайлбарлагддаг псевдокод.
ACPI Source Language
ASL
AML-ийн бичигдсэн програмчлалын хэл.
Access Control List
ACL
Обьектод холбоотой зөвшөөрлүүдийн жагсаалт. Ихэвчлэн файл эсвэл сүлжээний
төхөөрөмж байна.
Advanced Configuration and Power Interface
ACPI
Үйлдлийн систем нь тоног төхөөрөмжийг ашиглахын тулд түүний талаар юу ч мэдэх
шаардлагагүй болгодог, тоног төхөөрөмжийн үйлдлийн системд танилцуулах
интерфэйсийн хийсвэрлэлтийн боломжийг олгодог тодорхойлолт.
ACPI нь APM, PNPBIOS
болон бусад технологиудын өмнө нь хангадаг байсан ажиллагааг сайжруулж орлодог бөгөөд
тэжээлийн хэрэглээ, машины зогсоолт, төхөөрөмж идэвхжүүлэх болон болиулах гэх мэтийг
хянахад зориулсан боломжуудыг бий болгодог.
Application Programming Interface
API
Нэг буюу хэд хэдэн програмын хэсгүүдийн зөвшөөрөгдсөн харилцан
үйлдлийг заадаг процедурууд, протоколууд болон хэрэгслүүдийн олонлог.
Хэрхэн, хэзээ тэдгээр нь цуг ажилладаг болон ямар өгөгдлийг хуваалцдаг
эсвэл ажилладаг зэрэг үйлдлийг заадаг.
Advanced Power Management
APM
Тэжээлийн удирдлагын боломжид хүрэхийн тулд үйлдлийн системийг
BIOS-той цуг ажиллуулах боломжтой болгодог
API. APM нь илүү ерөнхий
хүчирхэг ACPI тодорхойлолтоор ихэнх програмуудын
хувьд солигдсон.
Advanced Programmable Interrupt Controller
APIC
Advanced Technology Attachment
ATA
Asynchronous Transfer Mode
ATM
Authenticated Post Office Protocol
APOP
Automatic Mount Daemon
AMD
Файлын систем дэх файл эсвэл санд хандахад файлын системийг
автоматаар холбодог демон.
B
BAR
BIND
BIOS
BSD
Base Address Register
BAR
Аль хаягийн хүрээнд PCI төхөөрөмж хариулахыг тодорхойлдог
регистрүүд.
Basic Input/Output System
BIOS
BIOS-ийн тодорхойлолт нь хам сэдвээс баг
зэрэг хамаарна. Зарим хүмүүс үүнийг програм хангамж болон тоног төхөөрөмжийн
хоорондох интерфэйсийн боломжийг үзүүлдэг, үндсэн хэв журмуудын олонлог бүхий
ROM бичил схем гэж үздэг. Зарим нь үүнийг
системийг эхлүүлэхэд тусалдаг бичил схемд байгаа хэв журмуудын олонлог гэж
үздэг. Зарим нь бас үүнийг эхлүүлэх процессийг тохируулахад хэрэглэгддэг
дэлгэц гэж үздэг. BIOS нь PC-д зөвхөн хамааралтай
боловч бусад системүүдэд үүнтэй төсөөтэй байдаг.
Berkeley Internet Name Domain
BIND
DNS протоколуудын шийдэл.
Berkeley Software Distribution
BSD
Энэ нь Беркли дэх Калифорнийн
Их Сургуулийн Computer Systems Research Group
(CSRG) буюу Компьютерийн Системийн Судалгааны Бүлгийн AT&T-ийн 32V &unix;-д хийсэн
өөрсдийн сайжруулалт болон өөрчлөлтүүдэд өгсөн нэр юм. &os; нь
CSRG-ийн ажлын үр удам юм.
Bikeshed Building
Олон хүмүүс төвөггүй хялбар сэдвээр үзэл бодлоо илэрхийлдгээс гарах гоц
үзэгдэл, тэгвэл хэцүү төвөгтэй сэдэв бага эсвэл бүр огт хэлэлцдэггүй.
Энэ ухагдахууны эхийн талаар
FAQ
хаягаас үзнэ үү.
C
CD
CHAP
CLIP
COFF
CPU
CTS
CVS
Carrier Detect
CD
Зөөгч олдсон гэдгийг заах RS232C дохио.
Central Processing Unit
CPU
Процессор гэж бас хэлэгддэг. Энэ нь бүх тооцоолол болдог компьютерийн
тархи юм. Өөр өөр үйлдлүүдийн олонлогуудтай хэд хэдэн өөр өөр архитектурууд
байдаг. Арай илүү алдартайгаас дурдвал Intel-x86 болон түүнээс уламжлагчид,
Sun SPARC, PowerPC, болон Alpha нар юм.
Challenge Handshake Authentication Protocol
CHAP
Клиент болон серверийн хооронд хэрэглэгддэг нууц дээр
тулгуурласан хэрэглэгчийг танин нэвтрүүлэх арга.
Classical IP over ATM
CLIP
Clear To Send
CTS
Алсын системд өгөгдөл илгээх зөвшөөрөл өгдөг RS232C дохио.
Common Object File Format
COFF
Concurrent Versions System
CVS
Файлуудын олон өөр өөр залруулалтуудыг хянаж ажиллах арга бүхий
хувилбар хяналтын систем. CVS нь өөрчлөлтүүд эсвэл өөрчлөлтүүдийн
олонлогийг задлах, нийлүүлэх болон буцаах боломжийг олгодог бөгөөд
аль өөрчлөлтүүдийг хэн, ямар шалтгаанаар хийснийг хянах боломжийг
санал болгодог.
D
DAC
DDB
DES
DHCP
DNS
DSDT
DSR
DTR
DVMRP
Discretionary Access Control
DAC
Data Encryption Standard
DES
&unix; нууц үгс болон &man.crypt.3; функцын хувьд
ашиглагддаг, мэдээллийг шифрлэх уламжлалт шифрлэлтийн арга.
Data Set Ready
DSR
Өгөгдлийг илгээх болон хүлээн авахад бэлэн байгааг илтгэх,
модемоос компьютер эсвэл терминал уруу илгээгдэх
RS232C дохио.
Data Terminal Ready
DTR
Өгөгдлийг илгээх болон хүлээн авахад бэлэн байгааг илтгэх,
компьютер эсвэл терминалаас модем уруу илгээгдэх
RS232C дохио.
Debugger
DDB
Системийн төлвийг шалгахад зориулагдсан, бүтэлгүйтлийг тойрсон
үйл явцуудыг тогтоохыг оролдож систем сүйрсэн үед ихэвчлэн ашиглагддаг
цөмд байх лавлаж асуух боломж.
Differentiated System Description Table
DSDT
Үндсэн системийн үндсэн тохиргооны мэдээллээр хангах
ACPI хүснэгт.
Distance-Vector Multicast Routing Protocol
DVMRP
Domain Name System
DNS
Хүн уншиж чадах хостын нэрүүдийг (жишээ нь mail.example.net)
Интернет хаягууд уруу болон эсрэгээр хөрвүүлдэг систем.
Dynamic Host Configuration Protocol
DHCP
Компьютер серверээс IP хаяг хүсэх үед динамикаар IP хаяг олгодог
протокол. Хаягийн олголтыг lease
буюу түрээслэлт
гэдэг.
E
ECOFF
ELF
ESP
Encapsulated Security Payload
ESP
Executable and Linking Format
ELF
Extended COFF
ECOFF
F
FADT
FAT
FAT16
FTP
File Allocation Table
FAT
File Allocation Table (16-bit)
FAT16
File Transfer Protocol
FTP
TCP дээр хийгдсэн өндөр түвшний протоколуудын
гэр бүлийн гишүүн. Энэ нь TCP/IP сүлжээгээр файлуудыг
дамжуулахад хэрэглэгддэг.
Fixed ACPI Description Table
FADT
G
GUI
Giant
Цөмийн их хэмжээний эх үүсвэрүүдийг хамгаалдаг, харилцан гаргах
(mutual exclusion) арга замын (sleep mutex
буюу унтах mutex) нэр. Цөөн хэдэн процессуудтай, нэг
сүлжээний карттай, тэгээд мэдээж зөвхөн нэг процессортой машин байсан тэр
өдрүүдэд хялбар түгжих арга зам боломжийн байсан боловч өнөө үед
энэ нь хүлээж авч болохооргүй ажиллагааны гол асуудал юм. &os;
хөгжүүлэгчид хувь эх үүсвэрүүдийг хамгаалах түгжээнүүдээр (цоож)
үүнийг солихоор идэвхтэйгээр ажиллаж байгаа билээ. Ингэснээр
ганц процессор болон олон процессортой машинуудад илүү ихээр зэрэгцээгээр
ажиллах боломжийг олгох юм.
Graphical User Interface
GUI
Хэрэглэгч болон компьютер нь графикуудтай харилцдаг
систем.
H
HTML
HUP
HangUp
HUP
HyperText Markup Language
HTML
Вэб хуудсууд үүсгэхэд хэрэглэгддэг тэмдэглэх хэл.
I
I/O
IASL
IMAP
IP
IPFW
IPP
IPv4
IPv6
ISP
IP Firewall
IPFW
IP Version 4
IPv4
Хаяглалтдаа 32 битийг ашигладаг IP протоколын
хувилбар 4. Энэ хувилбар нь одоо ч гэсэн өргөн хэрэглэгддэг боловч
IPv6-аар аажмаар солигдож байгаа.
IP Version 6
IPv6
Шинэ IP протокол. IPv4-ийн
хаягийн талбар дуусаж байгаагаас болж зохион бүтээгдсэн. Хаяглалтдаа 128
битийг ашигладаг.
Input/Output
I/O
Intel’s ASL compiler
IASL
ASL-г AML руу
хүвиргах Intel’-ийн эмхэтгэгч.
Internet Message Access Protocol
IMAP
Захидлын сервер дээр байрлах цахим захидлуудад хандахад
зориулагдсан протокол бөгөөд захидлууд нь захидал уншигч клиентээр татагдаж
уншигдахын оронд сервер дээр ихэвчлэн хадгалагддаг шинж чанартай
байдаг.
Internet Printing Protocol
IPP
Internet Protocol
IP
Интернэт дэх үндсэн пакет дамжуулах протокол. АНУ-ын Батлан Хамгаалахын
Хэлтэст анхлан хөгжүүлэгдсэн бөгөөд TCP/IP
стекийн туйлын чухал хэсэг юм. Интернэт протоколгүйгээр
Интернэт нь өнөөдрийнх шиг байхгүй байх байсан юм. Илүү мэдээллийг
RFC 791 хаягаас үзнэ үү.
Internet Service Provider
ISP
Интернэт уруу хандах боломжийг олгодог компани.
K
KAME
Японоор яст мэлхий
гэгддэг KAME ухагдахуун нь
тооцоолох хүрээнийхэнд IPv6-ийн шийдэл дээр
ажилладаг KAME Төслийг хэлэхэд
хэрэглэгддэг.
KDC
KLD
KSE
KVA
Kbps
Kernel &man.ld.1;
KLD
Системийг дахин ачаалалгүйгээр тодорхой нэг ажиллагааг
&os; цөмд динамикаар ачаалах арга.
Kernel Scheduler Entities
KSE
Цөмөөр дэмжигдсэн урсгалжилтын (threading) систем.
Илүү мэдээллийг төслийн гэрийн хуудаснаас
үзнэ үү.
Kernel Virtual Address
KVA
Key Distribution Center
KDC
Kilo Bits Per Second
Kbps
Урсгал (тухайн үед хичнээн хэмжээний өгөгдөл
өгөгдсөн хугацаанд дамжихыг хэлнэ) хэмжихэд хэрэглэгддэг.
Kilo-оос гадна Mega, Giga, Tera, гэх зэрэг байна.
L
LAN
LOR
LPD
Line Printer Daemon
LPD
Local Area Network
LAN
Локал бүсэд хэрэглэгддэг сүлжээ. Локал бүсэд оффис, гэр гэх зэрэг орно.
Lock Order Reversal
LOR
&os; цөм нь хэд хэдэн эх үүсвэрийн түгжээнүүдийг
тэдгээр эх үүсвэрүүдийн хувьд маргааныг шүүхийн тулд хэрэглэдэг.
&os.current; цөмүүдэд байдаг &man.witness.4; гэгддэг
ажиллах үеийн түгжээ оношлох систем (гэхдээ хувилбаруудын хувьд арилгасан) нь
түгжилт хийх алдаануудаас болж гарж болзошгүй амьгүй түгжээнүүдийг (deadlocks)
илрүүлдэг. (&man.witness.4; нь жинхэнэдээ нэлээн консерватив учраас
хуурамч алдаануудыг авах боломжтой юм.) Жинхэнэ зөв тайлан нь
хэрэв та азгүй байсан бол амьгүй түгжээ энд гарах байсан
гэдгийг заадаг.
Жинхэнэ зөв LOR-уудыг ихэвчлэн хурдан засварладаг, тиймээс
захидлын жагсаалт руу илгээхээсээ өмнө &a.current.url; болон
Мэдэгдэж байгаа LOR-ууд хуудсыг шалгана уу.
M
MAC
MADT
MFC
MFP4
MFS
MIT
MLS
MOTD
MTA
MUA
Mail Transfer Agent
MTA
Цахим захидал дамжуулахад хэрэглэгддэг програм. MTA
нь уламжлалаар BSD үндсэн системийн хэсэг байсан. Өнөөдөр Sendmail нь үндсэн
системд ордог боловч postfix, qmail болон Exim зэрэг олон бусад
MTA-ууд байдаг.
Mail User Agent
MUA
Хэрэглэгчдийн цахим захидал харах болон бичихэд хэрэглэгддэг програм.
Mandatory Access Control
MAC
Massachusetts Institute of Technology
MIT
Merge From Current
MFC
-CURRENT салбараас ажиллагаа эсвэл засварыг өөр бусад руу
ихэвчлэн -STABLE руу нийлүүлэх.
Merge From Perforce
MFP4
Perforce архиваас ажиллагаа эсвэл засварыг
CURRENT салбар руу нийлүүлэх.
Merge From Stable
MFS
FreeBSD-ийн хэвийн хөгжүүлэлтийн үеэр өөрчлөлт нь -STABLE руу
нийлүүлэгдэхээсээ өмнө тест хийх зорилгоор -CURRENT салбар руу
итгэмжлэн оруулагддаг. Ховор тохиолдолд өөрчлөлт нь эхлээд
-STABLE руу орж дараа нь -CURRENT руу нийлүүлэгддэг.
Энэ ухагдахуун нь -STABLE-с засварыг аюулгүй байдлын салбар
руу нийлүүлэхэд бас хэрэглэгддэг.
Message Of The Day
MOTD
Нэвтрэлт дээр ихэвчлэн үзүүлэгддэг мэдэгдэл. Системийн
хэрэглэгчдэд мэдээлэл тараахад ихэвчлэн хэрэглэгддэг.
Multi-Level Security
MLS
Multiple APIC Description Table
MADT
N
NAT
NDISulator
NFS
NTFS
NTP
Network Address Translation
NAT
Гарцын ард байгаа олон машин үр дүнтэйгээр нэг
IP хаяг хуваалцах боломжийг олгодог,
IP пакетууд нь гарцаар дамжихдаа дахин шинээр
засан бичигддэг техник
Network File System
NFS
New Technology File System
NTFS
Microsoft-ийн хөгжүүлсэн файлын систем бөгөөд
түүний &windows2k;, &windowsnt; болон &windowsxp; зэрэг
New Technology
үйлдлийн системүүдэд байдаг.
Network Time Protocol
NTP
Сүлжээнд цагийг синхрон хийх гэсэн утгатай.
O
OBE
ODMR
OS
On-Demand Mail Relay
ODMR
Operating System
OS
Компьютерийн тоног төхөөрөмжийн эх үүсвэрүүдэд хандах боломжийг
олгодог програмууд, сангууд болон хэрэгслүүдийн цуглуулга. Үйлдлийн системүүд нь
өнөөдөр нэг зэрэг зөвхөн нэг програм ажиллаж нэг төхөөрөмжид ханддаг хялбар хийцтэйгээс
авахуулаад мянга мянган хэрэглэгчдэд зэрэг үйлчилж чаддаг, тус тусдаа хэдэн арван
өөр програмуудыг ажиллуулдаг, бүрэн хэмжээний олон хэрэглэгчтэй, олон бодлоготой
болон олон зорилгоор ашиглаж болох системүүд байна.
Overtaken By Events
OBE
&os;-д хийгдсэн хожмын өөрчлөлтүүд, сүлжээний стандартуудад
хийгдсэн өөрчлөлтүүд, нөлөөлөлд орсон тоног төхөөрөмж хуучирсан
гэх зэрэг зүйлсээс болсон эсвэл хамааралгүй болсон, санал болгогдсон
өөрчлөлтүүдийг (Problem Report буюу Асуудлын Тайлан
эсвэл шинэ боломжийн хүсэлт зэрэг) хэлнэ.
P
p4
PAE
PAM
PAP
PC
PCNSFD
PDF
PID
POLA
POP
POP3
PPD
PPP
PPPoA
PPPoE
PPP over ATM
PPPoA
PPP over Ethernet
PPPoE
PR
PXE
Password Authentication Protocol
PAP
Perforce
CVS-ээс илүү дэвшилттэй,
Perforce Software-ийн
хийсэн эх код хянах бүтээгдэхүүн. Хэдийгээр нээлттэй эх биш боловч түүний хэрэглээ
&os; зэрэг нээлттэй эхийн төслүүдэд үнэгүй байдаг.
&os;-ийн зарим хөгжүүлэгчид -CURRENT салбарт хэтэрхий туршилтын
байж болох кодын завсрын талбар болгон Perforce архивыг ашигладаг.
Personal Computer
PC
Personal Computer Network File System Daemon
PCNFSD
Physical Address Extensions
PAE
Зөвхөн 32 битийн өргөнтэй хаягийн талбартай (бөгөөд
PAE-гүй бол 4 GB-аар хязгаарлагддаг) системүүд дээр
64 GB хүртэлх RAM-д хандахыг идэвхжүүлэх арга.
Pluggable Authentication Modules
PAM
Point-to-Point Protocol
PPP
Pointy Hat
Тэнэг эсвэл залхуу сурагч/оюутнуудад өмсгөдөг конус
хэлбэрийн малгайтай ихээхэн төстэй, үлгэр домгийн малгайгаар
бүтээлтийг эвдэж залруулалтын дугааруудыг хойшлуулдаг эсвэл
эх үндсэнд ямар нэг төрлийн сүйрэл, замбараагүй байдлыг үүсгэдэг,
&os;-ийн итгэмжлэн оруулагчийг шагнадаг. Өөрийн алдаанаас
болсон итгэмжлэн оруулагчид тун удалгүй ихээхэн хэмжээний цуглуулгатай
болох болно. Үүний хэрэглээ (бараг үргэлж?) хошин байдаг.
Portable Document Format
PDF
Post Office Protocol
POP
Post Office Protocol Version 3
POP3
Захидлын сервер дээр байрлах цахим захидлуудад хандахад
зориулагдсан протокол бөгөөд захидлууд нь сервер дээр үлдэхийн оронд
ихэвчлэн серверээс клиент рүү татагдан авагддаг шинж чанартай
байдаг.
PostScript Printer Description
PPD
Preboot eXecution Environment
PXE
Principle Of Least Astonishment
POLA
&os; сайжирч өөрчлөлтүүд нь хэрэглэгчдэд харагдаж байхын
хэрээр аль болох гайхахад хүргэхээргүй байх ёстой. Жишээ нь
/etc/defaults/rc.conf дахь
системийн эхлүүлэх хувьсагчуудыг дураар зохицуулах нь POLA-г
зөрчдөг. Хөгжүүлэгчид нь хэрэглэгчдэд харагдах системийн өөрчлөлтүүдийг
бодож байхдаа POLA-г бодолцох хэрэгтэй.
Problem Report
PR
&os;-ийн эх эсвэл баримтад олдсон ямар нэг асуудлын тайлбар.
&os;-ийн Асуудлын Тайлангууд бичих нь хуудсыг үзнэ үү.
Process ID
PID
Систем дэх тухайн процессод зөвхөн хамаатай дугаар. Энэ дугаараар
системийг таньж түүний эсрэг үйлдлүүд хийх боломжийг олгодог.
Project Evil
Билл Полын эхлээд иймэрхүү зүйлтэй болохын тулд бичиж ямар аймаар
муухай болохыг нь (философийн талаас) хэлж нэрлэсэн,
NDISulator-т зориулсан ажлын нэр.
NDISulator нь Microsoft Windows™-ийн
NDIS miniport сүлжээний драйверуудыг &os;/i386 дээр ашиглахын тулд
хийсэн тусгай нийцтэй модуль юм. Драйвер нь хаалттай картуудыг ашиглах
цорын ганц арга нь ихэвчлэн энэ байдаг.
src/sys/compat/ndis/subr_ndis.c-г үзнэ үү.
R
RA
RAID
RAM
RD
RFC
RISC
RPC
RS232C
RTS
Random Access Memory
RAM
Received Data
RD
An RS232C pin or wire that data is
recieved on.
Recommended Standard 232C
RS232C
Цуваа төхөөрөмжүүдийн хоорондын холбоонуудад зориулсан стандарт.
Reduced Instruction Set Computer
RISC
Тоног төхөөрөмжийн гүйцэтгэж болох үйлдлүүд нь хялбарчлагдсан
бөгөөд аль болох ерөнхий зориулалтаар хийгддэг, процессорын дизайны
нэг хандлага. Энэ нь бага хэмжээний тэжээлийн хэрэглээ, цөөн транзистор,
болон зарим тохиолдолд илүү сайн ажиллагаа болон кодын илүү нягтралд
хүргэдэг. RISC процессоруудын жишээнд Alpha, &sparc;, &arm; болон
&powerpc;-г оруулж болно.
Redundant Array of Inexpensive Disks
RAID
Remote Procedure Call
RPC
repocopy
Repository Copy
CVS архив дотор файлуудыг шууд хуулах.
Ийм хуулалт хийх боломжгүй бол файлыг архив дотор өөр газар руу хуулах
эсвэл шилжүүлэх хэрэгтэй бол итгэмжлэн оруулагч нь файлыг шинэ байрлал руу хийхийн
тулд cvs add тушаалыг ажиллуулж дараа нь хуучин хуулбар
устгагдах ёстой бол cvs rm гэж хуучин файл дээр ажиллуулах
ёстой байдаг.
Энэ аргын сул тал нь файлын түүх (өөрөөр хэлбэл CVS бүртгэлүүд дэх оруулгууд)
шинэ байрлал руу хуулагддаггүй явдал юм. &os; төсөл нь энэ түүхийг маш ашигтай гэж үздэг
бөгөөд үүний оронд архивын хуулалтыг ихэвчлэн ашигладаг. Энэ нь &man.cvs.1;
тушаалыг ашиглахын оронд архивын администраторуудын аль нэг нь файлуудыг архив дотор
шууд хуулах процесс юм.
Request For Comments
RFC
Интернэтийн стандартууд, протоколууд, гэх зэргүүдийг тодорхойлдог бичиг баримтын
цуглуулга.
www.rfc-editor.org-г
үзнэ үү.
Хэн нэг нь санал болгосон өөрчлөлттэй бөгөөд эргээд санал хүлээн авахыг
хүсэх үед бас хэрэглэгддэг ерөнхий ухагдахуун юм.
Request To Send
RTS
Алсын системээр өгөгдлийн дамжуулалтыг эхлүүлэхийг хүсэх
RS232C дохио.
Router Advertisement
RA
S
SCI
SCSI
SG
SMB
SMP
SMTP
SMTP AUTH
SSH
STR
SVN
SMTP Authentication
SMTP AUTH
Server Message Block
SMB
Signal Ground
SG
Дохионы хувьд газар болдог RS232-ийн зүү эсвэл утас.
Simple Mail Transfer Protocol
SMTP
Secure Shell
SSH
Small Computer System Interface
SCSI
Subversion
SVN
Subversion нь CVS-тэй адил боловч илүү өргөтгөсөн боломжууд бүхий
хувилбар удирдах систем юм.
Suspend To RAM
STR
Symmetric MultiProcessor
SMP
System Control Interrupt
SCI
T
TCP
TCP/IP
TD
TFTP
TGT
TSC
Ticket-Granting Ticket
TGT
Time Stamp Counter
TSC
Орчин үеийн &pentium; процессоруудын дотор байдаг хувийн тоологч. Энэ нь
гол цөм давтамжийн цагийг тоолдог.
Transmission Control Protocol
TCP
IP протокол дээр сууж байдаг (өөрөөр хэлбэл)
протокол бөгөөд пакетууд найдвартай, дарааллыг барьсан загвараар хүргэгдэхийг
баталгаажуулдаг.
Transmission Control Protocol/Internet Protocol
TCP/IP
IP протокол дээгүүр ажиллах TCP-ийн
хослолд зориулагдсан ухагдахуун. Интернэтийн ихэнх хэсэг TCP/IP-ээр
ажилладаг.
Transmitted Data
TD
Өгөгдөл дамжсан RS232C-ийн зүү эсвэл утас.
Trivial FTP
TFTP
U
UDP
UFS1
UFS2
UID
URL
USB
Uniform Resource Locator
URL
Интернэт дэх баримт зэрэг эх үүсвэрүүдийг олох арга бөгөөд тэр эх үүсвэрийг
танихыг хэлнэ.
Unix File System Version 1
UFS1
Берклигийн Fast File System гэж заримдаа нэрлэгддэг
анхдагч &unix; файлын систем.
Unix File System Version 2
UFS2
&os; 5-CURRENT-д орсон UFS1-ийн
өргөтгөл. UFS2 нь 64 бит блок заагч
(1T-ын саадыг давдаг), өргөтгөсөн файлын хадгалалт болон бусад
боломжуудыг нэмдэг.
Universal Serial Bus
USB
Компьютерийн төрөл бүрийн төхөөрөмжүүдийг универсал интерфэйс
рүү залгахад хэрэглэдэг тоног төхөөрөмжийн стандарт.
User ID
UID
Компьютерийн хэрэглэгч бүрт өгсөн ялгаатай дугаар. Энэ дугаараар
тэр хэрэглэгчид өгсөн эх үүсвэрүүд болон зөвшөөрлүүдийг таньдаг.
User Datagram Protocol
UDP
TCP/IP сүлжээнд өгөгдлийг солилцоход хэрэглэгддэг өгөгдөл дамжуулах
энгийн, найдваргүй протокол. UDP нь TCP
шиг алдаа шалгаж засах боломжоор хангадаггүй.
V
VPN
Virtual Private Network
VPN
Байгууллагын LAN зэрэг дотоод сүлжээ рүү
хандах боломжийг бүрдүүлдэг, Интернэт зэрэг нийтийн цахилгаан холбоо
ашиглан алсаас хандах арга.