diff --git a/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml b/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
index f4a2a64a94..b0e5e47afa 100644
--- a/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
@@ -1,4652 +1,4652 @@
Цагаанхүүгийн
Ганболд
Орчуулсан
tsgan@hotmail.com
Сүлжээний нэмэлт ойлголтууд
Ерөнхий агуулга
Энэ бүлэг нь хэд хэдэн сүлжээний дэвшилтэт нэмэлт сэдвүүдийг хамрах
болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Гарцууд болон чиглүүлэлтүүдийн үндсүүд.
IEEE 802.11 болон &bluetooth; төхөөрөмжүүдийг хэрхэн суулгах талаар.
FreeBSD-г гүүр болгож хэрхэн тохируулах талаар.
Дискгүй машин дээр сүлжээгээр ачаалахыг хэрхэн тохируулах талаар.
Сүлжээний хаягийн хөрвүүлэлтийг хэрхэн тохируулах талаар.
PLIP-ээр хоёр компьютерийг хэрхэн холбох талаар.
FreeBSD машин дээр IPv6-г хэрхэн тохируулах талаар.
ATM-ийг хэрхэн тохируулах талаар.
&os; дээр Common Access Redundancy Protocol буюу CARP-ийн
боломжуудыг хэрхэн идэвхжүүлж ашиглах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
/etc/rc скриптүүдийн үндсүүдийг ойлгосон байх.
Сүлжээний үндсэн ухагдахуудын талаар мэдлэгтэй байх.
Шинэ FreeBSD цөм хэрхэн тохируулж суулгах талаар мэдэх
().
Нэмэлт гуравдагч талуудын хийсэн програм хангамжийг хэрхэн
суулгах талаар мэдэх ().
Коранф
Грайфон
Хувь нэмэр болгон оруулсан
Гарцууд болон Чиглүүлэлтүүд
чиглүүлэлт хийх
гарц
дэд сүлжээ
Сүлжээгээр нэг машин нөгөө машиныг олж чаддаг байхын тулд нэгээс нөгөө
уруу хэрхэн хүрэхийг тайлбарласан арга замууд байх ёстой. Үүнийг
routing буюу чиглүүлэлт хийх
гэдэг. Чиглүүлэлт
нь destination буюу зорьсон газар
болон
гарц
хаягийн хослолоор тодорхойлогддог. Хэрэв та энэ
зорьсон газар
уруу очихоор оролдож байгаа бол
энэ гарц
аар холбогдоно гэж энэ хослол нь зааж байгаа юм.
Гурван төрлийн зорьсон газар байдаг: эдгээр нь хостууд, дэд сүлжээнүүд болон
анхдагч
юм. Анхдагч чиглүүлэлт
нь
аль ч чиглүүлэлтэд хамаарахгүй бол ашиглагддаг. Бид анхдагч чиглүүлэлтийн
талаар дараа нь арай дэлгэрэнгүй ярилцах болно. Бас гурван төрлийн гарц байдаг:
эдгээр нь хостууд, интерфэйсүүд (бас links
буюу холбоосууд гэгддэг)
болон Ethernet тоног төхөөрөмжийн хаягууд (MAC хаягууд) юм.
Жишээ
Чиглүүлэлтийн өөр ойлголтуудыг үзүүлэхийн тулд бид netstat-ийн
дараах жишээг ашиглах болно:
&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
анхдагч чиглүүлэлт
Эхний хоёр мөр нь анхдагч чиглүүлэлт (бид үүнийг дараагийн хэсэгт
авч үзэх болно) болон localhost чиглүүлэлтийг заана.
loopback төхөөрөмж
Энэ чиглүүлэлтийн хүснэгтийн заасан localhost-д зориулж
ашиглах интерфэйс (Netif багана) нь
lo0 бөгөөд энэ нь бас loopback буюу буцах
интерфэйс гэгддэг. Энэ нь уг очих газрын хувьд бүх урсгалыг LAN уруу илгээхийн оронд
дотооддоо үлдээнэ гэж хэлж байгаа бөгөөд энэ нь хаанаас эхэлсэн тэндээ буцаж
очих учраас тэр юм.
Ethernet
MAC хаяг
Дараагийн байгаа зүйл бол 0:e0:-с
эхэлсэн хаягууд юм. Эдгээр нь Ethernet тоног төхөөрөмжийн хаягууд бөгөөд
бас MAC хаягууд гэгддэг. FreeBSD нь локал Ethernet дээр байгаа
ямар ч хостуудыг (жишээн дээрх test0) автоматаар
таньж тэр хостод зориулж шууд түүн уруу ed0
Ethernet интерфэйсээр гарахаар чиглүүлэлт нэмдэг. Энэ төрлийн
чиглүүлэлттэй холбоотой хугацаа (Expire багана)
байдаг бөгөөд энэ нь заасан хугацаанд тэр хостоос бид нар юу ч сонсохгүй үед
ашиглагддаг. Ийм явдал болоход энэ хост уруу заагдсан чиглүүлэлт автоматаар
устгагдах болно. Эдгээр хостууд нь RIP (Routing Information Protocol
буюу чиглүүлэлтийн мэдээллийн протокол) гэгддэг арга замаар танигддаг бөгөөд энэ нь
хамгийн богино замыг тодорхойлсны үндсэн дээр локал хостууд уруу очих чиглүүлэлтийг
олдог.
дэд сүлжээ
FreeBSD нь бас локал дэд сүлжээнд зориулж дэд сүлжээний чиглүүлэлтүүдийг
нэмдэг (10.20.30.255 нь
10.20.30 дэд сүлжээний цацах хаяг бөгөөд
example.com нь тэр дэд сүлжээтэй холбоотой
домэйний нэр юм). link#1 тэмдэглэгээ нь машин дахь
эхний Ethernet картыг заана. Та тэдгээрт зориулж ямар ч нэмэлт интерфэйс
заагдаагүйг харах болно.
Эдгээр бүлгүүд (локал сүлжээний хостууд болон локал дэд сүлжээнүүд) нь
автоматаар routed гэгддэг дэмоноор
тохируулагдсан чиглүүлэлтүүдтэй байна. Хэрэв энэ нь ажиллахгүй байгаа бол
зөвхөн статикаар тодорхойлогдсон (өөрөө хэлбэл илэрхий оруулж өгсөн)
чиглүүлэлтүүд байх болно.
host1 мөр нь бидний хостыг зааж байгаа бөгөөд
түүнийг Ethernet хаягаар нь мэддэг. Бид илгээж байгаа хост болохоор FreeBSD нь
Ethernet интерфэйсээр илгээхийн оронд loopback буюу буцах интерфэйсийг
(lo0) ашиглахаа мэддэг.
Хоёр host2 мөрүүд нь биднийг &man.ifconfig.8;
alias буюу өөр нэр ашиглах үед (Ethernet-ийн талаар дурдсан хэсгээс бид үүнийг яагаад хийдгийг
үзээрэй) учирч болзошгүй зүйлийн жишээ юм. lo0
интерфэйсийн дараа байгаа => тэмдэг нь бид зөвхөн
loopback буюу буцах интерфэйсийг ашиглаад зогсохгүй (энэ хаяг нь бас локал хостыг хэлж
байгаа болохоор) энэ нь ялангуяа alias буюу өөр нэр гэдгийг хэлж байгаа юм.
Ийм чиглүүлэлтүүд нь alias-ийг дэмждэг хост дээр зөвхөн харагдана; локал сүлжээн
дэх бусад бүх хостууд ийм чиглүүлэлтүүдийнхээ хувьд ердөө л link#1
мөртэй байна.
Төгсгөлийн мөр (очих дэд сүлжээ 224) нь
multicast-тай ажиллаж байгаа бөгөөд үүнийг өөр хэсэгт авч үзэх болно.
Төгсгөлд нь чиглүүлэлт бүрийн төрөл бүрийн шинж чанаруудыг Flags
баганаас харж болно. Эдгээр тугуудын зарим болон тэдгээрийн харгалзах утга санаануудыг
доорх богино хүснэгтээр харуулав:
U
Up: Чиглүүлэлт идэвхтэй байна.
H
Host: Чиглүүлэлтийн очих газар нь ганц хост байна.
G
Gateway: Энэ очих газарт зориулж бүгдийг энэ алсын систем уруу
илгээх бөгөөд алсын систем нь тэндээсээ хаашаа илгээхээ олох болно.
S
Static: Энэ чиглүүлэлт нь системээр автоматаар үүсгэгдсэн биш
гараар тохируулагдсан.
C
Clone: Бидний холбогдож байгаа машины хувьд энэ чиглүүлэлт
дээр үндэслэн шинэ чиглүүлэлт үүсгэдэг. Энэ төрлийн чиглүүлэлт нь ихэвчлэн
локал сүлжээнүүдэд ашиглагддаг.
W
WasCloned: Локал сүлжээний (Clone) чиглүүлэлт дээр
үндэслэн автоматаар тохируулагдсан чиглүүлэлтийг заана.
L
Link: Чиглүүлэлт нь Ethernet тоног төхөөрөмжтэй
холбоотой зүйлийг хамарна.
Анхдагч чиглүүлэлтүүд
анхдагч чиглүүлэлт
Локал систем нь алсын хост уруу холболт хийх хэрэгтэй үед мэдэгдэж байгаа зам
байгаа эсэхийг тодорхойлохын тулд энэ нь чиглүүлэлтийн хүснэгтээс шалгадаг. Хэрэв алсын
хост нь бидний хэрхэн хүрэхийг нь мэдэх (клон хийгдсэн чиглүүлэлтүүд) дэд сүлжээнд
байгаа бол систем тэр интерфэйсээр холбогдож болох эсэхийг шалгадаг.
Хэрэв бүх мэдэгдэж байгаа зам амжилтгүй болвол системд сүүлчийн ганц
сонголт анхдагч
чиглүүлэлт үлдэнэ. Энэ чиглүүлэлт нь гарц чиглүүлэлтийн
тусгай төрөл (системд ихэвчлэн ганц байдаг) бөгөөд тугнуудын талбартаа үргэлж
c гэж тэмдэглэгдсэн байдаг. Локал сүлжээн дэх хостын хувьд
энэ гарц нь машины гадаад ертөнц уруу шууд холбогдох зүйлээр (PPP холболт, DSL,
кабель модем, T1, эсвэл өөр сүлжээний интерфэйсээр) тохируулагддаг.
Хэрэв та өөрөө гаднах ертөнц уруу гарц маягаар ажиллаж байгаа машины хувьд анхдагч
чиглүүлэлтийг тохируулж байгаа бол анхдагч чиглүүлэлт нь таны Интернэтийн Үйлчилгээ
Үзүүлэгчийн (ISP) сайт дахь гарц машин болох юм.
Анхдагч чиглүүлэлтүүдийн жишээг харцгаая. Энэ нь нийтлэг тохиргоо юм:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Local1 болон
Local2 хостууд нь таны сайтад байна.
Local1 нь ISP уруу dial-up PPP холболтоор
холбогдсон. Энэ PPP сервер компьютер нь дотоод сүлжээгээр
өөр нэг гарц компьютер уруу гадаад интерфэйсээр ISP-ийн Интернэт өгч байгаа уруу
холбогдсон байна.
Таны машин бүрийн хувьд анхдагч чиглүүлэлтүүд нь ийм болно:
Хост
Анхдагч Гарц
Интерфэйс
Local2
Local1
Ethernet
Local1
T1-GW
PPP
Түгээмэл асуулт нь Бид яагаад Local1-ийн хувьд
түүний холбогдсон ISP-ийн серверийн оронд T1-GW-г анхдагч гарц гэж
тохируулсан бэ?
гэсэн асуулт юм.
PPP интерфэйс нь өөрийн талын холболтондоо ISP-ийн локал сүлжээн дэх хаягийг ашиглаж
байгаа болохоор ISP-ийн локал сүлжээн дэх бусад дурын машинуудад зориулсан чиглүүлэлт
автоматаар үүсгэгдэх болно гэдгийг санаарай. Ийм учраас та T1-GW
машин уруу хэрхэн хүрэхээ аль хэдийн мэдэж байгаа болохоор ISP-ийн сервер уруу урсгал
илгээх дундын алхам шаардлагагүй юм.
Өөрийн локал сүлжээний хувьд X.X.X.1 хаягийг гарц хаяг болгож ашиглах нь
түгээмэл байдаг. Тэгэхээр (адил жишээг ашиглаад) хэрэв таны локал C ангиллын
хаягийн талбар 10.20.30 байсан бөгөөд
таны ISP 10.9.9-г ашиглаж байгаа бол
анхдагч чиглүүлэлтүүд нь ийм байна:
Хост
Анхдагч Чиглүүлэлт
Local2 (10.20.30.2)
Local1 (10.20.30.1)
Local1 (10.20.30.1, 10.9.9.30)
T1-GW (10.9.9.1)
Та /etc/rc.conf файлын тусламжтай
анхдагч чиглүүлэлтийг хялбараар тодорхойлж болно. Бидний жишээн дээр
Local2 машин дээр бид дараах мөрийг
/etc/rc.conf файлд нэмсэн:
defaultrouter="10.20.30.1"
Үүнийг шууд тушаалын мөрөөс &man.route.8; тушаалаар хийж бас
болно:
&prompt.root; route add default 10.20.30.1
Сүлжээний чиглүүлэлтийн хүснэгтүүдийг гараар удирдах талаар дэлгэрэнгүй
мэдээллийг &man.route.8; гарын авлагын хуудаснаас лавлана уу.
Хос гэртэй хостууд
хос гэртэй хостууд
Өөр бас нэг тохиргооны төрлийг бид хэлэлцэх ёстой бөгөөд энэ нь хоёр өөр сүлжээн
дээр байгаа хостын тухай юм. Техникийн хувьд гарц болж байгаа дурын машин
(дээрх жишээн дээр PPP холболтыг ашиглах нь) хос гэртэй хост гэж тооцогддог.
Гэхдээ үнэндээ энэ ухагдахуун нь хоёр дотоод сүлжээнд байгаа машиныг хэлэхэд
зөвхөн ашиглагддаг.
Нэг тохиолдолд машин нь хоёр Ethernet карттай бөгөөд карт бүр
тусдаа дэд сүлжээний хаягтай байна. Өөрөөр, машин нь зөвхөн нэг Ethernet
карттай бөгөөд &man.ifconfig.8; alias хийлт буюу өөр нэрийг ашигладаг байж
болно. Эхнийх нь физикийн хувьд тусдаа хоёр Ethernet сүлжээ ашиглагдаж
байгаа үед хэрэглэгдэх бөгөөд сүүлийнх нь ганц физик сүлжээний сегмент байгаа боловч
логикийн хувьд хоёр тусдаа дэд сүлжээнүүд байгаа үед хэрэглэгддэг.
Аль ч тохиолдолд энэ машин нь нөгөө дэд сүлжээ уруу хүрэх тодорхойлогдсон гарц
(гаднаас ирэх чиглүүлэлт) гэдгийг дэд сүлжээ бүр мэддэг байхаар чиглүүлэлтийн хүснэгтүүд
тохируулагддаг. Хоёр дэд сүлжээний хооронд чиглүүлэгч маягаар ажиллах
машинтай энэ тохиргоо нь бид аль нэг тал уруу эсвэл хоёр талын хоёулангийн хувьд
пакет шүүгч буюу галт хана дээр тулгуурласан аюулгүй байдлын шийдлийг хийх
шаардлагатай үед ихэвчлэн хэрэглэгддэг.
Хоёр интерфэйсийн хооронд пакетуудыг дамжуулдаг байхаар энэ машиныг
байлгахыг хэрэв та хүсвэл энэ боломжийг идэвхжүүлэхийг FreeBSD-д хэлэх
хэрэгтэй. Үүнийг хэрхэн хийх талаар дэлгэрэнгүйг дараагийн хэсгээс үзнэ үү.
Чиглүүлэгч бүтээх нь
чиглүүлэгч
Сүлжээний чиглүүлэгч нь ердөө л нэг интерфэйсээс нөгөө интерфэйс уруу пакетуудыг
дамжуулдаг систем юм. Интернэтийн стандартууд болон сайн инженерчлэлийн туршлага нь
үүнийг FreeBSD дээр анхдагчаар идэвхжүүлсэн байхаас FreeBSD төслийг сэргийлдэг.
&man.rc.conf.5; дахь дараах хувьсагчийг YES болгон
өөрчилснөөр та энэ боломжийг идэвхжүүлж болно:
gateway_enable=YES # Set to YES if this host will be a gateway
Энэ тохируулга нь &man.sysctl.8;-ийн хувьсагч net.inet.ip.forwarding-г
1 болгоно. Хэрэв та чиглүүлэлтийг түр зуур зогсоох хэрэгтэй
бол үүнийг түр зуур 0 болгож тохируулж болно.
Урсгалыг хааш нь илгээхээ мэдэхийн тулд таны шинэ чиглүүлэгчид чиглүүлэлтүүд
хэрэгтэй болно. Хэрэв таны сүлжээ хангалттай хялбар байх юм бол статик
чиглүүлэлтүүд ашиглаж болно. FreeBSD нь стандарт BSD чиглүүлэлтийн дэмон
&man.routed.8; програмтай бас ирдэг. Энэ нь RIP (1 ба 2-р хувилбар) болон
IRDP протоколуудыг дэмждэг. BGP v4, OSPF v2 болон бусад төвөгтэй
чиглүүлэлтийн протоколуудын дэмжлэгийг net/zebra
багц хангадаг. &gated; зэрэг арилжааны
бүтээгдэхүүнүүд бас илүү төвөгтэй сүлжээний чиглүүлэлтийн шийдлүүдэд
зориулагдсан байдаг.
BGP
RIP
OSPF
Аль
Хоанг
Хувь нэмэр болгон оруулсан
Статик чиглүүлэлтүүдийг тохируулах нь
Гар тохиргоо
Бид дараах сүлжээтэй байна гэж төсөөлье:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
Энэ тохиолдолд RouterA нь Интернэт уруу
гарах чиглүүлэгч маягаар ажиллаж байгаа бидний &os; машин байна.
Энэ нь анхдагч чиглүүлэлтээ 10.0.0.1
гэж тохируулсан бөгөөд ингэснээр гаднах ертөнц уруу холбогдох боломжийг
олгоно. Бид RouterB нь зөв тохируулагдсан бөгөөд
хаа явах хэрэгцээтэй газраа хэрхэн хүрэхээ мэддэг гэж үзэх болно. (Энэ нь
зураг дээр хялбар юм. Ердөө л RouterB дээр 192.168.1.1-г гарц болгон анхдагч чиглүүлэлт
нэмнэ.)
Хэрэв бид RouterA-ийн чиглүүлэлтийн хүснэгтийг
харвал доор дурдсантай төстэйг харах болно:
&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1
Энэ үеийн чиглүүлэлтийн хүснэгттэй байхад RouterA нь
бидний Internal Net 2 буюу дотоод сүлжээ 2 уруу хүрч чадахгүй байх болно.
Энэ нь 192.168.2.0/24-ийн хувьд
чиглүүлэлтгүй байна. Үүнийг арилгах нэг арга нь гараар чиглүүлэлт нэмэх явдал юм.
Дараах тушаал нь RouterA-ийн чиглүүлэлтийн хүснэгтэд
192.168.1.2-г дараагийн зөрлөг (hop)
болгон ашиглан Internal Net 2 сүлжээг нэмэх болно:
&prompt.root; route add -net 192.168.2.0/24 192.168.1.2
Одоо RouterA нь 192.168.2.0/24
сүлжээн дэх дурын хост уруу хүрч чадна.
Байнгын тохиргоо
Дээрх жишээ нь ажиллаж байгаа систем дээр статик чиглүүлэлтийг
тохируулахад төгс төгөлдөр юм. Гэхдээ нэг асуудал нь таны &os; машин
дахин ачаалахад чиглүүлэлтийн мэдээлэл үлдэхгүй байх явдал юм.
Статик чиглүүлэлтийг байнга байлгахын тулд түүнийг /etc/rc.conf
файлд нэмнэ:
# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"
static_routes тохиргооны хувьсагч нь
зайгаар тусгаарлагдсан үгнүүдийн жагсаалт юм. Үг бүр чиглүүлэлтийн нэрийг
заана. Бидний жишээн дээр static_routes мөрөнд
бид зөвхөн нэг үгтэй байна. Энэ нь internalnet2
юм. Бид дараа нь &man.route.8; тушаалд өгөх бүх тохиргооны нэмэлт өгөгдлүүдийг
route_internalnet2
гэгдсэн тохиргооны хувьсагчийн хамтаар нэмнэ. Бидний жишээний хувьд бид ийм
тушаал ашиглаж болно:
&prompt.root; route add -net 192.168.2.0/24 192.168.1.2
тэгэхээр бидэнд "-net 192.168.2.0/24 192.168.1.2" хэрэгтэй.
Дээр дурдсанаар бид static_routes мөрөнд нэгээс
илүү үгс оруулж болно. Энэ нь бидэнд олон статик чиглүүлэлтүүд үүсгэх боломжийг
олгоно. Дараах мөрүүд нь 192.168.0.0/24 болон 192.168.1.0/24 сүлжээний хувьд статик чиглүүлэлтүүдийг
санаандаа төсөөлсөн чиглүүлэгч дээрээ нэмж байгаа жишээг үзүүлж байна:
static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"
Чиглүүлэлтийн тархалт
чиглүүлэлтийн тархалт
Бид гаднах ертөнц уруу чиглэсэн өөрсдийн чиглүүлэлтүүдийг хэрхэн тодорхойлох
талаар ярилцсан боловч гаднах ертөнц хэрхэн биднийг олох талаар хэлэлцээгүй билээ.
Чиглүүлэлтийн хүснэгтүүдийг тухайн нэг хаягийн талбарын (бидний жишээн дээр
C ангиллын дэд сүлжээ) бүх урсгал тэр сүлжээний тухайн нэг хост уруу илгээгдэж тэр нь
пакетуудыг дотогшоо дамжуулдгаар тохируулж болно гэдгийг бид мэдэж байгаа билээ.
Та өөрийн сайтдаа заагдсан хаягийн талбарыг авах үед таны үйлчилгээ үзүүлэгч
өөрсдийн чиглүүлэлтийн хүснэгтүүдийг таны дэд сүлжээнд зориулагдсан бүх урсгал
таны PPP холбоосоор таны сайт уруу илгээгддэгээр тохируулах болно. Гэхдээ улс даяар
байх бусад сайтууд таны ISP уруу илгээхээ яаж мэдэх вэ?
Бүх заагдсан хаягийн талбаруудыг хянаж Интернэтийн үндсэн сүлжээ уруу холбогдох
холболтын цэгийг тодорхойлдог систем (тараагдсан DNS-ийн мэдээлэлтэй бараг адил)
байдаг. Backbone
буюу гол нуруу (үндсэн сүлжээ)
нь улс даяар болон дэлхий даяар Интернэтийн урсгалыг зөөвөрлөж байдаг гол шугамнууд
юм. Гол нуруу машин бүр мастер хүснэгтүүдийн хуулбартай байдаг бөгөөд эдгээр хүснэгтүүд нь
тухайн нэг сүлжээнд зориулсан урсгалыг онцгой гол нуруу зөөвөрлөгч уруу чиглүүлж
тэндээсээ доош бусад үйлчилгээ үзүүлэгчдээр дамжин таны сүлжээнд хүрдэг.
Үндсэн (гол нуруу) сайтууд уруу зарлаж тэдгээр нь таны сайтын хувьд холболтын цэг
(буюу орох зам) гэж тодорхойлох нь таны үйлчилгээ үзүүлэгчийн үүрэг юм. Үүнийг чиглүүлэлтийн
тархалт гэж нэрлэдэг.
Алдааг олж засварлах
traceroute
Заримдаа чиглүүлэлтийн тархалт асуудалтай бөгөөд зарим нэгэн сайтууд өөр уруу
чинь холбогдож чадахгүй байж болно. Чиглүүлэлт хаана ажиллахгүй болж байгааг
олоход тус болох магадгүй хамгийн ашигтай тушаал нь &man.traceroute.8; тушаал
юм. Хэрэв та алсын машин уруу холбогдож чадахгүй юм шиг байвал (өөрөөр хэлбэл
&man.ping.8; амжилтгүй болвол) энэ нь бас адил ашигтай байдаг.
&man.traceroute.8; тушаалыг таны холбогдохыг оролдож байгаа алсын
хостын нэртэй ажиллуулдаг. Энэ нь гарц хостуудыг оролдлого хийж байгаа замын
хамтаар харуулдаг бөгөөд эцсийн хост уруу хүрэх юм уу эсвэл холболтын асуудлаас болоод
эцсийн хост уруугаа хүрэлгүйгээр ажиллаж дуусдаг.
Дэлгэрэнгүй мэдээллийг &man.traceroute.8;-ийн гарын авлагын хуудаснаас
үзнэ үү.
Multicast чиглүүлэлт хийх
multicast чиглүүлэлт хийх
цөмийн тохируулгууд
MROUTING
FreeBSD нь multicast програмууд болон multicast чиглүүлэлтийг
угаасаа дэмждэг. Multicast програмууд нь FreeBSD-ийн ямар нэг тусгай
тохиргоо шаарддаггүй; програмууд нь шууд л ажилладаг. Multicast
чиглүүлэлт нь дэмжлэгийг цөмд эмхэтгэхийг шаарддаг:
options MROUTING
Мөн multicast чиглүүлэлтийн дэмон &man.mrouted.8; нь
туннелиуд болон DVMRP-г үүсгэхээр
/etc/mrouted.conf файлын тусламжтай
тохируулагдсан байх ёстой. Multicast тохиргооны талаар дэлгэрэнгүй
мэдээллийг &man.mrouted.8;-ийн гарын авлагын хуудаснаас олж
болно.
Loader
Марк
Фонвил
Мюррей
Стөүкли
Утасгүй сүлжээ
утасгүй сүлжээ
802.11
утасгүй сүлжээ
Утасгүй сүлжээний үндсүүд
Ихэнх утасгүй сүлжээнүүд нь IEEE 802.11 стандартууд дээр үндэслэсэн
байдаг. Үндсэн утасгүй сүлжээ нь 2.4GHz юм уу эсвэл 5GHz-ийн зурваст
цацдаг радио долгионоор холбогддог олон станцуудаас тогтдог (энэ нь орон
нутгаас хамаарч өөр өөр байдаг бөгөөд 2.3GHz-с 4.9GHz-ийн хүрээнд холбоог
идэвхжүүлэхээр өөрчлөгдөж байгаа).
802.11 сүлжээ нь хоёр аргаар зохион байгуулагддаг:
дэд бүтцийн горимд нэг станц мастер маягаар ажиллаж
бусад станцууд нь түүнтэй холбогддог; энэ сүлжээг BSS гэдэг бөгөөд мастер
станц нь хандалтын цэг (access point)(AP) гэгддэг. BSS-т бүх холбоо AP-р
дамждаг; нэг станц өөр нэг утасгүй станцтай холбоо тогтоохыг хүссэн байсан ч гэсэн
мэдэгдлүүд нь AP-р дамжих ёстой байдаг. Хоёр дахь хэлбэрийн сүлжээнд
мастер байдаггүй бөгөөд станцууд нь шууд холбогддог. Энэ сүлжээний хэлбэрийг
IBSS гэдэг бөгөөд бас ad-hoc сүлжээ гэгддэг.
802.11 сүлжээнүүд нь 2.4GHz-ийн зурваст IEEE 802.11 болон 802.11b
стандартуудаар тодорхойлогдсон протоколуудыг ашиглан эхлэн хийгдэж байсан.
Эдгээр тодорхойлолтууд нь ажиллах давтамжууд, хүрээ хийх болон дамжуулах хурд
(холболт төрөл бүрийн хурдаар хийгдэж болно) зэрэг MAC давхаргын үзүүлэлтүүдийг
агуулдаг. Сүүлд 802.11a стандарт нь өөр дохионы арга замууд болон илүү өндөр дамжуулах
хурдууд зэрэг 5GHz-ийн зурвасын ажиллагааг тодорхойлсон билээ. Мөн дараа нь
802.11b сүлжээнүүдтэй буцаж нийцтэй байхаар 802.11a дохионы хэрэглээ болон
2.4GHz-ийн зурваст дамжуулах арга замуудыг идэвхжүүлж 802.11g стандарт
тодорхойлогдсон байна.
Суурь болсон дамжуулах техникүүдээс гадна 802.11 сүлжээнүүд нь
төрөл бүрийн аюулгүй байдлын арга замуудтай байдаг. Анхдагч 802.11
тодорхойлолтууд нь WEP гэгддэг аюулгүй байдлын энгийн протоколыг
тодорхойлсон билээ. Энэ протокол нь тогтмол, урьдчилан хуваалцсан
түлхүүр болон RC4 криптограф шифр ашиглан сүлжээнд дамжуулагдах өгөгдлийг
кодчилдог. Станцууд нь өөр хоорондоо холбогдохын тулд бүгд нэг тогтмол түлхүүр
дээр зөвшилцөх ёстой. Энэ схемийг амархан эвдэх боломжтойг харуулсан
бөгөөд дамжин өнгөрөх хэрэглэгчдийг сүлжээнд нэгдэхийг зөвлөдөггүйгээс бусад
тохиолдолд одоо ховор ашиглагдах болсон байна. Криптографийн шинэ шифрүүд болон
станцуудыг хандалтын цэгт танин нэвтрүүлж өгөгдлийн холболтыг хийхийн тулд түлхүүрүүдийг
солилцох нэмэлт протоколыг тодорхойлдог IEEE 802.11i тодорхойлолтоор одоогийн
аюулгүй байдлын практикийг тодорхойлдог. Мөн криптограф түлхүүрүүд нь
үе үе шинэчлэгддэг бөгөөд халдлагын оролдлогуудыг илрүүлэх (ба халдлагын оролдлогуудыг
сөрөх) арга замууд бас байдаг. Утасгүй сүлжээнүүдэд түгээмэл ашиглагддаг
өөр нэг аюулгүй байдлын протоколын тодорхойлолт нь WPA юм. Энэ нь
үйлдвэрлэлийн бүлгийн тодорхойлсон 802.11i-ийн өмнөх протокол
бөгөөд 802.11i-г батлахыг хүлээж байх хугацаанд түр зуурын арга хэмжээ
болох юм. WPA нь 802.11i-д байгаа шаардлагуудын дэд олонлогийг
тодорхойлж хуучин тоног төхөөрөмжүүд дээрх шийдэлд зориулагдан хийгджээ.
Ялангуяа WPA нь анхдагч WEP шифрээс гарсан TKIP шифрийг зөвхөн шаарддаг.
802.11i нь TKIP-ийн хэрэглээг зөвшөөрдөг боловч өгөгдлийг шифрлэхэд зориулж
илүү хүчирхэг шифр болох AES-CCM-ийн дэмжлэгийг бас шаарддаг. (AES шифр нь
WPA-д шаардагддаггүй, учир нь үүнийг хуучин тоног төхөөрөмж дээр хийхэд
тооцооллын хувьд өртөгтэй гэж үздэг.)
Дээрх протоколын стандартуудаас гадна мэдэж байх өөр нэг чухал стандарт
бол 802.11e юм. Энэ нь 802.11 сүлжээнд видео дамжуулах, IP дээгүүрх
дуу (VoIP) зэрэг мультимедиа хэрэглээнүүдэд шаардлагатай протоколуудыг
тодорхойлдог. 802.11i-тай адил 802.11e нь үйлдвэрлэлийн бүлгээс
802.11e-ийн дэд олонлог гэж тодорхойлсон, 802.11e-г батлахыг хүлээж байх
хугацаанд мультимедиа хэрэглээнүүдийг идэвхжүүлэхэд ашиглаж болох
WME (сүүлд WMM) гэгдсэн урьдчилсан тодорхойлолт байдаг.
802.11e болон WME/WMM-ийн талаар мэдэх ёстой хамгийн чухал зүйл нь
утасгүй сүлжээний зэрэглэл тогтоогдсон урсгалын хэрэглээг Quality of Service
(QoS) буюу үйлчилгээний чанарын протоколууд болон өргөтгөсөн зөөвөрлөгчийн
хандалтын протоколуудын тусламжтайгаар идэвхжүүлдэг явдал юм. Эдгээр
протоколуудын зөв шийдэл нь өгөгдлийн өндөр хурдтай тэсрэлт болон зэрэглэл
тогтоогдсон урсгалыг идэвхжүүлдэг.
6.0 хувилбараас эхлээд &os; нь 802.11a, 802.11b, болон 802.11g-г
ашиглан ажилладаг сүлжээнүүдийг дэмждэг. WPA болон 802.11i аюулгүй байдлын
протоколууд нь адилхан (11a, 11b, болон 11g-тэй цуг) дэмжигдсэн байдаг
бөгөөд WME/WMM протоколуудын шаарддаг QoS болон урсгалын зэрэглэлт нь
хязгааргүй тооны утасгүй төхөөрөмжүүдэд дэмжигдсэн байдаг.
Үндсэн тохируулга
Цөмийн тохиргоо
Утасгүй сүлжээг ашиглахын тулд танд утасгүй сүлжээний карт болон
цөмийг тохирох утасгүй сүлжээний дэмжлэгтэйгээр тохируулах хэрэгтэй
болно. Сүүлийнх нь олон модулиудад хуваагддаг. Тэгэхээр танд
зөвхөн өөрийнхөө ашиглах програм хангамжийг тохируулах хэрэгтэй болох
юм.
Танд эхлээд хэрэг болох зүйл нь утасгүй сүлжээний төхөөрөмж
юм. Хамгийн түгээмэл хэрэглэгддэг төхөөрөмжүүд нь Atheros-ийн
хийдэг хэсгүүдийг ашигладаг төхөөрөмжүүд байдаг. Эдгээр төхөөрөмжүүд нь
&man.ath.4; драйвераар дэмжигддэг бөгөөд /boot/loader.conf
файлд дараах мөрийг нэмэхийг шаарддаг:
if_ath_load="YES"
Atheros драйвер нь гурван тусдаа хэсэгт хуваагддаг: эдгээр нь зөв драйвер
(&man.ath.4;), бичил схемийн функцуудыг зохицуулдаг, тоног төхөөрөмжийн
дэмжлэгийн давхарга (&man.ath.hal.4;), болон хүрээнүүдийг дамжуулахын
тулд хэд хэдэн боломжит хурдуудаас (энд ath_rate_sample) сонгох алгоритм юм.
Та энэ дэмжлэгийг модуль хэлбэрээр дуудах үед түүнтэй хамааралтай зүйлс
автоматаар зохицуулагдах болно. Хэрэв танд Atheros төхөөрөмжийн оронд
өөр төхөөрөмж байгаа бол та тэр төхөөрөмжид зориулсан модулийг сонгох юм,
өөрөөр хэлбэл:
if_wi_load="YES"
гэж Intersil Prism хэсгүүд дээр суурилсан төхөөрөмжүүдийн
хувьд хийж өгнө (&man.wi.4; driver).
Энэ баримтын үлдсэн хэсэгт бид &man.ath.4; төхөөрөмжийг ашиглах
бөгөөд жишээнүүд дээрх төхөөрөмжийн нэр таны тохиргооны дагуу
өөрчлөгдөх ёстой. Байгаа утасгүй драйверуудын жагсаалтыг
&man.wlan.4; гарын авлагын хуудасны эхнээс олж болно. Таны
утасгүй төхөөрөмжид зориулагдсан &os;-ийн драйвер байхгүй бол магадгүй
&windows; драйверийг NDIS
драйверийн гүйцэтгэл хялбаршуулагчийн тусламжтай шууд ашиглаж
болох юм.
Төхөөрөмжийн драйверийг тохируулсныхаа дараа та драйверийн шаарддаг
802.11 сүлжээний дэмжлэгийг бас оруулах хэрэгтэй болно. &man.ath.4;
драйверийн хувьд энэ нь ядахдаа &man.wlan.4; модуль байх бөгөөд энэ модуль
нь утасгүй төхөөрөмжийн драйвертай цуг автоматаар дуудагддаг. Үүнтэй цуг
таны ашиглах аюулгүй байдлын протоколуудад зориулагдсан криптографын дэмжлэгийг
хийдэг модулиуд хэрэгтэй болно. Эдгээр нь &man.wlan.4; модулиар автоматаар
шаардлагын дагуу дуудагддаг байхаар зориулагдсан боловч одоохондоо эдгээрийг гараар
тохируулах шаардлагатай. Дараах модулиуд байдаг: &man.wlan.wep.4;, &man.wlan.ccmp.4;
болон &man.wlan.tkip.4;. &man.wlan.ccmp.4; болон &man.wlan.tkip.4;
драйверууд нь WPA ба/эсвэл 802.11i аюулгүй байдлын протоколуудыг ашиглахаар
болсон тохиолдолд танд зөвхөн хэрэгтэй байдаг. Хэрэв таны сүлжээ нээлттэй
(өөрөөр хэлбэл шифрлэлтгүй) ажиллах бол танд &man.wlan.wep.4; дэмжлэг
ерөөсөө хэрэггүй. Эдгээр модулиудыг ачаалах үед дуудахын тулд дараах мөрүүдийг
/boot/loader.conf файлд нэмнэ:
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
Системийн эхлүүлэх тохиргооны файлд (өөрөөр хэлбэл
/boot/loader.conf) ийм мэдээлэлтэйгээр та өөрийн
&os; хайрцгийг дахин ачаалах хэрэгтэй. Хэрэв та өөрийн машиныг дахин ачаалахыг
хүсэхгүй байгаа бол та модулиудыг &man.kldload.8;-ийн тусламжтайгаар
гараар дуудаж болно.
Хэрэв та модулиудыг ашиглахыг хүсэхгүй байгаа бол дараах мөрүүдийг өөрийн
цөмийн тохиргооны файлд нэмж эдгээр драйверуудыг цөмд эмхэтгэж болно:
device ath # Atheros IEEE 802.11 wireless network driver
device ath_hal # Atheros Hardware Access Layer
device ath_rate_sample # John Bicket's SampleRate control algorithm.
device wlan # 802.11 support (Required)
device wlan_wep # WEP crypto support for 802.11 devices
device wlan_ccmp # AES-CCMP crypto support for 802.11 devices
device wlan_tkip # TKIP and Michael crypto support for 802.11 devices
Цөмийн тохиргооны файлдаа ийм мэдээлэлтэйгээр цөмөө дахин эмхэтгээд
өөрийн &os; машиныг дахин ачаалах хэрэгтэй.
Систем ассаны дараа ачаалах үеийн мэдэгдлүүдэд үүнтэй адил
утасгүй төхөөрөмжийн талаар зарим мэдээллийг олж болно:
ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
ath0: Ethernet address: 00:11:95:d5:43:62
ath0: mac 7.9 phy 4.5 radio 5.6
Дэд бүтцийн горим
Дэд бүтцийн горим буюу BSS горим нь ихэвчлэн ашиглагддаг горим юм.
Энэ горимд утасгүй хандалтын цэгүүд нь утастай сүлжээнд холбогдсон байдаг.
Утасгүй сүлжээ бүр өөрийн нэртэй байдаг бөгөөд энэ нэр нь сүлжээний SSID
гэгддэг. Утасгүй клиентүүд нь утасгүй хандалтын цэгүүдэд холбогддог.
&os; клиентүүд
Хандалтын цэгүүдийг хэрхэн олох вэ
Сүлжээнүүдийг хайхын тулд ifconfig
тушаалыг ашиглана. Энэ хүсэлт нь хэсэг хором болж болох бөгөөд
боломжтой утасгүй давтамж бүр уруу шилжиж, байгаа хандалтын
цэгүүдийг шалгахыг системээс шаарддаг. Зөвхөн супер хэрэглэгч
ийм хайлт эхлүүлж чадна:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 6 54M 29:0 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M 22:0 100 EPS WPA
Та хайлт хийхээсээ өмнө интерфэйсээ болгож
тэмдэглэх ёстой. Дараа дараагийн хайлтын хүсэлтүүд интерфэйсийг
up болгож тэмдэглэхийг шаарддаггүй.
Хайлтын хүсэлтийн гаралт олсон BSS/IBSS сүлжээ бүрийг
харуулдаг. Сүлжээний нэр SSID-с
гадна хандалтын цэгийн MAC хаяг болох BSSID-г
бид харах болно. CAPS талбар нь сүлжээ бүрийн
төрөл болон тэнд ажиллаж байгаа станцуудын боломжуудыг заана:
E
Extended Service Set (ESS) буюу өргөтгөсөн үйлчилгээний олонлог.
Станц нь дэд бүтцийн сүлжээний хэсэг гэдгийг харуулна
(IBSS/ad-hoc сүлжээтэй харьцуулах юм бол ).
I
IBSS/ad-hoc сүлжээ. Станц нь ad-hoc сүлжээний хэсэг гэдгийг
харуулна (ESS сүлжээтэй харьцуулах юм бол).
P
Хувийн нууц. BSS-ийн дотор солилцож байгаа өгөгдлийн бүх
хүрээнүүдэд өгөгдлийн нууц байдал шаардлагатай байдаг. Энэ BSS нь
бусадтай солилцох өгөгдлийн хүрээнүүдийг шифрлэх/буцаах
WEP, TKIP эсвэл AES-CCMP зэрэг криптограф ашиглахыг станцаас
шаарддаг гэсэн үг юм.
S
Богино оршил (preamble). Сүлжээ богино оршлуудыг
(802.11b өндөр хурд/DSSS PHY-д тодорхойлогдсоноор богино
оршил нь урт оршилд ашиглагддаг 128 бит талбартай харьцуулах юм бол
56 бит sync талбарыг хэрэглэдэг) ашиглаж байгааг харуулдаг.
s
Богино слот (ангархай) хугацаа. 802.11g сүлжээ хуучин
(802.11b) станцууд байхгүй байгаа учраас богино слот хугацааг
хэрэглэж байгааг харуулна.
Мэдэгдэж байгаа сүлжээнүүдийн одоогийн жагсаалтыг бас доорх
тушаалаар харуулж болно:
&prompt.root; ifconfig ath0 list scan
Энэ мэдээллийг автоматаар хувиргагчаар (adapter) эсвэл гараар
хүсэлтийн тусламжтай шинэчилж болно.
Хуучин өгөгдөл кэшээс автоматаар арилгагдах болохоор хэсэг хугацаа
өнгөрсний дараа нэмэлт хайлтууд хийхгүй л бол энэ жагсаалт багасаж
болох юм.
Үндсэн тохиргоонууд
Энэ хэсэгт &os; дээр утасгүй сүлжээний хувиргагчийг шифрлэлтгүйгээр
хэрхэн ажиллуулахыг харуулсан энгийн жишээг үзүүлнэ. Эдгээр ойлголтуудыг
мэддэг болсныхоо дараа өөрийнхөө утасгүй сүлжээг тохируулахдаа
WPA-г ашиглахыг
бид тууштай зөвлөж байна.
Утасгүй сүлжээг тохируулах гурван үндсэн алхам байдаг: эдгээрт хандалтыг цэгийг
сонгох, өөрийн станцыг таниулж нэвтрүүлэх, болон IP хаягийг тохируулах
багтана. Дараах хэсэг алхам бүрийг хэлэлцэнэ.
Хандалтын цэгийг сонгох нь
Ихэнх тохиолдолд систем өөртөө бүтээгдсэн гүнзгийрүүлэн шалгах аргаа
(heuristic) ашиглан хандалтын цэгийг сонгохыг нь зөвшөөрөх хангалттай байдаг.
Таныг интерфэйсийг up гэж тэмдэглэх үед энэ нь анхдагч байх бөгөөд хэрэв
үгүй бол интерфэйсийг /etc/rc.conf файлд
жагсаан тохируулна, өөрөөр хэлбэл:
ifconfig_ath0="DHCP"
Хэрэв олон хандалтын цэгүүд байгаа бөгөөд та тухайн нэгийг сонгохыг
хүсвэл түүнийг SSID-аар нь сонгож болно:
ifconfig_ath0="ssid your_ssid_here DHCP"
Адил SSID-тай олон хандалтын цэгүүд байгаа орчинд (роуминг-ийг
(тэнүүчлэх) хялбар болгохын тулд ихэвчлэн хийдэг) аль нэг тухайн
төхөөрөмж уруу холбогдох шаардлагатай болж болох юм. Энэ тохиолдолд
та хандалтын цэгийн BSSID-ийг зааж өгч бас болох юм (та бас SSID-ийг
үлдээж болно):
ifconfig_ath0="ssid your_ssid_here bssid xx:xx:xx:xx:xx:xx DHCP"
Системийн хайлт хийх давтамжуудын олонлогийг хязгаарлах зэрэг хандалтын
цэгийн сонголтыг шаардах өөр аргууд байдаг.Та олон зурвасын
утасгүй сүлжээний карттай байх тохиолдолд энэ нь ашигтай байдаг. Ийм
тохиолдолд бүх боломжит сувгуудыг хайх нь цаг хугацаа шаардсан
ажил байдаг. Ажиллагааг тухайн нэг зурвас дээр хязгаарлахын тулд
параметрийг та ашиглаж болно, өөрөөр
хэлбэл:
ifconfig_ath0="mode 11g ssid your_ssid_here DHCP"
нь картыг 2.4GHz давтамжуудын хувьд тодорхойлогдсон 802.11g горимд
картыг ажиллуулах бөгөөд бусад 5GHz-ийн сувгуудыг авч үзэхгүй байх
болно. Үүнийг хийх өөр нэг арга нь ажиллагааг тухайн нэг давтамжид
түгжих параметр болон
хайлт хийхдээ сувгуудын жагсаалтыг заах
параметрийг ашиглах явдал юм. Эдгээр параметрүүдийн талаар дэлгэрэнгүй
мэдээллийг &man.ifconfig.8; гарын авлагын хуудаснаас лавлана уу.
Нэвтрэлт танилт
Хандалтын цэгийг сонгосны дараа таны станц өгөгдөл дамжуулахаа
өмнө өөрийгөө таниулан нэвтрэх хэрэгтэй. Нэвтрэлт танилт хэд хэдэн
аргаар хийгдэж болно. Ашиглагддаг хамгийн түгээмэл схем бол
нээлттэй нэвтрэлт танилт гэгддэг бөгөөд энэ нь дурын станц сүлжээнд нэгдэж
холбогдохыг зөвшөөрдөг. Энэ нь эхний удаа утасгүй сүлжээг тохируулж байхдаа
тестийн зорилгоор таны ашиглах ёстой нэвтрэлт танилт юм. Бусад
схемүүд нь өгөгдлийн урсгал эхлэхээс өмнө криптограф мэдээлэл
солилцоо хийгдэхийг шаарддаг; урьдчилсан хуваалцсан түлхүүрүүд эсвэл
нууц үгс ашиглах эсвэл RADIUS зэрэг арын үйлчилгээнүүдийг ашигладаг
илүү төвөгтэй схемүүд зэргийг дурдаж болно. Ихэнх хэрэглэгчид
нээлттэй нэвтрэлт танилт ашиглах бөгөөд энэ нь анхдагч тохиргоо
байдаг. Дараагийн хамгийн түгээмэл тохируулга бол WPA-PSK бөгөөд энэ нь
бас WPA Personal гэгддэг. Энэ тохируулга доор тайлбарлагдсан
байгаа.
Хэрэв танд хандалтын цэгт зориулсан &apple; &airport; Extreme дээр
суурилсан үндсэн станц байгаа бол WEP түлхүүртэй хамт хуваалцсан түлхүүрийг
тохируулах хэрэгтэй болж болох юм. Үүнийг /etc/rc.conf
файл эсвэл &man.wpa.supplicant.8; програмыг ашиглан хийж болно.
Хэрэв та ганц &airport; үндсэн станцтай бол хандалтыг иймэрхүүгээр хийж
өгч болно:
ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"
Ерөнхийдээ хуваалцсан түлхүүр бүхий нэвтрэлт танилтыг
ашиглахаас зайлсхийх хэрэгтэй, яагаад гэвэл WEP түлхүүрийн
материалыг их хүчилсэн хэлбэрээр ашигладаг нь түлхүүрийг
эвдэх боломжийг илүү амархан болгодог. Хэрэв WEP ашиглагдах
ёстой бол (өөрөөр хэлбэл хуучин төхөөрөмжтэй нийцтэй байх үүднээс)
WEP-ийг open буюу нээлттэй нэвтрэлт
танилттай цуг ашиглах нь зүйтэй юм. WEP-ийн талаар дэлгэрэнгүй
мэдээллийг -с олж болно.
DHCP-ээр IP хаяг авах
Хандалтын цэгийг сонгож нэвтрэлт танилтын параметрүүдийг тохируулсны
дараа холбогдохын тулд та IP хаяг авах хэрэгтэй болно. Та өөрийн утасгүй
IP хаягийг ихэвчлэн DHCP-ээр авах болно. Ингэхийн тулд ердөө л
/etc/rc.conf файлыг засварлаж
дээрх жишээн дээр үзүүлсэн шиг өөрийн төхөөрөмжийн тохиргоонд зориулж
DHCP гэж нэмж өгнө:
ifconfig_ath0="DHCP"
Энэ хүрэхэд та утасгүй интерфэйсээ ажиллуулахад бэлэн байх болно:
&prompt.root; /etc/rc.d/netif start
Интерфэйс ажиллаж эхэлсний дараа ath0
интерфэйсийн төлөвийг үзэхийн тулд ifconfig
тушаалыг ашиглана:
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid dlinkap channel 6 bssid 00:13:46:49:41:76
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
status: associated мөр нь
таныг утасгүй сүлжээнд (бидний тохиолдолд dlinkap
сүлжээ уруу) холбогдсон гэдгийг харуулж байна.
bssid 00:13:46:49:41:76 хэсэг нь
таны хандалтын цэгийн MAC хаяг юм; authmode мөр нь
холболт шифрлэгдээгүй гэдгийг танд харуулж байна
(OPEN).
Статик IP хаяг
DHCP серверээс IP хаяг авч чадахгүй тохиолдолд тогтмол IP хаяг
та тавьж болно. Дээр үзүүлсэн DHCP гэсэн
түлхүүр үгийг хаягийн мэдээллээр солих хэрэгтэй. Хандалтын цэгийг
сонгохдоо хэрэглэсэн бусад параметрүүдийг үлдээхээ мартуузай:
ifconfig_ath0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here"
WPA
WPA (Wi-Fi Protected Access буюу Wi-Fi Хамгаалагдсан Хандалт) нь
WEP-ийн
сул тал болон зөв нэвтрэлт танилтын дутмаг байдлыг арилгах зорилгоор
802.11 сүлжээнүүдэд цуг ашиглагддаг аюулгүй байдлын протокол
юм. WPA нь 802.1X нэвтрэлт танилтын протоколыг хөшүүрэгддэг бөгөөд өгөгдлийн
бүрэн бүтэн байдалд зориулж WEP-ийн оронд хэд хэдэн шифрүүдийн
нэгийг ашигладаг. WPA-ийн шаарддаг цорын ганц шифр бол TKIP
(Temporary Key Integrity Protocol) бөгөөд энэ нь
бүрэн бүтэн байдал шалгалт, хуурамч үйлдлийг илрүүлэлт болон илрүүлсэн
халдлагуудад хариулахад зориулсан арга хэмжээнүүдийг WEP-ийн ашигладаг
үндсэн RC4 шифрт нэмэн өргөтгөсөн шифр юм. TKIP нь хуучин тоног төхөөрөмж дээр
зөвхөн програм хангамжийн өөрчлөлттэйгөөр ажиллахаар хийгдсэн;
энэ нь аюулгүй байдлыг сайжруулдаг боловч халдлагаас бүрэн гүйцэд
хамгаалж чаддаггүй. WPA нь TKIP-г орлуулж AES-CCMP шифрийг
бас заадаг бөгөөд боломжтой тохиолдолд үүнийг хэрэглэхийг
урьтал болгодог; энэ тодорхойлолтод WPA2 (эсвэл RSN) гэсэн
ухагдахуун нийтлэг ашиглагддаг.
WPA нь нэвтрэлт танилт болон шифрлэлтийн протоколуудыг
тодорхойлдог. Нэвтрэлт танилт нь хоёр техникийн аль нэгээр
ихэвчлэн хийгддэг: 802.1X болон RADIUS зэрэг арын
нэвтрэлт танилтын үйлчилгээгээр эсвэл урьдчилан хуваалцсан нууц үг
ашиглан станц болон хандалтын хооронд хамгийн багаар мэдээлэл солилцох
(handshake) замаар хийгддэг. Эхнийх нь ихэвчлэн WPA Enterprise,
сүүлийнх нь WPA Personal гэгддэг. Ихэнх хүмүүс утасгүй сүлжээнд
зориулж арын RADIUS сервер тохируулдаггүй учир WPA-PSK нь
WPA-д зориулсан хамгийн түгээмэл тохиолддог тохиргоо юм.
Утасгүй холболтын хяналт болон нэвтрэлт танилт (түлхүүрийн
тохиролцоо эсвэл сервертэй хийх нэвтрэлт танилт) нь
&man.wpa.supplicant.8; хэрэгслээр хийгддэг. Энэ програм нь
ажиллахын тулд /etc/wpa_supplicant.conf
тохиргооны файл шаарддаг. Энэ файлын талаар дэлгэрэнгүй
мэдээллийг &man.wpa.supplicant.conf.5; гарын авлагын хуудаснаас
олж болно.
WPA-PSK
WPA-PSK нь бас WPA Personal гэгддэг бөгөөд өгөгдсөн нууц үгээс үүсгэгдсэн
pre-shared key буюу (PSK) урьдчилан хуваалцсан түлхүүр дээр суурилдаг
бөгөөд утасгүй сүлжээнд мастер түлхүүр болон ашиглагддаг. Энэ нь
утасгүй хэрэглэгч бүр адил түлхүүрийг хуваалцана гэсэн үг юм.
WPA-PSK нь нэвтрэлт танилтын сервер хэрэглэх боломжгүй эсвэл шаардлагагүй
жижиг сүлжээнүүдэд зориулагдсан юм.
Хангалттай урт, төрөл бүрийн тэмдэгтүүдээс бүтсэн, таах буюу/эсвэл халдах
боломжгүй хэцүү нууц үгсийг үргэлж ашиглах хэрэгтэй.
Эхний алхам нь /etc/wpa_supplicant.conf
файлыг өөрийн сүлжээний SSID болон урьдчилан хуваалцсан түлхүүрээр
тохируулах явдал юм:
network={
ssid="freebsdap"
psk="freebsdmall"
}
Дараа нь бид /etc/rc.conf файлд
утасгүй төхөөрөмжийн тохиргоо WPA-аар хийгдэж IP хаяг DHCP-ээс
авагдана гэдгийг зааж өгнө:
ifconfig_ath0="WPA DHCP"
Дараа нь бид интерфэйсийг босгож ажиллуулна:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
Эсвэл та үүнийг гараар дээрх
/etc/wpa_supplicant.conf ашиглан
хийж доор дурдсан тушаалыг ажиллуулж болно:
&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP]
Дараагийн үйлдэл нь DHCP серверээс IP хаяг авахын тулд
dhclient тушаалыг ажиллуулах явдал
юм:
&prompt.root; dhclient ath0
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
Хэрэв /etc/rc.conf файл нь
ifconfig_ath0="DHCP" мөртэй тохируулагдсан
бол dhclient тушаалыг гараар ажиллуулах
шаардлагагүй, dhclient тушаал нь
түлхүүрүүдийг wpa_supplicant гаргаж
авсны дараа ажиллах болно.
DHCP-ийн хэрэглээ боломжгүй тохиолдолд wpa_supplicant
станцыг таниулж нэвтрүүлсний дараа та статик IP хаяг
тохируулж болно:
&prompt.root; ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
DHCP сервер ашиглагдаагүй үед та анхдагч гарц болон
нэрийн серверийг гараар бас тохируулах хэрэгтэй болно:
&prompt.root; route add default your_default_router
&prompt.root; echo "nameserver your_DNS_server" >> /etc/resolv.conf
EAP-TLS-тэй WPA
WPA-г ашиглах хоёр дахь арга нь 802.1X арын нэвтрэлт танилтын
сервертэй цуг ашиглах явдал бөгөөд энэ тохиолдолд WPA-г
урьдчилан хуваалцсан түлхүүр бүхий аюулгүй байдлын хувьд арай дутуу WPA-Personal-с
ялгахын тулд WPA-Enterprise гэдэг. WPA-Enterprise дахь
нэвтрэлт танилт нь EAP (Extensible Authentication Protocol
буюу өргөтгөсөн нэвтрэлт танилтын протокол) дээр суурилдаг.
EAP нь шифрлэлтийн аргагүй ирдэг бөгөөд харин шифрлэгдсэн туннелийн
дотор EAP-ийг суулгахаар шийдсэн байдаг. EAP нэвтрэлт танилтын аргуудын
олон төрлүүд бүтээгдсэн бөгөөд хамгийн түгээмэл аргууд нь EAP-TLS, EAP-TTLS
болон EAP-PEAP юм.
EAP-TLS (EAP with Transport Layer Security) нь
Wi-Fi alliance-аас
хамгийн түрүүнд батламжлагдсан EAP арга бөгөөд утасгүй ертөнц дэх
маш сайн дэмжигдсэн нэвтрэлт танилтын протокол юм. EAP-TLS нь
ажиллахын тулд гурван сертификат шаарддаг: эдгээр нь CA сертификат (бүх машин
дээр суулгагдсан), таны нэвтрэлт танилтын серверт зориулсан сертификат,
утасгүй клиент бүрд зориулсан клиентийн сертификат юм. Энэ
EAP арга дээр нэвтрэлт танилтын сервер болон утасгүй клиент нь
өөр өөрсдийн сертификатыг бие биендээ үзүүлж нэг нэгнийгээ
танин нэвтрүүлдэг бөгөөд тэд эдгээр сертификатыг танай байгууллагын
сертификатын удирдлага (CA) олгож баталгаажуулсан болохыг
шалгадаг.
Урьдын адил тохиргоог /etc/wpa_supplicant.conf
файлаар хийнэ:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}
Энэ талбар нь сүлжээний нэрийг заана
(SSID).
Энд бид RSN (IEEE 802.11i) протоколыг ашиглана, өөрөөр хэлбэл,
WPA2.
key_mgmt мөр нь бидний ашиглах
түлхүүр удирдах протоколыг заана. Бидний тохиолдолд энэ нь EAP
нэвтрэлт танилтыг ашиглаж байгаа WPA юм:
WPA-EAP.
Энэ талбарт бид өөрсдийн холболтдоо зориулж EAP
аргыг заана.
identity талбар нь EAP-ийг таниулах
мөрийг агуулна.
ca_cert талбар нь CA сертификат
файлын замыг заана. Энэ файл нь серверийн сертификатыг шалгахад
хэрэгтэй.
client_cert шугам клиентийн
сертификатын файлын замыг өгнө. Энэ сертификат нь сүлжээний
утасгүй клиент бүрийн хувьд давтагдашгүй байна.
private_key талбар нь
клиентийн сертификатын хувийн түлхүүрийн файлын замын нэр
юм.
private_key_passwd талбар нь
хувийн түлхүүрийн нэвтрэх үгийг агуулдаг.
Тэгээд дараах мөрийг
/etc/rc.conf файлд нэмнэ:
ifconfig_ath0="WPA DHCP"
Дараагийн алхам нь rc.d боломжийн
тусламжтай интерфэйсийг босгож ажиллуулах явдал юм:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
Урьд нь үзүүлсний адил интерфэйсийг гараар wpa_supplicant болон
ifconfig тушаалуудаар босгох боломжтой
байдаг.
EAP-TTLS-тэй WPA
EAP-TLS-тэй байхад нэвтрэлт танилтын сервер болон клиентэд
сертификат хэрэгтэй бол EAP-TTLS-тэй (EAP-Tunneled
Transport Layer Security) байхад клиентийн сертификат
нэмэлт сонголт байдаг. Энэ арга нь зорчигчид клиент талдаа
сертификатгүй байсан ч гэсэн нууцлаг SSL туннель үүсгэж чаддаг
зарим нэг аюулгүй вэб сайтуудын хийдэгтэй ойролцоо байдаг.
EAP-TTLS нь нэвтрэлт танилтын өгөгдлийг аюулгүй тээвэрлэхэд
зориулж шифрлэгдсэн TLS туннелийг ашиглах болно.
Тохиргоог /etc/wpa_supplicant.conf
файлаар хийнэ:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}
Энэ талбарт бид өөрийн холболтондоо зориулж
EAP аргыг дурдана.
identity талбар нь шифрлэгдсэн TLS
туннель доторх EAP нэвтрэлт танилтад зориулсан таниулах мөрийг
агуулна.
password талбар нь EAP нэвтрэлт
танилтад зориулсан нэвтрэх үгийг агуулна.
ca_cert талбар нь CA сертификатын
файлын замын нэрийг заана. Энэ файл нь серверийн сертификатыг
шалгахад хэрэгтэй байдаг.
Энэ талбарт бид шифрлэгдсэн TLS туннельд ашиглагдсан
нэвтрэлт танилтын аргыг заана. Бидний тохиолдолд MD5-Challenge-тай
цуг EAP ашиглагдаж байна. inner authentication
дотоод нэвтрэлт танилт үе нь ихэвчлэн phase2
буюу хоёрдугаар
үе гэгддэг.
Дараах мөрийг та /etc/rc.conf файлд
бас нэмэх хэрэгтэй:
ifconfig_ath0="WPA DHCP"
Дараагийн алхам бол интерфэйсийг босгож ажиллуулах явдал юм:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
EAP-PEAP-тэй WPA
PEAP (Protected EAP) нь EAP-TTLS-ийн өөр нэг хувилбар хэлбэрээр
байхаар хийгдсэн юм. Хоёр төрлийн PEAP арга байдаг бөгөөд хамгийн
түгээмэл нь PEAPv0/EAP-MSCHAPv2 юм. Энэ баримтын үлдсэн хэсэгт
PEAP ухагдахууныг тэр EAP аргыг хэлэхдээ хэрэглэх болно. PEAP нь
EAP-TLS-ийн дараа ордог хамгийн их ашиглагддаг EAP стандарт юм,
өөрөөр хэлбэл хэрэв та төрөл бүрийн OS-үүд холилдсон сүлжээтэй бол
PEAP нь EAP-TLS-ийн дараа орох хамгийн ихээр дэмжигдсэн стандарт
байх юм.
PEAP нь EAP-TLS-тэй төстэй байдаг: энэ нь клиент болон
нэвтрэлт танилтын серверийн хооронд нэвтрэлт танилтын
мэдээллийн солилцоог хамгаалах шифрлэгдсэн туннель үүсгэн
клиентүүдийг танин нэвтрүүлэхийн тулд сервер талын сертификатыг
ашигладаг. Аюулгүй байдлын ухагдахуун дахь EAP-TTLS болон PEAP-ийн
хоорондох ялгаа нь PEAP нэвтрэлт танилт хэрэглэгчийн нэрийг
цэвэр текст хэлбэрээр, зөвхөн нууц үгийг шифрлэгдсэн TLS туннелээр
цацдаг явдал юм. EAP-TTLS нь хэрэглэгчийн нэр болон нууц үгт
зориулж TLS туннелийг ашиглах болно.
Бид /etc/wpa_supplicant.conf файлыг
засварлаж EAP-PEAP-тэй холбоотой тохируулгуудыг нэмэх хэрэгтэй болно:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
Энэ талбарт бид өөрийн холболтондоо зориулж EAP аргыг
ашиглахаа дурдана.
identity талбар нь шифрлэгдсэн TLS
туннель доторх EAP нэвтрэлт танилтад зориулсан таниулах мөрийг
агуулна.
password талбар нь EAP нэвтрэлт
танилтад зориулсан нэвтрэх үгийг агуулна.
ca_cert талбар нь CA сертификатын
файлын замын нэрийг заана. Энэ файл нь серверийн сертификатыг
шалгахад хэрэгтэй байдаг.
Энэ талбар нь нэвтрэлт танилтын (TLS туннель) эхний үед
зориулсан параметрүүдийг агуулна. Ашигласан нэвтрэлт танилтын
серверээс хамаараад нэвтрэлт танилтад зориулж тусгай хаяг/шошгыг
зааж өгөх хэрэгтэй болно. Ихэнх тохиолдолд хаяг/шошго нь
клиентийн EAP шифрлэлт
байх бөгөөд үүнийг
peaplabel=0 гэж тохируулна.
Илүү мэдээллийг &man.wpa.supplicant.conf.5;
гарын авлагын хуудаснаас олж болно.
Энэ талбарт бид шифрлэгдсэн TLS туннельд ашиглагдсан
нэвтрэлт танилтын аргыг заана. PEAP-ийн хувьд энэ нь
auth=MSCHAPV2 байна.
Доор дурдсаныг /etc/rc.conf файлд
нэмэх ёстой:
ifconfig_ath0="WPA DHCP"
Дараа нь бид интерфэйсийг босгож ажиллуулж болно:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
WEP
WEP (Wired Equivalent Privacy) нь анхдагч 802.11 стандартын
хэсэг юм. Үүнд ямар ч нэвтрэлт танилтын арга байхгүй, энэ нь хандалт
хяналтын зөвхөн сул хэлбэр бөгөөд хялбар эвдэх боломжтой байдаг.
WEP-ийг ifconfig тушаалаар
тохируулж болно:
&prompt.root; ifconfig ath0 inet 192.168.1.100 netmask 255.255.255.0 ssid my_net \
wepmode on weptxkey 3 wepkey 3:0x3456789012
weptxkey нь дамжуулалтад
ямар WEP түлхүүр ашиглахыг хэлж байна. Энд бид гурав дахь
түлхүүрийг ашиглаж байна. Энэ нь хандалтын цэг дэх тохиргоотой
таарах ёстой.
wepkey нь сонгогдсон WEP түлхүүрийг
тохируулахыг хэлнэ. Энэ нь index:key
хэлбэрийн байх ёстой бөгөөд индекс өгөгдөөгүй бол түлхүүр
1 тохируулагдана. Энэ нь хэрэв бид
эхний түлхүүрээс өөр түлхүүрүүдийг ашиглах бол индексийг тохируулах
хэрэгтэй гэсэн үг юм.
Та 0x3456789012-г
хандалтын цэг дээр ашиглахаар тохируулсан түлхүүрээр
солих ёстой.
Цаашхи мэдээллийг &man.ifconfig.8; гарын авлагын
хуудаснаас унших нь зүйтэй юм.
wpa_supplicant хэрэгслийг өөрийн утасгүй
интерфэйсийг WEP-тэй тохируулахын тулд бас ашиглаж болно.
Дараах мөрийг /etc/wpa_supplicant.conf
файлд нэмж дээрх жишээг тохируулж болно:
network={
ssid="my_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}
Дараа нь:
&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76
Ad-hoc горим
IBSS горим буюу бас ad-hoc гэгддэг горим нь цэгээс цэгт холбогдох холболтуудад
зориулагдан хийгдсэн. Жишээ нь A машин болон B
машины хооронд ad-hoc сүлжээ үүсгэхийн тулд бид ердөө л хоёр IP хаяг болон SSID
сонгох хэрэгтэй болно.
A машин дээр:
&prompt.root; ifconfig ath0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
adhoc параметр нь интерфэйс IBSS горимд ажиллаж
байгааг харуулж байна.
B машин дээр бид A машиныг
илрүүлж чадах ёстой:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M 19:0 100 IS
Гаралт дээрх I нь A
машин ad-hoc горимд байгааг батална. Бид одоо B-г
өөр IP хаягтайгаар тохируулах хэрэгтэй:
&prompt.root; ifconfig ath0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
A болон B нь одоо
мэдээлэл солилцоход бэлэн боллоо.
Алдааг олж засварлах
Хэрэв та утасгүй сүлжээндээ асуудалтай байгаа бол асуудлыг олж
засварлахад туслах хэд хэдэн алхмууд байдаг.
Хайлт хийж байхдаа та хандалтын цэгийг олж харахгүй байгаа бол
та өөрийн утасгүй төхөөрөмжөө тодорхой хэдэн сувгууд дээр
хязгаарлаж тохируулаагүй эсэхээ шалгаарай.
Хэрэв та хандалтын цэгт холбогдож чадахгүй байгаа бол таны станцын
тохиргоо хандалтын цэгийн аль нэгтэй тохирч байгаа эсэхийг шалгаарай.
Үүнд нэвтрэлт танилтын схем болон аюулгүй байдлын протоколууд
хамаарна. Өөрийн тохиргоогоо аль болох хялбаршуулах хэрэгтэй.
Хэрэв та WPA эсвэл WEP зэрэг аюулгүй байдлын протоколыг
ашиглаж байгаа бол хандалтын цэгийг нээлттэй нэвтрэлт танилтад зориулж
ямар нэгэн аюулгүй байдлын хамгаалалтгүй тохируулж урсгал
дамжиж байгаа эсэхийг үзэх хэрэгтэй.
Хандалтын цэгт холбогдсоныхоо дараа &man.ping.8; зэрэг
хялбар хэрэгслүүдийг ашиглаад ямар ч аюулгүй байдлын тохиргоог
оношилж болно.
wpa_supplicant нь илүү дибаг хийх
дэмжлэгтэй байдаг; үүнийг сонголттой
гараар ажиллуулж системийн бүртгэлүүдийг шалгах хэрэгтэй.
Мөн олон доод түвшний дибаг хийх хэрэгслүүд бас байдаг. Та
802.11 протоколын дэмжлэг давхаргад дибаг мэдэгдлүүдийг
/usr/src/tools/tools/net80211 дахь
wlandebug програмыг ашиглан идэвхжүүлж
болно. Жишээ нь:
&prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>
тушаал нь хандалтын цэгүүдийг хайх болон холбоог зохион байгуулах
802.11 протоколын мэдээлэл солилцоонуудыг хийхтэй холбоотой
консолын мэдэгдлүүдийг идэвхжүүлэхэд ашиглагдаж болох юм.
802.11 давхаргын арчилж байдаг олон ашигтай статистикууд бас
байдаг; эдгээр мэдээллүүдийг wlanstats
хэрэгсэл харуулах болно. Эдгээр статистикууд нь 802.11 давхаргаар
танигдсан бүх алдаануудыг таних ёстой. Гэхдээ 802.11 давхаргаас доош
орших төхөөрөмжийн драйверууд дээр танигдсан зарим алдаанууд нь
харуулагдахгүй байж болохыг санаарай. Төхөөрөмжтэй холбоотой
асуудлуудыг оношлохын тулд та драйверийн баримтаас лавлах хэрэгтэй юм.
Хэрэв дээрх мэдээлэл асуудлыг тодруулахад тань туслахгүй байгаа бол
дээрх хэрэгслүүдээс гарсан гаралтыг оруулж асуудлынхаа тайланг илгээгээрэй.
Пав
Лукистник
Бичсэн
pav@FreeBSD.org
Bluetooth
Bluetooth
Танилцуулга
Bluetooth нь 10 метрийн дотор 2.4 GHz давтамжийн лицензжүүлээгүй
зурваст ажиллах хувийн сүлжээнүүд үүсгэхэд зориулагдсан утасгүй технологи юм.
Сүлжээнүүд нь үүрэн утас, гарын цахим жижиг хэрэгслүүд, болон зөөврийн
компьютерууд зэрэг зөөврийн төхөөрөмжүүдээс ad-hoc ихэвчлэн бүрдүүлдэг.
Бусад түгээмэл утасгүй технологиудаас ялгаатай тал нь Wi-Fi, Bluetooth нь
илүү өндөр түвшний үйлчилгээний хувийн тохиргоонуудыг санал болгодог, өөрөөр
хэлбэл FTP-тэй адил файлын серверүүд, файл түлхэх, дуу дамжуулалт,
цуваа шугамын эмуляц зэрэг олныг дурдаж болно.
&os; дэх Bluetooth стек нь Netgraph тогтолцоог ашиглан хийгдсэн
байдаг (&man.netgraph.4;-г үзнэ үү). Олон төрлийн Bluetooth USB хамгаалах
төхөөрөмжүүд (dongle) &man.ng.ubt.4; драйвераар дэмжигдсэн байдаг.
Broadcom BCM2033 бичил схем дээр суурилсан Bluetooth төхөөрөмжүүд нь
&man.ubtbcmfw.4; болон &man.ng.ubt.4; драйверуудаар дэмжигдсэн байдаг.
3Com Bluetooth PC Карт 3CRWB60-A нь &man.ng.bt3c.4; драйвераар
дэмжигдсэн байдаг. Цуваа болон UART дээр суурилсан Bluetooth төхөөрөмжүүд нь
&man.sio.4;, &man.ng.h4.4; болон &man.hcseriald.8; драйверуудаар
дэмжигдсэн. Энэ хэсэг нь USB Bluetooth dongle-ийн хэрэглээг тайлбарлах
болно.
Төхөөрөмжид залгах нь
Анхдагчаар Bluetooth төхөөрөмжийн драйверууд нь цөмийн модуль хэлбэрээр
байдаг. Төхөөрөмжийг залгахаасаа өмнө та драйверийг цөмд дуудаж ачаалах хэрэгтэй
болно:
&prompt.root; kldload ng_ubt
Хэрэв Bluetooth төхөөрөмж системийг эхлүүлэх явцад системд байх юм бол
/boot/loader.conf файлаас модулийг дуудна:
ng_ubt_load="YES"
Өөрийн USB dongle-ийг залга. Консол (эсвэл syslog) дээр доор дурдсантай төстэй
гаралт гарч ирэх болно:
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294
Bluetooth стек нь &os; 6.0 болон 5.5-аас өмнөх &os; 5.X
хувилбарууд дээр гараар эхлүүлэгдэх ёстой. Энэ нь &os; 5.5, 6.1 болон түүнээс
шинэ хувилбарууд дээр &man.devd.8;-ээс автоматаар хийгддэг.
/usr/share/examples/netgraph/bluetooth/rc.bluetooth-г
/etc/rc.bluetooth гэх мэт ямар нэг тохиромжтой газар хуулах хэрэгтэй.
Энэ скрипт ньь Bluetooth стекийг эхлүүлэх болон зогсооход хэрэглэгддэг. Төхөөрөмжийг
салгахаасаа өмнө стекийг зогсоох нь зөв байдаг, гэхдээ энэ нь (ихэвчлэн) сүйрлийн биш
байдаг. Стекийг эхлүүлж байхад доор дурдсантай төстэй гаралтыг та хүлээн авах
болно:
&prompt.root; /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8
HCI
Host Controller Interface (HCI) буюу Хостын Хянагчийн Интерфэйс
Host Controller Interface (HCI) буюу Хостын Хянагчийн Интерфэйс нь
үндсэн зурвасын хянагч болон холболтын менежерт тушаалын интерфэйсийг,
тоног төхөөрөмжийн төлөв болон хяналтын регистрүүдэд хандалтыг өгдөг байна.
Энэ интерфэйс нь Bluetooth-ийн үндсэн зурвасын боломжуудад хандах нэгэн
хэвийн аргыг олгодог. Хост дээрх HCI давхарга нь өгөгдөл болон тушаалуудыг
Bluetooth тоног төхөөрөмж дээрх HCI firmware-тэй солилцдог.
Хостын Хянагчийн Тээврийн Давхаргын (өөрөөр хэлбэл физик шугам) драйвер нь
HCI давхаргуудад нэг нь нөгөөдөө мэдээлэл солилцох боломжоор хангаж
өгдөг.
hci төрлийн ганц Netgraph цэг ганц Bluetooth
төхөөрөмжийн хувьд үүсдэг. HCI цэг нь Bluetooth төхөөрөмжийн драйверийн цэгт
(доош) болон L2CAP цэгт (дээш) ихэвчлэн холбогддог. Бүх HCI үйлдлүүд нь
төхөөрөмжийн драйверийн цэг дээр биш HCI цэг дээр хийгдэх ёстой. HCI цэгийн
анхдагч нэр нь devicehci
юм. Илүү дэлгэрэнгүй
мэдээллийг &man.ng.hci.4; гарын авлагын хуудаснаас лавлана уу.
Хамгийн нийтлэг ажлуудын нэг нь RF-ийн ойр Bluetooth төхөөрөмжүүдийг
олох явдал юм. Энэ үйлдлийг inquiry буюу
лавлагаа гэдэг. Лавлагаа болон бусад HCI-тэй холбоотой үйлдлүүд нь
&man.hccontrol.8; хэрэгслээр хийгддэг. Доорх жишээ нь ойр орчим ямар
Bluetooth төхөөрөмжүүд байгааг хэрхэн олохыг харуулж байна. Та төхөөрөмжүүдийн
жагсаалтыг хэдхэн секундэд авах ёстой. Алсын төхөөрөмж нь
илрүүлэгдэх горимд байгаа тохиолдолд лавлагаанд зөвхөн
хариулах болно гэдгийг санаарай.
&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]
BD_ADDR нь Bluetooth төхөөрөмжийн
сүлжээний картанд байдаг MAC хаягууд шиг давтагдашгүй хаяг юм. Энэ хаяг нь
төхөөрөмжтэй холбогдоход цаашид хэрэг болдог. BD_ADDR-т хүн уншиж
болохоор нэр өгөх боломжтой байдаг. /etc/bluetooth/hosts
файл нь мэдэгдэж байгаа Bluetooth хостуудын тухай мэдээллийг
агуулдаг. Дараах жишээ нь алсын төхөөрөмжид өгсөн хүн уншиж болохоор нэрийг
хэрхэн авч болохыг үзүүлж байна:
&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39
Хэрэв та лавлагааг алсын Bluetooth төхөөрөмж дээр хийх юм бол энэ нь
таны компьютерийг your.host.name (ubt0)
хэлбэрээр
олох болно. Локал төхөөрөмжид өгсөн нэрийг ямар ч үед өөрчилж болно.
Bluetooth систем нь цэгээс-цэгт-хүрэх (point-to-point)
эсвэл цэгээс-олон-цэгт-хүрэх (point-to-multipoint) холболтын боломжийг олгодог.
Цэгээс-олон-цэгт-хүрэх (point-to-multipoint) холболтод холболт нь
хэд хэдэн Bluetooth төхөөрөмжүүдийн хооронд хуваалцан хэрэглэгддэг. Дараах
жишээ нь локал төхөөрөмжийн хувьд идэвхтэй үндсэн зурвасын холболтуудын
жагсаалтыг хэрхэн авахыг үзүүлж байна:
&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN
connection handle буюу холболтын гар
нь үндсэн зурвасын холболтыг дуусгах шаардлагатай үед ашигтай байдаг.
Үүнийг гараар хийхийг ерөнхийдөө шаарддаггүйг санаарай. Стек нь идэвхгүй байгаа
үндсэн зурвасын холболтуудыг автоматаар дуусгах болно.
&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]
HCI тушаалуудын бүрэн жагсаалыг hccontrol help
гэж лавлана уу. HCI тушаалуудын ихэнх нь супер хэрэглэгчийн зөвшөөрлүүдийг
шаарддаггүй.
L2CAP
Logical Link Control and Adaptation Protocol (L2CAP) буюу
Логик Холболтын Хяналт ба Тааруулах Протокол
Логик Холболтын Хяналт ба Тааруулах Протокол (L2CAP) нь
холболт дээр тулгуурласан болон холболтгүй (connection-oriented and
connectionless) өгөгдлийн үйлчилгээнүүдийг протокол олон хуваагдах (multiplex)
чадвар болон сегмент болгож дахин цуглуулах үйлдэлтэй цуг дээд түвшний
протоколуудад хангаж өгдөг. L2CAP нь уртаараа 64 килобайт хүртэл хэмжээний
L2CAP пакетуудыг дамжуулж хүлээн авахыг өндөр түвшний протоколууд болон
програмуудад зөвшөөрдөг.
L2CAP нь сувгууд гэсэн ойлголт дээр тулгуурладаг.
Суваг нь үндсэн зурвасын холболт дээрх логик холболт юм. Суваг бүр ганц протоколд
олноос нэг уруу чиглэсэн загвараар уягдсан байдаг. Олон сувгууд нэг протоколд
уягдаж болдог боловч нэг сувгийг олон протоколд уяж болдоггүй. Суваг дээр
хүлээн авсан L2CAP пакет бүр зохих дээд түвшний протокол уруу чиглүүлэгддэг.
Олон сувгууд нь нэг үндсэн зурвасын холболтыг хуваалцаж болно.
l2cap төрлийн ганц Netgraph цэг ганц Bluetooth
төхөөрөмжийн хувьд үүсгэгддэг. L2CAP цэг нь Bluetooth HCI цэг (доош) болон
Bluetooth сокетуудад (дээш) ихэвчлэн холбогддог. Илүү дэлгэрэнгүй мэдээллийг
&man.ng.l2cap.4; гарын авлагын хуудаснаас лавлана уу.
Ашигтай тушаал бол бусад хэрэгслүүд уруу ping хийхэд хэрэглэгддэг
&man.l2ping.8; тушаал юм. Зарим нэг Bluetooth шийдлүүд нь тэдэн уруу
илгээсэн бүх өгөгдлийг буцаахгүй байж болох учраас дараах жишээн дээрх
0 bytes гэдэг нь хэвийн юм.
&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0
&man.l2control.8; хэрэгсэл нь L2CAP цэгүүд дээр төрөл бүрийн үйлдлүүдийг
хийдэг. Энэ жишээ нь логик холболтуудын (сувгууд) жагсаалт болон локал төхөөрөмжийн
хувьд үндсэн зурвасын жагсаалтыг хэрхэн авахыг үзүүлж байна:
&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN
Өөр нэг оношлогооны хэрэгсэл бол &man.btsockstat.1; юм. Энэ нь
&man.netstat.1;-ийн хийдэгтэй төстэйг хийдэг, гэхдээ зөвхөн Bluetooth сүлжээтэй
холбоотой өгөгдлийн бүтцүүдийн хувьд хийдэг. Доорх жишээ нь дээрх &man.l2control.8;-ийн
нэгэн адил логик холболтыг харуулж байна.
&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN
RFCOMM
RFCOMM Протокол
RFCOMM протокол нь L2CAP протоколын дээгүүр цуваа портуудыг эмуляц хийх
боломжийг хангадаг. Энэ протокол нь ETSI стандарт TS 07.10 дээр суурилсан юм.
RFCOMM нь RS-232 (EIATIA-232-E) цуваа портуудын 9 замыг эмуляц хийх нэмэлт
бэлтгэл бүхий ердийн тээвэрлэх протокол юм. RFCOMM протокол нь хоёр Bluetooth
төхөөрөмжийн хооронд 60 хүртэлх зэрэг холболтуудыг (RFCOMM сувгууд)
дэмждэг.
RFCOMM-ийн хувьд өөр өөр төхөөрөмжүүд (холбооны төгсгөлийн цэгүүд)
дээр ажиллаж байгаа хоёр програм болон тэдгээрийн хоорондын холбооны сегмент
холбооны бүрэн замд ордог. RFCOMM нь төхөөрөмжүүд дээр байгаа цуваа портуудыг ашигладаг
програмуудад зориулагдсан юм. Холбооны сегмент нь нэг төхөөрөмжөөс нөгөө уруу
холбогдсон (шууд холболт) Bluetooth холбоос юм.
RFCOMM нь шууд холболтын үед төхөөрөмжүүдийн хоорондох холболт
эсвэл сүлжээний хувьд төхөөрөмж болон модемийн хоорондох холболтод зөвхөн
санаа тавьдаг. RFCOMM нь нэг талдаа Bluetooth утасгүй технологийг ашиглаж
холбогддог бөгөөд нөгөө талдаа утастай интерфэйсээр хангадаг модулиуд зэрэг бусад
тохиргоонуудыг дэмждэг.
&os; дээр RFCOMM протокол нь Bluetooth сокетуудын давхаргад хийгддэг.
хослох
Төхөөрөмжүүдийг хослох
Анхдагчаар Bluetooth холбоонд нэвтрэлт танилт хийгддэггүй бөгөөд ямар ч
төхөөрөмж ямар ч төхөөрөмжтэй ярилцаж чаддаг. Bluetooth төхөөрөмж (жишээ нь
үүрэн утас) тухайн нэг үйлчилгээг (жишээ нь Dial-Up үйлчилгээ) хангахын тулд
нэвтрэлт танилтыг шаарддаг байхаар байж болно. Bluetooth нэвтрэлт танилт нь
хэвийн үед PIN кодуудаар хийгддэг. Хоёр төхөөрөмжийн
хувьд хэрэглэгч адил PIN кодыг оруулах шаардлагатай. Хэрэглэгч PIN код оруулсны
дараа хоёр төхөөрөмж холболтын түлхүүр үүсгэнэ.
Түүний дараа холболтын түлхүүр нь уг төхөөрөмжүүд дээрээ эсвэл байнгын хадгалалтад
хадгалагдаж болно. Дараагийн удаа хоёр төхөөрөмж нь урьд нь үүсгэсэн холболтын
түлхүүрээ ашиглах болно. Энэ тайлбарласан процедурыг pairing
буюу хослох гэж нэрлэдэг. Ямар нэг төхөөрөмж холболтын
түлхүүрийг гээх юм бол хослолтыг дахин хийх ёстой.
&man.hcsecd.8; дэмон нь бүх Bluetooth нэвтрэлт танилтын хүсэлтүүдтэй
ажиллах үүрэгтэй. Анхдагч тохиргооны файл нь
/etc/bluetooth/hcsecd.conf юм. Дурын 1234
гэж тохируулагдсан PIN кодтой үүрэн утасны жишээ хэсгийг доор үзүүлэв:
device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}
PIN код дээр хязгаарлалт байдаггүй (уртаас гадна). Зарим төхөөрөмжүүдэд
(жишээ нь Bluetooth чихэвчнүүд) тогтмол PIN код цуг бүтээгдсэн байж болох юм.
тохируулга нь &man.hcsecd.8; дэмонг нүүрэнд үлдэж
ажиллахыг заадаг бөгөөд ингэснээр юу болж байгааг харах боломжтой юм.
Хослолыг хүлээн авч алсын төхөөрөмж уруу Bluetooth холболт эхлүүлэхээр
алсын төхөөрөмжийг тохируулна. Алсын төхөөрөмж нь хослол хийлтийг хүлээн авсан гэдгээ
хэлж PIN код хүсэх ёстой. hcsecd.conf файлд
байгаатай адил PIN код оруулаарай. Одоо таны PC болон алсын төхөөрөмж
хосолсон байна. Өөрөөр та хослол хийлтийг алсын төхөөрөмж дээр эхлүүлж болно.
&os; 5.5, 6.1 болон түүнээс шинэ хувилбаруудад hcsecd-г
систем эхлэхэд автоматаар эхлүүлэхийн тулд дараах мөрийг /etc/rc.conf
файлд нэмэн хийж болно:
hcsecd_enable="YES"
hcsecd дэмоны гаралтын жишээг доор
үзүүлэв:
hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
SDP
Service Discovery Protocol (SDP) буюу Үйлчилгээ Илрүүлэх Протокол
Service Discovery Protocol (SDP) буюу Үйлчилгээ Илрүүлэх Протокол нь
сервер програмуудын үзүүлдэг үйлчилгээнүүдийн байгаа эсэх болон тэдгээр
үйлчилгээнүүдийн шинж чанаруудыг илрүүлэх боломжийг клиент програмуудад олгодог.
Үйлчилгээний шинж чанарууд нь санал болгосон үйлчилгээний төрөл эсвэл ангилал болон
үйлчилгээг хэрэглэхэд шаардагдах арга зам юм уу эсвэл протоколын мэдээллийг
агуулдаг.
SDP-д SDP сервер болон SDP клиентийн хоорондох холбоо ордог. Сервер нь
сервертэй холбоотой үйлчилгээнүүдийн шинж чанаруудыг тайлбарладаг үйлчилгээний
бичлэгүүдийн жагсаалтыг арчилж байдаг. Үйлчилгээний бичлэг бүр ганц үйлчилгээний
талаар мэдээллийг агуулдаг. SDP серверийн арчилж байдаг үйлчилгээний бичлэгээс
клиент SDP хүсэлт илгээн мэдээллийг авч болно. Хэрэв клиент эсвэл клиенттэй
холбоотой програм нь үйлчилгээг ашиглахаар шийдвэл үйлчилгээг хэрэглэхийн тулд
үйлчилгээ үзүүлэгч уруу тусдаа холболт нээх ёстой. SDP нь үйлчилгээнүүд болон
тэдгээрийн шинж чанаруудыг илрүүлэх арга замаар хангадаг боловч тэдгээр үйлчилгээнүүдийг
хэрэглэх арга замуудаар хангадаггүй юм.
Хэвийн үед SDP клиент нь үйлчилгээнүүдийн зарим хүссэн онцгой шинжүүд дээр тулгуурлан
үйлчилгээнүүдийг хайдаг. Гэхдээ үйлчилгээнүүдийн талаар урьд нь ямар ч мэдээлэл байхгүй
байхад SDP серверийн үйлчилгээний бичлэгүүдээр тайлбарлагдсан үйлчилгээнүүдийн ямар
төрлүүд байгааг олохыг хүсэх үеүүд байдаг. Санал болгосон дурын үйлчилгээнүүдийг
хайх процесс нь browsing буюу үзэх
гэгддэг.
Bluetooth SDP сервер &man.sdpd.8; болон тушаалын мөрийн клиент
&man.sdpcontrol.8; нь стандарт &os; суулгацад орсон байдаг. Дараах жишээ нь
SDP үзэх хүсэлтийг хэрхэн хийж байгаа харуулж байна.
&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... гэх мэт байна. Үйлчилгээ болгон шинж чанаруудтай байгааг анхаараарай
(жишээ нь RFCOMM суваг). Үйлчилгээнээс хамаараад та зарим нэг шинж чанаруудын
талаар тэмдэглэгээ хийж авах хэрэгтэй болж болох юм. Зарим Bluetooth шийдлүүд нь
үйлчилгээ үзэх боломжийг дэмждэггүй бөгөөд хоосон жагсаалт буцааж болох юм.
Энэ тохиолдолд тодорхой үйлчилгээг хайх боломжтой байдаг. Доорх жишээ нь
OBEX-ийн Обьект Түлхэх (OPUSH) үйлчилгээг хэрхэн хайхыг үзүүлж байна:
&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH
&os; дээр Bluetooth клиентүүдэд үйлчилгээнүүдийг санал болохдоо
&man.sdpd.8; серверийн тусламжтайгаар хийдэг. &os; 5.5, 6.1 болон
түүнээс дээш хувилбарууд дээр /etc/rc.conf файлд
дараах мөрийг нэмж болно:
sdpd_enable="YES"
Дараа нь sdpd дэмонг ингэж эхлүүлж болно:
&prompt.root; /etc/rc.d/sdpd start
&os; 6.0, болон 5.5-аас өмнөх &os; 5.X хувилбар дээр sdpd
нь системийг эхлүүлэх скриптүүдэд хийгдээгүй байдаг. Үүнийг гараар ажиллуулах ёстой:
&prompt.root; sdpd
Алсын клиентүүдэд Bluetooth үйлчилгээг үзүүлэхийг хүссэн локал серверийн
програм нь үйлчилгээг SDP дэмонд бүртгэх болно. Ийм програмуудын нэг нь
&man.rfcomm.pppd.8; юм. Эхэлснийхээ дараа энэ нь Bluetooth LAN үйлчилгээг
локал SDP дэмонд бүртгэх болно.
Локал SDP серверт бүртгэсэн үйлчилгээнүүдийн жагсаалтыг локал хяналтын сувгаар
SDP-ийн үзэх хүсэлтийг илгээн авч болно:
&prompt.root; sdpcontrol -l browse
Dial-Up сүлжээ (DUN) ба PPP ашиглах Сүлжээний Хандалт (LAN) хувийн тохиргоонууд
Dial-Up сүлжээ (DUN) хувийн тохиргоо нь модемууд болон үүрэн утаснуудтай
ихэвчлэн ашиглагддаг. Энэ хувийн тохиргоонд хамаарах тохиолдлуудыг
доор дурдав:
үүрэн утас эсвэл модемийг компьютер дээрээ
Интернэтийн хандалтын сервер уруу залгаж холбогдох юм уу эсвэл
бусад dial-up үйлчилгээнүүдэд хэрэглэхээр утасгүй модем маягаар ашиглах;
үүрэн утас эсвэл модемийг компьютер дээрээ
өгөгдлийн дуудлагуудыг хүлээн авахад ашиглах.
PPP ашиглах Сүлжээний Хандалт (LAN) хувийн тохиргоо дараах тохиолдлуудад
ашиглагдаж болно:
Ганц Bluetooth төхөөрөмжид зориулсан LAN хандалт;
Олон Bluetooth төхөөрөмжид зориулсан LAN хандалт;
PC-ээс PC уруу (цуваа кабелийн эмуляцаар PPP сүлжээ
ашиглан).
&os; дээр энэ хоёр хувийн тохиргоо нь &man.ppp.8; болон
&man.rfcomm.pppd.8; програмуудаар хийгддэг. &man.rfcomm.pppd.8; нь
RFCOMM Bluetooth холболтыг PPP-ийн ажиллаж чадах ямар нэгэн зүйл болгож хувиргадаг
гүйцэтгэл хялбаршуулагч юм. Аль ч хувийн тохиргоог ашиглахаасаа өмнө
/etc/ppp/ppp.conf файлд шинэ PPP хаяг
үүсгэгдсэн байх ёстой. Жишээнүүдийн талаар &man.rfcomm.pppd.8; гарын
авлагаас лавлана уу.
Дараах жишээн дээр &man.rfcomm.pppd.8; нь DUN RFCOMM суваг дээр
BD_ADDR 00:80:37:29:19:a4 хаягтай алсын төхөөрөмж уруу RFCOMM холболт
хийхэд ашиглагдах болно. RFCOMM сувгийн дугаарыг алсын төхөөрөмжөөс SDP-ээр
авах болно. RFCOMM сувгийг гараар зааж өгөх боломжтой бөгөөд энэ тохиолдолд
&man.rfcomm.pppd.8; нь SDP хүсэлт хийхгүй байх болно. Алсын төхөөрөмж дээр
RFCOMM сувгийг олохын тулд &man.sdpcontrol.8;-г ашиглаарай.
&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup
PPP ашиглах Сүлжээний Хандалтын (LAN) үйлчилгээг хангахын тулд
&man.sdpd.8; сервер ажиллаж байх ёстой. LAN клиентүүдэд зориулсан
шинэ оруулгууд /etc/ppp/ppp.conf файлд
үүсгэгдсэн байх ёстой. Жишээнүүдийн талаар &man.rfcomm.pppd.8;
гарын авлагын хуудаснаас лавлана уу. Төгсгөлд нь RFCOMM PPP серверийг
зөв RFCOMM сувгийн дугаар дээр эхлүүлнэ. RFCOMM PPP сервер нь
Bluetooth LAN үйлчилгээг локал SDP дэмонд автоматаар бүртгэх болно.
Доорх жишээ нь RFCOMM PPP серверийг хэрхэн эхлүүлэхийг үзүүлж байна.
&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-server
OBEX
OBEX Object Push (OPUSH) буюу OBEX Обьект Түлхэх хувийн тохиргоо
OBEX нь хөдөлгөөнт төхөөрөмжүүдийн хооронд энгийн файл дамжуулалт хийхэд
зориулагдсан өргөн ашиглагддаг протокол юм. Үүний гол хэрэглээ нь хэт ягаан туяаны
холбоо бөгөөд зөөврийн компьютерууд эсвэл PDA-уудын хооронд ердийн файл
дамжуулахад, нэрийн хуудас эсвэл цагалбарыг үүрэн утас болон PIM програмуудтай
бусад төхөөрөмжүүдийн хооронд илгээхэд хэрэглэгддэг.
OBEX сервер болон клиент нь гуравдагч талын багц obexapp
хэлбэрээр хийгдсэн байдаг бөгөөд энэ нь comms/obexapp
порт хэлбэрээр байдаг.
OBEX клиент нь OBEX серверт обьектуудыг түлхэж оруулах буюу/эсвэл татахад хэрэглэгддэг.
Обьект нь жишээ нь нэрийн хуудас юм уу эсвэл уулзалт байж болно. OBEX клиент нь
алсын төхөөрөмжөөс SDP-ээр RFCOMM сувгийн дугаарыг авч болно. RFCOMM сувгийн
дугаарын оронд үйлчилгээний нэрийг зааж үүнийг хийж болно. Дэмжигдсэн үйлчилгээний
нэрсэд: IrMC, FTRN, болон OPUSH ордог. RFCOMM сувгийг дугаар болгон зааж
өгөх боломжтой байдаг. Төхөөрөмжийн мэдээллийн обьектийг үүрэн утаснаас татаж
авч байгаа болон шинэ обьектийг (нэрийн хуудас) утасны сан уруу хийж байгаа
OBEX сессийн жишээг доор үзүүлэв.
&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)
OBEX-ийн Обьект Түлхэх үйлчилгээг хангахын тулд &man.sdpd.8; сервер
ажиллаж байх ёстой. Бүх ирж байгаа обьектууд хадгалагдах root хавтас үүсгэгдэх
ёстой. root сангийн анхдагч зам нь /var/spool/obex
байна. Төгсгөлд нь OBEX серверийг зөв RFCOMM сувгийн дугаар дээр эхлүүлнэ.
OBEX сервер нь OBEX-ийн Обьект Түлхэх үйлчилгээг локал SDP дэмонд автоматаар
бүртгүүлэх болно. Доорх жишээ нь OBEX серверийг хэрхэн эхлүүлэхийг харуулж байна.
&prompt.root; obexapp -s -C 10
Serial Port Profile (SPP) буюу Цуваа портын хувийн тохиргоо
Serial Port Profile (SPP) буюу Цуваа портын хувийн тохиргоо нь Bluetooth
төхөөрөмжүүдэд RS232 (эсвэл түүнтэй төстэй) цуваа кабелийн эмуляц хийхийг зөвшөөрдөг.
Энэ хувийн тохиргоонд хамаатай тохиолдол нь кабелийн оронд виртуал цуваа портын
хийсвэрлэлтийн тусламжтай Bluetooth-ийг ашигладаг хуучин програмуудтай харьцдаг.
&man.rfcomm.sppd.1; хэрэгсэл нь цуваа портын хувийн тохиргоог хийдэг.
Псевдо tty нь виртуал цуваа портын хийсвэрлэлт болон ашиглагддаг. Доорх жишээ нь
алсын төхөөрөмжийн цуваа портын үйлчилгээ уруу хэрхэн холбогдохыг харуулж байна.
Та RFCOMM сувгийг заах шаардлагагүйг санаарай - &man.rfcomm.sppd.1; нь
алсын төхөөрөмжөөс SDP-ээр авч чаддаг. Хэрэв та үүнийг дарж өөрчлөхийг хүсвэл
тушаалын мөрөнд RFCOMM сувгийг зааж өгөх хэрэгтэй.
&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...
Холбогдсоны дараа псевдо tty нь цуваа порт шиг ашиглагдаж болно:
&prompt.root; cu -l ttyp6
Алдааг олж засварлах
Алсын төхөөрөмж холбогдож чадахгүй байх
Зарим нэг хуучин Bluetooth төхөөрөмжүүд нь үүрэг шилжүүлэлтийг дэмждэггүй.
Анхдагчаар &os; нь шинэ холболтыг хүлээн авахдаа үүргийг өөрчилж мастер болохыг
оролддог. Үүнийг дэмждэггүй төхөөрөмжүүд нь холбогдож чаддаггүй. Шинэ холболт
хийгдэхэд үүрэг шилжүүлэлт хийгддэгийг санаарай. Тийм учраас алсын төхөөрөмжөөс
үүрэг шилжүүлэлтийг дэмждэг эсэхийг нь асуух боломжгүй юм. Локал тал дээрээ
үүрэг шилжүүлэлтийг хаах HCI тохируулга байдаг:
&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0
Ямар нэгэн юм буруу болоод байна, би яг юу болоод байгааг харж болох уу?
Тиймээ, та харж болно. comms/hcidump порт
хэлбэрээр байдаг гуравдагч талын багц hcidump-г ашиглана.
hcidump хэрэгсэл нь &man.tcpdump.1;-тай төстэй.
Энэ нь Bluetooth пакетуудын агуулгыг терминал дээр харуулж Bluetooth пакетуудыг
файл уруу гаргахад хэрэглэгдэж болно.
Стив
Питерсон
Бичсэн
Гүүр
Танилцуулга
IP дэд сүлжээ
гүүр
Заримдаа нэг физик сүлжээг (Ethernet сегмент зэрэг)
IP дэд сүлжээнүүд үүсгэж сегментүүдийг хооронд нь чиглүүлэгчээр
цугт нь холбож ашиглалгүйгээр хоёр тусдаа сүлжээний сегмент болгох нь ашигтай
байдаг. Ийм маягаар хоёр сүлжээг хооронд нь холбодог төхөөрөмжийг
bridge
буюу гүүр
гэдэг.
Хоёр сүлжээний интерфэйс карттай FreeBSD систем гүүр маягаар ажиллаж
чаддаг.
Гүүр нь өөрийн сүлжээний интерфэйс бүрийн төхөөрөмжийн MAC давхаргын
хаягуудыг (Ethernet хаягууд) сурч ажилладаг. Түүний эх болон төгсгөл нь
зөвхөн өөр өөр сүлжээнд байгаа тохиолдолд хоёр сүлжээний хооронд
урсгалыг дамжуулдаг.
Олон талаараа гүүр нь маш цөөн порттой Ethernet шилжүүлэгчтэй адил
юм.
Гүүр хийхэд тохирох тохиолдлууд
Өнөөдөр гүүр ашиглагддаг хоёр нийтлэг тохиолдол байдаг.
Сегмент дээр урсгал их байх
Эхний тохиолдол нь таны физик сүлжээний сегмент урсгалаар хэт ачаалагдсан
бөгөөд сүлжээг дэд сүлжээ болгон хувааж тэдгээрийг чиглүүлэгчээр
холбохыг та ямар нэгэн шалтгаанаар хүсэхгүй байгаа тохиолдол юм.
Редакцын болон Үйлдвэрлэлийн хэлтсүүд нэг дэд сүлжээнд байгаа сонингийн
газрыг авч үзье. Редакцын хэрэглэгчид нь бүгдээрээ файлын үйлчилгээндээ
A серверийг, Үйлдвэрлэлийн хэрэглэгчид нь
B сервер дээр байна. Ethernet сүлжээ нь бүх хэрэглэгчдийг
холбоход хэрэглэгддэг бөгөөд сүлжээний өндөр ачаалал сүлжээг удаашруулж буй.
Хэрэв Редакцын хэрэглэгчид нь сүлжээний нэг сегментэд, Үйлдвэрлэлийн
хэрэглэгчид өөр нэг сегментэд тусгаарлагдвал хоёр сүлжээний сегмент нь
гүүрээр холбогдож болох юм. Гүүрийн зөвхөн нөгөө
талын
интерфэйс уруу чиглэсэн сүлжээний урсгал тэр сүлжээ уруу илгээгдэх бөгөөд ингэснээр
сүлжээний сегмент бүр дэх ачаалал багасах юм.
Шүүх/урсгал хэлбэржүүлэх галт хана
галт хана
NAT
Хоёр дахь нийтлэг тохиолдол бол сүлжээний хаягийн хөрвүүлэлтгүй (NAT)
галт ханын ажиллагаа шаардлагатай тохиолдол юм.
Үүний жишээ нь DSL юм уу эсвэл ISDN-ээр ISP уруугаа холбогдсон
жижиг компани юм. Тэд 13 ширхэг гаднаас хандах боломжтой IP хаягийг
өөрсдийн ISP-ээс авдаг бөгөөд сүлжээндээ 10 PC-тэй. Энэ тохиолдолд
чиглүүлэгч дээр тулгуурласан галт хана нь дэд сүлжээний асуудлуудаас болоод
төвөгтэй байна.
чиглүүлэгч
DSL
ISDN
Гүүр дээр тулгуурласан галт ханыг тохируулж тэдний DSL/ISDN чиглүүлэгчийн
замд ямар нэгэн IP хаяглалтын асуудалгүйгээр тавьж болно.
Гүүрийг тохируулах
Сүлжээний интерфэйс картын сонголт
Гүүр нь ажиллахын тулд хамгийн багадаа хоёр сүлжээний карттай
байхыг шаарддаг. Харамсалтай нь бүх сүлжээний интерфэйс картууд
гүүрийг дэмждэггүй. Дэмжигдсэн картуудын талаар дэлгэрэнгүй
мэдээллийг &man.bridge.4;-с уншина уу.
Үргэлжлүүлэхээсээ өмнө хоёр сүлжээний картаа суулгаад тест хийх
хэрэгтэй.
Цөмийн тохиргооны өөрчлөлтүүд
цөмийн тохируулгууд
BRIDGE
Гүүрийн цөмийн дэмжлэгийг идэвхжүүлэхийн тулд дараах:
options BRIDGE
мөрийг өөрийн цөмийн тохиргооны файлдаа нэмээд цөмөө дахин бүтээнэ.
Галт ханын дэмжлэг
галт хана
Хэрэв та гүүрийг галт хана маягаар ашиглахыг төлөвлөж байгаа бол
IPFIREWALL тохируулгыг бас нэмэх хэрэгтэй.
Гүүрийг галт хана хэлбэрээр тохируулах ерөнхий мэдээллийг
хэсгээс уншина уу.
Хэрэв та IP биш пакетуудыг (ARP зэрэг) гүүрээр дамжин урсахыг
зөвшөөрөх хэрэгтэй бол гурван тохируулга байдаг. Эхнийх нь дараах тохируулгыг
цөмдөө нэмээд дахин бүтээх явдал юм:
option IPFIREWALL_DEFAULT_TO_ACCEPT
Хоёр дахь нь галт ханын төрлөө rc.conf файлд
open
буюу нээлттэй гэж тохируулах явдал юм:
firewall_type="open"
Эдгээр тохируулгууд нь галт ханыг бүр мөсөн харагдуулахгүй болгодгийг
тэмдэглэе; дурын пакет эсвэл холболт анхдагчаар зөвшөөрөгдөх болно.
Энэ нь галт ханын дүрмийн олонлогт нэлээн өөрчлөлтүүдийг шаардаж болох юм.
Гурав дахь тохируулга нь доор дурдсаныг &man.ipfw.8; дүрмэнд нэмэх
явдал юм:
&prompt.root; ipfw add allow mac-type arp layer2
Эсвэл үүнийг тухайн үеийн галт ханын дүрмийн олонлогт нэмнэ. Энэ дүрэм нь
&man.arp.8; пакетуудыг нэвтэрхийг идэвхтэйгээр зөвшөөрдөг учраас түүнийг
аль болох эхэнд шалгуулахын тулд дүрмийн олонлогийн эхэн хэсэгтэй ойролцоо тавих ёстой юм.
Урсгал хэлбэржүүлэх дэмжлэг
Хэрэв та гүүрийг урсгал хэлбэржүүлэгч маягаар ашиглахыг хүсвэл
өөрийн цөмийн тохиргоондоо DUMMYNET тохируулгыг
нэмэх хэрэгтэй болно. Дэлгэрэнгүй мэдээллийг &man.dummynet.4;-с
уншина уу.
Гүүрийг идэвхжүүлэх
Гүүрийг ажиллаж байх үед идэвхжүүлэхийн тулд дараах:
net.link.ether.bridge.enable=1
мөрийг /etc/sysctl.conf файлд, заагдсан интерфэйсүүд дээр гүүрийг идэвхжүүлэхийн тулд:
net.link.ether.bridge.config=if1,if2
мөрийг нэмнэ (if1 болон
if2-г өөрийн хоёр сүлжээний интерфэйсийн
нэрсээр солиорой). Хэрэв та гүүрээр дамжсан пакетуудыг &man.ipfw.8;-оор
шүүхийг хүсвэл дараах:
net.link.ether.bridge.ipfw=1
мөрийг бас нэмэх хэрэгтэй.
&os; 5.2-RELEASE-с өмнөх хувилбаруудын хувьд дараах мөрүүдийг ашиглана:
net.link.ether.bridge=1
net.link.ether.bridge_cfg=if1,if2
net.link.ether.bridge_ipfw=1
Бусад мэдээлэл
Хэрэв та гүүр уруу сүлжээнээс &man.ssh.1; хийж чаддаг байхыг хүсэж байгаа бол
аль нэг сүлжээний карт дээр IP хаяг тавих нь зүйтэй юм. Хоёр карт дээр хоёулан дээр нь
хаяг олгохыг зөвшөөрөх нь буруу юм.
Хэрэв та сүлжээндээ олон гүүртэй бол аль ч хоёр ажлын станцын хооронд нэгээс илүү
зам байх ёсгүй юм. Техникийн хэллэгээр бол энэ нь spanning tree link management
буюу сунан тогтох модны холбоосын удирдлагын дэмжлэг байдаггүй гэсэн үг юм.
Гүүр нь ялангуяа нэг сегментээс нөгөө сегмент уруу урсах урсгалын хувьд
таны &man.ping.8;-ийн хугацаанд хоцрогдол нэмж болох юм.
Жан-Франсуа
Докье
Шинэчилсэн
Алекс
Дюпре
Дахин зохион байгуулж өргөтгөсөн
Дискгүй ажиллагаа
дискгүй ажлын станц
дискгүй ажиллагаа
FreeBSD машин сүлжээгээр ачаалан локал дискгүйгээр NFS
сервер дээр холбогдсон файлын системүүд ашиглаад ажиллаж чаддаг. Стандарт тохиргооны
файлуудаас өөр системийн өөрчлөлт шаардлагагүй. Ийм системийг харьцангуй хялбараар
тохируулж болдог. Учир нь шаардлагатай бүх элементүүд бэлэн байдаг:
Цөмийг сүлжээгээр ачаалах хоёр боломжит арга хамгийн багаар бодоход
байдаг:
PXE: &intel;-ийн Preboot eXecution
Environment буюу ачаалалт хийгдэхээс өмнөх ажиллуулах орчны систем нь
зарим сүлжээний картууд эсвэл эх хавтангуудад цуг бүтээгдсэн байдаг
ухаалаг ачаалах ROM-ийн нэг хэлбэр юм. Илүү дэлгэрэнгүйг
&man.pxeboot.8;-с үзнэ үү.
Etherboot
порт (net/etherboot) нь
цөмийг сүлжээгээр ачаалах ROM хийгдэх боломжтой код үүсгэдэг.
Код нь сүлжээний картан дээр ачаалах ROM уруу шарагдсан байх юм уу эсвэл
локал уян (эсвэл хатуу) дискний хөтчөөс эсвэл ажиллаж байгаа &ms-dos;
системээс дуудагдахаар байдаг. Олон сүлжээний карт дэмжигдсэн
байгаа.
Жишээ скрипт (/usr/share/examples/diskless/clone_root)
нь сервер дээр ажлын станцын root файлын системийг үүсгэх болон түүний ажиллагааг хангах
үйлдлийг хөнгөвчилдөг. Скрипт нь магадгүй жижиг өөрчлөлтийг шаардаж болох боловч
энэ нь таныг хурдан эхлүүлэх болно.
Дискгүй системийн эхлүүлэлтийг илрүүлж дэмжих стандарт системийн эхлүүлэгч
файлууд /etc санд байдаг.
swap хийх хэрэв шаардлагатай бол NFS файл эсвэл
локал диск уруу хийж болох юм.
Дискгүй ажлын станцуудыг тохируулах олон арга байдаг. Олон элементүүд үүнд
хамрагддаг бөгөөд өөрийн сонирхлоор ихэнхийг нь өөрчилж болно. Дараах нь
бүрэн системийг тохируулах талаар хувилбаруудыг тайлбарлах болно. Ингэхдээ
стандарт FreeBSD эхлүүлэх скриптүүдтэй хялбар, нийцтэй байхыг чухалчлах
болно. Тайлбарласан систем нь дараах шинжүүдтэй байна:
Дискгүй ажлын станцууд нь хуваалцсан, зөвхөн уншигдах
/ файлын систем болон хуваалцсан, зөвхөн уншигдах
/usr-г ашигладаг.
root файлын систем нь зөвхөн дискгүй ажиллагаатай холбоотой эсвэл
тэдгээрийн харьяалагдах ажлын станцтай холбоотой зарим тохиргооны
файлууд нь өөрчлөгдсөн стандарт FreeBSD root-ийн (ихэвчлэн серверийн)
хуулбар юм.
Бичигдэх боломжтой байх root-ийн хэсэг нь &man.md.4; файлын
системээр дээр тавигддаг (overlaid). Систем дахин ачаалахад хийгдсэн
өөрчлөлтүүд алга болох болно.
Цөм дамжуулагдаж Etherboot эсвэл
PXE-ийн аль нэгээр дуудагддаг бөгөөд зарим тохиолдолд
зөвхөн аль нэг аргыг ашиглахыг шаардаж болох юм.
Тайлбарласны дагуу энэ систем нь аюултай юм. Энэ нь сүлжээний
хамгаалагдсан талбарт байх ёстой бөгөөд бусад хостуудаас хандахааргүй
байх ёстой.
Энэ хэсгийн бүх мэдээллийг &os; 5.2.1-RELEASE ашиглан тест хийсэн болно.
Үндсэн мэдээлэл
Дискгүй ажлын станцуудыг тохируулах нь харьцангуй амархан боловч алдаанд
өртөх хандлагатай байдаг. Хэд хэдэн шалтгаанаас болоод эдгээрийг заримдаа
оношлох төвөгтэй байдаг. Жишээ нь:
Эмхэтгэлтийн үеийн тохируулгууд нь ажиллах үед өөрөөр ажиллахыг
тодорхойлж болох юм.
Алдааны мэдэгдлүүд нь ихэвчлэн нуугдмал эсвэл бүр байхгүй ч
байж болно.
Энд гарч болзошгүй асуудлуудыг шийдэхэд үндсэн арга замуудын зарим нэг
мэдлэгийг ашиглах нь маш ашигтай байдаг.
Амжилттайгаар эхлүүлэхийн тулд хэд хэдэн үйлдлүүдийг хийх хэрэгтэй:
Машин өөрийн IP хаяг, ажиллах файлын нэр, серверийн нэр, root зам
зэрэг эхний параметрүүдийг авах хэрэгтэй. Үүнийг DHCP эсвэл
BOOTP протоколуудыг ашиглан хийдэг. DHCP нь
BOOTP-ийн нийцтэй өргөтгөл бөгөөд адил портын дугаарууд болон үндсэн
пакетийн хэлбэршүүлэлтийг ашигладаг.
Зөвхөн BOOTP ашиглахаар системийг тохируулах боломжтой.
&man.bootpd.8; серверийн програм нь үндсэн &os; системд орсон
байдаг.
Гэхдээ DHCP нь BOOTP-ээс хэд хэдэн давуу
талтай байдаг (илүү сайхан тохиргооны файлууд, PXE
ашиглах боломж, дискгүй ажиллагаатай шууд холбоогүй бусад олон давуу талууд)
бөгөөд бид голчлон DHCP тохиргоог боломжтой бол
&man.bootpd.8; ашиглан таарах жишээнүүдтэй нь хамт тайлбарлах болно.
Жишээ тохиргоо нь ISC DHCP програм
хангамжийн багцыг (тест сервер дээр 3.0.1.r12 хувилбар суулгагдсан)
ашиглах болно.
Машин нь нэг буюу хэд хэдэн програмуудыг локал санах ой уруугаа дамжуулах
хэрэгтэй болно. TFTP юм уу эсвэл NFS
ашиглагдана. TFTP болон NFS-ийн
сонголтыг хэд хэдэн газар эмхэтгэх үеийн тохируулгаар хийдэг. Алдааны түгээмэл
эх үүсвэр нь буруу протоколд зориулж файлын нэрүүдийг заах явдал юм:
TFTP нь сервер дээрх ганц сангаас бүх файлуудыг
ихэвчлэн дамжуулдаг бөгөөд энэ сантай харьцангуй файлын нэрсийг хүлээдэг.
NFS-д файлын туйлын (абсолют) замууд хэрэгтэй
байдаг.
Боломжит дундын эхлүүлэх програмууд болон цөм нь эхлэн тохируулагдаж ажиллах
шаардлагатай. Энд хэд хэдэн чухал хувилбарууд байдаг:
PXE нь &os;-ийн гурав дахь шатны дуудагчийн
өөрчлөгдсөн хувилбар болох &man.pxeboot.8;-ийг ачаална. &man.pxeboot.8; нь
системийг эхлүүлэхэд шаардлагатай ихэнх параметрүүдийг авч хяналтыг дамжуулахаасаа
өмнө тэдгээрийг цөмийн орчинд үлдээх болно. Энэ тохиолдолд
GENERIC цөмийг ашиглах боломжтой.
Etherboot нь бага бэлтгэлтэйгээр
цөмийг шууд ачаалах болно. Та цөмийг тусгай тохируулгуудтай бүтээх
хэрэгтэй болно.
PXE болон Etherboot
нь адилхан ажиллана; гэхдээ цөмүүд нь &man.loader.8;-ийн тэдэнд зориулж
илүү ажил хийх боломжийг олгодог болохоор PXE нь
зохимжтой арга юм.
Хэрэв таны BIOS болон сүлжээний картууд нь
PXE-г дэмждэг бол та үүнийг ашиглах
хэрэгтэй байж болох юм.
Эцэст нь машин өөрийн файлын системүүдэд хандах хэрэгтэй болно.
NFS нь бүх тохиолдолд хэрэглэгдэнэ.
&man.diskless.8; гарын авлагын хуудсыг бас үзнэ үү.
Тохируулах зааврууд
ISC DHCP ашиглах тохиргоо
DHCP
дискгүй ажиллагаа
ISC DHCP сервер BOOTP болон
DHCP хүсэлтүүдэд хариулж чаддаг.
ISC DHCP 3.0 нь үндсэн системийн
хэсэг биш юм. Та эхлээд net/isc-dhcp3-server
порт юм уу эсвэл тохирох багцыг суулгах хэрэгтэй.
ISC DHCP суулгагдсаны дараа
ажиллахын тулд тохиргооны файл хэрэгтэй болно (ихэвчлэн
/usr/local/etc/dhcpd.conf гэж
нэрлэгддэг). Доор margaux хост Etherboot-ийг
ашигласан ба corbieres хост PXE-г ашиглаж байгаа
тайлбар хийгдсэн жишээ байна:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Энэ тохируулга нь
host зарлалтууд дахь утгыг дискгүй хостын
хувьд хостын нэр болгон илгээхийг dhcpd-д
хэлнэ. Өөр нэг арга нь option host-name
margaux мөрийг
host зарлалтуудын дотор нэмэх явдал юм.
next-server тохируулга нь дуудагч эсвэл цөмийн
файлыг дуудахад зориулж TFTP эсвэл
NFS серверийг ашиглахыг зааж өгнө (анхдагчаар
DHCP сервер байгаа хостыг ашиглана).
filename тохируулга нь Etherboot
эсвэл PXE-ийн дараагийн ажиллуулах алхамд дуудах
файлыг тодорхойлно. Үүнийг ашиглах дамжуулалтын аргын дагуу заасан байх
ёстой. Etherboot-ийг
NFS эсвэл TFTP
ашиглахаар эмхэтгэж болно. &os; порт нь NFS-ийг
анхдагчаар тохируулдаг. PXE нь
TFTP-г ашигладаг. Энд яагаад харьцангуй файлын
нэр хэрэглэгддэгийн учир нь тэр юм (энэ нь TFTP
серверийн тохиргооноос хамаарах боловч ерөнхийдөө нэлээн энгийн байх болно).
PXE нь цөмийг биш бас pxeboot-г
дууддаг. &os; CD-ROM
/boot сангаас
pxeboot-ийг дуудах зэрэг бусад сонирхолтой боломжууд
байдаг (&man.pxeboot.8; нь GENERIC цөмийг
ачаалж чаддаг бөгөөд энэ нь алсын CD-ROM-с ачаалахын тулд PXE-г
ашиглах боломжтой болгодог юм).
root-path тохируулга нь root файлын систем хүрэх
замыг энгийн NFS бичлэгээр тодорхойлдог.
PXE ашиглаж байгаа үед цөмийн тохиргоо BOOTP-г идэвхжүүлээгүй
байхад хостын IP-г орхигдуулах боломжтой байдаг. NFS
сервер дараа нь TFTP сервертэй адил
болох болно.
BOOTP ашиглах тохиргоо
BOOTP
дискгүй ажиллагаа
Энд bootpd-ийн адил тохиргоо
(нэг клиент болгож багасгасан) байна. Үүнийг /etc/bootptab
файлаас олж болно.
BOOTP-г ашиглахын тулд Etherboot-ийг
анхдагч биш тохируулга NO_DHCP_SUPPORT-тойгоор
эмхэтгэх ёстой бөгөөд PXE-д DHCP
хэрэгтэй гэдгийг санаарай. bootpd-ийн
цорын ганц илэрхий давуу тал бол үндсэн системд орсон байдаг явдал юм.
.def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
Ачаалах програмыг Etherboot-ээр бэлдэх
Etherboot
Etherboot-ийн вэб сайт
нь Линукс системд голчлон зориулагдсан боловч ашигтай мэдээлэл агуулсан
өргөтгөсөн баримтыг агуулдаг. Дараах нь FreeBSD систем дээр
Etherboot-г хэрхэн ашиглах талаар
тайлбарлах болно.
Та эхлээд net/etherboot багц юм уу эсвэл портыг
суулгах ёстой.
Etherboot-ийн тохиргоог
Etherboot-ийн эх байгаа сан дахь
Config файлыг засварлаж (өөрөөр хэлбэл
NFS-ийн оронд TFTP-г
ашиглахын тулд) өөрчилж болно.
Бидний тохиргооны хувьд бид ачаалах уян дискийг ашиглах болно.
Бусад аргуудын хувьд (PROM, эсвэл &ms-dos; програм)
Etherboot-ийн баримтаас лавлана уу.
Ачаалах уян дискийг хийхийн тулд Etherboot
суулгасан машин дээрх хөтөч уруугаа уян дискээ хийгээд Etherboot
мод дахь src сан уруу болгож одоогийн сангаа солиод
доор дурдсан тушаалыг бичнэ:
&prompt.root; gmake bin32/devicetype.fd0
devicetype нь дискгүй ажлын
станц дахь Ethernet картын төрлөөс хамаарна.
Зөв devicetype буюу төхөөрөмжийн
төрлийг тодорхойлохын тулд тэр сан дахь NIC
файлд хандана.
PXE-ээр ачаалах
Анхдагчаар &man.pxeboot.8; дуудагч нь NFS-ээр
цөмийг дууддаг. /etc/make.conf файлд
LOADER_TFTP_SUPPORT тохируулга заахын оронд
TFTP-г ашиглахаар эмхэтгэгдэж болно.
Заавруудын талаар /usr/share/examples/etc/make.conf
файл дахь тайлбаруудыг үзнэ үү.
Цуваа консол дискгүй машин тохируулахад ашигтай байж болох
make.conf файлын өөр хоёр тохируулга байдаг: эдгээр нь
BOOT_PXELDR_PROBE_KEYBOARD, болон
BOOT_PXELDR_ALWAYS_SERIAL юм.
Машин эхлэхэд PXE-г ашиглахын тулд та өөрийн
BIOS-ийн тохируулгаас Boot from network
буюу Сүлжээнээс ачаалах сонголтыг сонгох юм
уу эсвэл PC-г эхлүүлж байх үед функцийн товчлуурыг дарах хэрэгтэй.
TFTP болон NFS серверүүдийг тохируулах
TFTP
дискгүй ажиллагаа
NFS
дискгүй ажиллагаа
Хэрэв та TFTP ашиглахаар тохируулсан
PXE юм уу эсвэл Etherboot-г
ашиглаж байгаа бол файл сервер дээрээ tftpd-г
идэвхжүүлэх хэрэгтэй:
tftpd-д зориулж файлууд байх
сан үүсгэнэ, өөрөөр хэлбэл /tftpboot.
Энэ мөрийг өөрийн
/etc/inetd.conf файлд нэмнэ:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Зарим нэгэн PXE хувилбарууд нь
TFTP-ийн TCP хувилбарыг
хүсдэг байна. Энэ тохиолдолд dgram udp мөрийг
stream tcp болгон сольж хоёр дахь мөрийг
нэмнэ.
inetd-д өөрийн тохиргооны файлаа
дахин уншихыг хэлээрэй. Энэ тушаалыг зөв ажиллуулахын тулд
/etc/rc.conf файлд
тохируулга заагдсан
байх ёстой:
&prompt.root; /etc/rc.d/inetd restart
Та tftpboot санг серверийнхээ хаана ч
байрлуулж болно. inetd.conf болон
dhcpd.conf файлууд дээрээ байрлалаа
заасан эсэхээ шалгаарай.
Аль ч тохиолдолд та бас NFS-ээ идэвхжүүлж
NFS сервер дээрээ тохирох файлын системээ экспорт хийх
хэрэгтэй юм.
Үүнийг /etc/rc.conf-д нэмнэ:
nfs_server_enable="YES"
Доор дурдсаныг /etc/exports файл уруу нэмж
дискгүй root сан байгаа файлын системээ экспорт хийнэ (эзлэхүүний холбох
цэгийг тааруулж margaux corbieres
гэснийг дискгүй ажлын станцуудын нэрсээр солих хэрэгтэй):
/data/misc -alldirs -ro margaux corbieres
mountd-д өөрийн тохиргооны файлаа
дахин уншихыг хэлнэ. Хэрэв та эхний шатандаа NFS-г
/etc/rc.conf файлд идэвхжүүлэх хэрэгтэй
болсон бол харин дахин ачаалахыг хүсэж болох юм.
&prompt.root; /etc/rc.d/mountd restart
Дискгүй цөмийг бүтээх
дискгүй ажиллагаа
цөмийн тохиргоо
Хэрэв Etherboot-г ашиглаж байгаа
бол дискгүй клиентдээ зориулж дараах тохируулгуудтайгаар (ердийн тохируулгуудын хамтаар)
цөмийн тохиргооны файл үүсгэх хэрэгтэй:
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root file system using BOOTP info
Та бас BOOTP_NFSV3,
BOOT_COMPAT болон BOOTP_WIRED_TO
(NOTES файлаас лавлана уу) тохируулгуудыг ашиглахыг хүсэж болох
юм.
Эдгээр тохируулгуудын нэрс нь уламжлалт бөгөөд тэдгээр нь яг үнэндээ
DHCP болон BOOTP-ийн өөр хэрэглээг цөм дотор идэвхжүүлдэг
болохоор нэлээн төөрөгдөлд хүргэж болох юм (зөвхөн BOOTP эсвэл DHCP-ийн
хэрэглээг ашиглахаар болгох бас боломжтой байдаг).
Цөмийг бүтээж (-г үзнэ үү),
dhcpd.conf файлд заасан байрлал уруу
хуулах хэрэгтэй.
PXE-г ашиглаж байгаа үед дээрх тохируулгуудтайгаар
цөмийг бүтээх нь заавал шаардлагагүй (хэдийгээр зөвлөдөг боловч).
Тэдгээрийг идэвхжүүлэх нь цөмийг эхлүүлэх явцад илүү олон DHCP
хүсэлтүүдийг үүсгэж шинэ утгууд болон зарим тусгай тохиолдлуудад &man.pxeboot.8;-ийн
авсан утгуудын хооронд нийцэмжгүй байдлын жижиг эрсдэл гаргахад хүргэдэг.
Тэдгээрийг ашиглахын давуу тал нь буруу нөлөөллөөс болоод хостын нэр тохируулагддаг
явдал юм. Үгүй бол та хостын нэрийг өөр аргаар, жишээ нь клиентэд тусгайлан зориулсан
rc.conf файлд тохируулах хэрэгтэй болно.
Etherboot-ээр дуудагдах боломжтой
байхын тулд цөмд төхөөрөмжийн бяцхан зааврууд эмхэтгэгдсэн байх хэрэгтэй
байдаг. Ингэхдээ та дараах тохируулгыг тохиргооны файлдаа тохируулах
болно (NOTES тохиргооны тайлбаруудын файлыг
үзнэ үү):
hints "GENERIC.hints"
Root файлын системийг бэлдэх
root файлын систем
дискгүй ажиллагаа
Дискгүй ажлын станцад зориулж dhcpd.conf
файлд root-path гэж жагсаагдсан байрлалд
root файлын системийг та үүсгэх хэрэгтэй.
root-ийг суурьшуулахын тулд make world тушаал ашиглах
Энэ арга нь хурдан байх бөгөөд бүрэн онгон системийг (зөвхөн root файлын
систем биш) DESTDIR уруу суулгах болно.
Та дараах скриптийг л ердөө ажиллуулах хэрэгтэй болно:
#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make buildworld && make buildkernel
cd /usr/src/etc; make distribution
Үүнийг хийсний дараа танд өөрийнхөө хэрэгцээний дагуу
DESTDIR-д байрлуулагдсан өөрийн
/etc/rc.conf болон
/etc/fstab файлуудаа өөрчлөн тохируулах
шаардлага гарч болох юм.
Swap-ийг тохируулах
Шаардлагатай бол сервер дээр байрласан swap файлд
NFS-ээр хандаж болно.
NFS Swap
Цөм нь ачаалах үед NFS swap-ийг
идэвхжүүлэхийг дэмждэггүй. Бичигдэх файлын системийг холбож
swap файлыг үүсгэн идэвхжүүлэх замаар эхлүүлэх скриптүүдээр
swap нь идэвхжүүлэгдэх ёстой. Зохих хэмжээ бүхий swap файлыг
үүсгэхдээ та ингэж хийж болно:
&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000
Үүнийг идэвхжүүлэхийн тулд та дараах мөрийг өөрийн
rc.conf файлд нэмэх хэрэгтэй:
swapfile=/path/to/swapfile
Бусад асуудлууд
Зөвхөн уншигдах /usr сантайгаар ажиллах
дискгүй ажиллагаа
/usr зөвхөн уншигдах
Хэрэв дискгүй ажлын станц нь X-ийг ажиллуулахаар тохируулагдсан бол
анхдагчаар /usr-т алдааны бүртгэлийг
хийдэг XDM тохиргооны файлыг
та тааруулах хэрэгтэй болно.
FreeBSD биш сервер ашиглах
root файлын системд зориулсан сервер нь FreeBSD-г ажиллуулаагүй бол
та FreeBSD машин дээр root файлын систем үүсгээд хэрэгтэй байрлал
уруу нь tar эсвэл cpio тушаал
ашиглан хуулах хэрэгтэй болно.
Энэ тохиолдолд бүхэл тооны их/бага (major/minor) хэмжээнүүдийн ялгаанаас
болоод /dev дахь тусгай файлуудад заримдаа
асуудал гардаг. Энэ асуудлын шийдэл нь FreeBSD биш серверээс
уг санг экспорт хийж энэ сангаа FreeBSD машин дээр холбон хэрэглэгчийн
хувьд төхөөрөмжийн цэгүүдийг харагдахгүйгээр (transparently) хуваарилахын тулд
&man.devfs.5;-ийг ашиглах явдал юм.
ISDN
ISDN
ISDN технологи болон тоног төхөөрөмжийн тухай мэдээллийн сайн эх үүсвэр нь
Дан Кегелийн ISDN
хуудас юм.
ISDN-ий тухай хялбар заавруудыг доор дурдав:
Хэрэв та Европд амьдарч байгаа бол ISDN картын хэсгийг та магадгүй
шалгахыг хүсэж болох юм.
Хэрэв та Интернэт уруу Интернэтийн үйлчилгээ үзүүлэгчтэй
dial-up-аар байнгын бишээр холбогдохдоо ISDN-ийг голчлон хэрэглэхээр төлөвлөж байгаа
бол та Терминал Хувиргагчдыг үзэж болох юм. Хэрэв та үйлчилгээ үзүүлэгчдээ солих бол
энэ нь асуудлууд хамгийн багатайгаар хамгийн уян хатан чанарыг танд өгөх болно.
Хэрэв та хоёр LAN-ийг хооронд нь холбож байгаа бол эсвэл Интернэт уруу
зориулагдсан ISDN холболтоор холбогдож байгаа бол зориулагдсан чиглүүлэгч/гүүр
сонголтыг бодолцож болох юм.
Аль шийдлийг сонгохыг тодорхойлоход чухал хүчин зүйл нь өртөг юм. Дараах сонголтуудыг
хамгийн бага өртөгтэйгөөс нь эхлээд хамгийн их өртөгтэй хүртэл жагсаав.
Хэлмут
Михаелис
Хувь нэмэр болгон оруулсан
ISDN картууд
ISDN
картууд
FreeBSD-ийн ISDN шийдэл нь идэвхгүй картыг ашиглаад зөвхөн
DSS1/Q.931 (буюу Euro-ISDN) стандартыг дэмждэг. Firmware нь
бас бусад дохионы протоколуудыг дэмждэг зарим идэвхтэй картуудыг
дэмждэг; энэ нь бас хамгийн эхэнд дэмжигдсэн Primary Rate (PRI) буюу
Анхдагч Хурд бүхий ISDN картыг оруулдаг.
isdn4bsd програм хангамж нь
бусад ISDN чиглүүлэгчүүдтэй түүхий HDLC дээгүүрх IP юм уу эсвэл
синхрон PPP: өөрчлөн засварласан &man.sppp.4; драйвер
isppp-тэй цөмийн PPP юм уу эсвэл хэрэглэгчийн талбарын &man.ppp.8;
ашиглан холбогдох боломжийг олгодог. Хэрэглэгчийн талбарын &man.ppp.8; ашиглан
хоёр буюу түүнээс дээш ISDN B-сувгуудын суваг холболтыг (channel bonding)
хийх боломжтой байдаг. Утас хариулагч машины хэрэглээ бас байдаг
байдаг бөгөөд бас програм хангамжийн 300 baud модем зэрэг олон хэрэгслүүд
байдаг.
FreeBSD дээр дэмжигдсэн зарим PC ISDN картуудын тоо өсөн нэмэгдэж байгаа
бөгөөд энэ нь бүх л Европ болон дэлхийн бусад олон хэсэгт амжилттайгаар ашиглагдаж
байгаа мэдээллүүд байдаг.
Дэмжигдсэн идэвхгүй (пассив) ISDN картууд нь ихэвчлэн
Infineon (хуучин Siemens) ISAC/HSCX/IPAC ISDN бичил схемтэй
байдаг, гэхдээ бас Cologne Chip-ийн (зөвхөн ISA шугамд) бичил схемүүдтэй
ISDN картууд, Winbond W6692 бичил схемүүдтэй PCI картууд,
Tiger300/320/ISAC бичил схемийн хослолуудтой зарим картууд болон
AVM Fritz!Card PCI V.1.0 болон AVM Fritz!Card PnP зэрэг зарим нэгэн
үйлдвэрлэгчээс хамааралтай бичил схем бүхий картууд ордог.
Одоогоор идэвхтэй дэмжигдсэн ISDN картууд нь AVM B1
(ISA болон PCI) BRI картууд болон AVM T1 PCI PRI картууд юм.
isdn4bsd-ийн баримтын талаар
өөрийн FreeBSD систем дээрээ /usr/share/examples/isdn/
сангаас эсвэл бяцхан зөвлөгөө, алдааны мэдээлэл болон isdn4bsd
гарын авлага зэрэг илүү баримтыг заасан
isdn4bsd-ийн эх хуудас isdn4bsd
хаягаас үзээрэй.
Хэрэв та өөр ISDN протокол, одоогоор дэмжигдээгүй байгаа ISDN PC картанд
зориулж дэмжлэг нэмэх эсвэл isdn4bsd-ийг өргөжүүлэх
- сонирхолтой байгаа бол &a.hm;-тай холбоо барина уу.
+ сонирхолтой байгаа бол &a.hm;-тай холбоо барьна уу.
isdn4bsd-ийн суулгалт, тохиргоо болон
алдааг олж засварлах тухай асуултуудад зориулагдсан &a.isdn.name;
захидлын жагсаалт байдаг.
ISDN Терминал Хувиргагчид
Терминал хувиргагчид (TA) нь модемууд нь ердийн утасны шугамд зориулагдсан байдаг
шиг ISDN-ий хувьд зориулагдсан байдаг.
модем
Ихэнх TA нь стандарт Hayes модемийн AT тушаалын олонлогийг ашигладаг бөгөөд
модемийг шууд солих зориулалтаар ашиглаж болно.
TA нь ерөнхийдөө модемтой адил ажилладаг. Ялгаатай тал нь холболт болон
дамжуулах хурдны хувьд таны хуучин модемоос хамаагүй хурдан байдаг явдал юм.
Та модемийн тохиргоотой яг адил PPP-г
тохируулах хэрэгтэй болно. Цуваа хурдыг хамгийн өндрөөр аль болох тавьсан эсэхээ
шалгаарай.
PPP
TA-г ашиглахын гол давуу тал нь динамик PPP-ээр хийж болдогтой адил Интернэтийн
үйлчилгээ үзүүлэгчтэй холбогдох явдал юм. IP хаягийн хэмжээ өдөр ирэх тутам багасаж байгаа
өнөө үед ихэнх үйлчилгээ үзүүлэгчид танд статик IP өгөх хүсэлгүй байдаг. Ихэнх зориулагдсан
чиглүүлэгчид динамик IP хуваарилалттай зохицож чаддаггүй.
TA-уудын боломжууд болон холболтын тогтвортой байдалд зориулан таны ажиллуулж байдаг
PPP дэмонд TA-ууд нь бүрэн найддаг. Хэрэв та PPP-г аль хэдийн тохируулсан бол энэ нь
FreeBSD машин дээр модемийг ашиглаж байгаад ISDN уруу хялбараар сайжруулах боломжийг
олгодог. Гэхдээ танд тулгарсан PPP програм дээр байсан асуудлууд бас хэвээр үлдэх
болно.
Хэрэв та максимум тогтвортой байдлыг хүсэж байгаа бол хэрэглэгчийн талбарын PPP биш цөмийн PPP тохируулгыг ашиглаарай.
Дараах TA-ууд нь FreeBSD-тэй ажилладаг:
Motorola BitSurfer болон Bitsurfer Pro
Adtran
Ихэнх бусад TA-ууд нь магадгүй бас ажиллах байх. TA үйлдвэрлэгчид нь
өөрсдийнхөө бүтээгдэхүүнийг стандарт модемийн AT тушаалын олонлогийн ихэнхийг
хүлээн авч чаддагаар хийхийг оролддог.
Гадаад TA-ийн жинхэнэ асуудал нь модемуудын адил таны компьютер дээр
сайн цуваа карт хэрэгтэй явдал юм.
Та цуваа төхөөрөмжүүдийн тухай дэлгэрэнгүй ойлголт болон асинхрон ба
синхрон цуваа портуудын ялгаануудын талаар FreeBSD Цуваа Тоног
Төхөөрөмжийн заавраас унших шаардлагатай.
Стандарт PC цуваа порт (асинхрон) дээр ажиллаж байгаа TA нь таныг
128 Kbs холболттой байсан ч гэсэн 115.2 Kbs хурдаар хязгаарладаг.
ISDN-ий чаддаг 128 Kbs хурдыг бүрэн ашиглахын тулд та TA-г синхрон
цуваа карт уруу шилжүүлэх шаардлагатай.
Дотоод TA худалдан авч синхрон/асинхрон асуудлаас тойрон гарчихлаа гэж
битгий тэнэгтээрэй. Дотоод TA-ууд нь ердөө л өөр дээрээ бүтээгдсэн стандарт PC цуваа
портын бичил схемтэй байдаг. Энэ нь ердөө л өөр цуваа кабель худалдан авч өөр хоосон
цахилгаан сокет олох асуудлыг хөнгөвчилдөг.
TA-тэй синхрон карт нь ядаж дангаараа зориулагдсан чиглүүлэгчтэй адил хурдан
байдаг бөгөөд түүнийг энгийн FreeBSD хайрцаг удирдаж байгаа нь магадгүй илүү уян хатан
юм.
Синхрон карт/TA болон зориулагдсан чиглүүлэгчийн алийг сонгох нь голчлон сүсэг бишрэлийн
асуудал байдаг. Энэ талаар зарим хэлэлцүүлэг захидлын жагсаалтуудаар явагдсан байгаа.
Бүрэн хэлэлцүүлгийг архивуудаас
хайхыг бид санал болгож байна.
Зориулагдсан ISDN Гүүрнүүд/Чиглүүлэгчид
ISDN
зориулагдсан гүүрнүүд/чиглүүлэгчид
ISDN гүүрнүүд эсвэл чиглүүлэгчид нь зөвхөн FreeBSD эсвэл бусад
үйлдлийн системийн хувьд биш юм. Чиглүүлэлт болон гүүр хийх технологийн
талаар илүү дэлгэрэнгүй тайлбарыг сүлжээний ямар нэг номноос үзнэ үү.
Энэ хэсгийн хувьд чиглүүлэгч болон гүүр гэсэн ухагдахуунууд нь харилцан
солигдож ашиглагдана.
Доод зэрэглэлийн ISDN чиглүүлэгчид/гүүрнүүдийн үнэ багасаж байгаа
болохоор энэ нь улам илүү түгээмэл сонголт болох юм. ISDN чиглүүлэгч нь
таны локал Ethernet сүлжээ уруу шууд залгагддаг жижиг хайрцаг байдаг
бөгөөд бусад гүүр/чиглүүлэгчтэй хийх өөрийн холболтоо удирддаг. Энэ нь
PPP болон бусад түгээмэл протоколуудын тусламжтай холболт хийх өөртөө
цуг бүтээгдсэн програм хангамжтай байдаг.
Чиглүүлэгч нь бүрэн ISDN холболтыг ашиглах болохоор стандарт TA-аас
хамаагүй илүү хурдан дамжуулах боломжийг олгодог.
ISDN чиглүүлэгчид болон гүүрнүүдийн гол асуудал нь үйлдвэрлэгчид
хоорондын харилцан ажиллах боломж асуудал хэвээр байгаа явдал юм.
Хэрэв та Интернэтийн үйлчилгээ үзүүлэгчтэй холбогдохоор төлөвлөж байгаа бол
тэд нартай өөрийн хэрэгцээний талаар хэлэлцэх нь зүйтэй юм.
Хэрэв та өөрийн гэрийн LAN-ийг оффисийн LAN-тай холбох зэргээр хоёр LAN
сегментийг хооронд нь холбохоор төлөвлөж байгаа бол энэ нь хамгийн хялбар
ажиллагаа багатай шийдэл юм. Та холболт хийгдэх гэж байгаа хоёр талдаа
хоёуланд нь зориулан төхөөрөмж авах болохоор холболт ажиллах тал дээр
итгэлтэй байж болно.
Жишээ нь гэрийн компьютер эсвэл салбар оффисийн сүлжээг гол оффисийн
сүлжээтэй холбохын тулд дараах тохируулгыг ашиглаж болно:
Салбар оффис эсвэл Гэрийн сүлжээ
10 base 2
Сүлжээ нь 10 base 2
Ethernet (thinnet
) сүлжээний шугаман хэлбэрийг
ашиглана. Шаардлагатай бол чиглүүлэгчийг сүлжээний кабельтай
AUI/10BT хувиргагчаар холбоно.
---Sun workstation
|
---FreeBSD box
|
---Windows 95
|
Stand-alone router
|
ISDN BRI line
10 Base 2 Ethernet
Хэрэв таны гэр/салбар оффис нь зөвхөн нэг компьютер бол та зориулагдсан
чиглүүлэгчийг холбохын тулд эрчилсэн хос зөрсөн кабелийг (twisted pair crossover
cable) ашиглаж болно.
Гол оффис эсвэл бусад LAN
10 base T
Сүлжээ нь 10 base T Ethernet
(Twisted Pair
) сүлжээний од хэлбэрийг
ашиглана.
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Stand-alone router
|
ISDN BRI line
ISDN Сүлжээний зураг
Ихэнх чиглүүлэгчид/гүүрнүүдийн нэг том давуу тал нь нэг зэрэг
2 тусдаа сайт уруу 2 тусдаа чөлөөтэй PPP холболтуудтай
байх боломжийг олгодог явдал юм. Хоёр цуваа порттой тусгай (ихэвчлэн үнэтэй) загваруудыг
тооцохгүй бол энэ нь ихэнх TA-ууд дээр дэмжигдээгүй байдаг. Үүнийг суваг холболт (channel
bonding), MPP зэрэгтэй андуурч болохгүй.
Жишээ нь хэрэв та оффис дээрээ зориулагдсан ISDN холболттой бөгөөд
түүнийг чагнахыг хүсэж байгаа боловч өөр нэг ISDN шугам авахыг хүсэхгүй байгаа
бол энэ нь маш ашигтай боломж байж болох юм. Оффист байгаа чиглүүлэгч нь
Интернэт уруу хийх зориулагдсан B сувгийн холболтыг (64 Kbps) удирдаж
тусдаа өгөгдлийн холболтод зориулж өөр B сувгийг ашиглаж чадна. Хоёр дахь
B суваг нь гаднаас залгах, гадагш залгах юм уу эсвэл илүү өргөн зурваст зориулж
эхний B сувагтай цуг динамикаар холболт (bonding) хийхэд (MPP зэрэг)
ашиглагдаж болно.
IPX/SPX
Ethernet гүүр нь зөвхөн IP урсгал биш бас өөр илүүг дамжуулах боломжийг танд
олгодог. Та IPX/SPX эсвэл өөрийн ашигладаг бусад протоколуудынхаа алийг ч бас илгээж
болох юм.
Шерн
Ли
Хувь нэмэр болгон оруулсан
Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт
Тойм
natd
FreeBSD-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлтийн дэмон нь
&man.natd.8; гэгддэг бөгөөд ирж байгаа түүхий IP пакетуудыг хүлээн авч эх хаягийг
локал машиныхаар сольж эдгээр пакетуудыг гарч байгаа IP пакетийн урсгалд буцааж
дахин оруулдаг. &man.natd.8; нь өгөгдлийг буцаан хүлээн авахад өгөгдлийн анхны байрлалыг
тодорхойлж чаддаг байхаар эхлэл IP хаяг болон портыг өөрчилж түүнийг анхлан хүсэгчид буцааж
дамжуулдаг.
Интернэтийн холболт хуваалцах
NAT
NAT-ийн хамгийн түгээмэл хэрэглээ бол Интернэтийн холболт хуваалцах гэгддэгийг
хийж гүйцэтгэх явдал юм.
Анхны тохируулга
IP хаягийн хэмжээ багасаж байгаа болон кабель эсвэл DSL зэрэг өндөр хурдны хэрэглэгчийн
шугамууд ашиглах хэрэглэгчдийн тоо ихэссэнээс болоод хүмүүст Интернэтийн холболт хуваалцах шийдлийн
хэрэгцээ нэмэгдэх болсон билээ. Хэд хэдэн компьютеруудыг шууд нэг холболтоор холбох чадвар болон
IP хаяг нь &man.natd.8;-г боломжийн сонголт болгодог.
Хамгийн түгээмэл тохиолдол нь хэрэглэгч кабель эсвэл DSL шугаманд нэг IP хаягтай холбогдсон
машинтай бөгөөд LAN-аар дамжуулан хэд хэдэн компьютеруудад Интернэтийн хандалт өгөхийн тулд
энэ холбогдсон нэг компьютераа ашиглахыг хүсдэг явдал юм.
Үүнийг хийхийн тулд Интернэт дэх FreeBSD машин нь гарц маягаар ажиллах ёстой.
Энэ гарц машин нь хоёр NIC-тэй байх ёстой—нэг нь Интернэтийн чиглүүлэгч уруу холбогдохын
тулд, нөгөөх нь LAN уруу холбогдохын тулд ашиглагдах ёстой. LAN дахь бүх машинууд нь
холбох төхөөрөмж (hub) юм уу эсвэл шилжүүлэгчээр (switch) холбогдсон байна.
&os; гарцаар LAN-ийг Интернэттэй холбох олон арга замууд байдаг.
Энэ жишээ нь хамгийн багаар бодоход хоёр NIC-тэй гарцыг зөвхөн тайлбарлах
болно.
_______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|
Network Layout
Үүнтэй адил тохиргоог Интернэтийн холболтыг хуваалцахын тулд түгээмэл
ашигладаг. LAN машинуудын нэг нь Интернэтэд
холбогдсон. Бусад машинууд нь тэр гарц
машинаар
Интернэтэд ханддаг.
цөм
тохиргоо
Тохиргоо
Дараах тохируулгууд цөмийн тохиргооны файлд байх ёстой:
options IPFIREWALL
options IPDIVERT
Мөн нэмэлтээр дараах нь бас тохиромжтой байж болох юм:
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
Дараах нь /etc/rc.conf файлд байх ёстой:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags=""
Машиныг гарц маягаар ажиллахыг тохируулна.
sysctl net.inet.ip.forwarding=1 тушаалыг ажиллуулах
нь бас адил үр дүнтэй.
/etc/rc.firewall файл дахь галт ханын
дүрмүүдийг ачаалах үед идэвхжүүлнэ.
Энэ нь урьдчилан тодорхойлсон байдаг бүгдийг оруулахыг зөвшөөрдөг галт ханын
дүрмийн олонлогийг заана. Нэмэлт төрлүүдийн талаар
/etc/rc.firewall файлаас үзнэ үү.
Аль интерфэйс пакетуудыг нэвтрүүлэн дамжуулахыг заана
(Интернэтэд холбогдсон интерфэйс).
Ачаалах үед &man.natd.8;-д дамжуулах нэмэлт тохиргооны сонголтууд.
Өмнөх тохируулгуудыг /etc/rc.conf файлд
тодорхойлсноор natd -interface fxp0 тушаалыг
ачаалах үед ажиллуулна. Үүнийг гараар бас ажиллуулж болно.
Их олон сонголтуудыг дамжуулах бол &man.natd.8;-д зориулж тохиргооны
файлыг ашиглаж бас болно. Энэ тохиолдолд дараах мөрийг
/etc/rc.conf файлд нэмж тохиргооны файлыг
тодорхойлох шаардлагатай:
natd_flags="-f /etc/natd.conf"
/etc/natd.conf файл нь тохиргооны сонголтуудын
жагсаалтыг нэг мөрөнд нэгийг байхаар агуулдаг. Жишээ нь дараах хэсгийн хувьд
доорх файлыг ашиглах болно:
redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80
Тохиргооны файлын тухай дэлгэрэнгүй мэдээллийг &man.natd.8;
гарын авлагын хуудасны тохируулгын талаар
бичсэнээс лавлана уу.
LAN-ий ард байгаа машин болон интерфэйс бүр RFC 1918-д
тодорхойлогдсон хувийн сүлжээний хаягаас заагдсан IP хаягтай,
natd машины дотоод IP хаягийг анхдагч
гарц болгон заасан байх ёстой.
Жишээ нь LAN-ий цаана байгаа клиент A болон
B нь 192.168.0.2 болон 192.168.0.3 гэсэн IP хаягтай байх бол
natd машины LAN интерфэйс нь 192.168.0.1 гэсэн IP хаягтай байна.
Клиент A болон B-ийн анхдагч
гарц natd машины 192.168.0.1-ээр тохируулагдах
ёстой. natd машины гадаад
буюу Интернэтийн интерфэйс нь &man.natd.8;-г ажиллуулахын тулд
ямар нэгэн тусгайлсан өөрчлөлтийг шаарддаггүй.
Порт дахин чиглүүлэлт
&man.natd.8;-ийн сул тал нь LAN клиентүүдэд Интернэтээс хандах боломжгүй
байдаг. LAN дахь клиентүүд нь гаднах ертөнц уруу чиглэсэн гадагшаа холболтуудыг
хийж чадах боловч ирж байгааг хүлээн авч чаддаггүй. LAN клиент машинуудын аль нэгэн
дээр Интернэтийн үйлчилгээнүүдийг ажиллуулахыг оролдох үед энэ нь асуудал үүсгэдэг.
Үүнийг тойрох хялбар арга бол natd машины
сонгосон Интернэтийн портуудыг LAN клиент уруу дахин чиглүүлэх явдал юм.
Жишээ нь A клиент дээр IRC сервер,
B клиент дээр вэб сервер ажиллаж байна гэж үзье. Эдгээр нь
зөв ажиллахын тулд 6667 (IRC) болон 80 (вэб) портууд дээр хүлээн авсан холболтууд нь
тохирох машинууд уруу дахин чиглүүлэгдэх ёстой юм.
&man.natd.8; уруу тохируулга зохих
сонголтуудтай дамжуулагдах ёстой. Зөв бичих дүрэм нь ийм байна:
-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]
Дээрх жишээний хувьд нэмэлт өгөгдөл нь ийм байх ёстой:
-redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80
Энэ нь зөв tcp портуудыг LAN клиент машинууд уруу дахин
чиглүүлэх болно.
нэмэлт өгөгдлийг порт тус бүрийг
заахад ашиглахаас гадна бас бүлэг портуудыг заахад хэрэглэж болно. Жишээ нь
tcp
192.168.0.2:2000-3000 2000-3000 нь 2000-аас 3000 хүртэлх
портууд дээр хүлээн авсан бүх холболтуудыг A клиентийн
2000-аас 3000 хүртэлх портууд уруу дахин чиглүүлэх болно.
Эдгээр тохируулгуудыг &man.natd.8;-г шууд ажиллуулж байх үед
/etc/rc.conf файлд
natd_flags="" тохируулга дотор оруулж
ашиглаж болохоос гадна тохиргооны файлын тусламжтай дамжуулж
болно.
Тохиргооны сонголтуудын талаар &man.natd.8;-с лавлана уу
Хаяг дахин чиглүүлэлт
хаяг дахин чиглүүлэлт
Хаягийн дахин чиглүүлэлт нь хэд хэдэн IP хаягууд байгаа бөгөөд тэдгээр нь
нэг машин дээр байх ёстой үед ашигтай байдаг. Үүнийг ашиглаад
&man.natd.8; нь өөрийн LAN клиент бүрдээ өөрийн гадаад IP хаягуудыг
өгч чаддаг. Дараа нь &man.natd.8; нь LAN клиентүүдээс ирэх гадагш
чиглэсэн пакетуудыг зөв гадаад IP хаягаас болгон дахин бичиж тухайн IP хаяг
дээр ирж байгаа бүх урсгалыг тохирох LAN клиент уруу дахин чиглүүлдэг.
Энэ нь бас статик NAT гэж нэрлэгддэг. Жишээ нь 128.1.1.1,
128.1.1.2, болон
128.1.1.3 гэсэн IP хаягууд нь
natd гарц машинд харьяалагдаж байна
гэж үзье. 128.1.1.1 нь
natd гарц машины гадаад IP хаяг болон
ашиглагдаж болох бол 128.1.1.2 болон
128.1.1.3 нь A болон
B LAN клиентүүд уруу буцааж дамжуулагдахаар байж болно.
бичлэг нь дараах маягийн байна:
-redirect_address localIP publicIP
localIP
LAN клиентийн дотоод IP хаяг.
publicIP
LAN клиентэд тохирох гадаад IP хаяг.
Энэ жишээний хувьд энэхүү нэмэлт өгөгдөл нь ингэж уншигдаж болно:
-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3
тохируулгын нэгэн адил эдгээр
нэмэлт өгөгдлүүдийг /etc/rc.conf файлын
natd_flags="" тохируулгад хийж өгч болохоос
гадна тохиргооны файлаар дамжуулж болно. Хаягийн дахин чиглүүлэлт дээр
тухайн нэг IP хаяг дээр хүлээн авсан бүх өгөгдөл дахин чиглүүлэгддэг учраас
портын дахин чиглүүлэлт шаардлагагүй байдаг.
natd машины гадаад IP хаягууд нь идэвхтэй байж
гадаад интерфэйсийн нэрээр нэрлэгдсэн байх ёстой. Үүнийг хийхийн тулд &man.rc.conf.5;-г
үзнэ үү.
Parallel Line IP (PLIP) буюу Зэрэгцээ Шугамын IP
PLIP
Parallel Line IP
PLIP
PLIP нь параллел буюу зэрэгцээ портуудын хооронд TCP/IP ажиллуулах
боломж олгодог. Энэ нь сүлжээний картгүй машинууд дээр эсвэл зөөврийн компьютер
дээр суулгахад ашигтай байдаг. Энэ хэсэгт бид дараах зүйлсийг хэлэлцэх
болно:
Зэрэгцээ (laplink) кабелийг хийх.
PLIP-ээр хоёр компьютерийг холбох.
Зэрэгцээ кабелийг хийх
Та зэрэгцээ кабелийг ихэнх компьютерийн хангамжийн дэлгүүрээс худалдан
авч болно. Хэрэв та тэгж чадахгүй бол эсвэл та зүгээр л яаж хийгддэгийг мэдэхийг
хүсэж байгаа бол дараах хүснэгт нь ердийн зэрэгцээ хэвлэгчийн кабелиас
тийм кабель хэрхэн хийхийг харуулж байна.
Сүлжээнд зориулж зэрэгцээ кабель хийх нь
A-нэр
A-Төгсгөл
B-Төгсгөл
Тайлбар
Post/Bit
DATA0
-ERROR
2
15
15
2
Өгөгдөл
0/0x01
1/0x08
DATA1
+SLCT
3
13
13
3
Өгөгдөл
0/0x02
1/0x10
DATA2
+PE
4
12
12
4
Өгөгдөл
0/0x04
1/0x20
DATA3
-ACK
5
10
10
5
Strobe
0/0x08
1/0x40
DATA4
BUSY
6
11
11
6
Өгөгдөл
0/0x10
1/0x80
GND
18-25
18-25
GND
-
PLIP-ийг тохируулах
Эхлээд та laplink кабель олж авах хэрэгтэй.
Дараа нь хоёр компьютер хоёулаа &man.lpt.4; драйверийн
дэмжлэгтэй цөмтэй эсэхийг шалгаарай:
&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
Зэрэгцээ порт нь тасалдлаар удирдагддаг порт байх ёстой
бөгөөд та өөрийн /boot/device.hints
файлдаа доор дурдсантай төстэй мөрүүдтэй байх ёстой:
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
Дараа нь цөмийн тохиргооны файлд device plip
мөр байгаа эсэх эсвэл цөмийн plip.ko модуль
дуудагдсан эсэхийг шалгана. Аль ч тохиолдолд таныг &man.ifconfig.8; ашиглан
үзүүлэх үед зэрэгцээ сүлжээний интерфэйс гарч ирэх ёстой:
&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
Компьютер бүрийн зэрэгцээ интерфэйс уруу laplink кабелиа
залгана.
Сүлжээний интерфэйсийн өгөгдлүүдийг хоёр талын хоёулан дээр
root хэрэглэгчээр тохируулна. Жишээ нь хэрэв та
host1 хостыг өөр host2 машинтай
холбохыг хүсвэл:
host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2
host1 дээрх интерфэйсийг доор дурдсаныг хийж тохируулна:
&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2
host2 дээрх интерфэйсийг доор дурдсаныг хийж тохируулна:
&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1
Та одоо ажилладаг холболттой болсон байх ёстой. Дэлгэрэнгүй мэдээллийг
&man.lp.4; болон &man.lpt.4; гарын авлагын хуудаснуудаас уншина уу.
Та хоёр хостыг хоёуланг нь /etc/hosts файлд
нэмэх хэрэгтэй:
127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domain
Холболт ажиллаж байгааг баталгаажуулахын тулд хост бүр уруу очоод
нөгөө тал уруу ping хийнэ. Жишээ нь host1 дээр:
&prompt.root; ifconfig plip0
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 plip0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
Аарон
Каплан
Анхлан бичсэн
Том
Рөүдс
Дахин бүтцийг өөрчилж нэмсэн
Брэд
Дэйвис
Өргөтгөсөн
IPv6
IPv6 (бас IPng IP next generation
буюу дараа үеийн IP гэгддэг) нь
олонд танигдсан IP протоколын (бас IPv4 гэгддэг) шинэ хувилбар юм.
Одоогийн бусад *BSD системүүдийн адил FreeBSD нь KAME IPv6 лавлагаа шийдлийг
агуулдаг. Тэгэхээр таны FreeBSD систем таныг IPv6-г туршихад хэрэгтэй бүхнийг агуулсан
байдаг. Энэ хэсэг нь IPv6-г тохируулж ажиллуулах талаар анхаарлаа хандуулах болно.
1990 оны эхэн үеэс хүмүүс IPv4-ийн хаягийн хэмжээ хурдацтай багасаж
байгааг мэдэх болсон. Интернэтийн өсөлтийн хурдаас хамаараад хоёр гол асуудал
гарч ирсэн:
Хаяггүй болж эхэлсэн. RFC1918 хувийн хаягийн талбар
(10.0.0.0/8,
172.16.0.0/12, болон
192.168.0.0/16) болон
Network Address Translation (NAT) буюу
Сүлжээний хаягийн хөрвүүлэлтийг ашигладаг болсон болохоор өнөөдөр энэ нь
тийм ч чухал асуудал байхаа больсон.
Чиглүүлэгчийн хүснэгтийн оруулгууд хэтэрхий ихсэж байгаа явдал.
Энэ нь өнөөдөр асуудал хэвээр байгаа билээ.
IPv6 нь эдгээр асуудлууд болон өөр бусад олныг шийддэг:
128 битийн хаягийн талбар. Өөрөөр хэлбэл онолын хувьд
340,282,366,920,938,463,463,374,607,431,768,211,456 хаяг байна.
Энэ нь манай гариг дээрх нэг квадрат метр бүрт ойролцоогоор 6.67 * 10^27 IPv6 хаяг
байна гэсэн үг юм.
Чиглүүлэгчүүд нь зөвхөн сүлжээний нийлбэр хаягуудыг өөрсдийн чиглүүлэлтийн
хүснэгтүүдэд хадгалах бөгөөд ингэснээр чиглүүлэлтийн хүснэгтийн дундаж хэмжээг
8192 хүртэл бууруулдаг.
IPv6-ийн бусад ашигтай олон боломжууд бас байдаг, тэдгээрээс дурдвал:
Хаягийн автомат тохиргоо (RFC2462)
Anycast хаягууд (one-out-of many
буюу олноос ганц)
Зайлшгүй шаардлагатай (mandatory) multicast хаягууд
IPsec (IP security буюу нууцлаг)
Хялбаршуулсан толгойн бүтэц
Хөдөлгөөнт IP
IPv6-to-IPv4 шилжилтийн арга замууд
Дэлгэрэнгүй мэдээллийн талаар доороос үзнэ үү:
playground.sun.com
дэх IPv6-ийн тухай тойм
KAME.net
IPv6 хаягуудын тухай суурь мэдээлэл
IPv6 хаягуудын өөр өөр төрлүүд байдаг: Unicast, Anycast, болон
Multicast.
Unicast хаягууд нь бидний мэддэг хаягууд юм. Unicast хаяг уруу илгээсэн
пакет нь яг тэр хаягт харгалзах интерфэйс дээр ирдэг.
Anycast хаягуудыг unicast хаягуудаас ялгах боломжгүй байдаг боловч
тэдгээр нь бүлэг интерфэйсүүдийг хаягладаг. Anycast хаяг уруу чиглэсэн пакет
хамгийн ойрын (чиглүүлэгчийн хэмжилтийн хувьд) интерфэйс дээр ирэх болно.
Anycast хаягуудыг зөвхөн чиглүүлэгчид ашиглаж болох юм.
Multicast хаягууд нь бүлэг интерфэйсүүдийг таньдаг. Multicast хаяг уруу
чиглэсэн пакет нь multicast бүлэгт харьяалагдах бүх интерфэйсүүд дээр
ирэх болно.
IPv4 цацах (broadcast) хаяг (ихэвчлэн xxx.xxx.xxx.255) нь
IPv6-ийн multicast хаягуудаар илэрхийлэгддэг.
Нөөц IPv6 хаягууд
IPv6 хаяг
Prefixlength буюу угтварын урт (битээр)
Тайлбар
Тэмдэглэл
::
128 бит
тодорхойлогдоогүй
харьцуулбал IPv4 дэх 0.0.0.0
::1
128 бит
loopback буюу буцах хаяг
харьцуулбал IPv4 дэх 127.0.0.1
::00:xx:xx:xx:xx
96 бит
суулгагдсан IPv4
Бага 32 бит нь IPv4 хаяг юм. Бас
IPv4 нийцтэй IPv6 хаяг
гэгддэг
::ff:xx:xx:xx:xx
96 бит
IPv4-р илэрхийлэгдсэн IPv6 хаяг
Бага 32 бит нь IPv4 хаяг юм.
IPv6-г дэмждэггүй хостуудад зориулсан.
fe80:: - feb::
10 бит
link-local
харьцуулбал IPv4 дэх loopback буюу буцах хаяг
fec0:: - fef::
10 бит
site-local
ff::
8 бит
multicast
001 (хоёртын системээр)
3 бит
глобал unicast
Бүх глобал unicast хаягууд нь энэ цөөрмөөс заагдана.
Эхний 3 бит нь 001
байна.
IPv6 хаягуудыг унших нь
Дүрмийн дагуу ийм хэлбэртэй байна: x:x:x:x:x:x:x:x хэлбэрийн
байх бөгөөд x
бүр нь 16 битийн арван зургаат утга байна. Жишээ нь
FEBC:A574:382B:23C1:AA49:4592:4EFE:9982
Хаяг нь ихэнхдээ дандаа тэгүүдээс тогтох урт дэд хэсгүүдээс тогтож болох бөгөөд хаягийн тийм
хэсгийг ::
гэж хураангуйлж болно. Дөрвөн арван зургаат тооны
гурав хүртэлх эхний 0
-үүдийг орхиж бас болно.
Жишээ нь fe80::1 нь дүрэмд заасан хэлбэрээр бол
fe80:0000:0000:0000:0000:0000:0000:0001 байна.
Гурав дахь хэлбэр нь сүүлийн 32 бит хэсгийг бидний мэддэг (аравтын) IPv4
загварын цэгүүдээр .
тусгаарлаж бичих явдал юм.
Жишээ нь 2002::10.0.0.1 нь
(арван зургаатын) дүрэмд зааснаар
2002:0000:0000:0000:0000:0000:0a00:0001
болох бөгөөд үүнийг бас 2002::a00:1
гэж бичиж болох юм.
Энэ хүртэл уншигч доор дурдсаныг ойлгож чадаж байх ёстой:
&prompt.root; ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: active
fe80::200:21ff:fe03:8e1%rl0 нь
автоматаар тохируулагдсан link-local хаяг юм. Энэ нь MAC хаягаас автомат тохиргооны
хэсэг болон үүсгэгддэг.
IPv6 хаягуудын бүтцийн тухай дэлгэрэнгүй мэдээллийг
RFC3513 хаягаас
үзнэ үү.
Холбогдох нь
Одоогоор бусад IPv6 хостууд болон сүлжээнүүдтэй холбогдох дөрвөн арга байдаг:
Өөрийн дээд үйлчилгээ үзүүлэгчээсээ IPv6 сүлжээ авах. Зааврын талаар өөрийн
Интернэтийн үйлчилгээ үзүүлэгчтэйгээ ярилцах хэрэгтэй.
6-аас-4 уруу туннель хийх (RFC3068)
Хэрэв та dial-up холболт дээр байгаа бол
net/freenet6 портыг ашиглах
хэрэгтэй.
IPv6 ертөнц дэх DNS
IPv6-д зориулсан хоёр төрлийн DNS бичлэг байдаг. IETF нь A6 бичлэгийг
хуучин, хэрэгцээнээс гарсан гэж зарласан. AAAA бичлэгүүд нь одоо стандарт
болсон байгаа.
AAAA бичлэгүүдийг ашиглах нь амархан. Өөрийн хостын нэрийг дөнгөж авсан шинэ
IPv6 хаягт зааж доор дурдсаныг:
MYHOSTNAME AAAA MYIPv6ADDR
өөрийн анхдагч бүсийн DNS файл уруу нэмж өгнө. Та өөрийн DNS
бүсүүдийг удирддаггүй бол өөрийн DNS үйлчилгээ үзүүлэгчээс
асуух хэрэгтэй. bind (8.3 ба 9 хувилбар)
болон dns/djbdns-ийн (IPv6 засвартай)
одоогийн хувилбарууд AAAA бичлэгүүдийг дэмждэг.
/etc/rc.conf файлд хэрэгцээтэй өөрчлөлтүүдийг хийх нь
IPv6 клиентийн тохиргоонууд
Эдгээр тохиргоонууд нь таны LAN-д байх машиныг чиглүүлэгч биш клиент маягаар
ажиллуулахаар тохируулахад танд туслах болно. Таны интерфэйсийг ачаалах үед автоматаар
&man.rtsol.8;-оор тохируулуулахын тулд таны нэмэх ёстой зүйл бол дараах мөр юм:
ipv6_enable="YES"
2001:471:1f11:251:290:27ff:fee0:2093 зэрэг
IP хаягийг өөрийн fxp0 интерфэйсд
статикаар өгөхийн тулд доор дурдсаныг нэмнэ:
ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"
2001:471:1f11:251::1 анхдагч
чиглүүлэгчийг зааж өгөхдөө доор дурдсаныг /etc/rc.conf
файлд нэмнэ:
ipv6_defaultrouter="2001:471:1f11:251::1"
IPv6 чиглүүлэгч/гарцын тохиргоонууд
Энэ нь таны туннелийн үйлчилгээ үзүүлэгчийн өгсөн чиглэлүүдийг авч тэдгээрийг дахин ачаалсан ч
гэсэн үлдэхээр болгож тохиргоо болгон хөрвүүлэхэд танд туслах болно. Эхлүүлэх үед
өөрийн туннелийг сэргээхийн тулд доор дурдсантай төстэйг /etc/rc.conf
файлд ашиглана:
Тохируулах Ердийн Туннель хийх интерфэйсүүдийг жагсаана. Жишээ нь
gif0:
gif_interfaces="gif0"
MY_IPv4_ADDR гэсэн локал төгсгөлтэй
интерфэйсийг REMOTE_IPv4_ADDR гэсэн алсын төгсгөл
уруу тохируулахын тулд:
gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"
Өөрийн IPv6 туннелийн төгсгөл болгон ашиглахаар таны зааж өгсөн IPv6
хаягийг хамааруулахын тулд доор дурдсаныг нэмнэ:
ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"
Тэгээд таны хийх зүйл чинь IPv6-д зориулж анхдагч чиглүүлэлт тохируулах
явдал юм. Энэ нь IPv6 туннелийн нөгөө тал байх болно:
ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"
IPv6 туннелийн тохиргоонууд
Хэрэв сервер нь таны бусад сүлжээ болон гадаад ертөнцийн хооронд
IPv6-г чиглүүлэх бол дараах /etc/rc.conf
тохируулга бас хэрэгтэй болно:
ipv6_gateway_enable="YES"
Чиглүүлэгчийн зарлалт ба Хостын автомат тохиргоо
Энэ хэсэг нь IPv6 анхдагч чиглүүлэлтийг зарлахын тулд &man.rtadvd.8;-г
тохируулахад тань туслах болно.
&man.rtadvd.8;-г идэвхжүүлэхийн тулд таны /etc/rc.conf
файлд дараах тохиргоо хэрэгтэй болно:
rtadvd_enable="YES"
IPv6 чиглүүлэгчийн төлөөлөлт хийгдэх интерфэйсийг заах нь чухал юм. Жишээ нь
&man.rtadvd.8;-д fxp0-г ашиглахыг хэлж өгөхийн
тулд доор дурдсаныг нэмнэ:
rtadvd_interfaces="fxp0"
Одоо бид /etc/rtadvd.conf тохиргооны
файл үүсгэх ёстой. Энд жишээ байна:
fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:
fxp0-г өөрийн ашиглах интерфэйсээр солих
хэрэгтэй.
Дараа нь 2001:471:1f11:246::-г
өөрийн хуваарилалтын угтвараар солиорой.
Хэрэв та /64 дэд сүлжээг зориулсан
бол өөр бусад ямар ч өөрчлөлт хийх хэрэггүй. Хэрэв тийм биш бол та
prefixlen# буюу угтварын уртыг зөв утгаар өөрчлөх шаардлагатай.
Харти
Брандт
Хувь нэмэр болгон оруулсан
Asynchronous Transfer Mode (ATM) буюу Асинхрон Дамжуулах Горим
ATM дээгүүр классик IP тохируулах нь (PVC-нүүд)
Classical IP over ATM (CLIP) буюу
ATM дээгүүрх классик IP нь Asynchronous Transfer Mode (ATM)
буюу Асинхрон Дамжуулах Горимыг IP-тай ашиглах хамгийн энгийн
арга юм. Энэ нь switched буюу шилжүүлэгдсэн (SVC-нүүд) ба permanent буюу
байнгын (PVC-нүүд) холболтуудтай ашиглагдаж болдог. Энэ хэсэг нь
сүлжээн дээр тулгуурласныг PVC-нүүд дээр хэрхэн тохируулах талаар
тайлбарладаг.
Бүрэн тор хэлбэрийн тохиргоонууд
CLIP-ийг PVC-нүүдтэй тохируулах эхний арга нь
машин бүрийг сүлжээн дэх бусад машин бүртэй зориулагдсан PVC-ээр холбох явдал
юм. Үүнийг тохируулах хялбар байдаг боловч их олон тооны машинууд дээр
бүтэшгүй байдаг. Энэ жишээ нь сүлжээнд бидэнд дөрвөн машин байгаа бөгөөд
машин бүр ATM
сүлжээнд ATM
хувиргагч картын тусламжтай холбогдсон гэж үздэг. Эхний алхам нь IP хаягууд болон
машинуудын хооронд ATM холболтуудыг төлөвлөх явдал юм.
Бид доор дурдсаныг ашиглана:
Хост
IP хаяг
hostA
192.168.173.1
hostB
192.168.173.2
hostC
192.168.173.3
hostD
192.168.173.4
Бүрэн тор хэлбэрийн сүлжээг бүтээхийн тулд машинуудын хослол бүрийн хооронд
нэг ATM холболт бидэнд хэрэгтэй:
Машинууд
VPI.VCI хослол
hostA - hostB
0.100
hostA - hostC
0.101
hostA - hostD
0.102
hostB - hostC
0.103
hostB - hostD
0.104
hostC - hostD
0.105
Холболтын төгсгөл бүр дэх VPI болон VCI утгууд нь мэдээж ялгаатай
байх боловч амархан байлгах үүднээс бид тэдгээрийг адил гэж үзнэ. Дараа нь
бид ATM интерфэйсүүдийг хост бүр дээр тохируулах хэрэгтэй болно:
hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 up
Ингэхдээ бүх хостууд дээр ATM интерфэйс нь hatm0
гэж үзэх болно. Одоо PVC-нүүд нь hostA дээр тохируулагдах
шаардлагатай (бид тэдгээрийг ATM шилжүүлэгч дээр аль хэдийн тохируулагдсан гэж
үзнэ, үүнийг хэрхэн хийхийг шилжүүлэгчийн гарын авлагаас лавлах хэрэгтэй).
hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr
Мэдээж хэрэг UBR-с бусад урсгалын хэлэлцээнүүд хэрэв ATM хувиргагч тэдгээрийг
дэмждэг бол ашиглагдаж болно. Энэ тохиолдолд урсгалын хэлэлцээний нэр нь урсгалын
нэмэлт өгөгдлүүдийн дараа орж байна. &man.atmconfig.8; хэрэгсэлд зориулсан
тусламжийг дараах тушаалыг ашиглан:
&prompt.root; atmconfig help natm add
авч болох бөгөөд эсвэл &man.atmconfig.8; гарын авлагаас авч болно.
Үүнтэй адил тохиргоог /etc/rc.conf
ашиглан бас хийж болно. hostA-ийн хувьд энэ нь
иймэрхүү харагдана:
network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"
Бүх CLIP чиглүүлэлтүүдийн тухайн үеийн төлвийг дараах
тушаалаар авч болно:
hostA&prompt.root; atmconfig natm show
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Common Access Redundancy Protocol (CARP) буюу Олон хандалтын нийтлэг протокол
CARP
Common Access Redundancy Protocol
Common Access Redundancy Protocol буюу CARP нь
олон хостуудад нэг IP хаяг хуваалцах боломжийг олгодог.
Зарим тохиргоонуудын хувьд үүнийг байнгын бэлэн байдал юм уу эсвэл ачаалал тэгш хуваарилахад
ашиглаж болох юм. Энд дурдсан жишээний адилаар хостууд нь бас өөр өөр
IP хаягууд ашиглаж болох юм.
CARP-ийн дэмжлэгийг идэвхжүүлэхийн тулд
&os; цөмийг дараах тохируулгатайгаар бүтээсэн байх хэрэгтэй:
device carp
CARP боломж нь одоо хүртээмжтэй болсон байх
ёстой бөгөөд түүнийг хэд хэдэн sysctl-ийн OID-уудын
тусламжтайгаар тааруулж болно. Төхөөрөмжүүдийг ifconfig тушаалаар
ачаалж болно:
&prompt.root; ifconfig carp0 create
Жинхэнэ амьдрал дээр эдгээр интерфэйсүүдэд VHID гэгддэг
давхардахгүй дугаарууд хэрэгтэй болно. Энэ VHID буюу
Виртуал Хостын Үнэмлэх нь сүлжээн дэх хостыг ялгахад хэрэглэгдэх болно.
Серверт хандах боломжийг байнга хангахын тулд CARP-ийг ашиглах нь (CARP)
Дээр дурдсан CARP-ийн нэг хэрэглээ нь серверийн
бэлэн байдалд зориулагджээ. Энэ жишээ нь өөр өөр IP
хаягуудтай, ижил вэбийн агуулга бүхий гурван хостын хувьд байнгын
бэлэн байдалд байх дэмжлэгийг харуулах болно. Эдгээр машинууд нь
Тойрон Эргэх DNS тохиргоотойгоор ажиллах болно.
Амжилтгүй болсон үед хандах нөөц машин нь хоёр нэмэлт CARP
интерфэйстэй байх бөгөөд агуулгын сервер бүрийн IP-ний
хувьд ашиглагдана. Хандалт амжилтгүй болоход амжилтгүй болсон машины
IP хаягийг нөөц сервер авах ёстой. Энэ нь
хэрэглэгчид амжилтгүй болсон нь мэдэгдэхгүй гэсэн үг юм. Нөөц сервер нь ачааллыг
авах ёстой бол бусад агуулгын серверүүдтэй ижил агуулга болон үйлчилгээнүүдтэй
байх ёстой.
Хоёр машин нь өгөгдсөн хостын нэр болон VHID-үүдээс
бусдаараа адилхан тохируулагдсан байх ёстой. Энэ жишээн дээр
эдгээр машинуудыг hosta.example.org болон
hostb.example.org гэж нэрлэсэн байгаа. Эхлээд
CARP-ийн тохиргоонд шаардлагатай мөрүүдийг
rc.conf файлд нэмэх хэрэгтэй.
hosta.example.org хостын хувьд
rc.conf файл доор дурдсан мөрүүдийг агуулсан байх ёстой:
hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpast 192.168.1.50/24"
hostb.example.org дээр доор дурдсан мөрүүдийг
rc.conf файл агуулсан
байх ёстой:
hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"
Хамгийн чухал нь ifconfig тушаалд тохируулгаар
заагдсан нууц үгс нь адил байх ёстой. carp
төхөөрөмжүүд нь зөвхөн зөв нууц үг бүхий машинуудаас ирэх зарлалтуудыг сонсох
болно. VHID нь машин бүрийн хувьд өөр өөр байх ёстой.
Гурав дахь provider.example.org машиныг
аль нэг хост руу хандахад амжилтгүй болоход хандаж болохоор болгож бэлдэх хэрэгтэй.
Энэ машинд хоёр carp төхөөрөмж хэрэгтэй болох
бөгөөд нэг нэгээрээ хоёр хосттой ажиллах юм. rc.conf-ийн
зөв тохиргооны мөрүүд доор дурдсантай төсөөтэй байх болно:
hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"
Хоёр carp төхөөрөмжтэй байх нь
хариу өгөхөө байсан аль нэг машиныг мэдэж IP хаягийг нь
авах боломжийг provider.example.org хостод олгох болно.
Анхдагч &os; цөм дээр preemption буюу өөр илүү өндөр давуу эрх бүхий бодлого/урсгалаар
солигдох боломж идэвхжсэн байж болох юм.
Хэрэв тийм бол provider.example.org нь
IP хаягийг анхдагч агуулгын сервер рүү суллахгүй
байж болох юм. Энэ тохиолдолд администратор интерфэйсийг
нударч
болох юм. Дараах тушаалыг provider.example.org
дээр ажиллуулах шаардлагатай:
&prompt.root; ifconfig carp0 down && ifconfig carp0 up
Хостод тохирох carp интерфэйс дээр
үүнийг хийх ёстой.
Энэ хүрэхэд CARP бүрмөсөн идэвхжиж
тест хийхэд бэлэн болсон байх ёстой. Сүлжээг дахин эхлүүлэх буюу эсвэл
машинуудыг дахин ачаалаад тест хийгээрэй.
Дэлгэрэнгүй мэдээллийг &man.carp.4; гарын авлагын хуудаснаас олж
болно.
diff --git a/mn_MN.UTF-8/books/handbook/book.sgml b/mn_MN.UTF-8/books/handbook/book.sgml
index 1982694f6c..5892da818c 100644
--- a/mn_MN.UTF-8/books/handbook/book.sgml
+++ b/mn_MN.UTF-8/books/handbook/book.sgml
@@ -1,351 +1,351 @@
%books.ent;
%chapters;
%txtfiles;
%pgpkeys;
]>
-
+
FreeBSD гарын авлага
FreeBSD баримтжуулах төсөл
1999 оны хоёрдугаар сар
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
FreeBSD баримтжуулах төсөл
2006
2007
FreeBSD-г Монголоор баримтжуулах төсөл
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
FreeBSD-д тавтай морилно уу! Энэ гарын авлага нь
FreeBSD &rel2.current;-RELEASE
болон FreeBSD &rel.current;-RELEASE зэрэг хувилбаруудын
суулгацаас эхлээд өдөр тутмын хэрэглээг тайлбарласан билээ.
Энэ гарын авлага нь төгс дуусаагүй бөгөөд маш олон
хүний хамтын бүтээл юм. Зарим хэсэг нь хуучирч шинэчлэгдэх шаардлагатай байж болзошгүй.
Хэрэв та энэ төсөлд хамтарч бидэнд туслахыг хүсвэл &a.doc; хаяг руу захиа бичнэ үү. Энэ
гарын авлагын хамгийн сүүлийн хувилбарыг FreeBSD вэб хуудас-наас татаж авч болно.
(энэ гарын авлагын өмнөх хувилбаруудыг -с авах боломжтой).
Энэ нь мөн янз бүрийн шахаж бэлтгэсэн хэлбэрээр FreeBSD FTP
серверийн хэд хэдэн толин тусгал хуудаснаас татаж авагдаж болно.
Хэрэв та энэ гарын авлагын хэвлэсэн хуулбарыг авахыг хүсвэл
FreeBSD Mall хуудсанд зорчино уу. Та мөн
гарын авлага дотор хайлт хийх боломжтой.
&chap.preface;
Эхлэл
FreeBSD гарын авлагын энэ хэсэг нь FreeBSD уруу шинээр
орж байгаа амдинистратор болон хэрэглэгчдэд зориулагдсан. Энд гарах бүлгүүд нь:
FreeBSD-н танилцуулга.
Суулгах явцын хөтөлбөр.
&unix;-ийн үндсийн тайлбар.
FreeBSD дээр байдаг өөрт нь хамт ирдэг болон гуравдагч хамтрагчийн нийлүүлсэн програмыг хэрхэн суулгах.
&unix; цонхон систем X -ийг танилцуулж, танд илүү
үр бүтээлтэй ажиллахын тулд хэрхэн орчноо тохируулах талаар
тайлбарлана.
Бид аль болох цөөхөн дамжуулах хуудаснууд оруулсан бөгөөд
ингэснээр танд энэ гарын авлагыг эхнээс нь дуустал
хуудаснаас хуудас уруу үсэрч цовхролгүйгээр уншиж дуусгахад
зориулсан билээ.
Нийтлэг асуудлууд
Үндсэн ойлголтуудыг нэгэнт тайлбарласан болохоор одоо FreeBSD-ийн гарын
авлагын энэ хэсэгт FreeBSD-ийн зарим байнга ашиглагддаг боломжуудыг
хэлэлцэх болно. Эдгээр бүлгүүд нь:
Алдартай болон ашигтай ширээний програмуудыг танд танилцуулах
болно: хөтчүүд, бүтээмжийн багажууд, баримт үзэгчид гэх мэт.
FreeBSD-д байдаг хэд хэдэн мультимедиа багажуудыг танд
танилцуулах болно.
Таны системд нэмэлт функцуудыг идэвхжүүлэх өөрчлөн тохируулсан
FreeBSD цөмийг бүтээх процессийг тайлбарлах болно.
Ширээний болон сүлжээнд холбогдсон хэвлэгчийн тохируулгуудын хувьд
хэвлэх системийг дэлгэрэнгүй тайлбарлах болно.
Таны FreeBSD систем дээр Линукс програмуудыг хэрхэн ажиллуулахыг
танд үзүүлэх болно.
Эдгээр бүлгүүдийн зарим нь таныг урьдаар зарим нэг зүйлсийг уншихыг зөвлөдөг
бөгөөд энэ нь бүлэг бүрийн эхэнд ерөнхий агуулгад дурдсан байгаа болно.
Системийн Удирдлага
FreeBSD гарын авлагын үлдсэн бүлгүүд нь FreeBSD системийн удирдлагын бүх
талуудыг хамрах болно. Бүлэг бүр уг бүлгийг уншсанаар таныг юу сурах талаар тайлбарлаж
эхлэх бөгөөд уг материалтай зууралдахаас өмнө юуг мэдсэн байх ёстойг бас хэлж
өгөх болно.
Эдгээр бүлгүүд нь танд мэдээлэл хэрэг болох үед уншигдахаар зориулагдсан юм.
Та эдгээрийг ямар нэгэн тодорхой дарааллаар унших хэрэггүй бөгөөд бас
FreeBSD ашиглаж эхлэхээсээ өмнө бүгдийг нь унших шаардлагагүй юм.
Сүлжээний Холболт
FreeBSD нь өндөр ажиллагаатай сүлжээний серверүүдэд зориулагдсан
хамгийн өргөн ихээр ашигладаг үйлдлийн системүүдийн нэг юм. Энэ хэсгийн бүлгүүд
нь дараах зүйлсийг хамрах болно:
Сериал холболт
PPP болон Ethernet дээгүүрх PPP (PPP over Ethernet)
Цахим захидал
Сүлжээний серверүүдийг ажиллуулах
Галт хананууд
Бусад дэвшилттэй сүлжээний сэдвүүд
Эдгээр бүлгүүд нь танд мэдээлэл хэрэг болох үед уншигдахаар зориулагдсан юм.
Та эдгээрийг ямар нэгэн тодорхой дарааллаар унших хэрэггүй бөгөөд бас
FreeBSD-г сүлжээний орчинд ашиглаж эхлэхээсээ өмнө бүгдийг нь унших
шаардлагагүй юм.
Хавсралтууд
&chap.colophon;
diff --git a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
index 7d3aec4227..eee773d86d 100644
--- a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
@@ -1,1672 +1,1672 @@
Жим
Мок
Бүтцийг дахин өөрчлөн зохион байгуулж зарим хэсгүүдийг шинэчилсэн
Жордан
Хаббард
Анхлан эхийг бичсэн
Поул-Хэннинг
Камп
Жон
Полстра
Ник
Клэйтон
Цагаанхүүгийн
Ганболд
Орчуулсан
Амжилт ололтын тэргүүнд
Ерөнхий агуулга
&os; нь өөрийн хувилбаруудын хооронд байнгын хөгжүүлэлтийн доор оршин тогтнож
байдаг. Амжилт ололтын тэргүүнд байхыг хүссэн хүн бүхэнд өөрийн системийг хамгийн
сүүлийн үеийн хөгжүүлэлтийн хэлбэрт оруулах хэд хэдэн хялбар арга байдаг.
Амжилт ололтын тэргүүнд байх нь хүн бүхэнд зориулагдаагүйг
анхаарна уу! Энэхүү бүлэг нь хөгжүүлэлтийн системийг дагахыг хүсэх эсвэл гаргасан
хувилбартай үлдэх эсэхийг шийдэхэд танд туслах болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
&os.stable; болон &os.current; хөгжүүлэлтийн салбаруудын
ялгаа.
CVSup,
CVS, эсвэл
CTM програмуудын тусламжтай өөрийн системийг
хэрхэн хамгийн сүүлийн хэлбэрт авчрах талаар.
Бүх үндсэн системийг make buildworld
(гэх мэт) ашиглан хэрхэн дахин бүтээж суулгах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
Өөрийн сүлжээний холболтыг зөв тохируулах ().
Нэмэлт гуравдагч програм хангамжуудыг
хэрхэн суулгахыг мэдэх ().
&os.current; vs. &os.stable;
-CURRENT
-STABLE
FreeBSD-ийн хоёр хөгжүүлэлтийн салбар байдаг: &os.current; болон
&os.stable;. Энэ хэсэгт эдгээр тус бүрийг тайлбарлаж өөрийн системийг тус
тусын модны хувьд хамгийн шинэ хэлбэрт байнга байлгах талаар тайлбарлах болно.
&os.current; эхлээд хэлэлцэгдэх бөгөөд дараа нь &os.stable;-ийн тухай
яригдах болно.
&os;-ийн одоо үеийн хэлбэрт байх нь
Та үүнийг уншихдаа &os.current; нь &os;-ийн хөгжүүлэлтийн
bleeding edge салбар буюу амжилт ололтын хамгийн тэргүүний
салбар
гэдгийг санаарай. &os.current; хэрэглэгчдийг техникийн өндөр
чадавхитай бөгөөд системийн хүнд хэцүү асуудлуудыг өөрсдөө шийдвэрлэх
чадвартай байна гэж тооцдог. Хэрэв та &os;-д анхлан суралцагч бол
үүнийг суулгахаасаа өмнө дахин сайн бодоорой.
&os.current; гэж юу вэ?
хормын агшны хувилбар
&os.current; нь &os;-ийн хамгийн сүүлийн үеийн ажлын эх юм.
Энэ нь хийгдэж байгаа ажлууд, туршилтын өөрчлөлтүүд болон програм хангамжийн
дараагийн албан ёсны хувилбарт байхгүй ч байж болох эсвэл байж ч болох
шилжилтийн аргуудыг багтаадаг. &os;-ийн олон хөгжүүлэгчид &os.current;-ийн
эх кодыг өдөр болгон эмхэтгэн хөрвүүлж байдаг боловч эхийг бүтээх боломжгүй үе бас
байдаг. Эдгээр асуудлууд нь боломжийн хэрээр хурдан шийдэгддэг боловч
&os.current; нь сүйрэл авчрах эсвэл тун их хүссэн ажиллагааг авчрах эсэх нь
та яг ямар агшинд эх кодыг татаж авснаас хамаарах юм!
&os.current; хэнд хэрэгтэй вэ?
&os.current; нь үндсэн 3 сонирхлын бүлэгт зориулагдан
хийгдсэн:
Эх модны зарим хэсэг дээр идэвхтэйгээр ажиллаж байгаа &os;-ийн хүрээний
гишүүд болон current буюу одоо үеийн хэлбэрт
байлгах нь
туйлын шаардлага болсон хүмүүст.
&os.current;-г аль болох ухаалаг байлгахыг хичээж асуудлуудыг шийдвэрлэхэд
цагаа зарах хүсэлтэй байдаг идэвхтэй тест хийгч &os;-ийн хүрээний гишүүд.
Эдгээр хүмүүс нь өөрчлөлтүүд болон &os;-ийн ерөнхий чиглэлд цаг үеийн
саналуудыг тусгахыг хүсэж тэдгээрийг шийдэх засваруудыг илгээдэг бас хүмүүс
юм..
Юу болж байгааг зөвхөн харж мэдэж байхыг хүссэн эсвэл одоо үеийн эхийг
лавлагааны зорилгоор ашиглахыг зөвхөн хүссэн хүмүүс (өөрөөр хэлбэл
ажиллуулах биш унших зорилгоор).
Эдгээр хүмүүс нь хааяа бас санал гаргаж кодонд хувь нэмэр оруулдаг.
&os.current; нь юу Биш вэ?
Та зарим нэг дажгүй шинэ боломж байгааг сонссон учраас бусдаас
түрүүлж урьдчилсан хувилбарын тэдгээр битүүдийг авах таны нэн тэргүүний
арга зам. Шинэ боломжийг авч эхэнд байна гэдэг нь та шинэ алдаанууд,
хорхойнуудыг бас авч эхэнд байна гэсэн үг юм.
Алдааны засваруудыг хурдан авах арга зам. &os.current;-ийн
өгөгдсөн дурын хувилбар нь илэрсэн алдаануудыг засахын хажуугаар бас
магадгүй шинэ алдаанууд бас гаргаж байдаг.
Аль ч үед албан ёсоор дэмжигдсэн
. Бид өөрсдийн
чадлын хирээр хууль ёсны
3 &os.current; бүлгийн
аль нэгэнд хүмүүст бодитоор туслахыг хичээдэг, гэхдээ бидэнд ердөө л
техникийн дэмжлэг үзүүлэх цаг байдаггүй.
Энэ нь бид хүмүүст туслах дургүй өөдгүй муухай хүмүүс учраас гэсэн үг
биш юм (хэрэв бид байгаагүй бол бид &os;-г хийж байхгүй байх байсан).
Бид ердөө л өдрийн хэдэн зуун захидлуудад хариулахын
хажуугаар FreeBSD дээр ажиллаж чаддаггүй!
&os;-г сайжруулах болон туршилтын кодон дээр тавигдсан маш олон
асуултуудад хариулах хоёр сонголтын эхнийхийг хөгжүүлэгчид сонгосон
юм.
&os.current; ашиглах нь
-CURRENT
ашиглах нь
&a.current.name; болон &a.cvsall.name; жагсаалтуудад элсэн орно уу.
Энэ нь зөвхөн сайн санаанаас гадна бас чухал
юм. Хэрэв та &a.current.name; жагсаалтад
ороогүй бол системийн одоогийн төлвийн талаар хүмүүсийн өгч байгаа санал
хүсэлтүүдийг харахгүй учраас бусдын аль хэдийн олоод шийдсэн маш их асуудлууд
дээр магадгүй та бүдрэн төөрөлдөж дуусах биз ээ. Бүр илүү чухал зүйл нь юу вэ гэвэл
таны системийн эрүүл мэндэд эгзэгтэй байж болох чухал мэдээнүүдээс та хоцрох
болно.
&a.cvsall.name; жагсаалт нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно.
&os;-ийн толин тусгалаас
эхийг авна. Та үүнийг хоёр аргаар хийж болно:
cvsup
cron
-CURRENT
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэрт автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
-CURRENT
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв та маш муу холболттой (өндөр үнэтэй холболтууд эсвэл
зөвхөн цахим захидлын хандалт) бол CTM
нь сонголт болох юм. Гэхдээ энэ нь бөөн зовлон бөгөөд та эвдэрсэн
файлуудтай үлдэж болох юм. Энэ нь үүнийг ховор ашиглахад хүргэдэг бөгөөд
ингэснээр ажиллахгүй байх боломжийг нэлээн удаан хугацаагаар ихэсгэдэг.
Бид 9600 bps модем болон түүнээс хурдан холболттой хүмүүст
CVSup-г
ашиглахыг зөвлөдөг.
Хэрэв та эхийг зөвхөн харахаар биш ажиллуулахаар татаж авч байгаа бол
зөвхөн сонгосон хэсгүүдийг биш &os.current;-ийн бүх
эхийг татаж аваарай. Үүний шалтгаан нь эхийн төрөл бүрийн хэсгүүд нь бусад хаа нэгтээ байгаа
шинэчлэлтүүдээс хамаардаг бөгөөд зөвхөн хэсэг бүлэг эхийг хөрвүүлэхийг оролдох нь
таныг бараг л баталгаатайгаар асуудалтай учруулах болно.
-CURRENT
хөрвүүлэх
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Идэвхтэй бай! Хэрэв та &os.current; ажиллуулж байгаа бол
түүний талаар таныг юу хэлэхийг ялангуяа хэрэв танд өргөжүүлэлт эсвэл
алдааны засваруудын талаар санал хүсэлт байвал түүнийг бид мэдэхийг
хүсдэг юм. Хавсаргасан кодтой санал хүсэлтүүдийг хамгийн их урам зоригтойгоор
хүлээн авдаг билээ!
&os;-ийн тогтвортой хэлбэрт байх нь
&os.stable; гэж юу вэ?
-STABLE
&os.stable; нь үндсэн хувилбарууд гардаг бидний хөгжүүлэлтийн салбар юм.
Өөрчлөлтүүд нь эхлээд тест хийгдэх зорилгоор &os.current; уруу ордог гэсэн
ерөнхий төсөөлөл/таамаглалтайгаар янз бүрийн зөвшөөрлөөр энэ салбар уруу
ордог. Энэ нь одоо болтол хөгжүүлэлтийн салбар
бөгөөд гэхдээ энэ нь ямар ч үед &os.stable;-д зориулагдсан эх нь ямар ч зорилгод
тохирч эсвэл тохирохгүй байж болно гэсэн үг юм. Энэ нь эцсийн хэрэглэгчид
зориулагдсан эх үүсвэр бус ердөө л өөр нэг инженерчлэлийн хөгжүүлэлтийн арга зам
юм.
&os.stable; хэнд хэрэгтэй вэ?
Хэрэв та FreeBSD-ийн хөгжүүлэлтийн процессод хувь нэмэр оруулах сонирхолтой,
энэ нь ялангуяа FreeBSD-ийн дараагийн гарах
хувилбартай холбоотой байдаг,
эсвэл юу болж байгааг мэдэж байх сонирхолтой байгаа бол та дараах
&os.stable;-г бодолцох хэрэгтэй.
Аюулгүй байдлын засварууд бас &os.stable; салбар уруу орж байдаг нь
үнэн боловч та үүнийг хийхийн тулд &os.stable;-г заавал дагах
хэрэггүй. FreeBSD-ийн аюулгүй байдлын
зөвлөмжүүд нь тухайн хувилбарт хамааралтай асуудлыг хэрхэн засах тухай
тайлбарладаг
Энэ нь бүр яг үнэн биш юм. Бид FreeBSD-ийн хуучин хувилбаруудыг
үргэлж дэмжиж чадахгүй, гэхдээ бид тэдгээрийг олон жилийн турш дэмжсээр
ирсэн. FreeBSD-ийн хуучин хувилбаруудын одоогийн аюулгүй байдлын бодлогын
бүрэн тайлбарыг http://www.FreeBSD.org/security/-с
үзнэ үү.
бөгөөд зөвхөн аюулгүй байдлын үүднээс бүхэл бүтэн хөгжүүлэлтийн салбарыг
дагаж байна гэдэг бас зөндөө олон хүсээгүй өөрчлөлтүүдийг авчрах
магадлалтай юм.
Бид &os.stable; салбар үргэлж хөрвүүлэгдэн эмхэтгэгдэж дандаа ажилладаг байлгахаар
чармайж байдаг боловч энэ нь баталгаатай биш юм. Нэмж хэлэхэд код нь &os.stable;-д
орохоосоо өмнө &os.current;-д хөгжүүлэгдэж байдаг боловч &os.current;-г
ашиглан ажиллуулдгаас илүү &os.stable;-г хүмүүс ажиллуулдаг болохоор
&os.current;-ийн хувьд илэрхий биш байсан алдаанууд болон булангийн тохиолдлууд
&os.stable;-д илрэх нь заримдаа зайлшгүй юм.
Эдгээр шалтгаануудаас болоод бид &os.stable;-г сохроор дагахыг танд
зөвлөдөггүй бөгөөд энэ нь
өөрийн хөгжүүлэлтийн орчиндоо кодыг эхлээд сайтар тест хийлгүйгээр
үйлдвэрлэлд (production) ашиглаж байгаа серверүүдээ &os.stable;
уруу шинэчлэхгүй байхад танд ялангуяа чухал ач холбогдолтой юм.
Хэрэв танд үүнийг хийх эх үүсвэрүүд байхгүй бол бид FreeBSD-ийн хамгийн сүүлийн үеийн
хувилбарыг ажиллуулж хоёртын шинэчлэлт хийх аргыг хувилбараас хувилбар уруу шилжихдээ
ашиглахыг танд зөвлөж байна.
&os.stable; ашиглах нь
-STABLE
ашиглах нь
&a.stable.name; жагсаалтад элсэн орно уу. Энэ нь
&os.stable;-д илэрч болох бүтээлтийн хамаарлууд эсвэл
тусгайлсан анхаарал шаардлагатай өөр бусад асуудлуудын талаар
танд мэдээлж байх болно. Хөгжүүлэгчид нь зарим нэг маргаантай засвар
эсвэл шинэчлэлийн талаар бодож байгаа талаараа бас энэ захидлын жагсаалтад
мэдээлдэг бөгөөд ийнхүү санал болгож байгаа өөрчлөлтийн талаар хэрэглэгчдэд
ямар нэг асуудал байвал тэдэнд эргээд хариу өгөх боломж олгодог юм.
&a.cvsall.name; жагсаалт нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно.
Хэрэв та шинэ систем суулгаж &os.stable;-ээс бүтээсэн сар бүрийн хормын
агшны хувилбарыг түүн дээр ажиллуулахыг хүсэж байгаа бол дэлгэрэнгүй
мэдээллийн талаар
Хормын агшны хувилбарууд вэб хуудаснаас шалгана уу.
Үүнээс гадна хамгийн сүүлийн үеийн &os.stable; хувилбарыг
толин тусгалын хаягуудаас
татан авч суулгах боломжтой бөгөөд доор дурдсан заавруудыг дагаж
өөрийн системийг хамгийн сүүлийн үеийн &os.stable; эх код уруу
шинэчилж болох юм.
Хэрэв та &os;-ийн урдны хувилбар аль хэдийн ажиллуулж байгаа бөгөөд
эхээс шинэчлэхийг хүсэж байгаа бол &os;-ийн
толин тусгал хуудасаас хялбараар
хийж болно. Үүнийг хоёр аргаар хийж болно:
cvsup
cron
-STABLE
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэр автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
-STABLE
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв танд Интернэт уруу холбогдсон хурдан хямд холболт байхгүй бол
энэ аргыг та ашиглах хэрэгтэй.
Гол нь хэрэв та эхэд хурдан, шаардлагын улмаас хандах хэрэгтэй болоод
холболтуудын зурвасын өргөн ач холбогдолгүй бол cvsup эсвэл
ftp ашиглаарай. Бусад тохиолдолд
CTM-г ашигла.
-STABLE
хөрвүүлэх нь
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Өөрийн эхийг хамгийн сүүлийн хэлбэрт аваачих нь
Интернетийн (эсвэл цахим захидал) холболт ашиглан &os; төслийн эхүүдийн аль ч
хэсгийн хувьд эсвэл таны юу сонирхож байгаагаас хамааран бүх хэсгүүдийг
хамгийн шинэ байлгаж байх төрөл бүрийн аргууд байдаг. Бидний санал болгодог үндсэн
үйлчилгээнүүд бол Anonymous буюу нэргүй
CVS, CVSup болон CTM юм.
Өөрийн эх модны зөвхөн зарим хэсгийг шинэчлэх боломжтой боловч
цорын ганц шинэчлэх арга бол модыг бүтнээр нь шинэчилж хэрэглэгчийн талбар
(өөрөөр хэлбэл /bin болон
/sbin гэх мэт дэх хэрэглэгчийн талбарт ажилладаг
бүх програмууд) болон цөмийн эхүүдийг дахин эмхэтгэх явдал юм. Өөрийн эх модны
зөвхөн нэг хэсэг зөвхөн цөм эсвэл зөвхөн хэрэглэгчийн талбарыг шинэчлэх нь
асуудлууд гарахад ихэвчлэн хүргэдэг. Эдгээр асуудлууд нь эмхэтгэлтийн үеийн
алдаануудаас авахуулаад цөмийн сүйрлүүд эсвэл өгөгдлийн эвдрэлийг хүртэл
хамардаг.
CVS
anonymous буюу нэргүй
Нэргүй CVS болон
CVSup нь эхийг шинэчлэхдээ
татах загварыг хэрэглэдэг.
CVSup-ийн хувьд хэрэглэгч (эсвэл
cron скрипт) cvsup
програмыг эхлүүлэн хаа нэгтээ байгаа cvsupd
серверт хандаж таны өөрийн файлуудыг хамгийн шинэ хэлбэрт авчирдаг.
Таны хүлээн авах шинэчлэлтүүд нь хамгийн сүүлийн минут хүртэлх үеийнх
байх бөгөөд та тэдгээрийг зөвхөн өөрийн хүссэн тэр үедээ авдаг. Та өөрийн
шинэчлэлтүүдийг таны сонирхож байгаа тусгайлсан файлууд эсвэл сангуудаар
хялбараар хязгаарлаж болно. Шинэчлэлтүүд нь таны юуг авахыг хүссэн болон танд
юу байгаагаас хамааран серверээр тухайн үед үүсгэгддэг.
Нэргүй CVS нь алсын CVS repository
буюу кодын архиваас өөрчлөлтүүдийг шууд татахыг түүнд зөвшөөрдөг
CVS-ийн ердөө л нэг өргөтгөл бөгөөд
үүгээрээ CVSup-с арай илүү хялбар юм.
CVSup нь үүнийг хамаагүй илүү
үр дүнтэйгээр хийж чаддаг боловч Нэргүй CVS-г
ашиглахад илүү хялбар байдаг.
CTM
Нөгөө талаас CTM нь танд байгаа эхийг
мастер архив дахь эхтэй лавлаж асуух зарчмаар харьцуулдаггүй бөгөөд өөрөөр хэлбэл
тэдгээрийг татаж авдаггүй. Ингэхийн оронд харин өмнө нь ажиллуулснаас хойшхи
файл дахь өөрчлөлтүүдийг таньдаг скрипт өдөрт хэд хэдэн удаа мастер CTM машин
дээр ажиллаж илэрсэн өөрчлөлтүүдийг шахаж дарааллын-дугаар тавин цахим
захидлаар дамжуулахад зориулан кодчилдог (зөвхөн хэвлэгдэх боломжтой ASCII
хэлбэрээр). Эдгээр CTM дельтануудыг
авсаны дараа
тэдгээрийг автоматаар декод хийж шалган хэрэгчид байгаа эхийн хуулбарт
өөрчлөлтүүдийг хийх &man.ctm.rmail.1; хэрэгсэл уруу өгдөг. Энэ процесс
нь CVSup-с хамаагүй илүү үр дүнтэй
бөгөөд энэ нь татах биш харин
түлхэх загвар учраас бидний серверийн эх үүсвэрт
бага ачаалал учруулдаг юм.
Мэдээж үүнээс гадна харилцан сул болон давуу талуудтай асуудлууд байдаг.
Хэрэв та санамсаргүйгээр өөрийн архивын хэсгийг устгачих юм бол
CVSup үүнийг илрүүлж эвдэрсэн хэсгүүдийг
дахин бүтээж өгдөг. CTM ингэж
хийдэггүй бөгөөд хэрэв та өөрийн эх модны зарим хэсгийг устгасан
(бас нөөцлөн аваагүй) бол та дахин шинээр эхнээс нь (хамгийн сүүлийн үеийн
CVS суурь дельтагаас
) эхэлж
CTM-ийн тусламжтайгаар бүгдийг дахин бүтээх
буюу эсвэл Нэргүй CVS-ийн тусламжтайгаар
муу битүүдийг ердөө л устгаж дахин сүүлийн хэлбэрт аваачих хэрэгтэй болно.
Ертөнц
ийг дахин бүтээх нь
Ертөнц
ийг дахин бүтээх нь
Та өөрийн локал эх модоо &os;-ийн тухайн хувилбарын (&os.stable;,
&os.current;, гэх зэрэг) хамгийн сүүлийн үеийн хэлбэрт аваачсаныхаа
дараа та эх модоо ашиглан системийг дахин бүтээж болно.
Нөөц хий
Та дээрхийг хийхээсээ өмнө өөрийн системийг
нөөцлөн авах нь ямар чухал болохыг энэ нь хангалттай хэлж өгч чаддаггүй.
Ертөнцийг дахин бүтээх нь (хэрэв та эдгээр заавруудыг дагасан тохиолдолд)
хялбар боловч таныг алдаа гаргахад эсвэл бусдын эх модонд хийсэн алдаанууд
нь таны системийг ачаалагдахгүй болгох нөхцөлд зайлшгүй хүргэдэг.
Нөөц хийж авсан эсэхээ шалгаарай. Засварлах уян диск эсвэл ачаалагдах
CD-г гарын дор байлгаарай. Магадгүй та үүнийг хэзээ ч хэрэглэхгүй байж болох
юм, гэхдээ харамсахаасаа өмнө аюулгүй байж байх нь илүү дээр юм!
Тохирох захидлын жагсаалтад бүртгүүл
захидлын жагсаалт
&os.stable; болон &os.current; салбарууд нь угаасаа
хөгжүүлэлтэд байдаг. &os;-д хувь нэмэр
оруулж байгаа хүмүүс нь хүн л учраас алдаанууд заримдаа гардаг.
Заримдаа эдгээр алдаанууд нь нэг их хор хөнөөлгүй бөгөөд ердөө л таны
системийг шинэ оношлогооны анхааруулга хэвлэхэд хүргэдэг. Эсвэл
өөрчлөлт нь сүйрлийн байж болзошгүй байдаг бөгөөд таны системийг ачаалагдахгүй
болгож эсвэл файлын системүүдийг чинь устгаж (эсвэл бүр муу юм болж) болох юм.
Эдгээртэй адил асуудлууд гарвал асуудлын учир шалтгаан болон аль систем дээр
энэ асуудал хамааралтайг тайлбарласан heads up буюу бүхний сонорт
хандсан зарлал тохирох захидлын жагсаалтад илгээгддэг. Тэгээд
all clear буюу бүгд цэвэр
зарлал асуудал шийдэгдсэний дараа
тавигддаг.
Хэрэв та &os.stable; эсвэл &os.current;-ийг дагахыг оролдож &a.stable;
эсвэл &a.current;-г харгалзуулан уншихгүй байгаа бол энэ нь та өөртөө гай төвөг асууж
байна л гэсэн үг юм.
make world тушаалыг бүү ашигла
Ихэнх хуучин баримтууд үүнд зориулан make world
тушаалыг ашиглахыг зөвлөдөг. Энэ тушаалыг ажиллуулснаар зарим нэг чухал алхмуудыг
алгасах бөгөөд та юу хийж байгаагаа мэдэж байгаа тохиолдолд үүнийг зөвхөн ашиглах
хэрэгтэй. Бараг ихэнх тохиолдолд make world хийх нь
буруу зүйл бөгөөд энд тайлбарласан процедурыг түүний оронд ашиглах ёстой юм.
Шалгагдсан аргаар өөрийн системийг шинэчлэх нь
Өөрийн системийг шинэчлэхийн тулд өөрт чинь байгаа эхийн хувилбарт шаардлагатай байгаа
бүтээхээс урьдах алхмууд та /usr/src/UPDATING
файлд байгаа эсэхийг шалгах хэрэгтэй бөгөөд үүний дараа доор дурдсан процедурыг
ашиглана:
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; reboot
buildworld алхмаас өмнө
mergemaster -p тушаалыг нэмж ажиллуулах
цөөн ховор тохиолдлууд байдаг. Эдгээрийн талаар UPDATING
файлд тайлбарласан байдаг. Хэрэв та &os;-ийн нэг буюу олон голлох
хувилбаруудын дагуу шинэчлэл хийхгүй байгаа бол ерөнхийдөө энэ алхмыг
эмээлгүйгээр орхиж болох юм.
installkernel амжилттай дууссаны
дараа та ганц хэрэглэгчийн горим уруу ачаалах хэрэгтэй (өөрөөр хэлбэл
boot -s тушаалыг дуудагч мөрөөс ашиглана).
Дараа нь доор дурдсан тушаалуудыг ажиллуулна:
&prompt.root; mergemaster -p
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; reboot
Тайлбаруудыг цааш уншина уу
Дээр тайлбарласан дараалал нь зөвхөн таныг эхлэхэд туслах богино
сэргээлт болох юм. Гэхдээ хэрэв та ялангуяа өөрчлөн тохируулсан
цөмийн тохиргоо ашиглахыг хүсэж байгаа бол дараах хэсгүүдийг уншиж
алхам бүрийг сайтар ойлгох хэрэгтэй.
/usr/src/UPDATING файлыг унш
Өөр юм хийж эхлэхээсээ өмнө та /usr/src/UPDATING-г
(эсвэл эх кодын хуулбар хаана байгаа тэндээс үүнтэй төстэй файлыг ) уншаарай.
Энэ файл нь танд учирч болзошгүй асуудлуудын талаар чухал мэдээлэл агуулдаг бөгөөд
эсвэл таны ажиллуулах зарим нэг тушаалуудын дарааллын талаар заасан байдаг.
Хэрэв UPDATING файл таны энд уншсантай зөрчилдөж
байвал UPDATING файлд заасныг дагах хэрэгтэй.
UPDATING файлыг унших нь өмнө нь тайлбарласнаар
зөв захидлын жагсаалтад бүртгүүлэхтэй харьцуулах юм бол хүлээн зөвшөөрч болохуйц
орлогч байж чадахгүй юм. Энэ хоёр шаардлага нь нэмэлт бөгөөд заавал шаардлагатай
биш юм.
/etc/make.conf файлыг шалга
make.conf
/usr/share/examples/etc/make.conf
болон /etc/make.conf файлыг шалгаарай.
Эхнийх нь зарим нэг анхдагч тодорхойлолтуудыг агуулдаг – тэдгээрийн
ихэнх нь тайлбар болон хаагдсан байдаг. Та системээ эхээс нь дахин бүтээх үедээ
тэдгээрийг ашиглахын тулд /etc/make.conf
файлд нэмэх хэрэгтэй. /etc/make.conf файлд
нэмсэн болгон make тушаалыг ажиллуулах бүрд
бас ашиглагддаг учир өөрийн системдээ зориулан тэдгээрийг боломжийн утгаар
тохируулж өгөх нь зүйтэй юм.
Ердийн хэрэглэгч /usr/share/examples/etc/make.conf
файлд байдаг CFLAGS болон
NO_PROFILE мөрүүдийг
/etc/make.conf уруу хуулж
тэдгээрийг тайлбар болгосныг болиулж нээхийг магадгүй хүсэж
болох юм.
Бусад тодорхойлолтуудыг (COPTFLAGS,
NOPORTDOCS гэх зэрэг) шалгаж танд хамаатай
эсэхээс хамаарч оруулах эсэхээ шийдээрэй.
/etc дэх файлуудыг шинэчил
/etc сан нь таны системийн тохиргооны мэдээллийн
ихэнх хэсгийг агуулдгаас гадна системийг эхлүүлэхэд ажилладаг скриптүүд энд байдаг.
Эдгээр скриптүүдийн зарим нь FreeBSD-ийн хувилбараас хувилбарт өөрчлөгддөг.
Тохиргооны файлуудын зарим нь бас системийг ажиллуулахад өдөр тутам хэрэглэгддэг.
Ялангуяа /etc/group-г дурдаж болно.
make installworld тушаалын суулгалт хийх хэсэг нь
зарим нэг хэрэглэгчийн нэр эсвэл бүлгүүд байж байна гэж тооцдог тохиолдлууд байдаг.
Шинэчлэл хийж байх үед эдгээр хэрэглэгчид эсвэл бүлгүүд ихэнхдээ байхгүй байдаг.
Энэ нь шинэчлэл хийхэд асуудал учруулдаг. Зарим тохиолдолд make buildworld
нь эдгээр хэрэглэгчид эсвэл бүлгүүд байгаа эсэхийг шалгана.
Үүний нэг жишээ нь smmsp хэрэглэгч нэмэгдсэн
тохиолдол юм. &man.mtree.8; нь /var/spool/clientmqueue-г
үүсгэхийг оролдох үед хэрэглэгчийн суулгалтын процесс энэ асуудлаас болж амжилтгүй
болж байсан.
Үүний шийдэл нь &man.mergemaster.8;-г ертөнцийг бүтээхээс урд
тохируулгатай ажиллуулах явдал юм. Энэ нь buildworld
эсвэл installworld тушаалыг амжилттай болгоход
зөвхөн шаардлагатай файлуудыг харьцуулдаг. Хэрэв таны хуучин mergemaster
хувилбар тохируулгыг дэмждэггүй бол эх модон дахь шинэ хувилбарыг
эхний удаа ажиллуулахдаа ашиглаарай:
&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -p
Хэрэв та ялангуяа хэтэрхий санаа зовж байгаа бол тухайн бүлэгт харьяалагдаж байгаа
нэрийг нь өөрчилж байгаа эсвэл устгаж байгаа ямар файлууд байгааг өөрийн системээс
шалгаарай:
&prompt.root; find / -group GID -print
дээрх нь GID (энэ бүлгийн нэр байж болно эсвэл
бүлгийн тоон ID байж болно) бүлгийн эзэмшдэг файлуудыг харуулна.
Ганц хэрэглэгчийн горимд шилж
ганц хэрэглэгчийн горим
Та системийг ганц хэрэглэгчийн горимд эмхэтгэхийг хүсэж болох юм.
Энэ нь шинэчлэлтийг арай илүү хурдасгах илэрхий ашиг тустайгаас гадна
системийг дахин суулгах нь системийн стандарт хоёртын файлууд,
libraries буюу туслах сангууд, оруулгын файлууд гэх зэрэг системийн
маш олон чухал файлуудыг хөнддөг. Ажиллаж байгаа систем дээр эдгээрийг
өөрчлөх нь (ялангуяа хэрэв тухайн үед таны систем дээр идэвхтэй хэрэглэгчид
байвал) гай төвгийг өөрөө эрж байна гэсэн үг юм.
олон хэрэглэгчийн горим
Өөр нэг арга бол системийг олон хэрэглэгчийн горимд эмхэтгэж дараа нь
суулгахдаа ганц хэрэглэгчийн горимд шилжин хийх явдал юм. Хэрэв та энэ замаар
хийхийг хүсэж байвал бүтээлт дуустал дараах алхмууд дээр хүлээж байгаарай.
Та installkernel эсвэл
installworld хийх хүртлээ ганц хэрэглэгчийн горимд
оролгүйгээр хүлээж байж болно.
Супер хэрэглэгч болоод та доор дурдсаныг:
&prompt.root; shutdown now
ажиллаж байгаа системээс ганц хэрэглэгчийн горим уруу оруулахдаа
ажиллуулж болно.
Өөр нэг арга нь системийг дахин ачаалаад ачаалалтын тушаал хүлээх мөрөн дээр
single user буюу ганц хэрэглэгч
тохируулгыг сонгоорой.
Ингэхэд систем ганц хэрэглэгчийг ачаална. Бүрхүүлийн тушаал хүлээх мөрөнд та
доор дурдсан тушаалуудыг ажиллуулах шаардлагатай:
&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -a
Энэ нь файлын системүүдийг шалгаж /-г
дахин унших/бичихээр дахин холбож бусад бүх UFS файлын системүүдийг
/etc/fstab-д заасны дагуу холбон дараа нь
swap-ийг идэмвхжүүлэх болно.
Хэрэв таны CMOS цаг нь GMT биш локал хугацаагаар тохируулагдсан бол
(хэрэв &man.date.1; тушаалын гаралт зөв цаг болон бүсийг харуулахгүй
бол энэ нь үнэн) та дараах тушаалыг бас ажиллуулах хэрэгтэй болж
болох юм:
&prompt.root; adjkerntz -i
Энэ нь таны локал цагийн бүсийн тохируулгуудыг зөвөөр тохируулж өгдөг —
үүнийг хийхгүй бол та дараа нь зарим асуудлуудтай тулгарч магадгүй.
/usr/obj-г устга
Системийн хэсгүүд дахин бүтээгдсэнийхээ дараа (анхдагчаар)
/usr/obj дахь сангуудад байршдаг. Эдгээр сангууд нь
/usr/src доторхийг халхалдаг.
Та make buildworld процессийг хурдасгаж болох бөгөөд
энэ санг бас устгаснаар хамаарлын зовлонгуудаас өөрийгөө магадгүй аврах болно.
/usr/obj доторхи зарим файлуудад immutable
буюу хувиршгүй туг тавигдсан (дэлгэрэнгүй мэдээллийг &man.chflags.1;-с үзнэ үү )
байж болох бөгөөд түүнийг эхлээд арилгах хэрэгтэй.
&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *
Үндсэн системийг дахин эмхэтгэ
Гаралтыг хадгалах нь
&man.make.1;-г ажиллуулахдаа гарах үр дүнг өөр файл уруу хадгалах нь
зүйтэй юм. Хэрэв ямар нэг юм болохоо боливол та алдааны мэдэгдлийн хуулбартай
байх болно. Энэ нь танд юу буруутсаныг шинжлэхэд чинь тус болохгүй байж болох боловч
та өөрийн энэ асуудлаа &os;-ийн аль нэг захидлын жагсаалт уруу илгээсэн тохиолдолд
бусдад тус болж болох юм.
Үүнийг хамгийн амраар хийхийн тулд &man.script.1; тушаалыг бүх гаралтыг хадгалах
файлын нэрийг заасан параметрийн хамтаар ашиглана. Та үүнийг ертөнцийг дахин бүтээхээс
өмнөхөн нэн даруй хийж дараа нь процесс дууссаны дараа exit
гэж бичиж гарна.
&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET
… compile, compile, compile …
&prompt.root; exit
Script done, …
Хэрэв та үүнийг хийх бол гаралтыг /tmp дотор
битгий хадгалаарай. Энэ сан нь таныг дахин ачаалсны
дараа цэвэрлэгдэж болох юм. Энэ файлыг хадгалах арай илүү боломжийн газар нь
/var/tmp (өмнөх жишээн дээрх шиг) эсвэл
root хэрэглэгчийн гэр сан байж болох юм.
Үндсэн системийг эмхэтгэ
Та /usr/src сан дотор байх
шаардлагатай:
&prompt.root; cd /usr/src
(гэхдээ мэдээж таны код өөр газар байгаа тохиолдолд тэр сан уруугаа орох
хэрэгтэй).
make
Ертөнцийг дахин бүтээхдээ та &man.make.1; тушаалыг ашиглана. Энэ
тушаал нь &os;-ийн агуулсан програмууд ямар дарааллаар дахин хэрхэн бүтээгдэх зэргийг
тайлбарласан Makefile файлаас заавруудыг уншдаг.
Таны бичих тушаалын мөрийн ерөнхий хэлбэр нь дараах байдлаар байна:
&prompt.root; make -x -DVARIABLE target
Энэ жишээн дээр нь
&man.make.1; уруу таны дамжуулах тохируулга юм. &man.make.1;-н гарын авлагын хуудаснаас
та дамжуулж болох тохируулгуудын жишээг үзнэ үү.
тохируулга нь Makefile уруу хувьсагч дамжуулж байна.
Makefile-ийн ажиллагаа эдгээр хувьсагчуудаар
хянагдана. Эдгээр нь /etc/make.conf дотор
зааж өгсөн хувьсагчуудтай адил бөгөөд энэ нь тэдгээрийг тохируулах бас нэг өөр
арга юм.
&prompt.root; make -DNO_PROFILE target
тушаал нь профиль хийгдсэн сангууд бүтээгдэх ёсгүйг заах өөр нэг арга бөгөөд
энэ нь /etc/make.conf дахь дараах
NO_PROFILE= true # Avoid compiling profiled libraries
мөрд харгалзах юм.
target нь &man.make.1;-д
таны юу хийхийг хэлж өгдөг. Makefile болгон
өөр өөр targets буюу даалгаврын төрлүүдийг
тодорхойлдог
бөгөөд таны сонгосон төрөл юу болохыг тодорхойлдог.
Зарим төрлүүд Makefile-д жагсаагдсан байх
бөгөөд гэхдээ эдгээр нь таныг ажиллуулахад зориулагдаагүй. Харин тэдгээр нь
системийг дахин бүтээхэд шаардлагатай алхмуудыг хэд хэдэн дэд алхмуудад хуваахын
тулд бүтээх процессод хэрэглэгддэг.
Ихэнх тохиолдолд та &man.make.1; уруу ямар ч параметр дамжуулах
хэрэггүй бөгөөд тэгэхээр таны тушаал дараахтай ижил байж болно:
&prompt.root; make target
дээрх target нь олон бүтээх тохируулгуудын
нэг болно. Эхний төрөл нь үргэлж buildworld
байх ёстой.
Нэртэйгээ адилаар buildworld нь
/usr/obj дотор бүрэн гүйцэд шинэ модыг бүтээх бөгөөд
өөр нэг төрөл болох installworld нь
энэ модыг тухайн машин дээр суулгадаг.
Тусдаа тохируулгуудтай байх нь хоёр шалтгаанаар маш ач холбогдолтой юм.
Нэгдүгээрт энэ нь бүтээлтийг таны ажиллаж байгаа системийн ямар ч хэсэгт нөлөөлөхгүйгээр
аюулгүйгээр хийхийг танд зөвшөөрдөг. Бүтээлт нь өөр дээрээ хийгдэнэ (self hosted)
.
Ийм болохоор та buildworld тушаалыг олон
хэрэглэгчийн горимд ажиллаж байгаа машин дээр буруу нөлөөллөөс айлгүйгээр аюулгүйгээр
хийж болно. Гэхдээ installworld хэсгийн хувьд ганц
хэрэглэгчийн горимд хийхийг танд зөвлөдөг.
Хоёрдугаарт энэ нь сүлжээн дэх олон машинуудыг шинэчлэхэд
NFS холболтуудыг ашиглахыг танд зөвшөөрдөг. Хэрэв танд гурван машин байгаа бөгөөд
A, B болон C
машинуудыг шинэчлэхийг хүсвэл make
buildworld болон make installworld
тушаалыг A дээр ажиллуулна. Дараа нь B болон C
машинууд A дээрх /usr/src
болон /usr/obj сангуудыг NFS холболт хийн
make installworld-г ажиллуулж
бүтээлтийн үр дүнг B болон C дээр
суулгаж болох юм.
world төрөл байсаар байгаа хэдий ч
танд түүнийг ашиглахгүй байхыг зөвлөж байна.
Дараах тушаалыг ажиллуул
&prompt.root; make buildworld
Хэд хэдэн зэрэгцээ процессуудыг үүсгэх тохируулгыг
make тушаалд зааж өгөх боломжтой. Энэ нь олон CPU-тэй
машинууд дээр хамгийн их ашигтай. Гэхдээ эмхэтгэх процессийн ихэнх нь CPU дээр биш
IO дээр ажилладаг болохоор энэ нь бас нэг CPU-тэй машинууд дээр ашигтай юм.
Ердийн нэг CPU-тэй машин дээр та доор дурдсаныг ажиллуулж болох юм:
&prompt.root; make -j4 buildworld
&man.make.1; нь 4 хүртэлх процессийг нэгэн зэрэг ажиллуулах юм. Захидлын
жагсаалтуудад илгээгдсэн туршлагаас харахад энэ нь ерөнхийдөө ажиллагааг хамгийн сайн
хангаж хурдасгадаг байна.
Хэрэв та олон CPU машинтай бөгөөд SMP тохируулагдсан цөм ашиглаж байвал
утгыг 6-аас 10 хүртэл болгож хэр хурдсаж байгааг хараарай.
Хугацаа
ертөнцийг
дахин бүтээх нь
хугацаа
Бүтээхэд шаардагдах хугацаанд олон хүчин зүйлс нөлөөлдөг, гэхдээ
нэлээн сүүлийн үеийн машинуудын хувьд &os.stable; модыг процессийн явцад ямар нэгэн
заль мэх эсвэл дөт зам ашиглалгүйгээр бүтээхэд зөвхөн нэг юм уу эсвэл хоёр цаг л
шаардагдах болох юм. &os.current; модны хувьд арай удах болов уу.
Шинэ цөмийг эмхэтгэж суулга
цөм
суулгах нь
Та өөрийн шинэ системийн давуу талыг бүгдийг нь авахын тулд цөмөө дахин эмхэтгэх
хэрэгтэй. Зарим нэг санах ойн бүтцүүд өөрчлөгдсөн байх талтай бөгөөд
&man.ps.1; болон &man.top.1; зэрэг програмууд нь цөм болон эх кодын хувилбарууд
адил болтол ажилладаггүй болохоор эмхэтгэх нь үнэндээ чухал хэрэгцээтэй юм.
Үүнийг хамгийн хялбараар аюулгүйгээр хийхийн тулд GENERIC
дээр тулгуурласан цөмийг бүтээж суулгах явдал юм. GENERIC нь
таны системийн хувьд хэрэгцээтэй төхөөрөмжүүдийг агуулаагүй байж болох боловч
таны системийг ядаж ганц хэрэглэгчийн горимд ачаалахад шаардлагатай бүгдийг агуулсан
байх ёстой. Шинэ систем зөв ажиллуулахад энэ сайн тест болж өгдөг.
GENERIC-с ачаалж таны систем ажиллаж байгааг шалгасны
дараа та өөрийн ердийн цөмийн тохиргооны файл дээр тулгуурлан шинэ цөмөө бүтээж
болох юм.
&os; дээр шинэ цөм бүтээхээсээ өмнө ертөнцийг бүтээх нь чухал юм.
Хэрэв та өөрчлөн тохируулсан цөмийг бүтээхийг хүсэж тохиргооны файлаа аль
хэдийн үүсгэсэн бол доор дурдсантай адилаар
KERNCONF=MYKERNEL
гэж ашиглаарай:
&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNEL
Хэрэв та kern.securelevel хувьсагчийг
1-ээс дээш болгон ихэсгэсэн бөгөөд
noschg эсвэл түүнтэй адил тугуудыг өөрийн цөмийн хоёртын
файлд тавьсан бол installkernel хийхийн тулд
та ганц хэрэглэгчийн горимд шилжин орох шаардлагатай байж болох юм. Үгүй бол
та энэ хоёр тушаалыг олон хэрэглэгчийн горимоос ямар ч асуудалгүйгээр
ажиллуулах ёстой. kern.securelevel-ийн талаар
дэлгэрэнгүйг &man.init.8; болон төрөл бүрийн файлын тугуудын талаар дэлгэрэнгүйг
&man.chflags.1; гарын авлагын хуудаснуудаас үзнэ үү.
Ганц хэрэглэгчийн горим уруу дахин ачаалан ор
ганц хэрэглэгчийн горим
Та шинэ цөмийн ажиллагааг шалгахын тулд ганц хэрэглэгчийн горимд дахин
ачаалан орох хэрэгтэй. Үүнийг
дахь заавруудын дагуу хийнэ.
Шинэ системийн хоёртын файлуудыг суулга
Хэрэв та make buildworld тушаалыг ашигласан
саяхны &os;-ийн хувилбарыг бүтээж байгаа бол одоо шинэ системийн хоёртын
файлуудыг суулгахын тулд installworld
тушаалыг ашиглах шаардлагатай.
Доор дурдсаныг ажиллуулна
&prompt.root; cd /usr/src
&prompt.root; make installworld
Хэрэв та make buildworld тушаалын мөрөнд
хувьсагчуудыг зааж өгсөн бол тэдгээр хувьсагчуудыг
make installworld тушаалын мөрөнд бас адилаар
зааж өгөх хэрэгтэй. Энэ бусад тохируулгуудын хувьд заавал шаардлагатай биш
байж болох юм; жишээ нь тохируулга
installworld-той цуг хэзээ ч хэрэглэгдэх
ёсгүй.
Жишээ нь хэрэв та доор дурдсаныг ажиллуулсан бол:
&prompt.root; make -DNO_PROFILE buildworld
хоёртын файлуудыг дараах тушаалаар суулгана:
&prompt.root; make -DNO_PROFILE installworld
ингэхгүй бол make buildworld тушаалын ажиллах
явцад бүтээгдээгүй профиль хийгдсэн сангуудыг (libraries) суулгахыг оролдох болно.
make installworld тушаалаар шинэчлэгдээгүй файлуудыг шинэчил
Ертөнцийг дахин бүтээх нь зарим нэг сангуудыг (ялангуяа /etc,
/var болон /usr) шинэ болон
өөрчлөгдсөн тохиргооны файлуудаар шинэчилдэггүй.
Эдгээр файлуудыг хамгийн амархнаар шинэчлэх арга нь &man.mergemaster.8;-г
ашиглах явдал юм, гэхдээ та хэрэв хүсвэл үүнийг гараар ажиллуулах боломжтой юм.
Аль ч аргыг сонголоо гэсэн ямар нэгэн зүйл буруутсан тохиолдолд сэргээх боломжтойгоор
/etc-г нөөцөлж авах нь зүйтэй юм.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
mergemaster
mergemaster
&man.mergemaster.8; хэрэгсэл нь /etc дэх
таны тохиргооны файлууд болон /usr/src/etc эх модон дахь
тохиргооны файлуудын ялгааг тодорхойлоход танд тусалдаг Bourne скрипт юм.
Энэ нь системийн тохиргооны файлуудыг эх модон дахь тохиргооны файлуудаар шинэчлэх
зориулалттай бидний зөвлөдөг шийдэл юм.
Эхлэхийн тулд өөрийн тушаал оруулах мөрөнд ердөө л mergemaster-г
бичиж түүний эхлэхийг нь хараарай. mergemaster нь түр зуурын
root орчныг /-с доошлуулан бүтээж төрөл бүрийн системийн тохиргооны
файлуудаар дамждаг. Тэдгээр файлууд нь таны системд суулгагдсан файлуудтай харьцуулагддаг.
Энэ үед хоорондоо ялгаатай файлууд &man.diff.1; хэлбэрээр үзүүлэгддэг бөгөөд
тэмдэгтээр нэмэгдсэн эсвэл өөрчлөгдсөн мөрүүдийг
тэмдэгтээр устгагдсан эсвэл шинэ мөрөөр солигдсон мөрүүдийг
харуулдаг. &man.diff.1;-н синтакс болон файлын өөрчлөлтүүдийг хэрхэн үзүүлдэг талаар
дэлгэрэнгүй мэдээллийг &man.diff.1; гарын авлагын хуудаснаас үзнэ үү.
&man.mergemaster.8; нь зөрчилдөөнүүдийг үзүүлсэн файл болгоныг харуулдаг бөгөөд
энэ үед танд шинэ файлыг устгах (түр зуурын файл гэгддэг), түр зуурын файлыг өөрчлөлгүйгээр
суулгах, суусан байгаа файлтай түр зуурын файлыг нийлүүлэх эсвэл &man.diff.1;-н
гаралтыг дахин харах сонголтыг үзүүлэх болно.
Түр зуурын файлыг устгахыг сонгосноор бид одоо байгаа файлаа хэвээр өөрчлөлгүй үлдээж
шинэ хувилбарыг устгахыг хүсэж байгаагаа &man.mergemaster.8;-д хэлж байна гэсэн үг юм.
Хэрэв та одоо байгаа файлаа өөрчлөх шалтгааныг олж харахгүй байгаагаас бусад тохиолдолд
энэ сонголтыг хийхийг зөвлөдөггүй. Та ямар ч үед &man.mergemaster.8; тушаал хүлээх
мөрөн дээр ? гэж бичин тусламж авч болох юм. Хэрэв хэрэглэгч
файлыг орхихоор сонгосон бол энэ нь бусад бүх файлуудтай ажилсны дараа дахин үзүүлэгдэн
хэрэглэгчээс тушаал хүлээх болно.
Өөрчлөгдөөгүй түр зуурын файлыг суулгахыг сонгосноор одоо байгаа файлыг шинээр
сольдог. Ихэнх өөрчлөгдөөгүй файлуудын хувьд энэ нь хамгийн шилдэг сонголт юм.
Файлыг нийлүүлэхийг сонгосноор текст засварлагч болон хоёр файлын агуулгыг танд
харуулах болно. Та дэлгэцийн хоёр талд байрласан тэдгээр хоёр файлыг хоёуланг нь
шалган аль аль талаас нь хэрэгтэй хэсгүүдийг сонгон эцсийн бүтээгдэхүүн гаргаж аван
нийлүүлж болно. Файлууд нь дэлгэцийн хоёр талд байрлан харьцуулагдах явцад
l түлхүүр таны зүүн талын агуулгыг сонгодог бол
r түлхүүр нь таны баруун тал дахь агуулгыг сонгох юм.
Гарах эцсийн үр дүн нь хоёр файлын хоёулангийн хэсгүүдийг агуулсан файл болох бөгөөд
түүнийг дараа нь суулгах боломжтой болох юм. Энэ сонголтыг хэрэглэгчийн тохиргоонуудад
хийгдсэн өөрчлөлтүүдтэй файлуудын хувьд хэрэглэх нь зуршил болжээ.
&man.diff.1;-ээс гарах үр дүнг дахин харахыг сонгосноор өмнө нь
&man.mergemaster.8; файлын өөрчлөлтүүдийг харуулан таны сонголтыг хүлээсний
нэгэн адилыг дахин харуулдаг.
&man.mergemaster.8; системийн файлуудтай ажиллаж дууссаны дараа
танаас бусад сонголтуудыг хийхийг хүлээдэг. &man.mergemaster.8; тушаал
нууц үгийн файлыг дахин бүтээхийг хүсэж байгаа эсэхийг танаас асууж үлдсэн
түр зуурын файлуудыг устгах сонголтыг үзүүлэн дуусдаг.
Гараар шинэчлэх
Хэрэв та гараар шинэчлэхийг хүсвэл гэхдээ та /usr/src/etc
сангаас /etc сан уруу файлуудыг зүгээр л дарж хуулж ажиллуулж
чадахгүй. Зарим файлуудыг эхлээд суулгах
хэрэгтэй. Учир нь
/usr/src/etc сан таны /etc
сангийн хуулбар шиг байхаар харагддагүй. Мөн
/usr/src/etc санд байдаггүй хэрнээ
/etc сан дотор байх шаардлагатай зарим файлууд
байдаг.
Хэрэв та &man.mergemaster.8; (зөвлөсний дагуу) ашиглаж байвал та
дагаагийн хэсэг уруу
орж болно.
Үүнийг гараар хамгийн хялбар аргаар хийхийн тулд файлуудыг шинэ сан уруу
суулгаж нэг бүрчлэн өөрчлөлтүүдийг хайн ажиллах хэрэгтэй.
Өөрт байгаа /etc-г нөөцөл
Онолоор бол автоматаар энэ санд юу ч хүрдэггүй ч үүнд үргэлж итгэлтэй
байх хэрэгтэй. Тэгэхээр өөрийн байгаа /etc санг
хаа нэг аюулгүй газар хуулах хэрэгтэй. Доорхтой адилаар:
&prompt.root; cp -Rp /etc /etc.old
нь рекурсив хуулбар хийх бөгөөд
нь файлуудын хугацаа, эзэмшигч гэх мэтийг
хадгалдаг.
Та шинэ /etc болон бусад файлуудыг суулгахын тулд
хоосон сангууд бүтээх хэрэгтэй. /var/tmp/root нь
боломжийн сонголт болох бөгөөд энэ сангийн доор хэд хэдэн дэд сангууд бас
шаардлагатай болно.
&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution
Энэ нь шаардлагатай сангийн бүтцийг бүтээж файлуудыг суулгадаг.
/var/tmp/root дотор үүсгэгдсэн олон дэд сангууд
хоосон бөгөөд тэдгээрийг устгах шаардлагатай байдаг. Үүнийг хамгийн хялбараар
хийхийн тулд:
&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null
Энэ нь бүх хоосон сангуудыг устгана. (Хоосон биш сангуудын тухай анхааруулгуудыг
гаргахгүйн тулд стандарт алдаа нь /dev/null
уруу илгээгддэг.)
Одоо /var/tmp/root нь /-с
доор байрлах тохирох байрлалуудад байршуулах ёстой бүх файлуудыг агуулсан байх болно.
Та одоо эдгээр файл бүрийг шалгаж танд байгаа файлуудаас хэрхэн ялгаатай болохыг
тогтоох хэрэгтэй.
/var/tmp/root дотор суулгагдсан зарим файлуудын нэр
урдаа .
тэмдэгттэй байдгийг анхаарна уу. Энэ баримтыг бичиж байх үед
ийм файлуудтай адил файлууд /var/tmp/root/ болон
/var/tmp/root/root/ сан дахь бүрхүүлийн эхлүүлэх файлууд
байсан, гэхдээ (таны хэзээ үүнийг уншиж байгаагаас хамаарч) өөр бусад файлууд байхыг
үгүйсгэхгүй. Тэдгээрийг олж харахын тулд ls -a тушаалыг
заавал ашиглаарай.
Үүнийг хамгийн хялбар аргаар хийж хоёр файлыг харьцуулахын тулд &man.diff.1;
тушаалыг ашиглах явдал юм:
&prompt.root; diff /etc/shells /var/tmp/root/etc/shells
Энэ нь таны /etc/shells файл болон
шинэ /var/tmp/root/etc/shells файлын хоорондын
ялгааг харуулна. Эдгээрийг ашиглаж өөрийн хийсэн өөрчлөлтүүдийг нийлүүлэх эсвэл
өөрийн хуучин файл дээрээс хуулах эсэхээ шийдээрэй.
Хувилбаруудын Хоорондох Ялгаануудыг Хялбараар Харьцуулахын Тулд Та
Шинэ Root Сангаа Тухайн Үеийн Хугацаагаар Нэрлээрэй
Ертөнцийг байнга дахин бүтээнэ гэдэг нь /etc-г
та бас байнга шинэчилнэ гэсэн үг бөгөөд энэ нь ердөө л жижиг хэвшмэл ажил юм.
Та энэ процессийг /etc уруу нийлүүлсэн
өөрийн хамгийн сүүлийн өөрчлөгдсөн файлуудыг хадгалснаар хурдасгаж болох юм.
Дараах процедур үүнийг хэрхэн хийж болох нэг санааг өгч байна.
Ертөнцийг жирийнээр бүтээ. /etc болон
бусад сангуудыг шинэчлэхийг хүсэхдээ тухайн цаг дээр тулгуурласан нэр бүхий
санг өг. Хэрэв та үүнийг 1998 оны 2 сарын 14-нд хийж байгаа бол дараах
байдлаар хийнэ:
&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distribution
Энэ сангийн өөрчлөлтүүдийг дээр дурдсаны дагуу нийлүүл.
Та дууссаныхаа дараа /var/tmp/root-19980214
санг битгий устгаарай.
Та эхийн хамгийн сүүлийн хувилбарыг татан авч дахин бүтээхдээ 1-р алхмыг дага.
Энэ нь танд шинэ сан өгөх бөгөөд /var/tmp/root-19980221
гэж нэрлэгдсэн байж болох юм (хэрэв та шинэчлэлтүүдийг хийхдээ долоо хоног
хүлээсэн бол).
Та одоо &man.diff.1; ашиглан хоёр сангийн хооронд рекурсив diff үүсгэж
долоо хоногийн хооронд хийгдсэн өөрчлөлтүүдийг харж болно:
&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221
Ихэнхдээ энэ нь /var/tmp/root-19980221/etc болон
/etc хоёрын хоорондох өөрчлөлтүүдийг бодох юм бол
харьцангуй бага өөрчлөлтүүд байдаг. Өөрчлөлтүүд нь арай бага болохоор тэдгээр
өөрчлөлтүүдийг өөрийн /etc сан уруу шилжүүлэх нь
илүү хялбар байдаг.
Та одоо хоёр /var/tmp/root-* сангуудын аль хуучныг
устгаж болно:
&prompt.root; rm -rf /var/tmp/root-19980214
/etc уруу өөрчлөлтүүдийг
нийлүүлэх болгондоо энэ процессийг давтах хэрэгтэй.
Та &man.date.1;-г ашиглан сангийн нэрсийг автоматаар үүсгэж
болно:
&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`
Дахин ачаалах нь
Та ерөнхийдөө ингээд хийгээд дуусч байна. Та бүх зүйл байх ёстой байрандаа байгаа эсэхийг шалгасныхаа
дараа системийг дахин ачаалж болно. Энгийн &man.shutdown.8; үүнийг
хийх болно:
&prompt.root; shutdown -r now
Дууслаа
Одоо та өөрийн &os; системийг амжилттайгаар шинэчлээд дууссан байх
ёстой. Баяр хүргэе.
Хэрэв юмс шал буруугаар эргэвэл системийн тухайн хэсгийг дахин бүтээхэд амархан
байдаг. Жишээ нь хэрэв та шинэчлэлтийн явцад эсвэл /etc-г
нийлүүлэх явцад санамсаргүйгээр /etc/magic файлыг
- устгасан бол &man.file.1; тушаал ажиллахаа болино. Ийм тохиолдолд дараах
+ устгасан бол &man.file.1; тушаал ажиллахаа больно. Ийм тохиолдолд дараах
засварыг ажиллуулж болох юм:
&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all install
Асуултууд
Өөрчлөлт бүрт зориулан ертөнцийг дахин бүтээх хэрэгтэй юу?
Үүнд хялбар хариулт байхгүй, учир нь өөрчлөлтийн цаад утга чанараас
хамаарна. Жишээ нь хэрэв та CVSup-г
дөнгөж ажиллуулахад дараах файлууд шинэчлэгдэж байгааг үзүүлж байгаа бол:
src/games/cribbage/instr.c
src/games/sail/pl_main.c
src/release/sysinstall/config.c
src/release/sysinstall/media.c
src/share/mk/bsd.port.mk
магадгүй бүхэл ертөнцийг дахин бүтээх хэрэггүй байж болох юм.
Та тохирох дэд сангууд уруу орж make all install
гэж тушаалыг өгөөд л болох юм. Хэрэв зарим нэг гол чухал зүйл жишээ нь
src/lib/libc/stdlib өөрчлөгдсөн бол
та ертөнцийг эсвэл хамгийн багаар бодоход статикаар холбогдсон (statically linked)
түүний тэдгээр хэсгүүдийг дахин бүтээх шаардлагатай болно.
Эцсийн эцэст энэ нь танаас л хамаарна. Та жишээ нь хоёр долоо хоног тутам
ертөнцийг дахин бүтээж тэр хоёр долоо хоногийн хугацаанд өөрчлөлтүүдийг
хуримтлуулж байгаадаа сэтгэл хангалуун байж болно. Эсвэл та зөвхөн өөрчлөгдсөн
зүйлсүүдийг дахин бүтээхийг хүсэж магадгүй бөгөөд бүх хамаарлуудыг шийднэ
гэдэгтээ итгэлтэй байх хэрэгтэй.
Тэгээд мэдээж энэ бүхэн таны ямар давтамжтайгаар шинэчлэхийг хүсдэг болон
&os.stable; эсвэл &os.current;-ийн алийг дагаж байгаагаас хамаарах
болно.
Миний эмхэтгэл маш олон дохио 11 (эсвэл бусад дохионы дугаар)
алдаагаар амжилтгүй болсон. Юу болсон юм бол?
дохио 11
Энэ нь ихэвчлэн тоног төхөөрөмжийн асуудлыг илэрхийлдэг.
Ертөнцийг (дахин) бүтээх нь өөрийн тоног төхөөрөмжийг ачаалах тест
хийх үр дүнтэй арга бөгөөд удаа дараа санах ойн асуудлууд байвал
тэдгээрийг илрүүлдэг. Эмхэтгэгч нь сонин/хачин дохионуудыг хүлээн авч
ид шидийн байдлаар амжилтгүй болсноор тэдгээр асуудлууд нь өөрсдийгөө
зарлан тунхагладаг.
Хэрэв та бүтээлтийг дахин эхлүүлээд тэр нь процессийн өөр өөр хэсэгт
амжилтгүй болж байвал энэ нь үүнийг тодоор зааж байна
гэсэн үг юм.
Энэ тохиолдолд та өөрийн машин дахь бүрэлдэхүүн хэсгүүдээ өөрчлөн
нэгээс нөгөөд сольж тавин аль нь ажиллахгүй байгааг олохоос өөр зүйл
хийж чадахгүй л болов уу.
Би дууссаныхаа дараа /usr/obj-г устгаж болох уу?
Товчхондоо бол болно.
/usr/obj нь эмхэтгэх үед бүтээгдсэн бүх
обьект файлуудыг агуулдаг. Жирийн үед make buildworld
процессийн эхний алхмуудын нэг нь энэ санг устгаад цоо шинээр эхлэх явдал
юм. Энэ тохиолдолд /usr/obj-г дууссаныхаа
дараа байлгаад байх нь ухаалаг биш бөгөөд үүнийг устгаснаар ихээхэн хэмжээний дискний зайг
суллах болно (одоогоор 340 MB орчим).
Гэхдээ хэрэв та юу хийж байгаагаа мэдэж байгаа бол make buildworld
хийхдээ энэ алхмыг алгасаж болно. Энэ нь дараа дараагийн бүтээлтийг илүү хурдасгадаг
бөгөөд учир нь ихэнх эхүүд дахин эмхэтгэх шаардлагагүй байдаг. Үүний сул тал нь
баригдашгүй хамаарлын асуудлууд илэрч таны бүтээлтийг хачин байдлаар амжилтгүй
болгодог. Хэн нэгэн илүү дөтлөх гэснээсээ болоод амжилтгүй болсныг мэдэлгүй өөрийн
бүтээлтийг амжилтгүй болсныг гомдоллосноор &os;-ийн захидлын жагсаалтуудад
хий дэмий шуугианыг удаа дараа үүсгэдэг билээ.
Тасалдсан бүтээлтүүдийг үргэлжлүүлж болох уу?
Энэ нь асуудлыг олох хүртлээ та хэр хол явснаас хамаарна.
Ерөнхийдөө (энэ нь хэцүү бас хурдан дүрэм биш)
make buildworld процесс нь үндсэн
багажуудын (&man.gcc.1;, болон &man.make.1; зэрэг) болон системийн
сангуудын шинэ хуулбаруудыг бүтээдэг. Тэдгээр багажууд болон сангууд нь
дараа нь суулгагддаг. Шинэ багажууд болон сангууд дараа нь
өөрсдийгөө дахин бүтээхэд ашиглагддаг бөгөөд дахин суулгагддаг. Бүхэл бүтэн
систем (одоо &man.ls.1; эсвэл &man.grep.1; зэрэг ердийн хэрэглэгчийн програмууд)
дараа нь шинэ системийн файлуудтайгаар дахин бүтээгддэг.
Хэрэв та сүүлийн шатанд байгаа бөгөөд та үүнийг мэдэж байгаа бол (та
хадгалж байгаа гаралтаас харсан болохоор) та дараах тушаалыг ажиллуулж
(бараг л аюулгүйгээр) болно:
… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN all
Энэ нь өмнөх make buildworld тушаалын
хийснийг буцаахгүй.
Хэрэв та доорх мэдэгдлийг :
--------------------------------------------------------------
Building everything..
--------------------------------------------------------------
make buildworld тушаалын гаралт дээр харсан
бол магадгүй тэгж хийх нь аюулгүй байж болох юм.
Хэрэв та тийм мэдэгдэл харахгүй байгаа бол эсвэл та итгэлтэй биш байгаа бол
харамсахаасаа өмнө аюулгүй байдлыг бодож бүтээлтийг бүр эхнээс нь дахин эхлүүлсэн нь
дээр юм.
Би ертөнцийг бүтээхийг хэрхэн хурдасгах вэ?
Ганц хэрэглэгчийн горимд ажиллуул.
/usr/src болон
/usr/obj сангуудыг тус тусдаа байх дискнүүд
дээр тус тусдаа байх файлын системүүд дээр байрлуул. Хэрэв боломжтой бол
эдгээр дискнүүдийг тус тусад нь дискний хянагчууд дээр байрлуул.
&man.ccd.4; (нийлүүлсэн дискний драйвер) төхөөрөмж ашиглан
эдгээр файлын системүүдийг олон дискнүүдийн дагуу байрлуулах нь бас
арай илүү хурдасгах юм.
Профиль хийгдэхийг (/etc/make.conf файлд
NO_PROFILE=true
гэж зааж өг) болиул. Танд энэ бараг
гарцаагүй хэрэггүй.
/etc/make.conf файлд бас
CFLAGS-г гэдэгтэй
адилаар заа. оновчлол нь илүү удаан байдаг бөгөөд
болон оновчлолын
ялгаа ихэвчлэн өчүүхэн байдаг. нь эмхэтгэгчид
холбооны зориулалтаар түр зуурын файлуудыг биш хоолойнуудыг ашиглахыг
зөвшөөрдөг бөгөөд энэ нь дискэнд хандах хандалтыг (санах ойг илүүтэй хэрэглэж)
багасгадаг.
тохируулгыг
&man.make.1;-д дамжуулж олон процессийг зэрэгцээгээр ажиллуул. Энэ нь
танд ганц эсвэл олон процессортой машин аль нь ч байсан ялгаагүйгээр ихэвчлэн тусалдаг.
/usr/src-г агуулж байгаа файлын
систем тохируулгаар холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь файлын систем файл уруу хандах хандалтын хугацааг бүртгэхийг
болиулдаг. Танд магадгүй энэ мэдээлэл бараг л хэрэггүй биз ээ.
&prompt.root; mount -u -o noatime /usr/src
Энэ жишээ /usr/src нь өөрийн файлын
систем дээр байгаа гэж тооцож байгаа болно. Хэрэв энэ нь тийм биш бол
(хэрэв энэ сан жишээ нь /usr-ийн хэсэг маягаар
байгаа бол) та /usr/src-г биш харин тэр
файлын системээ холболтын цэг болгон ашиглах хэрэгтэй.
/usr/obj-г агуулж байгаа файлын систем
тохируулгатай холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь диск уруу хийх бичилтийг асинхроноор буюу зэрэг биш хийлгэдэг.
Өөрөөр хэлбэл бичилт нэн даруй хийгдээд өгөгдөл диск уруу цөөн секундын дараа
бичигддэг. Энэ нь бичилтүүдийг бүлэглэхийг зөвшөөрч маш их үр дүнтэйгээр
ажиллагааг хурдасгаж болох юм.
Энэ тохируулга нь таны файлын системийг илүү
эмзэг болгохыг санаарай. Тэжээл тасалдаж машин дахин ачаалах үед
файлын систем сэргээж болшгүй төлөвт орох магадлал энэ тохируулгатай
байхад илүү байдаг.
Хэрэв /usr/obj нь энэ файлын систем
дээрх цорын ганц зүйл бол энэ асуудал биш юм. Хэрэв танд уг файлын
систем дээр өөр, үнэтэй өгөгдөл байгаа бол энэ тохируулгыг
идэвхжүүлэхээсээ өмнө өөрийн нөөц чинь шинэ эсэхийг шалгаарай.
&prompt.root; mount -u -o async /usr/obj
Дээр дурдсан шиг хэрэв /usr/obj нь
өөрийн файлын систем дээр биш байх юм бол жишээн дээрхийг
тохирох холболт хийх цэгийн нэрээр солиорой.
Хэрэв ямар нэг юм буруутвал би юу хийх вэ?
Таны орчинд өмнөх бүтээлтүүдийн үеийн илүү үлдэгдлүүд
байхгүйд үнэхээр итгэлтэй байх хэрэгтэй. Энэ нь их амархан
юм.
&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandir
Тиймээ, make cleandir тушаалыг үнэндээ
хоёр удаа ажиллуулах шаардлагатай.
Тэгээд make buildworld
тушаалыг эхлүүлж бүх процессийг дахин эхлүүл.
Хэрэв та асуудалтай хэвээр байгаа бол алдаа болон
uname -a тушаалын дүнг &a.questions;
уруу явуулаарай. Өөрийн тохиргооныхоо талаар бусад асуултанд
хариулахад бэлэн байгаарай!
Майк
Мэйэр
Хувь нэмэр болгон оруулсан
Олон машины хувьд дагах нь
NFS
олон машин суулгах нь
Хэрэв та олон машинуудын хувьд ижил эх модыг дагахыг хүсэж бүгдийн хувьд
эхийг татан авахуулж бүгдийг дахин бүтээхийг хүсэж байгаа бол энэ нь дискний зай,
сүлжээний зурвасын өргөн болон
CPU циклүүд зэрэг эх үүсвэрүүдийг үр ашиггүйгээр ашиглахад хүргэхээр санагдаж
болох юм. Тиймээ, үүний шийдэл нь нэг машинаар ихэнх ажлыг хийлгэж
бусад машинууд нь тэр ажлыг NFS-ээр дамжуулан холбох явдал юм. Энэ хэсэгт
ингэж хийх аргыг тайлбарсан.
Бэлтгэл ажлууд
Эхлээд хоёртын адил файлуудыг ажиллуулах build set буюу
бүтээх олонлог гэж бидний нэрлэх машинуудыг олох хэрэгтэй.
Машин бүр өөрчлөн тохируулсан цөмтэй байж болох бөгөөд гэхдээ тэд ижил хэрэглэгчийн
талбарын хоёртын файлуудыг ажиллуулж байх ёстой. Тэр олонлогоос
бүтээх машиныг сонгох хэрэгтэй. Энэ нь
ертөнц болон цөм бүтээгдэх машин байх юм. Туйлын хүслээр бол энэ
нь make buildworld болон
make buildkernel тушаалуудыг ажиллуулахад
хангалттай нөөц CPU бүхий хурдан машин байх хэрэгтэй. Та мөн
үйлдвэрлэлд ашиглахаас өмнө програм хангамжуудыг тест хийдэг
тест машин сонгохыг бас хүсэж болох юм.
Энэ нь удаан хугацаагаар унтраастай эсвэл зогссон байж болох машин байх
ёстой. Энэ нь бүтээх машин байж болох юм, гэхдээ заавал
биш юм.
Энэ бүтээх олонлог дахь бүх машинууд нь өөр өөрийн машин дээрээсээ ижил цэг дээр
/usr/obj болон /usr/src-г
холболт хийх хэрэгтэй. Туйлын хүслээр бол энэ нь бүтээх машин дээрх хоёр өөр дискнүүд
байж болох бөгөөд гэхдээ эдгээр нь уг машин дээр NFS холболт бас хийгдэж болохоор
байж болох юм. Хэрэв танд олон бүтээх олонлогууд байгаа бол
/usr/src сан нь нэг бүтээх машин дээр байрлаж
бусад дээр нь NFS холболт хийгдсэн байх юм.
Төгсгөлд нь бүтээх олонлогийн бүх машинууд дээрх /etc/make.conf
файл бүтээх машиныхтай тохирч байгаа эсэхийг шалгаарай. Энэ нь бүтээх олонлогийн
машин бүрийн суулгах үндсэн системийн бүх хэсгүүдийг бүтээх машин хийх ёстой гэсэн
үг юм. Мөн бүтээх машин бүр өөрийн цөмийн нэрийг /etc/make.conf
файлд KERNCONF хувьсагчид заан өгөх ёстой бөгөөд бүтээх
машин бүр KERNCONF хувьсагчдаа өөрийн цөмийг эхэнд
оруулан дараа нь тэдгээрийг жагсаах ёстой байдаг. Бүтээх машин нь машин бүрийн
цөмийг бүтээхээр болох юм бол тэдгээрийн тохиргооны файлыг
/usr/src/sys/arch/conf
санд агуулсан байх шаардлагатай.
Үндсэн систем
Одоо бүх юм ингэж хийгдсэний дараа та бүгдийг бүтээхэд бэлэн боллоо.
Бүтээх машин дээр -д тайлбарласны
дагуу цөм болон ертөнцийг бүтээ, гэхдээ юуг ч битгий суулгаарай. Бүтээлт
дууссаны дараа тест машин дээр дөнгөж саяхан бүтээсэн цөмөө суулга.
Хэрэв энэ машин нь /usr/src
болон /usr/obj сангуудыг NFS-ээр холболт хийх
гэж байгаа бол та ганц хэрэглэгчийн горимд дахин ачаалахдаа сүлжээг нээж
тэдгээрийг холбож өгөх хэрэгтэй. Үүнийг хамгийн хялбараар хийхийн тулд
олон хэрэглэгчийн горимд ачаалан shutdown now
тушаалыг ажиллуулж ганц хэрэглэгчийн горимд орох явдал юм. Тэгэж орсныхоо
дараа та шинэ цөм болон ертөнцийг суулгаж жирийн үедээ хийдэг
mergemaster тушаалыг ажиллуулж болно.
Ингэж дууссаныхаа дараа энэ машины хувьд ердийн олон хэрэглэгчийн
үйлдлүүдэд дахин ачаалж орно.
Тест машин дээрх бүх зүйлс зөв ажиллаж байгааг мэдсэнийхээ дараа та
бүтээх олонлогийн бусад машин бүр дээр шинэ програм хангамж суулгахдаа
ижил процедурыг ашиглаарай.
Портууд
Үүнтэй адил санааг бас портуудын модонд ашиглаж болно. Эхний чухал
алхам бол нөгөө машин дээрх /usr/ports санг
бүтээх олонлогийн бусад машинууд дээр холбож өгөх явдал юм. Дараа нь та
/etc/make.conf файлыг distfiles
буюу түгээлтийн файлуудыг хуваалцахаар зөв тохируулж өгч болно.
Та DISTDIR хувьсагчийг таны NFS холболтуудад заагдсан
аль ч root хэрэглэгчийн хувьд бичигдэх боломжтой байх
нийтлэг хуваалцсан сангаар тохируулах шаардлагатай.
Машин бүр WRKDIRPREFIX хувьсагчийг локал
бүтээх сангаар зааж өгөх хэрэгтэй. Эцэст нь хэрэв та багцуудыг бүтээж түгээх
гэж байгаа бол PACKAGES хувьсагчийг
DISTDIR хувьсагчийн нэгэн адил сангаар зааж өгөх
хэрэгтэй.
diff --git a/mn_MN.UTF-8/books/handbook/disks/chapter.sgml b/mn_MN.UTF-8/books/handbook/disks/chapter.sgml
index cf10d5292f..392e9819ee 100644
--- a/mn_MN.UTF-8/books/handbook/disks/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/disks/chapter.sgml
@@ -1,4051 +1,4051 @@
Цагаанхүүгийн
Ганболд
Орчуулсан
Хадгалалт
Ерөнхий агуулга
Энэ бүлэг нь FreeBSD дээр дискнүүдийг ашиглах талаар тайлбарлах болно.
Эдгээрт санах ой дээр тулгуурласан дискнүүд, сүлжээнд залгагдсан дискнүүд,
стандарт SCSI/IDE хадгалалтын төхөөрөмжүүд болон USB интерфэйс
ашигладаг төхөөрөмжүүд багтах юм.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Физик диск (хуваалтууд болон зүсмэлүүд) дээрх өгөгдлийн зохион
байгуулалтыг тайлбарладаг FreeBSD-ийн ашигладаг ухагдахуун.
Өөрийн систем дээр нэмэлт хатуу дискнүүдийг хэрхэн нэмэх талаар.
USB хадгалалтын төхөөрөмжүүдийг ашиглахын тулд &os;-г хэрхэн тохируулах талаар.
Санах ойн диск зэрэг виртуал файлын системүүдийг хэрхэн тохируулах талаар.
Дискний зайн хэрэглээг хязгаарлахын тулд ноогдлыг хэрхэн ашиглах талаар.
Дискийг халдагчдаас хамгаалж нууцлахын тулд хэрхэн шифрлэх талаар.
FreeBSD дээр CD болон DVD-г хэрхэн үүсгэж шарах талаар.
Нөөцлөлтөд зориулсан хадгалалтын төрөл бүрийн тохируулгууд.
FreeBSD дээр байдаг нөөцлөлтийн програмуудыг хэрхэн ашиглах талаар.
Уян диск уруу хэрхэн нөөцлөх талаар.
Файлын системийн хормын хувилбар гэж юу болох түүнийг хэрхэн үр дүнтэйгээр ашиглах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
Шинэ FreeBSD цөмийг хэрхэн тохируулж суулгах талаар мэдэх
().
Төхөөрөмжийн нэрс
Дараах нь FreeBSD-д дэмжигдсэн физик хадгалалтын төхөөрөмжүүд болон
тэдгээртэй холбоотой төхөөрөмжийн нэрсийн жагсаалт юм.
Физик диск нэрлэх заншил
Хөтчийн төрөл
Хөтчийн төхөөрөмжийн нэр
IDE хатуу хөтчүүд
ad
IDE CDROM хөтчүүд
acd
SCSI хатуу хөтчүүд болон USB Mass хадгалалтын төхөөрөмжүүд
da
SCSI CDROM хөтчүүд
cd
Төрөлжүүлсэн стандарт бус CDROM хөтчүүд
Mitsumi CD-ROM-ийн хувьд mcd ба
Sony CD-ROM хөтчүүдийн хувьд scd
Уян хөтчүүд
fd
SCSI соронзон хальсны хөтчүүд
sa
IDE соронзон хальсны хөтчүүд
ast
Flash хөтчүүд
&diskonchip; Flash хөтчийн хувьд fla
RAID хөтчүүд
&adaptec; AdvancedRAID-н хувьд aacd,
&mylex;-ийн хувьд mlxd ба mlyd,
AMI &megaraid;-ийн хувьд amrd,
Compaq Smart RAID-ийн хувьд idad,
&tm.3ware; RAID-ийн хувьд twed.
Дэйвид
О'Брайн
Анхлан хувь нэмэр болгон оруулсан
Диск нэмэх
дискнүүд
нэмэх нь
Бид шинэ SCSI дискийг одоогоор зөвхөн нэг хөтөчтэй байгаа машин дээр
нэмэхийг хүсэж байна гэж бодъё. Эхлээд компьютераа унтраагаад хөтчийг
компьютер, хянагч болон хөтчийн үйлдвэрлэгчийн заавруудын дагуу суулгана.
Үүнийг хийх маш олон төрлийн процедуруудаас болоод энэ тухай дэлгэрэнгүй
мэдээлэл нь энэ баримтын хамрах хүрээнээс гадна юм.
root хэрэглэгчээр нэвтрэх хэрэгтэй. Та хөтчийг
суулгасны дараа шинэ диск олдсон эсэхийг /var/run/dmesg.boot-с
шалгаарай. Шинээр нэмсэн хөтөч нь da1 байх
бөгөөд бид үүнийг /1 дээр холбохыг хүснэ (хэрэв та IDE хөтөч
нэмж байгаа бол төхөөрөмжийн нэр нь ad1 болно).
хуваалтууд
зүсмэлүүд
fdisk
FreeBSD нь IBM-PC-тэй нийцтэй компьютеруудтай ажилладаг учраас
PC BIOS хуваалтуудыг бодолцох ёстой. Эдгээр нь уламжлалт BSD хуваалтуудаас
өөр юм. PC диск нь дөрөв хүртэлх тооны BSD хуваалттай байдаг. Хэрэв диск
нь жинхэнээрээ FreeBSD-д зориулагдах бол та dedicated буюу
зориулагдсан горимыг ашиглаж болно. Үгүй бол FreeBSD нь
PC BIOS хуваалтуудын аль нэгэн дээр байрлах болно. FreeBSD нь PC BIOS
хуваалтуудыг уламжлалт BSD хуваалтуудтай эндүүрэхгүйн тулд
зүсмэлүүд гэж нэрлэдэг. Та бас FreeBSD-д зориулагдсан
боловч өөр үйлдлийн систем суулгагдсан компьютер дээр ашигласан диск дээрх
зүсмэлүүдийг хэрэглэж болох юм. Энэ нь FreeBSD биш өөр үйлдлийн системийн
fdisk хэрэгсэлтэй андуурахаас хамгаалах нэг сайн
арга юм.
Зүсмэлийн хувьд бол хөтөч нь /dev/da1s1e
гэж нэмэгдэх болно. Үүнийг SCSI диск, нэгжийн дугаар 1 (хоёр дахь SCSI диск),
зүсмэл 1 (PC BIOS хуваалт 1) болон e BSD
хуваалт гэж уншина. Зориулагдсан тохиолдолд хөтөч нь ердөө л /dev/da1e
гэж нэмэгдэнэ.
Секторуудын тоог хадгалахын тулд 32 битийн бүхэл тоог ашигладгаас болоод
&man.bsdlabel.8; нь нэг дискний хувьд 2^32-1 сектор буюу ихэнх тохиолдолд
2TB болж хязгаарлагддаг. &man.fdisk.8; хэлбэршүүлэлт нь 2^32-1-с
ихгүй эхлэх сектор болон 2^32-1-с ихгүй уртыг зөвшөөрч хуваалтуудыг 2TB,
дискнүүдийг ихэнх тохиолдолд 4TB болгож хязгаарладаг. &man.sunlabel.8;
хэлбэршүүлэлт нь нэг хуваалтын хувьд 2^32-1 сектороор, нийтдээ 16TB-ийн
8 хуваалтаар хязгаарлагддаг. Илүү том дискнүүдийн хувьд &man.gpt.8;
хуваалтууд ашиглагдаж болох юм.
&man.sysinstall.8;-г ашиглах нь
sysinstall
дискнүүд нэмэх нь
su
Sysinstall-г жолоодох нь
Та sysinstall-н хялбар ашиглаж болох
цэснүүдийн тусламжтайгаар шинэ дискийг хуваан хаяглаж болох юм.
root хэрэгчээр нэвтрэх буюу эсвэл
su тушаалыг ашиглаарай.
sysinstall-г ажиллуулж
Configure цэс уруу орно.
FreeBSD Configuration Menu дотор
доош шилжиж Fdisk тохируулгыг
сонгоно.
fdisk хуваалт засварлагч
fdisk-ийн дотор байхдаа
A гэж бичвэл дискийг бүхэлд нь FreeBSD-д
ашиглах болно. Асуух үед нь хэрэв та ирээдүйд суулгаж болзошгүй
үйлдлийн системүүдтэй хамтран ажиллахаар үлдэхийг хүсвэл
YES гэж хариулаарай. W-г
ашиглан өөрчлөлтүүдийг диск уруу бичнэ. Одоо FDISK засварлагчаас
q гэж бичин гараарай. Дараа нь танаас
Master Boot Record буюу Мастер Ачаалагч Бичлэгийн
талаар асуух болно. Та ажиллаж байгаа систем дээр диск нэмж байгаа болохоор
None-г сонгох хэрэгтэй.
Дискний Шошго засварлагч
BSD хуваалтууд
Дараа нь sysinstall-с гарч дахин
түүнийг эхлүүлэх хэрэгтэй. Дээрх заавруудыг дагаарай, гэхдээ
энэ удаад Label тохируулгыг сонгоорой.
Энэ нь Disk Label Editor буюу дискний шошго засварлагч
уруу орно. Энд та уламжлалт BSD хуваалтуудыг үүсгэдэг. Диск нь
a-h гэж хаяглагдсан найм хүртэлх хуваалтуудтай
байж болно. Хуваалтын шошгонуудын цөөн хэд нь тусгай хэрэглээтэй байдаг.
a хуваалт нь root хуваалтанд (/)
ашиглагддаг. Тиймээс зөвхөн таны системийн диск (өөрөөр хэлбэл таны
ачаалалт хийсэн диск) a хуваалттай байх
ёстой. b хуваалт нь swap хуваалтуудад
хэрэглэгддэг бөгөөд та swap хуваалттай олон дисктэй байж болох юм.
c хуваалт нь зориулагдсан горимд
бүх дискийг, зүсмэлийн горимд бүхэл FreeBSD зүсмэлийг эсвэл заадаг.
Бусад хуваалтууд нь ерөнхий хэрэглээнд зориулагдсан.
sysinstall-ийн шошго засварлагч нь
root биш, swap биш хуваалтуудад зориулж e
хуваалтыг илүүтэй үздэг. Шошго засварлагч дотор байхдаа C
гэж бичин ганц файлын систем үүсгэх хэрэгтэй. Асуух үед, хэрэв энэ нь
FS (файлын систем) эсвэл swap байх юм бол FS-г
сонгож холбох цэгийг (өөрөөр хэлбэл /mnt) бичээрэй.
Хэрэв дискийг суулгацын дараах горимд нэмж байгаа бол
sysinstall нь танд зориулж оруулгуудыг
/etc/fstab файлд үүсгэхгүй, тиймээс таны
зааж өгсөн холбох цэг нь чухал биш юм.
Та одоо шинэ шошгыг диск уруу бичиж түүн дээр файлын систем үүсгэхэд
бэлэн боллоо. Үүнийг W гэж бичин хийнэ.
sysinstall-ын шинэ хуваалтыг
холбож чадахгүй байна гэсэн алдааг өнгөрүүлэх хэрэгтэй. Шошго засварлагч
болон sysinstall-с бүр мөсөн
гараарай.
Төгсгөл
Хамгийн сүүлийн алхам нь /etc/fstab файлыг
засварлаж өөрийн шинэ дискний оруулгыг нэмэх явдал юм.
Тушаалын мөрийн хэрэгслүүдийг ашиглах нь
Зүсмэлүүдийг ашиглах нь
Энэ тохиргоо нь таны дискийг өөрийн чинь компьютер дээр суулгагдсан
байж болох бусад үйлдлийн системтэй зөв ажиллаж өөр бусад үйлдлийн системийн
fdisk хэрэгслүүдтэй эндүүрэхгүй байх боломжийг
бүрдүүлдэг. Шинэ дискийг суулгахад энэ аргыг ашиглахыг зөвлөдөг.
Хэрэв танд үнэхээр тохирох шалтгаан байгаа тохиолдолд зориулагдсан
горимыг ашиглаарай!
&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; fdisk -BI da1 #Initialize your new disk
&prompt.root; bsdlabel -B -w -r da1s1 auto #Label it.
&prompt.root; bsdlabel -e da1s1 # Edit the bsdlabel just created and add any partitions.
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Repeat this for every partition you created.
&prompt.root; mount /dev/da1s1e /1 # Mount the partition(s)
&prompt.root; vi /etc/fstab # Add the appropriate entry/entries to your /etc/fstab.
Хэрэв танд IDE диск байвал da-г
ad гэж солиорой.
Зориулагдсан
OS/2
Хэрэв та шинэ хөтчийг өөр үйлдлийн системтэй цуг хуваалцахгүй бол
зориулагдсан горимыг ашиглаж болох юм. Энэ горим нь
Microsoft үйлдлийн системийн толгойг эргүүлж болохыг санаарай; гэхдээ
тэдгээр нь ямар ч эвдрэл гэмтэл үүсгэхгүй. IBM-ийн &os2; нь харин
олсон бүх ойлгохгүй байгаа ямар ч хуваалтыг хувьдаа завших
болно.
&prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1
&prompt.root; bsdlabel -Brw da1 auto
&prompt.root; bsdlabel -e da1 # create the `e' partition
&prompt.root; newfs -d0 /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1
Өөр нэг арга нь:
&prompt.root; dd if=/dev/zero of=/dev/da1 count=2
&prompt.root; bsdlabel /dev/da1 | bsdlabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1
RAID
Програм хангамжийн RAID
Кристофер
Шамвэй
Анхлан ажилласан
Жим
Браун
Хянан тохиолдуулсан
RAIDпрограм хангамж
RAIDCCD
Нийлүүлэгдсэн Дискний Драйвер (Concatenated Disk Driver буюу CCD) тохиргоо
Бөөн хадгалалтын шийдлийг сонгохдоо бодолцох хамгийн чухал хүчин зүйлүүд нь
хурд, найдвартай байдал болон өртөг юм. Энэ гурвыг гурвууланг нь тэнцүү байлгах нь
ховор байдаг; ерөнхийдөө хурдан, найдвартай бөөн хадгалалтын төхөөрөмж нь үнэтэй
бөгөөд үнийн хувьд хямдыг сонгох нь хурд эсвэл найдвартай байдлын аль нэгийг золиослох
хэрэгтэй болдог.
Доор тайлбарласан системийг дизайн хийхдээ өртгийг хамгийн чухал хүчин зүйл гэж
сонгож авсан бөгөөд үүний дараа хурд, хурдын дараа найдвартай байдлыг
сонгосон. Энэ системийн өгөгдөл дамжуулах хурд нь эцсийн эцэст сүлжээгээр
шахагддаг. Найдвартай байдал нь маш чухал боловч доор тайлбарласан CCD
хөтөч нь CD-R-ууд дээр аль хэдийн бүтнээрээ нөөцлөгдсөн, амархнаар
солигдож болох өгөгдөлд шууд үйлчилдэг.
Өөрийн шаардлагыг тодорхойлох нь бөөн хадгалалтын шийдлийг сонгох анхны
алхам юм. Хэрэв таны шаардлага нь хурд эсвэл найдвартай байдлыг өртгөөс
илүүтэй үзэж байгаа бол таны шийдэл энэ хэсэгт тайлбарласан шийдлээс
өөр болох болно.
Тоног төхөөрөмжийг суулгах нь
IDE системийн дискнээс гадна гурван Western
Digital 30GB, 5400 RPM IDE диск нь доор тайлбарласан
CCD дискний гол цөм болж нийтдээ ойролцоогоор 90GB
шууд хадгалалт болно. Туйлын хүслээр бол IDE диск бүр өөрийн IDE
хянагч болон кабельтай байна, гэхдээ өртгийг багасгахын
тулд нэмэлт IDE хянагчууд ашиглагдаагүй болно. Харин дискнүүд нь
jumper буюу холбогчоор тохируулагдсан бөгөөд ингэснээр IDE хянагч
бүр нэг мастер болон нэг боолтой байна.
Дахин ачаалах үед системийн BIOS залгагдсан дискнүүдийг автоматаар олохоор
тохируулагдсан байдаг. Илүү чухал зүйл нь FreeBSD тэдгээрийг дахин ачаалахад
олсон явдал юм:
ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33
Хэрэв FreeBSD дискнүүдийг бүгдийг нь олохгүй байгаа бол
та тэдгээрийг зөвөөр холбосон эсэхээ шалгаарай. IDE хөтчүүдийн
ихэнх нь бас Cable Select
холбогчтой байдаг.
Энэ нь мастер/боол харилцаанд зориулагдсан холбогч
биш юм. Хөтчийн баримтаас зөв
холбогчийг таних талаар лавлаарай.
Дараа нь тэдгээрийг файлын системийн хэсэг болгон залгах талаар
бодох хэрэгтэй. Та &man.vinum.8; () болон &man.ccd.4; хоёуланг
судлах хэрэгтэй. Энэ тохиргооны хувьд &man.ccd.4;-г сонгосон.
CCD-г тохируулах нь
&man.ccd.4; хөтөч нь хэд хэдэн адил дискнүүдийг авч тэдгээрийг
нэг логик файл систем болгон нийлүүлэх боломжийг олгодог.
&man.ccd.4;-г ашиглахын тулд танд &man.ccd.4; дэмжлэг
цуг бүтээгдсэн цөм хэрэгтэй. Энэ мөрийг цөмийн тохиргооны файлдаа
нэмээд цөмөө дахин бүтээж суулгаарай:
device ccd
&man.ccd.4; дэмжлэг цөмийн дуудагдах модуль хэлбэрээр
бас дуудагдаж болно.
&man.ccd.4;-г тохируулахын тулд та эхлээд дискнүүдийг
хаяглах &man.bsdlabel.8;-г ашиглах ёстой:
bsdlabel -r -w ad1 auto
bsdlabel -r -w ad2 auto
bsdlabel -r -w ad3 auto
Энэ нь бүх дискний дагуух ad1c, ad2c болон ad3c-д зориулж bsdlabel үүсгэдэг.
Дараагийн алхам нь дискний шошгоны төрлийг өөрчлөх явдал юм.
Та дискнүүдийг засварлахдаа &man.bsdlabel.8;-г ашиглаж
болно:
bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -e ad3
Энэ нь диск бүр дэх тухайн дискний шошгыг EDITOR
орчны хувьсагчид заасан засварлагчаар, ихэнхдээ &man.vi.1;-ээр
онгойлгодог.
Өөрчлөлт хийгдээгүй дискний шошго иймэрхүү харагдах болно:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
&man.ccd.4;-д зориулж ашиглахаар шинэ e
хуваалтыг нэмнэ. Үүнийг ихэвчлэн c хуваалтаас хуулж
болох боловч нь 4.2BSD
байх ёстой. Дискний шошго одоо иймэрхүү харагдах
ёстой:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)
Файлын системийг бүтээх нь
Та бүх дискнүүдээ хаягласны дараа &man.ccd.4;-г бүтээх
ёстой. Үүнийг хийхийн тулд дараах тохируулгуудтай адилаар
&man.ccdconfig.8;-г ашиглана:
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e
Тохируулга бүрийн хэрэглээ болон утгыг доор харуулав:
Эхний нэмэлт өгөгдөл нь тохируулах төхөөрөмж байх бөгөөд энэ
тохиолдолд /dev/ccd0c байна.
/dev/ хэсэг байхгүй ч байж болно.
Файлын системд зориулсан interleave. interleave нь
дискний блокууд дээрх судлын хэмжээг тодорхойлдог бөгөөд нэг бүр нь
ихэвчлэн 512 байт байдаг. Тэгэхээр 32 interleave нь 16,384 байт
байна.
&man.ccdconfig.8;-д зориулсан тугнууд. Хэрэв та хөтчийг
толин тусгал үүсгэж идэвхжүүлэхийг хүсвэл тугийг энд зааж өгч
болно. Энэ тохиргоо нь &man.ccd.4;-н хувьд толин тусгал
үүсгэлтийг хангадаггүй учир энэ нь 0 (тэг) гэж тохируулагдсан.
&man.ccdconfig.8; уруу өгөгдөх сүүлийн нэмэлт өгөгдлүүд нь
массивт оруулах төхөөрөмжүүд юм. Төхөөрөмж бүрийн хувьд бүрэн
гүйцэд замын нэрийг ашиглах хэрэгтэй.
&man.ccdconfig.8;-г ажиллуулсны дараа &man.ccd.4; тохируулагдана.
Файлын систем суулгагдаж болно. Тохируулгуудын талаар &man.newfs.8;-с
лавлана уу, эсвэл ердөө л ингэж ажиллуулна:
newfs /dev/ccd0c
Бүгдийг автомат болгох нь
Ерөнхийдөө та &man.ccd.4;-г дахин ачаалах бүртээ холбохыг хүснэ.
Үүнийг хийхийн тулд та эхлээд тохируулах хэрэгтэй. Өөрийн одоогийн
тохиргоогоо дараах тушаал ашиглаж /etc/ccd.conf
уруу бичих хэрэгтэй:
ccdconfig -g > /etc/ccd.conf
Дахин ачаалах үед скрипт /etc/rc нь
хэрэв /etc/ccd.conf байвал
ccdconfig -C тушаалыг ажиллуулна.
Энэ нь &man.ccd.4;-г холбож болохоор болгож
автоматаар тохируулна.
Хэрэв та ганц хэрэглэгчийн горим уруу ачаалж байгаа бол
&man.ccd.4;-г &man.mount.8; хийхээсээ өмнө массивыг
тохируулахын тулд дараах тушаалыг ажиллуулах
шаардлагатай:
ccdconfig -C
&man.ccd.4;-г автоматаар холбохын тулд &man.ccd.4;-н оруулгыг
/etc/fstab файлд байрлуулах хэрэгтэй. Ингэсэн
тохиолдолд энэ нь ачаалах үед холбогдох болно:
/dev/ccd0c /media ufs rw 2 2
Vinum Эзлэхүүн Менежер
RAIDпрограм хангамж
RAID
Vinum
Vinum Эзлэхүүн Менежер нь виртуал диск хөтчийг хийдэг блок төхөөрөмжийн драйвер
юм. Энэ нь дискний тоног төхөөрөмжийг блок төхөөрөмжийн интерфэйсээс
тусгаарлаж уян хатан байдал, ажиллагаа болон найдвартай байдлыг дискний
хадгалалтын уламжлалт зүсмэлийн харагдалтаас илүүтэйгээр хангах тийм аргаар
өгөгдлийг дүрсэлдэг. &man.vinum.8; нь RAID-0, RAID-1 болон RAID-5
загваруудыг тус бүрт нь болон холбоотой байдлаар нь шийддэг.
&man.vinum.8;-ийн талаар дэлгэрэнгүй мэдээллийг
-с үзнэ үү.
Тоног төхөөрөмжийн RAID
RAID
тоног төхөөрөмж
FreeBSD нь бас төрөл бүрийн тоног төхөөрөмжийн RAID
хянагчуудыг дэмждэг. Эдгээр төхөөрөмжүүд нь FreeBSD-д зориулсан тусгай програм
хангамжаар массивыг удирдах шаардлагагүйгээр RAID дэд
системийг хянадаг.
Карт дээрх BIOS-г ашиглан карт нь дискний үйлдлүүдийн
ихэнхийг өөрөө хянадаг. Дараах нь Promise IDE RAID
хянагчийг ашиглах тохиргооны товч тайлбар юм. Энэ карт суулгагдаж систем эхлэх үед
мэдээллийг хүсэх мөрийг харуулна. Картны тохиргооны дэлгэц уруу орохын тулд
заавруудыг дагана. Эндээс залгагдсан бүх хөтчүүдийг нэгтгэх боломж танд байх
болно. Ингэж хийснийхээ дараа диск(нүүд) нь FreeBSD-д нэг хөтөч шиг харагдах
болно. Бусад RAID түвшингүүдийг бас
тохируулж болно.
ATA RAID1 массивуудыг дахин бүтээх нь
FreeBSD нь массив дахь гэмтсэн, ажиллагаагүй болсон дискийг шууд солих боломжийг
олгодог. Энэ нь дахин ачаалахаасаа өмнө таныг ийм асуудлыг мэдэхийг шаарддаг.
Та магадгүй доор дурдсантай адилыг /var/log/messages эсвэл
&man.dmesg.8; гаралт дээр харж болох юм:
ad6 on monster1 suffered a hard error.
ad6: READ command timeout tag=0 serv=0 - resetting
ad6: trying fallback to PIO mode
ata3: resetting devices .. done
ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
status=59 error=40
ar0: WARNING - mirror lost
&man.atacontrol.8; ашиглан дэлгэрэнгүй мэдээллийг шалгана:
&prompt.root; atacontrol list
ATA channel 0:
Master: no device present
Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0
ATA channel 1:
Master: no device present
Slave: no device present
ATA channel 2:
Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
ATA channel 3:
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED
Та дискийг аюулгүйгээр салган авахын тулд эхлээд ata сувгийг
ажиллахгүй байгаа дисктэй цуг салгана:
&prompt.root; atacontrol detach ata3
- Дискийг солино.
+ Дискийг сольно.
ata сувгийг дахин залгана:
&prompt.root; atacontrol attach ata3
Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
Slave: no device present
Шинэ дискийг массивт нөөц маягаар нэмнэ:
&prompt.root; atacontrol addspare ar0 ad6
Массивыг дахин бүтээнэ:
&prompt.root; atacontrol rebuild ar0
Дараах тушаалыг ашиглаж үйл явцыг шалгаж болно:
&prompt.root; dmesg | tail -10
[output removed]
ad6: removed from configuration
ad6: deleted from ar0 disk1
ad6: inserted into ar0 disk1 as spare
&prompt.root; atacontrol status ar0
ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed
Энэ үйлдэл хийгдэж дуустал хүлээх хэрэгтэй.
Марк
Фонвил
Хувь нэмэр болгон оруулсан
USB хадгалалтын төхөөрөмжүүд
USB
дискнүүд
Одоо үед маш олон гадаад хадгалалтын шийдлүүд байгаа бөгөөд
Universal Serial Bus (USB): хатуу хөтчүүд, USB хуруун хөтчүүд,
CD-R шарагчид зэргийг ашигладаг. &os; нь эдгээр төхөөрөмжүүдийн
дэмжлэгийг хангадаг.
Тохиргоо
USB бөөн хадгалалтын төхөөрөмжүүдийн драйвер &man.umass.4; нь
USB хадгалалтын төхөөрөмжүүдийн дэмжлэгийг хангадаг. Хэрэв та
GENERIC цөм ашиглавал өөрийн тохиргоондоо юу
ч өөрчлөх шаардлагагүй. Хэрэв та өөрчлөн тохируулсан цөм ашиглах бол
таны цөмийн тохиргооны файлд дараах мөрүүд байгаа эсэхийг
шалгаарай:
device scbus
device da
device pass
device uhci
device ohci
device usb
device umass
&man.umass.4; драйвер нь USB хадгалалтын төхөөрөмжүүдэд хандахын
тулд SCSI дэд системийг хэрэглэдэг бөгөөд таны USB төхөөрөмж системд
SCSI төхөөрөмж маягаар харагдах болно. Таны эх хавтан дээрх USB бичил
схемээс хамаарч танд зөвхөн device
uhci эсвэл device ohci хоёрын аль нэг
хэрэгтэй болно, гэхдээ хоёуланг нь цөмийн тохиргоондоо байлгах нь гэмгүй юм.
Хэрэв та ямар нэг мөр нэмсэн бол шинэ цөмөө эмхэтгэж суулгахаа битгий
мартаарай.
Хэрэв таны USB төхөөрөмж чинь CD-R эсвэл DVD шарагч бол
SCSI CD-ROM драйвер &man.cd.4;-г цөмд дараах мөрийн тусламжтай
нэмэх ёстой:
device cd
Шарагч нь SCSI хөтөч гэж харагддаг учир &man.atapicam.4;
драйверийг цөмийн тохиргоонд ашиглах ёсгүй.
USB 2.0 хянагчуудын дэмжлэг &os;-д байдаг; гэхдээ та дараах
мөрийг:
device ehci
өөрийн тохиргооны файлдаа USB 2.0 дэмжлэгт зориулж нэмэх ёстой.
Хэрэв танд USB 1.X дэмжлэг хэрэгтэй бол &man.uhci.4; болон &man.ohci.4;
драйверууд нь хэрэгтэй хэвээр болохыг санаарай.
Тохиргоог тест хийх нь
Тохиргоог тест хийхэд бэлэн боллоо: өөрийн USB төхөөрөмжийг залгахад
системийн мэдэгдлийн буферт (&man.dmesg.8;) хөтөч нь иймэрхүү
харагдах ёстой:
umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)
Мэдээж хэрэг үйлдвэрлэгч, төхөөрөмжийн цэг (da0)
болон бусад зүйлс таны тохиргооноос хамаараад өөр байж болно.
USB төхөөрөмж нь SCSI төхөөрөмж гэж харагддаг болохоор
camcontrol тушаалыг ашиглаж системд холбогдсон
USB хадгалалтын төхөөрөмжүүдийн жагсаалтыг харуулж болно:
&prompt.root; camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)
Хэрэв хөтөч нь файлын системтэй ирвэл та түүнийг холбож чадна.
хэсэг нь хэрэв шаардлагатай бол
USB хөтчийг хэлбэршүүлж түүн дээр хуваалт үүсгэхэд танд туслах
болно.
Энэ төхөөрөмжийг энгийн хэрэглэгч холбож чаддагаар болгохын тулд
тодорхой алхмуудыг хийх хэрэгтэй. Эхлээд USB хадгалалтын төхөөрөмж
холбогдсон үед үүссэн төхөөрөмжүүдэд хэрэглэгч хандаж болохоор байх
хэрэгтэй. Үүний шийдэл нь эдгээр төхөөрөмжүүдийн бүх хэрэглэгчдийг
operator бүлгийн гишүүн болгох явдал
юм. Үүнийг &man.pw.8;-ээр хийнэ. Хоёрдугаарт төхөөрөмжүүд нь
үүсэх үед operator бүлэг тэдгээрийг
уншиж бичиж чадаж байх ёстой. Тохирох мөрүүдийг
/etc/devfs.rules файлд
нэмснээр үүнийг хийж болно:
[localrules=1]
add path 'da*' mode 0660 group operator
Хэрэв системд SCSI дискнүүд байгаа бол үүнийг арай өөрөөр хийх
ёстой. Өөрөөр хэлбэл хэрэв систем нь аль хэдийн da0-ээс
da2 хүртэлх холбогдсон дискнүүдийг
агуулж байвал хоёр дахь мөрийг дараах маягаар солих хэрэгтэй:
add path 'da[3-9]*' mode 0660 group operator
Энэ нь байгаа дискнүүдийг operator
бүлэгт хамааруулахгүй болгоно.
Та бас өөрийн &man.devfs.rules.5; дүрмийн олонлогийг
/etc/rc.conf файлд идэвхжүүлэх
хэрэгтэй:
devfs_system_ruleset="localrules"
Дараа нь цөм нь ердийн хэрэглэгчдэд файлын системийг холбох боломжтойгоор
тохируулагдах ёстой. Хамгийн хялбар арга бол /etc/sysctl.conf-д
мөр нэмэх явдал юм:
vfs.usermount=1
Дараагийн дахин ачаалалтын дараа энэ нь идэвхжихийг санаарай.
Өөрөөр энэ хувьсагчийг тохируулахын тулд &man.sysctl.8;-г ашиглаж
болох юм.
Төгсгөлийн алхам нь файлын систем холбогдох санг үүсгэх явдал юм.
Энэ санг файлын системийг холбох хэрэглэгч эзэмшсэн байх хэрэгтэй.
Үүнийг хийх нэг арга нь root-ийн хувьд
тэр хэрэглэгчийн эзэмшсэн дэд санг
/mnt/$USER
($USER-г тухайн хэрэглэгчийнхээ нэвтрэх
нэрээр солиорой) гэж үүсгэх явдал юм:
&prompt.root; mkdir /mnt/$USER
&prompt.root; chown $USER:$USER /mnt/$USER
USB хуруун хөтөч залгагдаж /dev/da0s1 төхөөрөмж
гарч иржээ гэж бодъё. Эдгээр төхөөрөмжүүд нь ихэвчлэн FAT файлын системээр
хэлбэршүүлэгдсэн ирдэг бөгөөд эдгээрийг иймэрхүү маягаар холбож
болно:
&prompt.user; mount_msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER
Хэрэв та төхөөрөмжийг залгаснаа салгавал (дискийг урьдаар салгах ёстой)
та системийн мэдэгдлийн буфераас доор дурдсантай төстэй мэдэгдлийг
харах ёстой:
umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detached
Нэмэлт унших материалууд
Диск нэмэх болон
Файлын системүүдийг холбох болон салгах
хэсгүүдээс гадна төрөл бүрийн гарын авлагын хуудаснуудыг унших нь хэрэгтэй
байж болох юм: &man.umass.4;, &man.camcontrol.8;,
болон &man.usbdevs.8;.
Майк
Мэйэр
Хувь нэмэр болгон оруулсан
Оптик зөөвөрлөгчийг (CD-үүд) үүсгэж ашиглах нь
CDROM-ууд
үүсгэх нь
Танилцуулга
CD-үүд нь тэдгээрийг ердийн дискнүүдээс ялгах хэд хэдэн боломжуудтай
байдаг. Эхлээд хэрэглэгч CD дээр бичих боломжгүй байсан. Тэдгээр нь
замуудын хооронд толгойг шилжүүлэхдээ сааталгүйгээр үргэлжлэн уншдагаар
хийгджээ. Тэр үед байсан адил хэмжээтэй зөөвөрлөгчийг зөөхөөс тэдгээрийг
систем хооронд зөөх нь хамаагүй хялбар байдаг.
CD-үүд нь замтай байдаг боловч энэ нь дискний физик хэсэг биш харин
үргэлжлэн уншигдах өгөгдлийн хэсгийг хэлдэг. FreeBSD дээр CD үүсгэхдээ
CD дээр замууд үүсгэх өгөгдлийн файлуудыг бэлдэж дараа нь замуудыг CD
уруу бичнэ.
ISO 9660
файлын системүүд
ISO 9660
ISO 9660 файлын систем нь эдгээр ялгаануудтай ажиллахаар хийгдсэн.
Энэ нь тэр үед нийтлэг байсан файлын системийн хязгааруудыг харамсалтай нь
кодчилдог. Азаар энэ нь зөв бичигдсэн CD-үүдэд тэдгээр хязгааруудыг давж гарахыг
зөвшөөрөх өргөтгөлөөр хангадаг бөгөөд тэдгээр өргөтгөлүүдийг дэмждэггүй системүүдтэй
ажиллаж чадсан хэвээр байдаг.
sysutils/cdrtools
sysutils/cdrtools
портод ISO 9660 файлын системийг агуулах өгөгдлийн файлыг үүсгэдэг програм
&man.mkisofs.8; байдаг. Энэ нь төрөл бүрийн өргөтгөлүүдийг дэмждэг
тохируулгуудтай бөгөөд доор тайлбарлагдсан болно.
CD шарагч
ATAPI
CD шарахдаа ямар хэрэгслийг ашиглах нь таны CD шарагч ATAPI юу аль эсвэл өөр үү
гэдгээс шалтгаална. ATAPI CD шарагчид нь үндсэн системийн burncd програмыг ашигладаг.
SCSI болон USB CD шарагчид нь sysutils/cdrtools
портын cdrecord-г
ашиглах ёстой. Мөн ATAPI тоног төхөөрөмж дээр SCSI хөтчүүдийн хувьд
ATAPI/CAM модул ашиглан
cdrecord-г
хэрэглэх боломжтой байдаг.
Хэрэв та график хэрэглэгчийн интерфэйстэй CD шарагч програм хангамжийг
хүсэж байгаа бол X-CD-Roast эсвэл
K3b-г үзээрэй. Эдгээр хэрэгслүүд нь
багц хэлбэрээр эсвэл sysutils/xcdroast болон sysutils/k3b портуудад байдаг.
X-CD-Roast болон
K3b нь ATAPI тоног төхөөрөмж дээр
ATAPI/CAM модулийг шаарддаг.
mkisofs
sysutils/cdrtools портын
хэсэг &man.mkisofs.8; програм нь &unix;-ийн файлын системийн нэрийн талбар
дахь сангийн модны дүрс болох ISO 9660 файлын системийг үүсгэдэг.
Хамгийн хялбар хэрэглээ нь:
&prompt.root; mkisofs -o imagefile.iso /path/to/tree
файлын системүүд
ISO 9660
Энэ тушаал нь /path/to/tree дахь
модны хуулбар ISO 9660 файлын системийг агуулах
imagefile.iso файлыг үүсгэх болно.
Энэ процессод файлын нэрсийг ISO 9660 файлын системийн стандартын
хязгаарлалтуудад багтах нэрсэд тааруулах бөгөөд ISO файлын системүүдэд
байдаггүй нэрс бүхий файлуудыг оруулахгүй байх болно.
файлын системүүд
HFS
файлын системүүд
Joliet
Тэдгээр хязгаарлалтуудыг давж гарах хэд хэдэн тохируулгууд байдаг.
Ялангуяа тохируулга &unix; системүүдэд
нийтлэг байдаг Rock Ridge өргөтгөлүүдийг идэвхжүүлдэг,
нь Microsoft системүүдэд хэрэглэгддэг Joilet өргөтгөлүүдийг идэвхжүүлдэг
бөгөөд нь &macos;-д хэрэглэгддэг HFS файлын
системүүдийг үүсгэхэд ашиглагддаг.
Зөвхөн FreeBSD системүүдэд ашиглагдах CD-үүдийн хувьд
тохируулга бүх файлын нэрийн хязгаарлалтуудыг хаахад ашиглагдаж болно.
тохируулгатай хэрэглэгдэх үед энэ нь таны эхэлсэн
FreeBSD-ийн модтой ижил файлын системийн дүрсийг үүсгэдэг, гэхдээ энэ нь
ISO 9660 стандартыг хэд хэдэн замаар зөрчиж болох юм.
CDROM-ууд
ачаалагддаг үүсгэх
Ердийн хэрэглээний сүүлийн тохируулга нь юм.
Энэ нь ачаалагдах El Torito
CD-г үүсгэхэд хэрэглэгдэх
ачаалагдах дүрсний байрлалыг заахад ашиглагддаг. Энэ тохируулга нь
CD уруу бичигдэх модны дээд хэсгийн ачаалагдах дүрс хүрэх замыг заах
нэмэлт өгөгдлийг авдаг. Анхдагчаар &man.mkisofs.8; нь
floppy disk emulation буюу уян дискний эмуляц
гэж
нэрлэгддэг горимд ISO дүрсийг үүсгэдэг бөгөөд ачаалагдах дүрсийг яг
1200, 1440, эсвэл 2880 KB хэмжээтэй байна гэж тооцдог.
FreeBSD түгээлтийн дискнүүдэд хэрэглэгддэг ачаалагч дуудагч зэрэг зарим
ачаалагч дуудагчид нь эмуляц горимыг ашигладаггүй; энэ тохиолдолд
тохируулгыг ашиглах шаардлагатай.
Тэгэхээр хэрэв /tmp/myboot нь ачаалагдах
FreeBSD системийг /tmp/myboot/boot/cdboot
дэх ачаалагдах дүрстэй цуг агуулж байвал та ISO 9660 файлын системийн
дүрсийг /tmp/bootable.iso-д иймэрхүү
маягаар үүсгэж болох юм:
&prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot
Үүнийг хийснийхээ дараа хэрэв та цөмдөө md-г
тохируулсан бол файлын системийг ингэж холбож болно:
&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mnt
Энэ үед та /mnt болон
/tmp/myboot нь ижил болохыг шалгаж болно.
&man.mkisofs.8;-ийн ажиллагааг нарийн тааруулахын тулд та түүний
бусад олон тохируулгуудыг ашиглаж болно. Ялангуяа ISO 9660-ийн байрлал
болон Joilet ба HFS дискнүүдийн үүсгэлтэд өөрчлөлтүүд хийж болно.
Дэлгэрэнгүйг &man.mkisofs.8;-ийн гарын авлагын хуудаснаас үзнэ үү.
burncd
CDROM-ууд
шарах
Хэрэв танд ATAPI CD шарагч байгаа бол та ISO дүрсийг CD уруу шарахдаа
burncd тушаалыг ашиглаж болно.
burncd нь үндсэн системийн хэсэг бөгөөд
/usr/sbin/burncd гэж суулгагдсан байдаг. Энэ нь
цөөн тохируулгуудтай болохоор хэрэглэхэд их хялбар байдаг:
&prompt.root; burncd -f cddevice data imagefile.iso fixate
Дээрх тушаал нь imagefile.iso-н
хуулбарыг cddevice уруу шарах болно.
Анхдагч төхөөрөмж нь /dev/acd0 юм.
Бичих хурд, шарсны дараа CD-г гаргах болон аудио өгөгдөл бичихийг заах
тохируулгуудын талаар &man.burncd.8;-с үзнэ үү.
cdrecord
Хэрэв танд ATAPI CD шарагч байхгүй бол та өөрийн CD-үүдийг шарахын
тулд cdrecord-г ашиглах шаардлагатай.
cdrecord нь үндсэн системд байдаггүй; та үүнийг
sysutils/cdrtools дахь
портоос эсвэл тохирох багцаас суулгах ёстой. Үндсэн системд хийгдсэн
өөрчлөлт нь энэ програмын хоёртын хувилбарыг ажиллахгүй болгож, магадгүй
асуудалд (coaster)
хүргэж болох юм.
Тийм болохоор та өөрийн системээ шинэчлэхдээ портоо бас шинэчлэх эсвэл хэрэв
та -STABLE салбарыг дагаж байгаа бол
портыг шинэ хувилбар гарахад нь шинэчлэх хэрэгтэй.
cdrecord нь олон тохируулгатай байдаг боловч
үндсэн хэрэглээ нь burncd-с бүр илүү хялбар байдаг.
ISO 9660 дүрсийг шарахдаа:
&prompt.root; cdrecord dev=device imagefile.iso
cdrecord-г хэрэглэхэд гардаг нэг заль нь
тохируулгыг олох явдал юм. Зөв тохиргоог олохын
тулд cdrecord-ийн
тугийг хэрэглэх хэрэгтэй бөгөөд энэ нь иймэрхүү үр дүнд хүргэж болох юм:
CDROM-ууд
шарах
&prompt.root; cdrecord -scanbus
Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *
Энэ нь жагсаалтан дахь төхөөрөмжүүдийн хувьд тохирох утгыг
жагсаадаг. Өөрийн CD шарагчийг олохын тулд тохируулгын
утгад гурван дугаарыг таслалаар тусгаарлан хэрэглэнэ. Энэ тохиолдолд CRW төхөөрөмж
нь 1,5,0, байх бөгөөд тохирох оролт нь болно.
Энэ утгыг заах амархан аргууд байдаг; дэлгэрэнгүйг &man.cdrecord.1;-с үзнэ үү.
Мөн тэндээс аудио замуудыг бичих, хурдыг хянах болон бусад зүйлүүдийн тухай
мэдээллийг үзэж болно.
Аудио CD-үүдийг хувилах
Та аудио өгөгдлийг CD-ээс файлуудын цуваа болгон задалж дараа нь эдгээр
файлуудыг хоосон CD дээр бичин аудио CD-г хувилж болно. Энэ процесс нь ATAPI болон
SCSI хөтчүүдийн хувьд нэлээн өөр байдаг.
SCSI хөтчүүд
Аудиог cdda2wav ашиглан задлана.
&prompt.user; cdda2wav -v255 -D2,0 -B -Owav
cdrecord ашиглан .wav
файлуудыг бичнэ.
&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav
хэсэгт тайлбарласны дагуу
2,0 гэж зөв заагдсан эсэхийг
шалгаарай.
ATAPI хөтчүүд
ATAPI CD драйвер нь зам бүрийг
/dev/acddtnn
маягаар болгодог бөгөөд d нь хөтчийн
дугаар ба nn нь шаардлагатай бол урдаа 0 тавьж
хоёр оронтой тоогоор бичигдсэн замын дугаар юм. Тэгэхээр эхний диск дээрх
эхний зам нь /dev/acd0t01, хоёр дахь нь
/dev/acd0t02, гурав дахь нь
/dev/acd0t03 гэх мэтчилэн байна.
Тохирох файлууд /dev санд байгаа эсэхийг
шалгаарай. Хэрэв оруулгууд байхгүй байгаа бол зөөвөрлөгчийг
дахин үзэхээр системийг хүчлэх хэрэгтэй:
&prompt.root; dd if=/dev/acd0 of=/dev/null count=1
Зам бүрийг &man.dd.1; ашиглан задална. Файлуудыг задлахдаа
та тусгай блокийн хэмжээг бас ашиглах ёстой.
&prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352
&prompt.root; dd if=/dev/acd0t02 of=track2.cdr bs=2352
...
Задалсан файлуудаа диск уруу burncd ашиглан
шарна. Та эдгээрийг аудио файл гэж зааж өгөх хэрэгтэй бөгөөд
burncd нь дуусахдаа дискийг бэхжүүлэх
ёстой.
&prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate
Өгөгдлийн CD-үүдийг хувилах
Та өгөгдлийн CD-г &man.mkisofs.8;-р үүсгэсэн дүрс файлтай
ажиллагааны хувьд адилхан дүрс файл уруу хуулж болох бөгөөд та үүнийг
ямар ч өгөгдлийн CD хувилахад ашиглаж болно. Энд өгөгдсөн жишээ нь
таны CDROM төхөөрөмжийг acd0 гэж
үзэх болно. Өөрийн зөв CDROM төхөөрөмжөөр солиорой.
&prompt.root; dd if=/dev/acd0 of=file.iso bs=2048
Одоо та нэгэнт дүрстэй болсон болохоор үүнийг CD уруу дээр тайлбарласны
дагуу шарж болно.
Өгөгдлийн CD-үүдийг ашиглах
Одоо та стандарт өгөгдлийн CDROM үүсгэсэн болохоор түүнийг
холбож түүн дээрх өгөгдлийг уншихыг хүсэх байх. Анхдагчаар
&man.mount.8; нь файлын системийг ufs
төрлийнх гэж үздэг. Хэрэв та доорхи шиг оролдвол:
&prompt.root; mount /dev/cd0 /mnt
Incorrect super block гэж
гомдоллохыг та харах бөгөөд холболт хийгдэхгүй байх болно. CDROM нь
UFS файлын систем биш, тэгэхээр ингэж
холбохыг оролдох нь амжилтгүй болох болно. Та &man.mount.8;-д
файлын системийн төрөл нь ISO9660 гэж
зааж өгөхөд л бүгд ажиллах болно. Та
тохируулгыг &man.mount.8;-д өгч үүнийг хийнэ. Жишээ нь хэрэв та
CDROM төхөөрөмж /dev/cd0-г
/mnt-д холбохыг хүсвэл дараах тушаалыг
ажиллуулах болно:
&prompt.root; mount -t cd9660 /dev/cd0 /mnt
Таны төхөөрөмжийн нэр (энэ жишээн дээр /dev/cd0)
таны CDROM ямар интерфэйс ашиглаж байгаагаас хамааран өөр байж болох юм.
Мөн тохируулга нь ердөө л
&man.mount.cd9660.8;-г ажиллуулдаг. Дээрх жишээг ингэж богиносгож
болно:
&prompt.root; mount_cd9660 /dev/cd0 /mnt
Та ерөнхийдөө энэ аргаар ямар ч үйлдвэрлэгчийн өгөгдлийн CDROM-уудыг
ашиглаж болно. Гэхдээ зарим нэг ISO 9660 өргөтгөлүүдтэй дискнүүд хачин ажиллаж
болох юм. Жишээ нь Joilet дискнүүд нь бүх файлын нэрсийг хоёр байт Юникод
тэмдэгтээр хадгалдаг. FreeBSD цөм нь Юникодоор ярьдаггүй, гэхдээ
&os;-ийн CD9660 драйвер Юникод тэмдэгтүүдийг шууд хувиргаж чаддаг.
Хэрэв зарим нэг Англи бус тэмдэгтүүд асуултын тэмдэг хэлбэрээр харагдвал
та ашиглаж байгаа локал тэмдэгтийн олонлогоо
тохируулгаар зааж өгөх хэрэгтэй. Дэлгэрэнгүй мэдээллийг
&man.mount.cd9660.8; гарын авлагын хуудаснаас лавлана уу.
Энэ тэмдэгтийн хувиргалтыг тохируулгын
тусламжтай хийхийн тулд цөм cd9660_iconv.ko
модулийг дуудсан байхыг шаардах болно. Энэ мөрийг
loader.conf файлд нэмж үүнийг:
cd9660_iconv_load="YES"
гэж хийн машиныг дахин ачаалах буюу эсвэл модулийг &man.kldload.8;-н
тусламжтай дуудан хийж болох юм.
Хааяа таныг CDROM-г холбохыг оролдох үед Device not
configured гэсэн алдаа гарч болох юм. Энэ нь ихэнхдээ
CDROM хөтөч нь төхөөрөмжид диск байхгүй эсвэл хөтөч нь шугаманд (bus)
харагдахгүй байна гэж үзэж байна гэсэн үг юм. CDROM хөтөч нь
хоёр секундын дотор үүнийг мэддэг болохоор тэвчээртэй байгаарай.
Шугамын дахин тогтоолтод хариу өгөх хангалттай хугацаа байхгүйн улмаас
заримдаа SCSI CDROM-ийг олохгүй байж болох юм. Хэрэв та SCSI CDROM-той
бол та дараах тохируулгыг цөмийн тохиргоондоо нэмж
өөрийн цөмийг дахин бүтээнэ үү.
options SCSI_DELAY=15000
Энэ нь таны SCSI шугамд ачаалах үедээ 15 секунд түр саатахыг хэлж өгөх бөгөөд
ингэснээр шугамын дахин тогтоолтод таны CDROM хөтчөөр хариу өгүүлэхийн тулд
бүх байж болох боломжийг түүнд өгч байна гэсэн үг юм.
Түүхий өгөгдлийн CD-үүдийг шарах
Та ISO 9660 файлын системийг үүсгэлгүйгээр файлыг CD уруу шууд
шарахаар сонгож болно. Зарим хүмүүс үүнийг нөөцлөх зорилгоор хийдэг.
Энэ нь стандарт CD-г шарахаас илүү хурдан ажилладаг:
&prompt.root; burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate
Тийм CD-д шарагдсан өгөгдлийг авахын тулд та түүхий төхөөрөмжийн
цэгээс өгөгдлийг унших ёстой:
&prompt.root; tar xzvf /dev/acd1
Та энэ дискийг ердийн CDROM-ийг холбодог шиг холбож чадахгүй.
Ийм CDROM нь FreeBSD-ээс өөр ямар ч үйлдлийн систем дээр уншигдахгүй.
Хэрэв та CD-гээ холбохыг эсвэл өөр үйлдлийн системтэй өгөгдлөө
хуваалцах хүсэлтэй байгаа бол дээр тайлбарласны дагуу &man.mkisofs.8;-г
ашиглах ёстой.
Марк
Фонвил
Хувь нэмэр болгон оруулсан
CD шарагч
ATAPI/CAM драйвер
ATAPI/CAM драйверийг ашиглах
Энэ драйвер нь ATAPI төхөөрөмжүүдэд (CD-ROM, CD-RW, DVD
хөтчүүд гэх мэт...) SCSI дэд системээр хандах боломжийг олгох
бөгөөд ингэснээр sysutils/cdrdao
эсвэл &man.cdrecord.1; зэрэг програмуудыг ашиглах боломжийг
олгодог.
Энэ драйверыг ашиглахын тулд та дараах мөрийг
/boot/loader.conf файл уруу нэмэх хэрэгтэй
болно:
atapicam_load="YES"
тэгээд өөрийн машинаа дахин ачаална.
Хэрэв та өөрийн цөмдөө &man.atapicam.4; дэмжлэгийг статикаар
эмхэтгэхийг хүсвэл энэ мөрийг өөрийн цөмийн тохиргооны файлдаа
нэмэх хэрэгтэй болно:
device atapicam
Мөн та өөрийн цөмийн тохиргооны файлдаа дараах мөрүүдийг бас нэмэх
хэрэгтэй болно:
device ata
device scbus
device cd
device pass
Эдгээр нь аль хэдийн байж байх ёстой. Дараа нь дахин бүтээгээд
өөрийн цөмийг суулгаж машинаа дахин ачаалах хэрэгтэй.
Ачаалах процессийн үед таны шарагч иймэрхүү маягаар гарч
ирэх ёстой:
acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Одоо хөтчид /dev/cd0 төхөрөөмжийн нэрийг
ашиглан хандаж болох бөгөөд жишээ нь CD-ROM-г /mnt-д холбохдоо
дараах тушаалыг бичих хэрэгтэй:
&prompt.root; mount -t cd9660 /dev/cd0 /mnt
root хэрэглэгчээр дараах тушаалыг ажиллуулж
та шарагчийн SCSI хаягийг авч болно:
&prompt.root; camcontrol devlist
<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0)
Тэгэхээр 1,0,0 нь &man.cdrecord.1;
болон бусад SCSI програмтай ашиглах SCSI хаяг болох юм.
ATAPI/CAM болон SCSI системийн талаар дэлгэрэнгүй мэдээллийг
&man.atapicam.4; болон &man.cam.4; гарын авлагын хуудаснуудаас
лавлана уу.
Марк
Фонвил
Хувь нэмэр болгон оруулсан
Энди
Поляков
Зарим зүйл оруулсан
Оптик зөөвөрлөгчийг (DVD-үүд) үүсгэж ашиглах нь
DVD
шарах нь
Танилцуулга
CD-тэй харьцуулахад DVD нь оптик зөөвөрлөгч хадгалалтын технологийн
дараачийн үе юм. DVD нь ямар ч CD-ээс илүү өгөгдлийг агуулдаг бөгөөд
одоогийн видео хэвлэлтийн стандарт болжээ.
Бичигддэг DVD гэж бидний нэрлэдэг DVD-үүдийн физик 5 бичигддэг
хэлбэршүүлэлтийг тодорхойлж болно:
DVD-R: Энэ нь бичигддэг DVD-ий анхны хэлбэршүүлэлт юм.
DVD-R стандарт нь DVD хэлэлцүүлгээр
тодорхойлогдсон бөгөөд энэ нь зөвхөн нэг удаа
бичих хэлбэршүүлэлт юм.
DVD-RW: Энэ нь DVD-R стандартын дахин бичигдэх хувилбар юм.
DVD-RW нь ойролцоогоор 1000 удаа бичигдэх боломжтой.
DVD-RAM: Энэ нь DVD хэлэлцүүлгийн дэмждэг бас дахин бичигддэг
хэлбэршүүлэлт юм. DVD-RAM нь зөөгдөж болох хатуу хөтөч маягаар
харагддаг. Гэхдээ энэ зөөвөрлөгч нь ихэнх DVD-ROM хөтчүүд болон
DVD-Видео тоглуулагчуудтай нийцтэй биш байдаг; цөөн DVD бичигчид
DVD-RAM хэлбэршүүлэлтийг дэмждэг. DVD-RAM-ийн хэрэглээний талаар
илүү дэлгэрэнгүйг -с
уншина уу.
DVD+RW: Энэ нь DVD+RW
холбооноос тодорхойлсон дахин бичигдэх хэлбэршүүлэлт юм.
DVD+RW нь ойролцоогоор 1000 удаа бичигдэх боломжтой.
DVD+R: Энэ хэлбэршүүлэлт нь DVD+RW хэлбэршүүлэлтийн нэг удаа бичих
хувилбар юм.
Бичигддэг DVD-ий нэг давхарга нь 4,700,000,000 байт буюу
4.38 GB эсвэл 4485 MB (1 килобайт нь 1024 байт)
хүртэлх мэдээлэл агуулж чадна.
Физик зөөвөрлөгч болон програмыг ялгаж ойлгох ёстой. Жишээ нь
DVD-Видео нь дурын бичигддэг DVD физик зөөвөрлөгч DVD-R, DVD+R, DVD-RW гэх зэрэг
уруу бичигдэж болох тусгай байршлын зураглал юм. Зөөвөрлөгчийн төрлийг сонгохын өмнө
шарагч болон DVD-Видео тоглуулагч (дан тоглуулагч эсвэл компьютер дээрх DVD-ROM хөтөч)
нь хэрэглэхээр төлөвлөж байгаа зөөвөрлөгчтэй нийцтэй эсэхийг шалгах хэрэгтэй.
Тохиргоо
DVD бичлэг хийхэд &man.growisofs.1; програм ашиглагдана.
Энэ тушаал нь dvd+rw-tools хэрэгслүүдийн (sysutils/dvd+rw-tools) нэг хэсэг
юм. dvd+rw-tools нь DVD зөөвөрлөгчийн
бүх төрлийг дэмждэг.
Эдгээр хэрэгслүүд нь төхөөрөмжүүд уруу хандахын тулд SCSI дэд системийг
ашигладаг, тиймээс таны цөмд ATAPI/CAM
дэмжлэг нэмэгдсэн байх ёстой. Хэрэв таны шарагч USB интерфэйс ашигладаг
бол энэ нэмэлт нь хэрэггүй бөгөөд та USB төхөөрөмжүүдийн тохиргооны талаар илүү
дэлгэрэнгүйг -с унших шаардлагатай.
Та мөн ATAPI төхөөрөмжүүдийн хувьд DMA хандалтыг идэвхжүүлэх ёстой бөгөөд
дараах мөрийг /boot/loader.conf файлд
нэмж үүнийг хийнэ:
hw.ata.atapi_dma="1"
dvd+rw-tools-г ашиглахаасаа өмнө
өөрийн DVD шарагчтай холбоотой мэдээллийг dvd+rw-tools'
тоног төхөөрөмжийн нийцтэй байдал хаягаас лавлах хэрэгтэй.
Хэрэв та график хэрэглэгчийн интерфэйсийг хүсэж байвал
&man.growisofs.1; болон бусад олон шарагч хэрэгслүүдийг
хэрэглэгчид ашиглахад амар интерфэйсээр хангадаг
K3b (sysutils/k3b) програмыг
үзэх хэрэгтэй.
Өгөгдлийн DVD-үүдийг шарах нь
&man.growisofs.1; тушаал нь mkisofs-ийн нүүр хэсэг юм, энэ нь
шинэ файлын системийн байршлыг үүсгэхийн тулд &man.mkisofs.8;-г
дуудах бөгөөд DVD дээр бичих үйлдлийг гүйцэтгэнэ. Энэ нь та шарах
процессоос өмнө өгөгдлийн дүрсийг үүсгэх хэрэггүй гэсэн үг юм.
DVD+R эсвэл DVD-R уруу өгөгдлийг /path/to/data сангаас шарахдаа
дараах тушаалыг ашиглана:
&prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data
Файлын системийг үүсгэхдээ тохируулгуудыг
&man.mkisofs.8;-д дамжуулдаг (энэ тохиолдолд Joilet болон Rock Ridge
өргөтгөлүүдтэй ISO 9660 файлын систем). Дэлгэрэнгүйг &man.mkisofs.8;
гарын авлагын хуудаснаас лавлана уу.
тохируулгыг ямар ч тохиолдолд
(олон сессүүд эсвэл ганц сесс) эхний сессийг бичихдээ хэрэглэдэг. DVD төхөөрөмж
/dev/cd0-г өөрийн тохиргооны дагуу өөрчлөх
хэрэгтэй. параметр дискийг хаах бөгөөд
бичилтийг нэмэх нь боломжгүй болох юм. Энэ нь DVD-ROM хөтчүүдтэй
зөөвөрлөгчийн нийцтэй байдлыг илүүтэй хангах юм.
Мөн урьдчилан урласан дүрсийг шарах бас боломжтой, жишээ нь
imagefile.iso дүрсийг шарахын
тулд бид дараах тушаалыг ажиллуулна:
&prompt.root; growisofs -dvd-compat -Z /dev/cd0=imagefile.iso
Бичих хурдыг олж зөөвөрлөгч ба ашиглагдаж байгаа хөтчөөс
хамаарч автоматаар тохируулах болно. Хэрэв та бичих хурдыг өөрчлөх
хүсэлтэй байгаа бол параметрийг ашиглах
хэрэгтэй. Дэлгэрэнгүй мэдээллийг &man.growisofs.1; гарын авлагын
хуудаснаас уншина уу.
DVD
DVD-Video
DVD-Видео шарах нь
DVD-Видео нь ISO 9660 болон микро-UDF (M-UDF тодорхойлолтууд
дээр тулгуурласан тусгай файлын байршлын зураглал юм. DVD-Видео нь бас
өгөгдлийн бүтцийн тусгай шатлалыг үзүүлдэг бөгөөд энэ нь DVD-г зохиохын тулд
multimedia/dvdauthor зэрэг тусгай
програмыг та яагаад ашиглах хэрэгтэй болдгийн шалтгаан юм.
Хэрэв танд DVD-Видео файлын системийн дүрс байгаа бол ямар ч дүрсний нэгэн
адил аргаар шарах хэрэгтэй. Өмнөх хэсгийн жишээнээс үзнэ үү. Хэрэв та
DVD зохиолт хийсэн бөгөөд үр дүн нь жишээ нь /path/to/video
санд байгаа бол DVD-Видеог шарахын тулд дараах тушаалыг ашиглах хэрэгтэй:
&prompt.root; growisofs -Z /dev/cd0 -dvd-video /path/to/video
тохируулга &man.mkisofs.8;-д
дамжуулагдах бөгөөд энэ нь DVD-Видео файлын системийн байршлын зураглал
үүсгэхийг тушаах болно. Үүнээс гадна
тохируулга нь &man.growisofs.1;-ийн
тохируулгыг агуулдаг.
DVD
DVD+RW
DVD+RW ашиглах нь
CD-RW-с ялгаатай нь шинэ DVD+RW нь ашиглагдахаа өмнө хэлбэршүүлэгдсэн
байх ёстой. &man.growisofs.1; нь шаардлагатай үед автоматаар үүнийг хийх
бөгөөд энэ аргыг зөвлөдөг юм. Гэхдээ та
dvd+rw-format тушаалыг ашиглан DVD+RW-г хэлбэршүүлж
болно:
&prompt.root; dvd+rw-format /dev/cd0
Та энэ үйлдлийг зөвхөн нэг удаа хийх хэрэгтэй бөгөөд зөвхөн шинэ DVD+RW
зөөвөрлөгчдийн хувьд хэлбэршүүлэх ёстойг санаарай. Дараа нь та DVD+RW-г дээрх
хэсгүүдэд дурдсаны адил шарж болно.
Хэрэв та шинэ өгөгдлийг (зарим өгөгдлийг нэмэх биш
бүр мөсөн шинэ файлын систем шарах) DVD+RW уруу шарахыг хүсэж байгаа бол
түүнийг хоосон болгох шаардлагагүй юм, иймэрхүүгээр өмнөх бичилтэн дээрээ
(шинэ сесс үүсгээд) дараад л бичих хэрэгтэй юм:
&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/newdata
DVD+RW хэлбэршүүлэлт нь өмнөх бичилтэд өгөгдлийг хялбараар нэмэх
боломжийг олгодог. Энэ үйлдэл нь шинэ сессийг хуучин байгаатай нь нийлүүлэх
бөгөөд энэ нь олон сесс бүхий бичилт биш юм. &man.growisofs.1; нь зөөвөрлөгч дээр
байгаа ISO 9660 файлын системийг өсгөх (сунгах)
болно.
Жишээ нь хэрэв бид өөрсдийн урьдны DVD+RW уруу өгөгдөл нэмэхийг
хүсвэл доор дурдсаныг ашиглах хэрэгтэй болно:
&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata
Эхний сессийг шарахдаа бидний хэрэглэдэг &man.mkisofs.8;-ийн
адил тохируулгууд дараагийн бичилтүүдийн үеэр хэрэглэгдэх ёстой.
Хэрэв та DVD-ROM хөтчүүдтэй зөөвөрлөгчийн хувьд илүүтэй нийцтэй байхыг
хүсвэл тохируулгыг хэрэглэхийг
хүсэж болох юм. DVD+RW тохиолдлын хувьд энэ нь таныг өгөгдөл нэмэхийг болиулж
чадахгүй юм.
Хэрэв та ямар нэг шалтгаанаар зөөвөрлөгчийг хоосон болгохыг хүсвэл
доор дурдсаныг хийх хэрэгтэй:
&prompt.root; growisofs -Z /dev/cd0=/dev/zero
DVD
DVD-RW
DVD-RW ашиглах нь
DVD-RW нь дискний хоёр хэлбэршүүлэлтийг авдаг: нэмэгдсэн дараалсан
хэлбэршүүлэлт болон хязгаарлагдмал дарж бичих хэлбэршүүлэлт юм. Анхдагчаар
DVD-RW дискнүүд нь дараалсан хэлбэршүүлэлтэд байдаг.
Шинэ DVD-RW нь хэлбэршүүлэлт хийгдэлгүйгээр шууд бичигдэж болдог,
гэхдээ шинэ биш дараалсан хэлбэршүүлэлтэд байх DVD-RW нь шинэ эхний сесс
бичигдэхээс өмнө хоосон болгогдсон байх шаардлагатай байдаг.
Дараалсан горим дахь DVD-RW-г хоослохдоо дараах тушаалыг ажиллуулна:
&prompt.root; dvd+rw-format -blank=full /dev/cd0
Бүр мөсөн хоослолт () 1x зөөвөрлөгч
дээр нэг цаг орчим болно. Хэрэв DVD-RW нь Disk-At-Once (DAO) горимоор
бичигдэх бол хурдан хоослолтыг тохируулга ашиглан
хийж болно. DVD-RW-г DAO горимд шарахын тулд дараах тушаалыг ашиглана:
&prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso
тохируулгыг
шаардах ёсгүй, учир нь &man.growisofs.1; нь (хурдан хоосолсон)
зөөвөрлөгчийг илрүүлэхийг бага оролдож DAO бичилтийг захиалах
болно.
Яг үнэндээ дурын DVD-RW-ийн хувьд хязгаарлагдмал дарж бичих горимыг
ашиглах хэрэгтэй бөгөөд энэ хэлбэршүүлэлт нь анхдагч нэмэгдсэн дараалсан
хэлбэршүүлэлтээс илүү уян хатан байдаг.
Дараалсан DVD-RW дээр өгөгдлийг бичихдээ бусад DVD хэлбэршүүлэлтийн
нэгэн адил заавруудыг ашиглана:
&prompt.root; growisofs -Z /dev/cd0 -J -R /path/to/data
Хэрэв та зарим өгөгдлийг өөрийн урьдны бичлэгт нэмэхийг хүсвэл
&man.growisofs.1;-ийн тохируулгыг ашиглах
хэрэгтэй болно. Гэхдээ хэрэв та нэмэгдсэн дараалсан горимд байгаа DVD-RW
уруу өгөгдлийг нэмэх үйлдлийг хийвэл диск дээр шинэ сесс үүсгэгдэх бөгөөд
үүний үр дүн нь олон сесс бүхий диск болох юм.
DVD-RW нь хязгаарлагдмал дарж бичих хэлбэршүүлэлтэд шинэ эхний
сессээс өмнө хоосон болгогдох шаардлагагүй, та ердөө л дискийг
тохируулгатай дарж бичих хэрэгтэй бөгөөд энэ нь
DVD+RW тохиолдолтой төстэй юм. Мөн диск дээр бичигдсэн байгаа ISO
9660 файлын системийг DVD+RW-тэй адил аргаар
тохируулгын тусламжтай өсгөж (сунгаж) бас болно. Үр дүн нь нэг сесс
бүхий DVD болох юм.
DVD-RW-г хязгаарлагдмал дарж бичих хэлбэршүүлэлтэд оруулахдаа
дараах тушаалыг ашиглах ёстой:
&prompt.root; dvd+rw-format /dev/cd0
Дараалсан хэлбэршүүлэлт уруу буцааж өөрчлөхдөө дараах тушаалыг ашиглана:
&prompt.root; dvd+rw-format -blank=full /dev/cd0
Олон сесс
Маш цөөн DVD-ROM хөтчүүд олон сесс бүхий DVD-үүдийг дэмждэг бөгөөд
тэдгээр нь ихэнхдээ зөвхөн эхний сессийг уншдаг. DVD+R, DVD-R болон DVD-RW нь
дараалсан хэлбэршүүлэлтдээ олон сессийг хүлээн авч чаддаг бөгөөд DVD+RW болон
DVD-RW хязгаарлагдмал дарж бичих хэлбэршүүлэлтүүдийн хувьд олон сесс гэсэн ойлголт
байдаггүй.
Дараалсан хэлбэршүүлэлтэд DVD+R, DVD-R эсвэл DVD-RW дээрх эхний
(хаагдаагүй) сессийн дараа дараах тушаалыг ашиглаж дискэнд шинэ
сесс үүсгэнэ:
&prompt.root; growisofs -M /dev/cd0 -J -R /path/to/nextdata
Энэ тушаалын мөрийг DVD+RW эсвэл DVD-RW-тэй цуг ашиглан хязгаарлагдмал дарж бичих
горим дээр шинэ сессийг хуучин байгаатай нийлүүлэн өгөгдлийг нэмэх болно. Үр дүн нь
нэг сесс бүхий диск болох юм. Энэ нь эдгээр зөөвөрлөгчүүд дээр эхний бичилтийн дараа
өгөгдөл нэмэх арга юм.
Зөөвөрлөгч дээрх зарим зай нь сесс бүрийн хооронд сессийн төгсгөл болон
эхлэлд хэрэглэгддэг. Тиймээс зөөвөрлөгчийн зайг оновчтой ашиглахын тулд
их өгөгдөлтэй сессүүдийг нэмэх ёстой юм. Сессийн тоо DVD+R-ийн хувьд 154,
DVD-R-ийн хувьд 2000 орчим, DVD+R хос давхаргын хувьд 127-оор
хязгаарлагдана.
Дэлгэрэнгүй мэдээллийг
DVD-ийн талаар илүү мэдээллийг авахын тулд
dvd+rw-mediainfo
/dev/cd0 тушаалыг хөтөч
дотор диск байхад ажиллуулж болно.
dvd+rw-tools-н тухай дэлгэрэнгүй
мэдээлэл нь &man.growisofs.1; гарын авлагын хуудас, dvd+rw-tools
вэб сайт болон cdwrite захидлын жагсаалтын
архивуудаас олдож болно.
Бичигдсэн үр дүн эсвэл асуудалтай зөөвөрлөгчийн dvd+rw-mediainfo
гаралт нь ямар ч асуудлын тайлангийн чухал хэсэг юм. Энэ гаралтгүйгээр танд туслах
бараг л боломжгүй юм.
DVD-RAM ашиглах нь
DVD
DVD-RAM
Тохиргоо
DVD-RAM бичигчид нь SCSI аль эсвэл ATAPI интерфэйстэй цуг ирдэг.
ATAPI төхөөрөмжүүдийн хувьд DMA хандалт идэвхтэй болсон байх ёстой,
дараах мөрийг /boot/loader.conf
файлд нэмж үүнийг хийнэ:
hw.ata.atapi_dma="1"
Зөөвөрлөгчийг бэлдэх нь
Өмнө нь бүлгийн танилцуулгад дурдсанаар DVD-RAM нь зөөврийн хатуу
хөтөч маягаар харагддаг. Бусад хатуу дискнүүдийн адил DVD- RAM нь ашиглагдаж
эхлэхээсээ өмнө бэлдэгдсэн
байх ёстой. Жишээн дээр дискний
бүх зай стандарт UFS2 файлын системтэй ашиглагдана:
&prompt.root; dd if=/dev/zero of=/dev/acd0 count=2
&prompt.root; bsdlabel -Bw acd0
&prompt.root; newfs /dev/acd0
DVD төхөөрөмж acd0-ийг өөрийн тохиргооны
дагуу өөрчлөн ашиглах ёстой.
Зөөвөрлөгчийг ашиглах нь
Дээрх үйлдлүүд DVD-RAM дээр хийгдсэний дараа үүнийг энгийн
хатуу хөтчийн нэгэн адил холбож болно:
&prompt.root; mount /dev/acd0 /mnt
Үүний дараа DVD-RAM нь уншигдах бичигдэх боломжтой болно.
Жулио
Мерино
Анхлан хийсэн
Мартин
Карлсон
Дахин бичсэн
Уян дискнүүдийг үүсгэж ашиглах нь
Өгөгдлийг уян дискнүүд уруу хадгалах нь заримдаа ашигтай байдаг. Жишээ нь
хэн нэгэнд нь шилжүүлж болдог ямар ч хадгалалтын зөөвөрлөгч байхгүй тохиолдолд
эсвэл бага хэмжээний өгөгдлийг өөр компьютер уруу зөөх хэрэгцээ гарсан үед уян
диск нь хэрэг болдог.
Энэ хэсэг нь FreeBSD дээр уян дискийг хэрхэн ашиглах талаар тайлбарлах болно.
Энд 3.5 инчийн DOS уян дискнүүдийг хэлбэршүүлж ашиглах талаар үндсэндээ
тайлбарлах бөгөөд гэхдээ энэ ойлголт нь бусад уян дискний хэлбэршүүлэлттэй
төстэй юм.
Уян дискнүүдийг хэлбэршүүлэх нь
Төхөөрөмж
Уян дискнүүдэд бусад төхөөрөмжүүдийн адил /dev
сан дахь оруулгуудаар ханддаг. Түүхий уян дискэнд хандахын тулд
/dev/fdN-г
ердөө л ашиглах хэрэгтэй.
Хэлбэршүүлэх нь
Уян дискийг ашиглахаасаа өмнө доод түвшний хэлбэршүүүлэлт
хийсэн байх хэрэгтэй. Үүнийг ихэвчлэн үйлдвэрлэгч хийдэг боловч
хэлбэршүүлэлт нь зөөвөрлөгчийн бүрэн бүтэн байдлыг шалгах нэг сайн
арга юм. Илүү том (эсвэл жижиг) дискний хэмжээг хүчлэн ашиглах
боломжтой байдаг боловч 1440kB хэмжээнд зориулагдан ихэнх уян
диск хийгдсэн байдаг.
Уян дискэнд доод түвшний хэлбэршүүлэлт хийхийн тулд та
&man.fdformat.1;-г ашиглах хэрэгтэй. Энэ хэрэгсэл нь төхөөрөмжийн
нэрийг нэмэлт өгөгдөл маягаар оруулахыг хүлээж байдаг.
Алдааны мэдэгдлийг тэмдэглэж аваарай, учир нь эдгээр нь
дискийг сайн эсвэл муу эсэхийг тодорхойлоход туслах болно.
Уян дискнүүдийг хэлбэршүүлэх нь
/dev/fdN
төхөөрөмжүүдийг ашиглан уян дискийг хэлбэршүүлэх хэрэгтэй. Шинэ 3.5 инч
диск өөрийн хөтөч уруугаа хийгээд дараах тушаалыг ажиллуул:
&prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0
Дискний шошго
Дискэнд доод түвшний хэлбэршүүлэлт хийсний дараа танд диск дээр шошго
тавих хэрэгтэй болно. Энэ дискний шошго нь дараа нь устгагдах боловч
дискний хэмжээ болон геометрийг дараа нь тодорхойлоход системд
хэрэг болдог.
Шинэ дискний шошго нь бүхэл дискийг хамарч уян дискний геометрийн тухай
бүх л зөв мэдээллийг агуулах болно. Дискний шошгоны геометрийн утгууд нь
/etc/disktab файлд жагсаагдсан
байдаг.
Та одоо ингэж &man.bsdlabel.8;-г ажиллуулж болно:
&prompt.root; /sbin/bsdlabel -B -r -w /dev/fd0 fd1440
Файлын систем
Одоо уян дискэнд дээд түвшний хэлбэршүүлэлт хийхэд бэлэн боллоо. Энэ нь
дискийг FreeBSD унших болон түүнд бичих боломжийг олгох шинэ файлын системийг
диск дээр байрлуулах болно. Шинэ файлын системийг үүсгэсний дараа дискний
шошго устгагдах бөгөөд хэрэв та дискийг дахин хэлбэршүүлэхийг хүсвэл дискний
шошгыг дахин үүсгэх шаардлагатай болно.
Уян дискний файлын систем нь UFS эсвэл FAT хоёрын аль нэг нь байна.
FAT нь ерөнхийдөө уян дискнүүдийн хувьд илүү дээр сонголт байдаг.
Уян диск дээр шинэ файлын системийг байрлуулахын талд дараах тушаалыг ажиллуулна:
&prompt.root; /sbin/newfs_msdos /dev/fd0
Диск одоо ашиглахад бэлэн боллоо.
Уян дискийг ашиглах нь
Уян дискийг ашиглахын тулд &man.mount.msdosfs.8; тушаалаар холбох хэрэгтэй. Мөн
портын цуглуулгаас emulators/mtools-г
ашиглаж бас болох юм.
Өгөгдлийн соронзон хальснууд үүсгэж ашиглах нь
соронзон хальс зөөвөрлөгч
Гол соронзон хальс зөөвөрлөгчүүд нь 4мм, 8мм, QIC, мини-хайрцаг болон DLT
юм.
4мм (DDS: Digital Data Storage)
соронзон хальс зөөвөрлөгч
DDS (4mm) соронзон хальснууд
соронзон хальс зөөвөрлөгч
QIC соронзон хальснууд
4мм соронзон хальснууд нь QIC-г халж ажлын станцын нөөц зөөвөрлөгч болон сонгогдож
байна. Conner компани нь QIC хөтчүүдийн тэргүүлэх үйлдвэрлэгч Archive-г
худалдаж авч дараа нь QIC хөтчүүдийг үйлдвэрлэхээ зогсоосноор энэ чиг хандлага нь
илүү хурдассан юм. 4мм хөтчүүд нь жижиг, чимээгүй боловч 8мм хөтчүүд шиг
найдвартай ажиллагаагаараа алдартай биш юм. Хайрцагнууд нь үнэтэй биш бөгөөд
8мм-ийн хайрцагнуудаас бага (3 x 2 x 0.5 инч, 76 x 51 x 12 мм) юм.
4мм соронзон хальс нь 8мм-ийн нэгэн адил шалтгаанаар толгой нь богино настай бөгөөд
хоёулаа мушгиа сканыг ашигладаг.
Эдгээр хөтчүүд дээрх өгөгдлийн дамжуулах чадвар нь ~150 kB/s-с
эхэлж ~500 kB/s хүрнэ. Өгөгдлийн багтаамж 1.3 GB-с эхэлж
2.0 GB хүрнэ. Тоног төхөөрөмжийн шахалт энэ хөтчүүдийн ихэнхэд байх
бөгөөд энэ нь багтаамжийг ойролцоогоор хоёр дахин нэмэгдүүлдэг. Олон хөтөч бүхий
соронзон хальсны сан (library) автомат соронзон хальс солигчтой нэг кабинетийн хувьд 6 хөтөчтэй
байж болно. Сангийн багтаамж нь 240 GB хүрнэ.
DDS-3 стандарт нь одоогоор 12 GB (эсвэл 24 GB шахагдсан)
багтаамжтай соронзон хальсыг дэмждэг.
4мм хөтчүүд нь 8мм-ийн хөтчүүдийн нэгэн адил мушгиа хайлтыг хэрэглэдэг.
Мушгиа хайлт хийхийн бүх ашигтай тал болон сул талууд нь 4мм болон 8мм-ийн хөтчүүдийн
аль алинд нь хамаардаг.
Соронзон хальснууд нь 2000 удаагийн ашиглалт эсвэл 100 бүрэн нөөцлөлтийн дараа
хэрэглээнээс гарах ёстой.
8мм (Exabyte)
соронзон хальс зөөвөрлөгч
Exabyte (8мм) соронзон хальснууд
8мм соронзон хальснууд нь хамгийн нийтлэг SCSI соронзон хальсны хөтчүүд юм; тэдгээр нь соронзон хальснууд
солих хамгийн сайн сонголт болдог. Бараг сайт бүр Exabyte 2 GB 8мм-ийн
соронзон хальсны хөтөчтэй байдаг. 8мм-ийн хөтчүүд нь найдвартай, хэрэглэхэд амар, чимээгүй
байдаг. Хайрцагнууд нь хямд, жижиг (4.8 x 3.3 x 0.6 инч; 122 x 84 x 15 мм)
байдаг. 8мм-ийн соронзон хальсны нэг сул тал нь толгойнуудын дагуух соронзон хальсны харьцангуй хөдөлгөөний
өндөр хувиас болоод харьцангуй богино толгой ба соронзон хальсны амьдрах хугацаатай байдаг явдал юм.
Өгөгдөл дамжуулах чадвар нь ~250 kB/s-аас ~500 kB/s хүртэл байна.
Өгөгдлийн хэмжээ нь 300 MB-аас эхэлж 7 GB хүрнэ. Тоног төхөөрөмжийн шахалт
энэ хөтчүүдийн ихэнхэд байх бөгөөд энэ нь багтаамжийг ойролцоогоор хоёр дахин нэмэгдүүлдэг.
Эдгээр хөтчүүд нь нэг буюу эсвэл нэг кабинетдаа 6 хөтөч болон 120 соронзон хальстай олон хөтөч
бүхий соронзон хальсны сан (library) хэлбэрээр байдаг. соронзон хальснууд нь автоматаар солигддог.
Сангийн багтаамж 840+ GB хүрнэ.
Exabyte Mammoth
загвар нь нэг соронзон хальс дээр 12 GB
((24 GB шахалттайгаар) дэмждэг бөгөөд ердийн соронзон хальсны хөтчөөс ойролцоогоор
хоёр дахин үнэтэй байдаг.
Өгөгдөл нь соронзон хальс уруу мушгиа скан ашиглагдан бичигддэг, толгойнууд нь зөөвөрлөгч уруу
өнцгөөр байрладаг (ойролцоогоор 6 градус). Соронзон хальс нь толгойнуудыг барьж байдаг дамрын
270 градус орчим ороодог. Соронзон хальс дамар дээгүүр гулгаж байхад дамар нь эргэж байдаг.
Үр дүнд нь өгөгдлийн өндөр нягтрал болон соронзон хальсны дагуу нэг ирмэгээс нөгөө уруу өнцөгдсөн ойрхон
багцалсан замууд үүсэх болно.
QIC
соронзон хальс зөөвөрлөгч
QIC-150
QIC-150 соронзон хальснууд болон хөтчүүд нь магадгүй хамгийн нийтлэг соронзон хальсны хөтөч, зөөвөрлөгч
юм. QIC соронзон хальсны хөтчүүд нь хамгийн хямд нухацтай
нөөцлөлтийн хөтчүүд
юм. Сул тал нь зөөвөрлөгчийн үнэ байдаг. QIC соронзон хальснууд нь 8мм болон 4мм соронзон хальснуудтай
харьцуулахад GB өгөгдлийн хадгалалтын хувьд 5 дахин үнэтэй байдаг. Гэхдээ таны
хэрэглээнд цөөн (half-dozen) соронзон хальснууд хангалттай бол QIC нь магадгүй зөв сонголт
болж болох юм. QIC нь хамгийн нийтлэг соронзон хальсны хөтөч юм.
Сайт бүр ямар нэг хэмжээний QIC хөтөчтэй байдаг. QIC нь физикийн хувьд төстэй (заримдаа адил)
соронзон хальснуудад их хэмжээний нягтралтай байдаг. QIC хөтчүүд нь чимээгүй биш юм.
Эдгээр хөтчүүд нь өгөгдлийг бичиж эхлэхээсээ өмнө дуутайгаар хайдаг бөгөөд
унших, бичих эсвэл хайхдаа мэдэгдэхүйц дуутай байдаг. QIC соронзон хальснууд нь
6 x 4 x 0.7 инч (152 x 102 x 17 мм) хэмжээтэй байдаг.
Өгөгдлийн дамжуулах чадвар ~150 kB/s-с ~500 kB/s хүртэл байна.
Өгөгдлийн багтаамж 40 MB-с 15 GB хүртэл байна. Шинэ QIC хөтчүүдийн
ихэнхэд тоног төхөөрөмжийн шахалт байдаг. QIC хөтчүүд нь бага суулгагддаг; тэдгээр нь
DAT хөтчүүдээр шахагдсан юм.
Өгөгдөл нь соронзон хальс уруу замаар бичигддэг. Замууд нь соронзон хальсны зөөвөрлөгчийн нэг төгсгөлөөс
нөгөө уруу урт тэнхлэгийн дагуу байдаг. Замуудын тоо болон замын өргөн соронзон хальсны багтаамжаас
хамаарч өөр өөр байдаг. Бүх шинэ хөтчүүдийн ихэнх нь хамгийн багадаа бодоход уншилтын
(ихэнхдээ бас бичилтийн хувьд) хуучинтайгаа нийцтэй байдаг. QIC нь өгөгдлийн аюулгүй
байдлын хувьд нэлээн нэр хүндтэй байдаг (механизм нь хөтчүүдийг мушгиа скан хийснээс
илүү хялбар бөгөөд хүчирхэг байдаг).
5,000 нөөцлөлтийн дараа соронзон хальснуудыг ашиглахаа болих шаардлагатай.
DLT
соронзон хальс зөөвөрлөгч
DLT
DLT нь энд жагсаагдсан бүх хөтчийн төрлүүдээс хамгийн хурдан өгөгдөл дамжуулах
чадвартай байдаг. 1/2" (12.5мм) соронзон хальс нь ганц дамартай хайрцагт
(4 x 4 x 1 инч; 100 x 100 x 25 мм) байдаг. Хайрцаг нь нэг талаараа
ганхах хаалгатай байдаг. Хөтчийн механизм соронзон хальсны тэргүүнийг гаргаж авахын тулд
энэ хаалгыг онгойлгодог. Соронзон хальсны тэргүүн нь зууван нүхтэй байх бөгөөд
хөтөч соронзон хальсыг дэгээдэхдээ
үүнийг ашигладаг. Авах (take-up)
дамар нь соронзон хальсны хөтчийн дотор байрладаг. Энд жагсаагдсан
бусад соронзон хальсны хайрцагнууд (9 замтай соронзон хальснууд нь жич юм) нь соронзон хальсны хайрцган дотор
байрлах хангах болон take-up дамруудтай байдаг.
Өгөгдөл дамжуулах чадвар нь ойролцоогоор 1.5 MB/s бөгөөд 4мм, 8м, QIC
соронзон хальсны хөтчүүдийн дамжуулах чадвараас 3 дахин их байдаг. Өгөгдлийн багтаамж нь
нэг хөтчийн хувьд 10 GB-аас 20 GB хүрдэг. Хөтчүүд нь олон соронзон хальс
солигчид болон олон соронзон хальс хэлбэрээр байдаг, олон хөтөч бүхий соронзон хальсны сангууд нь
нийтдээ 50 GB-с 9 TB хүртэл хадгалалт бүхий 5-аас 900 хүртэл соронзон хальснуудыг
1-ээс 20 хүртэлх хөтчүүд дээр агуулдаг.
Шахалттай бол DLT Төрөл 4 хэлбэршүүлэлт нь 70 GB багтаамжийг
дэмждэг.
Өгөгдөл нь соронзон хальсны замууд дээр аялалын чиглэлийн дагуу (QIC соронзон хальснуудын адил)
зэрэгцээгээр бичигддэг. Хоёр зам нэг удаа бичигддэг. Унших/бичих толгойны амьдрах хугацаа
харьцангуй урт байдаг; соронзон хальс хөдлөхөө болиход толгой болон соронзон хальсны хоорондын
хамаатай хөдөлгөөн байхгүй болно.
AIT
соронзон хальс зөөвөрлөгч
AIT
AIT нь Sony-гоос гаргасан шинэ хэлбэршүүлэлт бөгөөд нэг соронзон хальсны хувьд 50
GB хүртэл (шахалттайгаар) мэдээллийг агуулж чадна. Соронзон хальснууд нь санах ойн бичил
схемүүдийг агуулдаг бөгөөд эдгээр нь соронзон хальсны агуулгын индексийг хадгалдаг. Бусад
соронзон хальснуудын хувьд хэд хэдэн минут шаардагддаг бол харин энэ индексийг соронзон хальсны хөтөч
соронзон хальс дээрх файлуудын байрлалыг тодорхойлохын тулд маш хурдан уншдаг.
SAMS:Alexandria зэрэг програм нь
соронзон хальсны санах ойн бичил схемтэй шууд холбогдон агуулгыг дэлгэцэд гаргаж, ямар файлууд аль
соронзон хальс уруу нөөцлөгдсөнийг тодорхойлж, зөв соронзон хальсыг олон ачаалж соронзон хальснаас өгөгдлийг
сэргээн дөч болон түүнээс дээш AIT соронзон хальсны сангуудыг ажиллуулж чаддаг.
Үүнтэй адил сангууд $20,000 хавьцаа үнэ хүрч тэдгээрийг сонирхогчдын зах зээлээс
бага зэрэг шахдаг байна.
Шинэ соронзон хальсыг анх удаа ашиглах нь
Анхны удаа шинэ, хов хоосон соронзон хальсыг уншихыг оролдвол амжилтгүй болно.
Консолын мэдэгдлүүд үүнтэй төстэй байна:
sa0(ncr1:4:0): NOT READY asc:4,1
sa0(ncr1:4:0): Logical unit is in process of becoming ready
Соронзон хальс нь Identifier Block буюу Танигч Блокийг (block number 0)
агуулаагүй байна. Бүх QIC соронзон хальснууд нь QIC-525 стандартыг хэрэглэж эхэлснээс
хойш Танигч Блокийг соронзон хальсанд бичдэг. Хоёр шийдэл байдаг:
mt fsf 1 тушаал нь Танигч Блокийг соронзон хальс уруу
бичихийг соронзон хальсны хөтчид хэлнэ.
Нүүрний товчлуурыг ашиглан соронзон хальсыг гаргаж авна.
Соронзон хальсыг дахин хийгээд түүн уруу өгөгдлийг
dump хийнэ.
dump тушаал нь DUMP: End of tape
detected гэж мэдэгдэх бөгөөд консол HARDWARE
FAILURE info:280 asc:80,96 гэж харуулна.
mt rewind тушаал ашиглан соронзон хальсыг буцаана.
Дараа дараачийн соронзон хальсны үйлдлүүд амжилттай болно.
Уян диск уруу нөөцлөх
Өөрийн өгөгдлийг нөөцлөхийн тулд би уян дискнүүдийг ашиглаж болох уу?
нөөц уян дискнүүд
уян дискнүүд
Уян дискнүүд нь нөөц хийхэд тийм ч тохиромжтой зөөвөрлөгч биш юм, учир нь:
Энэ зөөвөрлөгч нь найдваргүй, ялангуяа урт хугацааны туршид найдваргүй
байдаг.
Нөөцлөх болон буцааж сэргээх нь их удаан байдаг.
Тэдгээр нь маш хязгаарлагдмал багтаамжтай (бүхэл бүтэн хатуу дискийг хэдэн арван
уян дискэнд нөөцлөх нь их олон өдөр шаардана).
Гэхдээ хэрэв танд өөрийн өгөгдлийг нөөцлөх өөр ямар ч арга байхгүй бол
уян дискнүүдэд нөөцлөх нь нөөц хийхгүй байснаас хамаагүй дээр юм.
Хэрэв та уян дискнүүд ашиглах шаардлагатай болсон бол сайн чанарынхыг
ашигласан эсэхээ шалгах хэрэгтэй. Оффис дээр чинь хоёр жил хэвтсэн уян дискнүүд
муу сонголт болох юм. Нэр хүндтэй үйлдвэрлэгчээс гаргасан шинэ дискнүүдийг
ашиглах нь зүйтэй юм.
Тэгэхээр би өөрийн өгөгдлийг уян диск уруу хэрхэн нөөцлөх вэ?
Уян диск уруу нөөцлөх хамгийн шилдэг арга нь &man.tar.1; тушаалыг
(олон эзлэхүүн) тохируулгатайгаар ашиглах
явдал юм. Энэ нь олон уян дискнүүдэд нөөцлөх боломжийг олгодог.
Тухайн сан болон дэд сан доторхи бүх файлуудыг нөөцлөхийн тулд үүнийг
ашиглах хэрэгтэй (root хэрэглэгчээр):
&prompt.root; tar Mcvf /dev/fd0 *
Эхний уян диск дүүрсний дараа &man.tar.1; нь дараагийн эзлэхүүнийг
оруулахыг хүсэх болно (учир нь &man.tar.1; нь зөөвөрлөгчөөс хамааралгүй бөгөөд
эзлэхүүнүүдэд ханддаг; энд уян дискийг хэлж байна).
Prepare volume #2 for /dev/fd0 and hit return:
Энэ нь заагдсан файлууд архивлагдах хүртэл (эзлэхүүний дугаар нэмэгдэн)
давтагдах болно.
Би өөрийнхөө нөөцүүдийг шахаж болох уу?
tar
gzip
шахалт
Харамсалтай нь &man.tar.1; нь олон эзлэхүүн бүхий архивуудын хувьд
тохируулгыг ашиглахыг зөвшөөрдөггүй. Мэдээж та
бүх файлуудыг &man.gzip.1; хийж тэдгээрийг уян диск уруу &man.tar.1;
хийж дараа нь файлуудыг дахин &man.gunzip.1; хийж болно!
Би өөрийн нөөцүүдийг хэрхэн сэргээх вэ?
Бүхэл архивыг сэргээхдээ дараах тушаалыг ашиглана:
&prompt.root; tar Mxvf /dev/fd0
Зөвхөн заагдсан файлуудыг сэргээх хоёр арга байдаг бөгөөд та
тэдгээрийг ашиглаж болно. Эхлээд та эхний дискнээс эхлээд дараах тушаалыг
ашиглана:
&prompt.root; tar Mxvf /dev/fd0 filename
&man.tar.1; хэрэгсэл нь шаардлагатай файлыг олох хүртлээ дараа дараагийн уян дискнүүдийг
хийхийг танаас хүсэх болно.
Өөрөөр, хэрэв та файл нь яг аль уян диск дээр байгааг мэдэж байвал
ердөө л тэр уян дискийг оруулж дээрхтэй адил тушаалыг ашиглах хэрэгтэй.
Хэрэв уян диск дээрх эхний файл нь өмнөх диск дээрхийн үргэлжлэл бол
таныг асуугаагүй байсан ч гэсэн &man.tar.1; үүнийг сэргээж чадахгүй
гэж танд анхааруулах болно!
Лоуэл
Жилбэрт
Анхлан хийсэн
Нөөцлөх стратегууд
Нөөцлөх төлөвлөгөөг боловсруулах эхний шаардлага нь дараах бүх асуудлуудыг
хамарсан эсэхийг шалгах явдал юм:
Дискний гэмтэл
Санамсаргүй файл устгалт
Санамсаргүй файлын эвдрэл
Газар дээрх нөөцүүд байвал тэдгээрийг оруулаад машины
бүрэн сүйрэл (өөрөө хэлбэл гал).
Эдгээр асуудал бүрийг шал өөр техникээр шийдэснээр зарим системүүдийг
илүүтэй ажиллуулах төгс боломж байж болох юм. Маш бага үнэ цэнэтэй
өгөгдөл бүхий чанга хувийн системүүдийг тооцохгүй юм бол нэг техник нь
бүх асуудлуудыг хамрах нь бараг боломжгүй юм.
Хэрэгслийн хайрцаг дахь зарим нэг техникүүдийг дурдвал:
Бүх системийн архивууд нь сайтаас гадна байнгын зөөвөрлөгчид
нөөцлөгдөнө. Энэ нь дээр дурдсан бүх асуудлуудаас хамгаалах боловч
сэргээх нь тохиромжгүй удаан байдаг. Та нөөцүүдийн хуулбаруудыг
газар дээр нь ба/эсвэл шууд авч болохоор хадгалж болох боловч
файлуудыг сэргээх нь ялангуяа зөвшөөрөгдөөгүй хэрэглэгчдэд
бас л тохиромжгүй хэвээр байдаг.
Файлын системийн хормын хувилбарууд. Энэ нь яг үнэндээ зөвхөн
санамсаргүйгээр файлыг устгасан тохиолдолд тустай, гэхдээ
энэ нь тийм тохиолдолд маш тус болохуйц
байдаг бөгөөд хурдан, ажиллахад хялбар байдаг.
Бүх файлын систем ба/эсвэл дискнүүдийн хуулбарууд (бүхэл машины үе үе давтагдах
&man.rsync.1;). Энэ нь ерөнхийдөө онцгой шаардлага бүхий сүлжээнүүдэд хамгийн
ашигтай байдаг. Дискний эвдрэл, гэмтлийн эсрэг ерөнхий хамгаалалтын хувьд
энэ нь ихэвчлэн RAID-с чанарын хувьд муу байдаг. Санамсаргүйгээр
устгасан файлуудыг сэргээхэд энэ нь UFS хормын хувилбартай
дүйцэхээр боловч та алийг дээдэлдгээс хамаарах юм.
RAID. Диск эвдрэх, гэмтэх үед зогсох хугацааг
багасгаж зайлсхийдэг. Маш бага шаардлагатай хэдий ч дискний эвдрэлүүдтэй илүүтэй
зууралдах (учир нь та олон дисктэй) хэрэгтэй болдог.
Файлуудын байрлалыг (хурууны хээ) шалгах. Үүнд &man.mtree.8; хэрэгсэл их
ашигтай байдаг. Энэ нь нөөцлөх техник биш боловч танд өөрийн нөөцүүддээ хандахаар
болох үед та хэрэг болох болно. Энэ нь сайтаас гаднах шууд
бус нөөцүүдийн хувьд ялангуяа чухал бөгөөд үе үе шалгагдаж байх ёстой.
Үүнээс илүү олон техникийг бодож олох нь амархан бөгөөд тэдгээрийн
ихэнх нь дээр дурдсан техникүүдийн өөр хувилбарууд юм. Тусгайлсан шаардлагууд нь
ихэвчлэн тусгайлсан техникт хүргэдэг (жишээ нь шууд ажиллаж байгаа мэдээллийн
баазыг нөөцлөх нь зөвхөн мэдээллийн санд зориулагдсан аргыг дундын шат
болгон ихэвчлэн ашиглахыг шаарддаг). Ямар аюулуудаас та хамгаалахыг хүсэж байгаа болон
тэдгээр тус бүртэй хэрхэн ажиллахаа мэдэх нь чухал юм.
Нөөцлөлтийн үндсүүд
Гурван гол нөөцлөх програм бол &man.dump.8;, &man.tar.1; болон
&man.cpio.1; юм.
Dump ба Restore
нөөцлөх програм хангамж
dump / restore
dump
restore
Уламжлалт &unix; нөөцлөх програмууд нь dump ба
restore юм. Тэдгээр нь файлын системүүдээр үүсгэгдсэн
файлууд, холбоосууд болон сангуудын хийсвэр ойлголтуудын доор хөтчүүд дээр дискний
блокуудын цуглуулга хэлбэрээр ажилладаг. dump нь
төхөөрөмж дээрх бүхэл файлын системийг нөөцөлдөг. Файлын системийн зөвхөн
хэсгийг эсвэл нэгээс илүү файлын систем дагуу байрлах сангийн модыг энэ нь нөөцөлж
чаддаггүй. dump нь файлууд болон сангуудыг соронзон хальс уруу
бичдэггүй, харин файлууд болон сангуудаас тогтох түүхий өгөгдлийн блокуудыг
бичдэг.
Хэрэв та өөрийн root сандаа dump-г
хэрэглэвэл та /home,
/usr эсвэл бусад олон сангуудыг нөөцлөхгүй бөгөөд
үүний учир бол эдгээр нь ихэвчлэн бусад файлын системүүдийн холбох цэгүүд буюу
эсвэл тэдгээр файлын системүүд уруу заасан симболын холбоосууд байдаг.
dump нь өөрийн хөгжлийн эхний өдрүүд болох
AT&T UNIX-ийн 6-р хувилбараас (1975 он орчим) үлдсэн кодтой
байдаг. Анхдагч параметрүүд нь өнөөдөр байгаа өндөр нягтралтай (62,182 ftpi хүртэл)
зөөвөрлөгчид биш 9 зам (6250 bpi) бүхий соронзон хальсанд тохирдог. Одоогийн соронзон хальсны
хөтчүүдийн багтаамжийг хэрэглэхийн тулд эдгээр анхдагчуудыг тушаалын мөрөөс дарж
өөрчлөх ёстой.
.rhosts
Мөн сүлжээгээр өөр компьютерт холбогдсон соронзон хальсны хөтөч уруу өгөгдлийг
rdump болон rrestore
тушаал ашиглан нөөцлөх боломжтой байдаг. Энэ хоёр програм нь алсын соронзон хальсны
хөтчид хандахдаа &man.rcmd.3; болон &man.ruserok.3;-д тулгуурладаг.
Тиймээс нөөцлөлтийг хийж байгаа хэрэглэгч алсын компьютерийн
.rhosts файл дотор жагсаагдсан байх ёстой.
rdump болон rrestore
тушаалуудад өгөх нэмэлт өгөгдлүүд нь алсын компьютер дээр ашиглаж болохоор
байх ёстой. komodo гэж нэрлэгдсэн Sun уруу холбогдсон
Exabyte соронзон хальсны хөтөч уруу FreeBSD компьютераас rdump
хийхдээ дараах тушаалыг ашиглана:
&prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Болгоомжлоорой: .rhosts танин нэвтрэлтийг
зөвшөөрөх нь аюулгүй байдлын асуудлууд үүсгэдэг. Өөрийн нөхцөл байдлыг
анхааралтай үнэлэх хэрэгтэй.
Мөн dump болон restore
тушаалыг илүү аюулгүй загвараар ssh дээгүүр ашиглах
бас боломжтой байдаг.
ssh-ээр dump-г ашиглах нь
&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz
Эсвэл dump-ийн дотор байдаг нэг арга болох RSH орчны хувьсагчийг
тохируулан ашиглаж болно:
ssh-ээр RSH тохируулан dump-г
ашиглах нь
&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr
tar
нөөцлөх програм хангамж
tar
&man.tar.1; нь бас AT&T UNIX-ийн 6-р хувилбараас (1975 он орчим)
эхтэй. tar нь файлын системтэй хамт ажилладаг;
энэ нь файлууд болон сангуудыг соронзон хальс уруу бичдэг. tar
нь &man.cpio.1;-д байдаг бүрэн хэмжээний тохируулгуудыг дэмждэггүй боловч
энэ нь cpio-ийн хэрэглэдэг ховор тушаалын дамжуулах
хоолойг шаарддаггүй.
tar
FreeBSD 5.3 болон түүнээс хойшхи хувилбарт GNU tar
болон анхдагч bsdtar тушаалууд байдаг. GNU хувилбарыг
gtar гэж ажиллуулж болдог. Энэ нь rdump-тай
адил дүрмийг ашиглаж алсын төхөөрөмжүүдийг дэмждэг.
komodo гэж нэрлэгдсэн Sun уруу холбогдсон
Exabyte соронзон хальсны хөтөч уруу tar
хийхдээ дараах тушаалыг ашиглана:
&prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1
Алсын соронзон хальсны хөтөч уруу өгөгдлийг илгээхдээ rsh болон
дамжуулах хоолой ашиглан bsdtar тушаалаар үүнийг бас
хийж болно.
&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20b
Хэрэв та сүлжээгээр нөөцлөхийн аюулгүй байдалд санаа зовж байгаа бол
rsh-ийн оронд ssh тушаалыг
ашиглах хэрэгтэй.
cpio
нөөцлөх програм хангамж
cpio
&man.cpio.1; нь соронзон зөөвөрлөгчид зориулагдсан &unix;-ийн
анхны файл солилцох соронзон хальсны програм юм. cpio нь
(бусад олон тохируулгуудын дотроос) байт солилцохыг хийх, хэд хэдэн төрлийн
архивын хэлбэршүүлэлтүүдийг бичих болон өгөгдлийг өөр програм уруу хоолойгоор
гаргах зэрэг тохируулгуудтай байдаг. Сүүлийн боломж нь cpio-г
суулгацын зөөвөрлөгчийн хувьд сайн сонголт болгодог. cpio нь
сангийн модоор хэрхэн явахаа мэддэггүй бөгөөд файлуудын жагсаалтыг
stdin-ээс хангаж өгөх ёстой.
cpio
cpio нь сүлжээгээр нөөцлөхийг дэмждэггүй.
Та дамжуулах хоолой болон rsh-ийг ашиглаж өгөгдлийг
алсын соронзон хальсны хөтөч уруу илгээж болно.
&prompt.root; for f in directory_list; do
find $f >> backup.list
done
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"
directory_list нь таны нөөцлөхийг хүссэн
сангуудын жагсаалт бол
user@host нь
нөөцлөлтийг хийж байгаа хэрэглэгч/хостын нэрийн хослол бөгөөд
backup_device нь нөөцлөлт хийгдэх төхөөрөмж
(өөрөөр хэлбэл /dev/nsa0) юм.
pax
нөөцлөх програм хангамж
pax
pax
POSIX
IEEE
&man.pax.1; нь tar болон cpio
тушаалын IEEE/&posix;-ийн хариулт юм. Жил ирэх тутам tar болон
cpio тушаалуудын төрөл бүрийн хувилбарууд нь хоорондоо мэдэгдэхүйц
нийцгүй болж ирсэн юм. Тэдгээртэй тэмцэж бүр мөсөн стандартчилахын оронд
&posix; нь архивын шинэ хэрэгсэл үүсгэсэн юм. pax нь
өөрийн шинэ хэлбэршүүлэлтээс гадна cpio болон tar
тушаалуудын төрөл бүрийн хэлбэршүүлэлтийн ихэнхийг уншиж бичихийг оролддог.
Энэ тушаалын олонлог нь tar тушаалынхтай биш харин
cpio тушаалынхтай илүү төстэй байдаг.
Amanda
нөөцлөх програм хангамж
Amanda
Amanda
Amanda (Advanced Maryland
Network Disk Archiver) нь нэг програм биш клиент/сервер програм юм.
Amanda сервер нь ганц соронзон хальсны хөтөч уруу
Amanda клиенттэй, Amanda
сервер уруу сүлжээгээр холбогдсон дурын тооны компьютерийг нөөцлөх болно.
Хэд хэдэн том дискнүүд бүхий сайтууд дээр байдаг нийтлэг асуудлууд нь өгөгдлийг
соронзон хальс уруу нөөцлөхөд шаардагдах хугацаа нь уг үйлдлийн хувьд зориулагдсан
хугацаанаас илүү гарах явдал юм. Amanda нь
энэ асуудлыг шийддэг. Amanda нь
хэд хэдэн файлын системүүдийг нэг зэрэг нөөцлөхдөө holding disk буюу хүлээгдэх диск
ийг
ашигладаг. Amanda нь
архивын олонлогууд
буюу Amanda-ийн
тохиргооны файлд жагсаагдсан бүх файлын системүүдийн бүрэн нөөцлөлтүүдийг үүсгэхэд хэсэг хугацаанд
хэрэглэгдсэн бүлэг соронзон хальснуудыг үүсгэдэг. Архивын олонлогууд
нь бас
файлын системүүдийн шөнө болгоны нэмэгдсэн (эсвэл ялгаатай) нөөцлөлтүүдийг агуулдаг.
Эвдэрсэн файлын системийг сэргээх нь хамгийн сүүлийн бүрэн нөөцлөлт болон нэмэгдсэн
нөөцлөлтүүдийг шаарддаг.
Тохиргооны файл нь нөөцлөлтүүд болон Amanda-ийн
үүсгэдэг сүлжээний урсгалыг нарийн хянах боломжийг хангадаг. Amanda
нь өгөгдлийг соронзон хальс уруу бичихийн тулд дээр дурдсан нөөцлөлтийн програмуудыг
ашиглана. Amanda нь порт эсвэл багц хэлбэрээр
байдаг бөгөөд анхдагчаар суулгагдаагүй байдаг.
Юу ч хийхгүй байх
Юу ч хийхгүй байх
нь компьютерийн програм биш боловч энэ нь
хамгийн их ашиглагддаг нөөцлөлтийн стратеги юм. Ямар ч эхний зардал байхгүй.
Мөрдөх нөөцлөлтийн төлөвлөгөө байхгүй. Зүгээр л үгүй гэх хэрэгтэй. Хэрэв таны
өгөгдөлд ямар нэг асуудал тохиолдвол шүд зуугаад л тэвчих хэрэгтэй!
Хэрэв таны цаг болон өгөгдөл нь тийм ч чухал биш эсвэл юу ч биш бол
Do nothing буюу юу ч хийхгүй байх
нь таны компьютерийн
хувьд хамгийн тохиромжтой нөөцлөлтийн програм болох юм. Гэхдээ &unix;
нь ашигтай хэрэгсэл юм, та зургаан сарын дотор үнэтэй файлуудын цуглуулгатай болж
үүнийг мэдрэх болно.
Юу ч хийхгүй байх
нь /usr/obj
болон таны компьютераар яг үүсгэгдэж болох бусад сангийн моднуудын хувьд зөв
нөөцлөх арга болдог. Үүний жишээ нь энэ гарын авлагын HTML эсвэл &postscript;-с
тогтох хувилбарын файлууд байж болох юм. Эдгээр баримтын хэлбэршүүлэлтүүд нь
SGML оролтын файлуудаас үүсгэгддэг. HTML эсвэл &postscript; файлуудын
нөөцлөлтийг үүсгэх нь шаардлагагүй юм. SGML файлууд нь байнга нөөцлөгддөг.
Аль нөөцлөлтийн програм хамгийн шилдэг нь вэ?
LISA
&man.dump.8; Үе. Элизабет Д. Звики
энд дурдагдсан бүх нөөцлөлтийн програмуудыг зовоосон тест хийсэн. Өөрийн бүх өгөгдөл
болон &unix; файлын системүүдийн онцлогуудыг хадгалах цэвэр сонголт бол
dump болсон байна. Элизабет маш их төрөл бүрийн ховор
нөхцөлүүдийг (зарим нь тийм ч ховор биш) агуулсан файлын системүүдийг үүсгэж
тэдгээр файлын системүүдийг нөөцлөн дараа нь сэргээж програм бүрийг тест хийсэн
байна. Онцгой зүйлүүдэд цоорхойтой файлууд, хоосон блоктой болон цоорхойтой
файлууд, сонин тэмдэгт бүхий нэрээс тогтсон файлууд, бичигдэх боломжгүй уншигдах
боломжгүй файлууд, төхөөрөмжүүд, нөөцлөлтийн үед хэмжээгээ өөрчлөх файлууд,
нөөцлөлтийн үед үүсгэгдэж/устгагдсан файлууд зэргийг дурдаж болох юм.
Тэрээр үр дүнгээ 1991 оны 10 сард LISA дээр үзүүлсэн байна.
Нөөцлөлт
болон Архивын програмуудыг зовоох тест холбоосыг үзнэ үү.
Яаралтай сэргээх процедур
Гамшгийн өмнө
Учирч болзошгүй гамшигт бэлтгэхийн тулд таны хийх ёстой дөрвөн
үе шат байдаг.
bsdlabel
Эхлээд өөрийн диск бүрийн bsdlabel
(өөрөөр хэлбэл bsdlabel da0 | lpr), өөрийн
файлын системийн хүснэгт (/etc/fstab) болон
бүх ачаалалтын мэдэгдлүүдийг тус бүр хоёр хувь хэвлэх хэрэгтэй.
fix-it уян дискнүүд
Дараа нь ачаалах болон уян дискнүүд
(boot.flp болон fixit.flp)
таны бүх төхөөрөмжүүдийг агуулсан эсэхийг тодорхойлно. Хамгийн хялбараар
шалгах арга нь уян дискний хөтөчдөө ачаалах уян дискийг хийж дахин ачаалж ачаалалтын
мэдэгдлүүдийг шалгах явдал юм. Хэрэв таны бүх төхөөрөмжүүд байгаад ажиллаж
байвал гуравдугаар алхам уруу алгасаарай.
Эсрэг тохиолдолд та өөрийн бүх дискийг холбож таны соронзон хальсны хөтчид хандаж чадах
цөм бүхий тусгайлсан хоёр ачаалагдах уян диск бэлдэх хэрэгтэй. Эдгээр уян дискнүүд нь
fdisk, bsdlabel,
newfs, mount болон
таны ашигладаг програмуудыг агуулсан байх ёстой. Эдгээр програмууд нь
статикаар холбогдсон байх ёстой. Хэрэв та dump-г
ашигласан бол уян диск нь restore-г агуулсан байх
ёстой.
Гуравдугаарт нөөц соронзон хальснуудыг байнга үүсгэж байх хэрэгтэй. Таны сүүлийн нөөцлөлтөөс
хойш хийгдсэн өөрчлөлтүүд буцааж авагдах боломжгүйгээр алга болж болох юм. Нөөц
соронзон хальснууд уруу хийж болзошгүй бичилтийг хамгаалах хэрэгтэй.
Дөрөвдүгээрт уян дискнүүд (boot.flp болон
fixit.flp аль эсвэл хоёрдугаар үе дээр таны хийсэн
тусгайлсан хоёр ачаалагдах уян дискнүүд.) болон нөөц соронзон хальснуудыг тест хийнэ.
Процедурынхаа талаар тэмдэглэгээ хийх хэрэгтэй. Эдгээр тэмдэглэгээнүүдээ
ачаалагдах уян дискнүүд, хэвлэсэн зүйл болон нөөц соронзон хальснуудтайгаа цуг хадгалах
хэрэгтэй. Сэргээж байх үед таны анхаарал их сарнисан байж болох бөгөөд тэдгээр
тэмдэглэгээнүүд чинь таныг өөрийн нөөц соронзон хальснуудаа устгахаас сэргийлэх болно
(Яаж? tar xvf /dev/sa0 тушаалын оронд та
санамсаргүйгээр tar cvf /dev/sa0 гэж бичээд өөрийн
нөөц соронзон хальсыг дарж бичиж болох юм).
Аюулгүй байдлын нэмэгдэл арга хэмжээ болгож тухайг бүрт нь ачаалагдах уян
дискнүүд болон нөөц соронзон хальс хоёрыг бэлдэж байх хэрэгтэй. Тус бүрийг нь тусад нь алсад
өөр газар хадгалах хэрэгтэй. Тэр өөр газар нь яг тэр оффисийн байрны подвал байх
ЁСГҮЙ. Дэлхийн Худалдааны Төвийн хэд хэдэн фирм үүнийг хэцүү замаар мэдэрсэн
юм. Тэр өөр газар нь таны компьютерууд болон дискний хөтчүүдээс тусгаарлагдсан
физикийн хувьд нэлээд зайтай газар байх ёстой.
Ачаалагдах уян диск үүсгэх скрипт
/mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# create the devices nodes
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# create minimum file system table
#
cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <
Гамшгийн дараа
Түлхүүр асуулт бол: таны тоног төхөөрөмж амьд гарч чадсан уу? Байнгын
нөөцлөлт хийж байсан болохоор програм хангамжийн талаар та санаа зовох хэрэггүй
юм.
Хэрэв тоног төхөөрөмж эвдэрсэн бол компьютерийг ашиглахаасаа өмнө
эвдэрсэн хэсгүүдийг солих шаардлагатай.
Хэрэв таны тоног төхөөрөмж зүгээр байгаа бол уян дискнүүдээ шалгаарай.
Хэрэв та тусгайлан өөрчилсөн ачаалах уян диск ашиглаж байгаа бол ганц хэрэглэгчийн
горим уруу ачаалах хэрэгтэй (boot: хүлээх мөрөн дээр
-s гэж бичнэ). Дараагийн хэсгийг алгасаарай.
Хэрэв та boot.flp болон
fixit.flp уян дискнүүдийг ашиглаж байгаа бол
цааш нь уншаарай. boot.flp уян дискээ эхний уян дискний
хөтөчдөө хийгээд компьютераа ачаалах хэрэгтэй. Эхний суулгах цэс дэлгэц дээр гарах
болно. Fixit--Repair mode with CDROM or floppy.
тохируулгыг сонгоно. fixit.flp-г асуухад нь хийнэ.
Танд хэрэгтэй restore болон бусад програмууд
/mnt2/rescue санд байрлана
(5.2 хувилбараас хуучин &os;-ийн хувьд
/mnt2/stand).
Файлын систем бүрийг тус тусад нь сэргээнэ.
mount
root хуваалт
bsdlabel
newfs
Өөрийн эхний дискний root хуваалтыг mount (өөрөөр хэлбэл
mount /dev/da0a /mnt) хийхийг оролдоорой. Хэрэв bsdlabel
эвдэрсэн бол bsdlabel тушаалыг ашиглан дискийг дахин
хувааж таны хэвлэж хадгалсан шошготой адил тааруулж хаяглах хэрэгтэй.
newfs тушаал ашиглан файлын системүүдийг дахин үүсгэнэ.
Уян дискний root хуваалтыг унших-бичихээр дахин холбох хэрэгтэй (mount -u -o rw
/mnt). Энэ файлын системийн хувьд өгөгдлийг сэргээхийн тулд
өөрийн нөөцлөх програм болон соронзон хальснуудыг ашиглана (өөрөөр хэлбэл restore vrf
/dev/sa0). Файлын системийг салгана (өөрөөр хэлбэл umount
/mnt). Эвдэрсэн файлын систем бүрийн хувьд давтана.
Таны систем ажилласны дараа өөрийн өгөгдлийг шинэ соронзон хальс уруу нөөцлөх хэрэгтэй.
Сүйрэл эсвэл өгөгдлийн алдагдалд хүргэсэн тэр явдал дахин болж болох юм. Одоо зарцуулсан
нэг цаг таныг зовлонд учрахаас хожим аварч болох юм.
* I Did Not Prepare for the Disaster, What Now?
]]>
Марк
Фонвил
Дахин зохион байгуулж өргөжүүлсэн
Сүлжээ, санах ой болон файл дээр тулгуурласан файлын системүүд
виртуал дискнүүд
дискнүүд
виртуал
Өөрийн компьютер уруу физикээр хийж болдог уян диск, CD-үүд, хатуу хөтчүүд гэх зэрэг
дискнүүдээс гадна бусад хэлбэрийн дискнүүд буюу виртуал дискнүүдийг
FreeBSD ойлгодог.
NFS
Coda
дискнүүд
санах ой
Эдгээрт Network File System буюу сүлжээний файлын систем
болон Coda зэрэг сүлжээний файлын системүүд, санах ой дээр тулгуурласан файлын
системүүд болон файл дээр тулгуурласан файлын системүүд орно.
FreeBSD-ийн ямар хувилбарыг ажиллуулж байгаагаас хамаарч та
файл дээр болон санах ой дээр тулгуурласан файлын системүүдийг үүсгэж
ашиглахдаа өөр өөр хэрэгслүүдийг хэрэглэх шаардлагатай болно.
Хэрэглэгчийн хувьд мэдэгдэлгүйгээр төхөөрөмжийн цэгүүдийг хуваарилахын тулд
&man.devfs.5;-г ашиглана.
Файл дээр тулгуурласан файлын систем
дискнүүд
файл дээр тулгуурласан
&man.mdconfig.8; хэрэгсэл нь FreeBSD дээр санах ой дээр тулгуурласан
дискнүүд, &man.md.4;-г тохируулж идэвхжүүлэхэд хэрэглэгддэг.
&man.mdconfig.8;-г ашиглахын тулд та &man.md.4; модулийг ачаалах
хэрэгтэй, эсвэл өөрийн цөмийн тохиргооны файлдаа дэмжлэгийг нэмэх
хэрэгтэй болно:
device md
&man.mdconfig.8; тушаал нь гурван төрлийн санах ой дээр тулгуурласан
виртуал дискийг дэмждэг: эдгээр нь &man.malloc.9;-р хуваарилагдсан санах
ойн дискнүүд, файл эсвэл swap зай ашигласан санах ойн дискнүүд юм.
Нэг боломжтой хэрэглээ нь файлд хадгалагдсан уян эсвэл CD дүрсийг
холбох явдал юм.
Байгаа файлын системийн дүрсийг холбохдоо:
mdconfig ашиглан байгаа файлын системийн дүрсийг холбох нь
&prompt.root; mdconfig -a -t vnode -f diskimage -u 0
&prompt.root; mount /dev/md0 /mnt
&man.mdconfig.8; ашиглан шинэ файлын системийн дүрсийг үүсгэхдээ:
mdconfig тушаал ашиглан шинэ файл дээр тулгуурласан диск үүсгэх нь
&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdconfig -a -t vnode -f newimage -u 0
&prompt.root; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 0% /mnt
Хэрэв та тохируулгаар нэгжийн дугаарыг
зааж өгөхгүй юм бол &man.mdconfig.8; нь хэрэглэгдээгүй төхөөрөмжийг
сонгохын тулд &man.md.4; автомат хуваарилалтыг ашиглах болно.
Хуваарилагдсан нэгжийн нэр нь stdout уруу md4
мэтээр гарах болно. &man.mdconfig.8;-ийн тухай дэлгэрэнгүй
мэдээллийг гарын авлагын хуудаснаас лавлана уу.
&man.mdconfig.8; хэрэгсэл нь их ашигтай, гэхдээ энэ нь
файл дээр тулгуурласан файлын систем үүсгэхийн тулд олон тушаалын мөрийг
асуудаг. FreeBSD нь бас &man.mdmfs.8; гэж нэрлэгддэг хэрэгсэлтэй
ирдэг, энэ програм нь &man.md.4;-г &man.mdconfig.8; тушаал
ашиглан тохируулж &man.newfs.8; ашиглан UFS файлын систем түүн
дээр тавьж &man.mount.8; ашиглан түүнийг холбодог. Жишээ нь
хэрэв та дээрхтэй ижил файлын системийн дүрсийг үүсгэж холбохыг
хүсвэл ердөө л дараах тушаалыг бичээрэй:
mdmfs тушаал ашиглан файл дээр тулгуурласан дискийг тохируулж холбох нь
&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; mdmfs -F newimage -s 5m md0 /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0 4718 4 4338 0% /mnt
Хэрэв та тохируулгыг нэгжийн дугааргүй
ашиглавал &man.mdmfs.8; нь ашиглагдаагүй төхөөрөмжийг автоматаар
сонгохдоо &man.md.4; авто-нэгж боломжийг ашиглах болно.
&man.mdmfs.8;-ийн тухай дэлгэрэнгүй мэдээллийг гарын авлагын
хуудаснаас лавлана уу.
Санах ой дээр тулгуурласан файлын систем
дискнүүд
санах ойн файлын систем
Санах ой дээр тулгуурласан файлын системийн хувьд
swap backing буюу swap дээрх тулгуурлалтыг
ихэнхдээ ашиглах хэрэгтэй. swap дээрх тулгуурлалтыг ашиглах нь санах ойн
диск нь анхдагчаар диск уруу swap хийгдэнэ гэсэн үг биш бөгөөд харин ердөө л санах
ойн диск нь санах ойн цөөрмөөс хуваарилагдаж хэрэв хэрэгцээтэй бол диск уруу
swap хийгдэж болно гэсэн үг юм. Мөн &man.malloc.9; дээр тулгуурласан
санах ойн дискийг үүсгэх боломжтой байдаг. Гэхдээ malloc дээр тулгуурласан
санах ойн дискнүүдийг, ялангуяа том хэмжээтэйг нь ашиглах нь цөм санах ойгүй
болох тохиолдолд системийг сүйрэлд хүргэж болох юм.
mdconfig тушаал ашиглан шинэ санах ой
дээр тулгуурласан диск үүсгэх нь
&prompt.root; mdconfig -a -t swap -s 5m -u 1
&prompt.root; newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1 /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mnt
mdmfs тушаал ашиглан шинэ санах ой
дээр тулгуурласан диск үүсгэх нь
&prompt.root; mdmfs -s 5m md2 /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mnt
Системээс санах ойн дискийг салгах нь
дискнүүд
санах ойн дискийг салгах нь
Санах ой дээр тулгуурласан эсвэл файл дээр тулгуурласан файлын систем
ашиглагдахгүй байгаа бол та бүх эх үүсвэрүүдийг системд суллаж өгөх
шаардлагатай. Эхний хийх ёстой зүйл нь файлын системийг салгаад дараа нь
&man.mdconfig.8; ашиглан дискийг системээс салгаж эх үүсвэрүүдийг
суллана.
Жишээ нь /dev/md4-г салгаж түүний хэрэглэсэн
бүх эх үүсвэрүүдийг чөлөөлөхийн тулд дараах тушаалыг ажиллуулна:
&prompt.root; mdconfig -d -u 4
Тохиргоо хийгдсэн &man.md.4; төхөөрөмжүүдийн тухай мэдээллийг
mdconfig -l тушаал ашиглан жагсааж болно.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Файлын системийн хормын хувилбарууд
файлын системүүд
хормын хувилбарууд
FreeBSD нь Soft Updates
буюу зөөлөн шинэчлэлтүүдийн хамт Файлын системийн хормын хувилбарууд
боломжийг санал болгодог.
Хормын хувилбарууд нь заасан файлын системүүдийн дүрсийг үүсгэж
тэдгээртэй файлтай ханддаг шиг хандах боломжийг хэрэглэгчид зөвшөөрдөг.
Хормын хувилбарын файлууд нь үйлдэл хийгдсэн файлын систем дээр
үүсгэгдэх ёстой бөгөөд нэг файлын системийн хувьд 20-с ихгүй хормын
хувилбаруудыг хэрэглэгч үүсгэж болно. Идэвхтэй хормын хувилбарууд нь
супер блокт бичигддэг бөгөөд ингэснээр тэдгээр нь системийн дахин ачаалалтуудын
үед салгах болон дахин холбох явцад тэсвэртэй байдаг. Хормын хувилбар нь
хэрэггүй болсон үед энэ нь стандарт &man.rm.1; тушаалаар устгагдаж
болно. Хормын хувилбарууд нь ямар ч дарааллаар устгагдаж болох
бөгөөд гэхдээ ашиглагдсан бүх зайг дахин олж авахгүй байж болох юм.
Учир нь өөр нэг хормын хувилбар чөлөөлөгдсөн блокуудын заримыг
шаардаж болзошгүй юм.
Өөрчлөгдөхгүй файл тохируулга нь
хормын хувилбарыг эхлээд үүсгэсний дараа &man.mksnap.ffs.8; тушаалаар
заагддаг. &man.unlink.1; тушаал нь хормын хувилбарын файлуудын хувьд
орхидог бөгөөд учир нь энэ нь тэдгээрийг устгахыг зөвшөөрдөг байна.
Хормын хувилбарууд нь &man.mount.8; тушаалаар үүсгэгддэг.
/var-ийн хормын хувилбарыг
/var/snapshot/snap файлд байрлуулахын тулд
дараах тушаалыг ашиглана:
&prompt.root; mount -u -o snapshot /var/snapshot/snap /var
Өөрөөр та хормын хувилбар үүсгэхийн тулд &man.mksnap.ffs.8;-г
ашиглаж болно:
&prompt.root; mksnap_ffs /var /var/snapshot/snap
Файлын систем (өөрөөр хэлбэл /var) дээр хормын хувилбарын
файлуудыг &man.find.1; тушаал ашиглан олж болно:
&prompt.root; find /var -flags snapshot
Хормын хувилбар үүсгэгдсэний дараа энэ нь хэд хэдэн хэрэглээтэй
байдаг:
Зарим администраторууд хормын хувилбарын файлыг нөөцийн зорилгоор
ашигладаг, учир нь хормын хувилбар нь CD-үүд эсвэл соронзон хальс уруу
дамжуулагдаж болдог.
Файлын системийн бүрэн бүтэн байдлыг шалгадаг &man.fsck.8; нь
хормын хувилбар дээр ажиллаж болдог. Файлын систем нь холбогдсон
үедээ цэвэр байсан гэж үзвэл та үргэлж цэвэр (өөрчлөгдөөгүй)
үр дүнг авах болно. Үүнийг гол нь арын &man.fsck.8;
процесс хийдэг.
&man.dump.8; хэрэгслийг хормын хувилбар дээр ажиллуулдаг.
Хормын хувилбарын файлын систем болон цагтай нэг янз хуулбар
хийгддэг. &man.dump.8; нь бас хормын хувилбарыг авч
нөөц дүрсийг үүсгэж чаддаг бөгөөд дараа нь хормын хувилбарыг
нэг тушаалаар тугийг ашиглан устгаж
чаддаг.
Хормын хувилбарыг файлын системийн хөлдөөгдсөн дүрс маягаар
&man.mount.8; хийдэг. /var/snapshot/snap
хормын хувилбарыг &man.mount.8; хийхийн тулд доор дурдсаныг
ажиллуулна:
&prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4
&prompt.root; mount -r /dev/md4 /mnt
Та одоо /mnt-д холбогдсон өөрийн хөлдөөгдсөн
/var файлын системийн шатлалаар аялж болно.
Хормын хувилбар үүсгэх үе дэх төлвийн адил төлөвт бүгд эхлээд байна.
Цорын ганц өөр зүйл нь өмнөх хормын хувилбарууд нь тэг урттай файлууд
маягаар гарч ирэх болно. Хормын хувилбарын хэрэглээг хязгаарлах
үед үүнийг дараах тушаалыг ажиллуулан салгаж болно:
&prompt.root; umount /mnt
&prompt.root; mdconfig -d -u 4
буюу зөөлөн шинэчлэлтүүд болон
файлын системийн хормын хувилбаруудын талаар дэлгэрэнгүй мэдээллийг
техникийн баримтуудыг оролцуулаад та Маршал Кирк МкКюзикийн вэб хуудас
уруу зочлон орж үзэж болно.
Файлын системийн ноогдлууд
бүртгэл хийх
дискний зай
дискний ноогдлууд
Quota буюу ноогдол нь хэрэглэгч эсвэл бүлгийн гишүүдийн хувьд дискний зай ба/эсвэл
файлуудын тоог файлын систем тус бүрийн хувьд хуваарилж хязгаарлах боломжийг
бүрдүүлэх үйлдлийн системийн нэг нэмэлт боломж юм. Энэ нь дурын нэг хэрэглэгч
эсвэл бүлэг хэрэглэгчдийн хуваарилж болох эх үүсвэрүүдийг хязгаарлах шаардлагатай
цаг хуваалцах систем дээр ихэвчлэн хэрэглэгддэг. Энэ нь нэг хэрэглэгч эсвэл
бүлэг хэрэглэгчид бүх байгаа дискний зайг хэрэглэхээс хамгаалдаг юм.
Дискний ноогдлуудыг идэвхтэй болгохын тулд өөрийн системийг тохируулах нь
Дискний ноогдлыг ашиглаж эхлэхээсээ өмнө ноогдлууд нь цөмд тохируулагдсан
эсэхийг шалгах шаардлагатай. Дараах мөрийг өөрийн цөмийн тохиргооны файлд
нэмж үүнийг хийнэ:
options QUOTA
Анхны GENERIC цөм нь үүнийг анхнаасаа идэвхжүүлээгүй
байдаг болохоор та дискний ноогдлуудыг ашиглахын тулд тусгайлсан цөмийг тохируулж бүтээн
суулгах хэрэгтэй болох юм. Цөмийн тохиргооны талаар дэлгэрэнгүй мэдээллийг
-с лавлана уу.
Дараа нь та дискний ноогдлуудыг /etc/rc.conf файлд
идэвхжүүлэх хэрэгтэй. Дараах мөрийг нэмж үүнийг хийнэ:
enable_quotas="YES"
дискний ноогдлууд
шалгах нь
Өөрийн ноогдлын эхлүүлэлтэд сайн хяналт тавихад хэрэгтэй нэмэлт тохиргооны
хувьсагчууд байдаг. Ердийн үед ачаалалтын үеэр файлын систем бүрийн ноогдлын
бүрэн бүтэн байдал &man.quotacheck.8; програмаар шалгагддаг.
&man.quotacheck.8; боломж нь ноогдлын мэдээллийн бааз дахь өгөгдөл
файлын систем дээрх өгөгдлийг зөв тусгаж байгаа эсэхийг шалгаж байдаг.
Энэ нь хугацаа их шаардсан процесс бөгөөд таны систем ачаалах хугацаанд мэдэгдэхүйц
нөлөөлдөг. Хэрэв та энэ алхмыг алгасахыг хүсвэл энэ зорилгоор хувьсагчийг
/etc/rc.conf файлд тохируулах хэрэгтэй:
check_quotas="NO"
Төгсгөлд нь та файлын систем бүрийн хувьд дискний ноогдлуудыг идэвхжүүлэхийн
тулд /etc/fstab файлыг засварлах хэрэгтэй.
Энд та хэрэглэгч эсвэл бүлгийн ноогдлууд эсвэп хоёуланг нь өөрийн бүх файлын системийн
хувьд идэвхжүүлэх боломжтой юм.
Файлын систем дээр хэрэглэгч бүрийн хувьд ноогдлуудыг идэвхжүүлэхийн тулд
өөрийн ноогдлууд идэвхжүүлэхийг хүсэж байгаа файлын системийн хувьд
/etc/fstab файлын харгалзах оруулгын options буюу
тохируулгыг заах талбарт тохируулгыг нэмж
өгөх хэрэгтэй. Жишээ нь:
/dev/da1s2g /home ufs rw,userquota 1 2
Үүнтэй төстэйгээр бүлгийн ноогдлуудыг идэвхжүүлэхийн тулд
тохируулгын оронд
тохируулгыг ашиглах хэрэгтэй. Хэрэглэгч болон бүлгийн ноогдлуудыг хоёуланг нь
идэвхжүүлэхийн тулд оруулгыг ингэж өөрчилнө:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
Анхдагчаар ноогдлын файлууд файлын системийн root санд
хэрэглэгчийн ноогдлын хувьд quota.user, бүлгийн
ноогдлын хувьд quota.group нэрээр хадгалагддаг.
Дэлгэрэнгүй мэдээллийг &man.fstab.5;-с үзнэ үү. &man.fstab.5;
гарын авлагын хуудас ноогдлын файлуудын хувьд өөр байрлалыг зааж өгч болохыг
хэлдэг боловч ноогдлын төрөл бүрийн хэрэгслүүд үүнтэй зөв ажиллаж чаддаггүй
болохоор ингэхийг зөвлөдөггүй юм.
Энэ үед хүрээд та өөрийн системийг шинэ цөмтэй дахин ачаалах хэрэгтэй.
/etc/rc нь таны /etc/fstab
файлд идэвхжүүлсэн бүх ноогдлуудын хувьд эхний ноогдлын файлуудыг үүсгэдэг
тохирох тушаалуудыг автоматаар ажиллуулах бөгөөд ингэснээр ямар ч тэг урттай ноогдлын
файлуудыг гараар үүсгэх шаардлагагүй юм.
Ердийн үйлдлүүдийн үед &man.quotacheck.8;, &man.quotaon.8;, эсвэл
&man.quotaoff.8; тушаалуудыг та заавал ажиллуулах ёсгүй юм. Гэхдээ
тэдгээрийн хийдэг үйлдлүүдтэй танилцахын тулд тэдгээрийн гарын авлагын хуудаснуудыг
уншихыг хүсэж болох юм.
Ноогдлын хязгаарлалтуудыг тохируулах нь
дискний ноогдлууд
хязгаарлалтууд
Та ноогдлыг идэвхжүүлж өөрийн системийг тохируулсны дараа тэдгээр нь
яг жинхэнэдээ идэвхтэй болсон эсэхийг шалгаарай. Үүнийг хийх хялбар арга нь
дараах тушаалыг ажиллуулах явдал юм:
&prompt.root; quota -v
Та ноогдлууд идэвхжүүлэгдсэн файлын систем бүрийн хувьд дискний хэрэглээ
болон тухайн үеийн ноогдлын хязгаарлалтуудын ерөнхий нэг мөр үр дүнг харах
ёстой.
Та одоо &man.edquota.8; тушаал ашиглан ноогдлын хязгаарлалтуудыг
зааж өгч эхлэхэд бэлэн боллоо.
Хэрэглэгч эсвэл бүлгийн хуваарилж болох дискний зай болон тэд хичнээн файл
үүсгэж болох хэмжээний хязгаарлалтуудыг хүчлэн зааж өгч болох хэд хэдэн сонголт танд
байдаг. Та хуваарилалтыг дискний зай (блок ноогдлууд) эсвэл файлын тоо (inode ноогдлууд)
эсвэл хоёулангийн хослолоор хязгаарлан өгч болно. Эдгээр хязгаарлалт бүр дараа нь
хоёр зэрэглэлт хуваагддаг: энэ нь хатуу ба зөөлөн хязгаарлалтууд юм.
хатуу хязгаарлалт
Хатуу хязгаарлалтаас илүү гарч болохгүй. Хэрэглэгч өөрийн хатуу хязгаарлалтад
хүрэхэд асуудалтай байгаа файлын систем дээр хэрэглэгч ямар ч хуваарилалт хийж
чадахгүй болно. Жишээ нь хэрэв хэрэглэгч файлын систем дээр 500 кбайт хатуу
хязгаарлалттай бөгөөд 490 кбайтыг одоогоор ашиглаж байгаа бол хэрэглэгч
зөвхөн 10 кбайтыг нэмж хуваарилж чадна. 11 кбайт нэмж хуваарилахыг оролдох нь
амжилтгүй болох болно.
зөөлөн хязгаарлалт
Нөгөө талаас зөөлөн хязгаарлалтууд нь тодорхой хугацааны туршид илүү гарч
болно. Энэ хугацааг энэрэнгүй хугацаа гэдэг бөгөөд анхдагчаар нэг долоо хоног
байдаг. Хэрэв хэрэглэгч өөрийн зөөлөн хязгаарлалтаас илүү гарсан хэвээр
энэрэнгүй хугацааг өнгөрөх юм бол зөөлөн хязгаарлалт нь хатуу хязгаарлалт болж
дахин хуваарилалтыг зөвшөөрдөггүй. Хэрэглэгч зөөлөн хязгаарлалтаас доош
орвол энэрэнгүй хугацаа дахин тавигдах болно.
Дараах нь &man.edquota.8; тушаалыг ажиллуулах үед таны харж болох
гаралтын жишээ юм. &man.edquota.8; тушаалыг ажиллуулахад
EDITOR орчны хувьсагчид заагдсан засварлагч уруу
эсвэл EDITOR хувьсагч заагдаагүй бол
vi засварлагч уруу таныг оруулах бөгөөд энэ нь
ноогдлын хязгаарлалтуудыг засварлах боломжийг танд олгоно.
&prompt.root; edquota -u test
Quotas for user test:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)
Та ноогдлууд идэвхжүүлэгдсэн файлын систем бүрийн хувьд хоёр мөрийг ердийн үед
харах болно. Нэг мөр нь блокийн хязгаарлалтад, нөгөө мөр нь inode хязгаарлалтад
зориулагддаг. Ноогдлын хязгаарлалтуудыг өөрчлөхийн тулд та ердөө л утгыг шинэчлэхийг хүсэж
байгаа утгаараа солих хэрэгтэй. Жишээ нь энэ хэрэглэгчийн блок хязгаарлалтыг
зөөлөн хязгаарлалт 50, хатуу хязгаарлалт 75 байсныг зөөлөн хязгаарлалт 500 болон
хатуу хязгаарлалт 600 болгон өсгөхийн тулд дараах:
/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
мөрийг доорх шиг болгож өөрчлөх хэрэгтэй:
/usr: kbytes in use: 65, limits (soft = 500, hard = 600)
Таныг засварлагчаас гарсны дараа шинэ ноогдлын хязгаарлалтууд
байрандаа орох болно.
Заримдаа ноогдлын хязгаарлалтуудыг зарим UID-ийн хүрээний хувьд
зааж өгөх шаардлага гардаг. Үүнийг &man.edquota.8; тушаалд
тохируулгыг ашиглан хийдэг. Эхлээд хэрэглэгчид
хүссэн ноогдлын хязгаарлалтаа зааж өгөөд дараа нь
edquota -p protouser startuid-enduid
тушаалыг ажиллуулна. Жишээ нь хэрэв хэрэглэгч test
хүссэн ноогдлын хязгаарлалттай байгаа бол энэ ноогдлын хязгаарлалтыг
10,000-с 19,999 хүртэлх UID-уудад хувилж хамааруулахын тулд дараах тушаалыг
ажиллуулна:
&prompt.root; edquota -p test 10000-19999
Дэлгэрэнгүй мэдээллийг &man.edquota.8; гарын авлагын хуудаснаас үзнэ үү.
Ноогдлын хязгаарлалтууд болон дискний хэрэглээг шалгах нь
дискний ноогдлууд
шалгах нь
Ноогдлын хязгаарлалтууд болон дискний хэрэглээг шалгахын тулд
та &man.quota.1; эсвэл &man.repquota.8; тушаалын нэгийг
ашиглаж болно. &man.quota.1; тушаалыг хэрэглэгч эсвэл бүлгийн
ноогдлууд болон дискний зайг шалгахад хэрэглэж болно. Хэрэглэгч нь
зөвхөн өөрийн ноогдол болон өөрийн гишүүн бүлгийн ноогдлыг шалгаж
чадна. Зөвхөн супер хэрэглэгч бүх хэрэглэгч болон бүлгийн ноогдлуудыг
харж болно. &man.repquota.8; тушаалыг ноогдлууд идэвхжүүлэгдсэн
файлын системүүдийн хувьд бүх ноогдлууд болон дискний хэрэглээний
ерөнхий дүнг авахад хэрэглэж болно.
Дараах нь хоёр файлын систем дээр ноогдлын хязгаарлалттай хэрэглэгчийн
хувьд quota -v тушаалын жишээ гаралт
юм.
Disk quotas for user test (uid 1002):
Filesystem usage quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
энэрэнгүй хугацаа
Дээрх жишээний /usr файлын систем дээр
хэрэглэгч 50 кбайтын зөөлөн хязгаарлалтыг 15 кбайтаар илүүдүүлсэн
байгаа бөгөөд 5 хоногийн энэрэнгүй хугацаа үлдсэн байна. Од
* тэмдэгт нь хэрэглэгч өөрийн ноогдлын хязгаарлалтаас
илүү гарсныг харуулж байна.
Ердийн үед хэрэглэгч ямар ч дискний зай ашиглаагүй байгаа тийм файлын системүүд,
файлын системийн хувьд ноогдлын хязгаарлалт байсан ч гэсэн &man.quota.1; тушаалын
гаралтад харагддаггүй байна. тохируулга нь тэдгээр
файлын системүүдийг харуулах бөгөөд дээрх жишээн дээр
/usr/var файлын системийг харуулж
байна.
NFS дээгүүрх ноогдлууд
NFS
Ноогдлууд нь NFS сервер дээр ноогдлын дэд системээр хянагддаг.
&man.rpc.rquotad.8; демон нь NFS клиентүүд дээр өөрсдийн ноогдлын
статистикуудыг хэрэглэгчдэд үзэх боломжийг олгож ноогдлын мэдээллийг тэдгээр
машинууд дээр &man.quota.1; тушаалд бэлэн болгож өгдөг.
rpc.rquotad-г
/etc/inetd.conf файлд ингэж идэвхжүүлнэ:
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
Одоо inetd-г дахин ачаал:
&prompt.root; kill -HUP `cat /var/run/inetd.pid`
Лаки
Грийн
Хувь нэмэр болгон оруулсан
shamrock@cypherpunks.to
Дискний хуваалтуудыг шифрлэх нь
дискнүүд
шифрлэх нь
FreeBSD нь өгөгдөлд зөвшөөрөгдөөгүй хандах хандалтын эсрэг
маш сайн шууд хамгаалалтуудыг санал болгодог. Файлын зөвшөөрлүүд болон
Mandatory Access Control (MAC) буюу Албадмал Хандалт Хяналт
(-г үзнэ үү) нь компьютер ассан, үйлдлийн систем
идэвхтэй байх үед зөвшөөрөлгүй гуравдагч нөхдүүдийг өгөгдөлд хандахаас
хамгаалахад тусалдаг. Гэхдээ хэрэв халдагч компьютерт физик хандалт олж аван
компьютерийн хатуу хөтчийг өөр систем уруу зөөн эмзэг өгөгдлийг хуулж шинжилгээ хийж чадах
бол үйлдлийн системийн мөрдүүлдэг зөвшөөрлүүд нь хамааралгүй болох юм.
Халдагч хэрхэн хатуу диск эсвэл унтраасан компьютерийг эзэмшсэнээс үл хамаарч
&os; дээрх GEOM Based Disk Encryption (gbde)
буюу GEOM дээр тулгуурласан дискний шифрлэлт болон geli
криптограф дэд системүүд нь компьютерийн файлын системүүд дээрх өгөгдлийг
бүр чухал эх үүсвэрүүд бүхий, зорилгодоо хүрэхээр ихээхэн чармайсан халдагчдаас
хамгаалж чадах юм. Зөвхөн тухайн файл бүрийг шифрлэдэг ярвигтай шифрлэлтийн
аргуудаас ялгаатай нь gbde болон geli
нь бүх файлын системүүдийг харагдаж мэдэгдэхгүйгээр шифрлэдэг. Хатуу дискний
хавтгайд цэвэр текст хэзээ ч бичигддэггүй.
gbde-ээр диск шифрлэх
root болно
gbde-г тохируулахад супер хэрэглэгчийн
эрхүүдийг шаарддаг.
&prompt.user; su -
Password:
Цөмийн тохиргооны файлдаа &man.gbde.4; дэмжлэгийг нэмнэ
Дараах мөрийг цөмийн тохиргооны файлдаа нэмнэ:
options GEOM_BDE
Цөмөө -д тайлбарласны дагуу дахин бүтээнэ.
Шинэ цөм уруугаа дахин ачаална.
Цөмийг дахин бүтээхээс өөр нэг арга нь kldload
ашиглаж &man.gbde.4;-г ачаалах явдал юм:
&prompt.root; kldload geom_bde
Одоогоор цөмийн модулийг ачаалах явцад дуудах тохируулга
/boot/loader.conf файлд байхгүй байгаа.
Шифрлэгдсэн хатуу хөтчүүдийг бэлдэх нь
Дараах жишээ нь таныг өөрийн систем уруу шинэ хатуу хөтөч нэмж
ганц шифрлэгдсэн хуваалтыг агуулна гэж тооцдог. Энэ хуваалт нь
/private гэж холбогдох болно.
gbde нь
/home болон /var/mail-г
бас шифрлэхэд ашиглагддаг боловч энэ нь энэ танилцуулгын хүрээнээс хальж
илүү төвөгтэй заавруудыг шаарддаг.
Шинэ хатуу хөтчийг нэмнэ
Шинэ хөтчийг систем уруу -д тайлбарласны дагуу нэмнэ. Энэ жишээн
дээр шинэ хатуу хөтчийн хуваалт /dev/ad4s1c
гэж нэмэгдсэн байгаа. /dev/ad0s1*
төхөөрөмжүүд нь жишээ систем дээр байгаа стандарт FreeBSD хуваалтуудыг
харуулж байна.
&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4
gbde цоож файлуудыг агуулах санг үүсгэнэ
&prompt.root; mkdir /etc/gbde
gbde цоож файл нь шифрлэгдсэн хуваалтуудад
хандахад gbde-д шаардагдах мэдээллийг
агуулдаг. Цоож файлд хандах боломжгүй бол gbde
нь шифрлэгдсэн хуваалтын агуулсан өгөгдлийг хөндлөнгийн их хүч шаардсан оролцоогүйгээр
буцааж тайлж чадахгүй юм. Үүнийг програм хангамж дэмждэггүй.
Шифрлэгдсэн хуваалт бүр тусдаа цоож файл ашигладаг.
gbde хуваалтыг эхлүүлнэ
gbde хуваалт ашиглагдаж эхлэхээсээ өмнө
эхэлж тохируулагдсан байх шаардлагатай. Энэ эхний тохируулга нь зөвхөн нэг
удаа хийгдэх ёстой:
&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c
&man.gbde.8; нь загварт төрөл бүрийн тохиргооны сонголтуудыг зааж
өгөх боломжийг танд өгч таны засварлагчийг онгойлгох болно. UFS1
эсвэл UFS2-той ашиглахын тулд sector_size-г 2048 гэж заана:
$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]
&man.gbde.8; нь өгөгдлийг аюулгүй болгоход хэрэглэгдэх ёстой нэвтрэх
үгийг хоёр удаа бичихийг танаас хүснэ. Нэвтрэх үг нь хоёуланд нь адил
байх ёстой. gbde-ийн таны өгөгдлийг
хамгаалах чадвар таны сонгосон нэвтрэх үгийн чанараас бүхэлдээ
хамаарна.
Амархан тогтоож болох аюулгүй нэвтрэх үгийг хэрхэн сонгох талаар
зөвлөгөөнүүдийг Diceware
Passphrase вэб хуудаснаас үзнэ үү.
gbde init тушаал нь таны
gbde хуваалтад зориулж цоож файлыг
үүсгэх бөгөөд энэ жишээн дээр /etc/gbde/ad4s1c
гэж хадгалагдсан байна.
gbde цоож файлууд нь шифрлэгдсэн
хуваалтуудын агуулгатай цуг нөөцлөгдөх ёстой.
Зөвхөн цоож файлыг устгах нь шийдсэн халдагч
gbde хуваалтыг буцааж тайлахаас
хамгаалж чаддаггүй бөгөөд цоож файлгүйгээр хууль ёсны эзэмшигч
нь шифрлэгдсэн хуваалт дээрх өгөгдөлд &man.gbde.8; болон түүнийг зохиогчийн
ерөөсөө дэмждэггүй, их хүч шаардсан ажиллагаагүйгээр хандаж чадахгүй болох
юм.
Шифрлэгдсэн хуваалтыг цөмд залгана
&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c
Шифрлэгдсэн хуваалтыг эхэлж тохируулж байх үед таны сонгосон нэвтрэх
үгийг оруулахыг танаас асуух болно. Шинэ шифрлэгдсэн төхөөрөмж
/dev дотор
/dev/device_name.bde гэж гарч
ирнэ:
&prompt.root; ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde
Шифрлэгдсэн төхөөрөмж дээр файлын систем үүсгэнэ
Шифрлэгдсэн төхөөрөмж цөмд залгагдсаны дараа та энэ төхөөрөмж дээр
файлын систем үүсгэж болно. Шифрлэгдсэн төхөөрөмж дээр файлын
систем үүсгэхийн тулд &man.newfs.8;-г ашиглана. Хуучин UFS1
файлын системийг эхлүүлснээс шинэ UFS2 файлын системийг эхлүүлэх нь
хамаагүй хурдан учраас &man.newfs.8;-г
тохируулгатай хэрэглэхийг зөвлөдөг.
&prompt.root; newfs -U -O2 /dev/ad4s1c.bde
&man.newfs.8; тушаал нь төхөөрөмжийн нэрэндээ
*.bde гэж
өргөтгөлөөр танигдах залгагдсан gbde
хуваалт дээр хийгдэх ёстой.
Шифрлэгдсэн хуваалтыг холбоно
Шифрлэгдсэн файлын системд зориулж холбох цэгийг үүсгэнэ.
&prompt.root; mkdir /private
Шифрлэгдсэн файлын системийг холбоно.
&prompt.root; mount /dev/ad4s1c.bde /private
Шифрлэгдсэн файлын систем байгаа эсэхийг шалгана
Шифрлэгдсэн файлын систем одоо &man.df.1;-д харагдаж
ашиглахад бэлэн болох ёстой.
&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /private
Байгаа шифрлэгдсэн файлын системүүдийг холбох нь
Ачаалалт бүрийн дараа ямар ч шифрлэгдсэн файлын системүүдийг
ашиглаж эхлэхээсээ өмнө цөмд дахин залгаж, алдааг нь шалгаж холбож болно.
Шаардлагатай тушаалуудыг root хэрэглэгч
ажиллуулах ёстой гэж үздэг.
gbde хуваалтыг цөмд залгана
&prompt.root; gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c
Шифрлэгдсэн gbde хуваалтыг
эхэлж тохируулж байх үед таны сонгосон нэвтрэх үгийг оруулахыг
танаас асуух болно.
Файлын систем дээр алдааг шалгана
Шифрлэгдсэн файлын системүүд нь автоматаар холбогдохын тулд
/etc/fstab файлд одоохондоо
жагсаагдах боломжгүй учир файлын системүүд дээр алдаа байгаа эсэхийг
шалгаж тэдгээрийг холбохоос өмнө &man.fsck.8;-г гараар ажиллуулах ёстой.
&prompt.root; fsck -p -t ffs /dev/ad4s1c.bde
Шифрлэгдсэн файлын системийг холбоно
&prompt.root; mount /dev/ad4s1c.bde /private
Шифрлэгдсэн файлын систем одоо ашиглахад бэлэн боллоо.
Шифрлэгдсэн хуваалтуудыг автоматаар холбох нь
Шифрлэгдсэн хуваалтыг автоматаар залган шалгаж холбох скриптийг үүсгэж
болох боловч аюулгүй байдлын шалтгаанаас болоод скрипт нь
&man.gbde.8; нууц үгийг агуулсан байх ёсгүй. Харин эдгээр
скриптүүдийг гараар ажиллуулж нууц үгийг консол эсвэл &man.ssh.1;-ээр
оруулахыг зөвлөдөг.
Өөр нэг арга нь rc.d скрипт байдаг. Энэ
скриптийн нэмэлт өгөгдлүүдийг &man.rc.conf.5;-оор дамжуулж болно,
жишээ нь:
gbde_autoattach_all="YES"
gbde_devices="ad4s1c"
Энэ нь gbde нэвтрэх үгийг ачаалах
үед оруулахыг шаарддаг. Зөв нэвтрэх үгийг бичсэний дараа
gbde шифрлэгдсэн хуваалт автоматаар
холбогдох болно. Энэ нь gbde-г
зөөврийн компьютер дээр хэрэглэж байгаа үед их ашигтай байдаг.
gbde-ийн ажиллуулдаг криптограф хамгаалалтууд
&man.gbde.8; нь 128-bit AES-ийг CBC горимд ашиглан сектор ачааг
шифрлэдэг. Диск дээрх сектор бүр өөр өөр AES түлхүүрээр шифрлэгддэг.
Секторын түлхүүрүүд хэрэглэгчийн оруулсан нэвтрэх үгээс хэрхэн гаргагддаг зэрэг
gbde-ийн криптограф дизайны талаар
дэлгэрэнгүйг &man.gbde.4;-ээс үзнэ үү.
Нийцтэй байдлын асуудлууд
&man.sysinstall.8; нь gbde-шифрлэгдсэн
төхөөрөмжүүдтэй нийцгүй байдаг. Бүх
*.bde төхөөрөмжүүдийг
&man.sysinstall.8; эхлүүлэхээс өмнө цөмөөс салгасан байх ёстой бөгөөд
ингэхгүй бол энэ нь төхөөрөмжүүдийг шалгаж эхлэхдээ сүйрэх болно. Бидний жишээн
дээр ашиглагдсан шифрлэгдсэн төхөөрөмжийг салгахдаа дараах тушаалыг
ашиглана:
&prompt.root; gbde detach /dev/ad4s1c
Мөн &man.vinum.4; нь &man.geom.4; дэд системийг
ашигладаггүйг анхаараарай, та gbde-г
vinum эзлэхүүнүүдтэй ашиглаж
болохгүй.
Даниэл
Гэрзо
Хувь нэмэр болгон оруулсан
geli-ээр диск шифрлэх нь
Шинэ криптограф GEOM ангилал &os; 6.0-с эхлэн
geli гэж орж иржээ. Үүнийг одоогоор
&a.pjd; хөгжүүлж байгаа болно. Geli нь
gbde-ээс өөр бөгөөд энэ нь өөр боломжуудыг
санал болгож криптограф үйлдэлдээ өөр схемийг ашигладаг.
&man.geli.8;-ийн хамгийн чухал боломжууд бол:
&man.crypto.9; тогтолцоог ашигладаг —
криптограф тоног төхөөрөмж бэлэн болоход geli
түүнийг автоматаар ашигладаг.
Олон криптограф алгоритмуудыг дэмждэг (одоогоор AES, Blowfish,
болон 3DES).
root хуваалтыг шифрлэх боломжийг олгодог. Шифрлэгдсэн root
хуваалтад хандахад хэрэглэгддэг нэвтрэх үгийг систем ачаалахад
асуудаг.
Бие биеэндээ хамааралгүй хоёр түлхүүрүүдийг ашиглахыг
зөвшөөрдөг (өөрөөр хэлбэл key
болон
company key
).
geli нь хурдан байдаг. Энгийн сектороос сектор уруу
шифрлэлтийг хийдэг.
Мастер түлхүүрүүдийг нөөцлөх ба сэргээхийг зөвшөөрдөг. Хэрэглэгч
өөрийн түлхүүрүүдийг устгах хэрэгтэй болоход нөөцөөс түлхүүрүүдийг
сэргээж өгөгдөлд дахин хандах боломжтой болох юм.
Дискийг санамсаргүй, нэг удаагийн түлхүүрээр залгахыг
зөвшөөрдөг — энэ нь swap хуваалтууд болон түр зуурын
файлын системүүдэд ашигтай байдаг.
geli-ийн илүү боломжуудыг &man.geli.8;-ийн
гарын авлагын хуудаснаас олж болно.
Дараагийн алхмууд нь geli-ийн дэмжлэгийг &os; цөмд
хэрхэн идэвхжүүлэхийг тайлбарлах бөгөөд шинэ geli
шифрлэлт үзүүлэгчийг хэрхэн үүсгэх талаар өгүүлэх болно. Төгсгөлд нь
geli-ийн санал болгодог боломжуудыг ашиглан swap хуваалтыг
хэрхэн үүсгэхийг харуулах болно.
geli-г ашиглахын тулд та &os; 6.0-RELEASE болон
түүнээс дээшхи хувилбарыг хэрэглэж байх ёстой. Цөмд өөрчлөлтүүд шаардлагатай учраас
супер хэрэглэгчийн эрхүүд хэрэгтэй болно.
Цөмийн тохиргооны файлд geli дэмжлэгийг
нэмэх нь
Дараах мөрийг цөмийн тохиргооны файлд нэмнэ:
options GEOM_ELI
device crypto
Цөмөө -д тайлбарласны дагуу дахин бүтээнэ.
Мөн geli модулийг ачаалах үед дуудаж болно.
Дараах мөрийг /boot/loader.conf файлд
нэмнэ:
geom_eli_load="YES"
&man.geli.8; нь одоо цөмд дэмжигдсэн байх ёстой.
Мастер түлхүүр үүсгэх нь
Дараах жишээ нь түлхүүр файлыг хэрхэн үүсгэх талаар тайлбарлах бөгөөд
энэ нь /private доор
холбогдсон шифрлэгдсэн үзүүлэгчийн Мастер түлхүүрийн хэсэг болон
ашиглагдах болно. Түлхүүр файл нь Мастер түлхүүрийг шифрлэхэд
хэрэглэгдэх зарим санамсаргүй өгөгдлийг өгөх болно. Мастер түлхүүр нь
нэвтрэх үгээр бас хамгаалагдах болно. Үзүүлэгчийн секторын хэмжээ
4kB том байх болно. Мөн энэ хэлэлцүүлэг нь geli
үзүүлэгчийг хэрхэн залгаж түүн дээр файлын систем үүсгэх, хэрхэн түүнийг
холбож ажиллах болон төгсгөлд нь хэрхэн салгах талаар тайлбарлах
болно.
Илүү сайн ажиллагааг хангахын тулд секторын том хэмжээг (4kB ч юм уу)
ашиглахыг зөвлөдөг.
Мастер түлхүүр нь нэвтрэх үгээр хамгаалагдах бөгөөд түлхүүр файлд зориулагдсан
өгөгдлийн эх нь /dev/random байх болно.
Бидний үзүүлэгч гэж нэрлэдэг /dev/da2.eli-ийн
секторын хэмжээ 4kB байх болно.
&prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1
&prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:
Нэвтрэх үг болон түлхүүр файлыг хоёуланг нь заавал ашиглах шаардлагагүй;
Мастер түлхүүрийг нууцлах аль ч аргыг тусад нь ашиглаж болно.
Хэрэв түлхүүр файл -
гэж өгөгдсөн бол стандарт
оролтыг ашиглана. Энэ жишээ нь нэгээс олон түлхүүр файлыг
хэрхэн ашиглаж болох талаар харуулж байна.
&prompt.root; cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2
Үзүүлэгчийг үүсгэсэн түлхүүрийн тусламжтай залгах нь
&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:
Шинэ цэвэр текст төхөөрөмж
/dev/da2.eli
гэж нэрлэгдэх болно.
&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eli
Шинэ файлын системийг үүсгэх нь
&prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m
&prompt.root; newfs /dev/da2.eli
&prompt.root; mount /dev/da2.eli /private
Шифрлэгдсэн файлын систем &man.df.1;-д харагдаж
ашиглахад бэлэн болох ёстой.
&prompt.root; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /private
Үзүүлэгчийг холбосныг салгаж залгасныг болиулах
Шифрлэгдсэн хуваалт дээрх ажил хийгдэж дуусаад
/private хуваалт
хэрэггүй болох үед geli шифрлэгдсэн
хуваалтыг холбосноо салган цөмд залгаснаа бас салгах нь зүйтэй
юм.
&prompt.root; umount /private
&prompt.root; geli detach da2.eli
&man.geli.8;-ийг хэрэглэх тухай дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас
олж болно.
geli rc.d скриптийг ашиглах нь
geli нь geli-ийн
хэрэглээг хялбаршуулахад ашиглаж болох rc.d
скрипттэй цуг ирдэг. geli-г &man.rc.conf.5;-оор
тохируулах жишээг дараахаас харж болно:
geli_devices="da2"
geli_da2_flags="-p -k /root/da2.key"
Энэ нь /dev/da2-г
Мастер түлхүүр файл нь /root/da2.key-д байрлах
geli үзүүлэгч гэж тохируулах бөгөөд
үзүүлэгчийг залгаж байхдаа geli нь
нэвтрэх үгийг ашиглахгүй (хэрэв -P сонголт geli-г
эхлүүлэх үед өгөгдсөн тохиолдолд энэ нь ашиглагдах боломжтой). Систем нь
geli үзүүлэгчийг цөмөөс систем унтрахаас өмнө
салгах болно.
rc.d-г тохируулах талаар дэлгэрэнгүй мэдээлэл
энэхүү гарын авлагын rc.d
хэсэгт байгаа болно.
Крисчан
Брюффэр
Бичсэн
Swap зайг шифрлэх
swap
шифрлэх
&os; дээрх swap-ийн шифрлэлт нь тохируулахад амархан байдаг бөгөөд
&os; 5.3-RELEASE-с эхлээд ийм боломжтой болсон юм. &os;-ийн аль
хувилбарыг ашиглаж байгаагаас хамаараад өөр өөр тохируулгууд байдаг бөгөөд
тохиргоо нь нэлээн өөр өөр байдаг. &os; 6.0-RELEASE-с эхлээд
&man.gbde.8; эсвэл &man.geli.8; шифрлэх системүүдийг swap-ийг
шифрлэхэд ашиглаж болно. Өмнөх хувилбаруудад зөвхөн &man.gbde.8;
байдаг. Энэ хоёр систем нь хоёулаа encswap
rc.d скриптийг
ашигладаг.
Өмнөх Дискний хуваалтуудыг шифрлэх
хэсэг нь өөр өөр шифрлэх системүүдийн тухай богино хэлэлцүүлгийг агуулдаг.
Swap яагаад шифрлэгдэх ёстой вэ?
Дискний хуваалтуудын шифрлэлтийн нэгэн адил swap зайн шифрлэлт нь эмзэг
мэдээллийг хамгаалахын тулд хийгддэг. Нууц үгстэй ажилладаг програм байлаа гэж
бодъё. Эдгээр нууц үгс нь физик санах ойд байгаа үед бүгд зүгээр байна. Гэхдээ
хэрэв үйлдлийн систем нь бусад програмуудад зориулж зайг чөлөөлөхийн тулд санах
ойн хуудаснуудыг swap хийж эхэлбэл нууц үгс нь дискний хавтгай дээр шифрлэгдэлгүй
бичигдэж болох бөгөөд энэ нь өрсөлдөгчийн хувьд олж авахад амархан болох юм.
Swap зайг шифрлэх нь энэ тохиолдолд шийдэл болж болох юм.
Бэлтгэл
Энэ хэсгийн үлдсэн хэсэгт ad0s1b нь
swap хуваалт байх болно.
Энэ хүртэл swap нь шифрлэгдээгүй байгаа билээ. Аль хэдийн нууц үгс эсвэл бусад
эмзэг өгөгдөл дискний хавтгайнууд дээр цэвэр текстээр байж болзошгүй юм. Үүнийг
засварлахын тулд swap хуваалт дээрх өгөгдлийг санамсаргүй хаягдлаар дарж бичих
хэрэгтэй:
&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m
&man.gbde.8; ашиглан swap шифрлэлт хийх
Хэрэв &os; 6.0-RELEASE болон түүнээс шинэ хувилбар ашиглагдаж байгаа бол
.bde дагаварыг /etc/fstab-ийн
тохирох swap мөр дэх төхөөрөмжид нэмэх шаардлагатай:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0
&os; 6.0-RELEASE хувилбараас өмнөх системүүдэд дараах мөр нь
/etc/rc.conf файлд бас хэрэгтэй:
gbde_swap_enable="YES"
&man.geli.8; ашиглан swap шифрлэлт хийх
Өөрөөр, swap шифрлэлтэд зориулж &man.geli.8;-г ашиглах процедур нь
&man.gbde.8; ашиглахтай төстэй. .eli дагаварыг
/etc/fstab-ийн тохирох swap мөр дэх төхөөрөмжид
нэмэх шаардлагатай:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0
&man.geli.8; нь AES алгоритмийг анхдагчаар
256 битийн урттай түлхүүртэй ашигладаг.
Мөн эдгээр анхдагчуудыг /etc/rc.conf файлд
geli_swap_flags тохируулгыг ашиглан
өөрчилж болно. Дараах мөр нь encswap rc.d
скриптийг detach on last close
тохируулгыг зааж 4
килобайтын секторын хэмжээтэй, 128 бит түлхүүрийн урттайгаар Blowfish
алгоритм ашиглан &man.geli.8; swap хуваалт үүсгэ гэж хэлж байна:
geli_swap_flags="-a blowfish -l 128 -s 4096 -d"
&man.geli.8; гарын авлагын хуудсан дахь onetime тушаалын тайлбараас
боломжит тохируулгуудын жагсаалтыг лавлана уу.
Ажиллаж байгаа эсэхийг шалгах
Систем дахин ачаалагдсаны дараа шифрлэгдсэн swap-ийн зөв үйлдлийг
swapinfo тушаал ашиглан шалгаж
болно.
Хэрэв &man.gbde.8; ашиглагдаж байвал:
&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%
Хэрэв &man.geli.8; ашиглагдаж байвал:
&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%
diff --git a/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml b/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
index 98783fee84..d852bfca21 100644
--- a/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
@@ -1,3032 +1,3032 @@
Жозеф Ж.
Баарбиш
Хувь нэмэр болгон оруулсан
Брэд
Дэйвис
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 нь IPF/PF-тай нягт холбоотой ажилладаг. IPF,
IPFW, ба PF нь бүгд систем уруу орж байгаа болон гарч байгаа урсгалыг дүрмүүдийн тусламжтай удирдах боловч
синтаксын хувьд ч, арга замын хувьд ч өөр өөр байдаг.
&os; дээр олон галт ханын багцууд хамт ирдэг нь өөр өөр хэрэгцээ шаардлагатай хүмүүст
хүртээмжтэй байхыг гол зорилгоо болгосонд оршино. Түүнээс аль ч галт хана нь нөгөөгөөсөө илүү, эсвэл дутуу гэсэн үг биш юм.
Зохиогч IPFILTER-г сонгон авсан нь түүний төлөвт дүрмүүд нь
NAT орчинд хэрэглэхэд төвөг багатай, мөн
дотроо ftp proxy агуулсан байдгаас болсон хэрэг. Энэхүү ftp proxy-г ашиглан
гадагшаа гарах FTP урсгалыг зөвшөөрсөн дүрмүүдийг бичихэд хялбар байдаг.
Бүх галт ханууд пакет удирдах талбарын утгыг шинжлэх зарчмаар ажиллах тул
галт ханын дүрмүүдийг бичихийн өмнө TCP/IP протокол хэрхэн
ажилладаг талаар болон пакет удирдах талбарын утгууд, энэ утгууд session буюу сесс
үүсэхэд хэрхэн хэрэглэгддэг талаар үндсэн ойлголттой байх шаардлагатай болдог.
Дээрх ойлголтуудын талаар дараах хаягаар орж уншина уу:
.
OpenBSD Пакет шүүгч (PF) ба
ALTQ
галт хана
PF
2003 оны 7 сард OpenBSD-н галт ханын програм болох
PF &os; уруу шилжиж, &os; Портын Цуглуулгад
орсон бөгөөд 2004 оны 11 сард гарсан
&os; 5.3-с эхлэн PF-г
үндсэн системийн багцын нэг хэсэг болгон оруулсан байдаг.
PF нь бүрэн хэмжээнд ажиллах чадвартай
галт хана бөгөөд ALTQ-тай (Alternate
Queuing буюу Ээлжлэн солигдох дараалал) хамтран ажиллах боломжтой. ALTQ-н тусламжтай
шүүн нэвтрүүлэх дүрмүүдийг харгалзан үйлчилгээнүүдэд шаардлагатай
зурвасын өргөнийг баталгаатай олгох Quality of Service буюу Үйлчилгээний Чанарыг (QoS)
хангасан зурвасын өргөнийг хязгаарлах боломжоор хангадаг.
OpenBSD Төсөл нь PF-н Хэрэглэгчдийн Гарын авлагыг хөтлөн
явуулдаг тул давхардуулахгүй үүднээс энэ гарын авлагад
оруулаагүй болно.
Илүү дэлгэрэнгүй мэдээллийг &os;-н PF вэб хуудаснаас үзнэ үү: .
PF-г идэвхжүүлэх
&os; 5.3-с хойших хувилбаруудад PF нь үндсэн суулгацтай
хамт, ажиллах үеийн ачаалах боломжтой модуль байдлаар ирдэг.
rc.conf тохиргооны файл дотор pf_enable="YES" илэрхийлэл байгаа үед
систем PF цөмийн модулийг динамикаар ачаална.
Энэ ачаалах боломжтой модуль нь &man.pflog.4;-н тусламжтай,
бүртгэх боломжтойгоор бүтээгдсэн байдаг.
Энэ модуль нь options INET ба
device bpf-г байгаа гэж тооцдог.
&os;-н 6.0-RELEASE-с өмнөх хувилбарын NOINET6,
хойших хувилбарын NO_INET6-г (жишээ нь &man.make.conf.5;)
системийг үүсгэх үед тодорхойлоогүй бол, options INET6 шаардлагатай.
Цөмийн модуль ачаалагдсан эсвэл цөм нь PF-н хамт
статик байдлаар бүтээгдсэн бол, pf-г
pfctl тушаалын тусламжтай идэвхжүүлж, мөн
идэвхгүй болгож болно.
Энэ жишээн дээр pf-г хэрхэн
идэвхжүүлэхийг харуулав:
&prompt.root; pfctl -e
pfctl тушаалыг ашиглан
pf галт ханатай ажиллах боломжтой.
тушаалыг ашиглахын өмнө &man.pfctl.8; заавар хуудаснаас дэлгэрэнгүй
мэдээллийг авна уу.
Цөмийн боломжууд
цөмийн боломжууд
pf төхөөрөмж
цөмийн боломжууд
pflog төхөөрөмж
цөмийн боломжууд
pfsync төхөөрөмж
&os; цөм уруу дараах боломжуудыг эмхэтгэн PF-г
идэвхжүүлэх албагүй боловч, суурь мэдлэг болгон энд үзүүллээ.
PF-г цөм уруу хөрвүүлэн эмхэтгэснээр ачаалах боломжтой модулийг
хэрэглэх боломжгүй болдог.
Цөмийн тохиргоон дахь PF илэрхийллүүд
/usr/src/sys/conf/NOTES гэсэн цөмийн
эх файлд байх ба доор сийрүүлэв:
device pf
device pflog
device pfsync
device pf мөр Packet Filter
галт ханыг дэмждэг болгоно.
device pflog мөр
хуурамч &man.pflog.4; сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч
төхөөрөмжийн тусламжтайгаар &man.bpf.4; дескриптор уруу урсгалыг бүртгэх
боломжтой. &man.pflogd.8; дэмонг бүртгэлийг дискэн дээр хадгалахад хэрэглэнэ.
device pfsync мөр
хуурамч &man.pfsync.4; сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч
төхөөрөмжийн тусламжтайгаар төлвийн өөрчлөлтүүдийг
хянах боломжтой.
Энэ төхөөрөмж нь ачаалах боломжтой модульд байдаггүй тул, түүнийг
ашиглахын тулд цөмийг шинээр бүтээх хэрэгтэй байдаг.
Эдгээр тохируулгууд нь зөвхөн тэдгээрийг тохируулан,
тусгайлан цөм бүтээж суулгасны дараа идэвхждэг.
rc.conf боломжууд
PF-г систем ачаалах үед идэвхтэй болгохын тулд
/etc/rc.conf дотор дараах илэрхийллүүд байх
ёстой:
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
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
буюу Ангиллаас Хамаарсан Дараалал Үүсгэх(CBQ) боломжийг идэвхжүүлнэ.
CBQ нь шүүгч дүрмүүд дээр үндэслэн урсгалуудад эрэмбэ тогтоох зорилгоор
зурвасын өргөнийг өөр өөр ангиллуудад болон дарааллуудад хуваах боломжийг олгоно.
options ALTQ_RED мөр Random Early
Detection буюу Санамсаргүй Эрт Илрүүлэлт(RED)-г идэвхжүүлнэ.
RED-г сүлжээний даац хэтрэхээс сэргийлэхэд хэрэглэдэг.
RED дарааллын уртыг хэмжиж, түүнийг байх ёстой дээд ба
доод хэмжээтэй жиших байдлаар ажилладаг. Хэрэв дараалал дээд хэмжээнээс урт болбол
шинэ пакетууд орхигдох болно. Нэртэйгээ адилаар, RED нь холболтуудаас пакетийг
санамсаргүйгээр орхигдуулдаг.
options ALTQ_RIO мөр нь Random Early
Detection In and Out буюу Орох ба Гарах Санамсаргүй Эрт Илрүүлэлтийг идэвхжүүлнэ.
options ALTQ_HFSC мөр нь
Hierarchical Fair Service Curve Packet Scheduler буюу Үе давхаргат Зохимжит Үйлчилгээний Муруйн Пакет Хуваарилагчийг
идэвхжүүлнэ. HFSC талаар илүү дэлгэрэнгүй мэдээллийг дараах хаягаас үзнэ үү:
.
options ALTQ_PRIQ мөр нь Priority Queuing буюу Эрэмбэт Дараалал Үүсгэх
(PRIQ)-г идэвхжүүлнэ. PRIQ нь эрэмбэ өндөртэй дараалалд байгаа
урсгалыг эхэнд нэвтрүүлэх зарчмаар ажилладаг.
options ALTQ_NOPCC мөр нь ALTQ-г
SMP-тай хамт ажиллах боломжтой болгоно.
SMP системийн хувьд энэ боломжийг заавал идэвхжүүлэх хэрэгтэй.
Шүүгч дүрмүүдийг үүсгэх
Пакет Шүүгч нь дүрмүүдээ &man.pf.conf.5; файлаас уншиж, энд заагдсан
дүрмүүд болон тодорхойлолтуудаас хамааран пакетийг нэвтрүүлэх, орхих, эсвэл өөрчлөхийн аль нэгийг
хийнэ. &os; суулгац нь жишээ болон тайлбарыг агуулсан анхдагч /etc/pf.conf
файлын хамт ирдэг.
Хэдийгээр &os; өөрийн /etc/pf.conf
файлтай боловч синтакс нь OpenBSD-ийнхтэй адилхан байна. pf
галт ханыг тохируулах дэлгэрэнгүй мэдээллийг OpenBSD багийнхан бичсэн бөгөөд
хаягаар орж үзэж болно.
pf хэрэглэгчийн гарын авлагаар аялахдаа, &os; хувилбарууд өөр өөрийн
pf хувилбарыг ашигладгийг санаарай. &os; 5.X дээрх pf галт хана
нь OpenBSD-н 3.5 хувилбарынхтай дүйх ба &os; 6.X дээрх pf галт хана
нь OpenBSD-н 3.7 хувилбарынхтай дүйдэг болохыг анхаарна уу.
pf галт ханыг тохируулах, ажиллуулахтай холбоотой
асуултуудаа &a.pf;-с асуугаарай. Мөн асуулт асуухынхаа өмнө, захидлын жагсаалтын архиваар орж үзэхээ
мартуузай.
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 цөмийн
модулийг динамикаар ачаална. Энэ ачаалах боломжтой модуль нь бүртгэх боломжтойгоор,
анхдагч 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 тушаалыг хэрэглэнэ. Ер нь бол
та өөрийн дүрмүүдээс бүтсэн файлыг үүсгээд, түүнийгээ дээрх тушаалын ашиглан
-галт ханын одоо ажиллаж байгаа дотоод дүрмүүдтэй сольж тавина гэсэн үг юм:
+галт ханын одоо ажиллаж байгаа дотоод дүрмүүдтэй сольж тавьна гэсэн үг юм:
&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 тохируулга идэвхжсэн байх ёстой. Энэ тушаал хоёр өөр горимд
ажиллах чадвартай. Төрөлх горим нь энэ тушаалыг тушаал мөрөн дээр
туггүйгээр оруулахад ажиллах анхдагч горим юм.
Демон горим нь болж өнгөрсөн үйл явцын бүртгэлийг эргэж харахын тулд
системийн бүртгэлийг тасралтгүй хөтлөн явуулахад тохиромжтой горим юм.
&os; болон IPFILTER энэ горимд ажиллахаар тохируулагдсан байдаг. &os;
нь системийн бүртгэлийг автоматаар тойруулах чадвартай. Тиймээс бүртгэлийн мэдээллийг syslogd
процесс уруу гаргах нь энгийн файл уруу гаргах анхдагч аргаас дээр байдаг.
Анхдагч 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 файл доторх
тодорхойлох илэрхийллүүдээр удирдаж болно. syslog.conf файл нь
IPF мэт програмуудын үүсгэсэн системийн мэдэгдлүүдтэй ажиллахад уян хатан болгодог.
Дараах илэрхийллүүдийг /etc/syslog.conf файл дотор нэмж
бичнэ үү:
security.* /var/log/ipfilter.log
security.* нь бүх бүртгэгдсэн мэдэгдлүүдийг
дурдсан файлд бичихийг хэлж өгч байна.
/etc/syslog.conf файлд хийсэн өөрчлөлтүүдийг
идэвхжүүлэхийн тулд та системээ дахин ачаалах эсвэл /etc/rc.d/syslogd reload
тушаалыг ашиглан syslog процессод /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.
PR-н дараа протоколын нэр болон дугаар, жишээлбэл PR tcp.
len-ы дараа толгойн урт болон
пакетийн нийт урт, жишээлбэл len 20 40.
Хэрэв TCP пакет бол зураасаар эхэлж тугуудаар удаалсан
нэмэлт талбар байна. Үсгүүд болон түүнд харгалзах тугуудын талаар &man.ipmon.8; заавар
хуудаснаас үзнэ үү.
Хэрэв ICMP пакет бол, төгсгөлд нь хоёр талбар байна.
Эхнийх нь үргэлж ICMP
утгатай байна, дараагийнх нь налуу зураасаар тусгаарлагдсан
ICMP мэдэгдэл болон дэд мэдэгдлийн төрөл, жишээлбэл портод хандаж чадсангүй гэсэн мэдэгдлийн хувьд ICMP 3/3 байна.
Симбол орлуулалттай скриптийг үүсгэх нь
Зарим туршлагатай IPF хэрэглэгчид дүрмүүдийг агуулсан файл үүсгээд
түүнийгээ симбол орлуулалттай скрипт байдлаар ажиллуулах боломжтой болгон бичдэг.
Үүний гол давуу тал нь та зөвхөн симбол нэрд харгалзах утгыг өөрчилбөл, скриптийг ажиллуулахад
уг симбол орлуулалт орсон дүрэм бүр шинэ утгыг авах болно. Скриптийн хувьд,
олон дахин хэрэглэгддэг утгуудыг бичихэд симбол орлуулалтыг ашиглаж, тэдгээрийг
олон дүрмэнд орлуулж өгнө гэсэн үг юм. Дараах жишээн дээрээс харна уу.
Энд хэрэглэгдсэн скриптийн синтакс нь sh, csh, ба tcsh бүрхүүл дээр ажиллах
боломжтой.
Симбол орлуулалтын талбарууд нь урдаа долларын тэмдэгтэй байна: $.
Симбол талбарууд нь $ тэмдэг урдаа байхгүй.
Симбол талбарыг орлох утга нь давхар хашилтан(") дотор байрлана.
Дүрмийн файлаа дараах байдалтай үүсгэж эхлэх хэрэгтэй:
############# 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/ эхлэл хавтаст
байрлуул. Энэ скрипт 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 хаяг, эхлэл ба очих порт хаяг зэргийг урьдаас тодорхойлж өгсөн байдаг.
Эдгээр үзүүлэлтүүд дээр үндэслэн нэвтрүүлэх болох хаах дүрмүүдийг зохиодог.
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 гэдэг нь Интернэт уруу харж байгаа
интерфэйс уруу чиглэсэн гадагшаа явж байгаа пакетийн хувьд энэ дүрэм үйлчлэхийг
зааж өгнө.
OPTIONS
Эдгээр options буюу тохируулгуудыг энд үзүүлсэн дэс
дарааллын дагуу хэрэглэх ёстой.
log гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал пакетийн толгой
ipl бүртгэл уруу (дор Бүртгэл Хөтлөх хэсэгт
заасны дагуу) бичигдэхийг зааж өгнө.
quick гэдэг нь пакеттай selection буюу сонголтын
параметрүүд тохирч байвал энэ дүрэм нь хамгийн сүүлийн дүрэм болохыг зааж өгнө.
Ингэснээр short-circuit
замыг тухайн пакетийн хувьд дараагийн
дүрмүүдийг шалгахыг болиулна. Орчин үеийн дүрэмтэй ажиллах логикийн хувьд энэ
тохируулгыг заавал хэрэглэнэ.
on гэдэг нь selection буюу сонголтын
параметрүүдийн ажиллах интерфэйсийг зааж өгнө. Интерфэйсүүдийн нэрийг
&man.ifconfig.8;-н тусламжтай харж болно. Энэ тохируулгыг хэрэглэснээр,
тухайн дүрэм зөвхөн энэ интерфэйсээр зохих чиглэлд(in/out) явж байгаа
пакетийн хувьд үйлчилнэ. Орчин үеийн дүрэмтэй ажиллах логикийн хувьд энэ
тохируулгыг заавал хэрэглэнэ.
пакетийг бүртгэхэд, түүний толгойг IPL пакет бүртгэх
хуурамч-төхөөрөмж уруу бичнэ. log түлхүүр үгийн дараа шууд залгаад,
дараах тодотгогчдыг(дараах дэс дарааллаар) хэрэглэж болно:
body гэдэг нь пакетийн толгойн дараа
пакетийн агуулгын эхний 128 байтыг бүртгэхийг зааж өгнө.
first Хэрэв log
түлхүүр үг keep state
тохируулгын хамт хэрэглэгдсэн бол,
түүний араас ирэх keep state
-д тохирч байгаа бүх пакетийг
биш зөвхөн энэ тохируулгыг идэвхжүүлсэн эхний пакетийг бүртгэхийн тулд
энэ тохируулгыг хэрэглэнэ.
SELECTION
Энэ бүлэгт танилцуулж байгаа түлхүүр үгүүд тухайн пакетийг
дүрмэнд тохирсон эсэхийг тогтоохын тулд шалгадаг пакетийн онцлогийг
тодорхойлоход хэрэглэгддэг. Мөн subject түлхүүр үг байх ба дэд-тохируулга
түлхүүр үгийн аль нэгийг сонгон хэрэглэнэ. Дараах ерөнхий онцлогуудыг
хэрэглэх боломжтой, гэхдээ доорх дэс дарааллаар хэрэглэх хэрэгтэй:
PROTO
proto гэдэг нь subject түлхүүр үг бөгөөд
өөрийн харгалзах дэд-тохируулгын хамт хэрэглэгдэх ёстой. Утга нь
ямар протокол дээр ажиллахыг хэлж өгнө. Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд энэ тохируулгыг заавал хэрэглэнэ.
tcp/udp | udp | tcp | icmp эсвэл
/etc/protocols файл дотор байгаа протоколуудыг
хэрэглэж болно. Тусгай tcp/udp гэсэн түлхүүр үг
TCP эсвэл UDP пакетийг сонгоход хэрэглэгддэг ба,
давхар эсвэл төстэй дүрмүүдийг арилгах үүднээс нэмэгдсэн байгаа.
SRC_ADDR/DST_ADDR
all гэсэн түлхүүр үг нь
өөр ямар ч параметргүй from any to any
гэдэгтэй адил юм.
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
.
IP хаягийг цэгтэй тоон хэлбэр болон багийн хамт эсвэл
зүгээр цэгтэй тоон хэлбэрээр бичиж болно.
Багаар хялбархан илэрхийлэх боломжгүй IP хаягуудыг
хэрэглэх боломжгүй. Баг бичих талаар тусламжийг дараах вэб хуудсаар
орж үзнэ үү: .
PORT
Хэрэв эхлэл эсвэл очих порт, эсвэл хоёулангаар нь тохируулах бол
энэ нь зөвхөн TCP ба UDP пакетуудад хамаарна. Порт жишсэн дүрэм
бичихдээ /etc/services файл доторх үйлчилгээний нэр эсвэл
бүхэл тоон портын дугаарыг хэрэглэнэ. Портыг from обьекттой хамт хэрэглэх үед
энэ нь эхлэл портын дугаарыг, to обьекттой хамт хэрэглэх үед
энэ нь очих портын дугаарыг заана. Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд port тохиргоог to обьекттой
заавал хамт хэрэглэнэ. Хэрэглэх жишээ: from any to any port = 80
Портыг жиших оператороор эсвэл порт зурвасыг зааж өгөх
зэргээр хэд хэдэн янзаар жишиж болно.
port "=" | "!=" | "<" | ">" | "<=" | ">=" |
"eq" | "ne" | "lt" | "gt" | "le" | "ge".
Порт зурвасыг зааж өгөхдөө, port "<>" |
"><" гэж хэрэглэнэ.
Орчин үеийн дүрэмтэй
ажиллах логикийн хувьд эхлэл болон очих порт тохируулах параметрүүдийн дараа,
дараах хоёр параметрийг заавал хэрэглэнэ.
TCP_FLAG
Тугуудыг зөвхөн 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 хариуг хүлээн авбал
галт хана үүнийг автоматаар нэвтрүүлнэ гэсэн үг юм. Хэрэв IPF хүлээн авсан пакетийг
идэвхтэй байгаа сессийн нэг хэсэг гэж баттай итгэж байвал, өөр протокол дээр байсан ч
пакетийг нэвтрүүлнэ.
Үүний цаана юу болох вэ гэвэл:
Интернэт уруу холбогдсон интерфэйсээр гарч байгаа пакетуудыг
хамгийн түрүүнд динамик төлвийн хүснэгтэнд шалгана. Хэрэв тухайн пакет ямар нэг
идэвхтэй байгаа сесс харилцаанд оролцож байгаа зөвшөөрөгдсөн дараагийн пакет
байх юм бол, галт ханаар нэвтрүүлэх ба динамик төлвийн хүснэгтэн дэх
сесс харилцааны төлөв шинэчлэгдэнэ. Үлдсэн пакетуудыг гадагшаа урсгалын дүрмээр
шалгах болно.
Интернэт уруу холбогдсон интерфэйс дээр ирж байгаа пакетуудыг
хамгийн түрүүнд динамик төлвийн хүснэгтэнд шалгана. Хэрэв тухайн пакет ямар нэг
идэвхтэй байгаа сесс харилцаанд оролцож байгаа зөвшөөрөгдсөн дараагийн пакет
байх юм бол, галт ханаар нэвтрүүлэх ба динамик төлвийн хүснэгтэн дэх
сесс харилцааны төлөв шинэчлэгдэнэ. Үлдсэн пакетуудыг дотогшоо урсгалын дүрмээр
шалгах болно.
Харилцаа дуусахад динамик төлвийн хүснэгтээс зохих бичлэг
устгагдана.
Төлөвт шүүлтийн тусламжтайгаар та шинэ сесс зөвшөөрөх/хаах
үйл ажиллагаан дээр төвлөрч ажиллаж чадна. Хэрэв шинэ сесс зөвшөөрөгдсөн бол
түүний дараагийн бүх пакетуудыг автоматаар нэвтрүүлэх ба хуурамч пакетууд
автоматаар буцаагдана. Хэрэв шинэ сесс хаагдсан бол
түүний дараагийн ямар ч пакет нэвтэрч чадахгүй. Төлөвт шүүлт нь
сүүлийн үеийн халдлагуудад ашиглагдаж байгаа аргуудын эсрэг хамгаалах
чадвартай техникийн хувьд өндөр түвшний асуулга явуулах чадвартай юм.
Хамааруулсан дүрмийн олонлогийн жишээ
Дараах дүрмийн олонлог нь аюулгүй байдлыг маш сайн хангасан, хамааруулсан
галт ханын дүрмүүдийг хэрхэн бичих жишээ юм. Хамааруулсан галт хана нь зөвхөн pass дүрмүүдэд
тохирсон үйлчилгээг зөвшөөрч, бусдыг бүгдийг хаана. Бүх галт хананууд хамгийн багадаа хоёр
интерфэйстэй байх ба галт хана маягаар ажиллахын тулд дүрмүүдийг тусгайлан зааж өгсөн байна.
&os;-г оролцуулаад бүх &unix; төрлийн систем нь үйлдлийн систем дэх
дотоод харилцаандаа lo0 интерфэйс болон 127.0.0.1
гэсэн IP хаягийг хэрэглэхээр бүтээгдсэн байдаг. Галт ханын дүрмүүд нь дотооддоо хэрэглэж байгаа
эдгээр пакетуудыг чөлөөтэй нэвтрүүлэх дүрмүүдийг агуулсан байх ёстой.
Интернэттэй холбогдож байгаа интерфэйс дээр та өөрийн
Интернэт уруу гарч байгаа болон Интернэтээс ирж байгаа хандалтыг удирдах
болон хянах дүрмүүдийг байрлуулна. Энэ нь таны PPP tun0
интерфэйс эсвэл таны DSL эсвэл кабель модемд холбогдсон NIC байж болно.
Галт ханын цаана байгаа хувийн LAN-уудад нэг болон түүнээс дээш тооны NIC-ууд
холбогдсон тохиолдолд, тэдгээр интерфэйсүүдийн хувьд тэдгээр LAN интерфэйсүүдээс ирсэн
пакетуудыг чөлөөтэй нэвтрүүлэх дүрмийг агуулсан байх ёстой.
Дүрмүүд эхлээд гурван үндсэн хэсэгт хуваагдан зохион байгуулагдсан байх
ёстой: бүх чөлөөт халдашгүй интерфэйсүүд, нийтийн гадагшаа интерфэйс, ба
нийтийн дотогшоо интерфэйс.
Нийтийн интерфэйс хэсэгт байгаа дүрмүүд тухайн интерфэйс болон чиглэлийн
хувьд хамгийн олон тохиолддог дүрмүүд нь хамгийн түрүүнд, цөөн тохиолддог дүрмүүдээс өмнө байхаар,
хаах болох бүртгэх дүрмүүд нь хамгийн сүүлд байхаар бичигдсэн байна.
Дараах жишээн дээрх Гадагшаа хэсэг нь Интернэт хандалтыг зөвшөөрч өгөх
үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн 'pass' дүрмүүдээс бүрдэж байна.
Бүх дүрмүүд 'quick', 'on', 'proto', 'port', ба 'keep state' тохируулгуудыг агуулсан байгаа.
'proto tcp' дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг тодорхойлох байдлаар,
сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор 'flag' тохируулгыг агуулсан байна.
Дотогшоо хэсэгт эхлээд хүсээгүй пакетуудыг хаах дүрмүүдийг бичсэн байна.
Энэ нь хоёр өөр шалтгаантай. Эхнийх нь, энэ дүрмүүдээр хаагдсан зүйлс нь
доор байгаа өөр нэг дүрмээр зөвшөөрөгдсөн пакетийн нэг хэсэг байж болох талтай. Хоёр дахь
шалтгаан нь, цөөхөн тоотой хүлээж авдаг ба бүртгэх хүсэлгүй байгаа пакетуудыг сонгон, тэдгээрийг
бүрнээр хаах дүрмийг эхлээд бичиж өгснөөр эдгээр пакетууд хамгийн сүүлд байгаа ямар ч дүрмүүдэд
тохироогүй пакетуудыг бүртгээд хаана гэсэн дүрмээр дайрахгүй болгож байгаа юм. Учир нь энэ хэсгийн хамгийн
сүүлд байгаа бүгдийг бүртгээд хаана гэсэн дүрэм бол өөрийн систем уруу халдаж байгаа халдлагын нотолгоог
цуглуулах таны нэг арга билээ.
Өөр нэг тэмдэглэн хэлэх зүйл бол, хүсээгүй пакетуудын хариуд ямар ч хариу явуулахгүй,
тэд зүгээр л орхигдож алга болно. Ингэснээр халдлага явуулагч түүний явуулсан пакетууд
таны системд хүрсэн эсэх талаар юу ч мэдэхгүй үлдэх болно. Таны системийн талаар хэдий хэр бага мэднэ,
тэд ямар нэг муу зүйл хийж чадах хүртэл төдий чинээ урт хугацаа зарцуулна гэсэн үг юм.
Дотогшоо 'nmap OS fingerprint' оролдлогын эхний тохиолдлыг би бүртгэж байгаа,
яагаад гэвэл энэ бол гадны халдлагын нэг хэлбэр юм.
'log first' орсон дүрмийн хувьд та анхны бүртгэлийг харах юм бол
ipfstat -hio тушаалаар энэ дүрэм хэдэн удаа тохирсон байгааг
шалгаарай. Магадгүй та халдлагад өртөж байж болох юм.
Хэрвээ мэдэхгүй дугаартай портын хувьд пакетууд бүртгэгдсэн байвал
/etc/services файлаас эсвэл
хаягаар тухайн
порт ямар зориулалтаар ашиглагддагийг орж шалгаарай.
Троянуудын хэрэглэдэг портын дугааруудыг
хаягаар орж шалгаарай.
Дараах дүрмийн олонлог нь миний өөрийн систем дээрээ хэрэглэдэг
аюулгүй байдлыг бүрэн хангасан хамааруулсан галт ханын дүрмийн олонлог байгаа юм.
Та энэ дүрмүүдийг өөрийн системдээ ашиглахад буруудах юмгүй.
Зөвшөөрөхийг хүсэхгүй байгаа үйлчилгээнүүдийн хувьд харгалзах
нэвтрүүлэх дүрмийг далдлаарай.
Хэрэв бүртгэлд байгаа зарим мэдэгдлийг дахин харахыг хүсэхгүй, бүртгэхийг
хүсэхгүй байгаа бол дотогшоо хэсэгт хаах дүрэм нэмж бичээрэй.
Дүрэм бүрт байгаа dc0 гэсэн интерфэйсийн нэрийн оронд
таны системийг Интернэт уруу холбож байгаа 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
# 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.
# 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)
# 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
# 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
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Allow out FBSD CVSUP function
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
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.
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.
#################################################################
# 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.
block in log first quick on dc0 all
################### End of rules file #####################################
NAT
NAT
IP маскарад
NAT
сүлжээний хаягийн хөрвүүлэлт
NAT
NAT нь Network Address Translation буюу
Сүлжээний хаягийн Хөрвүүлэлтийн товчлол юм. &linux;-н талаар ойлголттой хүмүүсийн хувьд,
энэ ойлголтыг IP маскарад гэж нэрлэдэг; NAT ба IP маскарад
нь нэг зүйл юм. IPF NAT-н бидэнд олгож байгаа олон зүйлүүдийн нэг бол
галт ханын цаана байгаа Local Area Network буюу Ойрын Зайн Сүлжээ(LAN)-н хувьд
ISP-с оноож өгсөн ганц IP хаягийг Интернэтэд хуваан хэрэглэх юм.
Ингэх ямар шаардлага байнаа гэж та гайхан асуух байх.
ISP-ууд өөрийн ашгийн-бус хэрэглэгчиддээ ихэвчлэн динамик IP хаяг оноодог.
Динамик гэдэг нь таныг ISP руу залган нэвтрэн орох болгонд, кабель эсвэл
DSL модемтой хэрэглэгчдийн хувьд модемоо асааж унтраах болгонд танд
өөр өөр IP хаяг онооно гэсэн үг юм. Энэ IP хаягаар та Интернэтэд гарах болно.
Та гэртээ таван PC-тэй бөгөөд бүгд Интернэт уруу гардаг байх хэрэгтэй гэж бодъё.
Тэгвэл та PC тус бүрт тусад нь эрх худалдан авч, таван утасны үзүүртэй байх хэрэгтэй болно.
Тэгвэл 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 хаягийг тусгайлан
гаргасан байдаг. 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 тушаалыг тугийн хамт ажиллуулах хэрэгтэй.
Харин 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-г гадаад интерфэйсээр сольж тавина.
+ 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 хаяг]
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 эхлэл порт зурвасыг ашиглах боломжтой болно.
Жишээ нь, дараах дүрэм 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 хаягуудыг цөөрөм
байдлаар ашиглаж болох ба,
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-тай
байлаа гэж бодъё. Тэгвэл та дүрмээ дараах байдалтай:
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-н талаар илүү сайн тайлбарыг болон түүний
горимуудын талаар хаягаар үзнэ үү.
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 Прокси байхгүй бол та дараах гурван дүрмийг хэрэглэнэ:
# 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
FTP NAT Прокси Согог
IPFILTER 3.4.31 хувилбарын хувьд FTP прокси нь FTP сессийн туршид болон
сесс хаах хүртэл ном журмынхаа дагуу ажиллаж байна. Харин хаах үед алсын FTP серверээс
буцаж ирж буй пакетууд хаагдаж, 21-р портон дээр ирсэн гэж бүртгэгдэнэ. NAT
FTP/прокси алсын FTP серверээс сессийг хааж байгаа тухай мэдэгдсэн хариуг
хүлээж авахаас өмнө, сесс төгсгөх үйл явц дутуу байхад өөрийн түр зуурын дүрмүүдийг
устгаж байгаа нь ажиглагдсан байна. Энэ асуудлын талаар IPF захидлын жагсаалтад тайлан
бичигдсэн байгаа.
Энэ асуудлыг шийдэхдээ, хэрэггүй бүртгэлээс салахын тулд
дараах шүүлтийн дүрмийг нэмж бичнэ эсвэл юу ч хийлгүй өөрийн бүртгэл дэх
дотогшоо FTP-н алдааны мэдээллийг үл хэрэгсэнэ. Ихэнх хүмүүс гадагшаа FTP-г
олон хэрэглэдэггүй.
block in quick on rl0 proto tcp from any to any port = 21
IPFW
галт хана
IPFW
Энэ хэсэг дээр үргэлжлүүлэн ажиллаж байгаа болно. Агуулга зарим газар
буруу байхыг үгүйсгэхгүй.
IPFIREWALL (IPFW) нь &os;-ийн хандиваар &os;-ийн сайн дурын гишүүдийн бүтээсэн,
тэдний эрх мэдэлд байдаг галт ханын програм юм. Энэ нь хуучин уламжлалт төлөвт
дүрмүүдийг хэрэглэдэг бөгөөд Simple Stateful logiс буюу Хялбар Төлөвт логикийг
бий болгохын тулд уламжлалт дүрэм бичих техникийг хэрэглэдэг.
Стандарт &os; суулгац дахь IPFW-н хялбар дүрмийн олонлог(/etc/rc.firewall
файл дотор байрлана) нь нилээд хялбар бөгөөд өөрт тохируулан засварласны дараа хэрэглэхээр бодолцон
бичигдсэн байдаг. Жишээн дээр ихэнх суулгацад тохиромжтой төлөвт шүүлтийг хэрэглээгүй байгаа.
Тиймээс энэ хэсэгт энэ жишээг хэрэглэхгүй болно.
IPFW-н төлөвт дүрмийн синтакс нь галт хана суулгах анхан шатны мэдлэгээс
хол давсан техникийн хувьд ярвигтай сонголтын боломжуудаар хүч нэмсэн байдаг.
IPFW нь мэргэжлийн түвшний хэрэглэгчид эсвэл өндөр түвшний пакет сонголт
шаардлагатай байгаа техникийн өндөр түвшний компьютер сонирхогчид зориулагдсан юм.
IPFW-н дүрмүүдийн хүчийг мэдрэхийн өмнө протоколууд өөрийн тусгай пакетийн толгойн
мэдээллийг хэрхэн үүсгэдэг болон хэрэглэдэг талаар нилээд дэлгэрэнгүй мэдлэгийг
олж авсан байх хэрэгтэй. Тийм түвшний тайлбарыг энд өгөх нь номын энэ бүлгийн
мэдлээс халих тул энд оруулах боломжгүй юм.
IPFW нь долоон хэсгээс бүрдэнэ, гол хэсэг болох цөмийн галт ханын шүүлтийн
дүрмийг боловсруулагч болон түүний бусад хэсэг болох пакет данслах боломж, бүртгэх боломж, NAT
боломжийг идэвхжүүлэх 'divert буюу эргүүлэх' дүрэм, болон өндөр түвшний тусгай зориулалттай боломжууд,
dummynet трафик хязгаарлагч боломжууд, 'fwd дүрэм' дамжуулах боломж, гүүр боломжууд, болон
ipstealth боломжуудаас бүрдэнэ.
IPFW-г идэвхжүүлэх
IPFW
идэвхжүүлэх
IPFW нь &os; үндсэн суулгацтай хамт, ажиллах үеийн ачаалах боломжтой модуль байдлаар ирдэг.
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 файл дотор дараах илэрхийллүүдийг нэмж өгөх
хэрэгтэй, бүртгэлийн систем дараагийн удаа ачаалахад идэвхжинэ:
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' гэсэн түлхүүр үг орсон дүрмийн хувьд
IPFW-р дайран өнгөрөх пакетуудыг бүртгэх боломжтой болгоно.
options IPFIREWALL_VERBOSE_LIMIT=5
Энэ тохируулга &man.syslogd.8;-р нэгэн зэрэг бүртгэгдэж буй
пакетийн тоог хязгаарлана. галт ханын үйлдлүүдийг бүртгэхийг хүсэж байгаа
найрсаг орчнуудад та энэ тохируулгыг хэрэглээрэй. Энэ тохируулга нь
syslog-г живүүлэх замаар явагдах үйлчилгээг зогсоох халдлагыг хааж өгөх болно.
цөмийн тохируулгууд
IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_DEFAULT_TO_ACCEPT
Энэ тохируулга нь галт ханыг дамжин өнгөрч байгаа бүх зүйлийг нэвтрүүлэх анхдагч
төлөвт оруулна. галт ханыг анх удаа тохируулж байгаа үед энэ нь илүү тохиромжтой.
options IPV6FIREWALL
options IPV6FIREWALL_VERBOSE
options IPV6FIREWALL_VERBOSE_LIMIT
options IPV6FIREWALL_DEFAULT_TO_ACCEPT
Эдгээр тохируулгууд IPv6-н тохируулгууд боловч IPv4-д байдаг тохируулгуудтай яг адилхан юм.
Хэрэв та IPv6-г хэрэглэдэггүй бол IPV6FIREWALL-г харгалзах ямар ч дүрэмгүйгээр
хэрэглэн бүх IPv6 урсгалыг хааж болох юм.
цөмийн тохируулгууд
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 — галт ханын дүрмүүдийг агуулсан
файлын бүрэн зам.
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-н данс хөтлөх боломж нь дүрэм бүрийн хувьд тухайн дүрэмд тохирсон
пакетийг тоолох тоолуурыг үүсгэдэг. Ямар нэг дүрмийг шалгах үйл явцад тухайн
дүрэм ажиллаж байгаа эсэхийг тогтоох аргуудын нэг бол дүрмийг тоолуурын хамт
жагсаан харах байдаг.
Бүх дүрмүүдийг дараагаар нь жагсаан харахын тулд:
&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
Дүрмүүдтэй ажиллах дэс дараалал
пакетийг галт хана хүлээн аваад дүрмийн олонлогт байгаа хамгийн
эхний дүрэмтэй тулгах ба цааш дүрмүүдийн дугаарын өсөх дарааллын дагуу
дээрээс доош нэг нэгээр шалгаж эхэлнэ. Пакет аль нэг дүрмийн сонголтын
параметртай тохирвол, түүнд харгалзах үйлдлийг хийж, тухайн пакетийн хувьд
цааш хайлтыг дуусгана. Энэ аргыг эхэнд тохирсон нь дийлнэ
хайлтын
арга гэнэ. Хэрэв тухайн пакет ямар ч дүрэмд тохирохгүй бол, энэ пакетийг 65535 дугаартай
бүх пакетийг хааж, явуулсан хүнд нь ямар ч хариу өгөлгүй орхигдуулна гэсэн
ipfw-н анхдагч дүрэмд албаар тохируулна.
count, skipto ба tee
дүрмүүдийн дараа хайлт үргэлжилнэ.
Энд байгаа зааварчилгаанууд нь төлөвт '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 хувьсагчийн утгыг хязгаарын утга болгон авна.
Аль ч тохиолдолд тэг гэсэн утга бүртгэлийн хязгаарыг үгүй болгоно. Хязгаарт тулсан
тохиолдолд, бүртгэлийг дахин идэвхжүүлэхийн тулд бүртгэлийн тоолуурыг эсвэл
тухайн дүрмийн пакет тоолуурыг дахин эхлүүлнэ. ipfw reset log тушаалыг үзнэ үү.
Бүртгэл нь бусад бүх пакет тохирох нөхцлүүд амжилттай нотлогдсоны дараа,
мөн тухайн пакет дээр эцсийн үйлдлийг(зөвшөөрөх, татгалзах) хийхийн өмнө явагдана.
Ямар дүрмүүдийн хувьд бүртгэл явуулахыг та шийдэх болно.
Сонголт
Энд танилцуулах түлхүүр үгнүүд нь тухайн пакет дүрэмд тохирч байгаа
үгүй эсэхийг тодорхойлох үед, шалгагдаж байгаа пакетийн шинжүүдийг тодорхойлно.
Дараах байнгын хэрэглээний шинжүүд өгөгдсөн байдаг ба доорх дэс дарааллаар хэрэглэнэ:
udp | tcp | icmp
эсвэл /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 хаягийг шүүхэд хэрэглэгдэнэ.
Дүрмэнд хэрэглэхдээ эхлэл ба очих параметрүүдийг ХОЁУЛАНГ зааж өгөх ёстой.
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'
гэсэн байдлаар төлөөлнө. IP хаягуудыг цэгтэй тоон хэлбэр/багийн-урт байдлаар эсвэл
зүгээр цэгтэй тоон хэлбэрээр бичиж болно. Энэ бол заавал тавигдах шаардлага юм.
Багийн уртыг бичихтэй холбоотой тусламжийг дараах хаягаар орж үзнэ үү.
port number
Портын дугаарыг дэмждэг протоколуудын хувьд
(TCP ба UDP гэх мэт), тааруулахыг хүсэж байгаа портын
дугаарыг заавал бичиж өгөх ёстой байдаг. Портын тоон утгын оронд үйлчилгээний нэрийг(/etc/services
файлаас) хэрэглэж болно.
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'-тэй адил төлөвт
функцуудыг гүйцэтгэхээс гадна өөрийн нэмэлт функцүүлтэй.
Төлөвт Дүрмийн Тохируулгууд
IPFW
төлөвт шүүлт
Төлөвт шүүлт нь урсгалыг сесс харилцаанаас бүрдэж буй хоёр чиглэлтэй пакет
солилцоо гэж үздэг. Мөн энэ нь сесс эхлүүлсэн болон хүлээн авсан хостуудын хоорондох сесс харилцаа нь
хоёр чиглэлтэй пакет солилцох процедуртай зохицож байгаа эсэхийг магадлах чадвартай байдаг.
Сесс харилцааны загварт зохицоогүй пакетийг хуурамч гэж үзэн хүлээж авахгүй.
'check-state' нь IPFW дүрмийн олонлогийн хаана нь пакетийг
динамик дүрмүүдийн боломжоор шалгахыг тогтооно. Таарсан тохиолдолд,
пакет галт ханыг нэвтэрч цааш явах ба энэ хоёр чиглэлт сесс харилцааны туршид
солилцох пакетуудын хувьд шинэ динамик дүрэм үүснэ. Таараагүй тохиолдолд,
пакет дүрмийн олонлогийн дараагийн дүрэмд шалгагдахаар шилжинэ.
Динамик дүрмүүдийн боломж нь маш олон тооны динамик дүрмүүдийг
нээдэг SYN-живүүлэх халдлагаас үүсэх нөөцийн хомсдолд эмзэг байдаг. Энэ халдлагаас зайлсхийхийн
тулд &os; limit гэсэн шинэ тохируулгыг нэмж өгсөн байдаг. Энэ тохируулгын
тусламжтай нэгэн зэрэг явагдах сесс харилцааны тоог хязгаарлана. Limit тохируулгад
зааж өгсөн эхлэл болон очих талбаруудаар пакетийн IP хаягийг асуулга явуулах замаар шалгасны дараа,
энэ дүрэмд энэ IP хаягийн хослол хэдэн удаа таарсан тоог харгалзан хэрэв энэ тоо хязгаараас
давсан бол тухайн пакетийг гээнэ.
галт ханын мессежийг бүртгэх
IPFW
бүртгэл хөтлөлт
Бүртгэл хөтлөлтийн ашиг тус тодорхой юм: Таны бүртгэхээр идэвхжүүлсэн
дүрмүүдийн хувьд, ямар пакетууд гээгдсэн, тэдгээр нь ямар хаягаас ирсэн, хаашаа явж байсан
зэрэг мэдээллийг эргэн харах боломжийг олгох ба гадны халдлагыг мөрдөхөд танд чухал хувь
нэмэр болно.
Бүртгэл хөтлөх боломжийг идэвхжүүлсэн хэдий ч,
IPFW нь өөрөө ямар ч дүрмийг үүсгэхгүй. Администратор аль дүрмүүдийн хувьд
бүртгэл явуулахыг шийдэн, тэдгээр дүрмүүддээ log гэсэн түлхүүр үгийг нэмж бичнэ.
Ихэвчлэн зөвхөн татгалзах дүрмүүдийг бүртгэдэг, жишээлбэл ирж буй ICMP ping-г
татгалзах гэх мэт. Хамгийн сүүлд байгаа ipfw-н анхдагч татгалзах дүрмийг хувилан log түлхүүр
үгтэйгээр үүсгэх нь элбэг байдаг. Ийм байдлаар дүрмийн олонлогийн аль ч дүрмэнд таараагүй
пакетуудыг харах боломжтой болно.
Бүртгэл хөтлөлт нь хоёр талдаа иртэй сэлэмтэй адил юм,
хэрэв та хайхрамжгүй хандвал, диск дүүрэн бүртгэлийн мэдээлэл
дотроо учраа олохгүй суух болно. Дискийг дүүргэх DoS халдлага нь
хамгийн эртний халдлагуудын нэг юм. Эдгээр бүртгэлийн мессеж нь syslogd-д
бичигдэхээс гадна, root консол дэлгэцэн дээр гарах учир удахгүй ядаргаатай санагдаж
эхэлдэг.
IPFIREWALL_VERBOSE_LIMIT=5 гэсэн
цөмийн тохируулга нь системийн бүртгэл хөтлөгч болох syslogd уруу
шидэгдэж байгаа тухайн дүрэмд тохирсон пакетад харгалзах
дараалсан мессежийн тоог хязгаарлана. Энэ тохируулгыг идэвхжүүлсэн үед,
тодорхой дүрмийн хувьд дараалсан мессежийн тоог зааж өгсөн тоогоор хязгаарлана.
Нэг ижил зүйлийг хэлсэн 200 бүртгэлийн бичлэгээс мэдэж авах зүйл хомс юм.
Жишээ нь, тодорхой дүрмийн хувьд дараалсан таван бичлэг syslogd-д бичигдэнэ,
үлдсэн дараалсан ижил бичлэгүүд тоологдоод syslogd-д дараах байдалтай бичигдэнэ:
last message repeated 45 times
Бүртгэл хөтлөгдөж байгаа бүх пакетуудын мессежүүд /etc/syslog.conf
файлд анхдагч байдлаар зааж өгсөн /var/log/security файлд бичигдэнэ.
Дүрмийн скриптийг бүтээх
Туршлагатай IPFW хэрэглэгчид дүрмүүдийг агуулсан файл үүсгээд
түүнийгээ скрипт байдлаар ажиллуулах боломжтой байхаар бичдэг.
Үүний гол давуу тал нь шинэ дүрмүүдийг идэвхжүүлэхийн тулд
системийг дахин ачаалах шаардлагагүй болно. Энэ аргыг ашиглан хэдэн ч
удаа дараалан галт ханын дүрмүүдийг ачаалж болох тул шинэ дүрмүүдийг
шалгах үед хэрэглэхэд тохиромжтой байдаг. Скрипт учраас олон дахин бичигдэж байгаа
утгын оронд симбол орлуулалтыг ашиглах боломжтой. Энэ талаар дараах жишээн дээрээс харна уу.
Энд хэрэглэгдсэн скриптийн синтакс нь sh, csh, ба tcsh бүрхүүл дээр ажиллах
боломжтой. Симбол орлуулалттай талбарууд нь урдаа $ буюу долларын тэмдэгтэй байна.
Симбол талбарууд нь $ тэмдэг урдаа байхгүй. Симбол талбарыг орлох утга нь
давхар хашилтан (") дотор байрлана.
Дүрмийн файлаа дараах байдалтай үүсгэж эхлэх хэрэгтэй:
############### 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 эсвэл кабель
модемд холбогдсон NIC байж болно.
Галт ханын цаана байгаа хувийн LAN-уудад нэг болон түүнээс дээш
тооны NIC-ууд холбогдсон тохиолдолд, тэдгээр интерфэйсүүдийн хувьд тэдгээр LAN
интерфэйсүүдээс ирсэн пакетуудыг чөлөөтэй нэвтрүүлэх дүрмийг агуулсан байх ёстой.
Дүрмүүд эхлээд гурван үндсэн хэсэгт хуваагдан зохион байгуулагдсан
байх ёстой: бүх чөлөөт халдашгүй интерфэйсүүд, нийтийн гадагшаа интерфэйс болон нийтийн дотогшоо интерфэйс.
Нийтийн интерфэйс бүр дээр байгаа дүрмүүдийн дараалал нь хамгийн олон тохиолддог
дүрмүүд нь хамгийн түрүүнд цөөн тохиолддог дүрмүүдээс өмнө байхаар, тухайн интерфэйс болон чиглэлийн
хувьд хаах болон бүртгэх дүрмүүд нь хамгийн сүүлд байхаар бичигдсэн байна.
Дараах жишээн дээрх гадагшаа хэсэг нь Интернэт хандалтыг зөвшөөрч өгөх
үйлчилгээг тодорхойлох сонголтын утгуудыг агуулсан зөвхөн 'allow' дүрмүүдээс бүрдэж байна.
Бүх дүрмүүд 'proto', 'port', 'in/out', 'via' ба 'keep state' тохируулгуудыг агуулсан байгаа.
'proto tcp' дүрмүүд нь төлөвт байдлыг идэвхжүүлж байгаа пакетийг keep state төлөвт хүснэгтэд нэмэх байдлаар,
сесс эхлүүлэх хүсэлтийг тодорхойлох зорилгоор 'setup' тохируулгыг агуулсан байна.
Дотогшоо хэсэгт эхлээд хүсээгүй пакетуудыг хаах дүрмүүдийг бичсэн байна.
Энэ нь хоёр өөр шалтгаантай. Эхнийх нь, энэ дүрмүүдээр хаагдсан зүйлс нь доор байгаа өөр нэг дүрмээр
зөвшөөрөгдсөн пакетийн нэг хэсэг байж болох талтай. Хоёр дахь шалтгаан нь, цөөхөн тоотой хүлээж авдаг
ба бүртгэх хүсэлгүй байгаа пакетуудыг сонгон, тэдгээрийг бүрнээр хаах дүрмийг эхлээд бичиж өгснөөр
эдгээр пакетууд хамгийн сүүлд байгаа ямар ч дүрмүүдэд тохироогүй пакетуудыг бүртгээд хаана гэсэн
дүрмээр дайрахгүй болгож байгаа юм. Учир нь энэ хэсгийн хамгийн сүүлд байгаа бүгдийг бүртгээд хаана
гэсэн дүрэм бол өөрийн систем уруу халдаж байгаа халдлагын нотолгоог цуглуулах таны нэг арга билээ.
Өөр нэг тэмдэглэн хэлэх зүйл бол, хүсээгүй пакетуудын хариуд ямар ч хариу явуулахгүй,
тэд зүгээр л орхигдож алга болно. Ингэснээр халдлага явуулагч түүний явуулсан пакетууд таны системд
хүрсэн эсэх талаар юу ч мэдэхгүй үлдэх болно. Таны системийн талаар хэдий хэр бага мэднэ, төдий чинээ
аюулгүй байна гэсэн үг юм. Хэрвээ мэдэхгүй дугаартай портын хувьд пакетууд бүртгэгдсэн байвал
/etc/services/ файлаас эсвэл
хаягаар тухайн порт ямар зориулалтаар ашиглагддагийг орж шалгаарай.
Троянуудын хэрэглэдэг портын дугааруудыг хаягаар орж шалгаарай.
Хамааруулсан дүрмийн олонлогийн жишээ
Дараах NAT хийгдээгүй дүрмийн олонлог нь
бүрэн хэмжээний хамааруулсан дүрмийн олонлог байгаа юм. Та энэ дүрмүүдийг өөрийн системдээ
ашиглахад буруудах юмгүй. Зөвшөөрөхийг хүсэхгүй байгаа үйлчилгээнүүдийн хувьд харгалзах
нэвтрүүлэх дүрмийг далдлаарай. Хэрэв бүртгэлд байгаа зарим мэдэгдлийг дахин харахыг хүсэхгүй,
бүртгэхийг хүсэхгүй байгаа бол дотогшоо хэсэгт хаах дүрэм нэмж бичээрэй. Дүрэм бүрт байгаа
'dc0' гэсэн интерфэйсийн нэрийн оронд таны системийг Интернэт уруу холбож байгаа NIC картны
интерфэйсийн нэрээр сольж тавиарай. Хэрэглэгчийн PPP-н хувьд, энэ нь 'tun0' байна.
Эдгээр дүрмүүдийг хэрэглэх явцад та хэв маяг олж харах болно.
Интернэт уруу чиглэсэн сесс эхлүүлэх хүсэлтийг төлөөлж байгаа
илэрхийллүүд бүгд keep-state хэрэглэж байгаа.
Интернэтээс ирж буй бүх зөвшөөрөгдсөн үйлчилгээнүүд живүүлэх халдлагыг
зогсоох үүднээс limit гэсэн тохируулгын хамт бичигдсэн байгаа.
Бүх дүрмүүд чиглэлийг тодотгохын тулд in эсвэл out-г хэрэглэсэн байгаа.
Бүх дүрмүүд пакетийн дайран өнгөрөх интерфэйсийг тодорхойлж өгөхдөө 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.
#################################################################
# 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 divert' илэрхийллийг нэмж эмхэтгэн
тусгайлан бэлдсэн цөмийг гаргаж авах хэрэгтэй.
/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 (Сүлжээний хаягийн Хөрвүүлэлт)
дүрмийн хамт хэрэглэх нь дүрмийн олонлог бичих логикийг төвөгтэй болгодог.
'check-state' ба 'divert natd' дүрмүүдийн дүрмийн олонлог дахь байрлал нь маш
их нөлөөтэй. Энэ нь хялбар дайраад-өнгөрөх логик урсгал биш болно.
'skipto' гэсэн шинэ үйлдлийн төрлийг хэрэглэх болно. skipto тушаалыг хэрэглэхийн тулд
хаашаа үсрэхээ тодорхойлохын тулд бүх дүрмүүдийг дугаарлах хэрэгтэй болно.
Дараах тайлбаргүй жишээн дээр пакет дүрмийн олонлогоор дайрч
өнгөрөх дарааллыг тайлбарлахаар сонгон авсан дүрэм бичих арга байгаа юм.
Дүрэмтэй ажиллах процесс дүрмийн файлд байгаа хамгийн эхний
дүрмээр эхлэн цааш дүрмүүдийг нэг нэгээр уншин, файлын төгсгөл хүртэл эсвэл
пакет аль нэг дүрмийн сонголтын шалгуурт тохирч галт ханыг орхих хүртэл үргэлжилнэ.
100, 101, 450, 500, ба 510 дугаартай дүрмүүдийн байрлалыг сайн анзаарах хэрэгтэй.
Эдгээр дүрмүүд нь гадагшаа болон дотогшоо чиглэлтэй пакетуудын хөрвүүлэлтийг
удирдах бөгөөд ингэснээр keep-state динамик хүснэгтэн дэх тэдгээрт харгалзах
мөрөнд хувийн LAN IP хаяг бүртгэгдсэн байх нөхцөлийг хангана. Дараа нь,
бүх зөвшөөрөх болон татгалзах дүрмүүдэд пакетийн явж буй чиглэл (өөрөөр хэлбэл гадагшаа эсвэл дотогшоо)
ба интерфэйсийг зааж өгсөн байгааг анзаараарай. Мөн гадагшаа сесс эхлүүлэх хүсэлтүүд,
сүлжээний хаягийн хөрвүүлэлтийн бүх skipto дүрмүүд 500-с эхэлж байгааг анзаарна уу.
Нэгэн LAN хэрэглэгч вэб хуудас үзэхийн тулд вэб хөтчийг хэрэглэж байна гэж бодъё.
Веб хуудсууд 80-р портыг ашиглан холбогдоно. Пакет галт хананд ирнэ,
гадагшаа чиглэж байгаа тул 100-р дүрмэнд тохирохгүй. 101-р дүрмийг мөн
өнгөрнө, яагаад гэвэл энэ нь хамгийн анхны пакет тул keep-state
динамик хүснэгтэнд хараахан бичигдэж амжаагүй байгаа. Пакет эцэст нь
125-р дүрэм дээр ирж, дүрэмд таарна. Энэ пакет Интернэт уруу харсан
NIC-р гадагшаа гарч байгаа. пакетийн эхлэл IP хаяг нь хувийн LAN IP хаяг хэвээр байгаа.
Энэ дүрмэнд таарах үед хоёр үйлдэл хийгдэнэ. keep-state тохируулга энэ дүрмийг
keep-state динамик дүрмийн хүснэгтэнд нэмнэ, мөн зааж өгсөн үйлдлийг гүйцэтгэнэ.
Үйлдэл нь динамик хүснэгтэд нэмэгдсэн мэдээллийн нэг хэсэг байна. Энэ тохиолдолд
"skipto rule 500" байна. 500-р дүрэм нь пакетийн IP хаягийг NAT хийж,
пакетийг гадагш явуулна. Үүнийг бүү мартаарай, энэ бол маш чухал шүү.
Энэ пакет өөрийн замаар хүрэх газраа хүрээд буцаж ирэхдээ мөн л энэ дүрмийн олонлогийг дайрна.
Энэ үед харин 100-р дүрэмд тохирч, очих IP хаяг нь буцаж харгалзах LAN IP хаяг уруу хөрвүүлэгдэнэ.
Дараа нь check-state дүрмээр гарах ба хүснэгтэнд явагдаж байгаа сесс харилцаанд оролцож байгаа
гэж тэмдэглэгдсэн тул цааш LAN уруу нэвтрэн орно. Тэгээд өөрийг нь анх явуулсан LAN PC уруу очих ба
алсын серверээс өөр хэсэг өгөгдлийг авахыг хүссэн шинэ пакетийг явуулна. Энэ удаа энэ пакет
check-state дүрмээр шалгагдах ба түүний гадагшаа урсгалд харгалзах мөр олдох тул харгалзах
үйлдэл 'skipto 500'-г гүйцэтгэнэ. Пакет 500-р мөр уруу үсэрч NAT хийгдэн цааш
өөрийн замаар явах болно.
Дотогшоо урсгал дээр, идэвхтэй сесс харилцаанд оролцож байгаа
гаднаас ирж байгаа бүх зүйлс автоматаар check-state дүрмээр болон зохих
divert natd дүрмүүдээр шийдэгдэнэ. Энд бидний хийх ёстой зүйл бол
хэрэггүй пакетуудыг татгалзаж, зөвшөөрөгдсөн үйлчилгээг нэвтрүүлэх юм.
Галт ханын байгаа машин дээр апачи сервер ажиллаж байна, тэгээд Интернэтээс
хүмүүс энэ дотоод вэб сайт уруу хандаж байна гэж бодъё. Шинэ дотогшоо сесс эхлүүлэх
хүсэлтийн пакет 100-р дүрэмд тохирох бөгөөд түүний IP хаяг галт ханын LAN IP
хаяг уруу оноолт хийгдэнэ. Дараа нь энэ пакет цааш бүх дүрмүүдээр шалгагдан
эцэст нь 425-р дүрэмд тохирно. Энэ дүрэмд таарах үед хоёр үйлдэл хийгдэнэ.
Энэ дүрэм keep-state динамик дүрмийн хүснэгтэнд нэмэгдэнэ, мөн зааж өгсөн үйлдлийг гүйцэтгэнэ.
Гэвч энэ тохиолдолд энэ эхлэл IP хаягнаас эхэлсэн шинэ сесс эхлүүлэх хүсэлтийн тоо 2-оор хязгаарлагдана.
Энэ нь тодорхой порт дээр ажиллаж байгаа үйлчилгээний хувьд DoS халдлагаас хамгаална.
Харгалзах үйлдэл нь зөвшөөрөгдсөн тул пакет 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
# 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 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.
#################################################################
# 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/geom/chapter.sgml b/mn_MN.UTF-8/books/handbook/geom/chapter.sgml
index a49dde0eed..1853b8db70 100644
--- a/mn_MN.UTF-8/books/handbook/geom/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/geom/chapter.sgml
@@ -1,658 +1,658 @@
Том
Рөүдс
Бичсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
GEOM: Модульчлагдсан Диск Хувиргах Тогтолцоо
Ерөнхий агуулга
GEOM
GEOM Дискний Тогтолцоо
GEOM
Энэ бүлэг нь &os; дээр GEOM тогтолцооны хүрээнд дискийг хэрхэн хэрэглэх талаар
хамарсан. Энэ нь тохиргоонд зориулж тогтолцоог ашигладаг гол RAID
хянагч хэрэгслүүдийг багтаадаг. Энэ бүлэг нь I/O, доор нь байгаа дэд
систем, эсвэл кодыг GEOM хэрхэн зохицуулж эсвэл хянадаг талаар гүнзгий
хэлэлцэхгүй. Энэхүү мэдээлэл нь &man.geom.4; гарын авлагын хуудас болон
төрөл бүрийн SEE ALSO баримтуудын тусламжтай хангагддаг. Бас энэ бүлэг нь
RAID тохиргоонуудын дэлгэрэнгүй заавар биш юм.
Зөвхөн GEOM-дэмжигдсэн RAID ангиллуудын талаар
хэлэлцэх болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Ямар төрлийн RAID дэмжлэг GEOM-ийн хүрээнд
байдаг талаар.
Хэрхэн үндсэн хэрэгслүүдийг ашиглаж тохиргоо хийх, ажиллагааг хангах, болон
төрөл бүрийн RAID түвшнүүдийг удирдах талаар.
Хэрхэн толин тусгал болон судал үүсгэх, шифрлэх, алсаас GEOM-ийн хүрээнд
диск төхөөрөмжүүдийг холбох талаар.
GEOM тогтолцоонд хавсаргасан дискнүүдийн алдааг хэрхэн олж засварлах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
&os; диск төхөөрөмжүүдийг хэрхэн үздэг талаар ойлгох
().
Шинэ &os; цөм хэрхэн тохируулж суулгах талаар мэдэх
().
GEOM-ийн Танилцуулга
GEOM нь Мастер Ачаалалтын Бичлэгүүд (MBR), BSD хаягууд,
гэх мэт — ангиллуудад тухайн ангиллын дэмжигчид (providers) эсвэл
/dev дахь тусгай файлуудын
тусламжтайгаар хандах хандалт ба хяналтыг уг ангилалд зөвшөөрдөг.
GEOM нь төрөл бүрийн програм хангамжийн RAID тохиргоонуудыг
ашиглаж үйлдлийн систем болон үйлдлийн системийн хэрэгслүүдэд саадгүйгээр
хандах боломж олгодог.
Том
Рөүдс
Бичсэн
Мюррей
Стөүкли
Цагаанхүүгийн
Ганболд
Орчуулсан
RAID0 - Судал үүсгэх
GEOM
Судал үүсгэх
Судал үүсгэх нь хэд хэдэн дискнүүдийг нэг эзлэхүүн болгодог арга юм.
Олон тохиолдолд энэ нь тоног төхөөрөмжийн хянагчуудыг ашиглан хийгддэг.
GEOM дэд систем нь диск судал үүсгэх гэж бас нэрлэгддэг
RAID0-д зориулсан програмыг хангаж өгдөг.
RAID0 системд, дараалсан дискнүүдэд байгаа өгөгдлүүд
нь багц болж хуваагддаг. Систем дээр нэг диск рүү 256k-ийг
бичихийг хүлээснээс 64k-ийг 4 өөр диск рүү зэрэг бичих дээд зэргийн I/O буюу
оруулах гаргах ажиллагааг RAID0 систем нь санал болгодог. Энэ ажиллагааг
олон дискний хянагчуудыг ашиглан нэмэгдүүлж болдог.
Багцалсан олон дискнүүдээс I/O хүсэлтүүд нь зэрэгцэж унших болон
бичигддэг учраас RAID0 дискний хуваагдал нь бүгд ижил хэмжээтэй байх ёстой.
Диск судал үүсгэж байгаа зураг
Хэлбэржүүлэгдээгүй ATA дискнүүдийн судал үүсгэх
geom_stripe
модулийг ачаална:
&prompt.root; kldload geom_stripe
Тохирох холболтын цэг байгааг шалгаарай. Хэрэв энэ эзлэхүүн нь root хуваалт
болох ёстой бол түр зуур өөр /mnt гэх мэт холболтын цэгийг ашиглаарай:
&prompt.root; mkdir /mnt
Судал үүсгэх дискнүүдэд зориулсан төхөөрөмжийн нэрийг тодорхойлоод шинэ судал
төхөөрөмж үүсгэ. Жишээ нь хоёр ашиглагдаагүй, хуваалт хийгдээгүй
/dev/ad2 болон /dev/ad3 гэсэн
ATA дискнүүдэд судал үүсгэхийн тулд:
&prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3
Хуваалтын хүснэгт гэгддэг стандарт хаягийг шинэ эзлэхүүн дээр бичээд
анхдагч ачаалагдах кодыг суулгаарай:
&prompt.root; bsdlabel -wB /dev/stripe/st0
Энэ процесс хоёр төхөөрөмжийг st0
төхөөрөмжийн хамт /dev/stripe
санд үүсгэх ёстой. Тэдгээр нь st0a болон
st0c юм. Ингэсний дараа файлын системийг
st0a төхөөрөмж дээр newfs
хэрэгслийн тусламжтайгаар үүсгэж болно:
&prompt.root; newfs -U /dev/stripe/st0a
Олон тоонууд дэлгэц дээр урсан өнгөрөх бөгөөд хэдхэн хормын дараа процесс төгсөнө.
Ингээд эзлэхүүн үүсэж холболт хийгдэхэд бэлэн болно.
Гараар үүсгэсэн дискний судлаа холбохын тулд:
&prompt.root; mount /dev/stripe/st0a /mnt
Энэ судал үүсгэсэн файлын системдээ ачаалах үед автоматаар холболт хийхийн
тулд эзлэхүүний мэдээллийг /etc/fstab файлд
хийгээрэй:
&prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \
>> /etc/fstab
/boot/loader.conf файлд мөр нэмж geom_stripe модулийг
систем эхлэхэд автоматаар ачаалагдахаар болгох ёстой:
&prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.conf
RAID1 - Толин тусгал үүсгэх
GEOM
Диск Толин тусгал үүсгэх
Толин тусгал үүсгэх нь олон корпорациуд болон гэрийн хэрэглэгчдийн ашигладаг
өгөгдлийг тасалдалгүйгээр нөөцлөх технологи юм. Толин тусгал байх үед
энэ нь diskB нь diskA-г хувилж байгаа гэсэн үг. Эсвэл магадгүй
diskC+D нь diskA+B-г хувилж байгаа байж болно. Дискний тохиргооноос
хамааралгүй чухал ойлголт бол нэг диск дээрх мэдээлэл болон хуваалт нь хувилагдах
явдал юм. Сүүлд нь, хадгалсан өгөгдөл нь үйлчилгээ болон хандалтын тасалдалгүйгээр,
амархан сэргээгдэж, нөөцлөгдөж бараг өгөгдлийн төмөр авдарт хадгалсан юм шиг байх болно.
Эхлээд системд ижил хэмжээтэй хоёр диск байгааг шалгаарай, энэ
дасгалд уг дискнүүдэд шууд хандах (&man.da.4;) SCSI
дисктэй гэж үзэж байгаа болно.
&os; үйлдлийн системийг нэг дэх диск дээр хоёр хуваалттайгаар суулгаарай.
Нэг нь RAM-ийн хэмжээг хоёр дахин авсан swap
хуваалт байх ёстой бөгөөд үлдэж байгаа зай нь root
(/) файлын системд
зориулагдана. Бусад холболтын цэгүүдэд зориулсан тусдаа хуваалтуудтай
байж болох бөгөөд гэхдээ энэ нь &man.bsdlabel.8; болон &man.fdisk.8;
тохиргоонуудыг гараар өөрчилдгөөс болж төвөгтэй байдлыг 10 дахин ихэсгэдэг.
Дахин ачаалаад системийг бүрэн эхэлтэл хүлээгээрэй. Энэ үйлдэл дууссаны дараа
root хэрэглэгчээр нэвтэрнэ.
/dev/mirror/gm төхөөрөмж үүсгээд
/dev/da1 файлтай холбоорой:
&prompt.root; gmirror label -vnb round-robin gm0 /dev/da1
Систем дараах хариуг өгнө:
Metadata value stored on /dev/da1.
Done.
GEOM-ийг эхлүүлэхэд /boot/kernel/geom_mirror.ko
цөмийн модулийг ачаална:
&prompt.root; gmirror load
Энэ тушаал нь gm0 төхөөрөмжийн
цэгийг /dev/mirror
санд үүсгэх ёстой.
Ерөнхий fdisk-ийн хаяг болон ачаалах кодыг
шинэ gm0 төхөөрөмжид суулгаарай:
&prompt.root; fdisk -vBI /dev/mirror/gm0
Одоо ерөнхий bsdlabel мэдээллийг суулгаарай:
&prompt.root; bsdlabel -wB /dev/mirror/gm0s1
Хэрэв олон зүсмэлүүд болон хуваалтууд байвал түрүүчийн хоёр тушаалын
тугуудыг өөрчлөх шаардлагатай. Тэд нөгөө дискний зүсмэл болон хуваалтын
хэмжээтэй тохирох ёстой.
Анхдагч UFS файлын системийг
gm0s1a төхөөрөмжийн цэг дээр байгуулахдаа
&man.newfs.8; хэрэгслийг ашиглана:
&prompt.root; newfs -U /dev/mirror/gm0s1a
Ингэснээр систем зарим мэдээлэл болон тоонуудыг үзүүлэх болно.
Энэ нь сайн гэсэн үг. Дэлгэц дээр алдаа байгаа эсэхийг шалгаад
төхөөрөмжийг /mnt
холболтын цэгт холбож өгөөрэй:
&prompt.root; mount /dev/mirror/gm0s1a /mnt
Одоо ачаалах дискний бүх өгөгдлийг энэ шинэ файлын систем уруугаа
шилжүүлээрэй. Энэ жишээ нь &man.dump.8; болон &man.restore.8;
тушаалуудыг ашиглаж байгаа; гэхдээ &man.dd.1; бас энэ тохиолдолд
ажиллах боломжтой.
&prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)
Үүнийг файлын систем бүрийн хувьд хийх шаардлагатай. Дээр дурдсан тушаалыг
ажиллуулахдаа тохирох файлын системийг зөв газар нь байрлуулна.
Одоо хувилагдсан /mnt/etc/fstab файлыг засаад
swap файлтай мөрийг устгаж эсвэл тайлбар болгоорой.
fstab дахь swap файлын оруулгыг тайлбар
болгосноор танд өөр замаар swap зайг дахин нээх шаардлагатай болно.
Дэлгэрэнгүй мэдээллийн талаар -д
хандана уу.
. Нөгөө файлын системийн мэдээллийг шинэ диск ашиглахаар
- өөрчилж дараах жишээн дээрх шиг солино:
+ өөрчилж дараах жишээн дээрх шиг сольно:
# Device Mountpoint FStype Options Dump Pass#
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
Одоо boot.config файлыг одоогийн болон
шинэ root хуваалт дээр үүсгэнэ. Энэ файл нь системийн BIOS-ийг
зөв хөтлөгчийг ачаалахад тусална
:
&prompt.root; echo "1:da(1,a)/boot/loader" > /boot.config
&prompt.root; echo "1:da(1,a)/boot/loader" > /mnt/boot.config
Бид үүнийг зөв ачаалуулахын тулд хоёр root хуваалт дээр байрлуулсан.
Хэрэв ямар нэг тохиолдлоор систем шинэ root хуваалтаас уншиж чадахгүй
бол failsafe боломж байдаг.
geom_mirror.ko модулийг ачаалагдах үед ажиллуулахын
тулд дараах тушаалыг ажиллуулна:
&prompt.root; echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
Системийг дахин эхлүүлнэ:
&prompt.root; shutdown -r now
Хэрэв бүгд зүгээр болбол систем gm0s1a
төхөөрөмжөөс ачаалагдаж login тушаал хүлээх
мөр хүлээж байх болно. Хэрэв ямар нэг юм буруу болбол доор дурдсан
алдааг олж засварлах хэсгийг үзээрэй. Одоо
da0 дискийг gm0
төхөөрөмжид нэмэх хэрэгтэй:
&prompt.root; gmirror configure -a gm0
&prompt.root; gmirror insert gm0 /dev/da0
туг нь &man.gmirror.8;-г автомат синхрончлолыг
ашиглах ёстойг хэлж байна; өөрөөр хэлбэл дискэнд бичих бичилтүүдийг автоматаар
толин тусгалаар хуулна гэсэн үг юм. Гарын авлагын хуудас дискнүүдийг хэрхэн
дахин бүтээх болон солих талаар тайлбарлах бөгөөд
gm0-ийн оронд data-г
хэрэглэсэн байгаа.
Алдааг олж засварлах нь
Систем ачаалахгүй байх
Хэрэв систем дараах тушаал хүлээх мөр хүртэл ачаалсан бол:
ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot>
Унтраах болон дахин эхлүүлэх товчийг дарж машиныг дахин эхлүүл.
Ачаалах үеийн цэснээс (6) сонголтыг сонго. Ингэхэд системийг
&man.loader.8; тушаал хүлээх мөрд аваачна. Цөмийн модулийг гараар
ачаал:
OK? load geom_mirror
OK? boot
Хэрэв энэ нь ажилласан бол модул ямар нэг шалтгаанаар буруу
ачаалагдсан байна. Дараах мөрийг:
options GEOM_MIRROR
цөмийн тохиргооны файлд байрлуулж дахин бүтээж суулгаарай.
Ингэх нь энэ асуудлыг арилгах ёстой.
GEOM Хаалга Сүлжээний Төхөөрөмжүүд
GEOM нь хаалга хэрэгслүүдийг ашиглан дискнүүд, CD-ROM-ууд,
файлууд гэх мэт төхөөрөмжүүдийг алсаас ашиглахыг дэмждэг.
Энэ нь NFS-тэй адил юм.
Экспортын файл эхэлж үүсгэх шаардлагатай. Энэ файл нь
экспорт хийгдсэн эх үүсвэрүүдэд хэнийг хандахыг зөвшөөрсөн болон
ямар түвшний хандалтыг тэд өгч байгааг тусгадаг. Жишээ нь эхний
SCSI диск дээр 4 дэх зүсмэлийг экспорт
хийхийн тулд дараах
/etc/gg.exports
нь хангалттай:
192.168.1.0/24 RW /dev/da0s4d
Энэ нь дотоод сүлжээний бүх хостууд da0s4d
хуваалт дээрх файлын системд хандах хандалтыг зөвшөөрнө.
Энэ төхөөрөмжийг экспорт хийхдээ тухайн үед холболт хийгдээгүй эсэхийг шалгаад
&man.ggated.8; сервер дэмонг ажиллуулаарай:
&prompt.root; ggated
Хэрэглэх машинаас уг экспортлогдсон төхөөрөмжид холболт хийхдээ
дараах тушаалыг өгнө үү:
&prompt.root; ggatec create -o rw 192.168.1.1 /dev/da0s4d
ggate0
&prompt.root; mount /dev/ggate0 /mnt
Эндээс эхлэн төхөөрөмжид /mnt
холболтын цэгийг ашиглан хандаж болно.
Хэрэв төхөөрөмж тухайн үед сервер машин эсвэл сүлжээн дэх өөр бусад машин
дээр холболт хийгдсэн байсан бол энэ нь амжилтгүй болохыг сануулъя.
Төхөөрөмж дахин шаардлагагүй болоход бусад дискний төхөөрөмжүүдийн нэгэн адил
&man.umount.8; тушаалын тусламжтайгаар салгаж болно.
Дискний төхөөрөмжүүдийг хаяглах нь
GEOM
Дискний хаяг/шошгонууд
Системийг эхлүүлэх явцад &os; цөм төхөөрөмжүүдийг олж төхөөрөмжийн
цэгүүдийг үүсгэдэг. Төхөөрөмжүүдийг илрүүлэх энэ арга нь зарим нэг
асуудлуудтай байдаг, жишээ нь шинэ дискний төхөөрөмж USB-ээр
нэмэгдсэн бол яах вэ? Флэш төхөөрөмжид da0 гэсэн
төхөөрөмжийн нэр өгөгдөж хуучин байсан da0 нь
da1 болж өөрчлөгдөх болов уу. Энэ нь хэрэв
файлын системүүд /etc/fstab-д жагсаагдсан
бол тэдгээрийг холбоход асуудал гаргах бөгөөд бүр системийг ачаалахгүй
байдалд хүргэж болох юм.
Энэ асуудлын нэг шийдэл нь SCSI карт руу нэмэгдсэн
шинэ төхөөрөмжид төхөөрөмжийн ашиглагдаагүй дугаарууд өгөгдөхөөр болгож
SCSI төхөөрөмжүүдийг гинжин цуваа болгох явдал юм.
Гэхдээ анхдагч SCSI дискийг сольж болзошгүй
USB төхөөрөмжүүдийн хувьд яах вэ? Яагаад гэвэл USB
төхөөрөмжүүд нь ихэвчлэн SCSI картнуудаас өмнө
шалгагддаг. Үүний нэг шийдэл нь эдгээр төхөөрөмжүүдийг системийг ачаалсны
дараа залгах явдал юм. Өөр нэг арга нь зөвхөн ганц ATA
хөтөч ашиглаж SCSI төхөөрөмжүүдийг
/etc/fstab файлд хэзээ ч жагсаахгүй байх тийм
шийдэл байж болох юм.
Илүү сайн шийдэл байдаг. glabel хэрэгсэл ашиглан
администратор эсвэл хэрэглэгч өөрсдийн дискний төхөөрөмжүүдийг хаяглаж эдгээр
хаяг/шошгонуудыг /etc/fstab файлд ашиглаж болох
юм. glabel нь өгөгдсөн үзүүлэгчийн сүүлийн секторт
хаяг/шошгыг хадгалдаг болохоор хаяг/шошго нь дахин ачаалахад хэвээр байх
болно. Энэ хаяг/шошгыг төхөөрөмж маягаар ашигласнаар ямар төхөөрөмжийн
цэгээр дамжин хандаж байгаагаас үл хамааран файлын систем нь үргэлж холбогдох
юм.
Хаяг/шошгыг байнгын болгохыг энд дурдсангүй. glabel
хэрэгсэл нь түр зуурын болон байнгын хаяг/шошгыг үүсгэхэд ашиглагдаж болно.
Зөвхөн байнгын хаяг/шошго нь дахин ачаалахад хэвээр үлдэх болно. Хаяг/шошгонуудын
ялгаануудын тухай дэлгэрэнгүй мэдээллийг &man.glabel.8; гарын авлагын хуудаснаас
үзнэ үү.
Хаяг/шошгоны төрлүүд болон жишээнүүд
Ерөнхий ба файлын системийн гэсэн хоёр төрлийн хаяг/шошго байдаг.
Хаяг/шошгонуудын ялгаа нь байнгын хаяг/шошготой холбоотой автомат
илрүүлэлт бөгөөд энэ төрлийн хаяг/шошго нь дахин ачаалахад хэвээр
үлддэг явдал юм. Эдгээр хаяг/шошгонуудад тэдгээрийн файлын системийн төрөл
дээр суурилсан нэр бүхий тусгай сан /dev
сан дотор өгөгддөг. Жишээ нь UFS2 файлын системийн
хаяг/шошгонууд /dev/ufs2 санд
үүсгэгддэг.
Ерөнхий хаяг/шошго нь дараагийн удаа ачаалахад арилдаг. Эдгээр хаяг/шошгонууд
нь /dev/label санд үүсгэгдэх
бөгөөд туршилтад сайн тохирсон байдаг.
Байнгын хаяг/шошгонуудыг файлын систем дээр tunefs
эсвэл newfs хэрэгслүүд ашиглан байрлуулж болно.
Өгөгдлийг устгалгүйгээр UFS2 файлын системийн хувьд байнгын
хаяг/шошго үүсгэхийн тулд доор дурдсан тушаалуудыг ажиллуулна:
&prompt.root; tunefs -L home /dev/da3
Хэрэв файлын систем дүүрэн бол энэ нь өгөгдлийн эвдрэлд хүргэж
болох юм; гэхдээ хэрэв файлын систем дүүрэн бол гол зорилго нь
хуучирсан файлуудыг устгаж хаяг/шошгонуудыг нэмэхгүй байх
явдал юм.
Хаяг/шошго одоо /dev/ufs2 санд
үүссэн байх ёстой бөгөөд түүнийг /etc/fstab файлд нэмж
болох юм:
/dev/ufs2/home /home ufs rw 2 2
tunefs-г ажиллуулахдаа файлын системийг
холбох ёсгүй.
Одоо файлын системийг ердийнхөөрөө холбож болно:
&prompt.root; mount /home
Доор дурдсан тушаалыг хаяг/шошгыг устгахдаа ашиглаж болно:
&prompt.root; glabel destroy home
Эндээс эхлэн ачаалах явцад /boot/loader.conf файлын
тусламжтайгаар geom_label.ko цөмийн модуль дуудагдсан байхад
эсвэл GEOM_LABEL цөмийн тохируулга байхад
төхөөрөмжийн цэг системд ямар нэгэн буруу нөлөөлөлгүйгээр өөрчлөгдөж болох
юм.
Файлын систем нь newfs тушаалд
өгөгдсөн тугны тусламжтайгаар анхдагч хаяг/шошготой
үүсгэгдэж бас болно. Дэлгэрэнгүй мэдээллийг &man.newfs.8; гарын авлагын хуудаснаас
үзнэ үү.
diff --git a/mn_MN.UTF-8/books/handbook/jails/chapter.sgml b/mn_MN.UTF-8/books/handbook/jails/chapter.sgml
index ef1c57cb09..7119f20146 100644
--- a/mn_MN.UTF-8/books/handbook/jails/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/jails/chapter.sgml
@@ -1,478 +1,917 @@
Матео
Риондато
Хувь нэмэр болгон оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
Jails буюу Шоронгууд
шоронгууд
Ерөнхий агуулга
Энэ бүлэг нь &os;-ийн шоронгууд гэж юу болох, тэдгээрийг хэрхэн ашиглах
талаар тайлбарлах болно. Шоронгууд буюу заримдаа chroot орчнуудын
өргөжүүлсэн орлуулалт гэгддэг энэ боломж нь системийн администраторуудад
зориулагдсан маш хүчтэй хэрэгсэл боловч тэдгээрийн үндсэн хэрэглээ нь
илүү дэвшилтэт хэрэглэгчдэд бас үр ашигтай байдаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Шорон гэж юу болох, &os;-ийн суулгалтуудад ямар зорилгоор
ашиглагдаж болох талаар.
Шоронг хэрхэн бүтээх, эхлүүлэх, болон зогсоох талаар.
Шоронгийн гадна болон дотор талаас хийгдэж болох
удирдлагын үндсүүд.
Шоронгийн тухай ашигтай мэдээллийн өөр бусад эхүүдийг дурдвал:
&man.jail.8; гарын авлагын хуудас. Энэ нь jail
хэрэгслийн бүрэн гүйцэд авлага юм — jail нь &os;
дээр &os; шоронгуудыг эхлүүлэх, зогсоох, болон хянахад ашиглагдаж болох
удирдлагын хэрэгсэл юм.
Захидлын жагсаалтууд болон тэдгээрийн архивууд. &a.questions;
болон бусад захидлын жагсаалтуудын архивууд нь &a.mailman.lists; дээр
байрладаг бөгөөд шоронгуудын талаар маш баялаг материалуудыг агуулсан байдаг.
Архивуудаас хайх юм уу эсвэл &a.questions.name; захидлын жагсаалт уруу
шинэ асуултаа илгээх нь үргэлж сонирхолтой байдаг.
Шоронгуудтай холбоотой ойлголтууд
Шоронгуудтай холбоотой &os; системийн хэсгүүд, тэдгээрийн дотоод хэсгүүд болон
&os;-ийн бусад хэсэгтэй хэрхэн харилцдаг арга замыг илүүтэй ойлгохыг хөнгөвчлөхийн тулд
энэ бүлэгт дараах ойлголтуудыг ашиглах болно:
&man.chroot.2; (тушаал)
Процесс болон түүний бүх үр удмуудын root санг өөрчилдөг
&os;-ийн системийн дуудлага.
&man.chroot.2; (орчин)
chroot
-д ажиллаж байгаа процессуудын орчин.
Үүнд харагдаж байгаа файлын системийн хэсэг, байгаа хэрэглэгч болон
бүлэг, сүлжээний интерфэйсүүд болон бусад IPC арга замууд гэх
мэт эх үүсвэрүүд ордог.
&man.jail.8; (тушаал)
Шоронгийн орчин дотор процессуудыг ажиллуулах боломжийг олгох
системийн удирдлагын хэрэгсэл.
хост (систем, процесс, хэрэглэгч, гэх мэт.)
Шоронгийн системийн хяналтын систем. Хост систем нь байгаа бүх тоног
төхөөрөмжийн эх үүсвэрүүдэд хандах боломжтой байдаг бөгөөд
шоронгийн орчны болон түүний гаднах процессуудыг хянаж чаддаг.
Хост системийн шоронгоос ялгарах нэг чухал ялгаа нь шорон доторх
супер хэрэглэгчийн процессуудад хамаарах хязгаарлалтууд
хост системийн процессуудын хувьд үйлчилдэггүй явдал юм.
хост хийгдсэн (систем, процесс, хэрэглэгч, гэх мэт.)
&os; шоронгоор эх үүсвэрүүдэд ханддаг хандалт нь хязгаарлагддаг
процесс, хэрэглэгч эсвэл бусад зүйлс.
Танилцуулга
Системийн удирдлага нь хэцүү, самууруулмаар ажил болохоор администраторын
амьдралыг хялбар болгох үүднээс олон хүчирхэг хэрэгслүүд хийгдэж хөгжүүлэгдсэн
байдаг. Эдгээр хэрэгслүүд нь системийг суулгах, тохируулах, болон арчлахад
нэгэн төрлийн өргөтгөлүүдийг ихэвчлэн хангаж өгдөг. Администраторуудын
хийх ёстой эдгээр ажлуудын нэг хэсэг нь системийн аюулгүй байдлыг зөв тохируулах
явдал юм. Ингэснээр аюулгүй байдлын зөрчлүүдгүйгээр систем өөрийн жинхэнэ
зорилгоороо үйлчлэх болно.
&os; системийн аюулгүй байдлыг сайжруулахад ашиглагдаж болох хэрэгслүүдийн
нэг нь jails буюу шоронгууд
юм. Шоронгуудыг &os; 4.X дээр &a.phk; анх танилцуулсан юм. Гэхдээ тэдгээрийг
хүчирхэг, уян хатан дэд систем болгохын тулд &os; 5.X дээр илүү ихээр сайжруулсан
билээ. Тэдгээрийн ашигтай тал, ажиллагаа болон найдвартай байдлыг өргөжүүлэн
тэдгээрийн хөгжүүлэлт үргэлжилсэн хэвээр болой.
Шорон гэж юу вэ
BSD-тэй төстэй үйлдлийн системүүд нь 4.2BSD-ийн үеэс эхлэн &man.chroot.2;
боломжтой болсон билээ. &man.chroot.8; хэрэгсэл нь процессуудын олонлогийн
root санг өөрчлөхөд ашиглагдаж
аюулгүй орчин үүсгэн системийн бусад хэсгээс тэдгээрийг тусгаарладаг.
chroot хийгдсэн орчинд үүсгэгдсэн процессууд нь өөрийн орчноос гаднах файлууд
болон эх үүсвэрүүдэд хандаж чаддаггүй. Энэ шалтгаанаар chroot хийгдсэн
орчинд ажиллаж байгаа үйлчилгээг эвдэх нь халдагчид бүхэл системийг
эвдэх боломжийг олгох ёсгүй юм. &man.chroot.8; хэрэгсэл нь маш их уян хатан
чанар эсвэл төвөгтэй, дэвшилтэт боломжуудыг шаарддаггүй хялбар ажлуудад
сайн байдаг. Мөн chroot ойлголтын эхлэлээс эхлээд л chroot хийгдсэн орчноос
зугтах олон арга замууд олдсон бөгөөд хэдийгээр тэдгээр нь &os; цөмийн
орчин үеийн хувилбаруудад засагдсан боловч &man.chroot.2; нь үйлчилгээнүүдийг
аюулгүй болгоход зориулагдсан туйлын шийдэл биш нь тодорхой байсан юм.
Үүнтэй холбоотой шинэ дэд систем хийгдэх шаардлагатай болсон байна.
Энэ нь шоронгууд яагаад хөгжүүлэгдсэн
гол шалтгаануудын нэг юм.
Шоронгууд нь уламжлалт &man.chroot.2; орчны ойлголтуудыг хэд хэдэн
аргаар сайжруулдаг. Уламжлалт &man.chroot.2; орчинд процессууд нь
өөрийн хандаж болох файлын системийн нэг хэсэгт хязгаарлагдаж байдаг.
Системийн бусад эх үүсвэрүүд (системийн хэрэглэгчид, ажиллаж байгаа процессууд,
эсвэл сүлжээний дэд систем зэрэг) нь chroot хийгдсэн процессууд болон
хост системийн процессуудын хооронд хуваалцан хэрэглэгддэг. Шоронгууд нь
зөвхөн файлын систем уруу хандах хандалт биш бас хэрэглэгчид, &os; цөмийн
сүлжээний дэд систем болон бусад хэд хэдэн зүйлсүүдийг виртуалчлан энэ загварыг
өргөтгөдөг байна. Шорон болгосон орчны хандалтыг тааруулахад зориулсан
илүү бүрэн гүйцэд нарийн тааруулсан хяналтуудын олонлог байдаг нь
хэсэгт тайлбарлагдсан байгаа.
Шорон дөрвөн элементээр тодорхойлогддог:
Сангийн дэд мод — шоронгийн орж ирдэг эхлэл цэг.
Шорон дотор орсны дараа процессийг энэ дэд модноос гадна
зугтахыг зөвшөөрдөггүй. Анхдагч &man.chroot.2; дизайныг
зовоосон аюулгүй байдлын уламжлалт асуудлууд нь &os; шоронгуудад
байдаггүй.
Хостын нэр — шорон дотор ашиглагдах хостын нэр. Шоронгууд нь
сүлжээний үйлчилгээнүүдийг хост хийхэд (байрлуулах) ихэвчлэн ашиглагддаг
болохоор шорон бүрийн хувьд тодорхойлсон нэртэй байх нь системийн администраторт
ихээхэн тус болж чадах юм.
IP хаяг — энэ нь шорон бүрт өгөгдөх
бөгөөд шоронгийн оршин тогтнох хугацаанд ямар ч талаараа өөрчлөгдөх
ёсгүй. Шоронгийн IP хаяг нь ихэвчлэн байгаа сүлжээний интерфэйсийн alias хаяг
байх боловч заавал тийм байх шаардлагагүй юм.
Тушаал — шорон дотор ажиллах програм/тушаалын зам.
Энэ нь шоронгийн орчны root сантай харьцангуй байх бөгөөд
шоронгийн тусгай очны төрлөөс хамаараад асар өөр өөр байж болох
юм.
Эдгээрээс гадна шоронгууд нь өөрийн гэсэн хэрэглэгчид болон өөрийн
root хэрэглэгчтэй байж болдог. Мэдээжийн хэрэг
root хэрэглэгчийн хүч чадал шоронгийн орчин дотор
хязгаарлагддаг бөгөөд хост системийн үүднээс авч үзвэл шоронгийн root
хэрэглэгч нь бүхнийг чадагч хэрэглэгч биш юм. Мөн шоронгийн root
хэрэглэгчид өөрийнх нь харгалзах &man.jail.8; орчноос гадна осолтой үйлдлүүдийг
систем дээр хийлгэхийг зөвшөөрдөггүй. root хэрэглэгчийн
боломжууд болон хязгаарлалтуудын тухай дэлгэрэнгүй мэдээллийг хэсэгт доор хэлэлцэх болно.
Шоронг үүсгэж хянах нь
Зарим администраторууд шоронг дараах хоёр төрөлд хуваадаг: эдгээр нь
жинхэнэ &os; системтэй адил төстэй бүрэн
шоронгууд болон
нэг програм юм уу эсвэл үйлчилгээнд зориулагдсан, магадгүй зөвшөөрлүүдтэй ажиллах
үйлчилгээ
шоронгууд юм. Энэ нь зөвхөн ухагдахууны хуваагдал
бөгөөд шоронг бүтээх процесс үүнд хамаагүй юм. &man.jail.8; гарын авлагын
хуудас шоронг бүтээх аргачлалын талаар маш тодорхой зааварласан буй:
&prompt.root; setenv D /here/is/the/jail
&prompt.root; mkdir -p $D
&prompt.root; cd /usr/src
&prompt.root; make world DESTDIR=$D
&prompt.root; cd etc/ Энэ алхам нь
&os; 6.0 болон түүнээс хойшхи хувиилбаруудад шаардлагагүй.
&prompt.root; make distribution DESTDIR=$D
&prompt.root; mount_devfs devfs $D/dev
Шоронгийн байрлалыг сонгох нь хамгийн шилдэг эхлэх цэг юм.
Энэ нь шорон физикээр өөрийн хостын файлын систем дотор байрлах байрлал юм. Сайн сонголт нь
/usr/jail/jailname
байж болох бөгөөд энд байгаа jailname нь
шоронг таниулж байгаа хостын нэр юм. /usr/ файлын систем нь
шоронгийн файлын системийн хувьд ихэвчлэн хангалттай зайтай байдаг.
Үндсэндээ бүрэн
шоронгуудын хувьд энэ шоронгийн
файлын систем нь үндсэн &os; системийн андагч
суулгацад байдаг бүх файлуудын хуулбар байдаг.
Энэ тушаал нь шоронгийн физик байрлал болгон сонгосон сангийн дэд модыг
файлын систем дээр шаардлагатай хоёртын файлууд, сангууд, гарын авлагын
хуудаснууд гэх зэргүүдийг тараан байрлуулах болно. Бүгд хэвшмэл &os;
загвараар хийгдэнэ — эхлээд бүгд бүтээгдэнэ/эмхэтгэгдэнэ, дараа нь
хүрэх замд суулгагдана.
make тушаалд зориулагдсан
distribution тохируулга нь бүх шаардлагатай
тохиргооны файлыг суулгана, өөрөөр хэлбэл энэ нь
/usr/src/etc/ сангийн
бүх суулгаж болох файлуудыг шоронгийн орчны
/etc сан болох
$D/etc/ руу хуулдаг.
Шорон дотор &man.devfs.8; файлын системийг холбох шаардлагагүй.
Нөгөө талаас авч үзвэл дурын, бараг бүх програм өөрийн зорилгоосоо хамааран
хамгийн багаар бодоход ядаж ганц төхөөрөмжид хандах шаардлагатай байдаг.
Шорон дотроос төхөөрөмжид хандах хандалтыг хянах нь маш чухал байдаг.
Учир нь буруу тохируулгууд халдагчид шорон дотор муухай зүйлс хийх боломжийг
олгож болох юм. &man.devfs.8; дээрх хяналтыг &man.devfs.8; болон
&man.devfs.conf.5; гарын авлагын хуудаснуудад тайлбарласан дүрмийн
олонлогуудаар удирддаг.
Шорон суулгагдсаны дараа &man.jail.8; хэрэгсэл ашиглан түүнийг
эхлүүлж болно. &man.jail.8; хэрэгсэл дөрвөн зайлшгүй шаардлагатай
нэмэлт өгөгдлийг авдаг бөгөөд эдгээр нь хэсэгт тайлбарлагдсан байгаа болно.
Өөр бусад нэмэлт өгөгдлүүдийг бас зааж өгч болох бөгөөд өөрөөр хэлбэл
шорон хийгдсэн процессийг тухайн нэг хэрэглэгчийн итгэмжлэлүүдтэй ажиллуулж болох юм.
-н нэмэлт өгөгдөл нь
шоронгийн төрлөөс хамаарна; виртуал системийн
хувьд /etc/rc нь боломжийн сонголт байна.
Энэ нь жинхэнэ &os; системийн эхлүүлэх дарааллыг хуулбарлах учраас тэр
юм. Үйлчилгээ шоронгийн хувьд шорон дотор
ажиллах үйлчилгээ эсвэл програмаас энэ нь хамаарна.
Шоронгууд нь ихэвчлэн ачаалах үед эхлүүлэгддэг бөгөөд &os;
rc арга зам нь үүнийг хийх хялбар аргаар
хангадаг.
Ачаалах үед эхлэхээр идэвхжүүлэгдсэн шоронгуудын жагсаалтыг
&man.rc.conf.5; файлд нэмэх ёстой:
jail_enable="YES" # Set to NO to disable starting of any jails
jail_list="www" # Space separated list of names of jails
Шорон бүрийг тайлбарласан &man.rc.conf.5; тохируулгуудын бүлэг
jail_list-д жагсаагдсан шорон бүрийн
хувьд доор дурдсаныг нэмэх ёстой:
jail_www_rootdir="/usr/jail/www" # jail's root directory
jail_www_hostname="www.example.org" # jail's hostname
jail_www_ip="192.168.0.10" # jail's IP address
jail_www_devfs_enable="YES" # mount devfs in the jail
jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail
&man.rc.conf.5;-д тохируулагдсан шоронгуудын анхдагч
эхлүүлэлт нь шоронг бүрэн виртуал систем гэж тооцдог шоронгийн
/etc/rc скриптийг ажиллуулах болно. Үйлчилгээний
шоронгуудын хувьд
jail_jailname_exec_start
тохируулгыг зохистойгоор тохируулан шоронгийн анхдагч эхлүүлэх тушаалыг
өөрчлөх ёстой.
Тохируулгуудын бүрэн жагсаалтыг &man.rc.conf.5; гарын
авлагын хуудаснаас үзнэ үү.
Шоронд зориулагдсан оруулга rc.conf файлд байгаа
тохиолдолд /etc/rc.d/jail скрипт шоронг гараар эхлүүлэх
эсвэл зогсооход ашиглагдаж болох юм:
&prompt.root; /etc/rc.d/jail start www
&prompt.root; /etc/rc.d/jail stop www
Одоогоор &man.jail.8;-г зогсоох цэвэр зам байхгүй байгаа.
Цэвэр системийн зогсолтыг хийх тушаалуудыг шорон дотор ашиглах боломжгүй
байдаг болохоор тэр юм. Шоронг зогсоох хамгийн шилдэг арга бол
дараах тушаалыг шорон дотроос ажиллуулах эсвэл шоронгийн гадна
&man.jexec.8; хэрэгслийг ашиглах явдал юм:
&prompt.root; sh /etc/rc.shutdown
Үүний талаар дэлгэрэнгүй мэдээллийг &man.jail.8; гарын авлагын хуудаснаас
олж болно.
Нарийн тааруулалт болон удирдлага
Аль ч шоронд зориулж тохируулж болох хэд хэдэн тохируулгууд байдаг бөгөөд
өндөр түвшний програмуудыг хийхийн тулд хост &os; системийг шоронгуудтай цуг
хослуулах төрөл бүрийн аргууд бас байдаг. Энэ хэсэг нь дараах зүйлсийг үзүүлнэ:
Ажиллагаа болон шоронгийн суулгалтаар хийгдсэн аюулгүй байдлын
хязгаарлалтуудыг тааруулахад зориулагдсан зарим тохируулгууд.
&os;-ийн портын цуглуулгад байх, шорон дээр суурилсан шийдлүүдийг
хийхэд ашиглагдаж болох шорон удирдах зарим нэг өндөр түвшний
програмууд.
&os; дээр шорон тааруулах системийн хэрэгслүүд
Шоронгийн тохиргооны нарийн сайн тааруулалтыг &man.sysctl.8;
хувьсагчуудыг тохируулснаар ихэвчлэн хийдэг. Бүх хамаатай тохируулгуудыг
зохион байгуулах үндэс болон sysctl-ийн тусгай дэд мод байдаг: энэ нь
&os; цөмийн тохируулгуудын security.jail.* шатлал
юм. Энд шоронтой холбоотой гол sysctl-уудын жагсаалтыг тэдгээрийн
анхдагч утгуудтайгаар харуулав. Нэрс нь өөрийгөө тайлбарласан байгаа,
гэхдээ тэдгээрийн талаар илүү мэдээллийг &man.jail.8; болон &man.sysctl.8;
гарын авлагын хуудаснуудаас лавлана уу.
security.jail.set_hostname_allowed:
1
security.jail.socket_unixiproute_only:
1
security.jail.sysvipc_allowed:
0
security.jail.enforce_statfs:
2
security.jail.allow_raw_sockets:
0
security.jail.chflags_allowed:
0
security.jail.jailed: 0
root хэрэглэгчид анхдагчаар ноогдуулсан хязгаарлалтуудын
заримыг нэмэх эсвэл хасахын тулд эдгээр хувьсагчуудыг хост системийн
администратор ашиглаж болно. Зарим нэг хязгаарлалтуудыг хасаж болохгүйг
тэмдэглэе. root хэрэглэгчид &man.jail.8;
дотор файлын системүүдийг холбох эсвэл салгахыг зөвшөөрдөггүй. Шорон
доторх root хэрэглэгч &man.devfs.8; дүрмийн
олонлогуудыг дуудах эсвэл буцааж болиулах, галт ханын дүрмүүдийг тохируулах,
эсвэл цөмийн securelevel хувьсагчийг тохируулах зэрэг
цөм дэх өгөгдлийн өөрчлөлтүүдийг шаарддаг өөр олон бусад удирдлагын
ажлуудыг хийж чадахгүй байж болох юм.
&os;-ийн үндсэн систем нь идэвхтэй шоронгуудын тухай мэдээллийг үзүүлэх болон
удирдлагын тушаалуудыг ажиллуулахын тулд шоронд залгагдаж болох хялбар хэрэгслүүдийн
цуглуулгыг агуулдаг. &man.jls.8; болон &man.jexec.8; тушаалууд нь &os;-ийн үндсэн системийн
хэсэг бөгөөд дараах хялбар ажлуудыг хийж гүйцэтгэхэд ашиглагдаж болно:
Идэвхтэй байгаа шоронгуудын жагсаалт болон тэдгээрийн харгалзах
шорон танигч (JID), IP
хаяг, хостын нэр болон замыг үзүүлнэ.
Өөрийнх нь хост системээс ажиллаж байгаа шоронд залгагдаж
шорон дотор тушаал ажиллуулах юм уу эсвэл шоронгийн удирдлагын ажлуудыг
шорон дотор ажиллуулна.
root хэрэглэгч шоронг цэвэрхэн
зогсоож унтраахыг хүсэх үед энэ нь ялангуяа ашигтай байдаг.
Шорон дотор удирдлага хийхийн тулд түүн дотор бүрхүүл эхлүүлэхэд
&man.jexec.8; хэрэгсэл бас ашиглагдаж болдог; жишээ нь:
&prompt.root; jexec 1 tcsh
&os;-ийн портын цуглуулга дахь өндөр түвшний удирдлагын хэрэгслүүд
Шорон удирдлагад зориулагдсан гуравдагч талуудын олон хэрэгслүүдийн дундаас
хамгийн бүрэн гүйцэд, ашигтай нь sysutils/jailutils юм. Энэ нь
&man.jail.8;-ийн удирдлагад хувь нэмэр болсон жижиг програмуудын цуглуулга
юм. Дэлгэрэнгүй мэдээллийн талаар түүний вэб хуудсанд хандана уу.
+
+
+ Шоронгийн хэрэглээ
+
+
+
+
+
+ Даниэл
+ Гэрзо
+ Хувь нэмэр болгон оруулсан
+
+
+
+
+
+ Үйлчилгээ шоронгууд
+
+ Энэхүү хэсэг нь &a.simon; хөгжүүлэгчийн хуудас болон
+ Кен Том locals@gmail.com-ийн бичсэн шинэчилсэн нийтлэл
+ дээр гаргасан санаа дээр тулгуурласан юм. Энэ хэсэг нь
+ &man.jail.8; боломжийг ашиглан аюулгүй байдлын нэмэлт давхарга
+ бүхий &os; систем хэрхэн тохируулах талаар тайлбарлах болно.
+ Өгөгдсөн систем нь ядаж RELENG_6_0 бөгөөд энэ бүлгийн өмнө
+ дурдсан мэдээллийг уншигч авхай сайн ойлгосон гэж тооцдог.
+
+
+ Шийдэл
+
+ Шоронгуудын гол асуудлуудын нэг нь тэдгээрийн шинэчлэлтийн
+ процессийн удирдлага юм. Шорон бүр нь шинэчлэгдэх болгондоо
+ дахин бүр эхнээсээ бүтээгдэх хэрэгтэй болдог учраас тэр юм.
+ Нэг шоронгийн хувьд энэ нь ихэвчлэн асуудал болдоггүй,
+ шинэчлэлтийн процесс их хялбар байдаг боловч олон шоронгууд
+ үүсгэсэн бол их хугацаа шаардсан, төвөгтэй ажиллагаа байдаг.
+
+
+ Энэхүү тохиргоо нь &os;-ийн маш сайн туршлага болон түүний
+ боломжуудын хэрэглээг шаарддаг. Хэрэв доор үзүүлсэн алхмууд нь
+ хэтэрхий төвөгтэй санагдвал &os; шоронгуудыг удирдах илүү хялбар
+ боломжийг олгодог бөгөөд энэ тохиргооных шиг төвөгтэй биш
+ sysutils/ezjail зэрэг хялбар системийг
+ үзэхийг зөвлөж байна.
+
+
+ Гол санаа нь иймэрхүү асуудлуудыг шоронгууд хооронд аль болох
+ ихээр аюулгүй аргаар хуваалцах замаар шийдэх явдал юм — шинэчлэлт хялбар
+ байхаар зөвхөн уншигдах &man.mount.nullfs.8; холболтуудыг ашиглах болон
+ ганц үйлчилгээнүүдийг тусдаа шоронд хийх нь илүүтэй болох юм.
+ Мөн энэ нь шоронгуудыг нэмэх эсвэл устгах болон тэдгээрийг
+ шинэчлэх хялбар боломжийг олгодог юм.
+
+
+ Ийм зорилгоор ашиглаж болох үйлчилгээнүүдийг дурдвал:
+ HTTP сервер, DNS
+ сервер, SMTP сервер гэх мэт байж болох юм.
+
+
+ Энэ хэсэгт тайлбарласан тохиргооны зорилгуудыг дурдвал:
+
+
+
+ Шоронгийн хялбар, ойлгоход амархан бүтцийг үүсгэх.
+ Энэ нь шорон бүрийн хувьд болон тэдгээр дээр бүрэн хэмжээний
+ installworld үйлдлийг ажиллуулахгүй
+ байх гэсэн үг юм.
+
+
+ Шинэ шоронгууд нэмэх эсвэл байгааг нь устгах процессийг
+ хялбар болгох.
+
+
+ Байгаа шоронгуудыг шинэчлэх эсвэл сайжруулах процессийг
+ хялбар болгох.
+
+
+ Өөрчлөн тохируулсан &os; салбарыг ажиллуулах боломжтой
+ болгох.
+
+
+ Нэвтрэн орох, эвдлэн орох боломжийг аль болох ихээр
+ багасгаж аюулгүй байдлын хувьд паранойд байх.
+
+
+ Зай болон inode-уудыг аль болох ихээр хэмнэх.
+
+
+
+ Урьд нь дурдагдсаны адил энэ шийдэл нь
+ шорон бүрт зөвхөн уншигдахаар (nullfs гэгддэг)
+ холбогдох ганц мастер загвар болон шорон бүрийн хувьд нэг уншигдах,
+ бичигдэх төхөөрөмжтэй байх бүтэц дээр үндсэндээ тулгуурласан юм.
+ Төхөөрөмж нь тусдаа физик диск, хуваалт, эсвэл vnode дээр
+ тулгуурласан &man.md.4; төхөөрөмж байж болох юм. Энэ жишээн дээр
+ бид уншигдах, бичигдэх nullfs холболтуудыг
+ ашиглах болно.
+
+ Файлын системийн дүр зураг доор дурдсан хэсэгт тайлбарласан буй:
+
+
+
+ Шорон бүр /home/j сангийн доор холбогдох болно.
+
+
+ /home/j/mroot нь
+ шорон бүрийн хувьд загвар ба бүх шоронгуудын хувьд
+ зөвхөн уншигдах хуваалт юм.
+
+
+ /home/j сангийн доор
+ шорон бүрийн хувьд хоосон сан үүсгэгдэнэ.
+
+
+ Шорон бүр системийн уншигдах, бичигдэх хэсэг уруу холбогдох
+ /s сантай байна.
+
+
+ Шорон бүр /home/j/skel дээр тулгуурласан
+ өөрийн уншигдах, бичигдэх системтэй байх болно.
+
+
+ Шоронгийн талбар бүр (шорон бүрийн уншигдах, бичигдэх хэсэг)
+ /home/js-д үүсгэгдэх болно.
+
+
+
+
+ Энэ нь шоронгууд /home
+ хуваалтын доор үндэслэсэн гэж үзнэ. Үүнийг мэдээж өөрчилж болох боловч
+ ингэх тохиолдолд доор дурдсан жишээ бүрийн хувьд өөрчлөгдөх ёстой
+ болно.
+
+
+
+
+
+ Загвар үүсгэх нь
+
+ Энэ хэсэг нь шоронд зориулагдан ашиглагдах, зөвхөн уншигдах хэсэг болох
+ мастер загварыг үүсгэхэд хэрэгтэй алхмуудыг тайлбарлах болно.
+
+ &os; системийг сүүлийн -RELEASE салбар уруу шинэчлэх нь үргэлж
+ зөв санаа байдаг. Үүнийг хийхийн тулд гарын авлагын
+ бүлгээс
+ лавлах хэрэгтэй. Шинэчлэл хийх шаардлагагүй бол гүйцэтгэлийг
+ гүйцээхийн тулд buildworld хийх шаардлагатай. Мөн
+ sysutils/cpdup багц хэрэгтэй.
+ &os;-ийн портын цуглуулгыг татаж авахдаа бид &man.portsnap.8;
+ хэрэгслийг ашиглах болно. Эхлэн суралцагчид гарын авлагын
+ Portsnap бүлгийг
+ унших нь зүйтэй юм.
+
+
+
+ Эхлээд бидний шоронгуудад зориулсан &os;-ийн хоёртын файлуудыг
+ агуулах зөвхөн уншигдах файлын системийн сангийн бүтцийг
+ үүсгэх хэрэгтэй бөгөөд дараа нь &os;-ийн эх модны сан уруу
+ сангаа сольж ороод зөвхөн уншигдах файлын системийг шоронгийн загвар
+ уруу суулгах хэрэгтэй:
+
+ &prompt.root; mkdir /home/j /home/j/mroot
+&prompt.root; cd /usr/src
+&prompt.root; make installworld DESTDIR=/home/j/mroot
+
+
+ Дараа нь шоронгуудад зориулж &os;-ийн портын цуглуулга болон
+ mergemaster-т шаардлагатай, &os;-ийн
+ эх модыг бэлдэх хэрэгтэй:
+
+ &prompt.root; cd /home/j/mroot
+&prompt.root; mkdir usr/ports
+&prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract
+&prompt.root; cpdup /usr/src /home/j/mroot/usr/src
+
+
+ Системийн уншигдах, бичигдэх хэсэгт зориулж араг ясыг үүсгэх хэрэгтэй:
+
+ &prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles
+&prompt.root; mv etc /home/j/skel
+&prompt.root; mv usr/local /home/j/skel/usr-local
+&prompt.root; mv tmp /home/j/skel
+&prompt.root; mv var /home/j/skel
+&prompt.root; mv root /home/j/skel
+
+
+ Байхгүй байгаа тохиргооны файлуудыг суулгахын тулд
+ mergemaster-г ашиглах хэрэгтэй.
+ Дараа нь mergemaster-ийн үүсгэсэн
+ илүү сангуудыг арилгах хэрэгтэй:
+
+ &prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i
+&prompt.root; cd /home/j/skel
+&prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev
+
+
+ Одоо уншигдах, бичигдэх файлын системийг зөвхөн уншигдах
+ файлын систем уруу заасан симболын холбоос үүсгэх хэрэгтэй.
+ Симболын холбоосууд нь зөв s/ байрлалуудад үүсгэгдсэн
+ эсэхийг шалгаарай. Жинхэнэ сангууд юм уу эсвэл сангуудын
+ үүсгэлт буруу байрлалуудад хийгдсэн бол суулгалт амжилтгүй
+ болоход хүргэнэ.
+
+ &prompt.root; cd /home/j/mroot
+&prompt.root; mkdir s
+&prompt.root; ln -s s/etc etc
+&prompt.root; ln -s s/home home
+&prompt.root; ln -s s/root root
+&prompt.root; ln -s ../s/usr-local usr/local
+&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
+&prompt.root; ln -s ../../s/distfiles usr/ports/distfiles
+&prompt.root; ln -s s/tmp tmp
+&prompt.root; ln -s s/var var
+
+
+ Сүүлийн шатанд доор дурдсан агуулга бүхий ерөнхий
+ /home/j/skel/etc/make.conf файлыг үүсгэх
+ хэрэгтэй:
+
+ WRKDIRPREFIX?= /s/portbuild
+
+
+ WRKDIRPREFIX-г ийм байдлаар тохируулах нь
+ шорон бүрт &os;-ийн портуудыг эмхэтгэх боломжтой болгох юм.
+ Портуудын сан нь зөвхөн уншигдах системийн хэсэг гэдгийг санаарай.
+ WRKDIRPREFIX-д зориулсан өөр зам нь
+ шорон бүрийн уншигдах, бичигдэх хэсэгт бүтээлтүүдийг хийх боломжийг
+ олгох юм.
+
+
+
+
+
+ Шорон үүсгэх нь
+
+ Одоо бид бүрэн гүйцэд &os;-ийн шоронгийн загвартай болсон болохоор
+ /etc/rc.conf файлд бид шоронгуудыг суулган тохируулах
+ боломжтой болно. Энэ жишээ нь NS
,
+ MAIL
болон WWW
гэсэн 3 шоронгийн үүсгэлтийг
+ харуулж байна.
+
+
+
+ Доор дурдсан мөрүүдийг /etc/fstab файлд
+ нэмэх хэрэгтэй. Ингэснээр шоронгуудад зориулсан зөвхөн уншигдах
+ загвар болон уншигдах, бичигдэх зай тохирох шоронгуудад ашиглах боломжтой
+ болох юм:
+
+ /home/j/mroot /home/j/ns nullfs ro 0 0
+/home/j/mroot /home/j/mail nullfs ro 0 0
+/home/j/mroot /home/j/www nullfs ro 0 0
+/home/js/ns /home/j/ns/s nullfs rw 0 0
+/home/js/mail /home/j/mail/s nullfs rw 0 0
+/home/js/www /home/j/www/s nullfs rw 0 0
+
+
+ 0 pass буюу өнгөрөх дугаараар тэмдэглэгдсэн хуваалтууд нь
+ ачаалах үед &man.fsck.8; хэрэгслээр шалгагддаггүй бөгөөд
+ 0 dump дугаараар тэмдэглэгдсэн хуваалтууд нь &man.dump.8;
+ хэрэгслээр нөөцлөгддөггүй. Бид fsck
+ хэрэгслээр nullfs холболтуудыг шалгах эсвэл
+ dump хэрэгслээр шоронгуудын зөвхөн уншигдах
+ nullfs холболтуудыг нөөцлөхийг хүсэхгүй байгаа билээ. Дээр дурдсан
+ fstab оруулга бүрийн сүүлийн хоёр багана
+ 0 0
гэж тэмдэглэгдсэн учир нь энэ юм.
+
+
+
+ Шоронгуудыг /etc/rc.conf-д тохируулах хэрэгтэй:
+
+ jail_enable="YES"
+jail_set_hostname_allow="NO"
+jail_list="ns mail www"
+jail_ns_hostname="ns.example.org"
+jail_ns_ip="192.168.3.17"
+jail_ns_rootdir="/home/j/ns"
+jail_ns_devfs_enable="YES"
+jail_mail_hostname="mail.example.org"
+jail_mail_ip="192.168.3.18"
+jail_mail_rootdir="/home/j/mail"
+jail_mail_devfs_enable="YES"
+jail_www_hostname="www.example.org"
+jail_www_ip="62.123.43.14"
+jail_www_rootdir="/home/j/www"
+jail_www_devfs_enable="YES"
+
+
+ Шорон бүрийн зөвхөн уншигдах файлын системд зориулсан, шаардлагатай
+ холбох цэгүүдийг үүсгэнэ:
+
+ &prompt.root; mkdir /home/j/ns /home/j/mail /home/j/www
+
+
+ Шорон бүрт уншигдах, бичигдэх загварыг суулгах хэрэгтэй.
+ sysutils/cpdup хэрэгслийн хэрэглээг
+ энд тэмдэглэх нь зүйтэй юм. Энэ нь сан бүрийн зөв хуулбарыг хийхэд
+ тусалдаг:
+
+
+ &prompt.root; mkdir /home/js
+&prompt.root; cpdup /home/j/skel /home/js/ns
+&prompt.root; cpdup /home/j/skel /home/js/mail
+&prompt.root; cpdup /home/j/skel /home/js/www
+
+
+ Энэ үед шоронгууд нь бүтээгдэж ажиллахад бэлтгэгдсэн
+ байна. Эхлээд шорон бүрийн хувьд шаардлагатай файлын
+ системийг холбож дараа нь тэдгээрийг /etc/rc.d/jail
+ скрипт ашиглан эхлүүлэх хэрэгтэй:
+
+ &prompt.root; mount -a
+&prompt.root; /etc/rc.d/jail start
+
+
+
+ Шоронгууд нь одоо ажиллаж байх ёстой. Тэдгээрийг зөв
+ эхэлсэн эсэхийг шалгахын тулд &man.jls.8; тушаалыг ашиглана.
+ Үүний гаралт доор дурдсантай төстэй байх ёстой:
+
+ &prompt.root; jls
+ JID IP Address Hostname Path
+ 3 192.168.3.17 ns.example.org /home/j/ns
+ 2 192.168.3.18 mail.example.org /home/j/mail
+ 1 62.123.43.14 www.example.org /home/j/www
+
+ Энэ үед шорон бүр рүү нэвтэрч, шинэ хэрэглэгчид нэмэх эсвэл
+ дэмонуудыг тохируулах боломжтой болсон байх ёстой.
+ JID багана нь ажиллаж байгаа шорон бүрийн
+ шорон таниулах дугаарыг илэрхийлдэг. JID нь
+ 3 бүхий шорон дотор удирдлагын ажлуудыг гүйцэтгэхийн тулд
+ дараах тушаалыг ашиглах хэрэгтэй:
+
+ &prompt.root; jexec 3 tcsh
+
+
+
+ Шинэчлэх нь
+
+ Аюулгүй байдлын асуудлаас болоод эсвэл одоо байгаа шоронгуудад
+ ашигтай шинэ боломжууд хийгдсэнээс болоод системээ &os;-ийн шинэ
+ хувилбар уруу шинэчлэх шаардлага заримдаа гардаг. Энэ тохиргооны
+ дизайн нь байгаа шоронгуудыг хялбар аргаар шинэчлэх боломжийг
+ олгодог. Мөн шоронгуудыг сүүлийн минутанд зогсоодог болохоор
+ энэ нь тэдгээрийн зогсох хугацааг багасгадаг. Бас ямар нэг асуудал
+ гарахад энэ нь хуучин хувилбар уруугаа шилжих боломжийг олгодог.
+
+
+
+ Эхний алхам нь хост системийг журмын дагуу шинэчлэх
+ явдал юм. Дараа шинэ, түр зуурын, зөвхөн уншигдах
+ загварыг /home/j/mroot2-д үүсгэх хэрэгтэй.
+
+ &prompt.root; mkdir /home/j/mroot2
+&prompt.root; cd /usr/src
+&prompt.root; make installworld DESTDIR=/home/j/mroot2
+&prompt.root; cd /home/j/mroot2
+&prompt.root; cpdup /usr/src usr/src
+&prompt.root; mkdir s
+
+ installworld ажиллахдаа цөөн хэрэггүй
+ сангуудыг үүсгэдэг бөгөөд эдгээрийг устгах хэрэгтэй:
+
+ &prompt.root; chflags -R 0 var
+&prompt.root; rm -R etc var root usr/local tmp
+
+
+ Мастер файлын системд зориулж уншигдах, бичигдэх симболын
+ холбоосуудыг дахин үүсгэх хэрэгтэй:
+
+ &prompt.root; ln -s s/etc etc
+&prompt.root; ln -s s/root root
+&prompt.root; ln -s s/home home
+&prompt.root; ln -s ../s/usr-local usr/local
+&prompt.root; ln -s ../s/usr-X11R6 usr/X11R6
+&prompt.root; ln -s s/tmp tmp
+&prompt.root; ln -s s/var var
+
+
+ Шоронгуудыг зогсоох зөв үе нь одоо байна:
+
+ &prompt.root; /etc/rc.d/jail stop
+
+
+ Эх файлын системүүдийг салгах хэрэгтэй:
+
+
+ &prompt.root; umount /home/j/ns/s
+&prompt.root; umount /home/j/ns
+&prompt.root; umount /home/j/mail/s
+&prompt.root; umount /home/j/mail
+&prompt.root; umount /home/j/www/s
+&prompt.root; umount /home/j/www
+
+
+ Уншигдах, бичигдэх системүүд нь зөвхөн уншигдах системд
+ залгагдсан (/s) бөгөөд
+ эхлээд салгагдах ёстой.
+
+
+
+ Хуучин зөвхөн уншигдах файлын системийг шилжүүлж шинээр
+ сольно. Ямар нэг юм болохоо байхад энэ нь хуучин, зөвхөн уншигдах
+ файлын системийн нөөц болон архив маягаар ашиглагдах юм.
+ Энд ашиглагдсан нэрлэх аргачлал нь шинэ, зөвхөн уншигдах файлын
+ систем үүсгэгдэх үеийнхтэй тохирдог. Зай болон inode-уудыг хэмнэхийн тулд
+ &os;-ийн эх портын цуглуулгыг шинэ файлын систем уруу шилжүүлэх хэрэгтэй:
+
+ &prompt.root; cd /home/j
+&prompt.root; mv mroot mroot.20060601
+&prompt.root; mv mroot2 mroot
+&prompt.root; mv mroot.20060601/usr/ports mroot/usr
+
+
+ Энэ үед шинэ, зөвхөн уншигдах загвар бэлэн болох бөгөөд
+ үлдсэн цорын ганц ажил нь файлын системүүдийг дахин холбож
+ шоронгуудыг эхлүүлэх явдал юм:
+
+ &prompt.root; mount -a
+&prompt.root; /etc/rc.d/jail start
+
+
+
+ Шоронгууд зөв эхэлсэн эсэхийг шалгахын тулд &man.jls.8;-г ашиглана.
+ Шорон бүрт mergemaster-г ажиллуулахаа мартуузай. Тохиргооны файлууд болон
+ rc.d скриптүүдийг шинэчлэх хэрэгтэй болно.
+
+
+
diff --git a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
index d6205310f1..53fea94328 100644
--- a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
@@ -1,1325 +1,1325 @@
Жим
Мок
Шинэчилж дахин бүтцийг өөрчилсөн
Жэйк
Хэмби
Анхлан хувь нэмэр болгож оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
FreeBSD цөмийг тохируулах нь
Ерөнхий агуулга
цөм
өөрчлөн тохируулж цөм бүтээх нь
Цөм нь &os; үйлдлийн системийн гол зүрх юм. Энэ нь санах ойг удирдах,
аюулгүй байдлын хяналтуудыг хийх, сүлжээнд холбогдох, диск уруу хандах
зэрэг олон үйлдлүүдийг хариуцан хийдэг. &os; улам илүү динамикаар тохируулагдах
болсон боловч зарим тохиолдолд цөмийг дахин тохируулж хөрвүүлэх шаардлага гардаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Та магадгүй яагаад өөрт тохируулсан цөм бүтээх хэрэгтэй талаар.
Цөмийн тохиргооны файлыг хэрхэн бичих эсвэл байгаа тохиргооны файлыг
хэрхэн өөрчлөх талаар.
Цөмийн тохиргооны файлыг хэрхэн ашиглаж шинэ цөм үүсгэж бүтээх талаар.
Шинэ цөмийг хэрхэн суулгах талаар.
Хэрэв юм буруугаар эргэвэл хэрхэн алдааг олох талаар.
Энэхүү бүлгийн жишээнүүд дэх тушаалууд нь амжилттай болохын тулд
root эрхээр ажиллах ёстой.
Яагаад өөрчлөн тохируулсан цөм бүтээх хэрэгтэй вэ?
Уламжлалаар бол &os; нь monolithic
цөмтэй байсан байна.
Энэ нь цөм тоотой хэдэн төхөөрөмжүүдийн жагсаалтыг дэмжсэн нэг том програм
байсан гэсэн үг бөгөөд хэрэв та цөмийн ажиллагааг өөрчлөх бол шинэ цөм хөрвүүлж
дараа нь компьютераа шинэ цөмөөр ачаалан эхлүүлэх шаардлагатай байсан билээ.
Өнөөдөр &os; нь цөмийн ихэнх ажиллагаагаа шаардлагын дагуу динамикаар ачаалдаг
ба цөмөөс буцааж буулгах боломж бүхий модулиудаар тусгаарлагдсан загвар уруу шилжиж
байна. Энэ нь цөм шинэ тоног төхөөрөмжид (зөөврийн компьютер дэх PCMCIA
картууд зэрэг) дасан зохицож түүнийг хурдан хүртээмжтэй болгох, эсвэл цөм анх
хөрвүүлэгдэхдээ цөмд хэрэггүй байсан шинэ ажиллагааг цөмд бий болгох боломжийг
бүрдүүлдэг. Үүнийг модульчлагдсан цөм хэмээдэг юм.
Тэгсэн ч гэсэн зарим статик цөмийн тохиргоог заавал хийх шаардлагатай. Зарим
тохиолдолд ажиллагаа нь цөмтэй нягт холбоотой учраас динамикаар ачаалахаар хийх
боломжгүй байдаг юм. Бас энэ нь энгийнээр бол тэр үйл ажиллагаанд зориулж динамикаар
ачаалах модулийг бичих цаг хэнд ч олдоогүй байж болох юм.
Өөрчлөн тохируулсан цөм бүтээх нь BSD хэрэглэгчийн хувьд хамгийн чухал тэсвэрлэн давж гарах
ажиллагаануудын нэг юм. Энэ процесс нь цаг их зарцуулах боловч таны &os; системд
олон ашиг өгөх болно.Өргөн хүрээний тоног төхөөрөмжүүдийг дэмжих ёстой
GENERIC цөмтэй харьцуулахад өөрчлөн тохируулсан цөм нь
зөвхөн таны PC-ний тоног төхөөрөмжүүдийг дэмждэг. Энэ нь дараах хэд хэдэн ашигтай:
Хурдан ачаалах хугацаа. Цөм нь таны систем дэх тоног төхөөрөмжүүдийг зөвхөн
шалгах учраас системийг ачаалах хугацаа мэдэгдэхүйц багасдаг.
Санах ойн ашиглалт багасна. Өөрчлөн тохируулсан цөм нь ихэнхдээ
GENERIC цөмөөс бага санах ойг ашигладаг бөгөөд
энэ нь их чухал юм, яагаад гэвэл цөм үргэлж жинхэнэ санах ойд байж байх
шаардлагатай байдаг. Ийм учраас өөрчилсөн цөм нь бага хэмжээний RAM-тай систем
дээр ялангуяа ашигтай байдаг.
Нэмэлт тоног төхөөрөмжийн дэмжлэг. Дууны картууд зэрэг
GENERIC цөмд байхгүй төхөөрөмжүүдийн дэмжлэгийг
нэмэх боломжийг танд өөрчлөн тохируулсан цөм олгоно.
Өөрчлөн тохируулсан цөмийг бүтээх ба суулгах нь
цөм
бүтээх / суулгах
Эхлээд цөм бүтээх сангаар аялая. Дурдсан бүх сангуудаас гол нь
/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
Энэ хувьсагч нь бүгдийг биш бүтээх модулиудын жагсаалтыг тодорхойлдог.
Цөмийг бүтээх процессийн явцад танд хэрэг болохуйц бусад хувьсагчуудын тухайд
&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 файлаас үзнэ үү.
Тест хийх зорилгоор ихэнхдээ бүх байгаа тохируулгууд агуулсан файлыг бүтээхдээ
дараах тушаалыг 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) хийх мэдээлэл идэвхждэг. Үүнтэй нэгэн адилаар
хэрэв та уламжлалт
аргаар өөрийн цөмийг бүтээж байгаа бол
(дэлгэрэнгүйг -ээс үзнэ үү)
&man.config.8; тохируулгыг ашиглаж болно.
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 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
Энэ тохируулга нь гартай холбоотой. Энэ нь CDEV оруулгыг /dev-д
суулгадаг.
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
Энэ нь дибаг хийхэд тусалж уншихад зориулж регистрийн амархан тодорхойлолтуудыг
хэвлэдэг.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Giant гэдэг нь харилцан нэгийгээ оруулахгүй байх зарчмын (унтах мутекс) нэр бөгөөд
энэ нь цөмийн их эх үүсвэрүүдийг хамгаалдаг. Өнөөдөр энэ нь үйл ажиллагааны саатаж
байгаа хүлээн авах боломжгүй хэсэг бөгөөд үүнийг эх үүсвэр бүрийг хамгаалах цоожуудаар
идэвхтэйгээр сольж байгаа билээ. ADAPTIVE_GIANT тохируулга нь
хэсэг бүлэг мутексуудад Giant-ийг адаптиваар эргэхээр оруулдаг. Энэ нь урсгал (thread)
Giant мутексийг цоожлохыг хүсэж байх үед, гэхдээ энэ нь өөр CPU дээр урсгалаар цоожлогдсон
байна, эхний урсгал цоож сулрахыг хүлээн ажилласаар байна. Хэвийн үед урсгал унтаа байдалд
эргэж орох бөгөөд өөрийн дараагийн ажиллах боломжийг хүлээнэ. Та итгэлгүй байгаа бол
үүнийг орхино уу.
цөмийн тохируулгууд
SMP
device apic # I/O APIC
apic төхөөрөмж нь I/O APIC-ийг тасалдал хүргэхэд ашиглах боломжийг нээдэг.
apic төхөөрөмж нь UP болон SMP цөмүүдэд хоёуланд нь ашиглагдаж болох бөгөөд
гэхдээ SMP цөмд зайлшгүй шаардлагатай. options SMP
мөрийг нэмж олон процессорын дэмжлэгийг оруулна уу.
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
device ahd # AHA39320/29320 and onboard AIC79xx devices
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)
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 системтэй бол эдгээр мөрүүдийг бүгдийг устгаж болно.
# 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
Тэжээлийн Нарийн Удирдлагын дэмжлэг. Зөөврийн компьютеруудад ашигтай,
гэхдээ энэ нь &os; 5.X болон түүнээс хойшхи хувилбаруудад 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 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 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
device an # Aironet 4500/4800 802.11 wireless NICs.
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 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 гигабайтаас илүүд процесс хандаж чадахгүй.
Модул болон цөмийн бүтээх ажлын хүрээний ялгаатай байдлаас болж
KLD модулиудыг PAE
идэвхжүүлсэн цөмд ачаалж болохгүй.
&man.bus.dma.9; интерфэйс ашигладаггүй төхөөрөмжийн драйверууд
PAE-г идэвхжүүлсэн цөм дээр өгөгдлийн эвдрэлийг
үүсгэх бөгөөд ашиглахыг зөвлөдөггүй юм. Ийм учраас PAE-г
идэвхжүүлсэн цөм дээр ажилладаггүй бүх драйверуудыг оруулаагүй
PAE цөмийн тохиргооны файл &os;-д байдаг.
Зарим нэг тохируулгууд санах ойн эх үүсвэрийн хэрэглээг физик санах ойн
хэмжээгээр тодорхойлдог. Эдгээр тохируулгууд нь PAE
системийн их санах ойгоос болж хэрэгцээгүй илүү санах ойг гаргадаг.
Тийм нэг жишээнүүдийн нэг нь sysctl-ийн
тохируулга бөгөөд энэ нь цөм дэх хамгийн их байж болох vnode-уудын тоог хянадаг.
Энэ болон бусад тохируулгуудын утгыг боломжийн утгаар тааруулахыг зөвлөж байна.
Магадгүй цөмийн виртуал хаягийн (KVA) зайг ихэсгэх
эсвэл KVA-ийн шавхалтад хүргэхгүйн тулд байнга их ашиглагддаг
(дээр дурдсаныг харна уу) цөмийн эх үүсвэрийн хэмжээг багасгах шаардлагатай
байж болох юм. цөмийн тохируулга нь
KVA зайг ихэсгэхэд ашиглагдаж болно.
Ажиллагаа болон тогтвортой байдлыг хангах үүднээс &man.tuning.7; гарын
авлагатай танилцахыг зөвлөж байна. &man.pae.4; гарын авлага нь
&os;-ийн PAE дэмжлэгийн тухай хамгийн сүүлийн
үеийн мэдээллийг агуулдаг.
Хэрэв ямар нэг юм буруутвал
Өөрчлөн тохируулсан цөмийг бүтээж байх үед 5 төрлийн асуудал гарч
болзошгүй байдаг. Тэдгээр нь:
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 5d2d093dd6..4fc332cb8c 100644
--- a/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml
@@ -1,3207 +1,3201 @@
FreeBSD-г олж авах нь
CDROM болон DVD Нийтлэгчид
Жижиглэнгийн хайрцагласан бүтээгдэхүүнүүд
FreeBSD нь хайрцагласан бүтээгдэхүүн хэлбэрээр (FreeBSD CD-үүд,
нэмэлт програм хангамж, болон хэвлэсэн баримт) хэд хэдэн жижиглэн
худалдаалагчдаас гардаг:
CompUSA
WWW:
Frys Electronics
WWW:
CD болон DVD цуглуулгууд
FreeBSD CD болон DVD цуглуулгуудыг олон жижиглэн худалдаалагчдаас
шууд худалдан авах боломжтой байдаг:
BSD Mall by Daemon News
PO Box 161
Nauvoo, IL 62354
USA
Утас: +1 866 273-6255
Факс: +1 217 453-9956
Email: sales@bsdmall.com
WWW:
BSD-Systems
Email: info@bsd-systems.co.uk
WWW:
FreeBSD Mall, Inc.
3623 Sanford Street
Concord, CA 94520-1405
USA
Утас: +1 925 674-0783
Факс: +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:
Linux CD Mall
Private Bag MBE N348
Auckland 1030
New Zealand
Утас: +64 21 866529
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;
Нэргүй 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.at.FreeBSD.org:/home/ncvs
(cvs login тушаалыг ашиглаж асуух үед нь дурын нууц үг оруулна.)
Франц:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (нууц үг anoncvs
), ssh (нууц үггүй))
-
- Герман:
- :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
- (cvs login тушаалыг ашиглаж асуух үед нь
- anoncvs
нууц үгийг оруулна.)
-
Герман:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
Япон:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(cvs login тушаалыг ашиглаж асуух үед нь
anoncvs
нууц үгийг оруулна.)
Тайвань:
:pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
(cvs login тушаалыг ашиглаж асуух үед нь дурын нууц үг оруулна.)
АНУ:
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.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
At the prompt, enter the password anoncvs
.
&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.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
At the prompt, enter the password anoncvs
.
&prompt.user; cvs co -rRELENG_6 ls
&man.ls.1;-д хийгдсэн өөрчлөлтүүдийн жагсаалтыг (нэгдсэн ялгаанууд хэлбэрээр) үүсгэх нь
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
At the prompt, enter the password anoncvs
.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
Өөр бусад ямар модулийн нэрс ашиглагдаж болохыг олох нь:
&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs login
At the prompt, enter the password anoncvs
.
&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/it_*
doc/ja_*
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-bugs@polstra.com
руу хаяглах ёстой.
CVSup сайтууд
FreeBSD-д зориулсан CVSup серверүүд дараах хаягууд дээр
ажиллаж байгаа:
&chap.mirrors.cvsup.inc;
Portsnap-г ашиглах нь
Танилцуулга
Portsnap нь &os;-ийн портын модыг
аюулгүйгээр түгээхэд зориулагдсан систем юм. Дунджаар цаг тутам
портын модны snapshot
буюу хормын хувилбар үүсгэгдэж
дахин багцлагдаж криптографын хувьд баталгаажуулагддаг. Үүний үр дүнд гарсан
файлууд нь дараа нь HTTP-ээр түгээгддэг.
CVSup-ийн адил
Portsnap нь шинэчлэлтийн
pull буюу татах
загварыг ашигладаг: Багцлагдаж баталгаажуулагдсан портын моднууд
клиентүүдээс ирэх файлын хүсэлтийг идэвхгүйгээр хүлээж байдаг вэб сервер дээр
байрлуулагддаг. Хэрэглэгчид шинэчлэлтүүдийг татаж авахын тулд
&man.portsnap.8;-г гараар ажиллуулах эсвэл шинэчлэлтүүдийг автоматаар
тогтмол татаж авдгаар &man.cron.8; ажлыг тохируулах ёстой.
Техникийн шалтгаануудаас болоод Portsnap
нь амьд
портын модыг /usr/ports/
санд шууд шинэчилдэггүй; харин анхдагчаар /var/db/portsnap/
санд хадгалагдсан портын модны шахагдсан хуулбараар дамжуулан ажилладаг.
Энэ шахагдсан хуулбар нь дараа нь амьд портын модыг шинэчлэхэд хэрэглэгддэг.
Хэрэв Portsnap нь &os;-ийн
портын цуглуулгаас суулгагдсан бол түүний шахагдсан хормын хувилбарт
зориулсан анхдагч байрлал нь /var/db/portsnap/-ийн
оронд /usr/local/portsnap/ байх болно.
Суулгалт
&os; 6.0 болон сүүлийн хувилбарууд дээр Portsnap нь
&os; үндсэн систем дээр байдаг. &os;-ийн хуучин хувилбарууд дээр үүнийг
ports-mgmt/portsnap портыг
ашиглан суулгаж болно.
Portsnap-ийн тохиргоо
Portsnap-ийн ажиллагаа
/etc/portsnap.conf тохиргооны файлаар хянагддаг.
Ихэнх хэрэглэгчдийн хувьд анхдагч тохиргооны файл хангалттай; илүү дэлгэрэнгүйг
&man.portsnap.conf.5; гарын авлагын хуудаснаас лавлана уу.
Хэрэв Portsnap нь &os;-ийн
портын цуглуулгаас суулгагдсан бол /etc/portsnap.conf-ийн
оронд /usr/local/etc/portsnap.conf тохиргооны файлыг
ашиглах болно. Энэ тохиргооны файл нь порт суулгагдах үед үүсгэгддэггүй, гэхдээ
жишээ тохиргооны файл түгээгддэг; түүнийг байрлал уруу нь хуулаад дараах
тушаалыг ажиллуулна:
&prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf
Portsnap-г эхний удаа ажиллуулах нь
&man.portsnap.8; эхний удаа ажиллахдаа бүхэл портын модны шахагдсан
хормын хувилбарыг /var/db/portsnap/ (хэрэв
Portsnap нь портын цуглуулгаас суулгагдсан бол
/usr/local/portsnap/ байна) руу татаж
авах хэрэгтэй болдог. 2006 оны эхнээс эхлээд энэ нь ойролцоогоор 41 MB
татаж авахаар байна.
&prompt.root; portsnap fetch
Шахагдсан хормын хувилбар татагдсаны дараа портын модны амьд
хуулбарыг /usr/ports/ руу задалж болно. Энэ нь
портын модны аль хэсгүүд сүүлд шинэчлэгдэх ёстойг portsnap тодорхойлж
чадах үндсэн шугамыг тогтоож өгдөг болохоор портын мод (өөрөөр хэлбэл
CVSup ашиглан) энэ сан уруу үүсгэгдсэн
байсан ч гэсэн энэ үйлдэл шаардлагатай байдаг.
&prompt.root; portsnap extract
Анхдагч суулгалтад /usr/ports
сан үүсгэгддэггүй. Хэрэв та &os; 6.0-RELEASE-г ажиллуулж байгаа бол
энэ нь portsnap-г ашиглаж эхлэхээс өмнө үүсгэгдсэн
байх ёстой. &os; эсвэл Portsnap-ийн сүүлийн
хувилбарууд дээр энэ үйлдэл нь portsnap тушаалыг
эхлэн ашиглахад автоматаар хийгдэх болно.
Портын модыг шинэчлэх нь
Портын модны эхний шахагдсан хормын хувилбар татагдаж
/usr/ports/ руу задлагдсаны дараа
портын модыг шинэчлэх явц хоёр алхмаас тогтоно: шинэчлэлтүүдийг
шахагдсан хормын хувилбар руу татан авч
амьд портын модыг шинэчлэхийн
тулд тэдгээрийг ашиглана. Эдгээр хоёр алхмыг portsnap
руу нэг тушаалаар зааж өгч болно:
&prompt.root; portsnap fetch update
portsnap-ийн зарим хуучин хувилбарууд
энэ бичлэгийг дэмждэггүй; хэрэв энэ нь амжилтгүй болвол доор дурдсаныг
туршаад үзээрэй:
&prompt.root; portsnap fetch
&prompt.root; portsnap update
Portsnap-г cron-с ажиллуулах нь
Portsnap серверүүдэд
хандахад олон хүн
холбогдсон асуудлуудыг
тойрон гарахын тулд portsnap fetch
тушаал нь &man.cron.8; ажлаас ажиллахгүй. Харин
тусгай portsnap cron тушаал байх
бөгөөд энэ нь шинэчлэлтүүдийг татаж авахаасаа өмнө
3600 секунд хүртэл санамсаргүй хугацаагаар хүлээдэг.
Мөн энэ нь порт бүтээгдэж байх үед юм уу эсвэл суулгагдаж байх үед ажиллавал
асуудлууд үүсгэх магадлалтай болохоор portsnap update
тушаалыг cron ажлаас ажиллуулахгүй
байхыг тууштай зөвлөдөг. Гэхдээ портын INDEX
файлуудыг шинэчлэх нь аюулгүй байдаг бөгөөд үүнийг
тугийг portsnap тушаалд өгч хийж болно.
(Мэдээж хэрэв portsnap -I update нь
cron-с ажиллавал үлдсэн модыг шинэчлэхийн
тулд portsnap update тушаалыг
туггүйгээр дараа нь ажиллуулах хэрэгтэй болно.)
Дараах мөрийг /etc/crontab файлд
нэмэхэд portsnap-ийг өөрийн шахагдсан хормын
хувилбар болон INDEX файлуудыг
/usr/ports/ санд шинэчлэж
суулгагдсан портуудаас хуучин портууд байвал цахим захидал илгээхэд
хүргэх болно:
0 3 * * * root portsnap -I cron update && pkg_version -vIL=
Хэрэв системийн цагийг локал цагийн бүс гэж тохируулаагүй бол
Portsnap серверүүд дээр ачааллыг
тэгш хуваарилахын тулд 3 гэдгийг 0-с 23-ын
- хоорондох санамсаргүй утгаар солино уу.
+ хоорондох санамсаргүй утгаар сольно уу.
portsnap-ийн зарим хуучин хувилбарууд
portsnap-тай цуг зэрэг олон тушаалуудыг жагсаахыг дэмждэггүй
(өөрөөр хэлбэл cron update). Хэрэв
дээрх мөр амжилтгүй болвол portsnap -I cron update
тушаалыг portsnap cron && portsnap -I update
тушаалуудаар солиод үзээрэй.
CVS Tags буюу хаягууд
cvs эсвэл
CVSup ашиглан эхийг авах юм уу эсвэл шинэчилж
байгаа үед revision tag буюу залруулалтын хаягийг зааж өгөх ёстой байдаг.
Залруулалтын хаяг нь &os; хөгжүүлэлтийн тодорхой нэг байх юм уу эсвэл
хугацааны тодорхой нэг цэг байдаг. Эхнийх нь branch tags
буюу салбарын хаягууд
гэгддэг бөгөөд хоёр дахь нь
хувилбарын хаягууд
гэгддэг.
Салбарын хаягууд
HEAD-с (энэ нь үргэлж зөв хаяг байдаг) бусад бүх
хаягууд зөвхөн src/ модонд хамаардаг.
ports/, doc/, болон
www/ моднууд нь салбарладаггүй.
HEAD
Гол шугамын симболын нэр, эсвэл FreeBSD-CURRENT.
Залруулалт заагаагүй тохиолдолд бас анхдагч байдаг.
CVSup-д энэ хаяг нь
. гэсэн тэмдэгтээр илэрхийлэгддэг
(цэг биш харин . тэмдэгт).
CVS-д энэ нь залруулалт заагаагүй тохиолдолд анхдагч байдаг.
Хэрэв та өөрөө хүсээгүй л бол STABLE машин дээр CURRENT
эхийг татан авч шинэчлэх нь ихэвчлэн тийм ч сайн санаа
биш юм.
RELENG_6
FreeBSD-6.X-д зориулсан хөгжүүлэлтийн шугам, бас
FreeBSD 6-STABLE гэгддэг
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_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://grappa.unix-ag.uni-kl.de/
Байгаа цуглуулгууд:
freebsd-cvs: Бүрэн FreeBSD CVS архив.
Үүнээс гадна энэ машин нь NetBSD болон OpenBSD төслүүдийн CVS архивуудыг бас толин тусгал
хийдэг.
Нидерланд
rsync://ftp.nl.FreeBSD.org/
Байгаа цуглуулгууд:
vol/4/freebsd-core: FreeBSD FTP серверийн бүрэн толин тусгал.
Тайвань
rsync://ftp.tw.FreeBSD.org/
rsync://ftp2.tw.FreeBSD.org/
rsync://ftp6.tw.FreeBSD.org/
Байгаа цуглуулгууд:
FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
Их Британи
rsync://rsync.mirror.ac.uk/
Байгаа цуглуулгууд:
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 5d3404c8e2..9fa08114ea 100644
--- a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
@@ -1,4532 +1,4532 @@
Мюррей
Стөүкли
Дахин зохион байгуулсан
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний орчны Серверүүд
Ерөнхий агуулга
Энэ бүлэгт өргөн хэрэглэгддэг, &unix; системүүдийн сүлжээний орчинд ажилладаг
үйлчилгээнүүдийн талаар авч үзэх болно. Бид энд олон өөр үйлчилгээнүүдийг хэрхэн
суулгах, тохируулах, шалгах болон засвар үйлчилгээг хариуцах талаар үзэх болно.
Танд зориулж жишээ тохиргооны файлуудыг мөн оруулж өгсөн байгаа.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
inetd дэмонг хэрхэн удирдах.
Сүлжээний орчны файл системийг хэрхэн зохион байгуулах.
Хэрэглэгчийн бүртгэлийг хуваалцах сүлжээний орчны мэдээллийн серверийг хэрхэн зохион байгуулах.
DHCP ашиглан автоматаар сүлжээний тохиргоог хэрхэн хийх.
Домэйн нэрийн серверийг хэрхэн зохион байгуулах.
Apache HTTP Серверийг хэрхэн зохион байгуулах.
File Transfer Protocol буюу Файл Дамжуулах Протокол(FTP) Серверийг хэрхэн зохион байгуулах.
Samba ашиглан &windows; хэрэглэгчид зориулсан
файл болон хэвлэгч серверийг хэрхэн зохион байгуулах.
Цаг болон өдрийг тохируулах хийгээд NTP протокол ашиглан цагийн серверийг хэрхэн зохион байгуулах.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдсэн байх шаардлагатай:
/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
inetd-н эдгээр тохируулгуудыг
/etc/rc.conf файл доторх
inetd_flags тохируулгын тусламжтай зааж өгч болно.
Анхдагч байдлаар, 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-р дуудагдсан
дэмон өөрийн сокетийг зохицуулж чадах эсэхийг заана.
сокеттой дэмоны хувьд тохируулгыг
хэрэглэнэ. Харин ихэвчлэн олон салаатай байдаг
stream сокеттой дэмоны хувьд тохируулгыг хэрэглэх
хэрэгтэй. нь ихэвчлэн олон сокетийг нэг дэмонд
шилжүүлэн өгдөг бол, нь шинээр үүссэн сокет тус бүрт
харгалзуулан хүүхэд дэмонг салаалуулан үүсгэдэг.
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-н тохиргоог дахин
+тэмдгийг тавьна. Дараа нь 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/nfslocking 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)
DHCP, Dynamic Host Configuration Protocol буюу Динамик Хостын Тохиргооны Протокол нь
систем ямар байдлаар сүлжээнд холбогдох,
тухайн сүлжээнд харилцаанд орохын тулд шаардагдах
мэдээллийг хэрхэн олж авахыг зааж өгдөг. FreeBSD-н
6.0-с өмнөх хувилбарууд ISC (Internet Software 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-г нэмэлт тугуудын хамт ажиллуулах хүсэлтэй бол,
дараах мөрүүдийг нэмж бичнэ үү (эсвэл шаардлагатай хэсгийг засаж бичнэ үү):
dhcp_program="/sbin/dhclient"
dhcp_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 серверийг
ашиглан 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
-н мэдэлд байдаг.
Нэр Томъёо
Энэ баримтыг ойлгохын тулд, DNS-тэй холбоотой
зарим нэр томъёог ойлгосон байх шаардлагатай.
resolver
reverse DNS
root zone
Нэр
Тайлбар
Forward буюу Ердийн DNS
Хост нэрийг IP хаяг руу буулгана.
Origin буюу Үүсэл
Тухайн бүсийн файлд хамрагдаж байгаа домэйныг заана.
named, BIND, нэрийн сервер
&os;-н BIND нэрийн серверийг нэрлэх түгээмэл нэршил.
Resolver буюу Тайлагч
Машин, бүсийн мэдээллийн талаар нэрийн серверээс асуулга
явуулахын тулд ашигладаг системийн процесс.
Reverse буюу Урвуу DNS
Ердийн DNS-н урвуу нь; 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
хаягуудыг агуулсан бүс.
Хост нэр зүүн тал руугаа явах тусам илүү тодорхой
болж байгааг та бүхэн анзаарсан байх. Жишээлбэл, example.org.
нь org.-с илүү тодорхой, харин org. нь эх бүсээс
илүү тодорхой байна. Хост нэрийн зохион байгуулалт нь
файл системийнхтэй төстэй: /dev директор нь
эх директорт харъяалагдана, гэх мэт.
Нэрийн Сервер ажиллуулах Шалтгаанууд
Нэрийн Серверүүд ихэвчлэн хоёр янз байна: authoritative буюу бүрэн эрхт нэрийн сервер,
ба caching буюу түр тогтоогч нэрийн сервер.
Бүрэн эрхт нэрийн сервер нь дараах тохиолдлуудад хэрэгтэй:
DNS мэдээллийг өөртөө агуулж, энэ мэдээллийг нийтэд зарлан,
ирсэн асуулгуудад бүрэн эрхтэйгээр хариулах хүсэлтэй үед.
Бүртгэлтэй домэйны хувьд, жишээлбэл example.org,
түүний дор орших хост нэрүүдэд IP хаяг оноож өгөх хэрэгтэй үед.
Бүлэг IP хаягуудад урвуу DNS мэдээлэл хэрэгтэй үед
(IP-с хост нэр рүү).
Нөөц эсвэл хоёрдогч нэрийн сервер, зарц гэж нэрлэнэ,
асуулгуудад хариулуулах шаардлагатай үед.
Түр тогтоогч нэрийн сервер дараах тохиолдлуудад хэрэгтэй:
Дотоод DNS сервер нь асуулгын хариуг
түр тогтоосноор гадаад нэрийн серверээс илүү хурдан хариу өгч
байгаа үед.
www.FreeBSD.org-р асуулга явуулсан үед, тайлагч ихэвчлэн
үйлчилгээ авдаг ISP-нхаа нэрийн серверээс асуугаад хариуг олж авна.
Дотоод, түр тогтоогч DNS сервер ажиллуулснаар,
асуулгыг гадаад интернэтээс зөвхөн ганц удаа явуулах бөгөөд,
хариуг тогтоож авна. Түүнээс хойших асуулгуудад түр тогтоогч нэрийн сервер
хариулах ба гадагшаа дахин асуулга явуулах шаардлага байхгүй.
Хэрхэн ажилладаг вэ?
&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; орчинд ажиллах, тайлагч нэрийн сервер байдлаар хийгдсэн байдаг.
Энэ тохиргоогоор серверийг ажиллуулахын тулд дараах тушаалыг өгөх хэрэгтэй:
&prompt.root; /etc/rc.d/named forcestart
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 {
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;
// 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;
};
*/
Тайлбар дээр хэлсэнчлэн
дээд гарцын түр тогтоогчоос хүртэхийн тулд
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;
};
// 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.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
// 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";
};
// 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.
//
// 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.)
//
// 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.
//
// 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;
};
};
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
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum 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 нь www.үүсэл-руу хөрвүүлэгдэх болно.
Манай жишээн дээр бол, бидний үүсэл example.org. тул www нь
www.example.org. болж хөрвүүлэгдэнэ.
Бүсийн файл дараах хэлбэртэй байна:
recordname IN recordtype value
DNS
бичлэгүүд
Хамгийн өргөн хэрэглэгддэг DNS бичлэгүүд:
SOA
start of zone authority буюу бүсийн бүрэн эрхт мэдээллийн эхлэл
NS
бүрэн эрхт нэрийн сервер
A
хостын хаяг
CNAME
хуурамч дүрд өгөх хүлээн зөвшөөрөгдсөн нэр
MX
захидал солилцогч
PTR
домэйн нэрийг заагч (урвуу DNS-д хэрэглэнэ)
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
example.org.
домэйн нэр, мөн энэ бүсийн файлын хувьд үүсэл болно.
ns1.example.org.
энэ бүсийн гол/бүрэн эрхт нэрийн сервер.
admin.example.org.
энэ бүсийг хариуцагч хүн, @
тэмдэгтийг нь орлуулсан
цахим захидлын хаяг. (admin@example.org нь admin.example.org болно)
2006051501
Файлын сериал дугаар. Бүсийн файлд өөрчлөлт оруулах болгонд
энэ дугаарыг нэмэгдүүлэх шаардлагатай. Одоо цагт ихэнх админууд энэ сериал дугаарыг
yyyymmddrr хэлбэрээр хэрэглэх болсон. 2006051501 гэдэг нь
хамгийн сүүлд 05/15/2006-нд засвар хийсэн, хамгийн сүүлийн 01 гэдэг нь
энэ өдөр хийгдсэн хамгийн анхны засвар гэдгийг илтгэнэ. Энэ сериал дугаар
нь зарц серверүүдэд бүсийн мэдээлэл өөрчлөгдсөн талаар мэдээлэл өгдөг тул их чухал зүйл
байгаа юм.
IN NS ns1.example.org.
Энэ бол NS бичлэг. Тухайн бүсийн хувьд бүрэн эрхт хариултыг
өгч чадах сервер бүрийн хувьд энэ бичлэг байх ёстой.
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-руу буулгагдана.
IN A 192.168.1.1
Энэ мөр нь 192.168.1.1 гэсэн IP хаягийг
үүсэлд оноож байна, бидний жишээн дээр example.org.
www IN CNAME @
Хүлээн зөвшөөрөгдсөн нэрийн бичлэг нь машинд хуурамч дүр
өгөхөд хэрэглэгдэнэ. Энэ жишээн дээр, www нь
example.org (192.168.1.1) гэсэн домэйн нэртэй
эзэн
машины хуурамч дүрийн нэр юм. CNAME-г хуурамч хост нэр өгөхөд,
эсвэл олон машины дунд тойрч хэрэглэгдэх нэг хост нэр өгөхөд хэрэглэнэ.
MX бичлэг
IN MX 10 mail.example.org.
MX бичлэг нь аль захидлын серверүүд тухайн бүсийн захидлыг
хүлээж авах үүрэгтэй болохыг зааж өгнө. mail.example.org
нь захидлын серверийн хост нэр бөгөөд 10 нь энэ захидлын серверийн
зэрэглэлийг зааж байна.
Нэг бүсэд 10, 20 гэх мэт ялгаатай зэрэглэлтэй
хэд хэдэн захидлын сервер байж болно. example.org
домэйн руу захидал явуулах гэж байгаа сервер эхлээд
хамгийн өндөр зэрэглэлтэй MX сервертэй (хамгийн бага зэрэглэлийн дугаартай), дараа нь дараагийн хамгийн өндөр зэрэглэлтэй
сервертэй гэх мэтчилэн захидлыг явуулж чадтал дарааллаар нь холбоо тогтооно.
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
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-с хост нэр рүү буулгасан
зохих шаардлагатай буулгалтуудыг үзүүлсэн байна.
Түр тогтоогч Нэрийн Сервер (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-н Албан ёсны Хэлэлцүүлэг
BIND FAQ
O'Reilly
"DNS ба BIND" 5 дахь Хэвлэлт
RFC1034
- Домэйн Нэрүүд - Зарчмууд болон Боломжууд
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
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/apache20
портоос авч болно. SSL дэмжлэг автоматаар идэвхжсэн байдаг.
Perl & PHP орсон Динамик Вебсайтууд
Сүүлийн жилүүдэд, өөрийн ашиг орлогыг нэмэгдүүлэх,
хүмүүст хүрэх зорилгоор илүү олон компаниуд
бизнесээ Интернэтээр явуулах болжээ. Энэ нь
динамик агуулгатай вэб хуудсууд төрөн гарах
хэрэгцээ шаардлагыг улам нэмэгдүүлсэн. µsoft; гэх мэт зарим компаниуд
ч өөрийн бүтээгдэхүүнүүдэд тэдгээрээс оруулах болсон хэдий ч,
нээлттэй эхийн нэгдэл энэ асуудалд хариу өгсөн юм. Динамик вэб агуулгыг
бий болгох хоёр боломж бол mod_perl &
mod_php байлаа.
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-той ажилладаг гэдгийг
санаарай. 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-г дахин ачаалах шаардлагатай.
Одоо та дараах тушаалыг өгөн 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/etc/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
хэсэгт тайлбарласан ёсоор,
энэ тохиргооны файлд өөрчлөлт оруулсны дараа
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 HOWTO-с олж авна уу.
Энд цухас дурдсан үндсэн мэдлэгтэйгээр Samba-г ажиллуулж
эхлэх чадвартай байх ёстой.
Samba-г Эхлүүлэх нь
net/samba3 портод Samba-г
удирдахад зориулсан шинэ эхлэл скрипт орсон байгаа. Энэ
скриптийг идэвхжүүлэхийн тулд, өөрөөр хэлбэл энэ скриптийг ашиглан
Samba-г эхлүүлэх, зогсоох болон дахин эхлүүлдэг болохын тулд,
/etc/rc.conf файл дотор дараах мөрийг нэмж бичих хэрэгтэй:
samba_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.sh скриптээр эхлүүлдэг болохыг та анзаарах болно.
Хэрэв smb.conf дотор winbind нэр тайлах үйлчилгээг идэвхжүүлсэн бол
winbindd дэмон бас ажиллаж эхэлсэн болохыг харж болно.
Samba-г хүссэн үедээ зогсоохын тулд дараах тушаалыг өгөхөд
хангалттай:
&prompt.root; /usr/local/etc/rc.d/samba.sh 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
Хэрэв та зөвхөн өөрийн сүлжээнд байгаа машинуудыг
таны сервертэй цагаа тааруулахыг зөвшөөрөөд, гэхдээ
таны серверийн тохиргоог өөрчлөх болон тэгш эрхтэй серверүүд шиг
цагийн мэдээллийг хуваахыг зөвшөөрөхгүй бол дээр дурдсаны оронд:
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/-с олж үзэж болно.
diff --git a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
index 81fd988797..7954644a50 100644
--- a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
@@ -1,1350 +1,1350 @@
Шагдарын
Нацагдорж
Орчуулсан
Програм суулгах: Багцууд болон портууд
Ерөнхий агуулга
портууд
багцууд
Маш олон системийн хэрэгслүүд FreeBSD-н үндсэн системтэй нь хамт суугддаг. Гэхдээ зарим хүмүүст ажлаа гүйцээхийн тулд маш олон гуравдагчдын бэлтгэсэн програмыг суулгах шаардлага гардаг билээ. Таны систем дээр гуравдагчийн бүтээсэн програмуудыг суулгах хоёр үндсэн маш сайн аргыг FreeBSD хангаж өгдөг нь: FreeBSD-н портын цуглуулга (эх бичлэгээс нь суулгахад зориулагдсан), ба багцууд (урьдчилан хөрвүүлсэн хоёртын хэлбэрийн файлаас суулгахад зориулагдсан) юм.
Энэ хоёр арга нь хоёулаа таны суулгахыг хүссэн програмын хамгийн сүүлийн хувилбарыг сүлжээ юм уу дотоод төхөөрөмжөөс суулгахад хэрэглэгдэнэ.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Гуравдагчдын бүтээсэн програмын багцыг хэрхэн суулгах.
Портын цуглуулга ашиглаж гуравдагчдын програмыг эх бичлэгээс нь хэрхэн бүтээх.
Өмнө суугдсан багц юм уу эсвэл портуудыг хэрхэн устгах.
Портын цуглуулгын хэрэглэдэг анхдагч утгуудыг хэрхэн дарж бичих.
Шаардлагатай програмын багцаа хэрхэн хайж олох.
Програмаа хэрхэн шинэчилсэн түвшинд авчрах.
Програм суулгацын ерөнхий ойлголт
Хэрэв та урьд нь &unix; системийг хэрэглэж байсан бол, гуравдагчдын бүтээсэн програмыг суулгах явц дараах маягаар явагддаг билээ:
Програмыг татаж авах. Энэ нь голдуу эх бичлэг хэлбэрээрээ юм уу эсвэл хөрвүүлэгдсэн хоёрт файлын хэлбэрээр байдаг.
Авсан програмаа задлах
(ихэнх нь &man.compress.1;,
&man.gzip.1;, эсвэл &man.bzip2.1; нараар шахагдсан байдаг).
Бичиг баримт нь хаана байгааг олоод (голдуу
INSTALL юм уу README
файлууд байдаг ба, эсвэл doc/
гэсэн дэд санд буй бичиг баримтууд) хэрхэн суулгах зааврыг нь унших.
Хэрэв програм нь эх бичлэг хэлбэрээрээ байгаа бол, түүнийг хөрвүүлэх.
Ингэхийн тулд магадгүй
Makefile файлыг засварлах, эсвэл
configure скриптийг ажиллуулах зэрэг ажлууд байдаг.
Програмыг шалгаад, дараа нь суулгах.
Хэрэв бүх зүйл сайхан бүтсэн үед л ийм явц үйлдэгддэг. Хэрэв та тусад нь FreeBSD-д зориулж порт болгоогүй програмыг суулгахыг хүсвэл, магадгүй та уг програмыг ажиллуулахын тулд тухайн програмын эх кодыг засварлах хэрэг гарна.
Хэрэв та хүсэж байгаа бол, иймэрхүү
уламжлалт
аргаар програмыг FreeBSD дээр суулгаж болно. Гэхдээ FreeBSD дээр таны нөр их хөдөлмөрийг хөнгөлөх хоёр арга байдаг нь:
багцууд болон портууд юм. Энэ баримтжуулалтыг бэлтгэж байх үед &os.numports; гаран гуравдагчийн бэлтгэсэн програмууд ийм аргаар бэлэн болсон байгаа.
Ямар ч програм байсан, FreeBSD дээрх уг програмын багц гэж ердөө нэг л файлыг та татаж авах ёстой байдаг. Уг багц дотор тухайн програмын урьдчилан хөрвүүлсэн хувилбар, бичиг баримт болон тохируулга хийх скриптүүд зэрэг нь багтсан байгаа. Татаж авагдсан багц файлыг &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1; зэрэг FreeBSD-н багц зохицуулагч програмаар өөрчилж болдог. Шинэ програм суулгах явцыг нэг л тушаалаар гүйцэтгэхийг эрмэлзсэн байдаг билээ.
Програмуудын FreeBSD порт гэдэг нь, тухайн програмуудыг эх бичлэгээс хөрвүүлж автоматаар суулгах зориулалттай бүлэглэгдсэн файлуудыг хэлдэг.
Програмыг эх бичлэгээс нь хөрвүүлж суулгахад хэд хэдэн үйлдэл (татаж авах, задлах, нөхөх, хөрвүүлэх, суулгах) хийдгийг та санаж байгаа байх. Портын агуулж буй файлууд нь яг энэ явцыг танд зориулж автоматжуулахад зориулагдсан мэдээлэл агуулсан байдаг. Та энгийн хэдэн тушаалыг гарнаас оруулахад л, уг програм татагдаж авагдаад, задлагдан, нөхөгдөж, хөрвүүлэгдээд суугдах болно.
Яг үнэн хэрэгтээ, портлох арга нь тухайн програмыг дараа нь pkg_add болон бусад багц зохицуулагч програмуудад хэрэглэгдэж болохоор багц үүсгэж хэрэглэгдэж бас болдог.
Багц болон портлох энэ хоёр арга нь хоёулаа, тухайн програмын dependencies буюу хамаатан програмуудыг мэдэж байдаг. Та нэг програм суулгах шаардлагатай байгаа бөгөөд уг програм нь бас нэг програмын сан файлыг суугдсан байхыг шаарддаг байна хэмээн авч үзье. Уг хоёр програм хоёулаа
FreeBSD-н порт ба багц хэлбэрээр танд байгаа гэж бодъё. Хэрэв та
pkg_add тушаалыг хэрэглэх юм уу эсвэл портын аргыг хэрэглэж уг програмыг суулганэ гэвэл, энэ хоёр арга нь хоёулаа уг програмыг суулгахад шаардагдах сан файл суугдаагүй байвал суугдаагүй байна гэж мэдээлээд, тэр сан файлыг эхлээд суулгадаг.
Энэ хоёр аргыг харах юм бол хоорондоо тун ижилхэн үйлдэл хийдгийг та ажиглаж магадгүй юм. Тэгээд яагаад FreeBSD гуай энэ хоёр аргатай хоёулантай нь зууралдаад байгаа юм бол гэж гайхаж мададгүй. Багц болон порт хоёр нь таны суулгах нөхцлөөс шалтгаалан өөрсдийн гэсэн хүчирхэг давуу талтай.
Багцын давуу тал
Програмын шахсан багц файл нь уг програмын эх бичлэгийг агуулдаггүй болохоор хэмжээний хувьд бага байдаг.
Багцууд нэмэлт хөрвүүлэх үйлдэл шаарддаггүй.
Mozilla,
KDE, эсвэл
GNOME зэрэг том програмуудыг удаавтар систем дээр суулгахаар бол, энэ арга нь тун их давуу талтай юм.
Багцууд нь FreeBSD дээрх ямар нэгэн хөрвүүлэх явцын тухай мэдээлэл шаарддаггүй.
Портын давуу талууд
Багцыг аль болох олон систем дээр тохирогдон суулгах гэж хичээсэн болохоор, ийм багц нь маш өргөн дэлгэр сонголттойгоор хөрвүүлэгдэж бэлтгэгдсэн байдаг. Порт хэрэглэн програм суулгахаар бол, (жишээ нь) Pentium
IV эсвэл Athlon процессордоо зориулж програмын тохируулгыг өөрчилж болдог.
Зарим програмууд өөрийнхөө чадах болон чадахгүй зэрэг нөхцлөөсөө хамаараад хөрвүүлэгдэх явцад өөрчлөлт хийгдэх тохиолдлууд байдаг. Жишээ нь,
Apache програм нь маш олон төрлийн өөртөө агуулсан тохиргоотой ирдэг. Ийм програмыг та портоос бүтээх үедээ анхдагч тохиргоонуудыг нь өөрчилж өөртөө тохируулж болно.
Заримдаа, ижил төрлийн програмууд өөрсдийнхөө онцгой тохиргооноос хамаараад хэдэн хэдэн янзаар хөрвүүлэгдэж багцлагдсан байдаг. Жишээ нь, Х11 сервер суусан эсэхээс хамаараад
Ghostscript програм нь
ghostscript гэсэн нэртэй багцлагдсан байдаг ба бас
ghostscript-nox11 гэсэн нэрээр мөн багц хэлбэртэй байдаг. Багцлах аргад иймэрхүү явцуу тохируулгаас хамаарсан арга байдаг боловч, хэрэв хөрвүүлэх үеийн тохиргоо нь ихсэх болбол энэ арга нь тун явуургүй болдог билээ.
Зарим програмын лицензэнд, уг програмыг хөрвүүлэгдсэн хэлбэрээр түгээхийг хорьсон байдаг. Тийм програмуудыг эх бичлэг хэлбэрээр нь түгээх ёстой болдог билээ.
Зарим хүмүүс хөрвүүлэгдсэн хоёртын файлын түгээлтэнд дургүй байдаг. Ядаж эх бичлэг нь байвал, та (онолын хувьд) эх бичлэгийг уншиж болзошгүй аюулыг илрүүлж болох юм.
Хэрэв танд нөхөлт бичлэг (засвар) байгаа бол, та уг нөхөлтийг зөвхөн эх бичлэг дээр л хийж чадна.
Зарим хүмүүс эх бичлэгээр наадах дуртай байдаг. Тэд нар эх бичлэгийг уншаад залхуу нь хүрээд ирэхээрээ уг бичлэгийг өөрчилж эвдэх, эсвэл зээлдэж өөрчлөх ( мэдээж лицензийн дагуу ) гэх мэтээр оролддог.
Портын шинэчлэлийн тухай мэдээлэл авч байхыг хүсвэл
&a.ports; болон &a.ports-bugs; зэрэг захианы жагсаалтад бүртгүүлэх хэрэгтэй.
Ямар нэгэн програм суулгахаасаа өмнө -с програмын нууцлалын тухай мэдээллийг харах нь зүйтэй.
Та мөн ports-mgmt/portaudit-г суулгаж болох бөгөөд энэ нь, програмыг суулгахын өмнө уг програмын хуучралт болон аюулгүй байдалтай хамаатай шаардлагатай шалгалтуудыг хийж өгдөг. Иймэрхүү шалгалтыг зарим багц суулгасны дараа та portaudit
-F -a гэсэн тушаал хэрэглэн үйлдэж болно.
Энэ бүлгийн үлдсэн хэсэгт
FreeBSD дээр порт юм уу багц ашиглан хэрхэн програм суулгах талаар өгүүлэх болно.
Програмаа олох нь
Ямар нэгэн програм суулгахаасаа өмнө та ямар програм суулгахыг хүсэж
байгаа болон ямар нэртэй гэдгийг нь мэдсэн байх хэрэгтэй.
FreeBSD-н програмын жагсаалт нь цаг тутамд нэмэгдэж байдаг.
Аз болж таны хүссэн програмыг олох хэд хэдэн арга бий:
FreeBSD-н вэб хуудас нь http://www.FreeBSD.org/ports/ хаяг дээр бүх байгаа програмын шинэчлэгдсэн хувилбаруудыг нь хайж болох хэлбэрээр арчилж байдаг.
Портууд нь төрөлжиж хуваагдсан байдаг бөгөөд та хүссэн програмаа хайж олох
(хэрэв та нэрийг нь мэдэж байвал) эсвэл тухайн төрөлд байгаа бүх програмуудын нэрсийн жагсаалтыг харж болно.
FreshPorts буюу шинэхэн портууд
Dan Langille гэгч нь FreshPorts хуудсыг хаяг дээр арчлан эрхэлдэг. FreshPorts нь порт дээр гарсан өөрчлөлтүүдийг хянаж байдаг бөгөөд хэрэв таныг хүсвэл
таны сонгосон хэд хэдэн портуудыг ажиглаж
байгаад өөрчлөлт
гарангуут танд захиагаар мэдэгддэг.
FreshMeat
Хэрэв та програмынхаа нэрийг нь мэдэхгүй байгаа бол FreshMeat () хуудсан дээр хайж үзэх хэрэгтэй.
Хэрэв уг хуудсан дээр шинэ програм олдсон бол буцаад FreeBSD хуудсанд очиж
уг хуудсыг порт болсон эсэхийг магадлах нь зүйтэй.
Хэрэв та портынхоо нэрийг яг мэддэг боловч ямар төрөлд багтдагийг нь
мэдэх хэрэгтэй бол
&man.whereis.1; тушаалыг ашиглаарай.
Ердөө л whereis
файлын_нэр гэж бичих бөгөөд
файлын_нэр нь суулгахыг хүссэн програмын нэр билээ. Хэрэв уг програм нь олдвол, танд хаана байгааг нь дараах маягаар харуулна:
&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsof
Энэ нь бидэнд lsof (системийн нэгэн
хэрэгсэл) програмыг
/usr/ports/sysutils/lsof
санд буй гэж мэдэгдэж байна.
Хүссэн портоо олох бас нэг арга бол портын цуглуулга дотор нь байдаг
өөрийнх нь хайгчийг нь ашиглах билээ. Уг хайгчийг нь хэрэглэхийн тулд
та /usr/ports сан дотор байх шаардлагатай. Уг сан
дотроос make search
name=програмын-нэр гэж бичих бөгөөд
програмын-нэр нь таны олохыг хүссэн програмын
нэр байх ёстой. Жишээлбэл
lsof програмыг олохын тулд:
&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:
Уг хайлтын үр дүнд та Path:
гэсэн мөрөнд
анхаарлаа хандуулах хэрэгтэй бөгөөд энэ нь хаана байгааг илэрхийлж байдаг.
Бусад харуулж байгаа мэдээллүүд нь програм суулгахад хэрэглэгддэггүй болохоор
энд дэлгэн ярихгүй.
Бүр нарийвчилан хайхыг хүсвэл make
search key=хайх-мөр гэх бөгөөд
хайх-мөр нь тухайн програмтай холбоотой мөр
байдаг.
Энэ нь портын нэр, тайлбар, тодорхойлолт болон хамааралтай програм зэргүүдэд
хайлт хийдэг болохоор тухайн програмынхаа талаар дэлгэрэнгүй мэдээлэл байхгүй
хүнд хайхад тун тохиромжтой.
Дээрх хоёр тохиолдолд хайх мөр тань жижиг болон том бичсэнээс хамаардаггүй. LSOF
гэж хайх нь
lsof
гэж хайсантай ижилхэн үр дүнд хүргэнэ.
Chern
Lee
Хамтран бичсэн
Багцалсан системийг хэрэглэх нь
Багц суулгах
багц
суулгах
pkg_add
Та &man.pkg.add.1; хэрэгслийг ашиглан өөртөө хадгалагдсан юм уу
эсвэл сүлжээнд буй серверээс
FreeBSD-н програмын багц суулгаж болдог.
Багц татаж аваад суулгах явц
&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
&prompt.root; pkg_add lsof-4.56.4.tgz
Хэрэв танд багц суулгах дотоод эх үүсвэр (
FreeBSD CD-ROM гэх мэт) байхгүй бол
&man.pkg.add.1; хэрэгслийг сонголттой хамт
хэрэглэх нь зүйтэй. Энэ нь тухайн програмыг төрөл болон хувилбар зэрэг
мэдээллийг нь автоматаар таньж мэдээд FTP хуудаснаас татан авч
суулгадаг.
pkg_add
&prompt.root; pkg_add -r lsof
Дээрх жишээн дээр уг хэрэгсэл нь хэрэглэгчийн оролцоогүйгээр
татаж аваад суулгаж буйг харуулж байна.
Хэрэв та татаж авах алс хаягийг нь адилхан толин тусгал болох өөр нэг
&os; багцын хаягаар солихыг хүсвэл
PACKAGESITE утгад анхных нь утгыг нь дарж өөр хаяг өгөх хэрэгтэй. &man.pkg.add.1; нь
&man.fetch.3;-г ашиглаж файл татаж авдаг бөгөөд янз бүрийн орчны хувьсагчийн
утга хэрэглэдэг. Тэд нар нь
FTP_PASSIVE_MODE, FTP_PROXY, мөн
FTP_PASSWORD гэх мэт хувьсагчид байдаг.
Хэрэв та галт хананы цаана байгаа юм уу эсвэл
FTP/HTTP прокси хэрэглэж байгаа бол уг хувьсагчдыг өөрчлөх ёстой.
Хувьсагчдын бүрэн жагсаалтыг &man.fetch.3; хуудаснаас харна уу.
Дээрх жишээн дээр
lsof нь
lsof-4.56.4 оронд хэрэглэгдэв. Хэрэв та алсаас автоматаар
татаж авах үйлдэл хийж байгаа бол багцны хувилбарын дугаарыг оруулалгүй бичих
хэрэгтэй. &man.pkg.add.1; нь тухайн програмын сүүлийн хувилбарыг автоматаар
таньж суулгадаг.
Хэрэв та &os.current; эсвэл
&os.stable; хувилбарыг хэрэглэж байгаа бол &man.pkg.add.1; нь
програмын хамгийн сүүлийн хувилбарыг татаж авч суулгадаг. Хэрэв
та -RELEASE хувилбар хэрэглэж байгаа бол таны хэрэглэж байгаа
тухайн хувилбарт тохирсон хувилбарыг нь татаж авч суулгадаг. Гэхдээ
иймэрхүү үйлдлийг нь өөрчлөхийг хүсвэл PACKAGESITE
гэсэн орчны хувьсагчийг өөрчлөөрэй.
Жишээлбэл та &os; 5.4-RELEASE
систем дээр &man.pkg.add.1; хэрэгслийг ажиллуулбал анхдагч хаяг нь
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ байх болно.
Хэрэв та &man.pkg.add.1;-г
&os; 5-STABLE багц суулгахаар тохируулахыг хүсвэл PACKAGESITE
хувьсагчийг
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/ гэж зааж өгөх хэрэгтэй.
Багц файлууд нь .tgz
болон .tbz гэсэн хэлбэртэй байдаг.
Та тэдгээрийг
хаягнаас олж болох бөгөөд эсвэл FreeBSD CD-ROM дээр бас буй.
FreeBSD-н 4 ширхэг CD тус бүрийн /packages сан дотор
багц байрлаж байгаа. Багц байрлуулалт нь
/usr/ports-н загвартай ижил модлог байдаг.
Төрөл болгон өөрийн гэсэн сантай ба багц болгон бас
All буюу бүгд гэсэн сангаас олддог.
Багцны сангийн бүтэц нь портын бүтэцтэй таарч багц портын системийг
бүрэлдүүлдэг юм.
Багц зохицуулалт
багц
зохицуулах
&man.pkg.info.1; хэрэгсэл нь суугдсан багцтай холбоотой
мэдээллүүдийг харуулдаг.
pkg_info
&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...
&man.pkg.version.1; хэрэгсэл нь суугдсан бүх багцны ерөнхий мэдээллийг
харуулж байдаг. Энэ нь багцны хувилбарыг портын санд буй програмын хувилбартай
жишиж харьцуулдаг.
pkg_version
&prompt.root; pkg_version
cvsup =
docbook =
...
Хоёр дахь баганад буй тэмдэгт нь порт доторх програмын хувилбартай харьцуулсан харьцуулалт юм.
Тэмдэг
Утга
= Суугдсан багцны хувилбар нь портын хувилбартай
адилхан байна.
<
Суугдсан хувилбар нь портын хувилбараас хуучин байна.
>Суугдсан хувилбар нь портын хувилбараас
шинэ байна. (Дотоод порт тань хуучирсан байж болзошгүй)
?Суугдсан багц нь портын жагсаалтад
олдсонгүй. (Энэ тохиолдож болох юм. Жишээлбэл суугдсан порт нь устгагдах юм уу нэр нь өөрчлөгдсөн байж болзошгүй.)
*Багц олон хувилбартай байна.
Багц устгах
pkg_delete
багц
устгах
Өмнө суугдсан байгаа багцыг устгахдаа
&man.pkg.delete.1; хэрэгслийг ашиглана.
&prompt.root; pkg_delete xchat-1.7.1
Бусад мэдүүштэй зүйлс
Бүх багцтай холбоотой мэдээллүүд
/var/db/pkg сан дотор хадгалагдаж байдаг. Суугдсан багцны жагсаалт болон холбогдох тодорхойлолтууд нь уг санд буй файл дотроос уншигдах
боломжтой.
Портын цуглуулгыг хэрэглэх нь
Дараах хэсэгт системдээ портын цуглуулгыг ашиглан хэрхэн програм
суулгах болон устгах талаар өгүүлэх болно. make
хөрвүүлэгчийн байршил болон орчны хувьсагчийн тухай нэмэлт тодорхой мэдээллийг
&man.ports.7; хуудаснаас харна уу.
Портын цуглуулгыг суулгах нь
Порт суулгахаасаа өмнө нь /usr/ports сан
дотор Makefiles, patches буюу нөхөгч файл, мөн
тодорхойлолт файлуудыг агуулсан портын цуглуулгыг суулгах хэрэгтэй.
FreeBSD-г суулгах үед
sysinstall програм танаас портын цуглуулгыг
суулгах эсэхийг тань асуудаг. Хэрэв та тэр үед үгүй гэж хариулсан бол
энэ хэсэгт хэрхэн суулгах талаар тайлбарлана:
CVSup арга
Энэ арга нь CVSup-г ашиглан
портын цуглуулгаа суулгаж мөн байнга шинэчилж болох хамгийн түргэн арга юм.
Хэрэв та CVSup-н талаар дэлгэрэнгүй мэдэхийг
хүсэж байвал CVSup-г хэрэглэх нь хэсгээс хараарай.
csup гэдэг програм нь
CVSup програмыг C програм дээр
дахин бичсэн хувилбар нь бөгөөд &os;-н 6.2 юм уу эсвэл
түүнээс дээшхи хувилбарт боломжтой буй.
csup нь үндсэн суулгацтай хамт
суулгагддаг болохоор #1 дүгээр алхмыг алгасаад
cvsup-н оронд
csup гэж бичиж хэрэглэх хэрэгтэй.
Хуучны хувилбаруудад
csup-г
net/csup сан дотроос
порт/багц хэлбэрээс суулгаж болно.
CVSup-г анх удаагаа ажиллуулахынхаа өмнө
/usr/ports санг хоосон байлгах хэрэгтэй.
Хэрэв уг сан дотор өөр эх сурвалжаас суулгасан портын цуглуулга байвал,
CVSup нь уг файлуудыг шинэчилж нөхдөггүй билээ.
net/cvsup-without-gui багцыг эхлээд суулгана:
&prompt.root; pkg_add -r cvsup-without-gui
CVSup-г суулгах () хэсгээс нэмэлт мэдээллийг харна уу.
cvsup-г ажиллуулна:
&prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
cvsup.FreeBSD.org гэдгийг
өөртэйгээ ойрхон орших
CVSup серверийн нэрээр
солих хэрэгтэй.
CVSup толин тусгалууд () хэсгээс толин тусгал хуудаснуудын бүрэн
жагсаалтыг хараарай.
Зарим нэг нь өөрийнхөө бэлтгэсэн
ports-supfile файлыг хэрэглэхийг хүсэж болох юм.
Ингэсэн үед тушаал бичих мөрөнд CVSup
серверийн нэрийг бичих шаардлага гардаггүй.
Ингэхийг хүссэн үед root эрхээр ороод
/usr/share/examples/cvsup/ports-supfile файлыг
шинэ сан уруу хуулах хэрэгтэй. Жишээлбэл
/root юм уу эсвэл өөрийнхөө эхлэл санд хуулж болно.
ports-supfile файлыг засварлана.
CHANGE_THIS.FreeBSD.org мөрийг
өөртэйгөө ойрхон буй CVSup серверийн нэрээр
- солино. CVSup
+ сольно. CVSup
Толин тусгалууд () хэсэгт толин тусгалуудын бүрэн жагсаалтыг харж болно.
Одоо cvsup-г ажиллуулахын тулд дараах алхмыг хийх хэрэгтэй:
&prompt.root; cvsup -L 2 /root/ports-supfile
Дараа нь &man.cvsup.1; тушаалыг ажиллуулснаар тухайн үед хөрвүүлж байгаа
портуудыг эс оруулаад бүх портын цуглуулгыг татаж аван сүүлд орсон өөрчлөлтүүдийг мөн шинэчилдэг.
Portsnap арга
Portsnap нь портын цуглуулгыг шинэчлэх бас нэг арга
билээ. Энэ програм нь анх &os; 6.0 хувилбарт эхлэн хэрэглэгдсэн. Хуучин
хувилбаруудад үүнийг ports-mgmt/portsnap гэсэн багцыг суулгаж ашиглана:
&prompt.root; pkg_add -r portsnap
Portsnap-г хэрэглэх нь хэсгээс
Portsnap-тай холбоотой бүх мэдээллийг харна уу.
&os; 6.1-RELEASE хувилбар болон
Portsnap порт юм уу багцын сүүлийн
хувилбартай бол энэ хэсгийг та алгасаж болно. /usr/ports сан нь
&man.portsnap.8; тушаалыг анх удаагаа хэрэглэх үед автоматаар үүсгэгддэг.
Portsnap-н өмнөх хувилбаруудтай бөгөөд
/usr/ports сан байхгүй бол хоосон ийм
сан үүсгэх хэрэгтэй:
&prompt.root; mkdir /usr/ports
Шахсан хэлбэртэй портын цуглуулгыг
/var/db/portsnap сан дотор
татаж авах хэрэгтэй. Хэрэв та хүсвэл энэ алхмын дараа интернэтээс
салгаатай ажиллаж болдог.
&prompt.root; portsnap fetch
Хэрэв та Portsnap-г анх удаагаа
ажиллуулж байгаа бол шахагдсан уг цуглуулгыг /usr/ports сан дотор задална:
&prompt.root; portsnap extract
Хэрэв та өмнө нь /usr/ports сан дотор цуглуулгыг суулгасан бөгөөд
энэ үед зөвхөн шинэчлэхийг хүсэж байгаа бол дараах тушаалыг өгөх хэрэгтэй:
&prompt.root; portsnap update
Sysinstall арга
Энэ арга нь суулгацын төхөөрөмжөөс sysinstall-г
ашиглан портын цуглуулгыг суулгах арга юм. Гэхдээ тухайн төхөөрөмж дээр байгаа
цуглуулга нь тухайн хувилбарыг гаргасан өдрийн хувилбартай байдгийг анзаарах
хэрэгтэй. Хэрэв танд интернэт холболт байдаг бол дээр өгүүлсэн хоёр аргыг урьтал
болгох нь зүйтэй.
root эрхээр ороод
sysinstall гэсэн тушаал өгөх хэрэгтэй
(/stand/sysinstall гэж &os;
-н 5.2-с хуучин хувилбаруудад бичих ёстой):
&prompt.root; sysinstall
Configure гэдгийг сонгоод
Enter товч дарна.
Distributions цэсийг сонгоод
Enter дээр дарна.
ports гэж сонгон
Space товч дээр дарах хэрэгтэй.
Дээр буй Exit гэдгийг олж сонгон
Enter дээр дарна.
CDROM юм уу FTP гэх мэт суулгах төхөөрөмжөө сонгоно.
Дээр буй Exit цэсийг сонгоод
Enter дээр дарна.
X дээр дарж
sysinstall-с гарах болно.
Порт суулгах нь
портууд
суулгах
Портын цуглуулгын талаар яриа хийхийн өмнө портын
skeleton буюу араг яс
ны талаар ойлголт авах хэрэгтэй.
Хамгийн энгийн ойлголтоор бол энэ нь FreeBSD системд програмыг
цэвэрхэн хөрвүүлээд суулгахыг зааварласан товч заавар байдаг.
Порт болгоны араг яс дараах зүйлсийг агуулж байдаг:
Makefile.
Makefile нь янз бүрийн заавар бичлэгүүд
агуулж байдаг бөгөөд энэ нь програм хэрхэн хөрвүүлэгдэх,
бас хаана суугдах зэрэг үйлдлүүдийг тодорхойлсон байгаа.
distinfo файл. Энэ файл нь
хөрвүүлж бүтээгдэх ёстой
файлуудын татаж авалт болон тэдгээрийн алдаагүй
татагдсан эсэхийг &man.md5.1; хэрэгсэл ашиглаж шалгах
зэрэг мэдээллүүдийг агуулж байдаг.
files нэртэй сан. Энэ санд таны
FreeBSD систем дээр суугдах програмуудын хөрвүүлэгдэхэд
хэрэглэгддэг patches буюу нөхөөс файлуудыг агуулна.
Нөхөөс файлууд нь жижигхэн хэмжээний файл бөгөөд тодорхой
зарим файлд гарсан өөрчлөлтүүдийг агуулдаг.
Нөхөөсүүд текст хэлбэрээр оршдог ба голдуу
10 дугаар мөрийг устга
эсвэл 26 дугаар
мөрийг үүгээр соль ...
гэсэн зааврууд байдаг.
Нөхөөсүүдийг мөн
diffs буюу ялгааны
төрлийн файл гэж ярьцгаадаг. Ийм
ялгааг нь илэрхийлсэн файлыг үүсгэхдээ
&man.diff.1; програмыг хэрэглэдэг юм.
Энэ санд портыг бүтээхэд шаардагдах өөр төрлийн файлууд бас байж
болох юм.
pkg-descr файл. Энэ файл дотор тухайн
програмын тухай нэлээн дэлгэрэнгүй тодорхойлолт агуулагдаж байдаг.
pkg-plist файл. Энэ файл дотор порт
суугдах явцад хуулагдаж суугдах файлуудын жагсаалт байдаг. Энэ нь
мөн портыг устгах үед портын системд мэдэгдэх файлуудын
жагсаалт билээ.
Зарим портууд
pkg-message гэх мэтийн өөр файлууд агуулж байдаг.
Портын систем нь онцгой тохиолдолд уг файлуудтай хандаж тухайн
портод харгалзах үйлдлүүдийг хийх болно. Хэрэв та ийм файлуудын
тухай дэлгэрэнгүй мэдээлэл мөн портын тухай үндсэн ойлголт
авахыг хүсвэл FreeBSD порт бүтээгчийн
гарын авлага хуудаснаас харна уу.
Порт дотор програмын эх бичлэгийг хэрхэн хөрвүүлж бүтээх
тухай заавар байдаг болохоос уг програмын эх бичлэг нь байдаггүй.
Та уг програмын эх бичлэгийг CD-ROM эсвэл интернэтээс
уг зохиогчийнх нь гаргасан хэлбэрээр татаж авч болно. Голдуу
эх бичлэгүүд нь tar болон gzip шахалтаар шахаж бэлдсэн байдаг боловч
заримдаа өөр төрлийн хэрэгсэл ашиглан шахсан тохиолдол тулгарч
магадгүй. Ямар ч хэлбэрээр програмын эх бичлэгийг авсан байг, түүнийг
distfile
гэж нэрийддэг. Доор &os; порт суулгах
хоёр аргыг танилцуулж байна.
Порт суулгахын тулд та root эрхэнд
сэлгэсэн байх ёстой.
Ямар нэгэн портыг суулгахаасаа өмнө портынхоо цуглуулгыг та
шинэчилсэн байх хэрэгтэй бөгөөд хуудсанд тухайн
порттой холбоотой аюул нууцлалын тухай сэдэв хөндөгдсөн эсэхийг
шалгах хэрэгтэй.
Ямар ч порт суулгахаасаа өмнө аюулгүйн нууцлалын хувьд
сул тал буй эсэхийг portaudit-р
автоматаар шалгаж болно. Энэ хэрэгслийг портын цуглуулга дотор
олох боломжтой (ports-mgmt/portaudit). Шинэ портыг суулгахаасаа
өмнө portaudit -F гэж ажиллуулснаар
аюулгүйн нууцлалд гарсан сул тал нүхнүүдийн тухай мэдээллийн
өгөгдлийн баазаас мэдээллүүдийг авч нөхөлт хийдэг. Аюулгүйн нууцлалын
мэдээллийн өгөгдлийн баазын шинэчлэх явц өдөр болгон давтагдаж хийгдэх
болно. Нэмэлт дэлгэрэнгүй мэдээллийг &man.portaudit.1; болон
&man.periodic.8; хуудаснаас харна уу.
Портын цуглуулга таныг интернэт холболттой гэж авч үздэг.
Хэрэв танд интернэт холболт байхгүй бол
distfile файлуудыг /usr/ports/distfiles
санд хуулах хэрэгтэй.
Эхлэхийн өмнө суулгах гэж буй портын санд орох хэрэгтэй:
&prompt.root; cd /usr/ports/sysutils/lsof
Тэгээд lsof санд орсон хойноо уг сан дотор
та тухайн портын араг ясыг харах болно. Дараагийн алхам бол
портыг хөрвүүлэх буюу
бүтээх
билээ. Ингэхийн тулд тушаал бичих мөрөнд
make гэж бичнэ. Ингэж гүйцэтгэсний дараа
дараах маягийн явцын мэдээллийг та харах болно:
&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;
Хөрвүүлэлт дуусаад та буцаад тушаал бичих мөрөнд ирэнгүүт
хийх ёстой дараагийн алхам бол портыг суулгах билээ. Ингэхийн тулд
таны хийх ёстой зүйл бол make тушаалыг
өөр нэг үгтэй хамт бичих ёстой бөгөөд тэр үг нь
install юм:
&prompt.root; make install
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;
Ингээд тушаал бичих мөр боломжтой болонгуут суулгасан портоо
ажиллуулах боломжтой болдог. Бид нарын жишээ авч суулгасан
lsof програм нь нууцлалын давуу эрх
шаарддаг болохоор аюулгүйн нууцлалын анхааруулга харуулагддаг.
Порт суулгах үед хэрэв анхааруулга харуулагдваас түүнийг тун
анхааралтай уншиж ойлгох хэрэгтэй.
Програмыг хөрвүүлж бүтээхэд хэрэглэгдсэн түр файлуудыг
хадгалсан дэд сангуудыг устгах нь зүйтэй. Энэ нь дискний зайг
хэмнэхээс гадна тухайн портыг шинэчлэх үед алдаа гаргуулахгүй
маш сайн зуршил юм.
&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;
Та make,
make install мөн make clean гэсэн
дамжлагуудыг make
install clean гэж товчилж бичиж болно.
Зарим shells буюу бүрхүүлийн орчнууд нь PATH
орчны хувьсагч дотор буй сангууд доторхи ачаалагдаж болдог
програмуудын тушаалын хайлтыг түргэвчлэх зорилгоор түр хадгалагчид
хадгалсан байдаг. Та хэрэв ийм төрлийн бүрхүүлийн орчин
ашиглаж байгаа бол порт суулгасны дараа rehash
тушаалыг хэрэглэн портын ачаалагдах файлыг бүрхүүлийн таних
сан дотор нэмдэг. Энэ тушаал нь
tcsh маягийн бүрхүүлд ажилладаг.
sh төрлийн бүрхүүлд hash -r
гэж ашигладаг. Тухайн бүрхүүлд хамаатай нэмэлт мэдээллийг нь харна уу.
FreeBSD
Mall зэрэг зарим гуравдагчдын гаргасан DVD-ROM дээр distfiles
файлууд агуулагдсан байдаг. Тэдгээрийг портын цуглуулганд хэрэглэж
болно. DVD-ROM-г /cdrom санд таниулж холбоно.
Хэрэв та өөр санд холбосон бол уг сангийн нэрийг
CD_MOUNTPTS орчны хувьсагчид зааж өгөөрэй.
Шаардлагатай distfiles файлууд нь дискнээс автоматаар хэрэглэгддэг.
Зарим нэг цөөн тооны портуудын лицензийг нь анхаарах
хэрэгтэй. Ийм төрлийн портуудын эх бичлэг нь CD-ROM дээр
байдаггүй. Тэдгээрийг татаж авах юм уу цааш нь
түгээхийн тулд ямар нэгэн гэрээ бөглөх илгээх ёстой болдог.
Хэрэв таны суулгах порт CD-ROM дээр байхгүй байгаа бол интернэт рүү
орон хэлсний дагуу гүйцэтгэх хэрэгтэй.
Портын систем нь &man.fetch.1; хэрэгслийг ашиглан файлуудыг
татаж авдаг. Уг хэрэгсэл нь
FTP_PASSIVE_MODE, FTP_PROXY,
мөн FTP_PASSWORD гэх мэтчилэн төрөл бүрийн орчны
хувьсагчдыг ашиглаж ажилладаг. Хэрэв та галт хана юм уу
FTP/HTTP прокси хэрэглэдэг бол эдгээр хувьсагчдад тохирох утгыг нь
зааж өгөх хэрэгтэй. &man.fetch.3; хуудаснаас хувьсагчдын бүрэн жагсаалтыг
харна уу.
Интернэтэд байнга холбогддоггүй хэрэглэгчдэд зориулж
make fetch тушаал
байдаг. Уг тушаалыг портын дээд сан
(/usr/ports) дотор гүйцэтгэхэд шаардагдах
бүх файлуудыг татаж авдаг. Уг тушаалыг мөн
/usr/ports/net гэх зэргийн дэд сан дотор гүйцэтгэж
болно.
Хэрэв тухайн порт өөр сан юм уу портоос хамаардаг бол fetch гүйцэтгэл
нь тэдгээр хамаарлыг нь
нөхөж татдаггүйг анхаараарай.
Харин fetch гэдгийг
fetch-recursive гэж орлуулснаар
тухайн портын хамааралтай порт болон сангуудыг давхар татаж авдаг.
Та бүх портуудыг хөрвүүлж бүтээнэ гэвэл make
тушаалыг make
fetch тушаалыг тайлбарласан шиг дээд санд
гүйцэтгэж болдог. Гэвч зарим порт байхгүй тохиолдолд ийм үйлдэл бол аюултай. Мөн зарим портууд хоёр өөр файлыг нэг нэрээр суулгах хүндрэл гаргаж болзошгүй.
Мөш цөөхөн тохиолдолд хэрэглэгчид
MASTER_SITES (татаж авах файлуудын байршил) хаягнаас
өөр байршил ашиглан эх файлуудыг татаж авах шаардлага гарч болох юм.
Ийм үед
MASTER_SITES хувьсагчийн утгыг дараах тушаалаар
өөрчилдөг:
&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
Энэ жишээн дээр бид
MASTER_SITES-н утгыг ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
гэж өөрчиллөө.
Зарим порт нь өөрийнхөө зарим хэсгийг
шаардлагагүй гэж үзэх тохиолдолд, эсвэл аюулгүйн нууцлалын
шалтгаанаар ч юм уу өөрчлөлт хийх боломж (эсвэл шаарддаг)
өгдөг.
www/mozilla, security/gpgme, мөн mail/sylpheed-claws зэргүүдийг жишээ
болгож болох юм. Иймэрхүү мэдэгдлүүд байвал тухайн үед танд
харуулагдах болно.
Портын анхдагч санг дарж бичих
Заримдаа портыг хөрвүүлэх болон суулгах өөр санг хэрэглэх
нь хэрэгтэй (онц шаардлагатай) байдаг.
WRKDIRPREFIX болон PREFIX
хувьсагчдын утгыг өөрчилж анхдагч сангийн байршлыг сольдог.
Жишээ нь:
&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install
гэсэн тушаал нь портыг
/usr/home/example/ports сан дотор хөрвүүлээд
хөрвүүлэгдэж бүтээгдсэн файлуудыг /usr/local
санд суулгадаг.
&prompt.root; make PREFIX=/usr/home/example/local install
гэсэн тушаал нь портыг /usr/ports санд хөрвүүлж
бэлдээд /usr/home/example/local санд суулгана.
Мэдээж
&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install
гэж хоёр хувьсагчийг хослуулан хэрэглэж бас болно
(танд зөвхөн ерөнхий ойлголт өгөх зорилгоор урт мөрийг товчилж харуулсан
билээ).
Мөн та уг хувьсагчдыг өөрийнхөө орчны хувьсагч болгож
зарлаж болно. Тухайн бүрхүүлийнхээ орчны тухай зааврыг эхлээд
уншиж танилцах нь зүйтэй.
imake-г хэрэглэх
Зарим порт imake-г хэрэглэдэг ( X
цонхот системийн хэсэг) бөгөөд
PREFIX хувьсагч ашиглалгүй
/usr/X11R6 санд суулгадаг. Үүнтэй ижил
зарим Perl портууд PREFIX хувьсагч хэрэглэлгүй
Perl-н санд суулгадаг. Эдгээр портуудыг
PREFIX хувьсагчтай хамтран ажиллуулж
энэ хувьсагчийг ойлгож хүндэтгэдэг болгоно гэдэг бол тун хэцүү бөгөөд
бараг боломжгүй ажил юм.
Суугдсан портыг устгах нь
портууд
устгах
Та одоо портыг хэрхэн суулгах талаар мэдсэн юм чинь
хэрэв буруу портоо суулгасан бол түүнийг
хэрхэн утсгадаг талаар мэдэхийг хүсэж байгаа байх.
Өмнөх жишээнд суулгасан портоо бид устгацгаая (анхааралгүй
уншсан нэгэнд нь lsof програм гэж сануулъя).
Портууд багцтай ижилхэн
&man.pkg.delete.1; тушаалаар устгагдаж болно (
Багц сонголт хэсэгт тайлбарласан буй):
&prompt.root; pkg_delete lsof-4.57
Порт шинэчлэх
порт
шинэчлэх
Хамгийн түрүүнд &man.pkg.version.1; тушаал ашиглан
портын цуглуулгаас шинэ хувилбар агуулсан портуудыг жагсаах хэрэгтэй:
&prompt.root; pkg_version -v
/usr/ports/UPDATING
Портыг шинэчлэхээсээ өмнө портын цуглуулгаа шинэчлээд
/usr/ports/UPDATING файлыг шалгана.
Энэ файл дотор портыг шинэчлэхэд шаардагдах үйлдлүүд болох
өөрчлөгдсөн төрөл, тохируулгын өөрчлөлт, эсвэл өмнөх хувилбартайгаа
зөрчилдөх хэсгүүд гэх мэтийн чухал мэдээллүүд агуулагдаж байдаг.
Хэрэв UPDATING файлд саяны таны уншсан
зүйлүүдээс өөр юм агуулагдаж байвал уг файлд буй зааврыг дагах нь
зүйтэй.
Portupgrade ашиглан порт шинэчлэх нь
portupgrade
portupgrade хэрэгсэл нь портыг
амархан шинэчлэхэд зориулагдсан. Үүнийг ports-mgmt/portupgrade портоос суулгаж болно.
Бусад портын нэгэн адил порт суулгадаг журмаар make install
clean гэсэн тушаалаар суулгадаг:
&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install clean
Суугдсан портын жагсаалтыг pkgdb
-F тушаал ашиглан шалгаад үр дүнгийн мэдээлэлд байгаа
зөрчлүүдийг нь залруулж засах хэрэгтэй. Шинэчлэл хийхээсээ өмнө ингэж
зөрчлүүдийг арилгах нь тун сайн санаа билээ.
Хэрэв та portupgrade -a гэж ажиллуулбал
таны системд суугдсан бүх хуучирсан портуудыг
portupgrade шинэчилж эхэлдэг.
Хэрэв та суугдах шинэчлэл болгонд лавлаж асуух үйлдэл хийлгэхийг хүсвэл
сонголт нэмээрэй.
&prompt.root; portupgrade -ai
Хэрэв та бүх шинэчлэгдэх порт биш харин зөвхөн тодорхой нэгэн
портыг шинэчлэх хүсэлтэй бол portupgrade
багцны-нэр гэж бичнэ.
сонголт нэмснээр тухайн програмд шаардагдах
портуудыг portupgrade эхлээд нь шинэчлэдэг.
&prompt.root; portupgrade -R firefox
Портын оронд багц хэрэглэж суулгахыг хүсвэл
сонголт хэрэглэнэ. Энэ сонголттой үед
portupgrade нь
PKG_PATH хувьсагчид зааж өгсөн жагсаалтад буй сан дотроос
багцуудыг хайх ба хэрэв уг санд байхгүй байгаа бол сүлжээнээс татаж нөхдөг.
Хэрэв дотоод сан болон сүлжээнээс багц олдоогүй тохиолдолд
portupgrade нь портоор суулгахыг оролдох болно.
Порт хэлбэрээр суулгах үйлдлийг зогсоохын тулд
сонголтыг нэмж өгдөг.
&prompt.root; portupgrade -PR gnome2
Хэрэв хөрвүүлж суулгалгүйгээр зөвхөн distfiles файлыг татаж авах (хэрэв
сонголттой бол багц файлыг ) шаардлагатай бол
сонголтыг ашиглаарай.
Дэлгэрэнгүй мэдээллийг &man.portupgrade.1; хэсэгт харна уу.
Portmanager ашиглан портыг шинэчлэх нь
portmanager
Portmanager бол портыг суулгаж
шинэчлэхийг амарчилсан өөр нэг хэрэгсэл билээ. Үүнийг
ports-mgmt/portmanager портноос
суулгаж болно:
&prompt.root; cd /usr/ports/ports-mgmt/portmanager
&prompt.root; make install clean
Бүх суугдсан портууд дараах энгийн тушаалаар шинэчлэгдэж болдог:
&prompt.root; portmanager -u
Та мөн сонголт нэмснээр
Portmanager-н гүйцэтгэх алхам бүрийг лавлах асуух хэлбэрт оруулан хянаж болдог.
Portmanager-г ашиглан системд шинэ портыг суулгаж болно.
make install clean гэсэн ердийн тушаалаас ялгаатай нь
тухайн сонгосон портыг суулгахаасаа өмнө түүнд хамааралтай бүх портуудыг
шинэчлэдэг.
&prompt.root; portmanager x11/gnome2
Хэрэв сонгосон портын хамааралтай портод ямар нэгэн
хүндрэл гарвал Portmanager-г тэр хүндрэл
гарсан портоос эхлэн дахин шинээр хөрвүүлж бэлд гэж зааж өгч болдог.
Ингэсэн үед хүндрэл гаргасан портыг эхлэж хөрвүүлээд дараа нь
портоо шинэчлэх явцаа цааш нь үргэлжлүүлдэг.
&prompt.root; portmanager graphics/gimp -f
Дэлгэрэнгүй мэдээллийг
Portmanager-н гарын авлагаас харна уу.
Порт ба дискний хэмжээ
порт
дискний хэмжээ
Портын цуглуулга нь дискний хэмжээг байнга идэж байдаг. Портоос
програмыг хөрвүүлж суулгасны дараа бэлдэж байсан
санг make
clean тушаалаар цэвэрлэхээ үргэлж санах
хэрэгтэй. Та портын цуглуулгыг бүхлээр нь дараах тушаалаар цэвэрлэж болно:
&prompt.root; portsclean -C
Маш олон эх файлууд
distfiles санд явцын үр дүнд
хадгалагдаж байдаг. Та тэдгээрийг гар аргаар устгаж болох ба дараах
тушаал хэрэглэн ямар нэгэн порттой холбоогүй болсон бүх distfiles
устгаж болно:
&prompt.root; portsclean -D
Эсвэл таны системд одоо суугдсан байгаа порттой хамаагүй
бүх distfiles-уудыг дараах тушаалаар устгана:
&prompt.root; portsclean -DD
portsclean хэрэгсэл нь
portupgrade програмын нэг бүрдэл хэсэг.
Суулгасан портоо хэрэглэхгүй болсон үедээ устгахаа мартаж болохгүй.
Иймэрхүү автоматжуулалтыг гүйцэтгэдэг эвтэйхэн програм бол
ports-mgmt/pkg_cutleaves порт билээ.
Порт суулгасны дараах үйлдлүүд
Ердийн програмыг суулгасны дараа тухайн програмтай холбоотой
бичиг баримтыг унших, ямар нэгэн тохиргооны файл засварлах, эсвэл
уг програм компьютер ачаалагдах үед эхлэх (хэрэв энэ нь далд чөтгөр бол)
эсэхийг нь шалгах шаардлага гарч болзошгүй.
Суулгасан програм болгоныг тохируулах зарчим өөр өөр. Гэхдээ
та шинэ програм суулгачихаад Одоо яах вэ?
гэсэн асуулттай тулгарах үед дараах зүйлс тусалж магадгүй:
&man.pkg.info.1; тушаалыг ашиглан ямар файл хаана яаж суугдсаныг
харна. Жишээ нь та саяхан FooPackage version 1.0.0, програмыг суулгасан
бол
&prompt.root; pkg_info -L foopackage-1.0.0 | less
гэсэн тушаал нь уг програмыг суулгах явцад хуулсан бүх файлуудыг
харуулдаг. man/ санд хуулсан файл байвал тун
анхааралтай харах хэрэгтэй. Энэ нь гарын авлага файлууд байдаг.
Мөн etc/ санд хуулсан файлууд нь тохируулгын
файлууд байдаг бөгөөд doc/ санд бол дэлгэрэнгүй
бичиг баримтуудыг хадгалсан байдаг.
Хэрэв та програмынхаа хувилбарын талаар сайн мэдэхгүй байгаа бол
&prompt.root; pkg_info | grep -i foopackage
гэсэн тушаал нь бүх суугдсан програм дотор
foopackage гэсэн нэртэй програм байвал
харуулдаг. foopackage-н оронд хүссэн програмынхаа нэрийг бичээрэй.
Програмын гарын авлага хаана суугдсаныг мэдсэн үедээ
&man.man.1;-г ашиглан харах хэрэгтэй. Мөн түүнчлэн ийм аргаар
тохируулга болон нэмэлт мэдээллийн файлуудыг нь тухай бүрд
нь харах хэрэгтэй.
Хэрэв уг програм өөрийн гэсэн вэб хуудастай бол түүнд нь зорчин
нэмэлт мэдээлэл авах, байнгын асуулт хариултыг нь үзэх гэх мэтчилэн
оролдоорой. Уг програмын вэб хуудасны хаяг нь
&prompt.root; pkg_info foopackage-1.0.0
тушаалын гаралт дээр WWW: гэсэн хэсэгт
байдаг.
Эхлэн ачаалагдах үед эхлэх ёстой портууд (Интернэт сервер гэх мэт)
голдуу
/usr/local/etc/rc.d сан дотор эхлүүлэх
файлаа хуулдаг. Та уг файлыг шаардлагатай бол засварлах юм уу өөрчилж болно.
Үйлчилгээг эхлүүлэх хэсгээс дэлгэрэнгүй мэдэээллийг харна уу.
Эвдрэлтэй портыг засах нь
Хэрэв та портыг ажиллуулж чадаагүй тохиолдолд хийж болох
хэд хэдэн алхам бий:
Problem Report
database хуудсанд уг портын засварлах заавар бий эсэхийг
шалгах. Хэрэв байвал уг зааврын дагуу засварлах хэрэгтэй.
Уг портыг арчилж сайжруулдаг хүнээс тусламж авах.
make maintainer тушаал ашиглаад юм уу эсвэл
Makefile файл дотроос тухайн
арчлагчийн захианы хаягийг нь олох хэрэгтэй. Захиандаа
портынхоо нэр болон хувилбарыг оруулан
(Makefile файлд буй
$FreeBSD:
мөрийг илгээх хэрэгтэй ) хэрэв боломжтой бол алдаа заасан
явцын мэдээллүүдийг явуулах хэрэгтэй.
Зарим порт нь хувь хүнээр биш харин захианы
жагсаалтаар арчлагдаж байдаг. Энэ жагсаалтад бүгд биш ч гэсэн ихэнх хүмүүс нь
freebsd-listname@FreeBSD.org маягийн
захианы хаягтай байдаг. Ийм хүмүүс рүү захиагаа явуулах хэрэгтэй.
Голдуу
freebsd-ports@FreeBSD.org-р арчлагдаж
байгаа гэсэн портууд нэг тодорхой хүнээр арчлагдаагүй байдаг.
Завсарлалт болон тусламж зэргүүд нь ихэнхдээ захианы жагсаалтад буй
хүмүүсээс ирдэг. Туслан дэмжих хүмүүс бидэнд үргэлж хэрэгтэй байгаа!
Хэрэв та ямар нэгэн хариулт аваагүй бол
&man.send-pr.1;-г ашиглан алдааны мэдэгдэл (
FreeBSD-н алдааг мэдээлэх хэсгийг харна уу) хийж болно.
Өөрөө засаад үз! Порт хийгчдийн гарын авлага дотор
портын
ажиллах зарчим болон бүтэц заавар, засах дараалал, тэр байтугай өөрөө порт зохиох талаар дурдсан байгаа!
Ойрхон байгаа FTP хуудаснаас багцыг татаж авах хэрэгтэй.
Үндсэн
багцны цуглуулга ftp.FreeBSD.org хуудасны багцны санд байдаг бөгөөд орон нутгийн толин тусгалуудыг эхлээд турш! Ингэсэн нь эх бичлэгийг хөрвүүлэхээс
түргэн бэлэн болсон багцыг татаж аван цаг хэмнэж байдаг. &man.pkg.add.1; програмыг ашиглан өөртөө хадгалсан багцаа систем дээрээ суулгана.
diff --git a/mn_MN.UTF-8/books/handbook/printing/chapter.sgml b/mn_MN.UTF-8/books/handbook/printing/chapter.sgml
index d14efd6c2d..1de4261368 100644
--- a/mn_MN.UTF-8/books/handbook/printing/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/printing/chapter.sgml
@@ -1,4932 +1,4932 @@
Шон
Келли
Хувь нэмэр болгон оруулсан
Жим
Мок
Дахин бүтцийг өөрчилж шинэчилсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
Шагдарын
Нацагдорж
Хэвлэлт
Ерөнхий агуулга
LPD түр хадгалах систем
хэвлэлт
FreeBSD дээр хамгийн хуучин цохидог хэвлэгчдээс авахуулаад хамгийн сүүлийн
хэвлэгчид хүртэл, мөн тэдгээрийн хооронд байгаа хэвлэгчид зэрэг төрөл бүрийн
хэвлэгчдийг хэвлэхэд ашиглаж болдог бөгөөд энэ нь таны ажиллаж байгаа програмуудаас
өндөр чанарын хэвлэсэн гаралтыг бүтээх боломж олгох юм.
FreeBSD-г бас сүлжээн дэх хэвлэх сервер болгон тохируулж бас болдог; энэ
боломжид FreeBSD нь бусад FreeBSD компьютерууд, &windows; болон &macos; хостууд
зэрэг төрөл бүрийн бусад компьютеруудаас хэвлэх ажлуудыг хүлээн авдаг.
FreeBSD нь зөвхөн нэг ажлыг тухайн үед хэвлэхийг баталгаажуулж ихэнх хэвлэлтийг аль
хэрэглэгчид болон машинууд хийж байгаа талаар статистикууд цуглуулж
хэний хэвлэсэн зүйл хэнийх болохыг үзүүлэх сурталчилгаа
хуудаснуудыг бүтээх зэрэг олон үйлдлийг хийж чаддаг.
Энэ бүлгийг уншиж дууссаны дараа та дараах зүйлсийг мэдэх болно:
FreeBSD-ийн хэвлэгчийн түр хадгалагчийг хэрхэн тохируулах талаар.
Ирж байгаа баримтуудыг таны хэвлэгчид ойлгодог хэвлэх хэлбэршилтэд оруулж хөрвүүлэх
зэрэг тусгай хэвлэх ажлуудыг өөрөөр зохицуулдаг хэвлэх шүүлтүүрүүдийг хэрхэн
суулгах талаар.
Толгой эсвэл сурталчилгаа хуудаснуудыг өөрийн хэвлэх зүйл дээрээ
хэрхэн идэвхжүүлэх талаар.
Бусад компьютерууд уруу холбогдсон хэвлэгчдээр хэрхэн хэвлэх талаар.
Сүлжээнд шууд холбогдсон хэвлэгчдээр хэрхэн хэвлэх талаар.
Хэвлэх ажлуудын хэмжээг хязгаарлах болон зарим хэрэглэгчдийг хэвлэхийг
болиулах зэрэг хэвлэгчийн хязгаарлалтуудыг хэрхэн хянах талаар.
Хэвлэгчийн статистикууд болон хэвлэгчийн хэрэглээнд зориулсан
бүртгэлийг хэрхэн хадгалж байх талаар.
Хэвлэх асуудлуудыг хэрхэн олж засварлах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
Шинэ цөмийг хэрхэн тохируулж суулгах талаар мэдэх
().
Танилцуулга
FreeBSD дээр хэвлэгчдийг ашиглахын тулд та тэдгээрийг
LPD түр хадгалах систем буюу ердөө л
LPD гэж бас нэрлэгддэг Берклигийн
шугаман хэвлэгчийн түр хадгалах системтэй ажиллахаар болгож тохируулж болох юм.
Энэ нь FreeBSD дээрх стандарт хэвлэгч хянагч систем юм. Энэ бүлэг нь
LPD-г танилцуулж түүний тохиргоог
тайлбарлах болно.
Хэрэв та LPD юм уу эсвэл бусад
хэвлэгчийн түр хадгалах системийг мэддэг бол Үндсэн тохируулга хэсэг
уруу шууд орохыг хүсэж болох юм.
LPD нь хостын хэвлэгчдийн талаар
бүгдийг хянадаг. Энэ нь хэд хэдэн зүйлсийг хариуцдаг:
Залгагдсан хэвлэгчид болон сүлжээн дэх өөр хостуудад залгагдсан
хэвлэгчдэд хандах хандалтыг хянадаг.
хэвлэх ажлууд
Файлууд хэвлэхээр өгөх боломжийг хэрэглэгчдэд зөвшөөрдөг; эдгээр
өгөлтүүд нь jobs буюу ажлууд
гэгддэг.
Хэвлэгч болгоны хувьд queue буюу
дарааллыг зохицуулж олон хэрэглэгчид нэгэн зэрэг хэвлэгчид хандах хандалтаас
сэргийлдэг.
Хэрэглэгчид хэвлэсэн тоо томшгүй олон юмнаас өөрсдийн хэвлэсэн ажлуудыг
хялбархан олдог байхын тулд энэ нь толгой хуудаснуудыг
(бас сурталчилгаа эсвэл тэсрэлт
хуудсууд гэгддэг) хэвлэдэг.
Цуваа портууд дээр холбогдсон хэвлэгчдийн холбооны параметрүүдэд
анхаарлаа хандуулдаг.
Өөр хост дээр байгаа LPD түр хадгалагч
уруу сүлжээгээр ажлууд илгээж чаддаг.
Төрөл бүрийн хэвлэгчийн хэлнүүд эсвэл хэвлэгчийн боломжуудад
зориулж хэвлэх ажлуудыг хэлбэршүүлэх тусгай шүүлтүүрүүдийг ажиллуулж
чаддаг.
Хэвлэгчийн хэрэглээг бүртгэж чаддаг.
Тохиргооны файл (/etc/printcap) болон
тусгай шүүлтүүр програмууд ашиглан олон төрлийн хэвлэгч тоног төхөөрөмжүүдийн хувьд
дээр дурдсануудын заримууд болон бүгдийг хийдэг байхаар
LPD системийг та идэвхжүүлж чадна.
Яагаад заавал түр хадгалагчийг ашиглах ёстой гэж
Та системийнхээ цорын ганц хэрэглэгч бол
хандалтын хяналт, толгой хуудаснууд эсвэл хэвлэгчийн бүртгэл танд хэрэгггүй
байхад яагаад заавал түр хадгалагчийн талаар санаа зовох ёстой гэж та
гайхаж байж болох юм. Хэвлэгч уруу шууд хандалтыг идэвхжүүлэх
боломжтой байдаг боловч та түр хадгалагчийг ямар ч байсан ашиглах ёстой,
учир нь:
LPD нь ажлуудыг ард
хэвлэдэг; та өгөгдлийг хэвлэгч уруу хуулагдахыг хүлээх
хэрэггүй юм.
&tex;
LPD нь огноо/цаг бүхий толгой
нэмэх эсвэл тусгай файлын хэлбэршилтээс (&tex; DVI файл зэрэг)
хэвлэгчийн ойлгох хэлбэршилт уруу хөрвүүлдэг шүүлтүүрүүдээр дамжуулан
хэвлэгдэх ажлыг тохиромжтойгоор ажиллуулдаг. Та гараараа эдгээр алхмуудыг
хийх шаардлагагүй юм.
Хэвлэх боломж бүхий чөлөөтэй, арилжааны олон програмууд нь
таны систем дээрх түр хадгалагчтай ярилцахыг ихэвчлэн хүлээж
байдаг. Түр хадгалагч системийг тохируулснаар танд байгаа болон
таны сүүлд суулгаж болох бусад програм хангамжуудыг илүү
амархнаар та дэмжих болно.
Үндсэн тохируулга
LPD түр хадгалах системтэй хэвлэгчдийг
ашиглахын тулд өөрийн хэвлэгчийн тоног төхөөрөмж болон LPD
програм хангамжийг тохируулах хэрэгтэй болно. Энэ баримт нь тохиргооны
хоёр түвшинг тайлбарладаг:
Хэвлэгчийг хэрхэн холбохыг сурахын тулд
Хэвлэгчийн хялбар тохиргоо
хэсгийг үзэж LPD-д хэрхэн түүнтэй
холбоо тогтоохыг хэлж хэвлэгч уруу цэвэр текст файлуудыг хэвлэх.
Төрөл бүрийн тусгай файлын хэлбэршилтүүдийг хэрхэн хэвлэх,
толгой хуудаснуудыг хэрхэн хэвлэх, сүлжээгээр хэрхэн хэвлэх, хэвлэгчдэд
хандах хандалтыг хэрхэн хянах болон хэрхэн хэвлэгчийн бүртгэлийг хийхийг
сурахын тулд Хэвлэгчийн илүү
нарийн тохиргоо хэсгийг үзэх.
Хэвлэгчийн хялбар тохиргоо
Энэ хэсэг нь хэвлэгчийг ашиглахын тулд хэвлэгчийн тоног төхөөрөмж болон
LPD програм хангамжийг хэрхэн тохируулахыг
хэлж өгнө. Энэ нь үндсэн ойлголтуудад сургана:
Тоног төхөөрөмжийн тохиргоо
хэсэг нь хэвлэгчийг таны компьютер дээрх порт уруу холбох зарим
заавруудыг өгдөг.
Програм хангамжийн тохиргоо
хэсэг нь LPD түр хадгалагчийн
тохиргооны файлыг (/etc/printcap)
хэрхэн тохируулахыг үзүүлдэг.
Хэвлэх өгөгдлийг хүлээн авахдаа компьютерийн локал интерфэйсүүдийг
биш сүлжээний протоколыг ашигладаг хэвлэгчийг та тохируулж байгаа бол
Сүлжээнд
холбогдсон өгөгдлийн урсгалын интерфэйсүүдтэй хэвлэгчид хэсгийг
үзнэ үү.
Энэ хэсэг нь Хэвлэгчийн хялбар тохиргоо
гэгддэг
боловч яг үнэндээ нэлээн төвөгтэй юм. Хэвлэгчийг өөрийн компьютер болон
LPD түр хадгалагчтай цуг ажиллуулна гэдэг
хамгийн хэцүү хэсэг юм. Толгой хуудаснууд болон бүртгэл хийх зэрэг дэвшилтэт
тохируулгууд нь хэвлэгчийг ажиллуулсны дараа нэлээн амархан байдаг.
Тоног төхөөрөмжийн тохиргоо
Энэ хэсэг нь өөрийн PC-тэй хэвлэгч холбох төрөл бүрийн аргуудын
талаар хэлдэг. Энэ нь портууд ба кабелиудын талаар болон FreeBSD-г хэвлэгчтэй
харилцдаг болгохын тулд танд хэрэг болох цөмийн тохиргооны талаар бас
өгүүлнэ.
Хэрэв та өөрийн хэвлэгчийг аль хэдийн холбосон бөгөөд
өөр үйлдлийн систем дээр түүгээр амжилттай хэвлэсэн бол
Програм хангамжийн тохиргоо
хэсэг уруу алгасаж болох юм.
Портууд ба кабелиуд
PC дээр ашиглагдах зориулалттай худалдаалж байгаа хэвлэгчид нь
ерөнхийдөө доорх гурван интерфэйсийн аль нэг юм уу эсвэл
олон интерфэйстэй ирдэг:
хэвлэгчид
цуваа
Цуваа интерфэйсүүд буюу бас
RS-232 эсвэл COM портууд гэгддэг интерфэйсүүд нь өгөгдлийг
хэвлэгч уруу илгээхдээ таны компьютер дээрх цуваа портыг
ашигладаг. Цуваа интерфэйсүүд нь компьютерийн аж үйлдвэрлэлд
түгээмэл байдаг бөгөөд кабелиуд нь бэлэн байж байдгаас гадна
хийхэд хялбар байдаг. Цуваа интерфэйсүүд нь заримдаа
тусгай кабелиудыг шаарддаг бөгөөд танаас төвөгтэй холбооны
сонголтуудыг тохируулахыг шаардаж болох юм. Ихэнх PC-ний
цуваа портууд нь хамгийн их дамжуулах хурдны хувьд 115200 bps
хурдтай байдаг бөгөөд их том график хэвлэх ажлыг үүгээр хийх
нь практикийн хувьд төвөгтэй болгодог.
хэвлэгчид
зэрэгцээ
Зэрэгцээ интерфэйсүүд нь
өгөгдлийг хэвлэгч уруу илгээхдээ таны компьютерийн
зэрэгцээ портыг ашигладаг. Зэрэгцээ интерфэйсүүд нь
PC-ийн зах зээлд нийтлэг байдаг бөгөөд RS-232 цуваагаас
илүү хурдан байдаг. Кабелиуд нь байдаг боловч гараар хийхэд
илүү төвөгтэй байдаг. Зэрэгцээ интерфэйсүүдэд холбооны сонголтууд
ихэвчлэн байдаггүй болохоор тэдгээрийн тохиргоог маш хялбар
болгодог.
centronics
зэрэгцээ хэвлэгчид
Зэрэгцээ интерфэйсүүд нь хэвлэгчийн холбогчийн төрлийн
нэрээр нэрлэгдсэн Centronics
интерфэйсүүд гэж заримдаа хэлэгддэг.
хэвлэгчид
USB
Universal Serial Bus буюу Универсал Цуваа Шугам гэгддэг
USB интерфэйсүүд нь зэрэгцээ болон RS-232 цуваа интерфэйсүүдээс
бүр илүү хурдаар ажиллаж чаддаг. Кабелиуд нь хялбар бөгөөд
хямд байдаг. USB нь RS-232 болон Зэрэгцээ интерфэйсүүдээс
хэвлэхийн хувьд илүү хүчирхэг боловч &unix; системүүд дээр
тийм ч сайн дэмжигдсэн байдаггүй. Энэ асуудлыг тойрон гарахын
тулд олон хэвлэгчид байдаг USB болон Зэрэгцээ интерфэйсүүдтэй
тийм хэвлэгч худалдан авах явдал юм.
Ерөнхийдөө зэрэгцээ интерфэйсүүд нь зөвхөн нэг талын холбоог
(компьютераас хэвлэгч уруу) санал болгодог бол цуваа болон
USB нь хоёр талын холбоог өгдөг. Шинэ зэрэгцээ портууд
(EPP болон ECP) болон хэвлэгчид нь IEEE-1284 нийцтэй
кабель ашиглаж байгаа бол FreeBSD дээр хоёр тал уруу
чиглэсэн холбоог хийж чаддаг.
PostScript
Зэрэгцээ портоор хэвлэгч уруу чиглэсэн хоёр талын холбоог
ерөнхийдөө хоёр аргын аль нэгээр хийдэг. Эхний арга нь
хэвлэгчийн ашигладаг хувийн хэлээр ярьдаг FreeBSD-ийн
өөрчлөн бүтээсэн хэвлэгчийн драйверийг хэрэглэдэг. Энэ нь
бэхэн хэвлэгчдэд нийтлэг байдаг бөгөөд бэхний түвшин
болон бусад төлвийн мэдээллийг үзүүлэхэд хэрэглэгддэг.
Хоёр дахь аргыг хэвлэгч &postscript;-г дэмждэг үед
ашигладаг.
&postscript; ажлууд нь жинхэнэдээ хэвлэгч уруу илгээсэн
програмууд юм; тэдгээр нь цаас бүтээх ерөөсөө шаардлагагүй
бөгөөд үр дүнгүүдийг компьютер уруу шууд буцааж болох юм.
&postscript; нь &postscript; програм дахь алдаанууд,
эсвэл цаас гацсан зэрэг асуудлуудыг компьютерт хэлэхийн
тулд хоёр талын холбоог бас ашигладаг. Таны хэрэглэгчид
тийм мэдээллийг аваад талархах байх. Бас &postscript;
хэвлэгчийн хувьд үр ашигтай бүртгэл хийх хамгийн шилдэг
арга нь хоёр талын холбоог шаарддаг: хэвлэгчээс
хуудасны тоог (өөрийн амьдралын хугацаандаа нийт хичнээн хуудас
хэвлэсэн талаар) та асууж дараа нь хэрэглэгчийн ажлыг илгээж
тэгээд дахиад хуудасны тоог асуудаг. Хоёр утгын нэгээс нөгөөг
хасаад хэрэглэгчээс хичнээн цаасны төлбөр авахыг та мэдэх
болно.
Зэрэгцээ портууд
Хэвлэгчийг зэрэгцээ интерфэйс ашиглаад залгахын тулд
Centronics кабелийг хэвлэгч болон компьютерийн хооронд
холбоно. Хэвлэгч, компьютер эсвэл хоёулантай нь цуг ирсэн
зааврууд танд бүрэн гүйцэд заавар өгөх ёстой.
Компьютер дээрээ аль зэрэгцээ портыг ашигласнаа санах
хэрэгтэй. Эхний зэрэгцээ порт нь FreeBSD-д
ppc0 байх бөгөөд хоёр дахь
ppc1 гэх мэтээр байна.
Хэвлэгчийн төхөөрөмжийн нэр мөн адил схемийг ашигладаг:
/dev/lpt0 нь эхний зэрэгцээ
порт дээрх хэвлэгч гэх мэтээр байна.
Цуваа портууд
Цуваа интерфэйсүүдийг ашиглан хэвлэгчийг залгахдаа зөв цуваа
кабелийг хэвлэгч болон компьютерийн хооронд холбоно.
Хэвлэгч, компьютер эсвэл хоёулантай нь цуг ирсэн
зааврууд танд бүрэн гүйцэд заавар өгөх ёстой.
Хэрэв та зөв цуваа кабель
нь юу
вэ гэдэгт эргэлзэж байвал та дараах боломжуудаас аль
нэгийг туршиж үзэхийг хүсэж болох юм:
Модемийн кабель нь кабелийн нэг талд
байгаа холбогчийн зүү бүрийг нөгөө талд байгаа холбогчийн харгалзах зүүнд
шулуухан холбодог. Энэ төрлийн кабелийг DTE-ээс DCE
кабель гэж бас нэрлэдэг.
null-модем кабель
null-модем кабель нь зарим зүүнүүдийг
шууд шулуухнаар, заримуудыг нь хооронд нь солбидог (жишээ нь өгөгдлийг
хүлээн авахын тулд өгөгдлийг илгээдэг) бөгөөд заримыг нь дотроо
холбогч бүрийн таг дотор богино холбодог. Энэ төрлийн кабелийг
DTE-ээс DTE
кабель гэж бас нэрлэдэг.
Зарим нэг ховор хэвлэгчдэд шаардагддаг
цуваа хэвлэгчийн кабель нь null-модем кабельтай
адил боловч дотроо богино холбохын оронд зарим дохионуудыг өөрсдийн
эсрэг талдаа илгээдэг.
baud хурд
parity
урсгал хянах протокол
Та хэвлэгчийн хувьд холбооны параметрүүдийг бас тохируулах
хэрэгтэй бөгөөд эдгээрийг хэвлэгч дээрх нүүрэн талын хяналтууд юм уу эсвэл
DIP шилжүүлэгчдээр хийдэг. Таны компьютер болон хэвлэгч дэмждэг
хамгийн их bps-ийг (bits per second буюу секундэд
дамжих битийн тоо, заримдаа baud хурд) сонгох хэрэгтэй.
7 юм уу эсвэл 8 өгөгдлийн бит; байхгүй (none), тэгш (even),
эсвэл сондгой (odd) parity;
болон 1 эсвэл 2 стоп битийг сонгох хэрэгтэй. Бас урсгал хянах протоколыг
сонгох хэрэгтэй: байхгүй (none) юм уу аль эсвэл XON/XOFF (бас
in-band
эсвэл software
гэгддэг)
урсгал хяналтыг сонгох хэрэгтэй. Дараах програм хангамжийн тохиргоонд
зориулж эдгээр тохируулгуудыг санах хэрэгтэй.
Програм хангамжийн тохиргоо
Энэ хэсэг нь FreeBSD дээр LPD
түр хадгалах системээр хэвлэхэд шаардлагатай програм хангамжийн тохируулгыг
тайлбарладаг.
Энд шаардлагатай алхмуудыг дурдав:
Хэвлэгчийн хувьд ашиглаж байгаа портод зориулж шаардлагатай
бол өөрийн цөмийг тохируулна; Таны юу хийх ёстойг
Цөмийн тохиргоо хэсэг
хэлж өгнө.
Хэрэв та зэрэгцээ порт ашиглаж байгаа бол зэрэгцээ
портынхоо хувьд холбооны горимыг тохируулах хэрэгтэй;
Зэрэгцээ портын
хувьд холбооны горимыг тохируулах нь хэсгээс
дэлгэрэнгүйг үзээрэй.
Үйлдлийн систем өгөгдлийг хэвлэгч уруу илгээж чадаж байгаа
эсэхийг тест хийнэ. Үүнийг хэрхэн хийх тухай зарим нэгэн
зөвлөгөөнүүдийг Хэвлэгчийн
холбоонуудыг шалгах нь хэсэг өгдөг.
/etc/printcap файлыг засаж
хэвлэгчдээ зориулж тохируулна. Үүнийг хэрхэн хийх талаар
сүүлд нь энэ бүлгээс олох болно.
Цөмийн тохиргоо
Үйлдлийн системийн цөм тусгайлсан хэдэн төхөөрөмжүүдтэй
ажиллахаар эмхэтгэгдсэн байдаг. Таны хэвлэгчид зориулагдсан
цуваа болон зэрэгцээ интерфэйс нь эдгээрийн нэг хэсэг юм.
Тийм болохоор хэрэв таны цөм ингэж тохируулагдаагүй бол
нэмэлт цуваа эсвэл зэрэгцээ портын дэмжлэгийг нэмэх хэрэгтэй
байж болох юм.
Таны ашиглаж байгаа цөм цуваа интерфэйсийг дэмжиж байгаа
эсэхийг мэдэхийн тулд доор дурдсаныг бичнэ:
&prompt.root; grep sioN /var/run/dmesg.boot
Энд байгаа N нь тэгээс эхлэх
цуваа портын дугаар юм. Хэрэв та доор дурдсантай төстэй гаралтыг
харвал:
sio2 at port 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
цөм нь портыг дэмждэг гэсэн үг юм.
Цөм нь зэрэгцээ интерфэйсийг дэмждэг эсэхийг мэдэхийн тулд доор дурдсаныг бичнэ:
&prompt.root; grep ppcN /var/run/dmesg.boot
Энд байгаа N нь тэгээс эхлэх
зэрэгцээ портын дугаар юм. Хэрэв та доор дурдсантай төстэй гаралтыг
харвал:
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
цөм нь портыг дэмждэг гэсэн үг юм.
Таны хэвлэгчдээ зориулан ашиглаж байгаа зэрэгцээ эсвэл
цуваа портыг үйлдлийн систем таньж хэрэглэдэг байхын тулд та өөрийн
цөмийг дахин тохируулах хэрэгтэй болж болох юм.
Цуваа портод зориулж дэмжлэг нэмэхийн тулд цөмийн тохиргооны
тухай хэсгийг үзнэ үү. Зэрэгцээ портод зориулж дэмжлэг
нэмэхийн тулд тэр хэсгийг болон дараагийн
хэсгийг үзнэ үү.
Зэрэгцээ портын хувьд холбооны горимыг тохируулах нь
Зэрэгцээ интерфэйсийг ашиглаж байхдаа FreeBSD нь
хэвлэгчийн хувьд тасалдлаар зохицуулагдах юм уу эсвэл байнга шалгах
холбооны алийг ашиглахыг та сонгож болно. FreeBSD дээрх ердийн
хэвлэгчийн төхөөрөмжийн драйвер (&man.lpt.4;) нь
портын бичил схемийг &man.ppc.4; драйвераар хянадаг
&man.ppbus.4; системийг ашигладаг.
interrupt-driven буюу тасалдлаар зохицуулагдах
арга нь GENERIC цөмд анхдагч байдаг. Энэ арганд
үйлдлийн систем нь хэвлэгч өгөгдөл хүлээн авахад хэзээ бэлэн
байгааг тодорхойлохын тулд IRQ шугамыг ашигладаг.
polled буюу байнга шалгах арга нь
үйлдлийн системд хэвлэгчээс өгөгдөл хүлээн авахад бэлэн
байгаа эсэхийг нь давталттайгаар асуухыг зааж өгдөг. Бэлэн гэж хариулбал
цөм илүү өгөгдөл илгээдэг.
Тасалдлаар зохицуулагдах арга нь ихэвчлэн хурдан байдаг боловч
нандин IRQ шугамыг ихээр ашигладаг. Зарим шинэ HP хэвлэгчид
нь зарим (яг тодорхой ойлгогдоогүй) хугацааны асуудлуудаас болоод
тасалдлын горимд зөв ажилладаггүй гэгддэг. Эдгээр хэвлэгчдэд
байнга шалгах горим хэрэгтэй. Аль ажиллаж байгааг нь л та ашиглах
хэрэгтэй. Зарим хэвлэгчид нь аль алин дээр нь ажилладаг боловч
тасалдлын горим асар удаан байдаг.
Та холбооны горимыг хоёр аргаар тохируулж болно: цөмийг
тохируулах замаар эсвэл &man.lptcontrol.8; програм
ашиглан хийж болно.
Цөмийг тохируулах замаар холбоог тохируулахдаа:
Өөрийн цөмийн тохиргооны файлаа засварлана. ppc0
оруулгыг хайна. Хэрэв та хоёр дахь зэрэгцээ портыг тохируулж байгаа бол
ppc1-г ашиглаарай. Гурав дахь портын хувьд
ppc2 гэх мэтээр ашиглана.
Хэрэв та тасалдлаар зохицуулагдах горимыг хүсэж байгаа бол
дараах мөрийг:
hint.ppc.0.irq="N"
/boot/device.hints файлд засварлаж
N-ий оронд зөв IRQ дугаарыг
солих хэрэгтэй. Цөмийн тохиргооны файл &man.ppc.4; драйверийг
бас агуулсан байх ёстой:
device ppc
Хэрэв та байнга шалгадаг горимыг хүсэж байвал
өөрийн /boot/device.hints файлаас
дараах мөрийг арилгана:
hint.ppc.0.irq="N"
Зарим тохиолдолд энэ нь FreeBSD дээр портыг байнга шалгах
горимд оруулахад хангалтгүй байдаг. Ихэнхдээ энэ нь
&man.acpi.4; драйвераас гардаг бөгөөд энэ нь
төхөөрөмжүүдийг шалгаж болон залгаж чаддаг
болохоор хэвлэгчийн порт уруу хандах горимыг
хянаж чаддаг байна. Энэ асуудлыг засварлахын тулд
та өөрийн &man.acpi.4; тохиргоог шалгах хэрэгтэй.
Файлыг хадгална. Дараа нь цөмд тохиргоо хийн бүтээж цөмийг
суулгаад дахин ачаална. Илүү дэлгэрэнгүйг цөмийн тохиргоо хэсгээс үзнэ үү.
Холбооны горимыг
&man.lptcontrol.8;-р тохируулахын тулд:
Доор дурдсаныг бичиж:
&prompt.root; lptcontrol -i -d /dev/lptN
lptN-д зориулж
тасалдлаар зохицуулагдах горимыг тохируулна.
Доор дурдсаныг бичиж:
&prompt.root; lptcontrol -p -d /dev/lptN
lptN-д зориулж
байнга шалгах горимыг тохируулна.
Эдгээр тушаалуудыг өөрийн /etc/rc.local файлд
нэмж таны системийг ачаалах болгонд горимыг тохируулдаг байхаар хийж болох
юм. Илүү мэдээллийг &man.lptcontrol.8;-с үзнэ үү.
Хэвлэгчийн холбоог шалгах нь
Түр хадгалагч системийг тохируулахаасаа өмнө та үйлдлийн системийг
өгөгдлийг амжилттайгаар өөрийн хэвлэгч уруу илгээж чадаж байгаа
эсэхийг шалгах хэрэгтэй. Хэвлэгчийн холбоо болон түр хадгалагч системийг
тусад нь дибаг хийх нь хамаагүй хялбар байдаг.
Хэвлэгчийг тест хийхийн тулд бид ямар нэг текст түүн үрүү илгээнэ.
Илгээгдсэн тэмдэгтүүдийг тэр даруй нь хэвлэх хэвлэгчдийн хувьд
&man.lptest.1; програм төгс байдаг: энэ нь бүх 96 хэвлэх
боломжтой ASCII тэмдэгтүүдийг 96 мөрөнд үүсгэдэг.
PostScript
&postscript; (эсвэл бусад хэлэн дээр суурилсан) хэвлэгчийн
хувьд бидэнд илүү төвөгтэй тест хэрэгтэй. Доор дурдсантай төстэй
жижиг &postscript; програм хангалттай байх болно:
%!PS
100 100 moveto 300 300 lineto stroke
310 310 moveto /Helvetica findfont 12 scalefont setfont
(Is this thing working?) show
showpage
Дээрх &postscript; кодыг файлд хийгээд доорх хэсгүүдэд гарч
байгаа жишээнүүдэд үзүүлсэн шигээр ашиглаж болно.
PCL
Энэ баримт нь хэвлэгчийн хэл гэдгийг Hewlett
Packard-ийн PCL биш харин &postscript;-тэй адил
хэлийг хэлж байгаа юм. PCL нь мундаг ажиллагаатай боловч
та цэвэр текстийг өөрийнх нь escape (зугтах) дарааллуудтай нь
хольж болдог. &postscript; нь цэвэр текстийг шууд хэвлэж
чаддаггүй бөгөөд энэ нь тусгай зохицуулалтууд хийж өгөх ёстой
тийм хэвлэгчийн хэл юм.
Зэрэгцээ хэвлэгчийг шалгах нь
хэвлэгчид
зэрэгцээ
Энэ хэсэг нь зэрэгцээ порт уруу холбогдсон хэвлэгчтэй
FreeBSD холбогдож чадах эсэхийг хэрхэн шалгахыг хэлж
өгөх болно.
Зэрэгцээ порт дээрх хэвлэгчийг тест хийхийн тулд:
&man.su.1; ашиглан root болно.
Хэвлэгч уруу өгөгдөл илгээнэ.
Хэрэв хэвлэгч цэвэр текст хэвлэж чаддаг бол &man.lptest.1;-г
ашиглана. Доор дурдсаныг бичнэ:
&prompt.root; lptest > /dev/lptN
Энд байгаа N нь
тэгээс эхлэх зэрэгцээ портын дугаар юм.
Хэрэв хэвлэгч &postscript; эсвэл бусад хэвлэгчийн
хэлийг ойлгодог бол жижиг програм хэвлэгч уруу илгээх
хэрэгтэй. Доор дурдсаныг бичнэ:
&prompt.root; cat > /dev/lptN
Тэгээд мөр мөрөөр програмыг анхааралтай оруулах хэрэгтэй.
Учир нь RETURN
эсвэл ENTER дарсны дараа та засварлаж
чадахгүй болох юм. Програмаа оруулж дуусаад
CONTROL+D юм уу эсвэл файлын төгсгөл
товчлуур ямар байна тэрийг дарах хэрэгтэй.
Мөн өөрөөр програмыг файлд хийж доор дурдсаныг бичин өгч болно:
&prompt.root; cat file > /dev/lptN
Энд байгаа file нь
таны илгээхийг хүсэж байгаа програмыг агуулсан файлын
нэр юм.
Та ямар нэгэн зүйл харах ёстой. Текст зөв харагдахгүй
байвал санаа зовсны хэрэггүй; бид иймэрхүү зүйлсийг
сүүлд нь засах болно.
Цуваа хэвлэгчийг шалгах нь
хэвлэгчид
цуваа
Энэ хэсэг нь цуваа порт уруу холбогдсон хэвлэгчтэй
FreeBSD холбогдож чадах эсэхийг хэрхэн шалгахыг хэлж
өгөх болно.
Цуваа порт дээрх хэвлэгчийг тест хийхдээ:
&man.su.1; ашиглан root болно.
/etc/remote файлыг засварлана.
Дараах мөрийг нэмнэ:
printer:dv=/dev/port:br#bps-rate:pa=parity
bits-per-second
цуваа порт
parity
Энд байгаа port нь
цуваа портод (ttyd0,
ttyd1, гэх мэт) зориулсан төхөөрөмжийн оруулга,
bps-rate нь хэвлэгчийн
холбогдох секундэд илгээх битийн хурд, болон parity
нь хэвлэгчийн шаарддаг parity юм (even,
odd, none, эсвэл
zero).
Цуваа шугамаар гурав дахь цуваа порт уруу 19200 bps хурдаар
parity байхгүйгээр холбогдсон хэвлэгчид зориулсан жишээ оруулга энд
байна:
printer:dv=/dev/ttyd2:br#19200:pa=none
&man.tip.1; ашиглан хэвлэгч уруу холбогдоно.
Доор дурдсаныг бичнэ:
&prompt.root; tip printer
Хэрэв энэ алхам нь ажиллахгүй бол /etc/remote
файлыг дахин засварлаж /dev/ttydN-ийн
оронд /dev/cuaaN-г
ашиглаж үзээрэй.
Өгөгдлийг хэвлэгч уруу илгээнэ.
Хэрэв хэвлэгч цэвэр текст хэвлэж чаддаг бол &man.lptest.1;-г
ашиглана. Доор дурдсаныг бичнэ:
&prompt.user; $lptest
Хэрэв хэвлэгч &postscript; эсвэл бусад хэвлэгчийн
хэлийг ойлгодог бол жижиг програм хэвлэгч уруу илгээх
хэрэгтэй. Програмыг мөр мөрөөр маш анхааралтайгаар
бичиж оруулах хэрэгтэй. Учир нь арилгах болон бусад
засварлах товчлуурууд хэвлэгчийн хувьд чухал байж болох
юм. Та програмыг бүгдийг нь хүлээж авсан гэж хэвлэгчид
таниулахын тулд тусгай файлын төгсгөл товчлуурыг хэвлэгчид
зориулж оруулах хэрэгтэй. &postscript;-ийн хэвлэгчдийн
хувьд CONTROL+D дарна.
Мөн өөрөөр та програмыг файлд хийж доор дурдсаныг бичин оруулж
болно:
&prompt.user; >file
Энд байгаа file нь
програмыг агуулж байгаа файлын нэр юм. &man.tip.1;
файлыг илгээсний дараа шаардлагатай файлын төгсгөл
товчлуурыг дарах хэрэгтэй.
Та ямар нэгэн зүйл хэвлэгдэхийг харах ёстой. Текст зөв харагдахгүй
байвал санаа зовсны хэрэггүй; бид иймэрхүү зүйлсийг
сүүлд нь засах болно.
Түр хадгалагчийг идэвхжүүлэх нь: /etc/printcap
файл
Энэ үед таны хэвлэгч залгагдаж таны цөм түүнтэй холбогдохоор
тохируулагдсан (хэрэв шаардлагатай бол) бөгөөд та хэвлэгч уруугаа зарим
энгийн өгөгдлийг илгээж чаддаг байна. Одоо бид таны хэвлэгч уруу хандах
хандалтыг хянахын тулд LPD-г тохируулахад
бэлэн боллоо.
Та /etc/printcap файлыг засварлаж
LPD-г тохируулна. LPD
түр хадгалагч систем нь түр хадгалагч ашиглагдах болгонд энэ файлыг уншдаг
учир энэ файл уруу хийгдсэн шинэчлэл шууд нөлөөлөх болно.
хэвлэгчид
боломжууд
&man.printcap.5; файлын хэлбэршилт хялбархан.
/etc/printcap файлд засвар хийхдээ
өөрийн дуртай текст засварлагчийг ашиглах хэрэгтэй. Хэлбэршилт нь
/usr/share/misc/termcap болон
/etc/remote зэрэг бусад боломжийн
файлуудтай төстэй байдаг. Хэлбэршилтийн тухай бүрэн
мэдээллийг &man.cgetent.3;-с үзнэ үү.
Энгийн түр хадгалагчийн тохиргоо дараах алхмуудаас тогтоно:
Хэвлэгчид зориулж нэр (болон хэдэн тохиромжтой alias-уудыг)
сонгож /etc/printcap файлд
хийж өгнө; Нэрлэх тухай дэлгэрэнгүй мэдээллийг
Хэвлэгчийг нэрлэх нь
хэсгээс үзнэ үү.
толгой хуудаснууд
sh боломжийг оруулан толгой хуудаснуудыг
болиулах хэрэгтэй (анхдагчаар идэвхтэй байдаг); Дэлгэрэнгүй мэдээллийг
Толгой хуудаснуудыг
дарах нь хэсгээс үзнэ үү.
Түр хадгалах санг үүсгэж түүний байрлалыг sd
боломжоор зааж өгөх хэрэгтэй; Дэлгэрэнгүй мэдээллийг Түр хадгалах санг үүсгэх нь
хэсгээс үзнэ үү.
Хэвлэгчид зориулж ашиглахаар /dev
оруулгыг тохируулж lp боломжоор
/etc/printcap файлд түүнийг тэмдэглэх
хэрэгтэй; Дэлгэрэнгүй мэдээллийг Хэвлэгчийн төхөөрөмжийг таних нь
хэсгээс үзнэ үү. Хэрэв хэвлэгч цуваа порт дээр байгаа бол
холбооны параметрүүдийг Түр хадгалагчийн холбооны
параметрүүдийг тохируулах нь хэсэгт хэлэлцсэн
ms# боломжоор тохируулах хэрэгтэй.
Цэвэр текст оруулах шүүлтүүрийг суулгана; Дэлгэрэнгүйг
Текст шүүгчийг суулгах нь
хэсгээс үзнэ үү.
&man.lpr.1; тушаалаар ямар нэг юм хэвлэж тест хийнэ.
Илүү дэлгэрэнгүйг Турших нь болон
Алдааг олж засварлах
хэсгүүдээс үзнэ үү.
&postscript; хэвлэгчид зэрэг хэлэн дээр суурилсан хэвлэгчид цэвэр
текстийг шууд хэвлэж чаддаггүй. Дээр болон дараагийн хэсгүүдэд
тайлбарласан энгийн тохиргоо нь хэрэв та ийм хэвлэгч суулгаж байгаа бол
таныг зөвхөн хэвлэгчийн ойлгодог файлыг хэвлэнэ гэж тооцдог.
Хэрэглэгчид нь цэвэр текстийг таны системд суулгагдсан дурын хэвлэгч уруу
өгч хэвлэж болно гэж ихэвчлэн боддог. LPD уруу
залгагдсан програмууд өөрсдийн хэвлэлтийг хийхдээ бас ингэж тооцдог.
Хэрэв та тийм хэвлэгч суулгаж хэвлэгчийн хэл дээр ажлуудаа хэвлэх
болон цэвэр текст ажлуудыг хэвлэж чаддаг байхыг
хүсэж байгаа бол дээр дурдсан энгийн тохиргоонд нэмэлт алхам нэмж өгөх
зайлшгүй шаардлагатай: цэвэр текстээс &postscript; уруу автоматаар хөрвүүлэх
програмыг суулгах хэрэгтэй. Цэвэр текст ажлуудыг
&postscript; хэвлэгчид дээр тааруулах нь гэж нэрлэгдсэн
хэсэг үүнийг хэрхэн хийхийг хэлж өгнө.
Хэвлэгчийг нэрлэх нь
Эхний (хялбар) алхам бол өөрийн хэвлэгчид зориулж нэр сонгох явдал
юм. Ажиллагаатай нь холбогдуулж юм уу эсвэл этгээд чамин нэр
сонгох нь яг үнэндээ хамаагүй юм. Учир нь та хэвлэгчид зориулж
бас хэд хэдэн alias буюу өөр нэрсийг өгч болох юм.
/etc/printcap-д тодорхойлогдсон
хэвлэгчдийн хамгийн багаар бодоход аль нэг lp
гэсэн alias-тай байх ёстой. Энэ нь анхдагч хэвлэгчийн нэр юм.
Хэрэв хэрэглэгчдэд PRINTER орчны хувьсагч
байхгүй юм уу эсвэл LPD тушаалуудыг
өгөх тушаалын мөрөнд хэвлэгчийн нэрийг зааж өгөөгүй бол
lp нь тэдгээрийн ашиглаж сурсан
анхдагч хэвлэгч болох юм.
Хэвлэгчийн хамгийн сүүлийн alias-д хэвлэгчийн бүрэн тайлбарыг
үйлдвэрлэгч болон загварыг оруулан өгөх нь нийтлэг практик байдаг.
Нэр болон зарим нийтлэг alias-уудыг сонгосныхоо дараа тэдгээрийг
/etc/printcap файлд хийж өгөх хэрэгтэй.
Хэвлэгчийн нэр хамгийн зүүн баганаас эхлэх ёстой. Alias болгоныг
босоо шугамаар тусгаарлаж хамгийн сүүлийн alias-ийн ард тодорхойлох
- цэг тавина.
+ цэг тавьна.
Дараах жишээн дээр хоёр хэвлэгчийг (Diablo 630 шугамын хэвлэгч болон Panasonic KX-P4455 &postscript;
лазерийн хэвлэгч) тодорхойлох /etc/printcap
файлаас бид эхлэх болно:
#
# /etc/printcap for host rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
Энэ жишээн дээр эхний хэвлэгч нь rattan гэж
нэрлэгдсэн бөгөөд line, diablo,
lp, болон Diablo 630 Line
Printer гэсэн alias-уудтай байна. Энэ нь
lp alias-тай болохоор энэ нь
бас анхдагч хэвлэгч юм. Хоёр дахь нь bamboo гэж
нэрлэгдсэн бөгөөд ps, PS,
S, panasonic, болон
Panasonic KX-P4455 PostScript v51.4 гэсэн
alias-уудтай байна.
Түр хадгалах санг үүсгэх нь
хэвлэгчийн түр хадгалалт
хэвлэх ажлууд
Түр хадгалагчийн энгийн тохиргоон дахь дараагийн алхам нь хэвлэгдэх
ажлууд хэвлэгдэх хүртлээ байдаг, түр хадгалагчийн бусад дэмжлэгийн
файлууд бас байдаг түр хадгалах санг
үүсгэх явдал юм.
Түр хадгалах сангийн хувьсамтгайгаас болоод эдгээр сангуудыг
/var/spool-д хийх нь зуршил
болсон зүйл юм. Түр хадгалах сангуудын агуулгыг заавал нөөцлөх
ч бас шаардлагагүй юм. Тэдгээрийг үүсгэх нь
&man.mkdir.1; тушаалыг ажиллуулахтай адил хялбар юм.
Доор үзүүлсэн шиг хэвлэгчийн нэртэй адил нэрээр санг үүсгэх нь бас зуршил болсон
байдаг:
&prompt.root; mkdir /var/spool/хэвлэгчийн-нэр
Гэхдээ та сүлжээндээ их олон хэвлэгчидтэй бол
түр хадгалах сангуудаа зөвхөн LPD-ээр хэвлэхийн тулд
нөөцөлсөн нэг сангийн доор хийхийг хүсэж болох юм. Бид
rattan болон bamboo
гэсэн хоёр жишээ хэвлэгчдээ зориулж үүнийг хийх болно:
&prompt.root; mkdir /var/spool/lpd
&prompt.root; mkdir /var/spool/lpd/rattan
&prompt.root; mkdir /var/spool/lpd/bamboo
Хэрэглэгчдийн хэвлэх ажлын нууцлалын талаар та бодож байгаа бол
түр хадгалах санд олон нийт хандах боломжгүй болгож түүнийг хамгаалахыг хүсэж
болох юм. Түр хадгалах сангуудыг хэрэглэгчийн дэмон болон бүлгийн
дэмон эзэмшиж, өөр хэнээр ч биш зөвхөн эдгээр дэмонуудаар уншигдах,
бичигдэх, болон хайлт хийх боломжтой байх ёстой. Бид үүнийг
өөрсдийн жишээ хэвлэгчдэд зориулж хийх болно:
&prompt.root; chown daemon:daemon /var/spool/lpd/rattan
&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan
&prompt.root; chmod 770 /var/spool/lpd/bamboo
Төгсгөлд нь та эдгээр сангуудын талаар LPD
програмд /etc/printcap файл ашиглан
хэлж өгөх хэрэгтэй. Түр хадгалах сангийн замыг sd
боломжтой цуг зааж өгнө:
#
# /etc/printcap for host rose - added spooling directories
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:
Хэвлэгчийн нэр эхний баганаас эхэлж харин хэвлэгчийг тайлбарлах
бусад бүх оруулгууд догол мөрөөс эхэлж мөр бүрийн төгсгөл урагш
налуу тэмдэгтээр төгсөх ёстой.
Хэрэв та түр хадгалах санг sd-ээр зааж өгөхгүй бол
түр хадгалах систем нь анхдагчаар /var/spool/lpd-г
ашиглах болно.
Хэвлэгч төхөөрөмжийг таних нь
Портын хэсэгт зориулагдсан оруулгуудад бид
/dev сан дахь аль оруулгыг
FreeBSD нь хэвлэгчтэй холбогдохдоо ашиглахыг мэдлээ.
Одоо бид LPD-д тэр
мэдээллийг хэлнэ. Түр хадгалах систем нь хэвлэх ажилтай
байгаа үедээ шүүгч програмын өмнөөс заасан төхөөрөмжийг онгойлгох
болно (шүүгч програм нь өгөгдлийг хэвлэгч уруу дамжуулахыг
хариуцдаг).
lp боломж ашиглан
/etc/printcap файлд
/dev оруулгын замыг жагсааж өгнө.
Бидний ажиллах жишээн дээр rattan нь
эхний зэрэгцээ порт дээр, bamboo нь
зургаа дахь цуваа порт дээр байгаа гэж үзье; энд /etc/printcap
файлд хийгдэх нэмэлтүүд байна:
#
# /etc/printcap for host rose - identified what devices to use
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:
Хэрэв та өөрийн /etc/printcap файл дээрээ
хэвлэгчдээ зориулж lp боломжийг зааж өгөхгүй
бол LPD нь анхдагчаар
/dev/lp-г ашиглах болно.
/dev/lp нь одоогоор FreeBSD дээр
байхгүй байгаа.
Хэрэв таны суулгаж байгаа хэвлэгч зэрэгцээ порт уруу холбогдсон бол
Текст шүүгчийг суулгах нь
хэсэг уруу алгасаарай. Үгүй бол дараагийн хэсэг дэх заавруудыг
дагахаа битгий мартаарай.
Түр хадгалагчийн холбооны параметрүүдийг тохируулах нь
хэвлэгчид
цуваа
Зэрэгцээ портууд дээрх хэвлэгчдийн хувьд LPD нь
bps хурд, parity, болон бусад цуваа холбооны параметрүүдийг хэвлэгч уруу өгөгдөл
илгээдэг шүүгч програмын өмнөөс тохируулж чаддаг. Энэ нь давуу талуудтай, учир нь:
Энэ нь /etc/printcap файлыг
засварлан өөр холбооны параметрүүдийг турших боломжийг танд
олгодог; та шүүгч програмыг дахин эмхэтгэх шаардлагагүй.
Энэ нь өөр өөр цуваа холбооны тохируулгуудтай байж болох олон
хэвлэгчдэд зориулж нэг шүүгч програмыг ашиглахаар
болгож түр хадгалах системийг идэвхжүүлдэг.
Дараах /etc/printcap боломжууд нь
lp боломжид жагсаагдсан төхөөрөмжийн
цуваа холбооны параметрүүдийг хянадаг:
br#bps-rate
Төхөөрөмжийн холбооны хурдыг bps-rate
болгож тохируулах бөгөөд bps-rate нь
секундэд 50, 75, 110,
134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
19200, 38400, 57600, эсвэл 115200 бит байж болно.
ms#stty-mode
Төхөөрөмжийг онгойлгосны дараа терминал төхөөрөмжид зориулж
сонголтуудыг тохируулна. &man.stty.1; нь байж болох сонголтуудыг
тайлбарладаг.
lp боломжоор заагдсан төхөөрөмжийг
LPD онгойлгох үед
энэ нь төхөөрөмжийн үзүүлэлтүүдийг ms#
боломжоор заагдсанаар тохируулдаг. Тухайлбал,
&man.stty.1; гарын авлагын хуудсанд тайлбарлагдсан байгаа
parenb,
parodd, cs5,
cs6, cs7,
cs8, cstopb,
crtscts, болон ixon
горимууд юм.
Зургаа дахь цуваа порт дээр өөрсдийн жишээ хэвлэгчээ нэмье.
Бид bps хурдыг 38400 гэж тохируулна. Горимын хувьд бид
-parenb тохируулгаар parity байхгүй,
cs8 тохируулгаар 8 бит тэмдэгтүүд,
clocal тохируулгаар модемийн хяналт
байхгүй, crtscts тохируулгаар
тоног төхөөрөмжийн урсгалын хяналт байхгүй гэж тохируулах
болно:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:
Текст шүүгчийг суулгах нь
хэвлэлт
шүүгчид
Одоо бид хэвлэгч уруу ажлууд илгээхийн тулд ямар текстийн шүүгчийг
ашиглахыг LPD-д хэлэхэд бэлэн
боллоо. Оролтын шүүгч гэж бас нэрлэгддэг
Текст шүүгч нь хэвлэх ажил байхад
LPD-ийн ажиллуулдаг програм
юм. LPD нь хэвлэгчид
зориулж текст шүүгчийг ажиллуулахдаа шүүгчийн стандарт оролтыг
хэвлэх ажил уруу тохируулж өгдөг бөгөөд стандарт гаралтыг
lp боломжоор заагдсан хэвлэгчийн төхөөрөмж
уруу тохируулдаг. Шүүгч нь стандарт оролтоос ажлыг уншиж
хэвлэгчид зориулж шаардлагатай орчуулгыг хийж үр дүнг стандарт
гаралт уруу бичихээр хийгдсэн байдаг. Ингэснээр хэвлэгдэх болно.
Текст шүүгчийн тухай дэлгэрэнгүй мэдээллийг
Шүүгчид
хэсгээс үзнэ үү.
Бидний энгийн хэвлэгчийн тохиргооны хувьд текст шүүгч нь
хэвлэгч уруу ажлыг илгээхийн тулд /bin/cat
тушаалыг ажиллуулах жижиг бүрхүүлийн скрипт байж болох юм.
FreeBSD нь устгах болон доогуур зурах зэрэг тэмдэгтийн урсгалуудтай
сайн ажиллаж чаддаггүй хэвлэгчдэд зориулсан тэдгээр тэмдэгтүүдийг
зохицуулдаг lpf гэсэн өөр шүүгчтэй
ирдэг. Тэгээд мэдээж та хүссэн өөр бусад шүүгч програмыг ашиглаж
болно. lpf шүүгч нь
lpf: текстийн шүүгч
хэсэгт дэлгэрэнгүй тайлбарлагдсан байгаа.
Эхлээд /usr/local/libexec/if-simple
гэсэн бүрхүүлийн скриптийг энгийн текст шүүгч болгоё. Энэ файлдаа өөрийн
дуртай засварлагчаа ашиглан дараах текстийг оруулъя:
#!/bin/sh
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
/bin/cat && exit 0
exit 2
Файлыг ажиллах боломжтой болгоно:
&prompt.root; chmod 555 /usr/local/libexec/if-simple
/etc/printcap файлд
if боломжоор үүнийг зааж
LPD-д ашиглах ёстойг нь хэлж өгнө. Бид үүнийг
/etc/printcap жишээ файл дахь
одоогоор бидэнд байгаа өөрсдийн хоёр хэвлэгчдээ нэмэх
болно:
#
# /etc/printcap for host rose - added text filter
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\
:if=/usr/local/libexec/if-simple:
if-simple скриптийн хуулбарыг
/usr/share/examples/printing
сангаас олж болно.
LPD-г идэвхжүүлэх
&man.lpd.8; нь lpd_enable хувьсагчаар
хянагддаг /etc/rc-с ажилладаг.
Энэ хувьсагчийн анхдагч утга нь NO байдаг.
Тэгж хийгээгүй байгаа бол та:
lpd_enable="YES"
мөрийг /etc/rc.conf файлд нэмж
өөрийн машиныг дахин ачаалах юм уу эсвэл ердөө л &man.lpd.8;-г
ажиллуулах хэрэгтэй.
&prompt.root; lpd
Турших нь
Та энгийн LPD тохиргооны
төгсгөлд хүрлээ. Харамсалтай нь баяр хүргэх арай л
болоогүй байна. Учир нь бид тохиргоог тест хийж асуудал байвал
засварлах хэрэгтэй хэвээр байгаа билээ. Тохиргоог тест хийхийн тулд
ямар нэгэн юм хэвлэхийг оролдож үзээрэй.
LPD системээр хэвлэхийн тулд
ажлыг хэвлэхээр илгээдэг &man.lpr.1; тушаалыг ашиглана.
Та &man.lpr.1;-г Хэвлэгчийн холбоог шалгах нь
хэсэгт танилцуулсан &man.lptest.1; програмтай
цуг хамтатган ямар нэг тест текст үүсгэхийн тулд ашиглаж болно.
Энгийн LPD тохиргоог тест
хийхийн тулд:
Доор дурдсаныг бичнэ:
&prompt.root; lptest 20 5 | lpr -Pprinter-name
Энд байгаа printer-name нь
/etc/printcap файлд заагдсан
хэвлэгчийн нэр (эсвэл alias) юм. Анхдагч хэвлэгчийг тест хийхийн тулд
&man.lpr.1;-г ямар нэгэн нэмэлт өгөгдөлгүйгээр
бичих хэрэгтэй. Дахин хэлэхэд &postscript;-г хүлээж байдаг
хэвлэгчийг тест хийж байгаа бол &man.lptest.1;-г ашиглахын оронд
&postscript; програмыг тэр хэл дээр нь илгээх хэрэгтэй.
Ингэхийн тулд та програмыг файлд хийж lpr
file гэж бичиж болно.
&postscript; хэвлэгчийн хувьд та програмын үр дүнг авах ёстой.
Хэрэв та &man.lptest.1;-г ашиглаж байгаа бол таны авсан
үр дүн иймэрхүү харагдах ёстой:
!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
$%&'()*+,-./01234567
%&'()*+,-./012345678
Хэвлэгчийг цааш тест хийхийн тулд илүү том програмуудыг
(хэлэн дээр суурилсан хэвлэгчдийн хувьд) татаж авах юм уу
эсвэл &man.lptest.1;-г өөр нэмэлт өгөгдлүүдтэй ажиллуулж үзээрэй.
Жишээ нь lptest 80 60 тушаал нь
мөр бүртээ 80 тэмдэгттэй 60 мөрийг үүсгэх болно.
Хэрэв хэвлэгч ажиллаагүй бол Алдааг олж засварлах
хэсгийг үзнэ үү.
Хэвлэгчийн илүү нарийн тохиргоо
Энэ хэсэгт онцгой загварчлагдсан файлыг шүүгчид, хуудасны толгой хэсэг,
сүлжээгээр хэвлэх мөн хэвлэгчийг хэрэглэх эрх болон хязгаарлалт гэсэн зүйлүүдийн
тухай зааварлах болно.
Шүүлтүүрүүд
хэвлэх
шүүлтүүр
Хэдийгээр LPD нь сүлжээний протокол,
дараалал, хандалтын хяналт гэх мэтчилэн хэвлэлтийн асуудлуудыг хариуцдаг ч
жинхэнэ ажлыг нь шүүлтүүрүүд хийдэг.
Шүүлтүүрүүд нь тусгай програмууд бөгөөд хэвлэгчийн төхөөрөмжүүд болон
онцгой шаардлагуудыг нь хариуцаж байдаг. Бид хамгийн энгийн суулгац хийх үед
их амархан бөгөөд бараг бүх хэвлэгчид тохирдог текст шүүлтүүр
суулгасан билээ. (Текст шүүлтүүр суулгах нь хэсэгт).
Хэвлэх төрлийн хувиргалт, хэвлэгчийн онцгой шинж чанар зэрэг давуу
чанаруудыг нь хэрэглэхийн тулд танд шүүлтүүрийг зөв ойлгох шаардлага гарна.
Ийм ажлуудыг зөвхөн шүүлтүүр хийдэг. Тэгээд муу мэдээ нь юу вэ гэхээр
тэдгээр бүгдийг та тодорхойлж өгөх ёстой. Сайн мэдээ нь
юу вэ гэхээр тэдгээрийн ихэнх нь боломжтой бэлэн байдаг бөгөөд хэрэв бичихээр
бол тун амархан бичигддэг юм.
Мөн түүнчлэн FreeBSD
/usr/libexec/lpr/lpf гэдэг нэртэй, бараг бүх хэвлэгчид
ердийн текст хэвлэж чаддаг шүүлтүүртэй ирдэг. (энэ нь файл дотор байгаа
зай болон том зай авалтуудыг таньдаг бөгөөд мөн эрх үүсгэх гээд түүний
чаддаг бүх зүйл нь үүгээр дуусдаг)
FreeBSD-н портын цуглуулга дотор хэд хэдэн шүүлтүүр болон шүүлтүүрийн
бүрдэл хэсгүүд байдаг.
Энэ хэсэгт танд танилцуулах зүйлсүүдийг харуулъя:
Шүүлтүүр хэрхэн
ажилладаг вэ хэсэгт хэвлэх явцад шүүлтүүр ямар үүрэг гүйцэтгэдэг
талаар тайлбарлахыг оролдох болно. LPD хэвлэх
үедээ шүүлтүүрийг хөшигний цаана
хэрхэн ашигладаг талаар
та энд ойлгох болно. Үүнийг мэдсэнээр хэрэв өөр үед та олон шүүлтүүр суулгах
үед хүндрэл гарвал даван туулахад тань хэрэг болно.
LPD нь хэвлэгч бүрийг анхны тохируулгаараа
ердийн текстийг хэвлэж чадна гэж авч үздэг. Энэ нь &postscript; (
эсвэл бусад програмын хэл дээр үндэслэсэн хэвлэгчид ) хэвлэгч
зэргийн ердийн текстийг шууд хэвлэж чаддаггүй хэвлэгчид дээр хүндрэл
гаргадаг.
&postscript; хэвлэгчид дээр ердийн текст хэвлэдэг болох хэсэгт
иймэрхүү хүндрэлийг даван туулах талаар хэлэх болно. Хэрэв танд
&postscript; хэвлэгч байдаг бол энэ хэсгийг уншаарай.
&postscript; нь маш олон програмын гаралт болж байдаг.
Тэр бүү хэл зарим хүмүүс шууд &postscript; бичиж чаддаг. Харамсалтай нь
&postscript; хэвлэгч нар үнэтэй. &postscript; биш төрлийн хэвлэгчийг
&postscript; мэт хэрэглэх хэсэгт танд &postscript; өгөгдлийг
&postscript; биш төрлийн хэвлэгч дээр
хэвлэж болдог талаар зааварлах болно. Хэрэв танд &postscript; хэвлэгч
байхгүй бол энэ хэсгийг та уншаарай.
Хувиргагч шүүлтүүрүүд
хэсэг танд онцгой төрлийн файлууд болох график эсвэл
өөр төрлийн бичиглэлтэй файлуудыг хэрхэн таны хэвлэгчийн ойлгодог
төрөл рүү хувиргаж хэвлэх талаар өгүүлэх болно.
Энэ хэсгийг уншсаны дараа, та жишээ нь хэрэглэгчид
lpr -t тушаал өгөн troff өгөгдөл хэвлэх
эсвэл lpr -d тушаал өгөн &tex; DVI өгөгдөл
хэвлэх эсвэл lpr
-v тушаал өгөн зураг төрлийн файл хэвлэх зэрэг
зүйлүүдийг мэдэх болно. Энэ хэсгийг заавал унших хэрэгтэй гэж танд
зөвлөж байна.
Гаралтын шүүлтүүр
хэсэг нь LPD-н нэг их
хэрэглэгддэг шинж чанарууд болох гаралтын шүүлтүүрүүдийн
тухай өгүүлэх болно:
Та хуудасны толгой хэсгийг хэвлэж болж л байвал
(Хуудасны толгой хэсэг
хэсэгт харна уу) энэ хэсгийг та алгасаж болно.
lpf: текст шүүлтүүр
хэсэгт FreeBSD-тэй хамт нэлээн төгс ажиллагаатай
мөрөөр нь хэвлэдэг (лазер хэвлэгч нар мөр мөрөөр нь хэвлэдэг
туузан хэвлэгч шиг ажилладаг) lpf текст шүүлтүүрийн
тухай өгүүлэх болно. Хэрэв та хэвлэгчийнхээ эрхийг түргэн бэлэн
болгох эсвэл таны хэвлэгч хоосон зайг утаа байна гэж хүлээж
аваад байвал та яах аргагүй lpf-тэй
ажиллах хэрэг гарна.
Доорх хэсэгт харуулах янз бүрийн скриптийн хуулбарыг /usr/share/examples/printing сангаас
олж болно.
Шүүлтүүр хэрхэн ажилладаг вэ
Өмнө дурдсанаар шүүлтүүр нь хэвлэгчтэй холбогдох төхөөрөмжөөс чөлөөтэй
хэсгийг зохицуулах LPD-ээр эхлүүлэгдэн
ажилладаг програм юм.
Ажил дахь файлыг LPD хэвлэхийг
хүсэхдээ шүүлтүүр програмыг эхлүүлдэг. Энэ нь шүүлтүүрийн стандарт оролтыг
хэвлэх файл уруу, өөрийн стандарт гаралтыг хэвлэгч уруу, өөрийн стандарт алдааг
алдаа бүртгэх файл (/etc/printcap файл
дахь lf боломжид эсвэл анхдагчаар
/dev/console) уруу тохируулдаг.
troff
LPD аль шүүлтүүрийг эхлүүлэх болон
/etc/printcap файлд юу байгаа болон
&man.lpr.1; тушаалын мөр дэх ажилд зориулж хэрэглэгч ямар нэмэлт өгөгдлүүд
зааснаас шүүлтүүрийн нэмэлт өгөгдлүүд хамаардаг. Жишээ нь хэрэв хэрэглэгч
lpr -t тушаал бичсэн бол
LPD нь хүрэх хэвлэгчийн tf
боломжид жагсаагдсан troff шүүлтүүрийг эхлүүлэх болно. Хэрэв хэрэглэгч
цэвэр текстийг хэвлэхийг хүссэн бол энэ нь if
шүүлтүүрийг эхлүүлэх байсан (энэ нь бараг л үнэн юм: дэлгэрэнгүйг Гаралтын шүүлтүүрүүд хэсгээс
үзнэ үү).
/etc/printcap файлд зааж өгч болох гурван
төрлийн шүүлтүүр байдаг:
текст шүүлтүүр буюу
оролтын шүүлтүүр гэж LPD
баримтад толгой эргүүлмээр нэрлэгдсэн шүүлтүүр нь ердийн текст хэвлэлтийг
зохицуулдаг. Үүнийг анхдагч шүүлтүүр гэж бодох хэрэгтэй.
LPD нь хэвлэгч бүрийг цэвэр текстийг
анхдагчаар хэвлэж чаддаг гэж тооцдог бөгөөд устгах тэмдэгтүүд, tab-ууд
эсвэл бусад тусгай тэмдэгтүүд хэвлэгчийг будлиулахгүй байлгахад санаа
тавих нь текст шүүлтүүрийн ажил юм. Хэрэв та хэвлэгчийн хэрэглээний
хувьд бүртгэлтэй тийм орчинд байгаа бол текст шүүлтүүр нь
хэвлэгдсэн мөрүүдийн тоог тоолж тэр тоогоо хэвлэгчийн дэмждэг нэг хуудсан
дахь мөрийн тоотой жишиж хэвлэсэн хуудаснуудыг бас бүртгэх ёстой.
Текст шүүлтүүрийг дараах нэмэлт өгөгдлийн жагсаалттай эхлүүлдэг:
filter-name
-c
-wwidth
-llength
-iindent
-n login
-h host
acct-file
энд байгаа
нь ажил lpr
-l тушаалаар илгээгдсэн бол гарч ирнэ
width
нь /etc/printcap файлд
заагдсан pw (хуудасны өргөн) боломжийн
утга юм. Анхдагчаар 132 байна
length
нь pl (хуудасны урт)
боломжийн утга бөгөөд анхдагчаар 66 байна
indent
нь lpr
-i тушаалаас өгөгдөх догол мөрний хэмжээ юм.
Анхдагчаар 0 байна
login
нь файлыг хэвлэж байгаа хэрэглэгчийн бүртгэл юм
host
нь ажлыг илгээсэн хостын нэр юм
acct-file
нь af боломжийн
бүртгэлийн файлын нэр юм.
хэвлэлт
шүүлтүүрүүд
Хувиргах шүүлтүүр нь тусгай файлын хэлбэршилтийг
хэвлэгчийн цаасан дээр амилуулж чадах хэлбэршилт уруу хувиргадаг. Жишээ нь
ditroff маяг хийгдсэн өгөгдлийг шууд хэвлэж болдоггүй боловч
ditroff өгөгдлийг хэвлэгчийн ойлгож хэвлэх хэлбэр уруу хувиргах ditroff
файлуудад зориулсан хувиргах шүүлтүүрийг та суулгаж болох юм.
Тэдгээрийн талаар бүгдийг Хувиргах шүүлтүүрүүд
хэсэг хэлж өгдөг. Хэрэв танд хэвлэгчийн бүртгэл хийлт хэрэгтэй бол хувиргах шүүлтүүрүүд
бас бүртгэл хийх хэрэгтэй болно. Хувиргах шүүлтүүрүүдийг дараах нэмэлт өгөгдлүүдтэй
эхлүүлдэг:
filter-name
-xpixel-width
-ypixel-height
-n login
-h host
acct-file
энд байгаа pixel-width нь
px боломжийн утга (анхдагчаар 0) бөгөөд
pixel-height нь py
боломжийн утга юм (анхдагчаар 0).
Гаралтын шүүлтүүр нь шүүх текст байхгүй байх
юм уу эсвэл толгой хуудаснууд идэвхтэй байх тохиолдолд зөвхөн ашиглагддаг.
Миний туршлага дээрээс харахад гаралтын шүүлтүүрүүд ховор ашиглагддаг.
Гаралтын шүүлтүүрүүд хэсэг
тэдгээрийг тайлбарладаг. Гаралтын шүүлтүүрт зөвхөн хоёр нэмэлт өгөгдөл
байдаг:
filter-name
-wwidth
-llength
эдгээр нь текст шүүлтүүрийн болон
нэмэлт өгөгдлүүдтэй адил юм.
Шүүлтүүрүүд нь бас дараах гарах төлөвтэйгөөр гарах
ёстой:
exit 0
Шүүлтүүр файлыг амжилттай хэвлэсэн тохиолдолд.
exit 1
Шүүлтүүр файлыг хэвлэж чадаагүй боловч LPD-гээр
файлыг дахин хэвлүүлэхээр оролдохыг хүссэн. LPD нь
шүүлтүүр энэ төлөвтэй гарсан бол түүнийг дахин эхлүүлэх болно.
exit 2
Шүүлтүүр файлыг хэвлэж чадаагүй бөгөөд LPD-гээр
файлыг дахин хэвлүүлэхийг хүсээгүй. LPD-нь
файлыг гаргаж хаях болно.
FreeBSD хувилбартай цуг ирдэг текст шүүлтүүр /usr/libexec/lpr/lpf нь
хуудасны өргөн болон уртын нэмэлт өгөгдлүүдийг ашиглан хэзээ form feed илгээх
болон хэвлэгчийн хэрэглээг хэрхэн бүртгэхийг тодорхойлдог. Энэ нь бүртгэлийн оруулгуудыг
бичихийн тулд нэвтрэлт, хост болон файлын нэмэлт өгөгдлүүдийн бүртгэл хийлтийг
ашигладаг.
Хэрэв та шүүлтүүр худалдаж авахыг хүсэж байгаа бол тэдгээр нь LPD-тэй
нийцтэй эсэхийг нь үзээрэй. Хэрэв тийм бол тэдгээр нь дээр тайлбарласан
нэмэлт өгөгдлийн жагсаалтуудыг дэмжих ёстой. Та ердийн хэрэглээнд зориулж
шүүлтүүрүүд бичих төлөвлөгөөтэй байгаа бол дээрх нэмэлт өгөгдлийн жагсаалт
болон гарах кодуудыг дэмждэгээр тэдгээрийг хийгээрэй.
&postscript; хэвлэгчид дээр цэвэр текст ажлуудыг тааруулах нь
хэвлэх ажлууд
Та өөрийн компьютер болон &postscript; (эсвэл бусад хэлэн дээр
суурилсан) хэвлэгчийнхээ зөвхөн цорын ганц хэрэглэгч бөгөөд өөрийн хэвлэгч уруугаа
цэвэр текстийг хэзээ ч илгээхгүй, таны хэвлэгч уруу цэвэр текстийг илгээхийг хүсдэг
төрөл бүрийн програмуудын боломжуудыг хэзээ ч ашиглахгүй гэж амлах юм бол та
энэ хэсгийн талаар санаа ерөөсөө зовох хэрэггүй юм.
Гэхдээ та &postscript; болон цэвэр текст ажлуудыг хэвлэгч уруу илгээхийг
хүсэж байгаа бол өөрийн хэвлэгчийн тохиргоог нэн даруй нэмэх хэрэгтэй юм. Ингэхийн
тулд ирж байгаа ажил цэвэр текст үү эсвэл &postscript; үү гэдгийг илрүүлэх
текст шүүлтүүртэй байна. Бүх &postscript; ажлууд %!-аар
(бусад хэвлэгчийн хэлнүүдийн хувьд өөрийн хэвлэгчийн баримтыг үзнэ үү) эхлэх ёстой.
Хэрэв тэдгээр нь ажил дахь эхний хоёр тэмдэгт байгаа бол бид &postscript;-ийг
ашиглаж ажлын үлдсэн хэсгийг шууд дамжуулж болно. Хэрэв тэдгээр нь файл дахь
эхний хоёр тэмдэгт биш бол шүүлтүүр текстийг &postscript; уруу хувиргаж
үр дүнг хэвлэх болно.
Үүнийг бид хэрхэн хийх вэ?
хэвлэгчид
цуваа
Хэрэв танд цуваа хэвлэгч байгаа бол үүнийг хийх агуу арга нь
lprps-г суулгах явдал юм. lprps
нь хэвлэгчтэй хоёр талын холбоог хийдэг &postscript; хэвлэгчийн шүүлтүүр юм.
Энэ нь хэвлэгчийн төлвийн файлыг хэвлэгчийн дэлгэрэнгүй мэдээллээр шинэчилдэг.
Ингэснээр хэрэглэгчид болон администраторууд хэвлэгчийн төлөвийг яг ямар байгааг
(toner low эсвэл paper jam
гэх зэрэг) харах боломжтой болох юм. Гэхдээ илүү чухал зүйл бол энэ нь
ирж байгаа ажлыг цэвэр текст эсэхийг илрүүлж &postscript; уруу хөрвүүлэх
textps (lprps-тэй цуг ирдэг
өөр програм) тушаалыг дууддаг psif
гэгддэг програмыг агуулдаг явдал юм. Дараа нь хэвлэгч уруу ажлыг илгээхийн тулд
lprps тушаалыг энэ нь ашигладаг.
lprps нь FreeBSD-ийн портын цуглуулгад
байдаг (Портын цуглуулга бүлгийг үзнэ үү).
Мэдээж та өөрөө татаж аван бүтээж суулгаж болно. lprps-г
суулгасны дараа lprps-ийн хэсэг болох psif
програмд замыг зааж өгөх хэрэгтэй. Хэрэв та lprps-г
портын цуглуулгаас суулгасан бол доор дурдсаныг /etc/printcap
файл дахь цуваа &postscript; хэвлэгчийн оруулгад ашиглах хэрэгтэй:
:if=/usr/local/libexec/psif:
Та бас rw боломжийг зааж өгөх хэрэгтэй;
энэ нь LPD-д хэвлэгчийг унших-бичих горимоор
онгойлгохыг хэлж өгдөг.
Хэрэв танд зэрэгцээ &postscript; хэвлэгч байгаа (бөгөөд
тиймээс lprps-д хэрэгтэй хоёр талын холбоог хэвлэгчтэй
цуг ашиглаж чадахгүй байгаа) бол та дараах бүрхүүлийн
скриптийг текст шүүлтүүр маягаар ашиглаж болно:
#!/bin/sh
#
# psif - Print PostScript or plain text on a PostScript printer
# Script version; NOT the version that comes with lprps
# Installed in /usr/local/libexec/psif
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# PostScript job, print it.
#
echo "$first_line" && cat && printf "\004" && exit 0
exit 2
else
#
# Plain text, convert it, then print it.
#
( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
exit 2
fi
Дээрх скрипт дээр байгаа textps нь цэвэр текстийг
&postscript; уруу хувиргахаар бидний тусдаа суулгасан програм юм.
Та дурын текстээс-&postscript; уруу хувиргадаг хүссэн програмаа ашиглаж болно.
FreeBSD-ийн портын цуглуулга (Портын цуглуулга
бүлгийг үзнэ үү) нь өргөн боломжтой текстээс-&postscript; уруу хувиргадаг
a2ps гэгддэг програмыг агуулдаг бөгөөд та магадгүй үүнийг
судлахыг хүсэж болох юм.
&postscript; биш хэвлэгчид дээр &postscript; дүр үзүүлэх
PostScript
эмуляц хийх
Ghostscript
&postscript; нь өндөр чанарын маяг тохируулалт болон хэвлэлтэд зориулагдсан
албан ёсны стандарт юм. &postscript; нь гэхдээ
үнэтэй стандарт юм.
Aladdin Enterprises-ийн ачаар харин чөлөөтэй &postscript;-тэй төстэй,
FreeBSD дээр ажилладаг Ghostscript гэгддэг
програм байдаг. Ghostscript нь ихэнх &postscript; файлуудыг уншиж чаддаг бөгөөд
тэдгээрийн хуудаснуудыг PostScript биш хэвлэгчдийн олон загваруудыг оролцуулаад
төрөл бүрийн төхөөрөмжүүд рүү амилуулж чаддаг. Ghostscript-г суулгаж
өөрийн хэвлэгчийн хувьд тусгай текстийн шүүлтүүрийг ашиглан та өөрийн &postscript;
биш хэвлэгчийг жинхэнэ &postscript; хэвлэгч шигээр ажиллуулах боломжтой
байдаг.
Ghostscript нь FreeBSD-ийн портын цуглуулгад байдаг учир хэрэв та үүнийг
суулгахыг хүсвэл тэндээс суулгаж болно. Та өөрөө үүнийг хялбархнаар татан авч, бүтээн
суулгаж бас болох юм.
&postscript; шиг дүр үзүүлэхийн тулд &postscript; файл хэвлэж байна уу
гэдгийг илрүүлэх текст шүүлтүүр бидэнд байна. Хэрэв энэ нь тийм биш бол шүүлтүүр нь
файлыг хэвлэгч уруу шууд дамжуулна; үгүй бол энэ нь файлыг хэвлэгчийн ойлгодог
хэлбэр уруу эхлээд хувиргах Ghostscript-г ашиглах болно.
Энд жишээ байна: дараах скрипт нь Hewlett Packard DeskJet 500
хэвлэгчдэд зориулсан текст шүүлтүүр юм. Бусад хэвлэгчдийн хувьд
нэмэлт өгөгдлийг сольж gs (Ghostscript)
тушаал уруу өгөх хэрэгтэй. (Ghostscript-ийн тухайн үеийн суулгацын дэмждэг төхөөрөмжүүдийн
жагсаалтыг авахын тулд gs -h гэж бичих хэрэгтэй.
#!/bin/sh
#
# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500
# Installed in /usr/local/libexec/ifhp
#
# Treat LF as CR+LF (to avoid the "staircase effect" on HP/PCL
# printers):
#
printf "\033&k2G" || exit 2
#
# Read first two characters of the file
#
IFS="" read -r first_line
first_two_chars=`expr "$first_line" : '\(..\)'`
if [ "$first_two_chars" = "%!" ]; then
#
# It is PostScript; use Ghostscript to scan-convert and print it.
#
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
-sOutputFile=- - && exit 0
else
#
# Plain text or HP/PCL, so just print it directly; print a form feed
# at the end to eject the last page.
#
echo "$first_line" && cat && printf "\033&l0H" &&
exit 0
fi
exit 2
Төгсгөлд нь та шүүлтүүрийн LPD-д
if боломжийн тусламжтай мэдэгдэх хэрэгтэй:
:if=/usr/local/libexec/ifhp:
Ингээд л боллоо. Та lpr plain.text болон
lpr whatever.ps гэж бичиж болох бөгөөд
хоюулаа амжилттайгаар хэвлэгдэх болно.
Хувиргах шүүлтүүрүүд
Хэвлэгчийн энгийн тохиргоо хэсэгт
тайлбарласан энгийн тохиргоог дуусгасны дараа магадгүй таны хамгийн эхэнд хийхийг хүссэн
зүйл чинь өөрийн дуртай файлын хэлбэршилтүүдэд (цэвэр ASCII текстээс гадна)
зориулж хувиргах шүүлтүүрүүдийг суулгах явдал байж болох юм.
Хувиргах шүүлтүүрүүдийг яагаад суулгах ёстой вэ?
&tex;
DVI файлуудыг хэвлэх
Хувиргах шүүлтүүрүүд нь төрөл бүрийн файлуудыг хэвлэхэд амар болгодог.
Жишээ нь бид &tex; хэв маяг тохируулах системтэй их ажилладаг бөгөөд
бидэнд &postscript; хэвлэгч байна гэж бодъё. &tex;-ээс DVI файлыг
үүсгэх болгонд бид DVI файлыг &postscript; уруу хувиргалгүйгээр
шууд хэвлэж чадахгүй. Тушаалын дараалал иймэрхүү хийгдэнэ:
&prompt.user; dvips seaweed-analysis.dvi
&prompt.user; lpr seaweed-analysis.ps
DVI файлуудад зориулсан хувиргах шүүлтүүрийг суулгаж
LPD-ээр өөрсөддөө зориулан хийлгэж
бид гараар хувиргах алхмыг алгасаж болно. Одоо, DVI файлыг авах болгонд
бидэнд хэвлэхэд нэг алхам дутуу байх болно:
&prompt.user; lpr -d seaweed-analysis.dvi
Бидэнд зориулж DVI файлын хувиргалтыг хийх LPD
програмд тохируулгыг зааж өгнө.
Хэлбэршүүлэх болон хувиргах
тохируулгууд хэсэг хувиргах тохируулгуудыг жагсаасан байгаа.
Таны хүсэх хэвлэгчийн дэмжих хувиргах тохируулга бүрт зориулж
хувиргах шүүлтүүр суулгаж түүний замыг
/etc/printcap файлд зааж өгнө.
Хувиргах шүүлтүүр нь энгийн хэвлэгчийн тохиргоон дахь
(Текст шүүлтүүрийг
суулгах нь хэсгийг үзнэ үү) текст шүүлтүүртэй төстэй. Ялгаа нь
цэвэр текст хэвлэхийн оронд энэ шүүлтүүр нь файлыг хэвлэгчийн ойлгодог
хэлбэршилт уруу хувиргадаг.
Аль хувиргах шүүлтүүрүүдийг би суулгах ёстой вэ?
Та ашиглах хувиргах шүүлтүүрүүдээ суулгах ёстой. Хэрэв та маш их
DVI өгөгдлийг хэвлэх бол DVI хувиргах шүүлтүүр хэрэглэгдэнэ.
Хэрэв танд маш их troff хэвлэх хэрэгтэй бол та troff шүүлтүүрийг
суулгахыг хүсэх байх.
Дараах хүснэгтэд LPD-ийн
ажилладаг шүүлтүүрүүд, тэдгээрийн /etc/printcap
файл дахь боломжийн оруулгууд болон тэдгээрийг lpr
тушаалаар хэрхэн дуудах талаар дурдсан болой:
Файлын төрөл
/etc/printcap боломж
lpr тохируулга
cifplot
cf
DVI
df
plot
gf
ditroff
nf
FORTRAN текст
rf
troff
tf
raster
vf
цэвэр текст
if
none, , or
Бидний жишээн дээрх lpr -d тушаалыг ашиглах нь
хэвлэгчийн хувьд /etc/printcap файл дахь түүний
оруулгад df боломж хэрэгтэй гэсэн үг юм.
FORTRAN
Бусад хүмүүс магадгүй маргаж болох юм. Гэхдээ FORTRAN текст болон
plot зэрэг хэлбэршилтүүд нь магадгүй хуучирсан хэлбэршилтүүд юм.
Та өөрийн талдаа эдгээр шинэ ойлголтууд юм уу эсвэл ердөө л
өөрчлөн тохируулсан шүүлтүүрүүдийг суулгаж аль нэг хэлбэршилтийн
сонголтуудыг өгч болох юм. Жишээ нь та Printerleaf файлуудыг
(Interleaf ширээний хэвлэх програмаас гарах файлууд) шууд хэвлэхийг
хүсчээ. Гэхдээ plot файлуудыг хэзээ ч хэвлэхгүй гэж бодъё.
Тэгвэл та gf боломжийн доор
Printerleaf хувиргах шүүлтүүрийг суулгаж lpr -g
тушаал нь Printerleaf файлуудыг хэвлэх
гэсэн үг болохыг өөрийн хэрэглэгчиддээ сургах хэрэгтэй болох юм.
Хувиргах шүүлтүүрүүдийг суулгах нь
Хувиргах шүүлтүүрүүд нь үндсэн FreeBSD суулгацаас гадна суулгах програмууд
бөгөөд /usr/local сан дотор байрлана.
/usr/local/libexec сан нь түгээмэл хэрэглэгддэг
байрлал юм. Учир нь тэдгээр нь LPD-ийн
зөвхөн ажиллуулах тусгай програмууд юм; ердийн хэрэглэгчид нь тэдгээрийг
хэзээ ч ажиллуулах хэрэггүй юм.
Хувиргах шүүлтүүрийг идэвхжүүлэхийн тулд /etc/printcap
файлд хүрэх хэвлэгчийн хувьд тохирох боломжийн доор түүний замыг зааж өгөх
явдал юм.
Бидний жишээн дээр bamboo гэж нэрлэгдсэн хэвлэгчийн
оруулгад DVI хувиргах шүүлтүүрийг бид нэмэх болно. bamboo
хэвлэгчийн хувьд шинэ df боломжийг оруулсан
/etc/printcap файлын жишээг энд дахин
үзүүлэв.
#
# /etc/printcap for host rose - added df filter for bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:
DVI шүүлтүүр нь /usr/local/libexec/psdf
гэж нэрлэгдсэн бүрхүүлийн скрипт юм. Энд тэр скриптийг үзүүлэв:
#!/bin/sh
#
# psdf - DVI to PostScript printer filter
# Installed in /usr/local/libexec/psdf
#
# Invoked by lpd when user runs lpr -d
#
exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
Энэ скрипт нь dvips-г шүүлтүүрийн горимд
( нэмэлт өгөгдөл) хэвлэх ажил болох стандарт
оролт дээр ажиллуулдаг. Дараа нь &postscript; хэвлэгчийн шүүлтүүр
lprps-г (&postscript; хэвлэгчид
дээр текст ажлуудыг тааруулах нь хэсгийг үзнэ үү)
LPD-ийн
энэ скрипт уруу дамжуулсан нэмэлт өгөгдлүүдтэй цуг эхлүүлнэ.
lprps тушаал нь хэвлэсэн хуудаснуудыг
бүртгэхийн тулд тэдгээр нэмэлт өгөгдлүүдийг ашиглах болно.
Хувиргах шүүлтүүрийн зарим жишээнүүд
Хувиргах шүүлтүүрүүдийг суулгах тогтмол алхмууд байдаггүй болохоор
зарим жишээнүүдийг энд дурдъя. Эдгээрийг өөрийн шүүлтүүрийг
хийхдээ заавар болгон ашиглаарай. Тохирохоор бол шууд ашиглах
хэрэгтэй.
Энэ жишээ скрипт нь Hewlett Packard LaserJet III-Si хэвлэгчид
зориулсан raster (яг үнэндээ GIF файл) хувиргах шүүлтүүр
юм:
#!/bin/sh
#
# hpvf - Convert GIF files into HP/PCL, then print
# Installed in /usr/local/libexec/hpvf
PATH=/usr/X11R6/bin:$PATH; export PATH
giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
&& exit 0 \
|| exit 2
Энэ нь GIF файлыг зөөгдөх anymap уруу, гарсныг нь зөөгдөх graymap уруу,
гарсныг нь зөөгдөх bitmap уруу, тэр гарсныг нь LaserJet/PCL-тэй
нийцтэй өгөгдөлд хувиргаж ажилладаг.
Дээрх шүүлтүүрийг ашиглаж байгаа хэвлэгчид зориулсан оруулгатай
/etc/printcap файлыг энд үзүүлэв:
#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:
Дараах скрипт нь bamboo гэж нэрлэгдсэн
&postscript; хувилагчийн groff маяг тохируулах системээс troff
өгөгдөлд зориулсан хувиргах шүүлтүүр юм:
#!/bin/sh
#
# pstf - Convert groff's troff data into PS, then print.
# Installed in /usr/local/libexec/pstf
#
exec grops | /usr/local/libexec/lprps "$@"
Дээрх скрипт нь хэвлэгчтэй хийх холбоог зохицуулахын тулд
lprps-г дахин ашигладаг. Хэрэв хэвлэгч
зэрэгцээ порт дээр байгаа бол бид энэ скриптийг харин ашиглах болно:
#!/bin/sh
#
# pstf - Convert groff's troff data into PS, then print.
# Installed in /usr/local/libexec/pstf
#
exec grops
Ингээд л боллоо. Шүүлтүүрийг идэвхжүүлэхийн тулд бид
дараах оруулгыг /etc/printcap файлд
нэмэх хэрэгтэй:
:tf=/usr/local/libexec/pstf:
Хуучин гаруудыг FORTRAN-с ичихэд хүргэх жишээг энд үзүүлэв.
Энэ нь цэвэр текстийг шууд хэвлэж чадах дурын хэвлэгчид зориулсан
FORTRAN-текст шүүлтүүр юм. Бид үүнийг teak
хэвлэгчид зориулж суулгах болно:
#!/bin/sh
#
# hprf - FORTRAN text filter for LaserJet 3si:
# Installed in /usr/local/libexec/hprf
#
printf "\033&k2G" && fpr && printf "\033&l0H" &&
exit 0
exit 2
Тэгээд бид энэ шүүлтүүрийг идэвхжүүлэхийн тулд
teak хэвлэгчид зориулж
/etc/printcap файлд энэ мөрийг
нэмэх болно:
:rf=/usr/local/libexec/hprf:
Энд сүүлийн бөгөөд зарим талаараа төвөгтэй жишээ байна. Бид DVI шүүлтүүрийг
өмнө танилцуулсан LaserJet хэвлэгч teak-д
нэмэх болно. Эхлээд амархан хэсэг нь: /etc/printcap
файлыг DVI шүүлтүүрийн байрлалаар шинэчлэх явдал юм:
:df=/usr/local/libexec/hpdf:
Одоо хэцүү хэсэг нь: шүүлтүүр хийх явдал юм. Үүний тулд бидэнд
DVI-ээс-LaserJet/PCL уруу хувиргах програм хэрэгтэй. FreeBSD-ийн
портын цуглуулгад (see Портын цуглуулга)
нэг байдаг: dvi2xx нь багцын нэр юм.
Энэ багцыг суулгах нь бидэнд хэрэгтэй програм dvilj2p-г
өгдөг. Энэ нь DVI-г LaserJet IIp, LaserJet III, болон LaserJet 2000-тай
нийцтэй кодууд уруу хувиргадаг.
dvilj2p нь шүүлтүүр hpdf-г
нэлээн төвөгтэй болгодог. Учир нь dvilj2p нь
стандарт оролтоос уншиж чаддаггүй. Энэ нь файлын нэртэй ажиллахыг хүсдэг.
Юу нь бүр муу вэ гэхээр файлын нэр нь .dvi гэж
төгсөх ёстой. Тэгэхээр /dev/fd/0-г
стандарт оролтод зориулж ашиглах нь асуудалтай болно.
Бид түр зуурын файлын нэрийг (.dvi-аар төгссөн)
/dev/fd/0 уруу болгож холбоос үүсгэн энэ асуудлыг
тойрон гарч болох юм. Ингэснээр dvilj2p тушаалыг
стандарт оролтоос уншуулах юм.
Асуудалтай нэг зүйл нь бид /tmp-г түр зуурын
холбоост ашиглаж болохгүй явдал юм. Симболын холбоосуудыг
bin хэрэглэгч болон бүлэг эзэмшдэг. Тэгээд
/tmp санд наалттай (sticky) бит тохируулагдсан
байдаг. Шүүлтүүр нь холбоос үүсгэж чадах боловч холбоос нь өөр хэрэглэгчид
харьяалагдах болохоор дууссаныхаа дараа цэвэрлэж устгаж чаддаггүй юм.
Харин шүүлтүүр нь түр хадгалах сан (/etc/printcap файлд
sd боломжоор заагдсан) болох одоо ажиллаж
байгаа санд симболын холбоос үүсгэх болно . Энэ нь шүүлтүүрийн ажлаа хийх
төгс газар юм. Ялангуяа илүү их чөлөөтэй дискний зай /tmp сан
доторхоос илүү түр хадгалах санд (заримдаа) байдаг.
Ингээд эцэст нь шүүлтүүр энэ байна:
#!/bin/sh
#
# hpdf - Print DVI data on HP/PCL printer
# Installed in /usr/local/libexec/hpdf
PATH=/usr/local/bin:$PATH; export PATH
#
# Define a function to clean up our temporary files. These exist
# in the current directory, which will be the spooling directory
# for the printer.
#
cleanup() {
rm -f hpdf$$.dvi
}
#
# Define a function to handle fatal errors: print the given message
# and exit 2. Exiting with 2 tells LPD to do not try to reprint the
# job.
#
fatal() {
echo "$@" 1>&2
cleanup
exit 2
}
#
# If user removes the job, LPD will send SIGINT, so trap SIGINT
# (and a few other signals) to clean up after ourselves.
#
trap cleanup 1 2 15
#
# Make sure we are not colliding with any existing files.
#
cleanup
#
# Link the DVI input file to standard input (the file to print).
#
ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
#
# Make LF = CR+LF
#
printf "\033&k2G" || fatal "Cannot initialize printer"
#
# Convert and print. Return value from dvilj2p does not seem to be
# reliable, so we ignore it.
#
dvilj2p -M1 -q -e- dfhp$$.dvi
#
# Clean up and exit
#
cleanup
exit 0
Автомат хувиргалт: Хувиргагч шүүлтүүртэй ижилхэн шүүлтүүрүүд
Эдгээр бүх хувиргагч шүүлтүүрүүд нь таны хэвлэх
орчинд тань маш олон ажлыг гүйцэтгэж өгдөг ч хэрэглэгчдийг
тэднээс аль нэгийг нь хэрэглэхийг шаарддаг (&man.lpr.1;-н тушаалын
мөрөн дээр). Хэрэв таны хэрэглэгчид компьютер дээр
сайн гаршаагүй хүмүүс бол иймэрхүү шүүлтүүрийн сонголтууд
тэд нарыг залхаах болно. Бүр муудаж болох нөхцөл юу гэвэл
буруу сонгосон шүүлтүүрийг буруу файлд хэрэглэснээр
хэвлэгчээр олон зуун хуудас үр дүнгүй хэвлэгдэх явдал юм.
Анхнаасаа хувиргагч шүүлтүүрүүдийг суулгахаасаа өмнө
эхлээд та энгийн текст шүүлтүүрийг суулгаад (анхдагч
шүүлтүүр ) хэвлэгдэх файлын төрлийг нь таниад хэрэгтэй
шүүлтүүрийг хэрэглэх нь зүйтэй. file
гэх мэтийн хэрэгслүүд иймэрхүү зүйлд ашиглагдаж болох юм.
Мэдээж зарим файлын төрлийг хооронд нь
ялгахад бэрх боловч мэдээж тэдэнд зориулж та шүүлтүүр үүсгэж
болно.
apsfilter
хэвлэх
шүүлтүүр
apsfilter
FreeBSD-н портын цуглуулга дотор apsfilter
нэртэй автомат хувиргалт хийдэг текст шүүлтүүр бий. Энэ шүүлтүүр нь
энгийн текст, &postscript;, мөн DVI файлуудыг таньж тэдэнд
тохирсон шүүлтүүрийг нь автоматаар ажиллуулдаг.
Гаралтын шүүлтүүрүүд
LPD түр хадгалагч системд
бид нарын нээгээгүй бас нэг шүүлтүүрийн төрөл бий.
Гаралтын шүүлтүүр гэгч нь текст шүүлтүүр шиг зөвхөн энгийн
текст хэвлэх зориулалттай бөгөөд маш олон зүйлийг
хялбаршуулсан байдаг. Хэрэв та текст шүүлтүүр хэрэглээгүй мөртлөө
гаралтын шүүлтүүр хэрэглэж байгаа бол:
LPD нь хэвлэгдэх файл болгонд
шүүлтүүр ажиллуулалгүйгээр гаралтын шүүлтүүрийг нэг удаа л
эхлүүлдэг.
LPD нь гаралтын шүүлтүүрт
зориулж файлын эхлэл болон төгсгөлийг мэдээлэх алба байхгүй.
LPD нь хэрэглэгчийн болон компьютерийн нэвтрэх эрхийг дамжуулдаггүй болохоор бүртгэл хийх зориулалт
байдаггүй. Үнэн хэрэгтээ бол энэ нь ердөө хоёр утга авдаг:
шүүлтүүрийн-нэр
-wөргөн
-lурт
Энд өргөн нь
pw-н шинж чанар бөгөөд
урт нь
pl-н шинж чанар юм.
Гаралтын шүүлтүүрийн амарчлалд бас найдах хэрэггүй. Хэрэв
хэвлэгдэх файлуудыг тусдаа хуудаснаас эхлүүлэхийг та хүсэж байгаа
бол гаралтын шүүлтүүр ажиллахгүй. Үүнд
текст шүүлтүүр (бас оролтын шүүлтүүр гэж нэрлэдэг) хэрэглэх
хэрэгтэй ба Текст шүүлтүүрийг суулгах нь
хэсгээс харна уу.
Мөн цаашлаад үнэн чанартаа бол гаралтын шүүлтүүрүүд нь байт
хэлбэрээр урсаж байгаа хэвлэгдэх зүйлсээс
онцгой тэмдэгтүүдийг ялгаж
LPD-н нэрийн өмнөөс дохио илгээх
маягаар ажилладаг
нэлээн төвөгтэй систем юм.
Хэрэв та толгой хуудаснуудыг хэвлэхийг хүсэж escape дарааллууд юм уу
эсвэл эхлүүлэх мөрүүдийг илгээх хэрэгтэй бол гарах шүүлтүүр нь
шаардлагатай юм. (Гэхдээ
хэрэв та толгой хуудаснуудыг хүсэж байгаа хэрэглэгчийн бүртгэлээс
төлбөр авах хүсэлтэй байгаа бол энэ нь дэмий зүйл юм.
Учир нь LPD нь гаралтын шүүлтүүрт ямар ч
хэрэглэгч юм уу эсвэл хостын мэдээллийг өгдөггүй юм.)
Нэг хэвлэгч дээр LPD нь гаралтын
шүүлтүүр болон текст эсвэл бусад шүүлтүүрүүдийг зөвшөөрдөг. Ийм тохиолдолд
LPD нь зөвхөн толгой хуудсыг хэвлэхийн тулд
гаралтын шүүлтүүрийг эхлүүлэх болно (Толгой хуудаснууд
хэсгийг үзнэ үү). Тэгээд LPD нь хоёр байтыг
шүүлтүүр рүү илгээж гаралтын шүүлтүүр нь өөрийгөө зогсооно
гэж тооцдог: эдгээр хоёр байт нь ASCII 031 дараа нь ASCII 001 юм.
Гаралтын шүүлтүүр нь эдгээр хоёр байтыг (031, 001) хараад өөртөө SIGSTOP
илгээж зогсох ёстой. LPD бусад шүүлтүүрийг
ажиллуулж дууссаны дараа гаралтын шүүлтүүрт SIGCONT
илгээж түүнийг дахин эхлүүлэх болно.
Хэрэв гаралтын шүүлтүүр байгаа боловч текст шүүлтүүр байхгүй
бөгөөд LPD цэвэр текст ажил дээр ажиллаж байгаа
бол LPD нь ажлыг хийхийн тулд гаралтын шүүлтүүрийг
ашигладаг. Өмнө хэлсэнчлэн гаралтын шүүлтүүр нь ажлын файл бүрийг дарааллаар
form feed-үүд эсвэл бусад цаасны дэвшилт зэрэг хөндлөнгийн оролцоогүйгээр хэвлэх
бөгөөд энэ нь таны хүсэж байгаа зүйл биш байж
болох юм. Бараг бүх тохиолдолд танд текст шүүлтүүр хэрэгтэй.
lpf гэж танд урьд нь текст шүүлтүүр хэмээн
танилцуулсан шүүлтүүр бас гаралтын шүүлтүүр болон ажилладаг.
Хэрэв танд ямар нэгэн урсгалаас байт таньж код илгээх гаралтын
шүүлтүүр бичилгүйгээр түргэн-боловч-бултар шүүлтүүр хэрэгтэй
бол lpf-г хэрэглээрэй. Та мөн бүрхүүл дээр
скрипт бичиж хэвлэгчид шаардлагатай анхдагч утгуудыг нь
lpf-аар тохируулж бас болно.
lpf: Текст шүүлтүүр
FreeBSD хоёртын түгээлттэй цуг ирдэг /usr/libexec/lpr/lpf
програм нь гаралтад (lpr -i тушаалаар илгээгдсэн ажил) догол гаргах,
үсгэн тэмдэгтүүдийг дамжуулахыг зөвшөөрөх (lpr -l тушаалаар
илгээгдсэн ажил), ажил дахь устгах тэмдэгтүүд болон tab-уудад зориулж хэвлэх байрлалыг
тааруулах болон хэвлэсэн хуудаснуудыг бүртгэж чаддаг текст шүүлтүүр (оролтын шүүлтүүр) юм.
Энэ нь бас гаралтын шүүлтүүр шиг ажиллаж чаддаг.
lpf нь олон хэвлэх орчнуудад тохирдог. Хэдийгээр
энэ нь хэвлэгч уруу эхлүүлэх дарааллуудыг илгээх боломжгүй боловч хэрэгтэй эхлүүлэлтийг
хийж lpf-г ажиллуулах бүрхүүлийн скрипт бичихийг хялбар
болгодог.
хуудас бүртгэл
бүртгэл
хэвлэгч
Хуудсын бүртгэлийг lpf-ээр зөв хийлгэхийн тулд
/etc/printcap файл дахь
pw болон pl боломжуудад
зөв утгуудыг оруулах хэрэгтэй. Хуудсанд хичнээн текст багтах болон хэрэглэгчийн
ажилд хичнээн хуудас байгааг тодорхойлохын тулд энэ нь эдгээр утгуудыг ашигладаг.
Хэвлэгчийн бүртгэлийн тухай дэлгэрэнгүй мэдээллийг Хэвлэгчийн хэрэглээг бүртгэх нь
хэсгээс үзнэ үү.
Сүлжээгээр хэвлэх
хэвлэгчид
сүлжээ
сүлжээгээр хэвлэх
FreeBSD нь хэвлэх ажлыг алсад буй компьютер руу илгээж
сүлжээгээр хэвлэхийг бас дэмждэг. Сүлжээгээр хэвлэх нь
хоёр зүйлийг хамарч байдаг.
Алсад буй компьютерт залгагдсан хэвлэгч рүү хандах. Та нэг
хэвлэгчийг нэг компьютер дээр тохирох цуваа юм уу зэрэгцээ
холболтоор хэвлэгчийг залгана. Дараа нь та
LPD-г суулгаж алсад буй компьютер
уг хэвлэгч залгагдсан компьютер руу хандаж болохыг
тохируулна. Алсад буй
компьютерт залгагдсан хэвлэгч хэсэгт үүнийг хэрхэн
хийх талаар зааварласан бий.
Шууд сүлжээнд залгагдсан хэвлэгч рүү хандах. Ийм хэвлэгч нь
цуваа юм уу эсвэл зэрэгцээ холболтын төхөөрөмжөөс гадна
сүлжээний залгууртай байдаг. Ийм хэвлэгч дараах маягаар
ажилладаг:
Хэвлэгч LPD-н дамжуулах
протоколыг таньж ойлгох ба алсаас ирүүлсэн ажлуудад
дараалал үүсгэж чаддаг. Ийм тохиолдолд уг хэвлэгч нь
өөр дээрээ LPD суулгасан
ердийн компьютер шиг ажиллах болно.
Алсад буй
компьютерт залгагдсан хэвлэгчид хэсэгт иймэрхүү
хэвлэгчийг хэрхэн тохируулах талаар харна уу.
Хэвлэгч нь сүлжээгээр өгөгдлийг урсгал мэт хүлээж авдаг
тийм төрлийн холболт дэмждэг байж болох юм.
Энэ тохиолдолд та нэг компьютерт уг хэвлэгчийг
залгаад
суулгасан компьютер нь
ирж буй ажлуудыг түр хадгалах хариуцлагыг нь дааж хэвлэгч рүүгээ
өгөгдлийг урсгаж байхаар тохируулах хэрэгтэй.
Сүлжээний өгөгдлийн урсгал холболтын төхөөрөмжтэй
хэвлэгчид хэсэгт ийм төрлийн хэвлэгчийг
хэрхэн суулгах талаар зааварласан байгаа.
Алсад буй компьютерт залгагдсан хэвлэгчид
LPD-д өөрт нь өөр газар
LPD (эсвэл LPD-тэй
зохимжтой) ажиллаж байгаа машин руу хэвлэх ажлыг илгээж чаддаг
ажиллагаа байдаг. Энэ шинж чанарыг ашиглаж та өөр компьютерт хэвлэгчээ
залгаад түүнд өөр газраас хандаж болох боломж нээж өгч байна.
Энэ арга нь мөн LPD дамжуулах
протоколыг ойлгодог хэвлэгчид дээр бас ажиллана .
Иймэрхүү алсаас хэвлэх ажиллагааг гүйцэтгэхийн тулд эхлээд
хэвлэгчээ хэвлэгчийн эзэн болгож нэг машинд
Хэвлэгч суулгах энгийн явц
хэсэгт заасны дагуу залгах хэрэгтэй. Шаардлагатай бол
Хэвлэгчийн нэмэлт тохиргоо хэсэгт
заасан тохиргоог хийж болно. Хэвлэгчээ хэвлэж байгааг нь магадлаад
LPD тохиргоог зөвшөөрсөн эсэхийг
шалгах хэрэгтэй.
Мөн remote host дотор
local host нь LPD
үйлчилгээг хэрэглэх эрхтэй эсэхийг шалгаарай (Алсад буй
хэвлэгчид хэвлэх хязгаарлалт хийх хэсэгт харна уу).
хэвлэгчид
сүлжээ
сүлжээгээр хэвлэх
Хэрэв та сүлжээний карттай бөгөөд LPD
протокол дэмждэг хэвлэгч хэрэглэж байгаа бол дээр өгүүлснээр
хэвлэгчийн эзэн болон хэвлэгчийн нэр
нь уг тохируулж буй хэвлэгчийн нэр байх ёстой. Хэвлэгчтэй хамт ирсэн
үйлдвэрлэгчийнх нь гарын авлагаас хэвлэгчийнх нь тухай эсвэл сүлжээний
төхөөрөмжийнх нь тухай мэдээллийг хараарай.
Хэрэв та Hewlett Packard Laserjet хэвлэгч хэрэглэж байгаа
бол text нэртэй хэвлэгч нь автоматаар
LF-г CRLF руу хувиргадаг болохоор hpif скрипт
хэрэглэх шаардлагагүй.
Дараа нь хэвлэгч рүү хандах гэж буй нөгөө машины
/etc/printcap файл дотор дараах зүйлсийг
оруулж өгдөг:
Хүссэн нэрээ оруулна. Алсад буй компьютерийн нэрэнд давхар
нэр өгч оруулан амарчилж болох юм.
lp тохиргоог хоосон орхино.
(:lp=:).
Түр хадгалах сан үүсгэж түүний байршлыг sd хэсэгт
зааж өгдөг. LPD нь алсад буй
хэвлэгч рүү ажлуудыг илгээхээсээ өмнө энэ санд хадгалдаг.
Хэвлэгчийн эзний нэрийг rm хэсэгт
бичиж өгнө.
Хэвлэгчийн эзэнд холбогдсон
хэвлэгчийн нэрийг rp
хэсэгт оруулна.
Ингээд болох нь тэр. Та хувиргах шүүлтүүр, цаасны хэмжээ гэх мэтийг
/etc/printcap файл дотор оруулах шаардлагагүй.
Энд нэг жишээ татъя. rose нэртэй машин
bamboo болон rattan гэсэн
хоёр хэвлэгчтэй.
Бид одоо orchid машиныг уг хэвлэгчид рүү хандаж болдог
болгож тохируулцгаая.
Энд ( Толгой хуудсыг
зөвшөөрөх хэсгээс дахин авав)
orchid машины /etc/printcap файл
хэрхэн харагдаж байгааг харуулав. Уг машинд өмнө нь
teak нэртэй машин тохируулагдсан байгаа бөгөөд
бид rose машины хоёр хэвлэгчийг нэмэх болно:
#
# /etc/printcap for host orchid - added (remote) printers on rose
#
#
# teak is local; it is connected directly to orchid:
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
#
# rattan is connected to rose; send jobs for rattan to rose:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
#
# bamboo is connected to rose as well:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:
Дараа нь бид orchid дээр түр хадгалах
сан нэмэх хэрэгтэй:
&prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
&prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
&prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo
Одоо orchid дээрх хэрэглэгчид
rattan болон bamboo хэвлэгчдийг
хэрэглэж чадна. Жишээ нь orchid дээрх хэрэглэгч
дараах тушаал өгвөл
&prompt.user; lpr -P bamboo -d sushi-review.dvi
orchid дээрх LPD
систем хэвлэх ажлуудыг /var/spool/lpd/bamboo
гэсэн түр хадгалагч руу хуулна. Энэ хэвлэгдэх ажил нь
DVI файл байсныг та анзаарна уу. rose машинд
bamboo түр хадгалах сан үүсэнгүүт
хоёр машины LPD-ууд хоорондоо
уг файлыг rose машин уруу дамжуулдаг.
Дараа нь уг файл rose-н дараалалд очиж зогсоод
хэвлэгдэх хүртлээ хүлээгдэнэ. Энэ файл DVI-с
&postscript; уруу (bamboo нь &postscript; хэвлэгч учир)
rose дээр хувиргагдана.
Сүлжээгээр өгөгдлийг урсгал хэлбэрээр дамжуулдаг
холболттой хэвлэгчид
Ихэнх тохиолдолд, хэвлэгчдэд зориулж сүлжээний төхөөрөмж авах
үед танд хоёр сонголт бий: түр хадгалагчтай (илүү үнэтэй),
эсвэл цуваа юм уу зэрэгцээ холболтоор холбогдсон мэт өгөгдлийг
хэвлэгч рүү шууд илгээдэг (хямд үнэтэй).
Энэ хэсэгт хямд үнэтэйг нь авч хэлэлцэнэ. Үнэтэйг нь Алсад буй компьютерт
холбогдсон хэвлэгчид хэсгээс хараарай.
/etc/printcap файлд
ямар цуваа юм уу эсвэл ямар зэрэгцээ холболт хэрэглэхийг зааж өгдөг
бөгөөд (хэрэв та цуваа холболтоор холбосон бол ) ямар
давтамжаар илгээх, ямар урсгал хянагч ашиглах, илгээх
завсарлагаа, шинэ мөр тэмдгийг хэрхэн хувиргах гэх мэтчилэн
маш олон зүйлийг тохируулж болно. Хэрэв хэвлэгч TCP/IP порт
юм уу эсвэл өөр сүлжээний порт чагнаж байгаа хэвлэгчийг энд
зааж өгөх боломжгүй.
Сүлжээнд холбогдсон хэвлэгч рүү илгээхийн тулд
текст болон хувиргах шүүлтүүрээр дуудагдаж болдог
холболтын програм та бичих хэрэгтэй.
Энд нэг жишээ үзүүлье.
netprint нэртэй скрипт нь
бүх өгөгдлийг ердийн оролтоос аваад сүлжээнд холбогдсон
хэвлэгч рүү илгээх болно. Хэвлэгч холбогдсон компьютерийн нэрийг нь
эхний утгаар авах бөгөөд хоёр дахь утгаараа чагнаж буй
портын дугаарыг netprint-д өгнө. Тэмдэглэж хэлэхэд,
энэ нь зөвхөн нэг чиглэлтэй холболт (FreeBSD-с хэвлэгч рүү) бөгөөд
ихэнх сүлжээний хэвлэгчид хоёр тийш чиглэсэн холболтыг дэмждэг
болохоор тэр чанарыг нь та мөн ашиглаж болох юм
(хэвлэгчийн төлөв байдлыг мэдэх, бүртгэл хийх гэх мэт).
#!/usr/bin/perl
#
# netprint - Text filter for printer attached to network
# Installed in /usr/local/libexec/netprint
#
$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";
$printer_host = $ARGV[0];
$printer_port = $ARGV[1];
require 'sys/socket.ph';
($ignore, $ignore, $protocol) = getprotobyname('tcp');
($ignore, $ignore, $ignore, $ignore, $address)
= gethostbyname($printer_host);
$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);
socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
|| die "Can't create TCP/IP stream socket: $!";
connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
while (<STDIN>) { print PRINTER; }
exit 0;
Дараа нь бид энэ скриптийг янз бүрийн шүүлтүүртэй хамт хэрэглэж болно.
Сүлжээнд
Diablo 750-N туузан хэвлэгч холбогдсон байна гэж авч үзье.
Хэвлэгч хэвлэгдэх өгөгдлийг 5100 гэсэн портын дугаар дээр хүлээж авна.
Хэвлэгчийн холбогдсон компьютерийн нэр нь scrivener.
Одоо энэ хэвлэгчид дараах текст шүүлтүүр хэрэглэе:
#!/bin/sh
#
# diablo-if-net - Text filter for Diablo printer `scrivener' listening
# on port 5100. Installed in /usr/local/libexec/diablo-if-net
#
exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100
Хэвлэгч хэрэглэх хязгаарлалт
хэвлэгчид
хэрэглэх хязгаарлалт
Энэ хэсэгт хэвлэгч хэрэглэлтийг хязгаарлах талаар өгүүлэх болно.
LPD систем хэвлэгчийг гадаад сүлжээ юм уу
дотоодоос хэн олон хувилах, хэр зэрэг том хэмжээний
ажил хэвлэж болох, хэвлэгчийн дараалал хэр урт байх ёстой зэргийг
зааж өгч болно.
Олон хэвлэлтийг хязгаарлах
LPD нь хэрэглэгчдэд нэг файлыг олон
хэвлэхийг амарчилж өгдөг. Хэрэглэгч нар lpr -#5
(жишээ болгож) тушаалаар файлыг таван удаа хувилж чадна.
Үүний сайн эсэх нь танаас хамаарна.
Хэрэв ингэж олон хувилах нь цаг болон цаасны дайсан юм байна
гэж үзэж байгаа бол сонголтыг
&man.lpr.1; дээр хорьж болох бөгөөд ингэхийн тулд
sc сонголтыг
/etc/printcap файл дотор оруулж өгнө.
Хэрэв хэрэглэгч сонголттой хэвлэх тушаал илгээвэл
дараах мэдэгдлийг харах болно:
lpr: multiple copies are not allowed
Хэрэв та алсын хэвлэгч тохируулсан байвал (Алсын компьютерт холбогдсон хэвлэгчид хэсгээс харна уу)
sc сонголтыг алсад буй компьютерийн
/etc/printcap файл дотор хийж өгөхгүй бол
хэрэглэгчид хүссэн тоогоороо хувилж чадсаар байх болно.
Энд нэг жишээ авцгаая. Дараах файл бол алсад буй
rose компьютерийн
/etc/printcap файл.
Хэвлэгч rattan нь нэлээн өгөөмөр бөгөөд
хэн хүссэнд нь хувилж өгдөг байхад лазер хэвлэгч
bamboo нь нэлээн харамч болохоор
өөртөө sc тохиргоог агуулж байна:
#
# /etc/printcap for host rose - restrict multiple copies on bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:
Одоо sc тохиргоог мөн orchid
компьютерийн
/etc/printcap файл дотор оруулж
өгөх хэрэгтэй (бид өөрсдөө энэ компьютер дээр байгаа болохоор
teak хэвлэгч дээр олон хуулбар хийхийг хорих болно):
#
# /etc/printcap for host orchid - no multiple copies for local
# printer teak or remote printer bamboo
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
:if=/usr/local/libexec/ifhp:\
:vf=/usr/local/libexec/vfhp:\
:of=/usr/local/libexec/ofhp:
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:
sc тохиргоог хэрэглэснээр
lpr -# тушаалын хэрэглээг хорих боловч
&man.lpr.1; тушаалын олон удаагийн хэрэглээ юм уу эсвэл
нэг удаагийн хэвлэгдэх ажилд нэг файлыг дараах маягаар олон илгээхийг хорих
боломжгүй:
&prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign
Үүнийг хорих олон арга бий бөгөөд та чөлөөтэй оролдон үзэх
хэрэгтэй (үл тоомсорлох аргыг оруулаад).
Хэвлэгч рүү хандах хандалтыг хязгаарлах
&unix;-н бүлэглэл болон /etc/printcap файлын
rg тохиргоог ашигласнаар ямар хэвлэгч рүү хэн
хандаж юм хэвлэж болохыг та тохируулж болдог. Нэг тодорхой бүлэгт
хэрэглэгчдээ хамруулж оруулаад тэр бүлгийнхээ нэрийг
rg тохиргоонд бичиж өгөөд л болох нь тэр.
Хэрэв тухайн хяналттай хэвлэгч рүү уг бүлэгт хамаараагүй
хэрэглэгч (root-г оруулаад) юм хэвлэхийг оролдох үед
lpr: Not a member of the restricted group
гэсэн алдаатай тулгарах болно.
sc (suppress multiple copies буюу олон хуулбарыг хорих)
тохиргооны адилаар алсын компьютерууд таны хэвлэгч рүү хандахаар хэрэв та зөвшөөрсөн
бол rg-г тохируулах хэрэгтэй болно.
(Алсын компьютерт суугдсан хэвлэгчид
хэсгээс харна уу)
Жишээ нь, ямар ч хэрэглэгч
rattan хэвлэгч рүү хандаж чадахаар, харин
artists бүлгийн хэрэглэгчид зөвхөн bamboo хэвлэгчийг
хэрэглэж болно гэж үзье. Энд бидний танил rose компьютерийн
/etc/printcap файлыг харуулж байна:
#
# /etc/printcap for host rose - restricted group for bamboo
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:
/etc/printcap файлын (
orchid машины) тохиргоог орхие. Мэдээж
orchid дээрх хэн гуай ч bamboo-г
хэрэглэж чадахгүй.
Магадгүй
orchid дээрх онцгой хэрэглэгчдийг хэвлэгч рүү
хандах эрх олгож болох юм. Үгүй ч байсан болох юм :)
Хэвлэгч бүрд зөвхөн нэг л хязгаарлах бүлэг байж болно.
Хэвлэгдэхээр илгээгдэх файлын хэмжээг хязгаарлах
хэвлэх
Хэрэв танд хэвлэгч хэрэглэх эрхтэй хэвлэгчид байгаа бол тэдгээрийн
хэвлэх файлд нь хэмжээг нь хязгаарлах тохиргоо хийхийг хүсэж болох юм.
Хэдийгээр файл систем дээрх хэвлэгчийн түр хадгалагчийн санд
хангалттай зай байгаа ч гэсэн хэрэглэгч бүрд тохирсон тодорхой хэмжээг
зааж өгөх шаардлага гарч магадгүй.
ажлыг хэвлэх
хянах
LPD нь mx тохиргоонд
зааж өгсөн байтын хэмжээгээр хэвлэгдэх ажлын хэмжээг хязгаарлах
боломж өгдөг. Хэмжих нэгж нь
BUFSIZ-д зааж өгсөн багцын хэмжээ байдаг ба
нэг багц нь 1024 байт байдаг билээ. Хэрэв та энэ тохиргоонд тэгийн тоо бичих юм бол
файлын хэмжээнд хязгаар тавихгүй болно. Гэхдээ та ямар ч
mx тохиргоо зааж өгөөгүй бол
анхдагч хязгаарлалт нь
1000 багц байдаг.
Энэ хязгаарлалт нь хэвлэгдэх гэж буй файлд хамаатай
болохоос хэвлэгдэх бүх ажлуудыг
хязгаарлана гэсэн үг биш.
LPD нь хэвлэгдэх файл нь хязгаарласан хэмжээнээс
их файл ирвэл татгалздаггүй харин хязгаар хүртэлх хэмжээг нь хэвлэх дараалалд оруулж
өгдөг бөгөөд тэр хэсэг нь хэвлэгддэг. Үлдсэн хэсэг нь цуцлагдах болно.
Иймэрхүү хязгаарлалт нь зөв буруу эсэх нь таны шийдэл билээ.
Бидний жишээ болсон
rattan болон bamboo нар дээрээ
хязгаарлалт хийж үзэцгээе. Зураг бүтээл туурвидаг нөхдийн
&postscript; файлууд их хэмжээтэй байх хандлагатай байдаг болохоор
тэдгээрийг таван мегабайтаас хэтрэхгүй гэж хязгаарлая. Энгийн
текст файлд харин ямар ч хязгаарлалт өгөхгүй байя:
#
# /etc/printcap for host rose
#
#
# No limit on job size:
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:mx#0:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:
#
# Limit of five megabytes:
#
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:
Зөвхөн дотоод хэрэглэгчдэд ийм хязгаарлалт хэрэгжих болно гэдгийг
дахин сануулъя. Хэрэв та алсад буй хэвлэгчид ийм хязгаарлалт
хийвэл алсаас хандагдаж буй хэрэглэгчдэд энэ хязгаарлалт хүчингүй.
Үүнийг биелүүлэхийн тулд алсад буй машины /etc/printcap
файл дотор mx
тохиргоог зааж өгөх ёстой.
Алсад буй компьютер дээр
холбогдсон хэвлэгчид
хэсгээс алсын хэвлэлт хийх талаар уншаарай.
Алсад буй хэвлэгчид хязгаарлалт тавих өөр нэг онцгой арга байдаг.
Алсын хэвлэгч дээр
хэвлэх үйлдлийг хязгаарлах
хэсгээс дэлгэрэнгүй уншина уу.
Алсаас хэвлэгч дээр
хэвлэх үйлдлийг хязгаарлах
LPD нь алсын компьютераас
илгээгдсэн хэвлэх ажлыг бас хянаж болдог боломж олгодог:
Компьютерээр нь хязгаарлах
Дотоод
LPD руу ямар компьютер хандаж болохыг
/etc/hosts.equiv болон
/etc/hosts.lpd файлд зааж өгснөөр
хянаж болдог.
LPD нь саяны хоёр файлын аль нэгэнд нь
хэвлэлт хүссэн компьютерийн нэр байгаа эсэхийг шалгадаг.
Хэрэв нэр нь байхгүй бол
LPD уг хүсэлтээс татгалздаг.
Уг файлын загвар бол тун энгийн.
/etc/hosts.equiv файл нь мөн
&man.ruserok.3; протоколд хэрэглэгддэг бөгөөд
&man.rsh.1; болон &man.rcp.1; зэрэг програмд нөлөөлдөг
болохоор тун болгоомжтой хэрэглэхийг сануулж байна.
Жишээ нь, rose компьютер дээрх
/etc/hosts.lpd файл:
orchid
violet
madrigal.fishbaum.de
Энэ нь тэгэхээр rose компьютер нь
orchid, violet,
болон madrigal.fishbaum.de зэрэг
компьютераас хэвлэх хүсэлт хүлээж авч болно гэсэн үг.
Хэрэв эдгээрээс өөр компьютерууд rose-н
LPD руу хандахыг хүсвэл
тэр хүсэлт нь татгалзагдах болно.
Хэмжээгээр нь хязгаарлах
Түр хадгалагч санд байрлаж болох файлуудын хэмжээ нь хэд
хүртэл байж болохыг хянаж болдог.
Дотоод хэвлэгчид зориулсан
түр хадгалах сан дотор minfree нэртэй
файл үүсгэх хэрэгтэй. Уг файл дотор алсаас ирсэн хэвлэгдэх
ажлын хэмжээ нь хичнээн дискний багцаар
(512 байт) байж болох дугаарыг бичиж өгдөг.
Ингэснээр алсаас хэрэглэх хэрэглэгчид таны дискийг
дүүргэхээс сэргийлнэ. Та энэ файлыг ашигласнаар бас
тодорхой дотоод хэрэглэгчдэд давуу эрхийн дараалал
тогтоож болдог ба
minfree файлд зааж өгсөн хэмжээнээс
хэтэрсэн хэмжээгээр нь дараалал тогтоодог.
Жишээ болгож minfree
файлыг bamboo хэвлэгчид зориулж нэмж үзье.
Бид /etc/printcap файл дээр
дадлага хийх бөгөөд
хэвлэгчид зориулсан түр хадгалагч тохируулсан хэсгийг
нь олж харцгаая. Ингээд bamboo-н
оруулгыг харуулъя:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
:lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
:if=/usr/local/libexec/psif:\
:df=/usr/local/libexec/psdf:
Түр хадгалах санг sd
тохиргооны хэсэгт зааж өгсөн байна.
Одоо LPD-н алсаас илгээгдсэн
хэвлэгдэх
ажилд зориулж гурван мегабайт хэмжээг
(6144 дискний багц) зааж өгцгөөе.
:
&prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree
Хэрэглэгчээр нь хязгаарлах
Та ямар хэрэглэгч алсаас хэвлэх хүсэлт тавьж болохыг
/etc/printcap файл дотор
rs тохиргооны хэсэгт зааж өгдөг.
Хэрэв дотоод хэвлэгчийн оруулгын хэсэгт
rs гэж харагдвал
LPD нь
алсаас хэвлэх хүсэлт илгээсэн компьютерийн
хэрэглэгч
хэрэв дотоод компьютер дээрх
нэвтрэх эрхтэй ижилхэн нэртэй хэрэглэгч байвал
зөвшөөрөл өгч хэвлүүлнэ.
Бусад тохиолдолд LPD нь
тухай ажлыг хэвлэхээс татгалзана.
Энэ тохиргоо нь (жишээлбэл) нэг хэвлэгчийг
хувааж хэрэглэдэг олон салбартай байгууллагад ашиглагдаж болох
бөгөөд зарим хэрэглэгчид нь хэд хэдэн салбарт харьяалагддаг
бол уг хэрэглэгчид эрх өгснөөр
өөрийнхөө байгаа салбараас өөр салбарт буй
хэвлэгчид хэвлэх ажил илгээх маягаар ашиглаж болох юм.
Хэрэв та тэдгээр хэрэглэгчдийг зөвхөн
таны хэвлэгчийг л хэрэглэх бөгөөд бусад зүйлсийг ашиглуулахгүй
гэж бодож байгаа бол тэд нарт эхлэл сан байхгүй
бөгөөд /usr/bin/false гэсэн хэрэглэгдэхгүй
бүрхүүлтэй
хязгаарлагдмал
бүртгэл үүсгэх хэрэгтэй.
Хэвлэгчийн хэрэглээнд бүртгэл тооцох
бүртгэл
хэвлэгч
За тэгэхээр та хэвлэлт болгонд мөнгө тооцох шаардлага байг.
Цаас болон хэвлэх хорнуудыг мөнгөөр авдаг болохоор яагаад
болохгүй гэж?
Мөн дээрээс нь хэвлэгчийн эд анги байнга хөдөлж эвдрэх магадлалтай
байдаг болохоор хэвлэгчээ тордох нь бас үнэтэй билээ.
Та хэвлэгчээ арчилж хуудас болгондоо
(эсвэл хуудасны хэсэг бүрд, гарчиг бүрд, эсвэл юу ч байсан яахав)
мөнгө тооцохыг хүсэв. Тэгэхээр та яаж хэвлэгдсэн
хуудас болгонд мөнгө тооцож чадах вэ?
Гэхдээ, жаахан таагүй мэдээ нь юу вэ гэхээр
LPD түр хадгалагч гуай иймэрхүү талын
үйлчилгээ хийхдээ тун тааруу юм. Иймэрхүү бүртгэл тооцоо нь
хэвлэгчээ хэрхэн ашиглахаас их хамаардаг бөгөөд
хэвлэгдэх загвар, мөн
таны хэвлэгчээсээ мөнгө олборлох
шаардлагаас их шалтгаална.
Бүртгэл тооцоо хийхийн тулд та хэвлэгчийнхээ
текст шүүлтүүрийг өөрчлөх хэрэгтэй
(энгийн текст ажлаас мөнгө тооцохын тулд) бөгөөд
мөн хувиргагч шүүлтүүрүүдийг бас (мөн бусад файл төрлүүдээс)
өөрчлөх шаардлагатай. Энгийн шүүлтүүр ашиглаад
та бүртгэл тооцоо хийж чадахгүй. Шүүлтүүр
хэсгийг харна уу.
Ерөнхийдөө бүртгэл тооцоо хийж болох хоёр арга бий:
Үечлэн бүртгэл тооцох гэдэг бол
тун амархан бөгөөд байнга хэрэглэгддэг арга. Хэн нэгэн
хэвлэх үед хэрэглэгчийн нэр, компьютерийн нэр, мөн
хэвлэсэн хуудасны дугаар зэргийг бүртгэл файлд хадгалдаг.
Хэвлэгчдээ зориулсан нэгжийнх нь тооцоог та сараар, эсвэл
жилээр, эсвэл өөрийнхөө заасан хугацаагаар хэрэглэгч
бүрийн хувьд тохирсон жагсаалт авч болдог. Ингэж бүртгэл тооцоо
хийгээд уг файлыг цэвэрлэж дараагийн үеэр нь
мөн тооцоо хийхээр бэлтгэнэ.
Цагаар бүртгэж тооцох гэдэг нь
жаахан хэцүү болохоор нэлээн бага хэрэглэгддэг.
Энэ арганд хэрэглэгчдийг хэвлэж эхлэнгүүт тооцоо хийдэг
шүүлтүүр байдаг. Дискний хэмжээ хязгаарлагчтай ижилхэн
энэ бүртгэл тооцоо нь харьцангуй шулуухан гүйцэтгэгддэг.
Та хэрэглэгчдийн диск хязгаарлалт нь тодорхой хэмжээнээс
хэтрэнгүүт хэрэглэгчдийг тооцоог нь хийлгэж байхаар
тохируулж болно. Гэвч энэ арга нь
хэрэглэгчийн бүртгэл болон тэдгээрийн хязгаарласан хэмжээг
мөрдөхийн тулд зарим өгөгдлийн бааз руу хандах
шаардлагатай байдаг.
Та шаардагдах шүүлтүүрүүдийг, мөн бүртгэж тооцоо хийх
кодыг нь хангаж чадаж л байвал LPD
түр хадгалагч систем нь өмнө тайлбарласан хоёр аргыг дэмждэг.
Бүртгэж тооцох арганд бас онцгой тал байдаг.
Жишээ нь та үечилж үү эсвэл цагаар тооцох уу гэдгээ сонгож болно.
Та ямар мэдээллийг бүртгэж бичихээ сонгоно: хэрэглэгчийн нэр,
компьютерийн нэр, хэвлэсэн төрөл, хэвлэгдсэн хуудасны
тоо, загвар, хэр удаан хэрэглэсэн гэх мэт.
Та шүүлтүүрүүдийг өөрчилж эдгээр мэдээллийг хадгалдаг болгох хэрэгтэй.
Хэвлэлтэд тооцоо хийх түргэн бөгөөд бохир арга
FreeBSD нь бүртгэл тооцоо хийхэд хэрэглэгдэх
хоёр үечлэн тооцоо хийдэг програмтай хамт ирдэг. Тэдгээр нь
lpf текст шүүлтүүрүүд бөгөөд lpf: Текст шүүлтүүр
хэсэгт тайлбарлагдсан байгаа. Нөгөөх нь
&man.pac.8; бөгөөд энэ нь хэвлэлтийн бүртгэл тооцоо хийх файлд буй
оруулгуудыг цуглуулдаг програм.
Шүүлтүүрийн хэсэгт тайлбарласны дагуу (Шүүлтүүрүүд),
LPD нь текст болон хувиргагч шүүлтүүрийг
бүртгэл файлтай нь хамт шүүлтүүрийн тушаалын мөрнөөс
эхлүүлдэг. Шүүлтүүр нь ингэж тушаалын мөрнөөс авсан
утгаар хаана бүртгэл файлд оруулах вэ гэдгээ мэддэг.
Энэ файлын нэр нь /etc/printcap файл
доторх af тохиргоонд заагдсан байдаг
ба хэрэв файлынх нь зам нь яг нарийвчилж заагдаагүй
байгаа бол түр хадгалагчийн сангийн байрлалтай харьцангуй хэлбэрээр
мөн зааж өгч болно.
LPD нь lpf-г
хуудасны өргөн болон өндрийн утгатай нь
(pw болон pl
тохиргуулаас авч) эхлүүлдэг. lpf нь эдгээр утгыг
ашиглаж хичнээн хуудас хэвлэгдэх вэ гэдгийг тодорхойлдог.
Файлыг хэвлэгч рүү илгээсний дараа бүртгэл тооцооны файлд тооцоо
хийх утга нь оруулагддаг. Энэ оруулга нь дараах маягтай байдаг:
2.00 rose:andy
3.00 rose:kelly
3.00 orchid:mary
5.00 orchid:mary
2.00 orchid:zhang
Та болж өгвөл хэвлэгч болгонд тус тусад нь бүртгэл тооцооны
файл хөтлөх хэрэгтэй. Учир нь
lpf-д ямар ч түгжиж зохицуулдаг шинж
чанар байхгүй болохоор хоёр
lpf-ууд нэг файлд хандах тохиолдолд
мөргөлдөөн үүсэж болзошгүй. Тус тусад нь бүртгэл тооцооны
файл хөтлөх амар арга бол /etc/printcap дотор
af=acct гэсэн тохиргоог оруулах хэрэгтэй.
Дараа нь хэвлэгчид зориулсан түр хадгалах сан бүрд
acct гэсэн файл хөтлөгдөх болно.
Хэрэглэгчдээс хэвлэлтийн төлбөрийг шаардах үедээ
&man.pac.8; програмыг ажиллуулах хэрэгтэй.
Тооцоо хийх хэвлэгчийнхээ түр хадгалах санд оронгуутаа
pac гэсэн тушаал ажиллуулахад болно.
Дараа нь доллараар тооцсон дараах маягийн үр дүнг харах болно:
Login pages/feet runs price
orchid:kelly 5.00 1 $ 0.10
orchid:mary 31.00 3 $ 0.62
orchid:zhang 9.00 1 $ 0.18
rose:andy 2.00 1 $ 0.04
rose:kelly 177.00 104 $ 3.54
rose:mary 87.00 32 $ 1.74
rose:root 26.00 12 $ 0.52
total 337.00 154 $ 6.74
&man.pac.8;-тай хамт хавсруулж хэрэглэдэг сонголтуудыг жагсааж харуулъя:
Энэ нь тооцоо бодох хэвлэгчийг зааж өгнө.
/etc/printcap файл доторх
af сонголтод яг нарийвчилсан файлын зам
зааж өгсөн үед л энэ нь хэрэгждэг.
Хэрэглэгчдийн нэрээр биш үнээр нь эрэмбэлж харуулдаг.
Тооцоо хийх файлаас компьютерийн нэрийг алгасаж харуулдаг.
Ийм үед alpha компьютер дээрх
smith нэртэй хэрэглэгч gamma
компьютер дээрх
smith нэртэй хэрэглэгчээс ялгардаггүй.
/etc/printcap файлд буй
pc тохируулгад зааж өгсөн үнийн оронд
нэгж хуудас болгоныг үнэээр
үнэлж доллараар тооцдог бөгөөд эсвэл хоёр центээр (
анхдагч хэмжээ нь) тооцно. Та энэ үнэ-г
бутархай тоон хэлбэрээр бас бичиж болно.
Эрэмбэлэх дарааллыг эсрэгээр үйлдэнэ.
Төлбөр тооцооны дүгнэсэн хуудас үүсгэж бүртгэл тооцооны файлыг
богиносгодог.
хэрэглэгч
…
Зөвхөн зааж өгсөн
хэрэглэгчийн бүртгэл тооцоог харуулна.
&man.pac.8; боловсруулсан анхдагч тооцоонд
янз бүрийн компьютераас хэвлэсэн хэрэглэгч бүрд хуудасных нь
дугаарыг харуулдаг. Хэрэв танд компьютерийн нэр харуулах
шаардлага байхгүй (хэрэглэгч янз бүрийн машинаас хэвлэсэн
байж болно) гэж үзвэл pac -m гэсэн тушаалаар
доорх маягаар үр дүнг харах болно:
Login pages/feet runs price
andy 2.00 1 $ 0.04
kelly 182.00 105 $ 3.64
mary 118.00 35 $ 2.36
root 26.00 12 $ 0.52
zhang 9.00 1 $ 0.18
total 337.00 154 $ 6.74
Долларын хэмжээг тооцохын тулд
&man.pac.8; нь /etc/printcap доторх
pc тохиргооны утгыг ашигладаг
(анхдагч утга нь хуудас болгонд 200, эсвэл 2 цент гэж байдаг).
Энэ тохируулгад хуудас бүрд юм уу эсвэл алхам бүрд тооцох центүүдийг
зааж өгдөг. Та энэ утгыг &man.pac.8;-г ажиллуулахдаа
гэсэн хавсралт сонголтоор дарж хэрэглэж
болдог. сонголтод хэрэглэх утга нь
центээр биш доллараар байх ёстой. Жишээ нь
&prompt.root; pac -p1.50
гэснээр хуудас бүр нэг доллар тавин цент болж байна. Та энэ тохиргоог ашиглаж
үнэхээр ашиг олж болох юм шүү.
Эцэст нь pac -s гэж тушааснаар
дүгнэсэн тооцоог дүнгийн бүртгэл файл уруу хадгалах бөгөөд
энэ файл нь хэвлэгчийн тооцооны файлын нэрийн ард нь _sum
гэж залгагдсан нэртэй файл болж хадгалагдана. Дараа нь бүртгэлийн файлыг
богиносгодог. Хэрэв та &man.pac.8;-г дахин ажиллуулбал энэ нь
дүгнэлт файлаас нийт утгыг уншиж аваад ердийн тооцооны файлаас авсан утган дээр
нэмээд ерөнхий нийт нийлбэрийг харуулах болно.
Хэвлэгдсэн хуудасны тоог яаж тооцох вэ?
Бүр алсаас бүртгэл хийлтийг зөв хийж гүйцэтгэхийн тулд ажил хэр их
цаас ашигладгийг та тодорхойлж чаддаг байх хэрэгтэй. Энэ нь хэвлэгчийн бүртгэл хийлтийн
үндсэн асуудал юм.
Цэвэр текст ажлуудын хувьд энэ асуудлыг шийдэх нь тийм ч хэцүү биш юм:
та ажилд хичнээн мөр байгааг тоолж тэр тоогоо таны хэвлэгч нэг хуудсандаа хичнээн мөрийг
дэмждэгтэй харьцуулах хэрэгтэй. Мөрүүдийг давхар хэвлэдэг файл дахь устгах тэмдэгтүүд эсвэл
нэг буюу хэд хэдэн нэмэлт мөрүүд болдог урт логик мөрүүдийг бодолцохоо мартуузай.
Текст шүүлтүүр lpf (lpf: Текст шүүлтүүр хэсэгт
танилцуулагдсан) нь бүртгэл хийхдээ эдгээр зүйлсийг бодолцдог. Бүртгэл хийх хэрэгтэй
текст шүүлтүүр та бичиж байгаа бол lpf-ийн эх кодыг та
магадгүй үзэхийг хүсэж болох юм.
Тэгэхээр та бусад файлын хэлбэршилтүүдтэй хэрхэн ажиллах вэ?
DVI-аас-LaserJet эсвэл DVI-аас-&postscript; руу хийх хөрвүүлэлтийн
хувьд dvilj эсвэл dvips
тушаалаас гарах оношлогооны гаралтыг та өөрийн шүүлтүүрээр оруулж
хичнээн хуудаснууд хөрвүүлэгдсэнийг хайж олж болох юм. Бусад файлын хэлбэршилтүүд
болон хөрвүүлэх програмуудын хувьд та эдгээртэй төстэй зүйлсийг хийж чадах
ёстой.
Гэхдээ хэвлэгч нь тэдгээр бүх хуудаснуудыг жинхэнэдээ хэвлэхгүй байж
болох сул тал энэ аргуудад ажиглагддаг. Жишээ нь цаас гацах, хор дуусах, эсвэл
дэлбэрсэн хэр нь хэрэглэгчид төлбөр ноогдуулсан хэвээр байж болох зэргийг
дурдаж болох юм.
Тэгэхээр та юу хийж чадах вэ?
Зөв бүртгэл хийх цорын ганц
найдвартай арга байдаг. Хичнээн цаас ашигладаг болохоо
хэлж чаддаг хэвлэгч аваад цуваа шугамаар юм уу эсвэл сүлжээгээр залгах хэрэгтэй.
Бараг бүх &postscript; хэвлэгчүүд үүнийг дэмждэг. Бусад загварууд
бас ингэж чаддаг (жишээ нь сүлжээнд холбогдсон Imagen laser хэвлэгчүүд).
Хэвлэгчүүдийг ажил бүрийг хэвлэснийхээ дараа хуудасныхаа хэрэглээг
авч зөвхөн тэр утга дээрээ үндэслэн бүртгэлийн мэдээллээ
бүртгүүлдэг болгохын тулд эдгээр хэвлэгчүүдийн хувьд шүүлтүүрүүдийг өөрчлөх хэрэгтэй.
Мөр тоолох эсвэл алдаагүй файл шалгалт шаардлагагүй юм.
Мэдээж та үргэлж өгөөмөр байж бүх хэвлэлтийг үнэгүй болгож болох юм.
Хэвлэгчдийг ашиглах нь
хэвлэгчид
хэрэглээ
Энэ хэсэгт таны FreeBSD дээр тохируулсан хэвлэгчийг хэрхэн хэрэглэх
талаар өгүүлэх болно. Хэрэглэгчийн ашиглаж болох тушаалууд нь:
&man.lpr.1;
Хэвлэх үйлдлийг гүйцэтгэдэг
&man.lpq.1;
Хэвлэгчийн хэвлэх дарааллыг шалгадаг
&man.lprm.1;
Хэвлэгчийн хэвлэх дарааллаас устгадаг
Энд мөн удирдаж зохицуулах тушаалууд байдаг. Тэр нь
Хэвлэгчдийг зохицуулах
хэсэгт өгүүлсэн &man.lpc.8; тушаал юм.
&man.lpr.1;, &man.lprm.1;, мөн &man.lpq.1; гэсэн эдгээр тушаалууд
нь бүгдээрээ гэсэн сонголт
авдаг бөгөөд үүгээрээ /etc/printcap файлд
буй хэвлэгч/дараалалтай ажилладаг. Энэ нь хэвлэгчийн ажлыг
нэмэх, устгах эсвэл хэвлэгдэж байгаа ажлыг шалгах зэрэгт хэрэглэгддэг.
Хэрэв та сонголт хэрэглэдэггүй бол
PRINTER гэсэн орчны хувьсагчийн утгыг энэ тушаал
хэрэглэдэг. Эцэст нь хэрэв танд PRINTER
орчны хувьсагч зарлагдаагүй бол lp
нэртэй хэвлэгчийг анхдагч хэвлэгч гэж ханддаг.
Энд анхдагч хэвлэгч гэдэг нь
PRINTER орчны хувьсагч дотор буй хэвлэгч юм уу
эсвэл уг орчны хувьсагчид хэвлэгч заагдаагүй байвал
lp гэсэн нэртэй хэвлэгч байна гэж авч үзэхийг
хэлж байгаа юм.
Хэвлэх ажиллагаа
Файлыг хэвлэхийн тулд:
&prompt.user; lpr файлын-нэр ...
хэвлэх нь
Энэ нь жагсааж өгсөн файлуудыг
анхдагч хэвлэгч рүү илгээж хэвлэдэг. Хэрэв та ямар ч файл зааж
өгөөгүй бол &man.lpr.1; нь гарнаас оруулах утгуудыг
хэвлэгч рүү илгээдэг. Жишээ нь дараах тушаал нь
системийн чухал файлуудыг хэвлэнэ:
&prompt.user; lpr /etc/host.conf /etc/hosts.equiv
Хэвлэгчийг онцгойлж сонгохыг хүсвэл :
&prompt.user; lpr -P хэвлэгчийн-нэр файлын-нэр ...
Дараах жишээн дээр тухайн байгаа сангийн файлуудыг
жагсааж rattan нэртэй
хэвлэгч рүү илгээхийх харуулах болно:
&prompt.user; ls -l | lpr -P rattan
Ямар ч файлын жагсаалт өгөөгүй болохоор
&man.lpr.1; тушаал нь ls
-l тушаалын гаралтыг өөрийнхөө оруулга гэж авч үзсэн байна.
&man.lpr.1; тушаал нь файл хувиргалт хийх,
олон хуулбарлаж хэвлэх гэх мэтчилэн маш олон төрлийн сонголт
хүлээн авч хэвлэх үйлдлийнхээ загварыг өөрчилж чаддаг.
Хэвлэх сонголтууд
хэсгээс нэмэлт мэдээллүүдийг уншина уу.
Хэвлэж буй ажлыг шалгах
хэвлэх ажиллагаа
&man.lpr.1; тушаалаар хэвлэгдэх зүйлс
LPD түр хадгалагч дээр очдог бөгөөд
тэдгээрийг ерөнхийд нь хэвлэгдэх ажил
гэж нэрлэдэг.
Хэвлэгч болгонд хэвлэгдэх ёстой ажлууд жагсаагдсан байдаг бөгөөд
таны хэвлэхийг хүссэн юм тань бусад хэрэглэгчидтэй адилхан
хэвлэгдэх дараалалд ээлжээ хүлээгээд зогсож байдаг. Хэвлэгч нь
ирсэн зүйлсийг хэн-түрүүлж-ирнэ түүнийг-түрүүлж-хэвлэнэ гэсэн
зарчим баримталж хэвлэдэг.
Анхдагч хэвлэгчийн дарааллыг харуулахын тулд &man.lpq.1;
тушаалыг бичдэг. Хэрэв хэвлэгчээр нь сонгож харахыг хүсвэл
сонголт хэрэглэдэг. Жишээлбэл
&prompt.user; lpq -P bamboo
гэсэн тушаал нь bamboo нэртэй хэвлэгч дээр байгаа
хэвлэх дарааллыг хардаг. Доорх хэсэгт lpq
тушаалын гаралтыг харуулав:
bamboo is ready and printing
Rank Owner Job Files Total Size
active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
2nd kelly 10 (standard input) 1635 bytes
3rd mary 11 ... 78519 bytes
Энэ нь bamboo хэвлэгчид гурван файл
жагсаагдан ээлжээ хүлээж байгааг харуулсан байна.
Эхний ээлжит ажлыг kelly хэрэглэгч илгээсэн бөгөөд
хэвлэх дугаар нь
9 байна.
Хэвлэх ажил болгон давтагдаагүй өөрийн гэсэн дугаар авдаг.
Та хэвлэх дарааллын энэ дугаарыг хэрэгсэхгүй байж болох ч гэсэн
хэрэв хэвлэх ажлыг цуцлах хэрэг гарвал уг дугаарыг мэдэж байх нь
танд хэрэгтэй билээ. Энэ талаар Хэвлэх ажлыг устгах хэсгээс
харна уу.
Ес гэсэн дугаартай хэвлэх ажил нь хоёр ширхэг файлаас
бүтсэн байна.
&man.lpr.1; тушаалд хэрэв олон файл өгсөн бол тэдгээрийг нэг ажилд
тооцдог. Энэ ажил нь одоогийн идэвхитэй ажил (Rank
нэртэй баганад active гэж бичсэн байгааг
анхаарна уу) бөгөөд хэвлэгч яг одоо түүнийг хэвлэж байна гэсэн үг.
Хоёр дахь ажил нь стандарт оруулгаас &man.lpr.1; тушаал уруу
илгээгдсэн ажил байна. Гурав дахь ажил нь mary
хэрэглэгчээс илгээгдсэн бөгөөд нэлээн их хэмжээнийх юм байна. Файлын
нэрийн урт нь их байгаа учраас &man.lpq.1; нь түүнийг
гурван цэгээр товчилж харуулсан байна.
&man.lpq.1; тушаалын гаралтын хамгийн эхний мөр бас чухал
утга илэрхийлдэг нь:
хэвлэгч яг одоо юу хийж байгааг (ядаж хэвлэгчийн юу хийж байгааг
LPD нөхөр бодож байгааг) харуулдаг.
&man.lpq.1; тушаал нь мөн сонголтыг дэмждэг
бөгөөд энэ нь уртасгасан жагсаалтыг харуулдаг юм. Доор
lpq -l тушаалын гаралтыг харуулав:
waiting for bamboo to become ready (offline ?)
kelly: 1st [job 009rose]
/etc/host.conf 73 bytes
/etc/hosts.equiv 15 bytes
kelly: 2nd [job 010rose]
(standard input) 1635 bytes
mary: 3rd [job 011rose]
/home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes
Хэвлэх ажлыг устгах
Хэрэв та хэвлэе гэсэн бодлоо өөрчилбөл &man.lprm.1; тушаалаар
хэвлэгдэх ажлыг устгаж болно. Мөн та
&man.lprm.1; тушаалаар хэвлэгдэж байгаа ажлыг бас устгаж болдог боловч
зарим хэсэг нь хэвлэгдэж магадгүй юм.
Анхдагч хэвлэгчээс ажил устгахын тулд эхлээд
&man.lpq.1; тушаал хэрэглэж дарааллынх нь дугаарыг нь мэддэг.
Тэгээд дараа нь:
&prompt.user; lprm дарааллын-дугаар
Хэвлэгдэх ажлыг хэвлэгчийн нэрийг нь онцгойлж хандан
устгахын хүсвэл
сонголт хэрэглэнэ.
Дараах тушаал нь bamboo нэртэй хэвлэгчээс
10 дугаартай ажлыг устгана:
&prompt.user; lprm -P bamboo 10
&man.lprm.1; тушаалын хэд хэдэн товчлол бий:
lprm -
Танд хамаатай бүх хэвлэгдэх ажлыг устгадаг (анхдагч хэвлэгчээс).
lprm хэрэглэгч
Хэрэглэгч-д хамаатай бүх
ажлыг устгана (анхдагч хэвлэгчээс). Супер хэрэглэгч мэдээж
бүх хэрэглэгчдийн ажлыг устгаж болох бөгөөд хэрэв та биш бол
зөвхөн өөрийнхөө л ажлыг устгана.
lprm
Ямар ч дарааллын дугаар, хэрэглэгчийн нэр,
эсвэл сонголт зэргийг оруулаагүй
бол танд хамаатай яг одоо хэвлэгч дээр идэвхитэй байгаа
ажлыг &man.lprm.1; устгадаг. Супер хэрэглэгч бол
яг одоо идэвхитэй байгаа хэний ч дараалал байсан гэсэн устгана.
Дээрх товчлолуудыг сонголт ашиглан хэвлэгчийн
нэр зааж өгөн ямар нэгэн хэвлэгч рүү онцгойлон хандаж болдог.
Жишээлбэл дараах тушаал нь rattan хэвлэгчээс
тухайн хэрэглэгчийн бүх дарааллыг устгана:
&prompt.user; lprm -P rattan -
Хэрэв та сүлжээний орчинд ажиллаж байгаа бол
&man.lprm.1; тушаал нь өөр ижил нэртэй хэвлэгч
өөр машинд залгаатай байсан ч зөвхөн илгээсэн компьютерийн л дарааллыг
устгахад зөвшөөрдөг. Доорх жишээнд үүнийг тодруулав:
&prompt.user; lpr -P rattan myfile
&prompt.user; rlogin orchid
&prompt.user; lpq -P rattan
Rank Owner Job Files Total Size
active seeyan 12 ... 49123 bytes
2nd kelly 13 myfile 12 bytes
&prompt.user; lprm -P rattan 13
rose: Permission denied
&prompt.user; logout
&prompt.user; lprm -P rattan 13
dfA013rose dequeued
cfA013rose dequeued
Энгийн текстээс өөр зүйлс хэвлэх нь: Хэвлэх сонголтууд
&man.lpr.1; тушаал нь текст загварчлах, зураг файлыг
өөр хэлбэрт хувиргах, олон хуулбар хийх, хэвлэгдэж байгаа
файлууд уруу хандах гэх мэтчилэн маш олон сонголттой. Энэ
хэсэгт тэр тухай зааварлах болно.
Хэлбэршүүлэх болон хувиргах сонголтууд
Дараах &man.lpr.1;-н сонголтууд нь хэвлэгдэх ажлын
хэлбэршүүлэлтийг хянадаг. Эдгээр сонголтуудыг хэрэв таны
хэвлэх зүйлс тань энгийн текст хэлбэртэй биш юм уу эсвэл
текстээ &man.pr.1; хэрэгсэл ашиглан өөрчилж хэвлэх үед
хэрэглэнэ.
&tex;
Жишээлбэл дараах тушаал нь fish-report.dvi
нэртэй DVI төрлий файлыг (&tex; төрлийн бичилтийн системийн ) bamboo хэвлэгч рүү явуулна:
&prompt.user; lpr -P bamboo -d fish-report.dvi
Энэ сонголт нь хэвлэгдэх гэж буй бүх файлд хэрэгждэг болохоор
жишээ нь та DVI болон ditroff файлуудыг хамт хэвлэгч рүү илгээж
болохгүй. Түүний оронд файлуудыг тусад нь тусдаа сонголттой илгээх
хэрэгтэй.
болон
сонголтуудаас бусад бүх сонголтуудад
хэвлэгч дээр суугдсан хөрвүүлж хувиргадаг шүүгч ажиллагаа
шаардагддаг. Жишээ нь сонголт DVI
хөрвүүлж хувиргадаг шүүлт шаарддаг. Хувиргагч шүүлтүүрүүд
хэсэгт тодорхой өгүүлсэн буй.
cifplot файлуудыг хэвлэнэ.
DVI файлуудыг хэвлэнэ.
FORTRAN текст файлуудыг хэвлэнэ.
plot төрлийн зураг график файлуудыг хэвлэнэ.
Гаралтыг тоогоор зай авч
хэвлэнэ. Хэрэв та тоо оруулахгүй
тушаавал 8 гэсэн зайгаар хэвлэнэ. Энэ сонголт зөвхөн тодорхой хэдэн
шүүлтүүртэй л ажилладаг.
сонголт болон тоо хоёрын завсар
ямар ч зай байж болохгүй.
Текст файлд буй зарим хянагч тэмдэгтүүдтэй нь
шууд үсэгчлэн хэвлэнэ.
ditroff (төхөөрөмж болгоноос хамааралгүй troff) өгөгдлийг
хэвлэнэ.
-p
Хэвлэхээсээ өмнө энгийн текстийг &man.pr.1; хэрэгслээр
хэлбэршүүлдэг. Нэмэлт мэдээллийг &man.pr.1; гарын авлагаас
харна уу.
&man.pr.1; хуудасны толгой хэсэгт файлын нэрийг
байрлуулахын оронд зааж өгсөн Гарчиг-г
хэвлэдэг. Энэ сонголт нь гэхдээ зөвхөн
сонголт хэрэглэсэн үед л хэрэгждэг.
troff өгөгдлийг хэвлэнэ.
raster өгөгдлийг хэвлэнэ.
Жишээ: Дараах тушаал нь &man.ls.1;-н гарын авлагыг
аятайхан загварчлаад анхдагч хэвлэгчээр хэвлэнэ:
&prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t
&man.zcat.1; тушаал нь &man.ls.1; гарын авлагын эх
шахсан файлыг нь задлаад GNU troff хэлбэрт оруулдаг
&man.troff.1; тушаал уруу дамжуулна. Уг хэлбэрт оруулсны дараа
&man.lpr.1; руу дамжигдах бөгөөд энэ нь хэвлэх ажлыг
LPD түр хадгалагч уруу илгээдэг.
Бид сонголт &man.lpr.1; дээр хэрэглэсэн
болохоор түр хадгалагч хэвлэгдэх үед GNU troff гаралтыг
хэвлэгчийн ойлгох хэлбэрт хувиргаж хэвлэнэ.
Хэвлэлтэд хандах сонголтууд
&man.lpr.1; тушаалд өгсөн дараах сонголтууд
LPD дээрх хэвлэгдэх ажлуудад
онцгойлж ханддаг:
-# хуулбарлах-тоо
Зөвхөн нэг удаа хэвлэгдэх ажлуудыг хуулбарлах-тоогоор хувилдаг. Систем хянаж зохицуулагч албатай хүн магадгүй
хэвлэгчийн ингэж ахин дахин хуулбарлаж хэвлэхийн оронд
хувилах фото хуулбар үүсгээд түүнийгээ шууд буулгах
сонголт санал танд тавьж болох юм. Олон хуулбарлалтыг
хязгаарлах хэсэгт тодорхой заасан байгаа.
Доорх жишээн дээр parser.c файлыг
гурав, parser.h файлыг мөн гурав хувилж
хэвлэв:
&prompt.user; lpr -#3 parser.c parser.h
-m
Хэвлэх ажил дууссаны дараа захиа илгээнэ.
Хэвлэгдэх ажил дууссаны дараа LPD
систем таны бүртгэл рүү захиа явуулдаг.
Захиан дотроо таны хэвлэх ажиллагаа амжилттай болсон эсвэл
алдаа гарсан тухай мэдэгддэг бөгөөд алдаа гарсан байвал
(голдуу) ямар алдаа гарсныг нь бичсэн байдаг.
-s
Түр хадгалагч сан уруу хуулахгүйгээр уг файлуудад
тэмдэгт холбоос үүсгэдэг.
Хэрэв та том хэмжээний файл хэвлэх гэж байгаа бол
энэ сонголт танд тун хэрэг болно. Ингэснээр түр хадгалагчид
буй дискний хэмжээг хэмнэдэг ( таны том хэмжээний файл
түр хадгалагчийн хэмжээнээс хэтэрч түүнтэй зэрэгцээ орших
зай уруу илүүдэж гарах аюултай). LPD
мөн хэвлэх файлыг хуулах гэж цаг зарцуулахгүй түргэн байх
болно.
Нэг сул тал бий:
LPD нь хэвлэгдэх файл уруу
шууд хандаж байгаа болохоор хэвлэгдэж дуусахаас нааш та уг файлыг
засварлаж чадахгүй байх болно.
Хэрэв та сүлжээгээр өөр хэвлэгч рүү хэвлэж байгаа бол
LPD нь уг компьютераас алсад буй
хэвлэгч рүү файлыг хуулдаг болохоор сонголт
нь дотоод зайгаа хэмнэхээс биш алсад буй компьютерийн
дискний зайг хэмнэдэггүй. Гэвч ийм байсан ч хэрэгтэй сонголт билээ.
-r
Түр хадгалагч уруу хуулсны дараа юм уу эсвэл
сонголт хэрэглэж хэвлэсний дараа уг файлыг
утсгана. Энэ сонголтыг тун болгоомжтой хэрэглэнэ үү!
Хуудасны толгой хэсгийг загварчлах сонголтууд
&man.lpr.1; тушаалд хэрэглэсэн эдгээр сонголтууд нь
хуудасны толгой хэсэгт хэвлэгддэг текстийг зааж өгөхөд
хэрэглэгддэг. Хэрэв хуудасны толгой хэсгийг өөр програм
өөрчилнө гэж заасан байвал энэ сонголт хүчингүй болдог.
Хуудасны толгой
хэсэг хэсэгт энэ талаар тодорхой өгүүлсэн байгаа.
-C текст
Толгой хэсэгт байдаг компьютерийн нэрийг
зааж өгсөн текстээр орлуулдаг.
Ердийн үед бол уг хэвлэх ажлыг илгээсэн компьютерийн нэр байдаг.
-J текст
Толгой хэсэгт байдаг хэвлэх ажлын нэрийг зааж өгсөн
текстээр орлуулдаг.
Ердийн үед ажлын нэр нь хэвлэх файлын нэр байдаг ба
хэрэв та консолийн стандарт оруулга хэрэглэсэн бол
stdin гэж байдаг.
-h
Толгой хэсэггүй хэвлэнэ.
Хэрэв өөр програмаар толгой хэсэг нь бэлтгэгдсэн бол
энэ сонголт зарим тохиолдолд хүчингүй болдог. Хуудасны
толгой хэсэг хуудсанд энэ тухай тайлбарласан буй
Хэвлэгчдийг зохицуулах
Хэвлэгчдийг зохицуулагчийн зүгээс тэдгээрийг суулгаж шалгахад
үүрэгтэй байдаг. &man.lpc.8; тушаал ашиглан хэвлэгчтэйгээ
та олон аргаар харилцаж чадна. &man.lpc.8; тушаал ашиглан
Хэвлэгчийг эхлүүлэх болон зогсоох
Хэвлэгдэх дарааллыг хорих болон зөвшөөрөх
Дараалалд буй хэвлэгдэх ажлын ээлж дарааг өөрчлөх
Эхлээд жаахан тодруулцгаая: Хэрэв хэвлэгч зогссон
бол дараалалд буй ямар ч ажлыг хэвлэхгүй. Хэрэглэгчид хэвлэх
ажил илгээж болох бөгөөд тийм ажлууд бүгд дараалалд нэмэгдэж
хэвлэгчийг эхлэх хүртэл юм уу эсвэл дарааллыг
цэвэрлэх хүртэл тэнд хадгалагдана.
Хэрэв дараалал хоригдсон бол ямар ч
хэрэглэгч (root хэрэглэгчээс бусад)
хэвлэгч рүү юм илгээж чадахгүй. Дараалал
зөвшөөрөгдсөн үед л хэвлэх ажил хүлээж авдаг.
Хэвлэгч эхлэх үедээ мөн хоригдсон
дарааллыг хоосортол нь хэвлэнэ.
&man.lpc.8; тушаалыг хэрэглэхийн тулд та
root эрхтэй байх хэрэгтэй байдаг. Энгийн
хэрэглэгчид бол &man.lpc.8; тушаалыг хэвлэгчийн
төлөв байдал юм уу эсвэл гацсан хэвлэгчийг
эхлүүлэхэд хэрэглэнэ.
Энд &man.lpc.8; тушаалын нэгтгэсэн жагсаалтыг харуулав.
Ихэнх тушаалуудад онцгойлон хэвлэгч рүү хандахын тулд
хэвлэгчийн-нэр нэмж өгдөг. Хэрэв
та all гэж хэвлэгчийн-нэр-н
оронд өгвөл /etc/printcap файл жагсаалттай
буй бүх хэвлэгчийг илэрхийлэх болно.
abort
хэвлэгчийн-нэр
Одоогийн хэвлэж байгаа ажлыг цуцлаад хэвлэгчийг
зогсооно. Хэрэв дараалал хоригдоогүй бол хэрэглэгчид хэвлэх
зүйлс илгээж байж болно.
clean
хэвлэгчийн-нэр
Хэвлэгчийн түр хадгалагчид буй хуучин файлуудыг устгана.
LPD уг файлыг ямар нэгэн шалтгааны
улмаас устгаагүй байж болох юм. Энэ нь хэвлэх үед
алдаа гарах, эсвэл зохион байгуулах зарим үйлдэл хийгдэх гэх
мэт янз бүрийн шалтгаан байж болно. Энэ тушаал түр хадгалагч
санд хамаарахгүй файлуудыг шалгаж олоод устгадаг.
disable
хэвлэгчийн-нэр
Шинээр ирэх ажлуудад дарааллыг хорьно. Хэрэв хэвлэгч тухайн үед хэвлэж байвал
дараалалд үлдсэн байгаа зүйлсүүдийг хэвлэдэг.
Супер хэрэглэгч (root) дараалал хоригдсон
байсан ч хэвлэх зүйл илгээдэг.
Энэ тушаал шинэ хэвлэгчийн суулгац юм уу шүүлтийг шалгахад
их хэрэгтэй. Жишээ нь хэвлэх дарааллыг хориод
root эрхээр хэвлэж туршиж болно.
Бусад хэрэглэгчид дарааллыг идэвхжих хүртэл
дараалал уруу ажил илгээж чадахгүй.
down хэвлэгчийн-нэр
мэдээлэл
Хэвлэгчийг унтраана. disable тушаалыг
stop-тай хамт хэрэглэсэнтэй ижил.
Хэрэв хэрэглэгч хэвлэгчийн &man.lpq.1; юм уу эсвэл
lpc
status тушаал хэрэглэн төлөв байдлыг
мэдье гэсэн үед уг зааж өгсөн мэдээлэл
харуулагддаг.
enable
хэвлэгчийн-нэр
Хэвлэгчийн дарааллыг зөвшөөрдөг. Хэрэглэгч хэвлэгч рүү
юм илгээж болох боловч хэвлэгч эхлэхээс нааш хэвлэгдэхгүй.
help
тушаал
тушаалын хэрэглэх тусламжийг харуулдаг. Хэрэв тушаал бичилгүйгээр тушаавал боломжтой бүх
тушаалын ерөнхий мэдээллийг харуулна.
restart
хэвлэгчийн-нэр
Хэвлэгчийг эхлүүлдэг. Ердийн хэрэглэгчид энэ тушаалыг хэрэв
ямар нэгэн тохиолдлоор LPD гацсан үед
хэвлэгчийг эхлүүлэхэд хэрэглэж болдог боловч stop юм уу
down тушаал хэрэглэн ажиллаж байгаа хэвлэгчийг
зогсоож чаддаггүй. restart тушаал нь
abort тушаалыг
start тушаалтай хэрэглэсэнтэй ижилхэн.
start
хэвлэгчийн-нэр
Хэвлэгчийг эхлүүлнэ. Хэвлэгч дараалалд байгаа ажлуудыг
хэвлэж эхэлдэг.
stop
хэвлэгчийн-нэр
Хэвлэгчийг зогсооно. Хэвлэгч яг хэвлэж байсан ажлаа дуусгаад
дараалалд байгаа ажлуудыг хэвлэлгүйгээр зогсоно. Хэвлэгч зогссон
байсан ч хэрэглэгчид хэвлүүлэх ажлаа дараалалд илгээж болно.
topq хэвлэгчийн-нэр
ажил-эсвэл-хэрэглэгчийн-нэр
хэвлэгчийн-нэр нэртэй хэвлэгчийн
дараалалд байгаа ажлуудын хамгийн дээд хэсэгт нь
зааж өгсөн хэрэглэгчийн-нэр хэрэглэгчийн
ажлыг оруулдаг. Энэ тушаалыг
all гэж
хэвлэгчийн-нэр-н оронд хэрэглэх боломжгүй.
up
хэвлэгчийн-нэр
down тушаалын эсрэгээр
уг хэвлэгчийг шинээр эхлүүлдэг.
start тушаалыг
enable-тай хэрэглэсэнтэй ижилхэн.
&man.lpc.8; нь дээрх тушаалуудыг тушаал бичих мөрнөөс
хүлээж авдаг. Хэрэв та ямар ч тушаал оруулаагүй бол &man.lpc.8; нь
exit юм уу
quit, эсвэл end-of-file тэмдэгт илгээх хүртэл
гарнаас тушаал оруулж ажиллах харилцах горимд шилждэг.
Хэвлэгчийн стандарт түр хадгалагчидтай ижил хадгалагчид
Хэрэв та энэ гарын авлагыг эхнээс нь уншиж байгаа бол FreeBSD-тэй цуг ирдэг
түр хадгалах систем болох LPD-ийн
талаар бүх л мэдэж болох зүйлсийг одоо сурсан байх ёстой. Та үүний олонхи
дутагдалтай талуудыг үнэлж чадах байх. Энэ нь дараах асуултанд хүргэдэг:
Өөр ямар (FreeBSD-тэй ажилладаг) түр хадгалах системүүд
байдаг вэ?
LPRng
LPRng
LPRng буюу LPR: the Next
Generation
гэгддэг дараа үеийн систем нь PLP-ийг дахин
бичсэн хувилбар юм. Патрик Пауэл болон Жастин Мэйсон (PLP-ийн гол арчлагч)
нар нийлэн LPRng-г хийсэн юм.
LPRng-ийн гол сайт бол юм.
CUPS
CUPS
CUPS буюу Common UNIX Printing
System нь &unix; дээр тулгуурласан үйлдлийн системүүдэд зориулсан
зөөгдөж болох хэвлэх давхаргын боломжийг олгодог. Энэ нь
бүх &unix; үйлдвэрлэгчид болон хэрэглэгчдэд зориулж стандарт
хэвлэх шийдлийг дэмжихийн тулд Easy Software Products-аас
хөгжүүлэгдсэн юм.
CUPS нь Internet Printing
Protocol (IPP) буюу Интернэтийн Хэвлэх Протоколыг
ашиглаж хэвлэх ажлууд болон дарааллуудыг удирдах үндсээ болгодог.
Line Printer Daemon (LPD) буюу Шугамын
Хэвлэгчийн Дэмон, Server Message Block (SMB)
буюу Серверийн Мэдэгдлийн Блок, болон AppSocket (JetDirect гэгддэг)
протоколууд нь багасгасан ажиллагаатайгаар бас дэмжигдсэн байдаг.
CUPS нь амьдралд байх &unix; дээрх хэвлэлтийг дэмжихийн тулд
сүлжээний хэвлэгч олох (browsing) болон PostScript Printer Description
(PPD) буюу PostScript Хэвлэгчийн Тайлбар дээр
суурилсан хэвлэх тохируулгуудыг нэмдэг.
CUPS-ийн гол сайт нь юм.
Алдааг олж засварлах
&man.lptest.1; програмын тусламжтайгаар энгийн шалгах
үйлдэл хийж дуусахад та зөв хэвлэгдсэн хүссэн үр дүнд биш
харин дараах алдаануудтай тулгарч болзошгүй юм:
Хэвлэж болж байна, гэхдээ хэсэг хугацааны дараа юм уу эсвэл
анхнаасаа хуудасны тал хэсгийг хэвлээд зогсох.
Хэвлэгч дээд хэсгийг нь хэвлээд хэсэг хугацааны дараа
юу ч хийхгүй болох. Ийм үед та хэвлэгч дээрх
PRINT REMAINING эсвэл FORM FEED товч дарж үлдсэн хэсгийг нь
хэвлэх эсэхийг харах хэрэгтэй.
Хэрэв хэвлэгч өөр хэвлэх юм байгаа эсэхийг хүлээгээд байгаа
тийм нөхцөлд орвол хэвлэгч рүү
FORM FEED тэмдгийг илгээснээр (эсвэл ямар нэгэн юм) уг асуудал
шийдэгдэж болох юм. Өөрийнхөө түр хадгалагч дээр орж ирсэн өгөгдлийг
шууд хэвлэдэг хэвлэгчдэд иймэрхүү арга хэрэглэхэд хангалттай билээ.
Хэрэв өмнөх хуудас нь хуудасны тал хүртэл байгаад дараагийн хуудас нь
шинээр хуудаснаас эхлэх байсан болоод дууссан хуудасны тал
хэсгээс хэвлэхгүй байгаад байх нөхцөл үүссэн байж болзошгүйг
шалгахад мөн илүүдэхгүй.
/usr/local/libexec/if-simple
бүрхүүлийн скриптэд оруулсан дараах оруулга нь хэвлэх
үйлдлийн дараа хэвлэгч рүү хуудас дууссан тэмдэгт илгээнэ:
#!/bin/sh
#
# if-simple - Simple text input filter for lpd
# Installed in /usr/local/libexec/if-simple
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Writes a form feed character (\f) after printing job.
/bin/cat && printf "\f" && exit 0
exit 2
Гэхдээ энэ нь хачирхалтай нөлөө
үүсгэж болох юм.
Та дараах зүйлсийг хуудсан дээрээ харах болно:
!"#$%&'()*+,-./01234
"#$%&'()*+,-./012345
#$%&'()*+,-./0123456
MS-DOS
OS/2
ASCII
Энэ нь таныг шинэ мөр илэрхийлдэг тэмдэгт хөрвүүлэгдээгүй
улмаас өнөөх хачирхалтай нөлөөний хохирогч
нь болсон байна гэдгийг илэрхийлж байна.
&unix; төрлийн үйлдлийн системүүд мөр дууссаныг илэрхийлэхийн тулд
ASCII-н 10 гэсэн дугаарыг буюу line feed (LF) гэсэн нэг л
тэмдэгт хэрэглэдэг. Харин &ms-dos;, &os2;, болон бусад үйлдлийн
системүүд ASCII-н 10 ба ASCII-н
13 (CR буюу шинэ мөр эхлэх) гэсэн хоёр тэмдгийг хамтад нь
хэрэглэдэг. Ихэнх хэвлэгч нар шинэ мөрийг илэрхийлэхдээ
&ms-dos;-н шийдлийг хэрэглэдэг.
Хэрэв та FreeBSD-с хэвлэхээр бол таны текстүүд
зөвхөн мөр дууссан тэмдэгт л агуулсан байгаа.
Мөр дууссан тэмдэгтийг хэвлэгч хүлээж авангуутаа хуудсаа нэг мөрөөр
дээшлүүлсэн мөртлөө яг тухайн байрлалдаа дараагийн тэмдэгт ирэхийг
хүлээж зогсдог. Энэ үед л шинэ мөр гэсэн тэмдэгт ирж байж хэвлэгчийн
толгой зүүн хэсэг рүүгээ гүйдэг билээ.
FreeBSD дараах маягаар хэвлэх хэрэгтэй байдаг:
Хэвлэгч CR тэмдэг хүлээж авлаа
Хэвлэгч CR гэж хэвлэв
Хэвлэгч LF тэмдэгт хүлээж авлаа
Хэвлэгч CR + LF гэж хэвлэх
Үүнийг залруулах хэдэн арга бий:
Хэвлэгчийнхээ тохируулгын цонхыг ашиглан
эдгээр тэмдэгтийг өөрөөр хөрвүүлж ойлгохоор тохируулах.
Иймэрхүү тохиргоо байдаг эсэхийг хэвлэгчийнхээ
гарын авлагад харах хэрэгтэй.
Хэрэв та системээ шинээр ачаалахдаа
давхар суусан өөр үйлдлийн систем рүү орвол
тухайн үйлдлийн системдээ тохируулж CR болон LF
тэмдэгтийн хөрвүүлэх тохиргоог
дахин хийх хэрэг гарч магадгүй юм.
FreeBSD-н цуваа холболтын таниулагч програм нь
автоматаар LF тэмдэгтийг CR+LF тэмдэгт рүү хувиргадаг.
Мэдээж энэ нь зөвхөн цуваа холболтоор
холбогдсон хэвлэгч дээр ажиллана. Энэ шинж чанарыг
идэвхжүүлэхийн тулд ms# хэрэгслийг
ашиглан onlcr горимыг хэвлэгчийн
/etc/printcap файл дотор оруулж
өгөх хэрэгтэй.
Хэвлэгчийн алгасаж болдог
escape code тэмдэгт
илгээж хэвлэгчийг LF тэмдэгт илгээгдсэн гэж ойлгуулж
болох юм. Хэвлэгчийн гарын авлагаас ийм тэмдэгт
дэмждэг эсэхийг харах хэрэгтэй. Хэрэв та тохирох тийм
тэмдэгт олсон бол текст шүүгч програмыг өөрчилж
эхлээд тэр тэмдэгтийг илгээгээд дараа нь
хэвлэх зүйлсийг илгээхээр засах хэрэгтэй.
PCL
Энд Hewlett-Packard PCL хэвлэгчийн ойлгодог
алгасаж болдог тэмдэгтийн текст шүүгч жишээг татаж үзүүлэв.
Энэ шүүгч нь LF тэмдэгтийг LF ба
CR гэж хөрвүүлээд хэвлэгч рүү
хэвлэх ажлыг илгээж дараа нь мөр дууссан тэмдэгтийг илгээж
хэвлэх ажил дууссаныг мэдэгддэг.
Энэ нь бараг бүх Hewlett Packard хэвлэгчдэд тохирдог.
#!/bin/sh
#
# hpif - Simple text input filter for lpd for HP-PCL based printers
# Installed in /usr/local/libexec/hpif
#
# Simply copies stdin to stdout. Ignores all filter arguments.
# Tells printer to treat LF as CR+LF. Ejects the page when done.
printf "\033&k2G" && cat && printf "\033&l0H" && exit 0
exit 2
Энд orchid нэртэй компьютерийн
/etc/printcap файлын жишээг харуулж байна.
Энд teak нэртэй Hewlett Packard
LaserJet 3Si хэвлэгчийг зэрэгцээ холболтоор холбосон байгаа.
Энд өмнө үзүүлсэн скриптийг текст шүүгчээ болгож хэрэглэсэн байгаа:
#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:
Энэ нь мөрүүдийг давхарлан хэвлэж байх.
Хэвлэгч мөрөө дээшлүүлсэнгүй.
Бүх мөрүүд дээд мөрөнд давхарлагдаж хэвлэгдэв.
Энэ хүндрэл нь өнөөх хачирхалтай нөлөөний
эсрэг
нөлөөлөл бөгөөд арай бага тохиолддог.
FreeBSD-н мөрийн төгсгөл илэрхийлсэн LF тэмдэгт нь
CR тэмдэгтээр солигдоод мөрөө шинээр ахиулалгүй хуудасны
эхэнд очиж дахин хэвлэчихсэн байна.
Хэвлэгчийн тохируулгын цонх ашиглан LF болон CR
тэмдэгтүүдийг дараах маягаар хөрвүүлэхээр тохируулах хэрэгтэй:
Хэвлэгчийн хүлээж авалт
Хэвлэгчийн хэвлэлт
CR
CR
LF
CR + LF
Хэвлэгч тэмдэгт гээх үзэгдэл.
Хэвлэгч хэвлэх үедээ мөрөнд зарим тэмдэгтүүдийг хэвлэхгүй
болдог. Энэ хүндрэл нь хэвлэгч ажиллахгүй болох эсвэл маш их тэмдэгт
гээж эхлэх зэргээс илүү дор үзэгдэл юм.
Хүндрэлийн шалтгаан нь цуваа холболтоор компьютерийн илгээсэн
хурдтай хэвлэгчийн хэвлэх хурд таарахгүй байгаагаас үүсдэг
(ийм хүндрэл зэрэгцээ холбосон хэвлэгчдэд тулгардаггүй).
Энэ хүндрэлийг давах хоёр арга бий:
Хэрэв хэвлэгч нь XON/XOFF гэсэн урсгал зохицуулагчийг
дэмждэг бол ms# шинж чанарыг ашиглан
ixon горимыг FreeBSD дээр хэрэглэхээр
тааруулах хэрэгтэй.
Хэрэв хэвлэгч нь carrier урсгал зохицуулагч дэмждэг бол
ms# шинж чанарыг ашиглан crtscts
горимыг ашиглах хэрэгтэй.
Ийм урсгал зохицуулагчид тааруулж цуваа холболтоо зөв
холбосон эсэхээ магадлах хэрэгтэй.
Хог хэвлэх үзэгдэл.
Хэвлэгч хүссэн текстийг хэвлэхийн оронд
хог хэвлээд эхлэв.
Энэ нь цуваа холболт буруу холбогдсоноос үүсдэг үзэгдэл.
Дамжуулах хурдны давтамжийн br шинж чанарыг
шалгаад
ms# шинж чанараар өгөгдөл тэгшилж
илгээнэ гэх зэрэг
/etc/printcap файлд байгаа
тохиргоотой тохирч буй эсэхийг шалгах хэрэгтэй.
Юу ч болохгүй байх.
Хэрэв юу ч болохгүй байвал хүндрэл нь хэвлэгчид биш
FreeBSD-д байж болох юм. /etc/printcap
файлд бүртгэл файл хэрэглэнэ гэсэн
(lf) шинж чанарыг нэмэх хэрэгтэй.
Жишээ нь энд rattan оруулганд
lf шинж чанар нэмж байна:
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:\
:if=/usr/local/libexec/if-simple:\
:lf=/var/log/rattan.log
Тэгээд дахиад хэвлэх гээд оролдоод үз. Гарч болзошгүй алдааны мэдэгдэл
байгаа эсэхийг бүртгэлийн файлаас (бидний жишээн дээр
/var/log/rattan.log) шалгах хэрэгтэй.
Мэдэгдлүүдээс хамаарч асуудлыг засахыг оролдох хэрэгтэй.
Хэрэв та lf шинж чанар зааж өгөөгүй бол,
LPD нь
/dev/console файлыг анхдагч гэж авч үзнэ.
diff --git a/mn_MN.UTF-8/books/handbook/security/chapter.sgml b/mn_MN.UTF-8/books/handbook/security/chapter.sgml
index f0b4ca70aa..6e0981f29d 100644
--- a/mn_MN.UTF-8/books/handbook/security/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/security/chapter.sgml
@@ -1,4783 +1,4783 @@
Мэтью
Диллон
Энэ бүлгийн ихэнх хэсгийг security(7) гарын авлагын хуудаснаас авсан бөгөөд
security(7) гарын авлагын хуудсыг бичсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
Аюулгүй байдал
аюулгүй байдал
Ерөнхий агуулга
Энэ бүлэг нь системийн аюулгүй байдлын ухагдахуунуудын үндэс, зарим нэг нийтлэг
практикийн сайн аргууд болон &os; дэх зарим нэг дэвшилттэй сэдвүүдийг
танилцуулах болно. Энд дурдагдсан олон сэдвүүдийг бас системийн болон Интернэтийн
аюулгүй байдалд хэрэглэж болох юм. Интернэт нь хүн бүр таны найрсаг хөрш байхыг
хүсдэг найзархаг
газар байхаа аль хэдийн больсон.
Өөрийн системийг аюулгүй болгох нь таны өгөгдөл, оюуны өмч, цаг хугацаа зэрэг
олон зүйлсийг хакерууд зэргийн савраас хамгаалахад хойшлуулашгүй чухал юм.
&os; нь таны систем болон сүлжээний аюулгүй байдал болон бүрэн бүтэн байдлыг
хангаж байдаг хэрэгслүүд болон арга замуудын цуглуулгыг агуулдаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
&os;-ийн хувьд системийн аюулгүй байдлын үндсэн ухагдахуунууд.
&os;-д байдаг DES болон MD5
зэрэг төрөл бүрийн нууцлах арга замуудын талаар.
Нэг удаагийн нууц үгийн нэвтрэлтийг хэрхэн тохируулах талаар.
TCP Wrappers буюу
TCP Гүйцэтгэлийг хялбаршуулагчдыг inetd тушаалд ашиглан
хэрхэн тохируулах талаар.
&os;-ийн 5.0-с өмнөх хувилбарууд дээр KerberosIV-г
хэрхэн тохируулах талаар.
&os; дээр Kerberos5-г хэрхэн тохируулах талаар.
IPsec-г хэрхэн тохируулж &os;/&windows; машинуудын хооронд
VPN үүсгэх талаар.
&os;-ийн SSH шийдэл болох OpenSSH-г
хэрхэн тохируулж ашиглах талаар.
Файлын системийн ACL-үүд гэж юу болох, тэдгээрийг
хэрхэн ашиглах талаар.
Portaudit хэрэгслийг хэрхэн ашиглаж
Портын цуглуулгаас суулгагдсан гуравдагч програм хангамжийн багцуудыг аудит хийх талаар.
&os;-ийн аюулгүй байдлын зөвлөмжүүдийн сонордуулгуудыг хэрхэн хэрэглэх талаар.
Процессийн Бүртгэл хөтлөх гэж юу болох талаар ойлголттой болж
түүнийг &os; дээр хэрхэн идэвхжүүлэх талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
&os; болон Интернэтийн үндсэн ухагдахуунуудыг ойлгох.
Энэ номонд нийтдээ аюулгүй байдлын нэмэлт сэдвүүд хамрагдсан болно.
Жишээ нь Mandatory Access Control буюу
Шаардлагатай Хандалтын Хяналт -д,
Интернэт галт ханануудын талаар -д
хэлэлцэгдсэн байгаа.
Танилцуулга
Аюулгүй байдал нь системийн администратораас эхэлж түүнтэй дуусдаг
үйл ажиллагаа юм. BSD &unix; олон хэрэглэгчийн системүүд нь угаасаа
зарим нэг аюулгүй байдлыг хангаж байдаг боловч тэдгээр хэрэглэгчдийг
үнэнч
байлгахыг эрмэлздэг аюулгүй байдлын нэмэлт
арга замуудыг бүтээж түүний ажиллагааг хангах ажил нь сисадмины магадгүй
ганц, хамгийн том үүргүүдийн нэг юм. Таныг аюулгүй болгосон зөвхөн тэр
хэмжээгээр машинууд нь аюулгүй байдаг бөгөөд аюулгүй байдлын санаа зовнилууд
нь хүний ая тухтай хялбар байлгах гэсэн хэрэгцээтэй үргэлж тэмцэлдэж байдаг. Ерөнхийдөө
&unix; системүүд нь асар олон тооны зэрэгцээ процессуудыг ажиллуулах
чадвартай бөгөөд эдгээр процессуудын ихэнх нь серверүүд болон ажилладаг
— энэ нь гаднын зүйлс тэдэнтэй холбогдож ярилцах боломжтой
гэсэн үг юм. Өчигдрийн миникомпьютерууд, мэйнфрэймүүдээс өнөөгийн
ширээний компьютерууд болж компьютерууд нь сүлжээнд холбогдож
сүлжээнүүд нь хоорондоо холбогдох тусам аюулгүй байдал нь улам илүү том
асуудал болсоор байна.
Системийн аюулгүй байдал нь сүйрүүлэхийг оролдсон эсвэл системийг
ашиглагдахааргүй болгох гэсэн, гэхдээ root
бүртгэлийг буулган авах (root-г эвдэх
) оролдлого
хийдэггүй, халдлагууд зэрэг төрөл бүрийн халдлагуудыг зогсоохтой бас
хамааралтай юм. Аюулгүй байдлын санаа зовнилуудыг хэд хэдэн зэрэглэлд
хувааж болно:
Үйлчилгээг зогсоох халдлагууд.
Хэрэглэгчийн бүртгэл буулган авалтууд.
Хандаж болох серверүүдээр дамжин root-г буулган авах.
Хэрэглэгчийн бүртгэлүүдээс дамжин root-г буулган авах.
Арын хаалга үүсгэлт.
DoS халдлагууд
Үйлчилгээг Зогсоох (DoS)
аюулгүй байдал
DoS халдлагууд
Үйлчилгээг Зогсоох (DoS)
Үйлчилгээг Зогсоох (DoS)
Үйлчилгээг зогсоох халдлага нь машиныг хэрэгцээтэй эх үүсвэрээс нь салгах
үйлдэл юм. Ихэвчлэн DoS халдлагууд нь сүйрүүлэхийг оролдсон эсвэл
машиныг түүн дээрх серверүүд болон сүлжээний стекийг эзэмдэн ашиглах
боломжгүй болгодог балмадаар хүчлэх арга замууд юм. Зарим DoS халдлагууд
нь сүлжээний стек дэх алдаануудыг ашиглан ганц пакетаар машиныг сүйрүүлэхийг
оролддог. Үүнийг зөвхөн алдааны засварыг цөмд хийснээр засах боломжтой.
Систем дээрх хөнөөлтэй нөхцөлд байх тэр серверийн дуудлагыг хязгаарладаг
тохируулгуудыг зөв зааж серверүүд уруу хийсэн халдлагуудыг ихэвчлэн засаж болдог.
Сүлжээний балмадаар хүчлэх халдлагуудын эсрэг арга хэмжээ авахад илүү
төвөгтэй байдаг. Жишээ нь хууран мэхэлсэн пакетийн халдлагыг зогсоох
бараг л боломжгүй, таны системийг Интернэтээс салгахад хүргэж болох юм.
Энэ нь таны машиныг зогсоож чадахгүй байж болох боловч таны Интернэтийн
холболтыг дүүргэж болно.
аюулгүй байдал
бүртгэл буулган авалтууд
Хэрэглэгчийн бүртгэлийг буулган авах халдлага нь DoS халдлагаас илүү их
тохиолддог. Одоо болтол олон сисадминууд стандарт telnetd,
rlogind, rshd,
болон ftpd серверүүдийг өөрсдийн машинууд
дээр ажиллуулсаар байна. Анхдагчаар серверүүд нь шифрлэсэн холболт дээр
ажилладаггүй. Ийм холболт дээр хэрэв та багагүй хэмжээний хэрэглэгчидтэй
бөгөөд тэдгээр хэрэглэгчдээс нэг болон хэд хэд нь алсаас (энэ нь систем уруу нэвтрэн
орох хамгийн нийтлэг тав тухтай арга юм) таны систем уруу нэвтрэн
орж байгаа бол тэдгээр хэрэглэгчийн нууц үг дундаасаа сүлжээгээр шиншлэгдэн алдагдах
боломжтой байдаг. Анхааралтай системийн админ тэр хэрэглэгчийн
алсаас хандсан бүртгэлүүд дээрээс бүр амжилттай болсон нэвтрэлтүүдэд хүртэл сэжигтэй
эхлэл хаягууд байгаа эсэхийг хайн шинжилдэг.
Халдагч хэрэглэгчийн бүртгэлд хандаж чадсаны дараа root-г
бас эвдэж чадна гэдгийг үргэлж бодож байх хэрэгтэй. Гэхдээ жинхэнэ амьдрал дээр бол
сайн аюулгүй байдлыг хангаж нууцлаг болгосон байнга ажиллагааг нь хянаж байдаг систем дээр
хэрэглэгчийн бүртгэлд хандах нь халдагч заавал ч үгүй root
эрхэд хандаж чадна гэсэн үг биш юм. Энэ ялгааг зөв салгаж ойлгох хэрэгтэй. Учир нь
root уруу хандах боломжгүй халдагч ерөнхийдөө өөрийн
мөрийг баллаж нууж чаддаггүй бөгөөд тухайн хэрэглэгчийн файлуудыг замбараагүйтүүлэх
эсвэл машиныг сүйрүүлэхээс илүүтэйг хийж чаддаггүй. Хэрэглэгчид нь сисадминууд шиг
аюулгүй байдлын арга хэмжээг тэр болгон авдаггүй болохоор хэрэглэгчийн бүртгэлийн
буулган авалт нь маш элбэг байдаг юм.
аюулгүй байдал
арын хаалганууд
Машин дээрх root бүртгэлийг эвдэх боломжит олон
аргууд байдгийг системийн администраторууд санаж байх хэрэгтэй. Халдагч нь
root-н нууц үгийг мэдэж болно. Эсвэл халдагч root
эрхээр ажилладаг серверт алдаа олж сүлжээгээр тэр сервер уруу дамжин орж
root-г эвдэж болно. Эсвэл халдагч нь suid-root
програмд алдаа байгааг мэдэж хэрэглэгчийн бүртгэлийг эвдэн орсныхоо дараа
тэр алдаагаар дамжин root-г эвдэн орж болох юм.
Хэрэв халдагч машин дээрх root-г эвдэх аргаа
олсон бол заавал арын хаалга суулгах шаардлагагүй болж болох юм.
root-н цоорхойнуудын олонхийг тухайн үед аль хэдийн
олоод хаачихсан байдаг бөгөөд энэ үед халдагчид өөрийн мөрөө цэвэрлэхэд ихээхэн
ажиллагаа шаарддаг болохоор ихэнх халдагчид арын хаалга суулгадаг.
Арын хаалга нь систем уруу хандах root хандалтыг
халдагчид амархнаар дахин олж авах боломжийг олгодог боловч энэ нь ухаалаг системийн
администраторт халдлагыг амархнаар илрүүлэх боломжийг бас олгодог юм.
Халдагчийн хамгийн эхлээд эвдэн орсон цоорхойг хааж чаддаггүй болохоор арын хаалга
суулгахыг боломжгүй болгох нь магадгүй таны аюулгүй байдалд ашиггүй байж болох юм.
Аюулгүй байдлын засварууд нь олон давхраатай сонгины хальс
хандлагаар үргэлж шийдэгдэж байх шаардлагатай бөгөөд тэдгээрийг дараах маягаар
зэрэглэж болно:
root болон staff бүртгэлүүдийг нууцлаг/аюулгүй болгох.
root–ажилладаг серверүүд
болон suid/sgid хоёртын файлуудыг аюулгүй болгох.
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох.
Нууц үгийн файлыг аюулгүй болгох.
Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон
файлын системүүдийг аюулгүй болгох.
Системд хийгдсэн зохисгүй өөрчлөлтүүдийг түргэн илрүүлэх.
Параной буюу хэт зовнил.
Энэ бүлгийн дараагийн хэсэг нь дээр дурдсан зүйлсүүдийг илүү гүнзгийгээр
авч үзэх болно.
&os;-н аюулгүй байдлыг хангах нь
аюулгүй байдал
&os;-н аюулгүй байдлыг хангах нь
Тушаалыг Протоколтой харьцуулахад (Command vs. Protocol)
Энэ баримтын туршид бид тод текстээр
програмыг monospaced фонтоор тусгай тушаалуудыг
тэмдэглэх болно. Протоколууд ердийн фонт ашиглах болно. Тэмдэглэгээний энэ
ялгаа нь ssh зэргийн хувьд ашигтай, учир нь энэ ssh нь протоколоос гадна
бас тушаал юм.
Үүнээс хойшхи хэсгүүд нь түрүүчийн бүлгийн
сүүлийн хэсэгт дурдсан таны &os; системийг аюулгүй болгох аргуудыг
авч үзнэ.
root бүртгэл болон staff бүртгэлүүдийг
аюулгүй болгох
su
Эхлээд хэрэв та root бүртгэлийг аюулгүй болгоогүй
бол staff бүртгэлүүдийг аюулгүй болгоход санаа зовсны хэрэггүй. Ихэнх системүүд
root бүртгэлд нууц үг өгсөн байдаг. Таны эхний хийх
зүйл бол нууц үг үргэлж эвдэгдэж болно гэдгийг
бодох хэрэгтэй. Энэ нь та нууц үгээ устгах хэрэгтэй гэсэн үг биш юм. Нууц үг нь
машин уруу консол хандалт хийхэд үргэлж хэрэгтэй байдаг. Энэ нь юу гэсэн үг вэ
гэхээр та нууц үгийг консолоос гадна эсвэл болж өгвөл бүр &man.su.1; тушаалтай
ашиглаж болохоор хийх ёсгүй гэсэн үг юм. Жишээ нь
telnet эсвэл rlogin-р хийгдэх
шууд root нэвтрэлтүүдийг хаах pty-уудын тохиргоог insecure
буюу аюултай гэж /etc/ttys файлд заасан эсэхийг шалгаарай.
Хэрэв бусад нэвтрэх үйлчилгээнүүд болох sshd
зэргийг ашиглаж байгаа бол шууд root нэвтрэлтүүдийг
бас хаасан эсэхийг шалгаарай. Та үүнийг /etc/ssh/sshd_config
файлыг засварлан PermitRootLogin тохируулгыг
NO болгон зааж өгөөрэй. Хандах арга бүр —
FTP зэрэг үйлчилгээнүүдээр ихэвчлэн эвдлэн ордог болохыг бодолцох хэрэгтэй.
Шууд root нэвтрэлтүүд зөвхөн системийн консолоор хийгдэхэд
зөвшөөрөгдөх ёстой.
wheel
Мэдээж систем админы хувьд та root
уруу орж чадаж байх ёстой болохоор бид хэдэн цоорхой үлдээдэг.
Гэхдээ эдгээр цоорхойнууд нь нэмэлт нууц үг шалгаж ажилладаг байхаар
бид хийдэг. root-г хандах боломжтой
байлгах нэг арга нь тохирох staff бүртгэлүүдийг wheel
бүлэгт (/etc/group файлд) нэмэх явдал юм.
wheel бүлэгт оруулсан staff-ийн гишүүдэд
root уруу su хийхийг
зөвшөөрдөг. Та staff-ийн гишүүдийг тэдгээрийн нууц үгийн оруулгад
wheel бүлэгт оруулан байрлуулж анхнаас нь
wheel хандалт өгч хэзээ ч болохгүй.
Staff бүртгэлүүдийг staff бүлэгт
оруулах ёстой бөгөөд тэгээд дараа нь /etc/group
файлын wheel бүлэгт нэмэх ёстой.
Зөвхөн root хандалт заавал шаардлагатай
тийм staff-ийн гишүүдийг wheel бүлэгт
оруулах ёстой. Kerberos зэрэг жинхэнээ шалгуулж нэвтрэх аргыг ашиглаж
байх тохиолдолд заавал wheel бүлэгт оруулалгүйгээр
root бүртгэл дэх Kerberos-ийн
.k5login файлыг ашиглаж
root уруу &man.ksu.1; хийхийг зөвшөөрөх
бас боломжтой байдаг. Энэ нь магадгүй давуу шийдэл байж болох юм.
Учир нь хэрэв халдагч таны нууц үгийн файлыг олж аван staff бүртгэлийг
эвдлэн орж чадах бол wheel арга нь
халдагчид root-г эвдэх боломжийг олгосон хэвээр
байдаг юм. wheel аргатай байх нь огт аргагүй
байхаас илүү боловч энэ нь заавал ч үгүй хамгийн аюулгүй сонголт бас биш
юм.
Staff бүртгэлүүд болон эцсийн эцэст root хандалтыг
шууд бусаар аюулгүй болгохын тулд өөр нэвтрэх хандалтын аргыг ашиглаж
staff бүртгэлүүдийн шифрлэсэн нууц үгийг од болгож
өгдөг. &man.vipw.8; тушаалыг ашиглан шифрлэсэн нууц үг бүрийг ганц
*
тэмдэгтээр сольж өгч болно.
Энэ тушаал нь /etc/master.passwd файл болон
хэрэглэгч/нууц үгийн мэдээллийн баазыг нууц үгээр шалгагдан нэвтрэх нэвтрэлтүүдийг
хаан шинэчлэх болно.
Иймэрхүү staff бүртгэлийн эрхийг:
foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh
Ийм болгон өөрчлөх хэрэгтэй:
foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh
Шифрлэсэн нууц үг *
тэмдэгттэй хэзээ ч таарахгүй болохоор энэ өөрчлөлт нь ердийн нэвтрэлтүүдийг
болиулдаг. Ийм болсон staff-ийн гишүүд &man.kerberos.1; эсвэл
нийтийн/хувийн түлхүүр хослолыг ашиглан &man.ssh.1; зэрэг өөрсдийгөө
таниулан нэвтрэх өөр арга хэрэглэх шаардлагатай. Kerberos-той адилыг
ашиглаж байгаа үед ерөнхийдөө Kerberos сервер ажиллаж байгаа машинууд болон
өөрийн ширээний ажлын компьютерийг аюулгүй болгох шаардлагатай.
Нийтийн/хувийн түлхүүр хослолыг ssh-тэй ашиглаж байгаа үед ерөнхийдөө
нэвтрэлтийг эхлүүлж байгаа машиныг (ихэвчлэн
хэрэглэгчийн ажлын компьютер) аюулгүй болгох шаардлагатай. &man.ssh-keygen.1;-р
түлхүүр хослолыг үүсгэх үедээ түлхүүр хослолыг хамгаалан нэмэлт давхарга
хамгаалалт хийж өгч болох юм. Staff бүртгэлүүдийн нууц үгүүдийг
од болгох
боломж нь бас staff-ийн гишүүд зөвхөн
таны тохируулсан аюулгүй хандалтын аргуудаар дамжин нэвтрэхийг
баталгаажуулдаг. Энэ нь бүх staff-ийн гишүүдэд аюулгүй, шифрлэгдсэн
холболтуудыг тэдгээрийн бүх сессүүдэд хүчээр ашиглуулдаг бөгөөд энэ нь олон
халдагчдын ашиглаж байсан хамааралгүй, аюулгүй биш машинаас сүлжээг
шиншлэх ноцтой цоорхойг хаадаг.
Арай илүү шууд бус аюулгүй байдлын арга замууд нь бас таныг илүү хязгаарласан
серверээс арай бага хязгаарласан машин уруу нэвтрэн орж байна гэж тооцдог.
Жишээ нь хэрэв таны гол хайрцаг чинь бүх л төрлийн серверүүд ажиллуулж байвал
таны ажлын компьютер чинь ямрыг ч ажиллуулах ёсгүй. Өөрийн компьютерийг
боломжийн аюулгүй болгохын тулд та ерөөсөө сервергүй болтол аль болох цөөн
сервер ажиллуулах хэрэгтэй бөгөөд та нууц үгээр хамгаалагдсан дэлгэц хоослогч
ажиллуулах хэрэгтэй. Мэдээж ажлын компьютер уруу физик хандалт өгвөл
халдагч ямар ч төрлийн аюулгүй байдлыг та хангасан байлаа гэсэн эвдэж
чадна. Энэ нь таны бодох ёстой асуудлын нэг юм. Гэхдээ эвдлэн оролтуудын
олонхи нь алсаас сүлжээгээр дамжин таны ажлын компьютер эсвэл серверүүдэд
физик хандалт байхгүй хүмүүсээс ирдэг гэдгийг та бас л бодолцох хэрэгтэй юм.
KerberosIV
Kereberos мэтийг ашиглах нь танд staff бүртгэлийн нууц үгийг нэг газар
өөрчлөх эсвэл хаах боломжийг олгох бөгөөд staff-ийн гишүүдийн бүртгэл байж болох
бүх машинууд дээр нэн даруй бас үйлчилдэг. Хэрэв staff-ийн гишүүний бүртгэл
эвдэгдсэн бол түүний нууц үгийг бүх машинууд дээр нэн даруй өөрчлөх тэр боломжийг
дутуу үнэлэх ёсгүй юм. Тусдаа байгаа нууц үгүүдийг N машинууд дээр өөрчлөх нь
зовлонтой байдаг. Мөн та Kerberos-д нууц үг дахин өгөлтийг ноогдуулж болох
бөгөөд Kerberos тасалбарыг хэсэг хугацааны дараа дуусдагаар хийж болохоос
гадна Kerberos систем нь тодорхой хугацааны (жишээ нь сар бүр) дараа
хэрэглэгчийг шинэ нууц үг сонгохыг шаарддагаар бас тохируулж болдог.
root-ажилладаг серверүүд болон suid/sgid хоёртын файлуудыг аюулгүй болгох
ntalk
comsat
finger
sandboxes
sshd
telnetd
rshd
rlogind
Хянамгай сисадмин илүү ч үгүй дутуу ч үгүй зөвхөн өөрийн хэрэгтэй серверүүдийг
ажиллуулдаг. Гуравдагч талын серверүүд ихэвчлэн хамгийн алдаатай байх
хандлагатай гэдгийг санаж байх хэрэгтэй. Жишээ нь
imapd эсвэл
popper серверийн хуучин хувилбарыг
ажиллуулна гэдэг нь универсал root тасалбарыг
бүх дэлхийд өгч байна гэсэн үг юм. Та няхуур шалгаагүй сервер битгий ажиллуул.
Олон серверүүд заавал root эрхээр ажиллах
шаардлагагүй байдаг. Жишээ нь ntalk,
comsat, болон
finger дэмонуудыг тусгай хэрэглэгчийн
sandboxes буюу хамгаалагдсан хязгаарлагдмал орчинд
ажиллуулах боломжтой байдаг. Хамгаалагдсан хязгаарлагдмал орчин нь
асар их төвгүүдийг давж хийгээгүй л бол төгс биш бөгөөд өмнө дурдсан сонгины
хандлагаар аюулгүй байдалд хандах нь хэвээр байна: хэрэв хэн нэгэн нь
хамгаалагдсан хязгаарлагдмал орчинд ажиллаж байгаа серверт эвдэн орж
чадсан ч гэсэн тэд хамгаалагдсан хязгаарлагдмал орчныг бас эвдэн гарах хэрэг
болно. Аль болох олон давхаргыг халдагч эвдлэх ёстой болох тусам тэдгээрийн
амжилттай болох нь улам багасах болно. Урьд нь root цоорхойнууд нь
системийн үндсэн серверүүдээс авахуулаад бараг л бүх
root ажилладаг сервер дээр олдож байсан.
Хэрэв таны ажиллуулдаг машин уруу хүмүүс зөвхөн sshd
ашиглан нэвтэрдэг бөгөөд telnetd,
rshd эсвэл
rlogind хэзээ ч ашиглан нэвтэрдэггүй
бол эдгээр үйлчилгээнүүдийг хаагаарай!
Одоо &os; нь ntalkd,
comsat, болон
finger үйлчилгээнүүдийг хамгаалагдсан
хязгаарлагдмал орчинд анхдагчаар ажиллуулдаг. Хамгаалагдсан хязгаарлагдмал
орчинд ажиллуулж болох өөр нэг програм нь &man.named.8; юм.
/etc/defaults/rc.conf нь
named-г хамгаалагдсан хязгаарлагдмал
орчинд ажиллуулахад шаардлагатай нэмэлт өгөгдлүүдийг тайлбар хэлбэрээр агуулсан
байдаг. Таны шинэ систем эсвэл байгаа системээ шинэчилж байгаагаас хамааран
тэдгээр хамгаалагдсан хязгаарлагдмал орчинд ашиглагдах тусгай хэрэглэгчийн
бүртгэлүүд суулгагдаагүй байж болох юм. Хянамгай сисадмин судалгаа хийж
серверүүдийг хамгаалагдсан хязгаарлагдмал орчинд аль болох
ажиллуулдаг.
sendmail
Хамгаалагдсан хязгаарлагдмал орчинд ерөнхийдөө ажилладаггүй хэд хэдэн
серверүүд байдаг: sendmail,
popper,
imapd, ftpd,
болон бусад. Эдгээрийн зарим шиг бас өөр серверүүд байдаг боловч
тэдгээрийг суулгах нь таны хүсэж байгаагаас илүү (амархан байх гэсэн асуудал
энд сөхөгдөж байна) их ажиллагаа шаардаж магадгүй юм. Та эдгээр серверүүдийг
магадгүй root эрхээр ажиллуулж тэдгээрт учирч болох
эвдрэн оролтуудыг илрүүлэх өөр арга замуудад найдах хэрэгтэй болж болох юм.
Системийн өөр нэг том боломжтой root цоорхойнууд
бол системд суусан suid-root болон sgid хоёртын файлууд юм.
rlogin зэрэг эдгээрийн ихэнх нь
/bin, /sbin,
/usr/bin, эсвэл /usr/sbin
сангуудад байрладаг. Юу ч 100% аюулгүй байдаггүй боловч системийн анхдагч
suid болон sgid хоёртын файлууд нь боломжийн хэрээр аюулгүй гэж тооцогддог.
Гэсэн хэдий ч эдгээр хоёртын файлуудад root цоорхойнууд
үе үе олддог. xterm-г (энэ нь ихэвчлэн suid
байдаг) эмзэг болгосон root цоорхойнууд 1998 онд
Xlib-д олджээ. Харамсахаасаа өмнө аюулгүй байж
байсан нь дээр учраас хянамгай сисадмин зөвхөн staff ажиллуулах ёстойгоор
staff зөвхөн хандаж чадах тусгай бүлэгт зөвшөөрч suid хоёртын файлуудыг
хязгаарладаг бөгөөд хэн ч ашигладаггүй suid хоёртын файлуудыг ажиллуулж болохгүй
болгодог (chmod 000). Дэлгэцгүй серверт ер нь
xterm хоёртын файл хэрэгцээгүй юм.
Sgid хоёртын файлууд нь бас л аюултай юм. Хэрэв халдагч sgid-kmem
хоёртын файлыг эвдэж чадвал тэр /dev/kmem-г
уншиж чадах бөгөөд ингэснээр нууц үгтэй дурын бүртгэлийг эвдэн орж
шифрлэсэн нууц үгийн файлыг уншихад хүргэдэг. Бас kmem
бүлгийг эвдсэн халдагч secure буюу аюулгүй аргаар дамжин нэвтрэн орсон хэрэглэгчдийн
ашиглаж байгаа pty-уудаар илгээгдсэн гарын товчнуудын даралтуудыг
хянаж чаддаг. tty бүлгийг эвдсэн халдагч
бараг дурын хэрэглэгчийн tty-д бичиж чадна. Хэрэв хэрэглэгч гар дуурайх боломж бүхий
терминал програм эсвэл эмулятор ажиллуулж байгаа бол хэрэглэгчийн терминалыг
тушаал буцаан харуулахаар болгодог өгөгдлийн урсгалыг халдагч үүсгэж дараа нь
тэр тушаалыг тэр хэрэглэгчийн эрхээр ажиллуулдаг.
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох нь ихэвчлэн хамгийн хэцүү
байдаг. Та өөрийн staff-д ширүүн хандалтын хязгаарлалтууд оногдуулж
тэдгээрийн нууц үгүүдийг од болгож
болох боловч
та ердийн хэрэглэгчийн бүртгэлүүдийг яг ингэж хязгаарлаж чадахгүй байж болох
юм. Хэрэв та хангалттай хяналттай байх юм бол таны аз болж хэрэглэгчийн
бүртгэлүүдийг зөвөөр аюулгүй болгож чадна. Хэрэв үгүй бол та тэдгээр
бүртгэлүүдийг хянахдаа ердөө л илүү сонор сэрэмжтэй байх хэрэгтэй.
ssh болон Kerberos-г хэрэглэгчийн бүртгэлүүдэд ашиглах нь
нэмэлт удирдлага болон техникийн дэмжлэг шаардлагатайгаас болоод
илүү асуудалтай байдаг боловч энэ нь шифрлэсэн нууц үгийн файлыг бодох юм
бол маш сайн шийдэл хэвээр байдаг.
Нууц үгийн файлыг аюулгүй болгох
Цорын ганц итгэлтэй арга бол аль болох олон нууц үгүүдийг од болгон
тэдгээр бүртгэлүүдэд хандахын тулд ssh эсвэл Kerberos ашигла.
Шифрлэгдсэн нууц үгийн файлыг (/etc/spwd.db)
зөвхөн root уншиж чаддаг боловч халдагч
root-бичих хандалт олж авч чадаагүй ч гэсэн тэр файлд унших эрх олж авах
боломжтой байж болох юм.
Таны аюулгүй байдлын скриптүүд нууц үгийн файлд хийгдсэн өөрчлөлтүүдийг
үргэлж шалгаж тайлагнах шаардлагатай (доорх Файлын бүрэн бүтэн байдлыг шалгах
хэсгийг үзнэ үү).
Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон файлын системүүдийг аюулгүй болгох
Хэрэв халдагч root-г эвдсэн бол тэр юуг ч хийж чадах
боловч зарим ашиг сонирхлууд байдаг. Жишээ нь орчин үеийн ихэнх цөмүүдэд
пакет шиншлэх төхөөрөмжийн драйвер бүтээгдсэн байдаг. &os;-д энэ нь
bpf төхөөрөмж гэж нэрлэгддэг. Халдагч
ердөө буулган авсан машин дээрээ пакет шиншлэгчийг ажиллуулахыг оролддог.
Та халдагчид энэ боломжийг өгөх хэрэггүй бөгөөд ихэнх системүүдэд
bpf төхөөрөмжийг эмхэтгэн оруулах
шаардлагагүй юм.
sysctl
Гэхдээ bpf төхөөрөмжийг хаасан ч гэсэн
та /dev/mem болон /dev/kmem
файлуудад бас санаа тавих хэрэгтэй. Энэнээс болоод халдагч түүхий (raw)
төхөөрөмжүүдэд бичиж чадсан хэвээр байна. Мөн цөмийн бас нэг боломж болох
модуль ачаалагч гэж нэрлэгддэг &man.kldload.8; байдаг. Самбаатай
халдагч KLD модуль ашиглаад өөрийн bpf
төхөөрөмж эсвэл бусад шиншлэх төхөөрөмжийг ажиллаж байгаа цөмд суулгадаг.
Эдгээр асуудлуудаас зайлсхийхийн тулд та цөмийг илүү өндөр аюулгүй байдлын
түвшинд ядаж аюулгүйн түвшин 1-д ажиллуулах хэрэгтэй. Аюулгүй түвшин
sysctl тушаалаар kern.securelevel
хувьсагчийн тусламжтай тохируулагдаж болно. Аюулгүйн түвшинг 1 болгосны дараа
түүхий төхөөрөмжүүдэд бичих хандалт хийхийг хориглох бөгөөд schg
зэрэг chflags тугууд үйлчлэх болно. Мөн та
чухал эхлүүлэх хоёртын файлууд, сангууд болон скрипт файлууд, ер нь аюулгүйн
түвшин заагдах хүртэл ажиллаж байгаа бүгдэд schg туг
байгаа эсэхийг шалгах хэрэгтэй. Энэ нь хэтэрхий болж болох бөгөөд
таныг илүү өндөр аюулгүйн түвшинд ажиллаж байгаа үед системийг шинэчлэхийг
бүр илүү төвөгтэй болгодог юм. Та буулт хийж системийн бүх файл болон санд
schg тугийг зааж өгөлгүйгээр системийг өндөр аюулгүйн
түвшинд ажиллуулж болох юм. Өөр нэг боломж нь /
болон /usr санг ердөө л зөвхөн уншихаар холбох явдал
юм. Хамгаалах зүйлдээ хэт ширүүн байх нь булаан эзлэлтийн бүх чухал илрүүлэлтийг
бас болиулж болохыг санахад илүүдэхгүй.
Файлын бүрэн бүтэн байдлыг шалгах нь: Хоёртын файлууд, Тохиргооны файлууд,
гэх мэт.
Тэр мөч ирэхэд, та зөвхөн системийн гол тохиргоо болон хяналтын файлуудаа
ая тухын хүчин зүйл урьтахаас хамаагүй өмнө хамгаалж чадна.
Жишээ нь chflags тушаал ашиглан
/ болон /usr
сангууд дахь ихэнх файлуудад schg битийг тохируулах нь
магадгүй үр ашиггүй байж болох бөгөөд учир нь ингэснээр файлуудыг хамгаалахын
хажуугаар бас илрүүлэх цонхыг хаадаг юм. Таны аюулгүй байдлын сонгины
сүүлийн давхарга нь илрүүлэлт бөгөөд энэ нь хамгийн чухал юм. Хэрэв та боломжит
халдагчдыг илрүүлж чадахгүй л бол аюулгүй байдлын бусад үлдсэн асуудлуудын талаар
бодоод ч бараг хэрэггүй юм (эсвэл бүр дэмий юм, аюулгүй байдлыг танд буруу ойлгуулахад
хүргэдэг). Сонгины ажлын хагас нь халдагчийг үйлдэл дээр нь
барихын тулд түүнийг зогсоохын оронд харин удаашруулах явдал юм.
Халдлагыг илрүүлэх хамгийн сайн арга бол өөрчлөгдсөн, алга болсон, эсвэл
гэнэтийн файлуудыг хайх явдал юм. Өөрчлөгдсөн файлуудыг хайх хамгийн сайн арга
бол тэдгээрийг өөр (ихэвчлэн төвлөрсөн) хязгаарлагдмал хандалттай системээс хайх
явдал юм. Өөрийн аюулгүй байдлын скриптийг нэмэлт аюулгүй байдал хангасан
хязгаарлагдмал хандалттай систем дээр бичих нь тэдгээрийг боломжит халдагчдад
бараг харагдуулдаггүй бөгөөд энэ нь чухал юм. Давуу талыг хамгийн ихээр авахын
тулд ерөнхийдөө хязгаарлагдмал хандалттай хайрцагт бусад машинуудад хандах
тэр ач холбогдолтой хандалтыг өгөх хэрэгтэй. Үүнийг ихэвчлэн бусад машинуудын зөвхөн
унших NFS экспортыг хязгаарлагдмал хандалттай хайрцагт өгөх эсвэл ssh түлхүүр
хослолыг тохируулж хязгаарлагдмал хандалттай хайрцгийг бусад машинууд уруу ssh
хийхийг зөвшөөрөх замаар хийдэг. Өөрийн сүлжээний урсгалыг тооцохгүй юм бол NFS нь
хамгийн харагддаггүй арга юм — энэ нь клиент хайрцаг бүр дэх файлын
системүүдийг монитор хийхийг танд зөвшөөрч бараг л илэрдэггүй. Хэрэв таны
хязгаарлагдмал хандалттай сервер нь клиент хайрцагнууд уруу hub буюу салаалагч эсвэл
чиглүүлэлтийн хэд хэдэн давхаргаар дамжин холбогдсон бол NFS арга нь хэтэрхий
аюултай (сүлжээний хувьд) байж болох бөгөөд ssh-ийг ашиглах нь түүний гаргадаг
аудит мөрийн замуудтай байсан ч гэсэн магадгүй илүү сонголт байж болох юм.
Монитор хийгдэх клиент систем уруу хандахад хамгийн багаар бодоход унших эрхийг
та хязгаарлагдмал хандалттай хайрцагт өгсний дараа яг мониторыг хийхдээ скрипт бичих
хэрэгтэй. Өгөгдсөн NFS холболтод &man.find.1; болон &man.md5.1; зэрэг
энгийн системийн хэрэгслүүд ашиглан та скриптүүд бичиж болно. Клиент хайрцгийн
файлуудад өдөрт нэг удаа физикээр md5 хийж /etc болон
/usr/local/etc сангууд дахь хяналтын файлуудыг
бүр илүү давтамжтайгаар шалгаж байх нь зүйтэй юм. Хязгаарлагдмал хандалттай
машины зөв гэж тооцсон md5 мэдээлэлтэй харьцуулахад тарахгүй файлууд олдвол
сисадминд үүнийг очиж шалгахыг хашгиран мэдээлэх ёстой. Аюулгүй байдлын сайн
скрипт нь тохирохгүй suid хоёртын файлууд болон / болон
/usr зэрэг системийн хуваалтууд дээрх шинээр үүссэн
эсвэл устгагдсан файлуудыг бас шалгадаг.
NFS биш ssh-ийг ашиглаж байх үед аюулгүй байдлыг скрипт бичих нь бүр илүү хэцүү
байдаг. Та скриптүүдийг харагдуулж ажиллуулахын тулд тэдгээрийг клиент хайрцаг уруу үндсэндээ
scp хийх хэрэгтэй бөгөөд аюулгүй байдлаа бодох юм бол
та тэдгээр скриптүүдийн ашигладаг хоёртын файлуудыг (find гэх зэрэг) бас
scp хийх хэрэгтэй юм.
Клиент хайрцаг дээрх ssh клиент аль хэдийн
эвдэгдсэн байж болох юм. Аюултай холболтоор ажиллаж байгаа бол ssh-г ашиглах нь
шаардлагатай байж болох боловч бас түүнтэй ажиллахад бүр илүү хэцүү байдаг юм.
Аюулгүй байдлын сайн скрипт нь
.rhosts, .shosts,
.ssh/authorized_keys гэх зэрэг
MD5 шалгалтын хүрээний гадуур байх хэрэглэгч болон
staff-ийн гишүүдийн хандалтын тохиргооны файлууд дахь өөрчлөлтүүдийг бас
шалгадаг.
Хэрэв та асар их хэрэглэгчийн дискний зайтай бол тэдгээр хуваалтууд дээрх
файл бүр дээр ажиллахад хэт удаж болох юм. Энэ тохиолдолд suid хоёртын
файлууд болон төхөөрөмжүүдийг хаах холболтын тугуудыг зааж өгөх нь зүйтэй юм.
nodev болон nosuid
нь таны хайж байгаа тохируулгууд юм. Энэ давхаргын зорилго нь
эвдлэн оролтын оролдлогуудыг амжилттай эсвэл амжилтгүй болсноос үл хамааран
илрүүлэх явдал учраас ямар ч гэсэн ядаж долоо хоногт нэг удаа та тэдгээр файлуудыг
магадгүй шалгаж байх хэрэгтэй юм.
Процессийн бүртгэл хийх нь (&man.accton.8;-г үзнэ үү) эвдлэн оролтын
дараах үнэлэх арга замууд болон тусалж болох харьцангуй бага ачаалал бүхий
үйлдлийн системийн боломж юм. Энэ нь эвдлэн орсны дараа файлыг хөндөөгүй хэвээр
гэж үзэн халдагч систем уруу хэрхэн эвдлэн орсныг мөрдөхөд ялангуяа ашигтай
байдаг.
Эцэст нь аюулгүй байдлын скриптүүд нь бүртгэлийн файлуудыг процесс хийх ёстой
бөгөөд бүртгэлүүд өөрсдөө аль болох аюулгүй байдлаар үүсгэгдэх ёстой бөгөөд
алсын syslog нь их ашигтай байж болох юм. Халдагч өөрийн мөрийг арилгахыг
оролдох бөгөөд эхний эвдлэн оролтын арга болон хугацааг мөрдөхөд сисадмины хувьд
бүртгэлийн файлууд нь маш чухал байдаг юм. Бүртгэлийн файлуудын байнгын бичлэгийг
хадгалах нэг арга нь системийн консолыг сериал порт уруу ажиллуулж консолуудыг
хянаж аюулгүй машин дээр мэдээллийг цуглуулах явдал юм.
Параной буюу хэт зовнил
Бага зэргийн хэт зовнил буруудахгүй. Дүрэм болгож тав тухтай байдлыг
алдагдуулдаггүй дурын тооны аюулгүй байдлын боломжуудыг сисадмин нэмж болох бөгөөд
зарим анхаарлыг бодолцон тав тухтай байдалд нөлөөлөх
аюулгүй байдлын боломжуудыг бас нэмж болох юм. Бүр илүү чухал нь аюулгүй
байдлын администратор үүнийг бага зэрэг хольж хэрэглэж болно — хэрэв та энэ
баримтад дурдсан заавруудыг үгчлэн ашиглавал энэ баримтыг уншсан ирээдүйн халдагчид
та өөрийн арга замуудыг заан өгч байна гэсэн үг юм.
Үйлчилгээг Зогсоох Халдлагууд
Үйлчилгээг Зогсоох (DoS)
Энэ хэсэг нь Үйлчилгээг Зогсоох халдлагуудыг хамарна. DoS халдлага нь
ихэвчлэн пакетийн халдлага байдаг. Таны сүлжээг дүүргэж байгаа орчин үеийн
хууран мэхэлсэн пакетийн халдлагуудын эсрэг нэг их юм хийж чадахгүй ч гэсэн
халдлагууд таны серверүүдийг унагахгүйн тулд та ерөнхийдөө хохирлыг
хязгаарлаж болно:
Серверийн fork хийлтийг хязгаарлах.
Springboard буюу бусад халдлагуудыг хязгаарлах (ICMP хариу халдлагууд, ping
цацалт, гэх мэт.).
Цөмийн чиглүүлэлтийн кэшийг хэт ачаалах.
Нийтлэг DoS халдлагын дүр зураг бол fork хийгдэж байгаа серверт
халдаж түүнээр асар их хүүхэд процесс үүсгүүлж эцсийн эцэст хост системийн
хувьд санах ой, файлын тодорхойлогчууд гэх мэтүүд дуусч зогсоход
хүргэдэг. inetd (&man.inetd.8;-г
үзнэ үү) нь энэ төрлийн халдлагыг хязгаарлах хэд хэдэн тохируулгатай.
Машиныг зогсоохоос хамгаалах боломжтой боловч ерөнхийдөө үйлчилгээг
халдлагад өртүүлэхгүй байх боломжгүйг энд тэмдэглэх нь зүйтэй юм.
inetd гарын авлагын хуудсыг
анхааралтай уншиж , ,
болон тохируулгуудад ялангуяа анхаарлаа
хандуулаарай. Хууран мэхэлсэн IP халдлагууд нь
inetd дахь
тохируулгыг хуурах учраас ихэвчлэн тохируулгуудын
хослолыг ашиглах шаардлагатай. Зарим дан серверүүд өөрийн
fork хийгдэхийг хязгаарлах параметрүүдтэй байдаг.
Sendmail нь
тохируулгатай байдаг бөгөөд
энэ нь Sendmail-ийг ачаалал хязгаарлах тохируулгатай ажиллуулж ачааллын
хоцрогдол үүсгэснээс хавьгүй илүүтэйгээр ажилладаг. Та
Sendmail-г ажиллуулахдаа
хүссэн ачааллыг даахаар гэхдээ компьютерийг унагахаар их хэмжээний тоогоор
Sendmail-үүдийг ажиллуулах биш түүнээс
багаар MaxDaemonChildren параметрийг
хангалттай өндрөөр тавьж өгөх хэрэгтэй. Мөн sendmail-ийг дарааллын
горимоор () ажиллуулах
болон дэмонг (sendmail -bd) дараалалтай
(sendmail -q15m) ажиллуулдгаас тусад нь ажиллуулах нь
чухал юм. Хэрэв та шууд илгээх горимыг хүсэж байгаа бол та дарааллыг
зэргээр бүр бага интервалаар ажиллуулах боломжтой
боловч MaxDaemonChildren тохируулгыг боломжийн
утгаар хоорондоо холбоотой амжилтгүйтлүүдээс sendmail-ийг хамгаалахын
тулд зааж өгсөн эсэхээ шалгаарай.
Syslogd-д шууд халдаж болох учраас аль болох
тохируулгыг эсвэл тохируулгыг ашиглахыг
танд зөвлөдөг.
Шууд халдлага хийгдэж болох TCP Wrapper-ийн
буцах identd зэрэг буцан холбогддог үйлчилгээнүүдийн хувьд та маш хянамгай байх
хэрэгтэй. Ийм учраас та TCP Wrapper-ийн
буцах identd боломжийг ерөнхийдөө ашиглах хэрэггүй юм.
Та өөрийн захын чиглүүлэгчүүд дээрээ дотоод үйлчилгээнүүд уруугаа
гаднаас хандуулахгүй болгож галт ханаар хамгаалах нь зүйтэй юм.
Үүний цаадах санаа нь гаднаас ирж болзошгүй сүлжээ дүүргэх халдлагаас өөрийн LAN-г
хамгаалах явдал бөгөөд сүлжээн дээр тулгуурласан root
эрхийг буулгахаас дотоод үйлчилгээнүүдийг хамгаалах зүйлс тийм их биш юм.
exclusive буюу хамааруулаагүй галт ханыг үргэлж тохируулах хэрэгтэй, өөрөөр хэлбэл
A, B, C, D болон M-Z портуудаас бусад
бүгдийг галт ханаар хамгаалах хэрэгтэй
. Ингэснээр та
named (хэрэв та бүсийн хувьд анхдагч бол),
ntalkd,
sendmail болон бусад Интернэтээс хандах
үйлчилгээнүүд зэрэг зарим нэг тусгай үйлчилгээнүүдийн портуудаас бусад бүх бага
дугаарын портуудыг галт ханаар хамгаалж чадах юм. Хэрэв та галт ханыг өөр
аргаар — inclusive буюу хамааруулсан эсвэл зөвшөөрсөн галт хана маягаар
тохируулахыг оролдвол хэд хэдэн үйлчилгээнүүдийг хаахаа
мартаж магадгүй юм, эсвэл та шинэ дотоод үйлчилгээ нэмээд галт ханаа шинэчлэхээ
мартаж болох юм. Та галт хана дээр зөвшөөрсөнтэй адил үйлдлийг нэвтрүүлэхийн
тулд бага дугаарын портуудыг нээлгүйгээр өндөр дугаарын портуудыг онгойлгож
болох юм. Мөн &os; нь динамик холболтод хэрэглэгддэг портуудыг
sysctl-ийн төрөл бүрийн
net.inet.ip.portrange хувьсагчуудаар
(sysctl -a | fgrep portrange)
хянах боломжийг танд олгодгийг бас тэмдэглэх нь зүйтэй юм. Энэ нь бас таны
галт ханын тохиргооны төвөгтэй байдлыг амарчилдаг юм. Жишээ нь
та ердийн 4000-аас 5000 хүртэлх портууд болон 49152-оос 65535 хүртэлх
өндөр дугаарын портуудыг ашигладаг бол 4000-аас бага бүгдийг
өөрийн галт хана дээр хаах хэрэгтэй (мэдээж Интернэтээс ханддаг хэдэн тусгай портуудаас
бусад).
Өөр нийтлэг DoS халдлагуудын нэг нь springboard халдлага юм
— сервер, дотоод сүлжээ эсвэл бусад машиныг хариу үйлдэл хийхийг нь
ихэсгэж хэт ачаалахад хүргэдэг халдлага юм. Ийм маягийн хамгийн нийтлэг
халдлага нь ICMP ping broadcast буюу цацалт
юм. Халдагч таны LAN-ий цацах хаяг уруу илгээсэн ping пакетийнхаа
эхлэл IP хаягийг халдахыг хүсэж байгаа машиныхаа IP хаягаар сольж хуурдаг.
Хэрэв таны захын чиглүүлэгчүүд цацах хаяг уруу илгээх ping пакетуудыг
зогсоохоор тохируулагдаагүй бол таны LAN хангалттай хариу үүсгэн хууран мэхэлсэн
эхлэл хаяг уруу илгээж, ялангуяа халдагч хэдэн арван цацах хаягууд уруу өөр өөр
хэдэн арван сүлжээнүүдээр дамжин энэ башир аргаа ашигласан үед, хохирогчийг
дүүргэдэг. 120 мегабайтаас илүү хэмжээний цацах халдлага одоогоор
хэмжигдээд байна. Энэ төрлийн хоёр дахь нийтлэг халдлага нь ICMP-ийн алдаа
тайлагнах системийн эсрэг халдлага юм. ICMP алдааны мэдэгдэл үүсгэдэг
пакетуудыг бүтээж халдагч серверийн орж ирж байгаа сүлжээг дүүргэж ингэснээр
серверийг өөрийн гарах сүлжээг ICMP хариунуудаар дүүргэхэд хүргэдэг.
Энэ төрлийн халдлага нь ялангуяа хэрэв сервер үүсгэж байгаа ICMP хариунуудаа
хангалттай хурднаар шавхан гаргаж чадахгүй байгаа бол серверийг санах ойгүй болгож
сүйрүүлж бас болох юм. sysctl-ийн
net.inet.icmp.icmplim хувьсагчийг ашиглан
эдгээр халдлагуудыг хязгаарлах хэрэгтэй. Springboard төрлийн халдлагуудын
сүүлийн гол ангилал нь udp цуурай үйлчилгээ зэрэг зарим дотоод
inetd үйлчилгээнүүдтэй холбоотой юм.
Халдагч UDP пакетийг хууран мэхэлж A болон B сервер нь хоёулаа таны LAN-д байгаа
тийм A серверийн цуурай порт дээрх эхлэл хаягаар болон төгсгөл хаягийг B серверийн
цуурай порт дээрх хаягаар сольдог. Уг хоёр сервер дараа нь энэ ганц пакетийг
хоорондоо шидэлцдэг. Эдгээр серверүүд болон тэдгээрийн LAN-г энэ маягаар
халдагч хэдхэн пакетуудыг хатган оруулан хэт ачаалж чаддаг.
Үүнтэй адил асуудлууд дотоод chargen портод
бас байдаг. Чадварлаг сисадмин эдгээр бүх дотоод inetd тест үйлчилгээнүүдийг
хаадаг.
Хууран мэхэлсэн пакетийн халдлагуудыг цөмийн чиглүүлэлтийн кэшийг хэт ачаалахад
хэрэглэж болдог. net.inet.ip.rtexpire,
rtminexpire, болон rtmaxcache
sysctl параметрүүдийг үзнэ үү. Дурын эхлэл
IP хаягийг ашигласан хууран мэхэлсэн пакетийн халдлага нь чиглүүлэлтийн хүснэгтэд түр зуур
кэш хийгдсэн чиглүүлэлтийг цөмөөр үүсгүүлэхэд хүргэдэг бөгөөд энэ нь
netstat -rna | fgrep W3 тушаалаар харагддаг.
Эдгээр чиглүүлэлтүүд нь ихэвчлэн 1600 секунд орчим хугацааны дотор дуусдаг.
Хэрэв цөм кэш хийгдсэн чиглүүлэлтийн хүснэгт хэтэрхий том болсныг илрүүлэх юм бол
rtexpire динамикаар багасгадаг боловч
rtminexpire-с бага болтол хэзээ ч багасгадаггүй.
Хоёр асуудал байдаг:
Бага ачаалагдсан сервер гэнэт халдлагад өртөхөд цөм хангалттай хурдан
хариу үйлдэл хийдэггүй.
rtminexpire хувьсагч нь
үргэлжилсэн халдлагыг цөм дааж чадахаар хангалттай бага байдаггүй.
Хэрэв таны серверүүд Интернэтэд T3 эсвэл илүү хурдаар холбогдсон бол
&man.sysctl.8;-оор
rtexpire болон rtminexpire
хувьсагчуудыг хоёуланг гараар дарж бичихдээ хянамгай байх хэрэгтэй.
Аль ч параметрийг (машиныг сүйрүүлэхийг та хүсээгүй л бол) хэзээ ч битгий
0 болгоорой. Эдгээр параметрүүдийг хоёуланг нь 2 секунд болгох нь
чиглүүлэлтийн хүснэгтийг халдлагаас хамгаалахад хангалттай байх ёстой.
Kerberos болон SSH-тэй холбоотой хандалтын асуудлууд
ssh
KerberosIV
Хэрэв та Kerberos болон ssh-г хоёуланг ашиглахаар бол цөөн хэдэн асуудлуудыг
дурдах хэрэгтэй. Kerberos 5 нь жинхэнийг шалгах маш сайн нэвтрэлтийн протокол
боловч түүнийг ашигласан telnet болон
rlogin-д байдаг алдаанууд нь энэ хоёр програмыг
хоёртын урсгалтай ажиллахад тохиромжгүй болгодог. Мөн
тохируулгыг ашиглахгүй л бол анхдагчаар Kerberos нь сессийг шифрлэдэггүй.
ssh нь бүгдийг шифрлэдэг.
Ssh нь анхдагчаар шифрлэсэн түлхүүрүүдээ дамжуулдгаас бусад бүх л талаараа зэгсэн
сайн ажилладаг. Энэ нь юу гэсэн үг вэ гэхээр та хэрэв системийн бусад хэсэгт хандах боломж
олгодог түлхүүрүүд бүхий аюулгүй ажлын компьютертай бөгөөд та аюултай машин уруу ssh
хийвэл таны түлхүүрүүд ашиглагдах боломжтой гэсэн үг юм. Яг түлхүүрүүд нь өөрсдөө
ил гардаггүй боловч ssh нь таны нэвтэрсэн хугацааны туршид зориулж дамжуулах порт
суулгадаг бөгөөд хэрэв халдагч аюулгүй машин дээрх root-г
эвдсэн бол тэрхүү портыг таны түлхүүрүүдийг ашиглахын тулд хэрэглэн таны түлхүүрээр
тайлагдах өөр бусад машинуудад хандах боломжийг олж авах боломжтой юм.
Бид staff нэвтрэлтүүдийн хувьд аль болох ssh-г Kerberos-той цуг ашиглахыг
зөвлөдөг. Ssh нь Kerberos-ийн дэмжлэгтэй
эмхэтгэгдэж болдог. Энэ нь ил гарсан байж болзошгүй ssh түлхүүрүүдэд
найдах таны найдварыг багасгахын хамт нууц үгүүдийг Kerberos-оор хамгаалдаг.
Ssh түлхүүрүүд нь аюулгүй машинуудын автоматчилагдсан ажлуудад (Kerberos-оор
хийхэд таарахгүй) зөвхөн хэрэглэгдэх ёстой. Мөн бид таныг ssh-ийн тохиргоондоо
key-forwarding буюу түлхүүр дамжуулалтыг болиулах эсвэл ssh-ийн
authorized_keys файлдаа зөвхөн тусгайлсан
машинуудаас нэвтрэхэд түлхүүрийг ашиглаж болохоор болгож зөвшөөрдөг
from=IP/DOMAIN тохируулгыг ашиглахыг зөвлөдөг.
Билл
Свингл
Хэсгүүдийг дахин бичиж шинэчилсэн
DES, MD5, болон Crypt
аюулгүй байдал
crypt
crypt
DES
MD5
&unix; систем дээрх хэрэглэгч бүрийн хувьд нууц үг бүртгэлтэй нь холбоотой
байдаг. Мэдээж эдгээр нууц үгүүд нь зөвхөн хэрэглэгч ба үйлдлийн системд
мэдэгдэж байх ёстой. Эдгээр нууц үгүүдийг нууцлаг байлгахын тулд тэдгээрийг
one-way hash буюу үл буцах хэш
гэгддэг шифрлэхэд амархан
боловч буцааж болдоггүй аргаар шифрлэдэг. Өөрөөр хэлбэл хормын өмнө
мэдээж гэж хэлсэн бидний хэлсэн үг яг жинхэнэдээ үнэн биш юм: үйлдлийн систем
өөрөө нууц үгийг жинхэнэдээ мэддэггүй.
Энэ нь зөвхөн нууц үгийн шифрлэсэн хэлбэрийг
мэддэг. plain-text буюу ердийн уншигдах текст
хэлбэрийн нууц үгийг авах цорын ганц арга нь боломжит нууц үгүүдийн орон зайгаас
балмадаар хүчлэн хайх явдал юм.
Харамсалтай нь &unix; бий болсон тэр үед нууц үгийг аюулгүй аргаар
шифрлэх цорын ганц арга нь DES, Data Encryption Standard буюу
Өгөгдөл Шифрлэх Стандарт дээр үндэслэсэн байлаа. Энэ нь АНУ-д оршин
сууж байсан хэрэглэгчдийн хувьд тийм ч асуудалтай биш байсан юм, гэхдээ
DES-ийн эх код АНУ-аас гадагшаа экспорт хийгдэж болохгүй байсан
учир &os; нь АНУ-ын хуулийг дагахын хажуугаар DES-ийг ашигласан хэвээр
байсан бусад бүх &unix; төрлүүдтэй нийцтэй байх арга замыг хайж олоход
хүрсэн юм.
Үүний шийдэл нь АНУ-ын хэрэглэгчид DES сангуудыг суулгаж ашиглах боломжтой
мөртлөө олон улсын хэрэглэгчид гадагш экспорт хийгдэж болох шифрлэх аргатай бас
байхаар шифрийн сангуудыг хуваасан явдал байлаа. Ингэж &os; нь
MD5-ийг өөрийн анхдагч шифрлэх аргаа болгон ашиглах болсон юм. MD5 нь
DES-ээс илүү аюулгүй нууцлаг гэгддэг бөгөөд DES-ийг суулгах нь үндсэндээ
нийцтэй байх шалтгаануудын улмаас зориулагдсан юм.
Өөрийн Crypt арга замыг таних нь
Одоогоор шифрийн сан DES, MD5 болон Blowfish хэш функцуудыг дэмждэг.
Анхдагчаар &os; нь MD5 ашиглан нууц үгүүдийг шифрлэдэг.
&os; аль шифрлэх аргыг тохируулж ашиглаж байгааг мэдэх хялбар байдаг.
/etc/master.passwd файл дахь шифрлэсэн
нууц үгийг шалгах нь нэг арга юм. MD5 хэшээр шифрлэгдсэн нууц үгүүд нь
DES-р шифрлэгдсэнийгээ бодох юм бол урт бөгөөд $1$
тэмдэгтээр бас эхэлдэг. $2a$
тэмдэгтээр эхэлсэн нууц үгүүд Blowfish хэш функцаар шифрлэгдсэн байдаг.
DES мөр нь ямар нэг тусгайлан таньж болох шинж тэмдэггүй байдаг боловч
тэд MD5 нууц үгүүдээс богино бөгөөд $
тэмдэгт ордоггүй 64 тэмдэгттэй цагаан толгойгоор кодчилогддог, тиймээс
долларын тэмдэгтээр эхлээгүй харьцангуй богино мөр ихэвчлэн DES нууц үг
байдаг.
Шинэ нууц үгүүдэд ашиглагдах нууц үгийн хэлбэр нь нэвтрэлтийн
passwd_format боломжийн тусламжтай
/etc/login.conf файлд хянагддаг бөгөөд
энэ хувьсагч нь des, md5
эсвэл blf утгуудыг авдаг. Нэвтрэлтийн
боломжуудын талаар дэлгэрэнгүй мэдээллийг &man.login.conf.5;
гарын авлагын хуудаснаас үзнэ үү.
Нэг удаагийн нууц үгүүд
нэг удаагийн нууц үгүүд
аюулгүй байдал
нэг удаагийн нууц үгүүд
Анхдагчаар &os; OPIE (One-time Passwords
In Everything буюу Бүхэнд зориулсан нэг удаагийн нууц үгүүд) дэмжлэгтэй
байдаг бөгөөд энэ нь MD5 хэшийг анхдагчаар ашигладаг.
Бид гурван өөр төрлийн нууц үгийг доор хэлэлцэх болно. Эхнийх нь таны ердийн
&unix; загварын эсвэл Kerberos нууц үг юм; бид үүнийг &unix; нууц үг
гэж нэрлэх болно. Хоёр дахь төрөл нь OPIE &man.opiekey.1; програмаар
үүсгэгдэж &man.opiepasswd.1; програм болон нэвтрэлт хүлээх мөр хүлээн авах
нэг удаагийн нууц үг юм; бид үүнийг нэг удаагийн нууц үг
гэх болно.
Сүүлийн төрөл нууц үг бол opiekey програмд
(заримдаа opiepasswd програмууд) өгдөг
нууцлаг нууц үг бөгөөд үүнийг ашиглан дээрх програмууд нэг удаагийн нууц үг
үүсгэдэг; бид үүнийг нууцлаг нууц үг
гэх буюу эсвэл
зүгээр л шалгагдаагүй нууц үг
гэх болно.
Нууцлаг нууц үг нь таны &unix; нууц үгтэй ямар ч холбоогүй юм; тэдгээр нь
адил байж болох боловч ингэхийг зөвлөдөггүй. OPIE нууцлаг нууц үгүүд нь
хуучин &unix; нууц үгүүд шиг 8 тэмдэгтэд хязгаарлагддаггүй
&os; дээр стандарт нэвтрэх нууц үг уртаараа 128 тэмдэгт
хүртэл байж болдог. бөгөөд таны хүссэн хэмжээний
урттай байж болдог. Зургаа эсвэл долоон үг бүхий өгүүлбэрээс тогтох нууц үгүүд
нэлээн элбэг байдаг. Ихэнх хэсгийн хувьд OPIE систем &unix;-ийн нууц үгийн
системээс бүр мөсөн ангид ажилладаг.
Нууц үгээс гадна OPIE-д чухал өгөгдлийн өөр хоёр хэсэг байдаг. Нэг нь
seed буюу үр
эсвэл key буюу түлхүүр
гэгддэг
бөгөөд 2 үсэг болон таван тооноос тогтдог. Нөгөөдөх нь давталтын тоо
буюу 1-ээс 100 хүртэлх тоо юм. OPIE нэг удаагийн нууц үгийг үр болон нууцлаг
нууц үгийг нийлүүлэн MD5 хэшийг давталтын тоогоор ашиглан үүсгэж үр дүнг нь
зургаан богино Англи үг болгодог. Эдгээр зургаан Англи үг нь таны нэг удаагийн нууц
үг юм. Нэвтрэлт шалгах систем (үндсэндээ PAM) ашигласан хамгийн сүүлийн нэг удаагийн
нууц үгийг хадгалж байдаг бөгөөд хэрэглэгчийн өгсөн нууц үгийн хэш өмнөх нууц үгтэй таарч
байвал хэрэглэгчийг нэвтрүүлдэг. Үл буцах хэш ашиглагддаг болохоор хэрэв
амжилттайгаар ашиглагдсан нууц үгийг олж авсан бол дараа дараагийн нэг удаагийн
нууц үгүүдийг үүсгэх боломжгүй байдаг; хэрэглэгч болон нэвтрэлтийн програмыг хамгийн
сүүлийн хэлбэрт адилхан байлгаж байхын тулд давталтын тоо амжилттай нэвтрэлт хийгдэх бүрийн
дараа багасаж байдаг. Давталтын тоо 1 хүрэх үед OPIE дахин хийгдэх
хэрэгтэй болно.
Систем болгоны хувьд хэдэн програмууд байдаг бөгөөд тэдгээрийг бид энд
хэлэлцэх болно. opiekey програм давталтын
тоо, үр болон нууцлаг нууц үгийг хүлээн авч нэг удаагийн нууц үг эсвэл
нэг удаагийн нууц үгүүдийн үргэлжилсэн жагсаалтыг үүсгэдэг.
opiepasswd програмыг OPIE-г эхлүүлэх болон
нууц үг, давталтын тоо эсвэл үр өөрчлөхөд ашигладаг; энэ нь
нууцлаг нэвтрэх үгс аль эсвэл давталтын тоо, үр болон нэг удаагийн нууц үгийг
авдаг. opieinfo програм тохирох итгэмжлэлүүдийн
файлуудыг (/etc/opiekeys) шалгаж
ажиллуулсан хэрэглэгчийн одоогийн давталтын тоо болон үрийг дэлгэцэд
гаргадаг.
Бид дөрвөн өөр төрлийн үйлдлийн талаар хэлэлцэх болно. Эхнийх нь аюулгүй
холболтоор opiepasswd ашиглаж нэг удаагийн нууц үгүүдийг
эхний удаа тохируулах эсвэл өөрийн нууц үг эсвэл үрийг өөрчлөх үйлдэл юм.
Хоёр дахь үйлдэл нь opiepasswd-г аюултай холболтоор,
opiekey тушаалыг аюулгүй холболтоор ашиглаж
адил үйлдлийг хийх явдал юм. Гурав дахь нь opiekey-г
аюултай холболтоор ашиглан нэвтрэн орох үйлдэл юм. Дөрөв дэх нь
opiekey-г ашиглан хэд хэдэн түлхүүрүүд үүсгэх үйлдэл
бөгөөд гадагшаа аюулгүй холболтуудгүй газрууд уруу явахдаа тэдгээр түлхүүрүүдийг бичин авч
эсвэл хэвлэн аваад өөртөө авч явж болох юм.
Аюулгүй холболт эхлүүлэх
OPIE-г эхний удаа эхлүүлэхдээ opiepasswd
тушаалыг ажиллуул:
&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
Enter new secret pass phrase: эсвэл
Enter secret password: мөрүүд дээр та
нууц үг эсвэл өгүүлбэр оруулах ёстой. Энэ нь таны нэвтрэхдээ ашиглах
нууц үг биш гэдгийг санах хэрэгтэй, үүнийг ашиглаж таны нэг удаагийн
нэвтрэх түлхүүрийг үүсгэдэг. ID
мөр таны
тухайн үеийн параметрүүд болох таны нэвтрэх нэр, давталтын тоо болон
үрийг өгдөг. Нэвтрэн орох үед систем эдгээр параметрүүдийг санаж
танд тэдгээрийг санах шаардлагагүйгээр буцаан үзүүлдэг. Сүүлийн мөр нь
тэдгээр параметрүүд болон таны нууцлаг нууц үгт харгалзах нэг удаагийн
нууц үгийг өгдөг; хэрэв та нэн даруй дахин нэвтэрвэл энэ нэг удаагийн нууц үг
нь таны ашиглах тэр нууц үг юм.
Аюултай холболт эхлүүлэх
Өөрийн нууцлаг нууц үгийг аюултай холболтоор эхэлж өгөхдөө эсвэл
өөрчлөхдөө opiekey ажиллуулж болох тийм газар уруу
аюулгүй холболттой байж байх шаардлагатай; энэ нь таны итгэж байгаа машин
дээр бүрхүүлийн тушаал хүлээх мөр хэлбэрээр байж болно. Та бас давталтын тоог
(100 боломжийн утга байж болох юм) бодож өгөх хэрэгтэй бөгөөд та өөрөө үр
бодож олох эсвэл дурын үүсгэснийг ашиглах хэрэгтэй. Аюултай холболтоор
(таны эхлүүлж байгаа машин уруу) opiepasswd
тушаалыг ашигла:
&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Анхдагч үрийг хүлээж авах бол Return дар.
Дараа нь хандах нууц үгийг оруулахын өмнө аюулгүй холболт уруугаа
орж адил параметрүүдийг өгөөрэй:
&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Одоо аюултай холболт уруугаа шилжиж үүсгэсэн нэг удаагийн нууц үгээ
тохирох програм уруу хуулаарай.
Нэг удаагийн нууц үг ганцыг үүсгэх нь
OPIE-г эхлүүлэн тохируулж нэвтэрсний дараа танд иймэрхүү тушаал
хүлээх мөр харуулагдана:
&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password:
Энэ дашрамд тэмдэглэн хэлэхэд OPIE тушаал хүлээх мөрүүд ашигтай боломжтой
байдаг: хэрэв та нууц үг хүлээх мөр дээр Return
дарвал хүлээх мөр цуурайг идэвхжүүлж таны юу бичиж байгааг танд харуулдаг.
Та хэвлэсэн зүйлээсээ харж магадгүй нууц үгийг гараараа бичиж оруулахыг
оролдож байгаа бол энэ маш ашигтай байж болох юм.
MS-DOS
Windows
MacOS
Энэ үед нэвтрэлт хүлээх мөрөнд хариулахын тулд та өөрийн нэг удаагийн нууц үгийг
үүсгэх хэрэгтэй болно. Үүнийг opiekey тушаал итгэн ажиллуулж
чадах тийм систем дээрээ хийх хэрэгтэй. (DOS, &windows; болон &macos;-д
зориулсан эдгээрийн хувилбарууд байдаг) Эдгээрт давталтын тоо болон үр тушаалын
мөрийн тохируулга хэлбэрээр хэрэгтэй байдаг. Та нэвтрэн орж байгаа машиныхаа
нэвтрэлт хүлээх мөрөөс эдгээрийг шууд хуулан тавьж болох юм.
Итгэсэн систем дээрээ:
&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Одоо та өөрийн нэг удаагийн нууц үгтэй болсон болохоор нэвтрэлтээ
үргэлжлүүлж болно.
Нэг удаагийн нууц үг олныг үүсгэх нь
Заримдаа та итгэсэн машин эсвэл аюулгүй холболт уруу хандах боломжгүй
тийм газар очих хэрэгтэй болдог. Энэ тохиолдолд opiekey
тушаал ашиглаж хэд хэдэн нэг удаагийн нууц үгүүдийг урьдчилан үүсгэж хэвлэн
биедээ авч явах боломжтой юм. Жишээ нь:
&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <secret password>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHI
нь дараалсан таван түлхүүрийг үүсгэхийг,
нь сүүлийн давталтын тоог хэд байх ёстойг зааж өгч
байгаа юм. Эдгээр нь ашиглах бололцоотойг урвуу
дарааллаар дэлгэцэнд харуулдгийг тэмдэглэх нь зүйтэй. Хэрэв та хэт санаа
зовниж байгаа бол та үр дүнг гараар бичиж авахыг хүсэж болох юм;
эсвэл lpr уруу хуулан авч тавьж болох юм. Мөр бүр
давталтын тоо болон нэг удаагийн нууц үгийг харуулж байгааг анхаараарай;
та нууц үгүүдийг хэрэглэх бүртээ тэдгээрийг арилгаж энэ хэвлэсэн арга тань ашигтай
хэвээр болохыг мэдэж болох юм.
&unix; нууц үгүүдийг ашиглахыг хязгаарлах нь
OPIE нь &unix; нууц үгүүдийн ашиглалтыг нэвтрэлтийн сессийн IP хаяг дээр тулгуурлан
хязгаарлаж чаддаг. Тохирох файл нь /etc/opieaccess
бөгөөд энэ файл нь анхдагчаар байдаг. Энэ файлын талаар болон
үүнийг ашигласнаар та аюулгүй байдлын ямар зүйлсүүдийг бодолцож анхаарах ёстой талаар
дэлгэрэнгүй мэдээллийг &man.opieaccess.5;-с шалгана уу.
Энд жишээ opieaccess файл байна:
permit 192.168.0.0 255.255.0.0
Энэ мөр нь &unix; нууц үгүүдийг ямар ч үед ашиглахын тулд эхлэл IP хаягийг
(хууран мэхлэхэд хүрч болох тийм эмзэг) заагдсан утга болон багтай тааруулах
боломжийг хэрэглэгчдэд олгодог.
opieaccess дахь аль ч дүрэм таарахгүй байгаа
бол анхдагчаар OPIE биш нэвтрэлтүүдийг хааж үгүйсгэдэг.
Том
Рөүдс
Бичсэн:
TCP Гүйцэтгэлийг хялбаршуулагчид
TCP Гүйцэтгэлийг хялбаршуулагчид
&man.inetd.8;-г мэддэг хэн бүхэн TCP Гүйцэтгэлийг хялбаршуулагчдын
талаар заримдаа сонссон байх. Гэхдээ цөөн хүмүүс энэ боломжийн
сүлжээний орчин дахь ашигтай талыг бүрэн ойлгодог юм шиг санагддаг.
Хүн бүхэн сүлжээний холболтууд зохицуулах галт хана суулгахыг хүсдэг
юм шиг санагддаг. Галт хана олон төрлийн хэрэглээтэй боловч
холболт үүсгэгч уруу текст илгээх зэрэг зарим зүйлсийг галт хана хийж
чаддаггүй. Энд дурдсан TCP програм энэ мэтийг болон
үүнээс илүүг хийдэг. Дараагийн хэдэн хэсэгт TCP Гүйцэтгэлийг хялбаршуулагчдын
олон боломжуудыг хэлэлцэх бөгөөд боломжтой үед нь жишээ тохиргооны
мөрийг үзүүлэх болно.
TCP Гүйцэтгэлийг хялбаршуулагчид програм хангамж нь
inetd-ийн чадваруудыг сервер бүрийн
хувьд түүний доор хянагдаж болохоор дэмжин өргөтгөдөг. Энэ аргыг ашиглан
бүртгэл хөтлөх дэмжлэг нэмэх, холболтууд уруу мэдэгдэл буцаах, дэмонд
зөвхөн дотоод холболтуудыг хүлээн авахыг зөвшөөрөх гэх мэт үйлдлүүдийг
хийх боломжтой. Эдгээр боломжуудын заримыг галт хана суулган тохируулж хийж
болох боловч энэ нь зөвхөн хамгаалалтын нэмэлт давхарга болохоос гадна
галт ханын үзүүлж чаддагаас илүү хяналтыг олгодог юм.
TCP Гүйцэтгэлийг хялбаршуулагчдын ийнхүү нэмэгдсэн
ажиллагаа нь сайн галт ханыг солихоор зүйл гэж ойлгогдох ёсгүй юм.
TCP Гүйцэтгэлийг хялбаршуулагчид нь галт хана
эсвэл өөр бусад аюулгүй байдлыг нэмэгдүүлэгч програмуудын хамтаар
ашиглагдаж системийн хувьд хамгаалалтын нэмэлт давхарга болон аятайхан
үйлчлэх боломжтой юм.
Энэ нь inetd-ийн тохиргооны өргөтгөл болохоор
энэхүү баримтыг уншигч таныг inetd тохиргоо
хэсгийг уншсан гэдэгт найдаж байна.
&man.inetd.8;-ээр ажиллуулагдсан програмууд яг жинхэнээрээ
дэмонууд
биш боловч тэдгээрийг уламжлалаар дэмонууд гэдэг.
Энэ ухагдахууныг бид энэ хэсэгт бас ашиглах болно.
Эхний тохиргоо
TCP Гүйцэтгэлийг хялбаршуулагчдыг &os;-д
ашиглахад байх цорын ганц шаардлага нь inetd серверийг
rc.conf файлаас
тохируулгатай ажиллуулсан эсэхийг шалгах явдал юм; энэ нь анхдагч тохиргоо
юм. Мэдээж /etc/hosts.allow файлын
зөв тохиргоо бас байгааг хүлээж байдаг боловч эдгээр тохиолдлуудад
&man.syslogd.8; системийн бүртгэлүүдэд мэдэгдлүүд шиддэг.
Бусад TCP Гүйцэтгэлийг хялбаршуулагчдын
шийдлүүдтэй харьцуулах юм бол hosts.deny
файлыг хэрэглэхээ больсон. Тохиргооны бүх сонголтууд
/etc/hosts.allow файлд байх шаардлагатай.
Хамгийн амархан тохиргоогоороо бол дэмоны холболтын бодлогууд
зөвшөөрөгдсөн эсвэл хаагдсаны аль нэгээр /etc/hosts.allow
файл дахь тохируулгуудаас хамааран тохируулагддаг. &os; дээрх анхдагч
тохиргоо нь inetd-ээр эхэлсэн дэмон бүр уруу хийгдэх
холболтыг зөвшөөрдөг. Үүнийг өөрчлөх талаар зөвхөн үндсэн тохиргооны тухай
дурдсаны дараа хэлэлцэх болно.
Үндсэн тохиргоо ихэвчлэн дэмон : хаяг : үйлдэл
хэлбэрийг авдаг. Энд байгаа дэмон нь
inetd-ийн эхлүүлсэн дэмоны нэр юм.
Хаяг нь зөв хостын нэр, address
хаяг эсвэл дөрвөлжин хаалтан ([ ]) доторх IPv6 хаяг байж болно.
Үйлдэл талбар нь allow буюу зөвшөөрөх эсвэл deny буюу эрхийг хориглох эсвэл
хандалтыг хаахын аль нэг байна. Тохиргоо эхний тохирсон дүрэм журмын дагуу ажилладаг гэдгийг
санах хэрэгтэй, энэ нь тохирох дүрмийг тохиргооны файлаас өсөх дарааллаар
хайна гэсэн үг юм. Тохирох дүрэм олдвол тэр дүрэм ашиглагдаж хайх
процесс зогсоно.
Бусад хэд хэдэн тохируулгууд байдаг боловч тэдгээрийг энэ хэсгийн сүүлд
тайлбарлах болно. Хялбар тохиргооны мөр ганцхан тэр мэдээллийн дагуу амархнаар
хийгдэж болно. Жишээ нь
mail/qpopper дэмоноор дамжин
хийгдэж болох POP3 холболтуудыг зөвшөөрөхийн тулд
дараах мөрүүд hosts.allow файлд нэмж хийгдэх
хэрэгтэй:
# This line is required for POP3 connections:
qpopper : ALL : allow
Энэ мөрийн нэмснийхээ дараа inetd-г дахин эхлүүлэх
хэрэгтэй. Үүнийг &man.kill.1; тушаал эсвэл /etc/rc.d/inetd-г
restart параметртай ашиглан хийж болно.
Дэвшилтэт тохиргоо
TCP Гүйцэтгэлийг хялбаршуулагчид нь бас дэвшилтэт
тохируулгуудтай байдаг; тэдгээр нь холболтуудтай хэрхэн ажиллахыг илүүтэйгээр
хянах боломжийг олгодог. Зарим тохиолдолд тодорхой хостууд эсвэл дэмон
холболтууд уруу тайлбар буцаах нь зүйтэй санаа байж болох юм. Бусад
тохиолдолд магадгүй бүртгэлийн файл бичигдэх ёстой эсвэл цахим захидал
администратор уруу илгээгдэж болох юм. Бусад тохиолдлууд үйлчилгээг зөвхөн
дотоод холболтууддаа ашиглахыг шаардаж болох юм. Эдгээр нь бүгдээрээ
орлуулагддаг тэмдэгтүүд, өргөтгөх тэмдэгтүүд болон
гадаад тушаалыг ажиллуулах зэрэг тохиргооны сонголтуудын тусламжтай хийгдэх
боломжтой юм. Дараагийн хоёр хэсэгт эдгээр тохиолдлуудын талаар бичсэн
байгаа.
Гадаад тушаалууд
Холболтыг хааж түүнийг тогтоохыг оролдсон хүн уруу шалтгааныг нь
илгээх тохиолдол гарчээ гэж бодъё. Үүнийг яаж хийх вэ? Энэ үйлдлийг
тохируулга ашиглан хийх боломжтой.
Холболт тогтоохоор оролдоход тохируулга
бүрхүүлийн тушаал эсвэл скрипт ажилуулахаар дуудагддаг.
hosts.allow файлд үүний жишээ аль хэдийн
орсон байдаг:
# The rest of the daemons are protected.
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."
Энэ жишээ нь You are not allowed to use daemon
from hostname.
буюу
Та дэмоныг hostname-с
ашиглах зөвшөөрөлгүй.
гэсэн мэдэгдлийг хандалтын файлд урьдаар
тохируулагдаагүй дэмон бүрийн хувьд буцаадаг. Энэ нь тогтоогдсон холболт дөнгөж
салсны дараа холболтыг эхлүүлэгч уруу хариултыг буцааж илгээхэд маш их ашигтай
байдаг. Буцсан мэдэгдэл бүр " тэмдэгтүүд дотор
заавал байх шаардлагатай; энэ дүрмэнд ямар нэг
жич зөвшөөрөл байхгүй.
Хэрэв халдагч эсвэл бүлэг халдагчид эдгээр дэмонуудыг холболт хийх
хүсэлтээр цутгаж чадах юм бол серверийн эсрэг үйлчилгээг зогсоох халдлага явуулах
боломжтой байж болох юм.
Өөр нэг боломж нь эдгээр тохиолдлуудад
тохируулгыг ашиглах явдал юм. тохируулгын
нэгэн адил тохируулга нь холболтуудыг сохроор
хааж гадаад бүрхүүлийн тушаалууд эсвэл скриптүүдийг ажиллуулахад ашиглагдаж
болно. тохируулгаас ялгаатай тал нь
нь холболт тогтоосон хүн уруу хариулт буцааж
илгээдэггүй. Жишээ нь дараах тохиргооны мөр байжээ гэж бодъё:
# We do not allow connections from example.com:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: deny
Энэ нь *.example.com домэйноос
ирсэн бүх холболтын оролдлогуудаас татгалзахын зэрэгцээ хостын нэр, IP
хаяг болон тэдний хандалт хийхийг оролдсон дэмонг /var/log/connections.log
файл уруу бүртгэнэ.
Дээр тайлбарласан орлуулах тэмдэгтүүдээс гадна, өөрөөр хэлбэл
%a тэмдэгтээс гадна бусад цөөн хэдэн тэмдэгтүүд бас байдаг. Бүрэн жагсаалтыг
&man.hosts.access.5; гарын авлагын хуудаснаас үзнэ үү.
Орлуулагддаг тэмдэгтүүдийн тохиргоонууд
Энэ хүртэл ALL жишээ бүх л жишээнүүдэд
ашиглагдлаа. Ажиллагааг арай цаашлуулж өргөтгөх бусад тохируулгууд
байдаг. Жишээ нь ALL нь дэмон, домэйн эсвэл
IP хаягийн аль нэгтэй тааруулах зорилгоор
ашиглагдаж болох юм. Өөр нэг орлуулагддаг тэмдэгт нь
IP хаягаа өөрчлөн хуурсан байж болох дурын хостыг
тааруулах PARANOID тохируулга юм. Өөрөөр хэлбэл
paranoid буюу хэт зовнил нь
өөрийн хостын нэрээс өөр IP хаягтай машинаас
холболт хийгдэх бүр түүнд тохирох үйлдлийг тодорхойлоход ашиглагдаж
болох юм. Дараах жишээ энэ хэлэлцүүлэгт арай илүү ойлголт өгч магадгүй
юм:
# Block possibly spoofed requests to sendmail:
sendmail : PARANOID : deny
Энэ жишээн дээр sendmail уруу хийгдэж байгаа
өөрийнхөө хостын нэрээс өөр IP хаягтай холболтын бүх
хүсэлтүүдээс татгалзан хааж байна.
Хэрэв клиент эсвэл сервер эвдэрхий DNS
суулгацтай бол PARANOID-ийг ашиглах нь серверүүдийг
ноцтойгоор зэрэмдэг болгож болох юм. Иймд администраторын зохион байгуулалт
болон хуваарилалт хийхийг зөвлөж байна.
Орлуулагддаг тэмдэгтүүдийн талаар болон тэдэнтэй холбоотой ажиллагааны
талаар дэлгэрэнгүйг &man.hosts.access.5; гарын авлагын хуудаснаас
үзээрэй.
Тусгай тохиргооны аль ч мөрүүдийн өмнө дээрх нь ажиллана, эхний тохиргооны
мөр hosts.allow файлд тайлбар болгон хаагдах
шаардлагатай. Үүнийг энэ хэсгийн эхэнд тэмдэглэж хэлсэн байгаа.
Марк
Мюррей
Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан
Марк
Дэйпоз
Хувь нэмэр болгон оруулсан
KerberosIV
Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн
тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм.
Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон
бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж
болохоор болсон.
Дараах заавруудыг &os;-тэй цуг түгээгддэг Kerberos-ийг хэрхэн тохируулах гарын авлага
болгон хэрэглэж болох юм. Гэхдээ та бүрэн тайлбарын талаар харгалзах гарын авлагын
хуудаснуудад хандаж үзэх шаардлагатай.
KerberosIV суулгах нь
MIT
KerberosIV
суулгах нь
Kerberos нь &os;-ийн нэмэлт бүрэлдэхүүн хэсэг юм. Энэ програм хангамжийг
суулгах хамгийн амархан арга нь &os; эхэлж суулгах үед sysinstall-д
krb4 эсвэл krb5 түгээлтийг сонгон
суулгах явдал юм. Энэ нь Kerberos-ийн eBones
(KerberosIV)
эсвэл Heimdal
(Kerberos5) шийдлүүдийг суулгах болно.
Эдгээр нь АНУ/Канадаас гадна хөгжүүлэгдсэн учраас АНУ-ын криптограф
код дээрх экспортын хязгаарлагдмал хяналтын үед бусад улсуудын системийн эзэмшигчдэд
ашиглагдах боломжтой болсон юм. Иймээс эдгээр шийдлүүд нь орсон байдаг.
Үүнээс гадна Kerberos-ийн MIT шийдэл портуудын цуглуулгын
security/krb5 санд байдаг.
Эхний мэдээллийн бааз үүсгэх
Энэ нь Kerberos сервер дээр зөвхөн хийгддэг. Эхлээд хуучин Kerberos мэдээллийн
баазууд байгаа эсэхийг шалгаарай. Та /etc/kerberosIV сан
уруу орж зөвхөн дараах файлууд байгааг шалгаарай:
&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realms
Хэрэв аль нэг нэмэлт файлууд (principal.*
эсвэл master_key зэрэг) байвал
kdb_destroy тушаал ашиглаж хуучин Kerberos мэдээллийн
баазыг устгах эсвэл хэрэв Kerberos ажиллахгүй байгаа бол ердөө л нэмэлт файлуудыг
устгах хэрэгтэй.
Та одоо өөрийн Kerberos хүрээг (realm) зааж өгөхдөө krb.conf
болон krb.realms файлуудыг засварлах шаардлагатай.
Энэ тохиолдолд хүрээ нь EXAMPLE.COM болох бөгөөд
сервер нь grunt.example.com болох юм.
Бид krb.conf файлыг засварлаж эсвэл
үүсгэнэ:
&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.gov
Энэ тохиолдолд бусад хүрээнүүд тэнд байх хэрэггүй. Тэдгээр нь энд машиныг хэрхэн
олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод
та тэдгээрийг оруулахгүйг хүсэж болох юм.
Эхний мөр нь систем ажиллах хүрээг нэрлэж байна. Бусад мөрүүд нь хүрээ/хост
оруулгуудыг агуулна. Мөр дэх эхнийх нь хүрээ бөгөөд хоёр дахь нь
түлхүүр түгээх төв
болж байгаа хүрээн дэх хост юм.
Хостын нэрийн дараах admin server нь хост бас
удирдах мэдээллийн баазаар хангаж байна гэсэн үг юм. Эдгээр ухагдахуунуудын
тайлбаруудын талаар Kerberos-ийн гарын авлагын хуудаснуудаас зөвлөгөө
авна уу.
Одоо бид grunt.example.com-г
EXAMPLE.COM хүрээ уруу нэмэх ёстой бөгөөд
бас EXAMPLE.COM хүрээний
.example.com домэйн дэх бүх
хостуудыг оруулан нэмж өгөх хэрэгтэй. krb.realms
файл дараах байдлаар шинэчлэгдэх болно:
&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDU
Дахин хэлэхэд бусад хүрээнүүд тэнд байх шаардлагагүй. Тэдгээр нь энд машиныг хэрхэн
олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод
та тэдгээрийг оруулахгүйг хүсэж болох юм.
Эхний мөр нь тусгай системийг нэрлэгдсэн
хүрээ уруу оруулж байна. Бусад мөрүүд нэрлэгдсэн хүрээнд тухайн дэд домэйны
системүүдийг хэрхэн анхдагчаар болгож байгааг харуулна.
Одоо бид мэдээллийн сан үүсгэхэд бэлэн боллоо. Энэ нь зөвхөн
Kerberos сервер (эсвэл Түлхүүр Түгээх Төв) дээр ажиллах ёстой.
kdb_init тушаал ажиллуулж үүнийг хийнэ:
&prompt.root; kdb_init
Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:
Одоо бид локал машин дээрх серверүүд авч болгохоор болгохын тулд түлхүүрийг
хадгалах хэрэгтэй. kstash тушаал ашиглаж үүнийг
хийнэ:
&prompt.root; kstash
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Энэ нь шифрлэгдсэн мастер нууц үгийг
/etc/kerberosIV/master_key-д хадгална.
Бүгдийг ажиллахаар болгох
KerberosIV
эхний эхлүүлэлт
Kerberos-оор аюулгүй болгогдох систем бүрийн
хувьд хоёр удирдагч мэдээллийн баазад нэмэгдэх шаардлагатай. Тэдгээрийн нэрс нь
kpasswd болон rcmd байна.
Эдгээр хоёр удирдагч нь систем бүрийн хувьд хувь системийн нэртэй тохиолдлуудын
хамтаар хийгдэнэ.
Эдгээр kpasswd болон
rcmd дэмонууд нь бусад системүүдэд
Kerberos нууц үгнүүдийг өөрчилж &man.rcp.1;,
&man.rlogin.1; болон &man.rsh.1; зэрэг тушаалуудыг ажиллуулахыг
зөвшөөрдөг.
Одоо эдгээр оруулгуудыг нэмэцгээе:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: passwd
Instance: grunt
<Not found>, Create [y] ? y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ? y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: rcmd
Instance: grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Серверийн файлыг үүсгэх
Одоо бид машин бүр дээр үйлчилгээнүүдийг тодорхойлдог бүх тохиолдлуудыг
гаргаж авах хэрэгтэй. Энэ зорилгоор бид ext_srvtab
тушаалыг ашиглана. Энэ нь файл үүсгэх бөгөөд түүнийг Kerberos-ийн
клиент бүрийн /etc сан уруу
аюулгүйн үүднээс хуулах эсвэл шилжүүлэх хэрэгтэй.
Энэ файл нь сервер болон клиент бүр дээр байх хэрэгтэй бөгөөд Kerberos-ийн
ажиллагаанд шийдвэрлэх зүйл болдог.
&prompt.root; ext_srvtab grunt
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....
Одоо, энэ тушаал зөвхөн түр зуурын файл үүсгэдэг бөгөөд тэр файлын нэрийг
бүх серверүүд авч чадахаар srvtab болгон нэрлэх
шаардлагатай. &man.mv.1; тушаал ашиглаж эх систем дээрх байрлал уруу
шилжүүл:
&prompt.root; mv grunt-new-srvtab srvtab
Хэрэв файл нь клиент системд зориулагдсан бөгөөд сүлжээ нь аюулгүй биш
гэж бодогдвол client-new-srvtab
файлыг шилжүүлж болох зөөвөрлөгч уруу хуулж физик аюулгүйн үүднээс тээвэрлэж
болно. Үүнийг клиентийн /etc сан дотор
srvtab болгон нэрлэж 600 горимд байгаа эсэхийг
шалгаарай:
&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtab
Мэдээллийн санг нутагшуулах
Бид одоо зарим хэрэглэгчийг мэдээллийн баазад оруулах хэрэгтэй. Эхлээд
jane хэрэглэгчид зориулсан оруулгыг үүсгэе.
Үүнийг kdb_edit тушаал ашиглаж хийнэ:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: jane
Instance:
<Not found>, Create [y] ? y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- enter a secure password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Бүгдийг тест хийх
Эхлээд бид Kerberos дэмонууд ажиллуулах шаардлагатай. Хэрэв та
өөрийн /etc/rc.conf файлыг зөв засварласан
бол дахин ачаалахад энэ нь автоматаар хийгдэх ёстойг санаарай.
Энэ нь зөвхөн Kerberos сервер дээр шаардлагатай. kerberos-ийн
клиентүүд хэрэгтэй зүйлээ автоматаар /etc/kerberosIV
сангаас авах болно.
&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Одоо бид kinit тушаал ашиглаж
бидний дээр үүсгэсэн jane ID-д зориулсан тасалбарыг авахыг
оролдож болно:
&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:
Токенууд бидэнд үнэхээр байгаа эсэхийг klist ашиглан
үзэхийг оролдоорой:
&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM
Одоо kpasswd дэмон
Kerberos-ийн мэдээллийн баазад нэвтрэлтийн зөвшөөрөл авч чадах эсэхийг шалгахын
тулд нууц үгийг &man.passwd.1; ашиглан өөрчлөхийг оролдоорой:
&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:
New Password for jane:
Verifying password
New Password for jane:
Password changed.
su зөвшөөрлүүдийг нэмэх
Kerberos нь root зөвшөөрлүүд
хэрэгтэй хэрэглэгч бүрд өөрсдийнх нь
тусдаа &man.su.1; нууц үгийг өгөхийг
бидэнд зөвшөөрдөг. Одоо бид &man.su.1;-аар танигдан зөвшөөрөгдсөн
ID-г root уруу нэмж болно. Үүнийг
root-г удирдагчтай холбосон тохиолдолтой
байснаар хянаж болно. kdb_edit ашиглан
Kerberos-ийн мэдээллийн баазад jane.root
оруулгыг бид үүсгэж болно:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: jane
Instance: root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- enter a SECURE password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Одоо үүнийг ажиллаж байгааг шалгаж токенуудыг авахыг оролдоорой:
&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:
Одоо бид хэрэглэгчийг root-ийн
.klogin файлд нэмэх хэрэгтэй:
&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COM
Одоо &man.su.1; хийхийг оролдоод үз:
&prompt.user; su
Password:
тэгээд ямар токенууд бидэнд байгааг хараарай:
&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM
Бусад тушаалуудыг ашиглах
Өмнөх жишээн дээр бид jane гэж нэрлэгдсэн
удирдагчийг root тохиолдолтой үүсгэсэн.
Энэ нь удирдагчтай адил нэртэй хэрэглэгч дээр үндэслэсэн бөгөөд энэ нь
Kerberos-ийн анхдагч юм; root-ийн гэр сан дахь
.klogin файлд шаардлагатай оруулгууд байвал
<username>.root
хэлбэрийн <principal>.<instance> нь
тэр <username>-г root
уруу &man.su.1; хийхийг зөвшөөрдөг:
&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COM
хэрэв хэрэглэгч үүнтэй адил хэлбэрийн өөрийн гэр сангийн мөрүүдтэй бол:
&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COM
Энэ нь өөрсдийгөө
jane эсвэл jack гэж
таниулсан (kinit-ийн тусламжтай, дээр дурдсаныг үз)
EXAMPLE.COM хүрээний хэнд ч
&man.rlogin.1;, &man.rsh.1; эсвэл &man.rcp.1; ашиглан энэ систем
(grunt) дээрх jane-ий бүртгэл
эсвэл файлуудад хандахыг зөвшөөрдөг.
Жишээ нь jane одоо өөр систем уруу Kerberos
ашиглан нэвтрэн орж байна:
&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995
Эсвэл jack яг тэр машин дээрх jane бүртгэл
уруу нэвтрэн орж байна (jane дээрхтэй адил .klogin-ийг
тохируулсан бөгөөд Kerberos хариуцсан хүн удирдагч jack-ийг хоосон
тохиолдолтой тохируулсан):
&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995
Тиллмэн
Хоожсон
Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан
Марк
Мюррей
Хувь нэмэр болгон оруулсан
Kerberos5
&os;-5.1-ээс хойшхи &os;-ийн хувилбар бүр зөвхөн
Kerberos5-д зориулсан дэмжлэгийг
оруулсан байдаг. Kerberos5 нь
орсон цорын ганц хувилбар болохоор түүний тохиргоо олон талаараа
KerberosIV-д байдагтай адил
байдаг. Дараах мэдээлэл &os;-5.0-с хойшхи хувилбар дахь
Kerberos5-тай хамаатай.
KerberosIV багцыг ашиглахыг
хүсэж байгаа хэрэглэгчид security/krb4
портыг суулгаж болно.
Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн
тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм.
Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон
бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж
болохоор болсон.
Kerberos нь хэн бэ гэдгийг шалгах прокси систем
юм. Энэ нь бас итгэгдсэн гуравдагч нэвтрэлт таних систем гэж тайлбарлагдаж
болно. Kerberos нь зөвхөн нэг функцыг
хангадаг — сүлжээн дээр хэрэглэгчдэд өөрсдийгөө аюулгүйгээр таниулах
боломжийг хангаж өгдөг. Энэ нь шалгаж таних функцууд (хэрэглэгчдийн
хийхийг зөвшөөрдөг) эсвэл аудит функцуудын (тэдгээр хэрэглэгчид юу хийснийг)
үүргийг гүйцэтгэдэггүй. Клиент болон сервер өөрийгөө таниулж батлахаар
Kerberos-г ашигласны дараа тэд бизнесээ бодож
өөрсдийн бүх холболтуудаа шифрлэж нууцлал болон бүрэн бүтэн байдлаа хадгалан
баталгаажуулж болно.
Иймээс Kerberos-ийг нэвтрэлт танилт болон
аудит үйлчилгээнүүдийг хангадаг бусад аюулгүй байдлын аргуудтай цуг ашиглахыг
маш ихээр зөвлөдөг.
Дараах заавруудыг &os;-д зориулан түгээгдсэн Kerberos-ийг
хэрхэн тохируулах гарын авлага болгон ашиглаж болно. Гэхдээ та тохирох гарын авлагын
хуудаснуудаас бүрэн тайлбарын талаар лавлах хэрэгтэй.
Kerberos-ийн суулгацыг үзүүлэх зорилгоор
төрөл бүрийн нэрийн талбарууд дараах байдлаар зохицуулагдана:
DNS домэйн (бүс
)
нь example.org байна.
Kerberos хүрээ нь
EXAMPLE.ORG байна.
Хэрэв та дотооддоо ажиллуулах бодолтой байсан ч гэсэн Kerberos-ийг
суулгаж тохируулахдаа жинхэнэ домэйны нэрүүдийг ашиглана уу. Энэ нь
DNS-ийн асуудлуудыг тойрон гарч
бусад Kerberos хүрээнүүдтэй хийх
хоорондын үйлдлийг баталгаажуулдаг.
Түүх
Kerberos5
түүх
Kerberos-ийг MIT
анх сүлжээний аюулгүй байдлын асуудлуудын шийдэл болгож хийсэн.
Kerberos протокол нь хүчирхэг криптографыг
ашигладаг бөгөөд клиент нь аюултай сүлжээний холболтоор өөрийгөө хэн бэ гэдгийг
серверт (болон эсрэгээр) баталж чадах боломжийг олгодог.
Kerberos нь сүлжээний танин шалгах
протоколын нэрээс гадна програмыг (жишээ нь Kerberos
телнет) шийдвэрлэж байгаа програмуудыг тайлбарласан тайлбар бас болдог.
Протоколын одоогийн хувилбар нь 5 бөгөөд RFC 1510-д
тайлбарласан байдаг.
Өргөн хүрээний үйлдлийн системүүдийг хамарсан энэ протоколын хэд хэдэн чөлөөтэй
шийдлүүд байдаг. Kerberos анх хөгжүүлэгдсэн
Массачусетсийн Технологийн Институт (MIT) нь
өөрийн Kerberos багцыг хөгжүүлсээр байна.
Энэ багц нь US-д криптограф бүтээгдэхүүн болж нийтлэг
хэрэглэгддэг бөгөөд энэ нь түүхээс авч үзэхэд US-ын
экспортын дүрэм журмуудаас болсон юм. MIT
Kerberos нь порт
(security/krb5) хэлбэрээр байдаг.
Heimdal Kerberos нь өөр шийдлийн 5-р
хувилбар бөгөөд экспортын дүрэм журмуудыг тойрон гарах зорилгоор
US-ээс гадна хамааралгүйгээр хөгжүүлэгдсэн (
бөгөөд ихэвчлэн арилжааны бус &unix; төрлүүдэд орсон байдаг) юм.
Heimdal Kerberos түгээлт нь
порт (security/heimdal)
хэлбэрээр байдаг бөгөөд үүний хамгийн бага суулгац үндсэн &os; суулгацад
орсон байдаг.
Аль болох олон үзэгчдийг хамрахын тулд эдгээр зааврууд нь &os;-д орсон
Heimdal түгээлтийг ашиглаж байна гэж тооцдог.
Heimdal KDC суулгаж тохируулах
Kerberos5
Түлхүүр Түгээх Төв
Түлхүүр Түгээх Төв (KDC) нь
Kerberos-ийн хангадаг төвлөрсөн нэвтрэлт таних
үйлчилгээ юм — энэ нь Kerberos
тасалбарууд өгдөг компьютер юм. KDC нь
Kerberos хүрээний бусад бүх компьютеруудад
итгэгдсэн
гэж тооцогддог бөгөөд аюулгүй байдлын санаа зовнилыг
дээшлүүлдэг.
Kerberos серверийг ажиллуулж байхад маш цөөн тооцооллын
эх үүсвэрийг шаарддаг боловч аюулгүй байдлын шалтгаанаас болоод зөвхөн
KDC болон ажиллах тусдаа зориулагдсан машинтай байхыг
зөвлөдгийг санаарай.
KDC-г тохируулж эхлэхдээ таны
/etc/rc.conf файлд KDC
болж ажиллах зөв тохиргоо хийгдсэн эсэхийг шалгаарай (өөрийн системийн хувьд
та замуудыг өөрчлөх хэрэгтэй байж болох юм):
kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
Дараа нь бид таны Kerberos тохиргооны
файл /etc/krb5.conf-г тохируулна:
[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORG
Энэ /etc/krb5.conf файл нь
таны KDC нь бүрэн баталгаажсан хостын нэр
kerberos.example.org-тэй байна
гэж үзэж байгааг санаарай. Хэрэв таны KDC өөр
хостын нэртэй бол та өөрийн бүсийн файлдаа CNAME (alias)-ийг нэмэх
хэрэгтэй.
Зөв тохируулсан BIND DNS
сервер бүхий том сүлжээнүүдэд өмнөх жишээ нь:
[libdefaults]
default_realm = EXAMPLE.ORG
болж дараах мөрүүдийг example.org
бүсийн файлд нэмж цэгцэлж болно:
_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORG
Kerberos үйлчилгээнүүдийг хэрэглэгчдэд
хүртээмжтэй болгохын тулд та эсвэл бүрэн тохируулсан /etc/krb5.conf
файлтай эсвэл хамгийн багаар тохируулсан /etc/krb5.conf
файл болон зөв тохируулсан DNS сервертэй байх
ёстой.
Дараа нь бид Kerberos мэдээллийн бааз
үүсгэнэ. Энэ мэдээллийн бааз нь мастер нууц үгээр шифрлэсэн бүх удирдагчдын
түлхүүрүүдийг агуулдаг. Та энэ нууц үгийг тогтоох шаардлагагүй, энэ нь
файлд (/var/heimdal/m-key) хадгалагдах болно.
Мастер түлхүүр үүсгэхийн тулд kstash тушаалыг
ажиллуулж нууц үгээ оруулаарай.
Мастер түлхүүр үүсгэгдсэний дараа та мэдээллийн баазыг
kadmin програмыг -l
тохируулгатай (локал
гэсэн утгатай) ашиглан эхлүүлж болно.
Энэ тохируулга нь kadmin-д мэдээллийн баазын
файлыг kadmind сүлжээний үйлчилгээгээр
дамжилгүйгээр шууд өөрчлөхийг заадаг. Энэ нь мэдээллийн бааз үүсэхээс
өмнө түүн уруу хандахыг оролдох асуудлыг (яг л өндөг, тахианы аль нь түрүүлж гарсан
гэж маргадаг тэр асуудлын адил) зохицуулдаг. kadmin
хүлээх мөртэй болсныхоо дараа та өөрийн хүрээнүүдийн эхний мэдээллийн санг
init тушаал ашиглан үүсгээрэй.
Эцэст нь kadmin-ы горимд байхдаа өөрийн
эхний удирдагчийг add тушаал ашиглан үүсгээрэй.
Одоохондоо удирдагчийн хувьд анхдагч тохируулгуудыг сонгоорой, та
тэдгээрийг сүүлд нь modify тушаал ашиглан
өөрчилж чадна. Та аль ч тушаал хүлээх мөрөнд ?
тушаал ашиглаж байгаа боломжит тохируулгуудыг харж болохыг
санаарай.
Мэдээллийн сан үүсгэлтийн жишээ сесс доор байна:
&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxx
Одоо KDC үйлчилгээнүүдийг эхлүүлэх цаг болжээ.
Үйлчилгээнүүдийг эхлүүлэхдээ /etc/rc.d/kerberos start болон
/etc/rc.d/kadmind start тушаалуудыг
ажиллуулна. Энэ үед танд ямар ч kerberos хийгдсэн дэмон байхгүйг санаарай,
гэхдээ та KDC-ийн өөрийнх нь тушаалын мөрөөс үүсгэсэн удирдагчид
(хэрэглэгч) зориулсан тасалбарыг авч жагсаан KDC-г ажиллаж байгаа
гэдгийг та баталж чадаж байх ёстой:
&prompt.user; kinit tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; klist
Credentials cache: FILE:/tmp/krb5cc_500
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
Та дууссаныхаа дараа тасалбарыг буцааж болно:
&prompt.user; k5destroy
Серверийг Kerberos хийн Heimdal үйлчилгээнүүдтэй
идэвхжүүлэх
Kerberos5
үйлчилгээнүүдийг идэвхжүүлэх
Эхлээд бидэнд Kerberos-ийн тохиргооны
файл /etc/krb5.conf-ийн хуулбар хэрэг болно.
Ингэхийн тулд KDC-ээс түүнийг аюулгүй аргаар
(&man.scp.1; зэрэг сүлжээний хэрэгслүүд эсвэл физикээр уян диск ашиглан)
клиент компьютер уруу ердөө л хуулах хэрэгтэй.
Дараа нь танд /etc/krb5.keytab файл
хэрэгтэй. Энэ нь Kerberos хийгдсэн
дэмонууд бүхий сервер болон ажлын станц хоёрын гол ялгаа юм —
сервер нь keytab файлтай байх шаардлагатай.
Энэ файл нь өөрийг нь зөвшөөрдөг серверийн хост түлхүүр болон өөрсдийнхөө
нэрийг (identity) шалгах KDC-г агуулдаг.
Хэрэв түлхүүр нь нийтэд мэдэгдвэл серверийн аюулгүй байдал эвдэрч болох учир
энэ нь сервер уруу аюулгүйн үүднээс дамжуулагдах ёстой. Энэ нь шууд утгаараа
FTP зэрэг цэвэр текст сувгаар дамжуулах нь маш буруу
гэсэн үг юм.
Ихэвчлэн сервер уруу keytab файлыг
kadmin тушаал ашиглан дамжуулдаг.
Энэ нь тохиромжтой байдаг бөгөөд учир нь та бас хостын удирдагчийг
(krb5.keytab файлын KDC
төгсгөл) kadmin тушаал ашиглан үүсгэх хэрэгтэй
болдог.
Та тасалбарыг аль хэдийн авсан байх ёстой бөгөөд энэ тасалбар нь
kadmind.acl файлын kadmin
интерфэйсийг ашиглаж болохоор зөвшөөрөгдсөн байх ёстойг санаарай.
Heimdal-ийн мэдээллийн хуудаснуудын (info heimdal)
Алсын удирдлага
гэсэн гарчигтай хэсгээс хандалт хянах жагсаалтуудыг
дизайн хийх талаар дэлгэрэнгүйг үзнэ үү. Хэрэв та алсын kadmin
хандалтыг идэвхжүүлэхийг хүсэхгүй байгаа бол та KDC уруу
ердөө л аюулгүйгээр холбогдож (локал консолоор, &man.ssh.1; эсвэл
Kerberos &man.telnet.1;) удирдлагыг локалаар
өөр дээрээсээ kadmin -l тушаал ашиглан хийж болно.
/etc/krb5.conf файлыг суулгасны дараа та
Kerberos серверээс kadmin
тушаалыг ашиглаж болно. add --random-key тушаал нь
серверийн хост удирдагчийг нэмэх боломжийг танд олгох бөгөөд ext
тушаал нь серверийн хост удирдагчийг өөрийн keytab уруу задлах боломжийг танд олгоно.
Жишээ нь:
&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
kadmin> ext host/myserver.example.org
kadmin> exit
ext тушаал нь (extract
гэдгийг
богиноор илэрхийлнэ) задалсан түлхүүрийг анхдагчаар /etc/krb5.keytab
файлд хадгалдаг.
Хэрэв таны хувьд KDC дээр kadmind
ажиллахгүй байгаа бөгөөд (магадгүй аюулгүй байдлын шалтгаануудаас болоод)
тэгээд kadmin уруу алсаас хандах боломжгүй бол та
хост удирдагчийг (host/myserver.EXAMPLE.ORG)
шууд KDC дээр нэмж дараа нь доор дурдсантай адилаар түүнийг түр
зуурын файл уруу (KDC дээрх
/etc/krb5.keytab файлыг дарж бичихээс сэргийлж)
задалж болно:
&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exit
Та дараа нь keytab-ийг аюулгүйгээр (жишээ нь scp эсвэл
уян диск ашиглан) сервер компьютер уруу хуулж болно. KDC
дээрх keytab-ийг дарж бичихээс сэргийлж keytab нэрийг анхдагч бишээр зааж өгсөн
эсэхээ шалгаарай.
Энэ мөчид хүрэх үед таны сервер KDC-тэй
(krb5.conf файлтай учраас) холбогдож чадах бөгөөд
(krb5.keytab файлтай учраас) өөрийгөө таниулан баталж
чадна. Одоо та зарим нэг Kerberos үйлчилгээнүүдийг
идэвхжүүлэхэд бэлэн болжээ. Энэ жишээн дээр бид telnet
үйлчилгээг /etc/inetd.conf файлд доор дурдсантай төстэй
мөрийг оруулан идэвхжүүлж дараа нь &man.inetd.8; үйлчилгээг
/etc/rc.d/inetd restart тушаалын тусламжтай
дахин ачаалах болно:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user
Хамгийн чухал нь -a төрөл (нэвтрэлт танихад)
хэрэглэгчид тохируулагдсан. Илүү дэлгэрэнгүйг &man.telnetd.8; гарын
авлагын хуудаснаас лавлана уу.
Клиентийг Kerberos хийн Heimdal үйлчилгээтэйгээр идэвхжүүлэх
Kerberos5
клиентүүдийг тохируулах
Клиент компьютерийг тохируулах нь маш амархан.
Kerberos тохиргоо хийгдсэний дараа танд зөвхөн
/etc/krb5.conf-д байрлах
Kerberos тохиргооны файл хэрэгтэй.
Үүнийг ердөө л аюулгүйгээр клиент компьютер уруу KDC-ээс
хуулна.
Клиентээсээ kinit, klist, болон
kdestroy тушаалуудыг үүсгэсэн удирдагчийнхаа хувьд
тасалбар олж авах, үзүүлэх, болон дараа нь устгахад ашиглахыг оролдон клиент
компьютераа тест хийгээрэй. Та Kerberos
програмуудыг ашиглан Kerberos хийгдсэн
серверүүд уруу холбогдож чадах ёстой бөгөөд хэрэв ингэж ажиллаж болохгүй байгаа
бөгөөд тасалбар олж авах нь асуудалтай байгаа бол энэ нь клиент эсвэл
KDC-тэй холбоотой биш сервертэй холбоотой
асуудал юм.
telnet зэрэг програмыг тест хийж байх үед
таны нууц үг цэвэр текстээр бишээр илгээгдэж байгааг шалгахын тулд пакет
шиншлэгч (&man.tcpdump.1; зэрэг) ашиглаад үзээрэй.
telnet-ийг бүх өгөгдлийн урсгалыг шифрлэдэг
(ssh-тэй адил) -x тохируулгатай
ашиглахыг оролдоорой.
Төрөл бүрийн гол биш Kerberos клиент
програмууд нь бас анхдагчаар суудаг. Энэ нь үндсэн Heimdal суулгацын
хамгийн бага
мөн чанар юм: telnet
нь цорын ганц Kerberos хийгдсэн үйлчилгээ
юм.
Heimdal порт нь зарим нэг дутуу програмуудыг нэмдэг:
ftp, rsh,
rcp, rlogin болон
бусад цөөн хэдэн нийтлэг биш програмуудын Kerberos
хийгдсэн хувилбаруудыг нэмдэг. MIT порт нь бас
Kerberos клиент програмуудын бүрэн цуглуулгыг
агуулдаг.
Хэрэглэгчийн тохиргооны файлууд: .k5login болон .k5users
.k5login
.k5users
Хүрээн дэх хэрэглэгчийн хувьд ихэнхдээ өөрсдийнх нь Kerberos
удирдагчийг (tillman@EXAMPLE.ORG зэрэг)
локал хэрэглэгчийн бүртгэлд (tillman зэрэг локал бүртгэл)
харгалзуулж өгсөн байдаг. telnet зэрэг клиент
програмууд ихэвчлэн хэрэглэгчийн нэр эсвэл удирдагчийг шаарддаггүй.
Гэхдээ хааяа нэг та харгалзах Kerberos
удирдагчгүй хэн нэгэнд зориулж локал хэрэглэгчийн бүртгэлд хандах хандалтыг
өгөхийг хүсэж болох юм. Жишээ нь tillman@EXAMPLE.ORG
магадгүй локал хэрэглэгчийн бүртгэл webdevelopers-д
хандах хандалт хэрэгтэй байж болох юм. Бусад удирдагчид бас энэ локал бүртгэлд хандах
хэрэгтэй байж болох юм.
.k5login болон .k5users
файлууд нь хэрэглэгчдийн гэрийн сангуудад байрладаг бөгөөд
.hosts болон .rhosts
файлуудын хүчирхэг хослолын нэгэн адилаар энэ асуудлыг шийдэн ашиглагдаж болох юм.
Жишээ нь хэрэв .k5login нь дараах агуулгатайгаар:
tillman@example.org
jdoe@example.org
локал хэрэглэгч webdevelopers-ийн гэр санд
байрлаж байвал энд жагсаагдсан хоёр удирдагч хоёулаа хуваалцсан нууц үгийн шаардлагагүйгээр
тэр бүртгэл уруу хандах хандалттай болох юм.
Эдгээр тушаалуудын гарын авлагын хуудаснуудыг уншихыг зөвлөж байна.
ksu гарын авлагын хуудас .k5users
файлын тухай тайлбарладгийг тэмдэглэх нь зүйтэй юм.
Kerberos-той холбоотой арга, зальнууд болон алдааг олж засварлах
Kerberos5
алдааг олж засварлах
Heimdal эсвэл MIT
Kerberos портууд ашиглах үед
таны PATH орчны хувьсагч
клиентийн програмуудын Kerberos
хувилбаруудыг системийн хувилбаруудаас өмнө жагсаасан байхыг
шаарддаг.
Таны хүрээний бүх компьютерууд цагийн тохиргоонуудаа адилаар
тохируулсан уу? Хэрэв үгүй бол нэвтрэлт танилт амжилтгүй болж
болох юм. нь
NTP ашиглан цагийг хамгийн сүүлийн
хэлбэрт аваачиж адил болгож тохируулах талаар тайлбарладаг.
MIT болон Heimdal нь хоорондоо сайн
ажилладаг. kadmin-аас бусад талаараа
сайн ажилладаг, учир нь энэ програмын протокол стандартчилагдаагүй.
Та хэрэв өөрийн хостын нэрийг өөрчилбөл бас өөрийн host/
удирдагчийг өөрчилж өөрийн keytab-ийг шинэчлэх хэрэгтэй. Энэ нь бас
Апачигийн www/mod_auth_kerb-д
хэрэглэгддэг www/ удирдагч зэрэг тусгай keytab
оруулгуудад хамаатай юм.
Таны хүрээний бүх хостууд DNS-д (эсвэл
хамгийн багадаа /etc/hosts-ийн хувьд) танигдаж
(урагш болон эсрэгээр танигдаж) байх ёстой. CNAME-үүд ажиллах боловч A болон PTR
бичлэгүүд зөв бөгөөд байрандаа байж байх ёстой. Алдааны мэдэгдэл нь
тийм ч ойлгогдохоор байдаггүй, жишээ нь: Kerberos5
refuses authentication because Read req
failed: Key table entry not found буюу орчуулбал
Унших Req амжилтгүй болсон болохоор Kerberos5 нь нэвтрэлт танилтаас
татгалзаж байна.
Таны KDC-ийн хувьд магадгүй клиент маягаар
харьцаж байгаа зарим үйлдлийн системүүд setuid
root болохын тулд ksu
тушаалд зөвшөөрлүүдийг тохируулдаггүй. Энэ нь ksu
ажиллахгүй гэсэн үг бөгөөд аюулгүй байдлын хувьд сайн боловч залхаамаар
байдаг. Энэ нь KDC-ийн алдаа биш юм.
MIT
Kerberos-той байхад хэрэв та
анхдагч 10 цагаас арай урт амьдрах хугацаа бүхий тасалбартай удирдагчийг
зөвшөөрөхийг хүсвэл kadmin дээр
modify_principal тушаал ашиглан
өөрчлөхийг хүссэн удирдагч болон krbtgt
удирдагчийн maxlife-ийг өөрчлөх шаардлагатай. Дараа нь
удирдагч -l тохируулгыг
kinit-тай ашиглаж илүү урт амьдрах хугацаатай
тасалбарыг авах хүсэлт илгээж болох юм.
Хэрэв та өөрийн KDC дээр
алдааг олж засварлахын тулд пакет шиншлэгч ажиллуулж дараа нь
ажлын станцаасаа kinit-ийг ажиллуулахад
kinit-ийг ажилласан даруй
таны TGT илгээгдэхийг
— таныг бүр нууц үгээ бичихээс өмнө та харах болно!
Үүний тайлбар нь Kerberos
сервер чөлөөтэйгээр TGT-ийг (Ticket Granting
Ticket буюу Тасалбар Баталгаажуулах Тасалбар) ямар ч танигдаагүй
хүсэлтэд дамжуулдаг; гэхдээ TGT бүр
хэрэглэгчийн нууц үгээс гарсан түлхүүр болон шифрлэгдсэн байдаг.
Тийм болохоор хэрэглэгч өөрсдийн нууц үгийг бичихэд
тэр нь KDC уруу илгээгддэггүй бөгөөд
харин kinit-ийн аль хэдийн олж авсан
TGT-г буцааж шифрлэхэд (decrypt)
ашиглагддаг. Хэрэв буцааж шифрлэх процесс хүчинтэй хугацаа бүхий
хүчинтэй тасалбарыг гаргаж авбал хэрэглэгч хүчинтэй
Kerberos итгэмжлэлүүдтэй
байна. Эдгээр итгэмжлэлүүд нь ирээдүйд
Kerberos сервертэй аюулгүй холболтууд
хийхэд зориулагдсан сессийн түлхүүр болон бас Kerberos
серверийн өөрийнх нь түлхүүрээр шифрлэгдсэн тасалбар-баталгаажуулах
тасалбарыг агуулдаг. Шифрлэлтийн хоёр дахь давхарга нь хэрэглэгчид
мэдэгддэггүй, гэхдээ энэ нь TGT бүрийн
жинхэнийг шалгахыг Kerberos
серверт зөвшөөрч байгаа тэр зүйл юм.
Хэрэв та урт амьдрах хугацаатай (жишээ нь долоо хоног) тасалбар ашиглахыг
хүсэж байгаа бөгөөд та тасалбар хадгалагдаж байгаа машин уруу
OpenSSH ашиглан холбогдож байгаа бол
Kerberos
тохируулга no
гэж sshd_config тохиргооны файлд байгаа эсэхийг
шалгаарай, тэгэхгүй бол таны тасалбарууд таныг гарах үед устгагдах
болно.
Хостын удирдагчид илүү урт амьдрах хугацаатай тасалбартай бас байж болно
гэдгийг санаарай. Хэрэв таны хэрэглэгчийн удирдагч долоо хоног амьдрах хугацаатай
бөгөөд гэхдээ таны холбогдож байгаа хост 9 цаг амьдрах хугацаатай бол
та кэшдээ хугацаа нь дууссан хостын удирдагчтай болж тасалбарын кэш
хүссэнээр ажиллахгүй болох болно.
Тусгайлсан муу нууц үгүүдийг ашиглуулахгүйн тулд (kadmind
тушаалын гарын авлагын хуудас үүнийг товчхон тайлбарладаг)
krb5.dict файлыг тохируулахдаа
нууц үгийн бодлого тавигдсан удирдагчдад энэ нь зөвхөн хамаатайг санах
хэрэгтэй. krb5.dict файлуудын хэлбэр
хялбар байдаг: нэг мөрт нэг үг (string) байна. /usr/share/dict/words
симболын холбоос үүсгэх нь ашигтай байж болох юм.
MIT портоос ялгаатай талууд
MIT болон Heimdal суулгацуудын гол ялгаа нь
өөр (гэхдээ орлуулж болох) тушаалууд болон өөр протоколууд ашигладаг
kadmin програмтай холбоотой юм.
Хэрэв таны KDC нь MIT бол
та Heimdal kadmin програмыг ашиглаж өөрийн
KDC-г алсаас (эсвэл эсрэг чиглэлд энэ
зорилгоор) удирдаж чадахгүй болдог учир энэ нь их хамаатай юм.
Клиент програмууд нь бас шал өөр өөр тушаалын мөрийн тохируулгууд авч
адил үүргийг гүйцэтгэж болох юм. MIT
Kerberos вэб сайт
() дээрх заавруудыг
дагахыг зөвлөж байна. Замын асуудлуудаас болгоомжлоорой:
MIT порт нь анхдагчаар /usr/local/
уруу суудаг бөгөөд хэрэв таны PATH орчны хувьсагч системийн
сангуудыг эхлээд жагсаадаг бол жирийн
системийн програмууд
MIT-ийн оронд ажиллаж болохыг санаарай.
telnetd болон klogind-ээр
нэвтрэх нэвтрэлтүүд нэг л хачин байдаг тэр шалтгааныг ойлгохыг хүсвэл &os;-ийн хангадаг
MIT security/krb5 портын
суулгасан /usr/local/share/doc/krb5/README.FreeBSD
файлыг унших хэрэгтэй. Хамгийн чухал нь
кэш файл дахь буруу зөвшөөрлүүд
ийг зөв болгох нь
дамжуулагдсан итгэмжлүүдийн эзэмшилтийг зөвөөр солих login.krb5
хоёртын файлыг нэвтрэлт танилтад ашиглахыг шаарддаг.
rc.conf файл дараах тохиргоог агуулж засварлагдсан
байх бас шаардлагатай:
kerberos5_server="/usr/local/sbin/krb5kdc"
kadmind5_server="/usr/local/sbin/kadmind"
kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
MIT керберосд зориулсан програмууд
/usr/local санд хоёртын файлуудыг
суулгадаг болохоор ингэж хийгддэг.
Kerberos дахь хязгааруудыг багасгах
Kerberos5
хязгаарууд болон дутагдлууд
Kerberos нь бүгдийг эсвэл юуг ч биш гэсэн арга юм
Сүлжээнд идэвхжүүлэгдсэн үйлчилгээ бүр Kerberos-тэй
ажиллахаар засварлагдсан (эсвэл сүлжээний халдлагуудын эсрэг аюулгүй
байдлыг хангасан) байх шаардлагатай, тэгэхгүй бол хэрэглэгчдийн
итгэмжлэлүүд хулгайлагдаж дахин ашиглагдаж болох юм. Үүний нэг жишээ нь
бүх алсын бүрхүүлүүдийг (жишээ нь rsh болон
telnet) Kerberos хийн
идэвхжүүлсэн мөртлөө нууц үгүүдийг цэвэр текстээр илгээдэг POP3
захидлын серверийг тэгж хувиргахгүй байх явдал юм.
Kerberos нь ганц хэрэглэгчийн ажлын станцуудад зориулагдсан
Олон хэрэглэгчийн орчинд Kerberos нь
тийм ч аюулгүй биш юм. Энэ нь тасалбаруудыг бүх хэрэглэгчийн хувьд уншигдаж
болох /tmp санд хадгалдаг учраас тэр юм.
Хэрэв хэрэглэгч компьютераа хэд хэдэн бусад хүмүүстэй зэрэг харилцан хуваалцаж
байвал (өөрөө хэлбэл олон-хэрэглэгч) хэрэглэгчийн тасалбаруудыг өөр хэрэглэгч
хулгайлах (хуулан авах) боломжтой юм.
Үүнийг -c файлын нэрийн тушаалын мөрийн тохируулгатай
эсвэл (илүү зохимжтой) KRB5CCNAME орчны хувьсагчтайгаар
даван гарч болох юм, гэхдээ ингэх нь их ховор байдаг. Зарчмын хувьд
тасалбарыг хэрэглэгчдийн гэр санд хадгалж хялбар файлын зөвшөөрлүүдийг ашиглах нь
энэ асуудлыг багасгадаг.
KDC нь бүтэлгүйтлийн ганц цэг
Дизайнаараа бол KDC нь мастер нууц үгийн
мэдээллийн баазаас тогтох бөгөөд түүний нэгэн адил аюулгүй байх ёстой.
KDC нь үүн дээр өөр ямар ч үйлчилгээнүүд
ажиллуулсан байх ёсгүй бөгөөд физикээр аюулгүй байдлыг нь
хангасан байх шаардлагатай. Kerberos
нь ижил түлхүүрээр (мастер
түлхүүр) шифрлэгдсэн бүх
нууц үгүүдийг хадгалдаг бөгөөд тэр ижил түлхүүр нь эргээд
KDC дээр файл маягаар хадгалагддаг учраас
аюул өндөртэй байдаг.
Тэмдэглэн хэлэхэд булаан эзлэгдсэн мастер түлхүүр нь хэн нэг нь айхаар
тийм ч муу биш юм. Түлхүүр үг нь зөвхөн Kerberos
мэдээллийн баазыг шифрлэхэд болон санамсаргүй тоо үүсгэгчийн үр болон
хэрэглэгддэг. Таны KDC уруу хандахад аюулгүй л
байж байвал халдагч мастер түлхүүрээр их юм хийж чадахгүй.
Мөн нэмж хэлэхэд хэрэв KDC нь боломжгүй байвал
(магадгүй үйлчилгээ зогсоох халдлага эсвэл сүлжээний асуудлуудаас болоод)
сүлжээний үйлчилгээнүүд нь нэвтрэлт танилтыг хийж болохгүй болохоор
хэрэглэгдэх боломжгүй болох бөгөөд нэг ёсны үйлчилгээ зогсоох халдлагын рецепт
болох юм. Үүнийг олон KDC-тэй (нэг мастер болон
нэг буюу хэд хэдэн боолууд) болон хоёрдогч эсвэл нэмэлт, эцсийн нэвтрэлт таних
(PAM нь энэнд маш сайн) болгоомжтой шийдлийн
тусламжтайгаар даван гарч болох юм.
Kerberos-ийн дутагдлууд
Kerberos нь хэрэглэгчид, хостууд болон
үйлчилгээнүүдэд өөр хоорондоо бие биенээ таниулах боломжийг олгодог. Гэхдээ энэ нь
KDC-г хэрэглэгчид, хостууд эсвэл үйлчилгээнүүдэд
таниулах аргагүй юм. Энэ нь троян хийгдсэн kinit (жишээ нь)
тушаал бүх хэрэглэгчийн нэрс болон нууц үгүүдийг бүртгэн бичиж авч болно гэсэн
үг юм. security/tripwire
ч юм уу эсвэл өөр бусад файлын системийн бүрэн бүтэн байдлыг шалгах хэрэгслүүд
үүнийг арилгаж чадна.
Эх сурвалжууд болон нэмэлт мэдээллүүд
Kerberos5
гадаад эх сурвалжууд
Kerberos-ийн FAQ
Танин шалгах системийг дизайн хийх нь: Дөрвөн үзэгдэл дэх харилцан яриа (диалог)
RFC 1510,
Kerberos Сүлжээний Танин Шалгах Үйлчилгээ
(V5)
MIT
Kerberos-ийн гэр хуудас
Heimdal
Kerberos-ийн гэр хуудас
Том
Рөүдс
Бичсэн:
OpenSSL
аюулгүй байдал
OpenSSL
Олон хэрэглэгчдийн хайдаг нэг боломж нь &os;-д байдаг
OpenSSL багаж юм.
OpenSSL нь ердийн холбооны давхарга
дээр шифрлэлт дамжуулах давхаргыг хангаж өгдөг; ингэснээр түүнийг сүлжээний
програмууд болон үйлчилгээнүүдтэй холбож өгөх боломжийг олгодог.
OpenSSL-ийн зарим нэг хэрэглээнд
захидлын клиентүүдийн шифрлэсэн нэвтрэлт, кредит картаар хийх төлбөрүүд гэх мэт
вэб дээр тулгуурласан шилжүүлгүүд зэрэг олныг дурдаж болно.
www/apache13-ssl болон
mail/sylpheed-claws зэрэг
олон портууд нь OpenSSL-тэй бүтээх
эмхэтгэлийн дэмжлэгийг санал болгодог.
Ихэнх тохиолдолд Портуудын Цуглуулга нь make хувьсагч
WITH_OPENSSL_BASE-ийг yes
гэж заагаагүй тохиолдолд
security/openssl портыг
бүтээхийг оролддог.
&os;-д орсон OpenSSL-ийн хувилбар нь
Secure Sockets Layer v2/v3 (SSLv2/SSLv3) буюу Аюулгүй Сокетуудын
Давхаргын v2/v3 хувилбарууд, Transport Layer Security v1 (TLSv1) буюу
Тээврийн Давхаргын Аюулгүй байдлын v1 хувилбарын сүлжээний аюулгүй байдлын
протоколуудыг дэмждэг бөгөөд ерөнхий криптограф сан болон ашиглагдаж
болох юм.
OpenSSL нь
IDEA алгоритмийг дэмждэг боловч Нэгдсэн Улсын
патентуудаас болоод анхдагчаар хаалттай байдаг. Үүнийг ашиглахын тулд
лицензийг шалгасан байх ёстой бөгөөд хэрэв хязгаарлалтуудыг хүлээн
авах боломжтой бол MAKE_IDEA хувьсагчийг
make.conf файлд заагж өгөх ёстой байдаг.
OpenSSL-ийн хамгийн түгээмэл хэрэглээний
нэг бол програм хангамжуудад зориулан ашиглах сертификатуудыг бэлдэх явдал
юм. Эдгээр сертификатууд нь компани болон хувь хүмүүсийн итгэмжлэлүүдийг
хүчинтэй бөгөөд луйврын биш гэдгийг баталгаажуулдаг. Хэрэв асуудалтай сертификат
хэд хэдэн Certificate Authorities
эсвэл CA-ууд буюу
Сертификатын Эрх мэдэлтнүүдээр шалгагдаагүй бол ихэвчлэн анхааруулга үзүүлдэг.
Сертификатын Эрх мэдэлтэн нь VeriSign зэрэг
компани байдаг бөгөөд компаниуд эсвэл хувь хүмүүсийн итгэмжлэлүүдийг хүчин төгөлдөр болгохын
тулд сертификатуудыг баталгаажуулж өгдөг. Энэ процесс нь өртөгтэй бөгөөд
сертификатууд ашиглахад заавал ч үгүй шаардлага болдоггүй; гэхдээ энэ нь
паранойд буюу хэт зовнисон хэрэглэгчдийн заримын санааг тайвшруулж болох юм.
Сертификатуудыг үүсгэх нь
OpenSSL
сертификат үүсгэлт
Сертификат үүсгэхийн тулд дараах тушаал байдаг:
&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another Name
Common Name
хүлээх мөрийн дараах хариу домэйны
нэрийг харуулж байгааг анзаараарай. Энэ мөр нь шалгалт хийх зорилгоор
серверийн нэрийг оруулахыг шаарддаг; домэйн нэрээс бусдыг байрлуулах нь
ашиггүй сертификат үүсэхэд хүргэдэг. Бусал тохируулгууд, жишээ нь
дуусах хугацаа, өөр шифрлэх алгоритмууд гэх мэт тохируулгууд байдаг.
Бүрэн гүйцэд жагсаалтыг &man.openssl.1; гарын авлагын хуудсыг үзэн
авч болно.
Дээрх тушаалын ажилласан санд хоёр файл одоо байж байх ёстой.
Сертификатын хүсэлт req.pem нь таны оруулсан итгэмжлэлүүдийг
хүчин төгөлдөр болгож хүсэлтийг баталгаажуулан сертификатыг танд буцаах сертификатын
эрх мэдэлтэн уруу илгээгдэж болно. Үүсгэгдсэн хоёр дахь файл нь
cert.pem гэж нэрлэгдэн сертификатын хувийн түлхүүр
болох бөгөөд ямар ч байсан гэсэн хамгаалагдсан байх ёстой; хэрэв энэ нь
бусдын гарт орох юм бол таны (эсвэл таны серверийн) дүрд тоглон ашиглагдаж болох
юм.
CA-с гарын үсэг шаарддаггүй тохиолдолд
өөрөө зурсан сертификатыг үүсгэж болно. Эхлээд RSA
түрхүүр үүсгэх хэрэгтэй:
&prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024
Дараа нь CA түлхүүр үүсгэ:
&prompt.root; openssl gendsa -des3 -out myca.key myRSA.key
Сертификат үүсгэхийн тулд энэ түлхүүрийг ашигла :
&prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt
Санд хоёр шинэ файл үүсэх ёстой: сертификатын эрх мэдэлтний гарын
үсгийн файл myca.key болон сертификат өөрөө
new.crt байна. Эдгээрийг
зөвхөн root унших эрхтэй
/etc санд байрлуулах
шаардлагатай. Үүнд 0700 зөвшөөрөл байж болох бөгөөд түүнийг
chmod хэрэгсэл ашиглан тохируулж болно.
Сертификатуудыг ашиглах нь, жишээ
Тэгэхээр эдгээр файлууд нь юу хийж чадах вэ? Сайн хэрэглээ болох нэг
жишээ нь Sendmail
MTA уруу хийгдэх холболтуудыг шифрлэх байж болно.
Энэ нь локал MTA ашиглан захидал илгээх
хэрэглэгчдийн цэвэр текст нэвтрэлтийн хэрэглээг болиулах юм.
Зарим MUA-ууд нь хэрэв хэрэглэгчид дотроо
сертификат суулгаагүй бол тэдэнд алдааг харуулдаг болохоор энэ нь
ертөнц дээрх хамгийн шилдэг хэрэглээ биш юм.
Сертификат суулгах тухай илүү мэдээллийг програм хангамжтай цуг ирсэн
баримтаас үзэх хэрэгтэй.
Дотоод .mc файл дотор дараах мөрүүдийг
байрлуулах хэрэгтэй:
dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl
Дээрх /etc/certs/ нь
сертификат болон түлхүүр файлуудыг дотооддоо хадгалах сан юм.
Сүүлийн хэдэн шаардлагууд нь дотоод .cf файлын
дахин бүтээлт юм. Үүнийг /etc/mail сан
дотроос make install тушаал
бичин хийж болно. Ингэсний дараа make
restart тушаалыг ажиллуулаарай, энэ нь
Sendmail дэмонг эхлүүлэх ёстой.
Хэрэв бүгд зүгээр болж өнгөрвөл /var/log/maillog
файлд ямар ч алдаа бичигдэхгүй бөгөөд Sendmail
процессийн жагсаалтад харуулагдана.
Хялбар тест хийхийн тулд &man.telnet.1; хэрэгсэл ашиглан
захидлын серверт холбогдох хэрэгтэй:
&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.
Хэрэв STARTTLS
мөр гарч ирвэл бүгд зөв ажиллаж
байна.
Ник
Клэйтон
nik@FreeBSD.org
Бичсэн
IPsec
IPsec дээгүүр VPN хийх
FreeBSD гарц машинуудыг ашиглан Интернэтээр тусгаарлагдсан хоёр сүлжээний
хооронд VPN үүсгэх.
Хитэн М.
Пандиа
hmp@FreeBSD.org
Бичсэн
IPsec-ийг ойлгох нь
Энэ хэсэг IPsec-ийг тохируулах процессийг тайлбарлаж
FreeBSD болон µsoft.windows; 2000/XP
машинуудаас тогтох орчинд түүнийг ашиглан тэдгээрийг өөр хоорондоо аюулгүйгээр
холбогдох нөхцөлийг бүрдүүлэх талаар зааварлах болно. IPsec-ийг тохируулахын
тулд та өөрчлөн тохируулсан цөм бүтээх ухагдахууныг мэдсэн байх шаардлагатай
(-г үзнэ үү).
IPsec нь Интернэт Протокол (IP) давхаргын
дээр суудаг протокол юм. Энэ нь хоёр буюу хэд хэдэн хостуудыг аюулгүй байдлаар
(нэрээс нь харах юм бол) холбох боломжийг олгодог. FreeBSD IPsec
сүлжээний стек
нь IPv4 болон IPv6 протоколуудыг хоёуланг
дэмждэг KAME шийдэл дээр
үндэслэсэн.
FreeBSD нь OpenBSD-ээс авсан Fast IPsec буюу
Хурдан IPsec
гэгддэг тоног төхөөрөмжөөр хурдасгасан
IPsec стектэй. Энэ нь IPsec-ийн ажиллагааг оновчтой болгохын тулд &man.crypto.4;
дэд системийн тусламжтайгаар криптограф тоног төхөөрөмжийг (аль болох бүх газар)
хэрэглэдэг. Энэ нь шинэ дэд систем бөгөөд IPsec-ийн KAME хувилбарт байдаг
бүх боломжуудыг дэмждэггүй. Гэхдээ тоног төхөөрөмжөөр хурдасгасан IPsec-ийг
идэвхжүүлэхийн тулд өөрийн цөмийн тохиргооны файлдаа дараах цөмийн тохируулгыг
нэмэх хэрэгтэй:
цөмийн тохируулгууд
FAST_IPSEC
options FAST_IPSEC # new IPsec (cannot define w/ IPSEC)
IPsec-ийн KAME шийдлийн оронд Fast IPsec
дэд системийг ашиглах боломж одоогоор байхгүйг тэмдэглэе. Дэлгэрэнгүй
мэдээллийг &man.fast.ipsec.4; гарын авлагын хуудаснаас
лавлана уу.
Галт хануудад &man.gif.4; туннелийн төлөвийг бас зөв дагаж
мөрдөх боломжийг олгохын тулд та өөрийн цөмийн тохиргооны файлдаа
тохируулгыг идэвхжүүлэх
хэрэгтэй:
options IPSEC_FILTERGIF #filter ipsec packets from a tunnel
IPsec
ESP
IPsec
AH
IPsec нь хоёр дэд протоколоос тогтоно:
Encapsulated Security Payload
(ESP) буюу Хайрцаглагдсан Аюулгүй байдлын ачаа нь
гуравдагчийн нөлөөллөөс тэгш хэмт криптограф алгоритмийг
(Blowfish, 3DES-тэй адил) ашиглан агуулгыг нь шифрлэж
IP пакетийн өгөгдлийг хамгаалдаг.
Authentication Header (AH) буюу Нэвтрэлт Танилтын
Толгой нь аюулгүй хэш хийх функцаар IP пакетийн толгойн
талбаруудыг хэш хийн криптограф хянах нийлбэрийг тооцоолон гуравдагч
этгээдийн нөлөөлөл болон хууран мэхлэлтээс IP пакетийн толгойг
хамгаалдаг. Үүний дараа пакет дахь мэдээллийг таниулахыг зөвшөөрөх
хэшийг агуулсан нэмэлт толгой байдаг.
ESP болон AH нь
орчноосоо хамаараад хоёулаа цуг эсвэл тусдаа ашиглагдаж болно.
VPN
виртуал хувийн сүлжээ
VPN
IPsec нь хоёр хостын хоорондох урсгалыг шууд шифрлэх (Transport
Mode буюу Тээвэрлэх Горим гэгддэг) буюу эсвэл
хоёр корпорацийн сүлжээний хооронд аюулгүй холбоонд ашиглагдаж болох
виртуал туннелиуд
(Tunnel Mode буюу Туннелийн
Горим гэгддэг) бүтээхэд хэрэглэгдэж болох юм. Сүүлийнх нь ерөнхийдөө
Виртуал Хувийн Сүлжээ (VPN) гэгддэг.
FreeBSD-ийн IPsec дэд системийн талаар дэлгэрэнгүй мэдээллийг
&man.ipsec.4; гарын авлагын хуудаснаас лавлах хэрэгтэй.
Өөрийн цөмдөө IPsec дэмжлэгийг нэмэхийн тулд та дараах тохируулгуудыг
цөмийн тохиргоондоо нэмээрэй:
цөмийн тохируулгууд
IPSEC
цөмийн тохируулгууд
IPSEC_ESP
options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)
цөмийн тохируулгууд
IPSEC_DEBUG
Хэрэв IPsec дибаг хийх дэмжлэг заавал хэрэгтэй бол дараах цөмийн тохируулга
бас нэмэгдсэн байх шаардлагатай:
options IPSEC_DEBUG #debug for IP security
Асуудал
VPN-ийг байгуулахад ямар нэг стандарт байхгүй. VPN-үүд нь өөр өөрийн давуу болон сул
талуудтай төрөл бүрийн технологиудыг ашиглан хийгдэж болно. Энэ хэсэг нь
нэг тохиолдлын загвар үзүүлэх бөгөөд энэ тохиолдол дахь VPN-ийг хийхэд
хэрэглэгдэх стратегиудыг харуулах болно.
Тохиолдол: Интернэтэд холбогдсон, нэг юм шиг ажиллах хоёр сүлжээ
VPN
үүсгэх
Угтвар нөхцөл дараах маягийн байна:
Та хамгийн багадаа хоёр сайттай байна
Хоёр сайт хоёулаа IP-г дотооддоо ашигладаг
FreeBSD дээр нь ажилладаг гарц компьютераар хоёр сайт хоёулаа
Интернэтэд холбогдсон.
Хоёр сүлжээний гарц компьютер бүр хамгийн багаар бодоход нэг нийтийн IP
хаягтай.
Хоёр сүлжээний дотоод хаягууд нь нийтийн эсвэл хувийн IP хаягууд байж
болох юм, энэ нь хамаагүй. Та гарц машин дээр хэрэв шаардлагатай бол
NAT ажиллуулсан байж болох юм.
Хоёр сүлжээний дотоод IP хаягууд мөргөлдөхгүй.
Үүнийг ажиллуулахын тулд VPN технологи болон NAT-ийн хослолыг ашиглах нь
онолын хувьд боломжтой боловч би үүнийг хар дарсан зүүд шигээр тохиргоо их төвөгтэй
байх болов уу гэж бодож байна.
Хоёр сүлжээ дотооддоо хоёулаа адилхан хувийн IP хаягийн хүрээ (өөрөөр хэлбэл
хоёулаа 192.168.1.x) ашиглаж байгаа хоёр
сүлжээг холбохыг оролдож байгаагаа хэрэв та мэдэх юм бол аль нэг сүлжээний IP-г дахин
дугаарлах шаардлагатай болно.
Сүлжээний бүтэц иймэрхүү харагдаж болох юм:
Сүлжээ #1 [ Дотоод хостууд ] Хувийн Сүлжээ, 192.168.1.2-254
[ Win9x/NT/2K ]
[ UNIX ]
|
|
.---[fxp1]---. Хувийн IP, 192.168.1.1
| FreeBSD |
`---[fxp0]---' Нийтийн IP, A.B.C.D
|
|
-=-=- Интернэт -=-=-
|
|
.---[fxp0]---. Нийтийн IP, W.X.Y.Z
| FreeBSD |
`---[fxp1]---' Хувийн IP, 192.168.2.1
|
|
Сүлжээ #2 [ Internal Hosts ]
[ Win9x/NT/2K ] Хувийн Сүлжээ, 192.168.2.2-254
[ UNIX ]
Хоёр нийтийн IP хаяг байгааг анзаарна уу. Нийтлэлийн туршид би эдгээрийг үсгээр
орлуулан ашиглах болно. Энэ нийтлэлийн туршид тохиолдох эдгээр үсэгнүүдийн оронд өөрийн
нийтийн хаягаар орлуулж тавиарай. Мөн дотроо хоёр гарц машин маань .1 IP хаягтай
бөгөөд хоёр сүлжээ маань өөр өөр хувийн IP хаягийн хүрээтэйг (192.168.1.x болон 192.168.2.x) анхаарна уу. Хувийн сүлжээнүүд дэх бүх
машинууд өөрсдийн анхдагч гарцдаа .1
машиныг ашиглахаар тохируулсан байгаа болно.
Гол зорилго нь сүлжээ талаасаа авч үзэх юм бол сүлжээ болгон нөгөө сүлжээнийхээ машинуудыг
яг л нэг чиглүүлэгчид холбоотой юм шиг харж чадан ажиллаж байх ёстой -- гэвч энэ чиглүүлэгч нь
хааяа пакетуудыг гээдэг илүү удаан чиглүүлэгч байх юм.
Энэ нь (жишээ нь) 192.168.1.20 машин
дараах тушаалыг ажиллуулж
ping 192.168.2.34
нэвт ажиллаж чадах ёстой гэсэн үг юм. &windows; машинууд
өөр сүлжээн дээр байх машинуудыг харж файлын хуваалцал санг үзэх зэргийг хийж
локал сүлжээн дээр байгаа машинуудыг харж үзэж чаддаг шигээр ажиллаж чадаж байх
ёстой.
Тэгээд бүх юм аюулгүй байх хэрэгтэй. Энэ нь хоёр сүлжээний хоорондох
урсгал шифрлэгдэх ёстой гэсэн үг юм.
Эдгээр хоёр сүлжээний хооронд VPN үүсгэх нь олон алхамтай
процесс юм. Эдгээр нь:
Интернэтийн дагуу хоёр сүлжээний хооронд виртуал
сүлжээний холболт үүсгэнэ. Ажиллаж байгааг нь шалгаж &man.ping.8; зэрэг
багажуудыг ашиглаж тест хийгээрэй.
Хоёр сүлжээний хоорондох урсгал харагдахгүйгээр шифрлэгдэж
шаардлагатай бол буцаан шифрлэгдэх тэр боломжийг бүрдүүлэх
аюулгүй байдлын бодлогуудыг зааж өгөөрэй. Урсгал шифрлэгдэж
байгааг эсэхийг шалгаж &man.tcpdump.1; зэрэг багажууд ашиглан
тест хийгээрэй.
VPN-ийн дагуу &windows; машинууд нэг нь нөгөөгөө харж байхыг
зөвшөөрөх нэмэлт програм хангамжийг FreeBSD гарц машинууд дээр
тохируулаарай.
Алхам 1: виртуал
сүлжээний холболт үүсгэн тест хийх
Сүлжээ #1 дээрх гарц машин (A.B.C.D
нийтийн IP хаягтай, 192.168.1.1 хувийн
IP хаягтай) уруу та нэвтрэн орсон бөгөөд W.X.Y.Z
IP хаягтай машины хувийн хаяг уруу нь ping 192.168.2.1
гэж тушаал ажиллуулъя гэж бодъё. Ингэж ажиллахын тулд юу болох ёстой вэ?
Гарц машин 192.168.2.1 уруу
яаж хүрэхээ мэдэх ёстой. Өөрөөр хэлбэл энэ нь 192.168.2.1 уруу хийгдсэн чиглүүлэлттэй
байх хэрэгтэй.
192.168.x зэрэг хувийн
IP хаягууд Интернэт дээр бараг үзэгдэх ёсгүй. Харин
192.168.2.1 уруу таны илгээсэн
пакет бүр өөр пакет дотор орсон байх ёстой. Энэ пакет нь
A.B.C.D машинаас ирсэн маягаар
байх ёстой бөгөөд W.X.Y.Z уруу
илгээгдэх ёстой. Энэ процессийг encapsulation
буюу хайрцаглалт гэж нэрлэдэг.
Энэ пакет нь W.X.Y.Z дээр ирээд
unencapsulated
буюу буцааж ялгагдан
192.168.2.1 уруу хүргэгдэх
хэрэгтэй.
Та үүнийг хоёр сүлжээний хоорондох туннель
гэж ойлгож болно. Туннелийн хоёр амсар
нь
A.B.C.D болон W.X.Y.Z IP хаягууд бөгөөд туннельд
түүгээр дамжин өнгөрөх хувийн IP хаягуудыг мэдэгдсэн байх шаардлагатай.
Туннель нь нийтийн Интернэтээр хувийн IP хаягтай урсгалыг дамжуулахад
хэрэглэгдэнэ.
Энэ туннель нь ерөнхий интерфэйс эсвэл FreeBSD дээрх gif
төхөөрөмж ашиглан үүсгэгддэг. Таны бодсоноор гарц машин бүр дээрх
gif интерфэйс нь дөрвөн IP хаягтай
байхаар тохируулагдсан байх шаардлагатай; хоёр нь нийтийн IP хаяг,
хоёр нь хувийн IP хаяг.
Хоёр машины хувьд gif төхөөрөмжийн дэмжлэг &os;-ийн цөмд эмхэтгэгдсэн
байх шаардлагатай. Та дараах мөрийг:
device gif
хоёр машины цөмийн тохиргооны файлд хийн дараа нь эмхэтгэн суулгаж дахин
ачаалснаар үүнийг хийж болно.
Туннелийг тохируулах нь хоёр алхамтай процесс юм. Эхлээд туннельд ямар гадаад
(эсвэл нийтийн) IP хаягууд байгааг &man.ifconfig.8; ашиглан мэдэгдэх
ёстой. Тэгээд дараа нь хувийн IP хаягуудыг &man.ifconfig.8; тушаал ашиглан
тохируулах ёстой.
Сүлжээ #1 дэх гарц машин дээр туннелийг тохируулахын тулд та дараах тушаалуудыг
ашиглах болно.
&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0 tunnel A.B.C.D W.X.Y.Z
&prompt.root; ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff
Нөгөө нэг гарц машин дээр та адил тушаалуудыг гэхдээ IP хаягуудын дарааллыг
эсрэгээр тавин ажиллуулна.
&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0 tunnel W.X.Y.Z A.B.C.D
&prompt.root; ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff
Та дараа нь:
ifconfig gif0
ажиллуулж тохиргоог харж болно. Жишээ нь сүлжээ #1 дээрх гарц машин
дээр та үүнийг харах болно:
&prompt.root; ifconfig gif0
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
tunnel inet A.B.C.D --> W.X.Y.Z
inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff
Эндээс харахад A.B.C.D болон
W.X.Y.Z физик хаягуудын хооронд туннель
үүссэн бөгөөд туннелээр зөвшөөрөгдөх урсгал нь 192.168.1.1 болон 192.168.2.1-ийн хооронд байна.
Энэ нь бас хоёр машин дээрх чиглүүлэлтийн хүснэгтэд бас оруулга нэмсэн байх
бөгөөд та үүнийг netstat -rn тушаал ашиглан шалгаж
болно. Доорх гаралт нь сүлжээ #1 дэх гарц машиных юм.
&prompt.root; netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
...
192.168.2.1 192.168.1.1 UH 0 0 gif0
...
Flags
утгын харуулж байгаагаар энэ нь хостын чиглүүлэлт
бөгөөд энэ нь гарц бүр нөгөө гарц уруу хэрхэн хүрэхээ мэдэх боловч тэд харин
өөрсдийнхөө харгалзах сүлжээнүүд уруу хэрхэн хүрэхээ мэдэхгүй гэсэн үг юм.
Энэ асуудлыг удахгүй засварлах болно.
Энэ нь хоёр машин дээр хоёулан дээр нь галт хана ажиллаж гэсэн үг юм.
Таны VPN урсгалын хувьд үүнийг тойрон гарах шаардлагатай. Та хоёр сүлжээний
хоорондох бүх урсгалыг зөвшөөрөх юм уу эсвэл VPN-ий хоёр төгсгөлийг нэгээс нөгөөг
хамгаалах галт ханын дүрмүүдийг оруулж болох юм.
Хэрэв VPN-ээр өнгөрөх бүх урсгалыг зөвшөөрөхөөр галт ханыг тохируулах
юм бол энэ нь тест хийхийг ихээхэн амарчлах болно. Та дараа нь хэзээ ч галт ханаа
илүү чангаруулж болно. Хэрэв та &man.ipfw.8; тушаалыг гарц машинууд дээр
ашиглаж байгаа бол дараах
ipfw add 1 allow ip from any to any via gif0
тушаал нь хоёр төгсгөлийн цэгийн хоорондох бүх урсгалыг таны галт ханын
бусад дүрмүүдийг хөндөлгүйгээр зөвшөөрөх болно. Мэдээж та энэ тушаалыг хоёр
гарц хост дээр хоёулан дээр ажиллуулах хэрэгтэй болно.
Нэг гарц машинаас нөгөө уруугаа ping хийхийг зөвшөөрөхөд хангалттай.
192.168.1.1 дээр та дараах
ping 192.168.2.1
тушаалыг ажиллуулж хариу хүлээж авахаас гадна мөн нөгөө гарц машин
дээрээс бас ингэж хийж чадаж байх ёстой.
Гэхдээ та хоёр сүлжээний дотоод машинууд уруу арай хүрч чадахгүй байх
ёстой. Энэ нь чиглүүлэлтээс болж байгаа юм -- гарц машинууд бие бие уруугаа
хэрхэн хүрэхээ мэдэж байгаа боловч нэг нэгнийнхээ цаана байгаа сүлжээнд хэрхэн
хүрэхийг мэдэхгүй.
Энэ асуудлыг шийдэхийн тулд та гарц машин бүр дээр статик чиглүүлэлт нэмэх
хэрэгтэй. Эхний гарц дээр хийх тушаал нь:
route add 192.168.2.0 192.168.2.1 netmask 0xffffff00
Энэ нь 192.168.2.0 сүлжээний
хостуудад хүрэхийн тулд пакетуудыг 192.168.2.1
хост уруу илгээ
гэж байна. Та үүнтэй адил тушаалыг нөгөө гарц дээр бас
ажиллуулах хэрэгтэй бөгөөд гэхдээ 192.168.1.x
хаягуудыг ашиглах ёстой.
Одоо нэг сүлжээн дэх хостуудын IP урсгал нөгөө сүлжээний хостуудад хүрэх боломжтой
болно.
Энэ нь одоо хоёр сүлжээний хооронд VPN-ий гуравны хоёрыг үүсгэж байгаа бөгөөд
аль болох виртуал
аар үүсгэгдсэн сүлжээ
юм.
Энэ нь одоохондоо хувийн биш байгаа. Та үүнийг &man.ping.8; болон &man.tcpdump.1;
ашиглан тест хийж болно. Гарц хост уруу нэвтрэн орж дараах тушаалыг ажиллуулна
tcpdump dst host 192.168.2.1
Тэр хост дээрээ өөр сессээр дараах тушаалыг ажиллуулна
ping 192.168.2.1
Та иймэрхүү гаралтыг харах болно:
16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply
Эндээс харахад ICMP мэдэгдлүүд нааш цааш шифрлэгдэлгүй явж байна.
Хэрэв та пакетуудаас өгөгдлийн байтуудыг илүүтэйгээр авахын тулд &man.tcpdump.1;
уруу параметрийг өгч ашигласан бол илүү мэдээлэл
та харж болох юм.
Энэ нь мэдээж хүлээн авах боломжгүй зүйл юм. Дараагийн хэсэгт
хоёр сүлжээний хоорондох холболтыг бүх урсгал нь автоматаар шифрлэгдэхээр
аюулгүй болгох талаар хэлэлцэх болно.
Дүгнэн хэлэхэд:
Хоёр цөмийг device gif
мөртэйгөөр тохируулна.
Гарц хост #1 дээрх /etc/rc.conf файлд засвар хийн
- дараах мөрүүдийг нэмнэ (шаардлагатай тохиолдолд IP хаягуудыг солино).
+ дараах мөрүүдийг нэмнэ (шаардлагатай тохиолдолд IP хаягуудыг сольно).
gif_interfaces="gif0"
gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"
Хоёр хост дээрх гарц скриптийг (/etc/rc.firewall,
эсвэл үүнтэй адил) засварлаж доор дурдсаныг нэмнэ.
ipfw add 1 allow ip from any to any via gif0
IP хаягуудын дарааллыг эсрэгээр болгон гарц хост #2 дээрх
/etc/rc.conf файлд адил өөрчлөлтийг
хийнэ.
Алхам 2: Холболтыг аюулгүй болгох
Холболтыг аюулгүй болгохын тулд бид IPsec-ийг ашиглах болно. IPsec нь
хоёр хостыг шифрлэлтийн түлхүүр дээр зөвшилцүүлж дараа нь уг хоёр хостын хооронд
өгөгдлийг шифрлэхийн тулд энэ түлхүүрийг ашиглах арга замыг өгдөг.
Энд тохиргооны хоёр талбарыг бодолцох хэрэгтэй.
Ашиглах шифрлэлтийн арга зам дээр хоёр хост зөвшилцөх тийм арга зам
байх ёстой. Хоёр хост энэ арга зам дээр зөвшилцсөний дараа тэдгээрийн
хооронд аюулгүй байдлын нэгдэл
байна гэж
үздэг.
Аль урсгалыг шифрлэх ёстойг заах арга зам байх ёстой. Мэдээж та өөрийн бүх
гарч байгаа урсгалаа шифрлэхийг хүсэхгүй байх -- та зөвхөн VPN-ий хэсэг
болсон урсгалыг шифрлэхийг хүснэ. Аль урсгалыг шифрлэхийг тодорхойлохын
тулд хийгдэх дүрмүүд нь security policies
буюу
аюулгүй байдлын бодлогууд
гэгдэнэ.
Аюулгүй байдлын нэгдлүүд болон аюулгүй байдлын бодлогуудын ажиллагааг
цөм хангаж байдаг бөгөөд хэрэглэгчдийн талбарын програмуудаар засварлагдаж
болно. Гэхдээ үүнийг хийхийн өмнө IPsec болон Encapsulated
Security Payload (ESP) буюу Хайрцаглагдсан Аюулгүй байдлын Ачаа
протоколыг цөм дэмжихээр та тохируулах хэрэгтэй. Цөмийг:
цөмийн тохируулгууд
IPSEC
options IPSEC
options IPSEC_ESP
тохируулгатай тохируулан дахин эмхэтгэж суулгаад ачаалан үүнийг хийнэ.
Урьдын адил та хоёр гарц машин дээрх цөмийн хувьд үүнийг хийх ёстой.
IKE
Аюулгүй байдлын нэгдлүүдийг тохируулах үед танд хоёр сонголт байна.
Шифрлэлтийн алгоритм, шифрлэлтийн түлхүүрүүд гэх зэргүүдийг сонгож
тэдгээр нэгдлүүдийг хоёр хостын хооронд гараараа тохируулж болох бөгөөд
эсвэл эдгээрийг хийх Internet Key Exchange protocol (IKE) буюу
Интернэтийн Түлхүүр Солилцох протоколыг шийддэг дэмонуудыг та ашиглаж
болно.
Би сүүлийнхийг зөвлөж байна. Өөр бусдыг тооцохгүй юм бол үүнийг
тохируулах нь амархан.
IPsec
аюулгүй байдлын бодлогууд
setkey
Аюулгүй байдлын бодлогуудыг засварлах болон үзүүлэхдээ &man.setkey.8;-г
ашиглан хийдэг. Адилтгах юм бол setkey нь цөмийн
аюулгүй байдлын бодлогын хүснэгтүүдэд &man.route.8; цөмийн чиглүүлэлтийн
хүснэгтүүдэд зориулагдсан шиг зориулагдсан байна. setkey
нь бас одоогийн аюулгүй байдлын нэгдлүүдийг үзүүлж чадах бөгөөд адилтган
цааш үргэлжлүүлбэл энэ нь бас netstat -r тушаалын
нэгэн адил болох юм.
FreeBSD-ээр аюулгүй байдлын нэгдлүүдийг удирдах дэмонуудын хувьд хэд хэдэн
сонголт байдаг. Энэ нийтлэл нь эдгээрийн нэг &os;-ийн Портуудын цуглуулгын
security/ipsec-tools-д байдаг
racoon-ийг хэрхэн ашиглах талаар тайлбарлах болно.
racoon
racoon програм хангамж хоёр гарц машин
дээр хоёулан дээр нь ажиллах ёстой. Энэ нь хост бүр дээр VPN-ий нөгөө төгсгөлийн IP хаяг болон
нууц түлхүүртэйгээр (таны сонгох түлхүүр байх бөгөөд хоёр гарц машин дээр ижил байх ёстой)
тохируулагддаг.
Дараа нь хоёр дэмон нэг нэгэндээ хандаж тэдгээр нь өөрсдөө хэн хэн гэж хэлснээ
(таны тохируулсан нууц түлхүүрийг ашиглан) баталгаажуулдаг. Дэмонууд дараа нь
шинэ нууц түлхүүрийг үүсгэж түүнийг ашиглан VPN-ээр урсгалыг шифрлэдэг.
Тэд энэ нууцаа үе үе өөрчилдөг бөгөөд халдагч түлхүүрүүдийн аль нэгийг эвдсэн ч (цагаа
тулахаар энэ нь онолын хувьд бараг боломжгүй зүйл) гэсэн энэ нь халдагчид муу юм
хийх боломж олгодоггүй -- түлхүүрийг эвдэх тэр үед хоёр дэмон өөр түлхүүрийг сонгосон байна.
racoon-ий тохиргооны файл ${PREFIX}/etc/racoon-д
байрлана. Та энд тохиргооны файлыг олох ёстой бөгөөд түүнд нэг их өөрчлөлт хийгдэх ёсгүй.
Таны өөрчлөх шаардлагатай racoon-ий тохиргооны файлын өөр нэг бүрэлдэхүүн хэсэг нь
pre-shared key буюу урьдчилан хуваалцсан түлхүүр
юм.
racoon-ий анхдагч тохиргоо үүнийг ${PREFIX}/etc/racoon/psk.txt-д
байгаа гэж боддог. Урьдчилан хуваалцсан түлхүүр нь таны урсгалыг VPN-ийн дагуу шифрлэх
түлхүүр биш бөгөөд харин энэ нь ердөө л түлхүүр удирдах дэмонуудыг нэг нь
нөгөөдөө итгэхийг зөвшөөрөх токен гэдгийг тэмдэглэж хэлэх нь зүйтэй юм.
psk.txt нь таны ажиллаж байгаа алсын сайт бүрийн
мөрийг агуулсан байна. Хоёр сайт бүхий энэ жишээн дээр psk.txt
файл бүр нэг мөрийг агуулсан байна (VPN-ий төгсгөлүүд бүр зөвхөн нөгөө төгсгөлтэйгээ
ажилладаг).
Гарц хост #1 дээр энэ мөр иймэрхүү харагдах ёстой:
W.X.Y.Z secret
Энэ нь алсын төгсгөлийн нийтийн IP хаяг, хоосон зай,
тэгээд нууц үгийг илэрхийлэх текст мэдээлэл байна. Мэдээж та өөрийн түлхүүртээ
secret
гэдгийг ашиглах ёсгүй -- нууц үгийг сонгох энгийн дүрэм энд
үйлчилнэ.
Гарц хост #2 дээр энэ мөр иймэрхүү харагдах ёстой
A.B.C.D secret
Энэ нь алсын төгсгөлийн IP хаяг болон адилхан нууц түлхүүр байна.
psk.txt нь racoon ажиллахаас өмнө
0600 (өөрөөр хэлбэл root-д
зөвхөн унших/бичих) горимд байна.
Та racoon-ийг хоёр гарц машин дээр ажиллуулах ёстой. Та бас
UDP-ээр ISAKMP (Internet Security Association
Key Management Protocol буюу Интернэтийн Аюулгүй байдлын Нэгдлийн Түлхүүр
Удирдах Протокол) порт уруу зөөгдөх IKE урсгалыг зөвшөөрөх галт ханын зарим
дүрмүүдийг нэмэх хэрэгтэй. Дахин хэлэхэд энэ нь таны галт ханын дүрмийн олонлогт
нэлээн эрт байх шаардлагатай.
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
racoon ажилласны дараа та нэг гарц хостоос нөгөө гарц хост уруу ping хийж
үзэж болно. Холболт нь шифрлэгдээгүй байх боловч racoon дараа нь аюулгүй байдлын
нэгдлүүдийг хоёр хостын хооронд тохируулна -- энэ нь хором болж өнгөрч болох бөгөөд
ping тушаал хариу өгч эхлэх хүртэл богино саатал маягаар танд харагдаж болох юм.
Аюулгүй байдлын нэгдэл тохируулагдсаны дараа та үүнийг &man.setkey.8; ашиглан
үзэж болно.
setkey -D
тушаалыг аль нэг хост дээр ажиллуулж аюулгүй байдлын нэгдлийн мэдээллийг харна.
Энэ нь асуудлын нэг хагас нь юм. Нөгөө нэг хагас нь өөрийн аюулгүй байдлын
бодлогуудыг тохируулах явдал юм.
Ухаалаг аюулгүй байдлын бодлогыг үүсгэхийн тулд энэ хүртэл юуг хийснээ эргэн
харцгаая. Энэ хэлэлцээ нь холболтын төгсгөлийн хоёулангийнх нь хувьд авч
үзнэ.
Таны гадагш илгээх IP пакет бүр пакетийн тухай өгөгдлийг агуулах толгойтой
байдаг. Толгой нь эхлэл болон төгсгөлийн IP хаягуудыг агуулдаг. Бидний мэдэж
байгаагаар 192.168.x.y зэрэг
хувийн IP хаягууд нийтийн Интернэт дээр ил гарах ёсгүй. Харин тэд эхлээд өөр
пакет дотор хайрцаглагдах ёстой. Энэ пакет нь хувийн хаягуудын оронд солигдсон
нийтийн эхлэл болон төгсгөл IP хаягуудтай байх ёстой.
Тэгэхээр хэрэв таны гарч байгаа пакет иймэрхүү харагдаж эхэлбэл:
.----------------------.
| Src: 192.168.1.1 |
| Dst: 192.168.2.1 |
| <other header info> |
+----------------------+
| <packet data> |
`----------------------'
Дараа нь өөр нэг пакетийн дотор энэ нь хайрцаглагдан иймэрхүү харагдах болно:
.--------------------------.
| Src: A.B.C.D |
| Dst: W.X.Y.Z |
| <other header info> |
+--------------------------+
| .----------------------. |
| | Src: 192.168.1.1 | |
| | Dst: 192.168.2.1 | |
| | <other header info> | |
| +----------------------+ |
| | <packet data> | |
| `----------------------' |
`--------------------------'
Энэ хайрцаглалт нь gif төхөөрөмжөөр
хийгдэнэ. Пакет нь гадна талдаа жинхэнэ IP хаягуудтай байх бөгөөд
бидний эхний пакет Интернэт уруу гарах пакет дотор орсон байгааг харж болно.
Мэдээж бид VPN-үүдийн хоорондох бүх урсгалыг шифрлэхийг хүснэ.
Та үүнийг иймэрхүүгээр үгчлэн хэлж болно:
Хэрэв пакет A.B.C.D-с гарч W.X.Y.Z уруу чиглэсэн бол шаардлагатай аюулгүй
байдлын нэгдлүүдийг ашиглан шифрлэнэ.
Хэрэв пакет нь W.X.Y.Z-с ирж A.B.C.D уруу чиглэсэн бол шаардлагатай аюулгүй
байдлын нэгдлүүдийг ашиглан буцааж шифрлэнэ.
Ингэж хэлэхэд ер нь бараг л зөв, ойрхон байна, гэхдээ бас тийм ч зөв биш юм. Хэрэв та
үүнийг хийсэн бол W.X.Y.Z-с гарсан болон
түүн уруу чиглэсэн, бүр VPN-ий хэсэг ч биш бүх урсгал шифрлэгдэх болно. Та яг үүнийг
хүсээгүй байх. Зөв бодлого нь дараах маягаар байна
Хэрэв пакет A.B.C.D-с гарч тэр пакет нь өөр пакет дотор орон
хайрцаглагдан W.X.Y.Z уруу чиглэсэн бол шаардлагатай аюулгүй
байдлын нэгдлүүдийг ашиглан шифрлэнэ.
Хэрэв пакет нь W.X.Y.Z-с ирж тэр пакет нь өөр пакет дотор орон
хайрцаглагдан A.B.C.D уруу чиглэсэн бол шаардлагатай аюулгүй
байдлын нэгдлүүдийг ашиглан буцааж шифрлэнэ.
Нарийн өөрчлөлт, гэхдээ хэрэгтэй нэгэн.
Аюулгүй байдлын бодлогууд нь бас &man.setkey.8; ашиглагдан заагдана.
&man.setkey.8; нь бодлого тодорхойлох тохиргооны хэлтэй байна. Та
тохиргооны заавруудыг stdin-ээс оруулж болох бөгөөд эсвэл тохиргооны заавруудыг агуулах
файлын нэрийг зааж өгөх тохируулгыг ашиглаж болно.
Гарц хост #1-ийн (A.B.C.D гэсэн нийтийн
IP хаягтай) тохиргоо W.X.Y.Z уруу чиглэсэн
бүх гарах урсгалыг хүчээр шифрлэхийн тулд:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Эдгээр тушаалуудыг файлд (өөрөөр хэлбэл
/etc/ipsec.conf) хийгээд ажиллуулаарай
&prompt.root; setkey -f /etc/ipsec.conf
нь бид аюулгүй бодлогын мэдээллийн санд
дүрэм нэмэхийг хүсэж байгааг &man.setkey.8;-д хэлж өгч байна. Энэ мөрийн бусад нь
энэ бодлогод аль пакет таарахыг заана. A.B.C.D/32 ба W.X.Y.Z/32 нь энэ бодлого хамаарах
сүлжээ болон хостуудыг таних IP хаягууд болон сүлжээний багууд юм. Энэ
тохиолдолд эдгээр хоёр хостуудын хоорондох урсгалд үүнийг хамааруулахыг
бид хүсэж байна. нь энэ бодлого зөвхөн
бусад пакетуудыг хайрцаглах пакетуудад хамаатай гэдгийг цөмд хэлнэ.
тохируулга нь энэ бодлого гарах пакетуудад
хамаатайг хэлэх бөгөөд тохируулга нь пакет
нууцлагдахыг хэлж байна.
Хоёр дахь мөр нь энэ пакет хэрхэн шифрлэгдэхийг заана.
нь ашиглагдах протокол байхад
нь пакетийг цаашаагаа IPsec пакет дотор орж хайрцаглалт хийгдэхийг заана.
A.B.C.D болон W.X.Y.Z-ийн давхардсан хэрэглээ нь
ашиглах аюулгүй байдлын нэгдлийг сонгоход хэрэглэгдэх бөгөөд төгсгөлийн
тохируулга энэ дүрмэнд таарсан пакетуудыг
шифрлэх ёстойг зааж байна.
Энэ дүрэм нь зөвхөн гарч байгаа пакетуудтай таарна. Ирж байгаа пакетийн
хувьд танд үүнтэй адил дүрэм хэрэгтэй.
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
Энэ тохиолдолд -ийн оронд
тохируулгыг ашиглаж шаардлагын дагуу IP хаягуудыг эсрэгээр болгосныг хараарай.
Нөгөө нэг гарц хостод (W.X.Y.Z
нийтийн IP хаягтай) үүнтэй адил дүрмүүд хэрэгтэй.
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Төгсгөлд нь та ESP болон IPENCAP пакетуудыг нааш цааш зөвшөөрөх
галт ханын дүрмүүдийг нэмэх хэрэгтэй. Эдгээр дүрмүүдийг хост бүр дээр
нэмэх шаардлагатай.
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
Дүрмүүд нь тэгш хэмт учир адилхан дүрмүүдийг та гарц хост бүр дээр ашиглаж
болно.
Одоо гарч байгаа пакетууд үүнтэй адил харагдах болно:
.------------------------------. --------------------------.
| Src: A.B.C.D | |
| Dst: W.X.Y.Z | |
| <other header info> | | Encrypted
+------------------------------+ | packet.
| .--------------------------. | -------------. | contents
| | Src: A.B.C.D | | | | are
| | Dst: W.X.Y.Z | | | | completely
| | <other header info> | | | |- secure
| +--------------------------+ | | Encap'd | from third
| | .----------------------. | | -. | packet | party
| | | Src: 192.168.1.1 | | | | Original |- with real | snooping
| | | Dst: 192.168.2.1 | | | | packet, | IP addr |
| | | <other header info> | | | |- private | |
| | +----------------------+ | | | IP addr | |
| | | <packet data> | | | | | |
| | `----------------------' | | -' | |
| `--------------------------' | -------------' |
`------------------------------' --------------------------'
Тэдгээрийг VPN-ий хамгийн төгсгөлд хүлээн авах үед тэдгээр нь эхлээд
буцаан шифрлэгдэнэ (racoon-аар тохиролцсон аюулгүй байдлын нэгдлүүдийг
ашиглан). Тэдгээр нь үүний дараа хоёр дахь давхаргыг гаргах
gif интерфэйс уруу орж хамгийн дотор байрлах
пакеттай үлдэх хүртэл боловсруулагдаад дотоод сүлжээ руу аялах болно.
Өмнө дурдсаны адил та &man.ping.8; тестийг ашиглан аюулгүй байдлыг
шалгаж болно. Эхлээд A.B.C.D гарц
машин уруу нэвтрэн орж дараах тушаалыг ажиллуулна:
tcpdump dst host 192.168.2.1
Тэр хост дээрээ өөр сессээр дараах тушаалыг ажиллуулна
ping 192.168.2.1
Энэ удаад та доор дурдсантай адил гаралтыг харах ёстой:
XXX tcpdump output
Одоо эндээс харах юм бол &man.tcpdump.1; нь ESP пакетуудыг үзүүлж
байна. Хэрэв та тэдгээрийг тохируулгатай шалгахыг оролдвол
шифрлэлтээс болоод (мэдээж) нууцлаг харагдах болно.
Баяр хүргэе. Та дөнгөж сая алсын хоёр сайтын хооронд VPN
тохирууллаа.
Дүгнэн хэлэхэд
Хоёр цөмийг хоёуланг нь дараах тохируулгатай тохируулна:
options IPSEC
options IPSEC_ESP
security/ipsec-tools суулгана. Алсын хостын
IP хаяг болон тэдгээрийн мэддэг нууц түлхүүрийн оруулгыг нэмж
${PREFIX}/etc/racoon/psk.txt
файлыг хоёр гарц хост дээр хоёулан дээр засварлана. Энэ файлын горим
0600 байгааг шалгаарай.
Хост бүр дээрх /etc/rc.conf файлд дараах
мөрүүдийг нэмээрэй:
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
Хост бүр дээр шаардлагатай spadd мөрүүдийг агуулсан
/etc/ipsec.conf файл үүсгэна. 1-р гарц
хост дээр энэ нь ийм байна:
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
2-р гарц хост дээр энэ нь ийм байна:
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
Хост бүр дээр IKE, ESP, болон IPENCAP урсгалыг зөвшөөрөх
галт ханын дүрмүүд нэмээрэй:
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
Өмнөх хоёр алхам VPN-ийг эхлүүлэн ажиллуулахад хангалттай байх
ёстой. Сүлжээ бүрийн машинууд өөр хоорондоо IP хаягуудаараа
хандах боломжтой болох бөгөөд холболтын дагуух бүх урсгал автоматаар
аюулгүй шифрлэгдэх болно.
Шерн
Ли
Хувь нэмэр болгон оруулсан
OpenSSH
OpenSSH
аюулгүй байдал
OpenSSH
OpenSSH нь алсын машинуудад аюулгүйгээр хандах
сүлжээний холболтын хэрэгслүүдийн олонлог юм. rlogin,
rsh, rcp, болон
telnet-ийг энэ програмаар шууд орлуулан ашиглаж болно.
Мөн TCP/IP холболтууд аюулгүйгээр SSH-ээр туннель хийгдэж/дамжуулагдаж
болдог. OpenSSH нь сэм чагналт, холболт булаан авалт, болон
бусад сүлжээний түвшний халдлагуудыг үр дүнтэйгээр устгаж бүх трафикийг шифрлэдэг.
OpenSSH-г OpenBSD төсөл дэмжиж байдаг бөгөөд
бүх сүүлийн үеийн алдааны засварууд болон шинэчлэлтүүд бүхий SSH v1.2.12 дээр
тулгуурласан байдаг. Энэ програм нь SSH протокол 1 болон 2-той хоёулантай нь
нийцтэй.
OpenSSH-ийг ашиглах давуу тал
&man.telnet.1; эсвэл &man.rlogin.1; ашиглаж байх үед сүлжээгээр
илгээгдэж байгаа өгөгдөл цэвэр, шифрлэгдээгүй хэлбэрээр байдаг.
Сүлжээний шиншлэгчид клиент болон серверийн хооронд хаана ч байсан гэсэн
таны хэрэглэгч/нууц үгийн мэдээлэл эсвэл таны сессээр дамжсан өгөгдлийг
хулгайлж чадна. OpenSSH нь ийм асуудлаас
хамгаалж төрөл бүрийн нэвтрэлт таних болон шифрлэх аргуудыг санал болгодог.
sshd-г идэвхжүүлэх
OpenSSH
идэвхжүүлэх
sshd нь стандарт &os; суулгацын явцад
харуулагдах тохируулга юм. sshd идэвхжсэн
эсэхийг харахдаа rc.conf файлаас дараах мөрийг
шалгаарай:
sshd_enable="YES"
Энэ нь дараагийн удаа таны систем эхлэхэд OpenSSH-д
зориулсан &man.sshd.8; дэмон програмыг дуудна. Мөн /etc/rc.d/sshd
&man.rc.8; скрипт ашиглан OpenSSH-г эхлүүлэх
боломжтой байдаг:
/etc/rc.d/sshd start
SSH клиент
OpenSSH
клиент
&man.ssh.1; хэрэгсэл &man.rlogin.1;-тэй адил
ажилладаг.
&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******
Нэвтрэлт нь rlogin эсвэл
telnet ашиглан үүсгэгдсэн сесс шиг үргэлжлэх болно.
SSH нь хэрэглэгч холбогдоход серверийн жинхэнэ эсэхийг шалгахын тулд
түлхүүр хээ шалгах системийг хэрэглэдэг. Хэрэглэгч зөвхөн эхний удаа холбогдоход
yes гэж оруулахыг шаардана. Дараа дараагийн
нэвтрэлт оролдлогууд бүгд хадгалсан хээ шалгах түлхүүртэй харьцуулагдан
шалгагддаг. Хэрэв хадгалсан хээ нь дараа дараагийн нэвтрэлтийн оролдлогуудаас
хүлээн авсан хээнээс өөр бол SSH клиент нь танд түгшүүр өгнө. Хээнүүд
~/.ssh/known_hosts файлд эсвэл SSH v2-ийн хээнүүд
~/.ssh/known_hosts2 файлд
хадгалагдана.
Анхдагчаар OpenSSH серверүүдийн
сүүлийн үеийн хувилбарууд зөвхөн SSH v2 холболтуудыг хүлээн авдаг.
Клиент нь хэрэв боломжтой бол 2-р хувилбарыг ашиглах бөгөөд боломжгүй бол
1-р хувилбарыг ашигладаг. эсвэл
тохируулгуудыг 1-р эсвэл 2-р хувилбаруудад зориулан
дамжуулан клиентэд зөвхөн аль нэгийг ашиглахыг хүчилж болно. 1-р хувилбарын
нийцтэй байдал нь клиентэд хуучин хувилбаруудтай нийцтэй байх зорилгоор дэмжигдсэн
байдаг.
Аюулгүй хуулбарлалт
OpenSSH
аюулгүй хуулбарлалт
scp
&man.scp.1; тушаал &man.rcp.1;-тэй адил ажилладаг; энэ нь файлыг алсын
машинаас эсвэл машин уруу, ялгаатай нь аюулгүйгээр хуулдаг.
&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password: *******
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;
Өмнөх жишээн дээр энэ хостын хувьд хээ нь аль хэдийн хадгалагдсан болохоор
&man.scp.1;-ийг энд ашиглах үед шалгагддаг.
&man.scp.1;-ээр дамжуулсан нэмэлт өгөгдлүүд нь &man.cp.1;-тэй адил бөгөөд
эхний нэмэлт өгөгдөлд файл эсвэл файлууд, хоёр дахь дээр очих файлыг
зааж өгдөг. Файл нь сүлжээгээр SSH-ээр татагддаг болохоор файлын нэг эсвэл хэд хэдэн
нэмэлт өгөгдлүүд
хэлбэрийг авдаг.
Тохиргоо
OpenSSH
тохиргоо
OpenSSH дэмон болон клиентийн
системийн дагуух тохиргооны файлууд /etc/ssh
санд байрладаг.
ssh_config клиентийн тохируулгуудыг
тохируулдаг бөгөөд sshd_config нь
дэмонг тохируулдаг.
Мөн
(анхдагчаар /usr/sbin/sshd) болон
rc.conf
тохируулгууд тохиргооны түвшнүүдийг илүүтэйгээр хангадаг.
ssh-keygen
Нууц үгүүдийг ашиглахын оронд &man.ssh-keygen.1; нь
хэрэглэгчийг шалгаж танихад DSA эсвэл RSA түлхүүрүүдийг үүсгэхэд
хэрэглэгдэж болно:
&prompt.user; ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com
&man.ssh-keygen.1; нь шалгаж танихад хэрэглэгдэх нийтийн болон хувийн
түлхүүр хослолыг үүсгэнэ. Хувийн түлхүүр ~/.ssh/id_dsa эсвэл
~/.ssh/id_rsa-д хадгалагдах бөгөөд харин нийтийн түлхүүр
нь ~/.ssh/id_dsa.pub эсвэл
~/.ssh/id_rsa.pub-д DSA болон RSA түлхүүрийн төрлүүдэд
зориулагдан хадгалагддаг. Тохируулга нь ажиллахын тулд нийтийн түлхүүр нь алсын машины
~/.ssh/authorized_keys файлд хийгдэх ёстой байдаг.
Үүнтэй адилаар нийтийн түлхүүрүүдийн RSA хувилбар нь
~/.ssh/authorized_keys файлд бас хийгдэх ёстой.
Энэ нь нууц үгүүдийн оронд SSH түлхүүрүүдийг ашиглан алсын машин уруу
холбогдохыг зөвшөөрөх болно.
Хэрэв нэвтрэх үгнүүд &man.ssh-keygen.1;-д ашиглагдаж байгаа бол
хувийн түлхүүрийг хэрэглэхийн тулд хэрэглэгчээс нууц үгийг нэвтрэх болгонд
асуудаг. &man.ssh-agent.1; нь урт нэвтрэх үгнүүдийг дахин дахин оруулах
тэр зовлонг зөөллөж чадах бөгөөд
хэсэгт тайлбарлагдсан байгаа болно.
Төрөл бүрийн тохируулгууд болон файлууд нь
таны систем дээр байгаа OpenSSH-ийн
хувилбаруудаас шалтгаалан өөр өөр байдаг; асуудалтай учрахгүйн тулд
та &man.ssh-keygen.1; гарын авлагын хуудаснаас лавлах
хэрэгтэй.
ssh-agent болон ssh-add
&man.ssh-agent.1; болон &man.ssh-add.1; хэрэгслүүд нь
нэвтрэх үгнүүдийг дахин дахин бичүүлэлгүйгээр SSH
түлхүүрүүдийг санах ойд дуудан ашиглаж болох аргуудаар хангадаг.
&man.ssh-agent.1; хэрэгсэл нь түүн уруу дуудагдсан хувийн түлхүүр(үүд)
ашиглан жинхэнэ эсэхийг шалгах танилтыг зохицуулна. &man.ssh-agent.1; нь өөр програмыг
ачаалахад хэрэглэгдэх ёстой. Хамгийн хялбартаа энэ нь бүрхүүл
эсвэл илүү дэвшилттэйгээр ашиглавал цонхны удирдагч ажиллуулж болох
юм.
&man.ssh-agent.1;-ийг бүрхүүлд ашиглахын тулд үүнийг эхлээд
бүрхүүлтэй цуг нэмэлт өгөгдөл маягаар ажиллуулах шаардлагатай. Хоёрдугаарт
хэн бэ гэдэг мэдээллийг (identity) &man.ssh-add.1;-г ажиллуулан нэмэх хэрэгтэй бөгөөд
түүнд хувийн түлхүүрийн нэвтрэх үгнүүдийг өгөх хэрэгтэй. Эдгээр алхмууд
хийгдсэний дараа хэрэглэгч харгалзах нийтийн түлхүүр суулгагдсан
дурын хост уруу &man.ssh.1; хийж чадах болно.
Жишээ нь:
&prompt.user; ssh-agent csh
&prompt.user; ssh-add
Enter passphrase for /home/user/.ssh/id_dsa:
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
&prompt.user;
X11 дээр &man.ssh-agent.1; хэрэглэхийн тулд &man.ssh-agent.1;-ийн
дуудлага ~/.xinitrc-д байх шаардлагатай.
Ингэснээр X11-д ачаалагдсан бүх програмуудад &man.ssh-agent.1;-ийн
үйлчилгээнүүдийг үзүүлэх болно. Жишээ ~/.xinitrc
файл иймэрхүү харагдах болно:
exec ssh-agent startxfce4
Энэ нь &man.ssh-agent.1;-ийг ажиллуулах бөгөөд тэр нь эргээд
X11 эхлэх бүрт XFCE-ийг ажиллуулна.
Ингэж хийгдсэний дараа өөрчлөлтүүд нь үйлчлэхийн тулд X11 дахин эхэлсний хойно
өөрийн SSH түлхүүрүүдийг бүгдийг ачаалахын тулд ердөө л &man.ssh-add.1;-ийг
ажиллуулаарай.
SSH туннель хийх
OpenSSH
туннель хийх
OpenSSH нь шифрлэгдсэн сессийн үед өөр протоколыг
хайрцаглах туннель үүсгэх чадвартай байдаг.
Дараах тушаал telnet-д зориулж туннель үүсгэхийг
&man.ssh.1;-д хэлж өгнө:
&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;
ssh тушаал дараах тохируулгуудтай
хэрэглэгдэнэ:
ssh-ийг протоколын 2-р хувилбарыг
ашиглахыг зааж өгнө. (хэрэв та хуучин SSH серверүүдтэй ажиллаж
байгаа бол үүнийг битгий ашиглаарай)
Тушаал байхгүй эсвэл зөвхөн туннель гэдгийг заана. Хэрэв үүнийг
орхивол ssh ердийн сесс эхлүүлнэ.
ssh-ийг ард, далд ажиллуулахыг
заана.
Локал туннелийг localport:remotehost:remoteport
загвараар зааж өгнө.
Алсын SSH сервер.
SSH туннель нь сонсох сокетийг localhost-ийн
заагдсан порт дээр үүсгэн ажилладаг. Дараа нь локал хост/порт дээр хүлээн
авсан дурын холболтыг SSH-ээр дамжуулан заасан алсын хост болон порт уруу
илгээдэг.
Жишээн дээр localhost дээрх 5023
порт нь алсын машины localhost дээрх 23
порт уруу дамжуулагдаж байна. 23 нь
telnet учир энэ нь SSH туннелээр аюулгүй
telnet сесс үүсгэнэ.
SMTP, POP3, FTP гэх зэрэг ямар ч аюултай TCP протоколуудын
гүйцэтгэлийг хялбаршуулахад үүнийг ашиглаж болно.
SMTP-д зориулан SSH ашиглан аюулгүй туннель үүсгэх
&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP
Үүнийг &man.ssh-keygen.1; болон нэмэлт хэрэглэгчийн бүртгэлүүдтэй
цуг илүү үл үзэгдэх/төвөггүй SSH туннель хийх орчин үүсгэхэд ашиглаж болно.
Түлхүүрүүд нь нууц үг бичихийн оронд ашиглагдаж болох бөгөөд туннелиуд
нь тусдаа хэрэглэгч маягаар ажиллаж чадна.
SSH туннелийн практик жишээнүүд
POP3 сервер уруу аюулгүй хандах
Ажил дээр чинь гаднаас холболтууд хүлээн авах SSH сервер байна.
Бас тэр оффисийн сүлжээнд POP3 сервер ажиллуулж байгаа
захидлын сервер байна. Таны гэр болон оффисийн хоорондын
сүлжээ болон сүлжээний зам итгэж болохоор эсвэл итгэж болохооргүй
байж магадгүй юм. Ийм учраас та өөрийн захидлыг аюулгүй аргаар
шалгах хэрэгтэй юм. Үүний шийдэл нь өөрийн оффисийн SSH сервер
уруу SSH холболт үүсгэж захидлын сервер уруу туннель хийх явдал
юм.
&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******
Туннель эхлэн ажилласны дараа та өөрийн захидлын клиентийнхээ
POP3 хүсэлтүүдийг localhost-ийн 2110 порт уруу
илгээхээр зааж өгч болно. Эндэх холболт туннелээр аюулгүйгээр дамжин
mail.example.com уруу илгээгдэнэ.
Хэцүү галт ханыг тойрон гарах
Зарим сүлжээний администраторууд хэтэрхий чанга галт ханын дүрэм ашиглан
зөвхөн ирж байгаа холболтууд төдийгүй гарч байгаа холболтуудыг ч бас
шүүдэг. Танд алсын машинуудад зөвхөн SSH болон вэбээр аялах 22 болон
80-р портуудад хандах боломжийг өгсөн байж болох юм.
Та хөгжим цацдаг Ogg Vorbis сервер зэрэг өөр (магадгүй ажилдаа холбоогүй)
үйлчилгээ уруу хандахыг магадгүй хүсэж болох юм. Хэрэв энэ Ogg Vorbis
сервер нь 22 эсвэл 80-аас бусад өөр порт дээр цацаж байгаа бол
та түүнд хандаж чадахгүй юм.
Үүний шийдэл нь таны сүлжээний галт ханаас гаднах машин уруу SSH холболт үүсгэж
үүнийг Ogg Vorbis сервер уруу туннель хийхэд ашиглах явдал юм.
&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******
Таны урсгал хүлээн авах клиент одоо localhost-ийн
8888 порт уруу заагдах бөгөөд тэр цаашаагаа галт ханыг амжилттайгаар
гэтлэн music.example.com уруу дамжуулагдана.
AllowUsers хэрэглэгчийн тохируулга
Ямар хэрэглэгчид хаанаас орохыг хязгаарлаж өгөх нь зүйтэй юм.
AllowUsers тохируулга нь үүнд хүрэх сайн арга
юм. Жишээ нь root хэрэглэгчийг зөвхөн
192.168.1.32-оос орохыг
зөвшөөрөхийн тулд доор дурдсантай адил тохируулгыг /etc/ssh/sshd_config
файлд хийх нь зүйтэй юм:
AllowUsers root@192.168.1.32
admin хэрэглэгчийг хаанаас ч орохыг зөвшөөрөхийн
тулд ердөө л хэрэглэгчийн нэрийг өөрийг нь жагсааж өгнө:
AllowUsers admin
Олон хэрэглэгчид нэг мөрөнд жагсаагдах шаардлагатай:
AllowUsers root@192.168.1.32 admin
Та энэ машин уруу нэвтрэх хэрэгцээтэй хэрэглэгч бүрийг жагсааж өгөх нь чухал юм,
тэгэхгүй бол тэдгээр нь орж чадахгүй болно.
/etc/ssh/sshd_config-д өөрчлөлтүүд хийснийхээ
дараа &man.sshd.8;-д өөрийн тохиргооны файлуудыг дахин дуудахыг дараах тушаалыг
ажиллуулж та хэлж өгөх ёстой:
&prompt.root; /etc/rc.d/sshd reload
Нэмэлт унших материалууд
OpenSSH
&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;
&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;
Том
Рөүдс
Хавь нэмэр болгон оруулсан
ACL
Файлын системийн хандалт хянах жагсаалтууд
Хормын хувилбарууд зэрэг файлын системийн өргөжүүлэлтүүдийн хамтаар FreeBSD 5.0
болон сүүлийн хувилбарууд Файлын системийн хандалт хянах жагсаалтуудын
(ACL-ууд) аюулгүй байдлыг санал болгодог.
Хандалт Хянах Жагсаалтууд нь стандарт &unix; зөвшөөрлийн загварыг
маш нийцтэй (&posix;.1e) аргаар өргөтгөдөг. Энэ боломж нь администраторт
илүү төвөгтэй аюулгүй байдлын загвар болон түүний давуу талыг ашиглахыг
зөвшөөрдөг.
UFS файлын системүүдэд ACL
дэмжлэгийг идэвхжүүлэхийн тулд дараах:
options UFS_ACL
тохируулгыг цөмд эмхэтгэх шаардлагатай. Хэрэв энэ тохируулга эмхэтгэгдээгүй бол
ACL-ууд дэмжих файлын системийг холбохыг оролдоход
анхааруулах мэдэгдэл дэлгэцэд гардаг. Энэ тохируулга GENERIC
цөмд орсон байдаг. ACL-ууд нь файлын систем дээр өргөтгөсөн шинж
чанаруудыг идэвхжүүлсэн дээр тулгуурладаг. Өргөтгөсөн шинж чанарууд нь
дараа үеийн &unix; файлын систем UFS2-д төрөлхийн
дэмжигдсэн байдаг.
UFS1 дээр өргөтгөсөн шинж чанаруудыг тохируулахад
UFS2 дээр тохируулахтай харьцуулбал илүү удирдлагын
зардал шаардлагатай байдаг. UFS2 дээрх өргөтгөсөн
шинж чанаруудын ажиллагаа нь бас бодитойгоор илүү байдаг. Иймээс
UFS2-г UFS1-ийн оронд
хандалт хянах жагсаалтуудад ашиглахыг ерөнхийдөө зөвлөдөг.
ACL-ууд нь /etc/fstab файлд
нэмэгдэж өгч болох холбох үеийн удирдлагын тугаар
идэвхтэй болдог. Файлын системийн толгой дахь супер блокийн ACL-ууд тугийг
өөрчлөхийн тулд &man.tunefs.8;-ийг ашиглан шургуу замаар холбох үеийн тугийг автоматаар
зааж өгч болно. Ерөнхийдөө хэд хэдэн шалтгааны улмаас супер блокийн тугийг ашиглах нь
дээр байдаг:
Холбх үеийн ACL-ууд туг дахин холболтоор өөрчлөгддөггүй
(&man.mount.8; ), зөвхөн бүрэн гүйцэд
&man.umount.8; хийгдэж шинэ &man.mount.8; хийгдсэний дараа болно.
Энэ нь бас файлын системийг ашиглаж байх үед дарааллыг нь өөрчилж болохгүй гэсэн үг
юм.
fstab-д мөр байхгүй байсан ч гэсэн эсвэл төхөөрөмжүүдийн
дараалал өөрчлөгдсөн ч гэсэн супер блокийн тугийг тохируулах нь файлын системийг үргэлж
ACL-уудыг идэвхтэйгээр холбоход хүргэдэг. Энэ нь файлын системийг
ACL-уудыг идэвхжүүлэлгүйгээр санамсаргүйгээр холбохоос хамгаалдаг бөгөөд
ингэж санамсаргүй холбох нь ACL-уудыг буруугаар албадаж
тэгснээр аюулгүй байдлын асуудлуудад хүргэж болох юм.
Бид шинэ &man.mount.8; хийлгүйгээр туг идэвхжүүлдгийг зөвшөөрөхөөр
ACL-уудын ажиллагааг өөрчилж болох юм, гэхдээ бид
ACL-уудыг идэвхжүүлэлгүй санамсаргүйгээр холболт хийхийг
болиулахыг хүсдэг бөгөөд учир нь хэрэв та ACL-уудыг идэвхжүүлээд
дараа нь болиулаад өргөтгөсөн шинж чанаруудыг устгалгүйгээр дахин идэвхжүүлбэл та
өөртөө нэлээн хэцүү асуудал учруулах зүйлийг хийх болно. Ерөнхийдөө та файлын систем
дээр ACL-уудыг идэвхжүүлсний дараа файлын хамгаалалтууд нь
системийн хэрэглэгчдэд зориулагдсан файлуудтай нийцгүй болж болох учир тэдгээрийг
болиулж болохгүй бөгөөд ACL-уудыг дахин идэвхжүүлэх нь
зөвшөөрлүүд нь өөрчлөгдсөн байж болох файлуудад өмнөх ACL-уудыг
магадгүй дахин холбож өөр тааварлаж болшгүй ажиллагаанд хүргэж болох юм.
ACL-ууд идэвхжүүлсэн файлын системүүд өөрсдийн зөвшөөрлийн
тохируулгууд дээрээ + (нэмэх) тэмдэг үзэх үед харуулдаг.
Жишээ нь:
drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html
Энд бид directory1,
directory2, болон directory3
сангууд бүгд ACL-ууд-ийн давуу талыг авч байгааг харж байна.
public_html сан тэгэхгүй байна.
ACL-уудыг ашиглах нь
Файлын системийн ACL-уудыг &man.getfacl.1;
хэрэгслээр харж болно. Жишээ нь test файл дээрх
ACL тохируулгуудыг харахын тулд дараах тушаалыг
ажиллуулах хэрэгтэй:
&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--
Энэ файлын ACL тохируулгуудыг өөрчлөхийн тулд
&man.setfacl.1; хэрэгслийг ажиллуул. Ажиглаарай:
&prompt.user; setfacl -k test
туг нь тухайн үед тодорхойлогдсон бүх
ACL-уудыг файл эсвэл файлын системээс
арилгана. Илүү дээр арга бол ACL-уудыг
ажиллуулахад шаардлагатай үндсэн талбаруудыг орхидог
тугийг ашиглах явдал юм.
&prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test
Дээр дурдсан тушаал дээр тохируулга анхдагч
ACL оруулгуудыг өөрчлөхөд хэрэглэгдсэн.
Өмнөх тушаалаар устгагдсан болохоор урьдчилан тодорхойлсон оруулгууд
байхгүй учир энэ нь анхдагч тохируулгуудыг сэргээж жагсаасан тохируулгуудаас
зааж өгдөг. Хэрэв та систем дээр байхгүй хэрэглэгч эсвэл бүлэг нэмэх бол
Invalid argument буюу Буруу нэмэлт өгөгдөл
гэсэн алдаа stdout уруу хэвлэгдэнэ гэдгийг
санаж байх хэрэгтэй.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Portaudit
Гуравдагч талын аюулгүй байдлын асуудлуудыг монитор хийх нь
Сүүлийн жилүүдэд эмзэг асуудлын үнэлгээ хэрхэн зохицуулагдаж байгаа тал дээр
аюулгүй байдлын ертөнц олон сайжруулалт хийсэн. Одоогийн байгаа бүх л үйлдлийн
системүүд дээр гуравдагч талын хэрэгслүүд суулгаж тохируулдгаас болж системийн
халдлагын заналхийлэл ихэсдэг.
Эмзэг асуудлын үнэлгээ нь аюулгүй байдлын түлхүүр хүчин зүйл бөгөөд
&os; нь үндсэн системд зориулан зөвлөгөөнүүдийг гаргадаг боловч
гуравдагч талын хэрэгслүүд бүрийн хувьд хийх нь &os; төслийн боломжоос
гадуур юм. Мэдэгдэж байгаа асуудлуудыг администраторуудад анхааруулж
гуравдагч талын эмзэг асуудлуудыг зөөлрүүлэх арга байдаг. &os;-д нэмэлтээр
Portaudit гэгддэг хэрэгсэл зөвхөн энэ
зорилгоор байдаг.
ports-mgmt/portaudit порт нь
&os;-ийн аюулгүй байдлын баг болон портуудын хөгжүүлэгчдийн шинэчилж
ажиллагааг нь хангаж байдаг мэдээллийн баазаас мэдэгдэж байгаа аюулгүй байдлын
асуудлуудыг шалгадаг.
Portaudit-г ашиглаж эхлэхийн тулд
Портуудын цуглуулгаас түүнийг суулгах хэрэгтэй:
&prompt.root; cd /usr/ports/ports-mgmt/portaudit && make install clean
Суулгах процессийн явцад өдөр бүрийн аюулгүй байдлыг шалгах ажиллагаанд
Portaudit-н гаралтыг зөвшөөрч
&man.periodic.8;-д зориулсан тохиргооны файлуудыг шинэчилдэг.
Өдөр тутмын аюулгүй байдлыг шалгах ажиллагаа root-ийн
захидлын бүртгэл уруу цахим захидал явуулж түүнийг уг хэрэглэгч уншсан эсэхийг
баталгаажуулах хэрэгтэй. Өөр ямар ч илүү тохиргоо энд хэрэггүй.
Суулгасны дараа администратор мэдээллийн баазыг шинэчлэх болон суулгасан
багцуудад мэдэгдэж байгаа эмзэг асуудлуудыг үзэхдээ дараах тушаалыг
ажиллуулна:
&prompt.root; portaudit -Fda
Мэдээллийн бааз &man.periodic.8; ажиллах үед автоматаар шинэчлэгддэг;
иймээс дээрх тушаал заавал шаардлагагүй юм. Энэ нь зөвхөн дараах жишээнүүдэд
шаардлагатай.
Портуудын цуглуулгын хэсэг болгон суулгагдсан гуравдагч талын хэрэгслүүдийг
ямар ч үед аудит хийхдээ администратор зөвхөн дараах тушаалыг ажиллуулах
хэрэгтэй:
&prompt.root; portaudit -a
Portaudit эмзэг асуудалтай багцын хувьд
доор дурдсантай адилыг гаргана:
Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected package(s) immediately.
Үзүүлсэн URL уруу вэб хөтчийг чиглүүлж администратор
асуудалтай байгаа эмзэг асуудлын талаар дэлгэрэнгүй мэдээллийг олж авч
болно. Ийм мэдээлэл нь нөлөөлөх хувилбарууд болон &os;-ийн портын хувилбар,
аюулгүй байдлын зөвлөгөөнүүд байж болох өөр бусад вэб сайтуудыг агуулж болох
юм.
Товчхондоо Portaudit нь хүчирхэг
хэрэгсэл бөгөөд Portupgrade порттой цуг
хэрэглэхэд маш ашигтай байдаг.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
FreeBSD-ийн аюулгүй байдлын зөвлөгөөнүүд
&os;-ийн аюулгүй байдлын зөвлөгөөнүүд
Үйлдвэрлэлийн чанарыг хангасан үйлдлийн системүүдийн нэгэн адил &os;
Аюулгүй байдлын зөвлөгөөнүүд
гаргадаг. Эдгээр
зөвлөгөөнүүд нь ихэвчлэн аюулгүй байдлын жагсаалтууд уруу илгээгддэг
бөгөөд зөвхөн тохирох хувилбаруудад засвар хийгдсэний дараа Errata буюу
алдааны хуудсанд тэмдэглэгддэг. Энэ хэсэгт зөвлөгөө гэж юу болох, түүнийг
хэрхэн ойлгох болон системд засвар хийхдээ ямар арга хэмжээнүүдийг
авах талаар тайлбарлах болно.
Зөвлөгөө ямархуу харагдах вэ?
&os;-ийн аюулгүй байдлын зөвлөгөөнүүд
&a.security-notifications.name; захидлын жагсаалтаас авсан доорх
зөвлөгөөтэй адил харагдах болно.
=============================================================================
&os;-SA-XX:XX.UTIL Security Advisory
The &os; Project
Topic: denial of service due to some problem
Category: core
Module: sys
Announced: 2003-09-23
Credits: Person@EMAIL-ADDRESS
Affects: All releases of &os;
&os; 4-STABLE prior to the correction date
Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)
CVE Name: CVE-XXXX-XXXX
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. References
Topic буюу сэдэв талбар асуудал юу болохыг яг заасан
байдаг. Энэ нь үндсэндээ тухайн үеийн аюулгүй байдлын зөвлөгөөний
танилцуулга бөгөөд эмзэг асуудалтай цуг хэрэгслийг тэмдэглэдэг.
The Category буюу зэрэглэл талбар нь хамаарч байгаа
системийн хэсгийг хэлдэг бөгөөд core,
contrib, эсвэл ports-ийн
аль нэг байж болно. core зэрэглэл нь эмзэг
асуудал &os; үйлдлийн системийн гол хэсэгт нөлөөлнө гэсэн үг юм.
contrib зэрэглэл нь эмзэг асуудал
sendmail зэрэг &os; төсөлд
хувь нэмэр болгон оруулсан програм хангамжуудад нөлөөлнө гэсэн үг юм.
Эцэст нь ports зэрэглэл нь эмзэг асуудал
портуудын цуглуулганд ордог нэмэлт програм хангамжуудад нөлөөлөхийг
харуулдаг.
Module талбар нь бүрэлдэхүүн хэсгийн байрлалыг
жишээ нь sys гэх зэргээр илэрхийлдэг. Энэ жишээн дээр
sys модуль өртөхийг бид харж байгаа бөгөөд ийм учраас энэ
эмзэг асуудал нь цөм дотор ашиглагдсан бүрэлдэхүүн хэсэгт нөлөөлөх юм.
Announced буюу зарласан талбар нь аюулгүй байдлын
зөвлөгөө хэвлэгдсэн эсвэл ертөнцөд зарлагдсан огноог заадаг. Энэ нь
аюулгүй байдлын баг асуудал байгааг шалгаж үүний засвар
&os;-ийн эх модны архивт итгэмжлэн оруулсныг тогтоосон гэсэн үг юм.
Credits буюу талархал талбар нь эмзэг асуудлыг
мэдэж тайлагнасан хувь хүн болон байгууллагыг зааж талархдаг.
Affects буюу нөлөөлөх хувилбарын талбар нь
энэ эмзэг асуудал нөлөөлөх &os;-ийн хувилбаруудыг тайлбарладаг.
Цөмийн хувьд уг нөлөөлсөн файлууд дээр ажиллуулсан
ident тушаалын үр дүнг зэрвэс харж
хувилбарыг тодорхойлж болно. Портуудын хувьд
/var/db/pkg санд портын нэрийн дараа
хувилбарын дугаар байдаг. Хэрэв систем нь &os;-ийн CVS
архивтай адил хамгийн сүүлийн хэлбэрт орж өдөр тутам дахин бүтээгдээгүй
бол энэ нь нөлөөлөлд орсон хэвээр байх магадлалтай юм.
Corrected буюу засварласан талбар нь
огноо, цаг, цагийн бүс болон засварласан хувилбаруудыг
заадаг.
Common Vulnerabilities Database system буюу Нийтлэг Эмзэг асуудлуудын
Мэдээллийн Баазын системээс эмзэг асуудлуудыг хайхад хэрэглэгдэх
магадлалын мэдээлэлд нөөцлөгддөг.
Background талбар нь нөлөөлөлд яг ямар хэрэгсэл
орсон талаар мэдээлэл өгдөг. Ихэнхдээ энэ нь &os;-д яагаад тухайн хэрэгсэл
байдаг, юунд хэрэглэгддэг болон хэрэгсэл хэрхэн бий болсон талаар байдаг.
Problem Description буюу асуудлын тайлбар талбар нь
аюулгүй байдлын цоорхойг гүнзгий тайлбарладаг. Энэ нь гажигтай кодын мэдээлэл
эсвэл бүр хэрэгслийг хэрхэн хорлонтойгоор ашиглаж аюулгүй байдлын цоорхой
нээдэг тухай мэдээллийг агуулдаг.
Impact буюу үйлчлэл талбар нь асуудал системд
ямар төрлийн үйлчлэл үзүүлдгийг тайлбарладаг. Жишээ нь энэ нь
үйлчилгээг зогсоох халдлагаас авахуулаад хэрэглэгчдэд өгч болох нэмэлт
зөвшөөрлүүд эсвэл халдагчид супер хэрэглэгчийн хандалт өгөх зэрэг
юу ч байж болно.
Workaround буюу тойрон гарах талбар нь
боломжит тойрон гарах арга замыг системийг шинэчилж чадахгүй байж болох
системийн администраторуудад олгодог. Энэ нь хугацааны шаардлагууд,
сүлжээний боломж эсвэл өөр бусад олон шалтгаанаас болдог байж болох
юм. Ямар ч байсан гэсэн аюулгүй байдлыг хөнгөнөөр авч үзэж болохгүй
бөгөөд нөлөөлөлд орсон систем эсвэл засвар нөхөөс хийгдэх аль эсвэл
аюулгүй байдлын цоорхойг тойрон гарах шийдэл хийгдэх
шаардлагатай.
Solution буюу шийдэл талбар нь нөлөөлөлд орсон
системийг засварлах заавруудыг санал болгодог. Энэ нь системд засвар
нөхөөс хийн аюулгүй ажиллуулах алхам алхмаар тест хийгдэж шалгагдсан арга
юм.
Correction Details буюу засварын нарийн
учир талбар нь CVS салбар эсвэл хувилбарын
нэрийн цэгүүдийг доогуур зураас тэмдэгтээр өөрчилж үзүүлдэг. Мөн энэ нь
салбар болгон дахь нөлөөлөлд орсон файлуудын хувилбарын дугаарыг бас
харуулдаг.
References буюу лавлагаа талбар нь ихэвчлэн
бусад мэдээллийн эхүүдийг өгдөг. Энэ нь вэбийн URL-ууд,
номнууд, захидлын жагсаалтууд болон мэдээний бүлгүүдийг агуулж болно.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Процессийн бүртгэл хөтлөх
Процессийн бүртгэл хөтлөх
Процессийн бүртгэл хөтлөх аюулгүй байдлын аргыг ашиглаж
администраторууд системийн эх үүсвэрүүдийг ашигласан байдал болон тэдгээрийг
хэрэглэгчдэд хэрхэн хуваарилсныг мэдэж болох бөгөөд энэ нь системийг монитор
хийх боломжийг олгодог. Мөн энэ арга нь хэрэглэгчдийн тушаалуудыг туйлын
багаар мөшгих боломжийг администраторуудад олгодог.
Энэ нь үнэн хэрэгтээ өөрийн эерэг болон сөрөг талуудтай. Эерэг талуудын нэг нь
халдлагыг орсон цэг хүртэл нарийсган олох боломж юм. Сөрөг тал нь процессийн
бүртгэл хөтлөлтөөр үүссэн бүртгэлүүд бөгөөд тэдгээр нь дискний зай шаардаж
болох юм. Энэ хэсэг процессийн бүртгэл хөтлөлтийн үндсүүдийг администраторуудад
таниулах болно.
Процессийн бүртгэл хөтлөлтийг идэвхжүүлж хэрэглэх нь
Процессийн бүртгэл хөтлөлтийг ашиглаж эхлэхээсээ өмнө үүнийг идэвхжүүлэх
хэрэгтэй. Үүнийг хийхийн тулд дараах тушаалуудыг ажиллуул:
&prompt.root; touch /var/account/acct
&prompt.root; accton /var/account/acct
&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf
Идэвхтэй болгосны дараа бүртгэл хөтлөлт CPU
статистикууд, тушаалууд гэх мэтийг даган мөшгиж эхэлнэ. Бүртгэлийн
бүх бичлэгүүд уншиж болохооргүй хэлбэрээр байдаг бөгөөд тэдгээрийг
&man.sa.8; хэрэгсэл ашиглан үзэж болдог. Ямар нэг тохируулгагүйгээр
ажиллуулбал sa тушаал нь хэрэглэгч болгоны
дуудлагуудын тоо, нийт зарцуулсан хугацааг минутаар, нийт CPU
болон хэрэглэгчийн хугацааг минутаар, дундаж I/O үйлдлүүдийн тоо
гэх мэттэй холбоотой мэдээллийг дэлгэцэнд хэвлэн үзүүлдэг.
Тушаалуудыг ашигласан тухай мэдээллийг харахын тулд &man.lastcomm.1;
хэрэгслийг ашиглах хэрэгтэй. lastcomm тушаал нь
тухайн &man.ttys.5; дээр хэрэглэгчдийн ажиллуулсан тушаалуудыг
үзүүлэхэд хэрэглэгдэж болно, жишээ нь:
&prompt.root; lastcomm ls
trhodes ttyp1
Дээрх тушаал нь ttyp1 терминал дээр trhodes
хэрэглэгчийн ls тушаал ашигласан мэдэгдэж байгаа
бүгдийг дэлгэцэд харуулах болно.
Өөр олон ашигтай тохируулгууд байдаг бөгөөд &man.lastcomm.1;,
&man.acct.5; болон &man.sa.8; гарын авлагын хуудаснуудад тайлбарласан
байдаг.
diff --git a/mn_MN.UTF-8/books/handbook/serialcomms/chapter.sgml b/mn_MN.UTF-8/books/handbook/serialcomms/chapter.sgml
index cdf9ce9e6e..848e8b20d0 100644
--- a/mn_MN.UTF-8/books/handbook/serialcomms/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/serialcomms/chapter.sgml
@@ -1,2850 +1,2850 @@
Цагаанхүүгийн
Ганболд
Орчуулсан
Цуваа холбоонууд
Ерөнхий агуулга
цуваа холбоонууд
&unix; нь цуваа холбоонуудад зориулсан дэмжлэгтэй үргэлж байсаар ирсэн.
Тухайлбал хамгийн анхны &unix; машинууд хэрэглэгчийн оролт болон гаралтын
хувьд цуваа шугамууд дээр тулгуурладаг байсан. Дундаж терминал
нь
секундэд 10 тэмдэгт дамжих цуваа хэвлэгч болон гараас тогтдог байсан тэр үеэс хойш
юмс асар их өөрчлөгдсөөр ирсэн юм. Энэ бүлэг нь FreeBSD дээр цуваа холбоонуудыг
ашиглах зарим аргуудаас дурдах болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Өөрийн FreeBSD системд терминалуудыг хэрхэн холбох
талаар.
Алсын хостууд уруу хэрхэн модемоор залгаж холбогдох
талаар.
Алсын хэрэглэгчдийг модемоор таны систем уруу
нэвтрэхийг хэрхэн зөвшөөрөх талаар.
Цуваа консолоос өөрийн системийг хэрхэн
ачаалах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
Шинэ цөмийг хэрхэн тохируулан суулгах талаар мэдэх ().
&unix; зөвшөөрлүүд болон процессуудыг ойлгох ().
FreeBSD дээр ашиглахыг хүсэж байгаа
цуваа тоног төхөөрөмжийн (модем эсвэл олон порттой карт) техникийн гарын авлагад
хандаж болохоор байх.
Танилцуулга
Ухагдахуунууд
bits-per-second
bps
Bits per Second буюу секундэд дамжуулах бит —
өгөгдөл дамжих хурд
DTE
DTE
Data Terminal Equipment буюу Өгөгдлийн Терминал Төхөөрөмж —
жишээ нь таны компьютер
DCE
DCE
Data Communications Equipment буюу Өгөгдлийн Холбоонуудын Төхөөрөмж — таны модем
RS-232
RS-232C кабелиуд
Тоног төхөөрөмжийн цуваа холбоонуудад зориулсан EIA стандарт
Холбоонуудын өгөгдлийн хурдны талаар ярихдаа энэ хэсэг baud
гэсэн ухагдахууныг ашигладаггүй. Baud нь тодорхой хугацаанд хийгдсэн цахилгааны
төлвийн шилжилтүүдийн тоог хэлдэг бол bps
(bits per second
буюу секундэд дамжуулах бит) нь хэрэглэгдэх зөв
ойлголт юм (энэ нь ямар ч байсан хэцүү зөрүүд хүмүүст тийм ч яршиг төвөг болдоггүй
юм шиг санагддаг).
Кабелиуд болон Портууд
Өөрийн FreeBSD систем уруу модем эсвэл терминалыг холбохын тулд
танд компьютер дээр чинь цуваа порт болон өөрийн цуваа төхөөрөмж уруу холбох зөв кабель
хэрэгтэй болно. Хэрэв та өөрийн тоног төхөөрөмжтэй болон шаардагдах кабельтай
аль хэдийн танил болсон бол энэ хэсгийг айлгүйгээр орхиж болно.
Кабелиуд
Хэд хэдэн өөр өөр төрлийн цуваа кабелиуд байдаг. Бидний
зорилгод нийцэх хоёр хамгийн нийтлэг төрөл бол null-модем болон стандарт
(straight буюу шууд
) RS-232 кабелиуд юм. Таны тоног
төхөөрөмжийн баримт шаардлагатай кабелийн төрлийг тайлбарлах
ёстой.
Null-модем кабелиуд
null-модем кабель
Null-модем кабель нь Signal Ground
буюу Газар дохио
зэрэг зарим дохионуудыг шууд нэвтрүүлдэг боловч зарим дохионуудыг
шилжүүлдэг. Жишээ нь нэг талын Transmitted Data
буюу Дамжигдсан Өгөгдөл зүү нь нөгөө талын Received Data
буюу Хүлээн авсан Өгөгдөл зүү уруу ордог.
Та бас өөрийн null-модем кабелийг терминалуудтай ажиллахаар болгож
болно (өөрөөр хэлбэл чанарын зорилгоор). Энэ хүснэгт нь RS-232C
дохионууд болон
DB-25 холбогч дээрх зүүний тоонуудыг харуулж байна. Мөн стандарт нь
шууд холбогдох 1-р зүүг 1-р зүү Protective Ground
буюу Хамгаалалтын Газар шугам уруу дууддаг боловч энэ нь ихэвчлэн орхигддог.
Зарим терминалууд 2, 3 болон 7-р зүүнүүдийг зөвхөн ашиглахад зүгээр
ажилладаг бол бусдууд нь доор дурдсан жишээнүүдээс өөр тохиргоонуудыг
шаарддаг.
DB-25-аас DB-25 Null-Модем кабель
Дохио
Зүү #
Зүү #
Дохио
SG
7
холбогдох
7
SG
TD
2
холбогдох
3
RD
RD
3
холбогдох
2
TD
RTS
4
холбогдох
5
CTS
CTS
5
холбогдох
4
RTS
DTR
20
холбогдох
6
DSR
DTR
20
холбогдох
8
DCD
DSR
6
холбогдох
20
DTR
DCD
8
холбогдох
20
DTR
Одоо үед нийтлэг байдаг өөр хоёр схемийг энд үзүүлэв.
DB-9-өөс DB-9 Null-Модем кабель
Дохио
Зүү #
Зүү #
Дохио
RD
2
холбогдох
3
TD
TD
3
холбогдох
2
RD
DTR
4
холбогдох
6
DSR
DTR
4
холбогдох
1
DCD
SG
5
холбогдох
5
SG
DSR
6
холбогдох
4
DTR
DCD
1
холбогдох
4
DTR
RTS
7
холбогдох
8
CTS
CTS
8
холбогдох
7
RTS
DB-9-өөс DB-25 Null-Модем кабель
Дохио
Зүү #
Зүү #
Дохио
RD
2
холбогдох
2
TD
TD
3
холбогдох
3
RD
DTR
4
холбогдох
6
DSR
DTR
4
холбогдох
8
DCD
SG
5
холбогдох
7
SG
DSR
6
холбогдох
20
DTR
DCD
1
холбогдох
20
DTR
RTS
7
холбогдох
5
CTS
CTS
8
холбогдох
4
RTS
Нэг талд байгаа нэг зүү нь нөгөө талын хос зүү уруу холбогдох
бол тэдгээрийн холбогч дээр хос зүүний хооронд нэг богино утсаар
болон урт утсаар нөгөө ганц зүү уруу холбон ихэвчлэн шийдсэн
байдаг.
Дээрх дизайнууд нь хамгийн нийтлэг юм шиг санагддаг. Өөр хувилбарууд
дээр (RS-232 Made Easy номонд тайлбарласнаар)
SG нь SG уруу, TD нь RD уруу, RTS болон CTS нь DCD уруу, DTR нь
DSR уруу болон эсрэгээр холбогддог.
Стандарт RS-232C кабелиуд
RS-232C кабелиуд
Стандарт цуваа кабель нь RS-232C дохионуудыг бүгдийг нь шууд
нэвтрүүлдэг. Өөрөөр хэлбэл кабелийн нэг талын Transmitted Data
буюу
Дамжигдсан Өгөгдөл зүү нь нөгөө талын Transmitted Data
буюу
Дамжигдсан Өгөгдөл зүү уруу ордог. Энэ нь модемийг таны FreeBSD систем уруу болон
зарим нэг тохирох терминалиуд уруу холбоход хэрэглэгдэх кабелийн
төрөл юм.
Портууд
Цуваа портууд нь өгөгдлийг FreeBSD хост компьютер болон терминалын хооронд
дамжуулах төхөөрөмжүүд юм. Энэ хэсэг нь ямар төрлийн портууд байдаг болон
FreeBSD дээр тэдгээрт хэрхэн ханддагийг тайлбарлах болно.
Портуудын төрлүүд
Хэд хэдэн төрлийн портууд байдаг. Та кабелийг худалдаж авах юм уу эсвэл
хийхээсээ өмнө энэ нь таны терминал болон FreeBSD систем дээрх портуудад
таарах эсэхийг шалгах хэрэгтэй.
Ихэнх терминалууд DB-25 портуудтай байдаг. FreeBSD ажиллаж байгаа PC-үүд зэрэг
персонал компьютерууд нь DB-25 эсвэл DB-9 портуудтай байдаг. Хэрэв та
PC дээрээ олон порттой цуваа карттай бол танд RJ-12 эсвэл RJ-45 портууд
байж болох юм.
Тоног төхөөрөмжтэй цуг ирсэн баримтаас ашиглах портын төрлийн тодорхойлолтыг
үзнэ үү. Портыг нүдээрээ харж шалгах нь бас үр дүнгээ өгдөг.
Портын нэрс
FreeBSD дээр цуваа порт бүрт /dev сан дахь
оруулгаар та ханддаг. Хоёр өөр төрлийн оруулга байдаг:
Call-in буюу дуудагдах портууд нь
/dev/ttydN
гэгддэг бөгөөд N нь тэгээс эхлэх портын
дугаар юм. Ерөнхийдөө дуудагдах портыг терминалуудад зориулж
ашигладаг. Data carrier detect (DCD) буюу өгөгдлийн зөөгч илрүүлэх
дохиог зөв ажиллахыг цуваа шугам батлахыг дуудагдах портууд нь шаарддаг.
Call-out буюу дуудах портууд нь
/dev/cuadN
гэгддэг. Дуудах портуудыг терминалуудад зориулж ихэвчлэн ашигладаггүй,
зөвхөн модемуудад зориулж ашигладаг. Цуваа кабель эсвэл терминал нь
зөөгчийг илрүүлэх дохиог дэмждэггүй бол та дуудах портуудыг ашиглаж
болох юм.
Дуудах портууд нь &os; 5.X болон түүнээс хуучин дээр
/dev/cuaaN
гэж нэрлэгддэг.
Хэрэв та терминалыг эхний цуваа порт уруу (&ms-dos; дээр COM1)
холбосон бол терминалд хандахдаа /dev/ttyd0 гэж
ашиглах болно. Хэрэв терминал нь хоёр дахь цуваа порт дээр байгаа бол
(бас COM2 гэгддэг) /dev/ttyd1
гэх мэтээр ашиглах ёстой.
Цөмийн тохиргоо
FreeBSD нь анхдагчаар дөрвөн цуваа портыг дэмждэг. &ms-dos;-ийн
ертөнцөд эдгээр нь COM1,
COM2,
COM3, болон
COM4 гэгддэг. FreeBSD нь одоогоор
BocaBoard 1008 болон 2016 зэрэг дүлий
олон порттой цуваа
интерфэйс картууд болон Digiboard болон Stallion Technologies-ийн хийдэг
илүү ухаалаг олон порттой картуудыг дэмждэг. Гэхдээ анхдагч цөм нь зөвхөн
стандарт COM портуудыг хайдаг.
Таны цуваа портуудыг таны цөм таньж байгаа эсэхийг харахын тулд
цөмийг ачаалж байх үед мэдэгдлүүдийг үзэх хэрэгтэй эсвэл цөмийн ачаалалтын
мэдэгдлүүдийг дахин харуулах /sbin/dmesg
тушаалыг ашиглах хэрэгтэй. Ялангуяа sio
тэмдэгтүүдээр эхэлсэн мэдэгдлүүдийг хайгаарай.
sio орсон мэдэгдлүүдийг
харахын тулд дараах тушаалыг ашиглана:
&prompt.root; /sbin/dmesg | grep 'sio'
Жишээ нь дөрвөн цуваа порттой систем дээр эдгээр нь цуваа порттой холбоотой
цөмийн ачаалалтын мэдэгдлүүд юм:
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A
Хэрэв таны цөм бүх цуваа портуудыг чинь танихгүй байгаа бол
та өөрийн цөмийг /boot/device.hints файлд
тохируулах хэрэгтэй байж болох юм. Та өөртөө байхгүй төхөөрөмжүүдийн
хувьд тэдгээр мөрүүдийг тайлбар болгох эсвэл бүрмөсөн арилгаж
болох юм.
Цуваа портууд болон олон порттой хавтангийн тохиргооны талаар дэлгэрэнгүй мэдээллийг
&man.sio.4; гарын авлагын хуудаснаас лавлана уу.
Өөр хувилбарын FreeBSD дээр урьд нь ашиглаж байсан тохиргооны файл та ашиглаж байгаа
бол болгоомжтой байгаарай, учир нь төхөөрөмжийн тугууд болон синтакс хувилбарууд
хооронд өөрчлөгдсөн байдаг.
IO_COM1 порт нь 0x3f8 хаяг дээрх
портод зориулагдсан орлуулалт юм, IO_COM2 нь 0x2f8-ийн
IO_COM3 нь 0x3e8-ийн
IO_COM4 нь 0x2e8-ийн орлуулалт юм.
Эдгээр хаягууд нь цуваа портуудын нэлээн түгээмэл портын хаягууд бөгөөд 4,3, 5 болон 9
тасалдлууд нь нэлээн түгээмэл тасалдал хүсэх шугамнууд юм. Ердийн цуваа портууд нь
ISA-bus бүхий PC-үүд дээр тасалдлуудыг хуваалцаж чаддаггүйг
бас санаарай (олон порттой хавтангууд нь өөр дээрээ хавтан дээр бүх 16550A-уудад нэг эсвэл хоёр тасалдал
хүсэх шугамуудыг хуваалцахыг зөвшөөрдөг бичил схемүүдтэй байдаг).
Төхөөрөмжийн Тусгай файлууд
Цөм дэх ихэнх төхөөрөмжүүдэд төхөөрөмжийн тусгай файлууд
ын
тусламжтайгаар ханддаг бөгөөд эдгээр файлууд нь /dev
санд байдаг. sio төхөөрөмжид
/dev/ttydN
(dial-in буюу гаднаас залгах) болон /dev/cuadN
(call-out буюу дуудах) төхөөрөмжүүдийн тусламжтай ханддаг. FreeBSD нь
бас эхлүүлэх төхөөрөмжүүд
(&os; 6.X дээр /dev/ttydN.init болон
/dev/cuadN.init,
&os; 5.X дээр /dev/ttyidN болон
/dev/cuaiaN)
болон түгжих төхөөрөмжүүдтэй
(&os; 6.X дээр /dev/ttydN.lock болон
/dev/cuadN.lock,
&os; 5.X дээр /dev/ttyldN болон
/dev/cualaN)
байдаг. Эхлүүлэх төхөөрөмжүүд нь
урсгалын хяналтдаа RTS/CTS
дохиоллыг ашигладаг модемийн crtscts зэрэг
холбооны портын параметрүүдийг порт нээгдэх бүрт
эхлүүлж тохируулахад хэрэглэгддэг. Түгжих төхөөрөмжүүд нь
хэрэглэгчид болон програмуудын зарим нэг параметрүүдийг өөрчлөхөөс сэргийлэхийн тулд
портууд дээр тугуудыг түгжихэд хэрэглэгддэг. Терминалын тохиргоонууд, түгжих болон
эхлүүлэх төхөөрөмжүүд болон терминалын тохируулгуудыг тохируулах талаар
дэлгэрэнгүй мэдээллийг &man.termios.4;, &man.sio.4;, болон &man.stty.1;
гарын авлагын хуудаснуудаас үзнэ үү.
Цуваа портын тохиргоо
ttyd
cuad
ttydN (эсвэл
cuadN) төхөөрөмж нь
таны өөрийн програмууддаа зориулж нээхийг хүсэх ердийн төхөөрөмж юм. Процесс
төхөөрөмжийг онгойлгоход энэ нь терминалын I/O тохиргоонуудын анхдагч олонлогтой
байх болно. Та эдгээр тохиргоонуудыг дараах тушаалаар үзэж болно
&prompt.root; stty -a -f /dev/ttyd1
Энэ төхөөрөмжид тохиргоонуудыг өөрчлөхөд төхөөрөмжийг хаах хүртэл тохиргоонууд нь
идэвхтэй байдаг. Дахин онгойлгоход энэ нь анхдагч тохиргоо уруугаа буцдаг.
Анхдагч олонлогт өөрчлөлтүүдийг хийхийн тулд та онгойлгоод
эхний төлөвт
төхөөрөмжийн тохиргоонуудыг тааруулж
болно. Жишээ нь ttyd5-ийн хувьд анхдагчаар
горим, 8 бит холбоо, болон
урсгалын хяналтыг идэвхжүүлэхийн тулд доор дурдсаныг бичнэ:
&prompt.root; stty -f /dev/ttyd5.init clocal cs8 ixon ixoff
rc файлууд
rc.serial
Цуваа төхөөрөмжүүдийн системийн дагуух эхлүүлэлт нь
/etc/rc.d/serial файлаар хянагддаг. Энэ файл нь
цуваа төхөрөмжүүдийн анхдагч тохиргоонуудад нөлөөлдөг.
Програм зарим тохиргоонуудыг өөрчлөхөөс сэргийлэхийн тулд
түгжих төлөвт
төхөөрөмжид тохиргоо хийнэ. Жишээ нь
ttyd5-ийн хурдыг 57600 bps
болгож түгжихийн тулд доор дурдсаныг бичнэ:
&prompt.root; stty -f /dev/ttyd5.lock 57600
Одоо програм ttyd5-ийг онгойлгож портын хурдыг
өөрчлөхийг оролдоход хурд нь 57600 bps-с хөдлөхгүй
байх болно.
Мэдээж та эхний төлөвт болон түгжих төлөвт төхөөрөмжүүдийг зөвхөн
root бүртгэл бичдэгээр болгох хэрэгтэй.
Шон
Келли
Хувь нэмэр болгон оруулсан
Терминалууд
терминалууд
Терминалууд нь таныг компьютерийнхаа консол дээр байхгүй үед эсвэл сүлжээнд
холбогдоогүй байхад амархан, үнэ хямд аргаар FreeBSD систем уруу хандах
боломжийг олгодог. Энэ хэсэг нь терминалуудыг FreeBSD-тэй хэрхэн ашиглах
талаар тайлбарлана.
Терминалуудын хэрэглээ болон төрлүүд
Анхдагч &unix; системүүдэд консол байгаагүй юм. Харин компьютерийн цуваа
портуудад холбогдсон терминалуудаар хүмүүс нэвтрэн ороод програмууд ажиллуулдаг
байсан байна. Энэ нь зөвхөн текст орчны ажил хийхийн тулд модем болон терминал
програм хангамж ашиглан алсын системд залган орохтой бараг төстэй юм.
Одоогийн PC-үүд нь өндөр чанарын графикуудыг үзүүлж чадах консолуудтай
боловч цуваа порт дээр нэвтрэх сесс үүсгэх чадвар өнөөгийн бараг бүх
&unix; загварын үйлдлийн системд байдаг бөгөөд FreeBSD ч бас үүний нэгэн
адил юм. Ашиглагдаагүй байгаа цуваа портод холбогдсон терминалыг ашиглан
та нэвтрэн орж дурын текст програмыг консол эсвэл X цонхны систем дээр
xterm цонхонд ажиллуулдаг байсан шигээр ажиллуулж
болох юм.
Бизнесийн хэрэглэгчийн хувьд та FreeBSD системд олон терминалуудыг
холбож тэдгээрийг өөрийн ажилтнуудынхаа ширээний компьютерууд дээр байрлуулж
болох юм. Гэрийн хэрэглэгчийн хувьд хуучин IBM PC эсвэл &macintosh; зэрэг
нөөц компьютер нь FreeBSD ажиллуулж байгаа илүү хүчтэй компьютерт холбогдсон
терминал болж болох юм. Та ганц хэрэглэгчийн байсан компьютерийг хүчирхэг олон
хэрэглэгчийн систем болгон хувиргаж болох юм.
FreeBSD-ийн хувьд гурван төрлийн терминал байдаг:
Дүлий терминалууд
Терминал маягаар ажиллаж байгаа PC-үүд
X терминалууд
Дараах дэд хэсгүүд нь дээрх төрлүүдийг тайлбарлах болно.
Дүлий терминалууд
Дүлий терминалууд нь таныг компьютерууд уруу цуваа шугамуудаар холбогдохыг
зөвшөөрөх тусгайлсан тоног төхөөрөмж юм. Тэдгээрийг дүлий
гэдэг
бөгөөд тэдгээр нь зөвхөн текст харуулах, илгээх, болон хүлээж авах хангалттай
тооцооллын хүчин чадалтай учраас тэр юм. Та тэдгээр дээр ямар ч програм
ажиллуулж чадахгүй. Текст засварлагчууд, эмхэтгэгчид, цахим захидал, тоглоомууд
гэх зэргүүдийг ажиллуулах хүчин чадал бүхий таны компьютерт тэдгээрийг
холбодог.
Digital Equipment Corporation-ий VT-100 болон Wyse-ийн WY-75
зэрэг олон үйлдвэрлэгчдийн хийсэн дүлий терминалуудын хэдэн зуун төрөл байдаг.
Бараг бүх төрөл FreeBSD-тэй цуг ажиллана. Зарим нэг өндөр чанартай терминалууд
график үзүүлж чаддаг боловч эдгээр дэвшилтэт боломжуудыг зөвхөн цөөн хэдэн
програм хангамжийн багцууд ашиглаж чаддаг.
Ажилтнууд нь X цонхны системийн зэрэг график програмуудад хандах шаардлагагүй
ажлын орчинд дүлий терминалууд нь түгээмэл байдаг.
Терминал маягаар ажиллаж байгаа PC-үүд
Хэрэв дүлий терминал нь текст
харуулах, илгээж хүлээн авах чадвартай байдаг бол ямар ч нөөц персонал компьютер
дүлий терминал болж чадна. Танд зөв кабель болон компьютер дээр ажиллах зарим нэг
терминал эмуляц хийх програм хангамж хоёр л хэрэгтэй
болох юм.
Ийм тохиргоо гэрт их нийтлэг байдаг. Жишээ нь хэрэв таны гэр бүлийн хүн FreeBSD
системийн чинь консол дээр завгүй ажиллаж байвал та FreeBSD систем уруу терминал
маягаар холбосон арай хүчин чадал багатай персонал компьютер дээрээс
зарим нэг текст орчны ажил зэрэг хийж байж болох юм.
&os;-ийн үндсэн системд цуваа холболтоор ажиллахад хэрэглэж болох
хамгийн багаар бодоход хоёр хэрэгсэл байдаг: энэ нь &man.cu.1; болон &man.tip.1;
юм.
&os; ажиллаж байгаа клиент систем дээрээс өөр системийн цуваа холболт уруу
холбогдохын тулд та дараах тушаалыг ашиглаж болно:
&prompt.root; cu -l serial-port-device
Энд байгаа serial-port-device
нь таны системийн
цуваа портод зориулагдсан тусгай төхөөрөмжийн файлын нэр юм. Эдгээр төхөөрөмжийн
файлууд нь 6.0 хувилбараас хуучин &os;-ийн хувьд
/dev/cuaaN
гэгддэг бөгөөд 6.0 болон сүүлийн хувилбаруудад
/dev/cuadN
гэж нэрлэгддэг.
Төхөөрөмжийн N
-хэсэг нь цуваа портын дугаарыг
илэрхийлнэ.
&os; дээр төхөөрөмжийн дугаарууд нь нэгээс биш тэгээс эхэлдэг
(жишээ нь &ms-dos;-оос үүдэлтэй системүүд дээр байдаг шиг
биш). Энэ нь юу гэсэн үг вэ гэхээр &ms-dos; дээр тулгуурласан
системүүдийн COM1
гэж нэрлэдэг порт
&os; дээр ихэвчлэн /dev/cuad0
гэгддэг.
Зарим хүмүүс портын цуглуулгад байдаг өөр програмууд ашиглахыг
илүүд үздэг. Портуудад &man.cu.1; болон &man.tip.1;-тэй
төстэй ажилладаг comms/minicom зэрэг
цөөнгүй хэдэн хэрэгслүүд байдаг.
X терминалууд
X терминалууд нь хамгийн төвөгтэй терминалуудын нэг юм. Цуваа порт уруу
холбогдохын оронд тэдгээр нь ихэвчлэн Ethernet зэрэг сүлжээнд холбогддог.
Зөвхөн текст орчны програмуудад зориулагдсан биш тэдгээр нь харин X програм үзүүлж
чаддаг.
Энэ сэдвийг гүйцэд хамарч бүрэн бүтэн байлгах үүднээс бид X терминалуудыг
танилцуулж байна. Гэхдээ энэ бүлэг X терминалуудыг суулгах, тохируулах болон
тэдгээрийн хэрэглээг тайлбарлахгүй.
Тохиргоо
Энэ хэсэг нь терминал дээр нэвтрэх сесс идэвхжүүлэхийн тулд өөрийн FreeBSD систем
дээр таныг юу тохируулах хэрэгтэйг тайлбарлах болно. Энэ нь цуваа
порт дэмжихээр өөрийн цөмийг таныг аль хэдийн тохируулсан байгаа гэж үздэг. Цуваа
порт уруу терминал холбогдсон бөгөөд таныг тэр терминал уруу холбогдсон байгаа
гэж тооцдог.
init процесс нь бүх процессийн хяналт болон
системийн эхлүүлэх үе дэх эхний тохиргоог хариуцдагийг -с
санах хэрэгтэй. init-ийн хийдэг үйлдлүүдийн нэг нь
/etc/ttys файлыг уншиж байгаа терминалууд
дээр getty процессийг эхлүүлэх явдал юм.
getty процесс нь нэвтрэх нэрийг уншиж
login програмыг ажиллуулахыг хариуцдаг.
Тиймээс өөрийн FreeBSD системийн хувьд терминалуудыг тохируулахын
тулд root хэрэглэгчээр дараах алхмуудыг гүйцэтгэх
хэрэгтэй:
/dev сан дахь оруулгад зориулж
/etc/ttys файлд хэрэв байхгүй бол
цуваа портын мөрийг нэмнэ.
/usr/libexec/getty нь порт дээр
ажиллахыг зааж /etc/gettytab файлаас
тохирох getty төрлийг
тохируулах хэрэгтэй.
Анхдагч терминалын төрлийг заана.
Портыг on
болгоно.
Порт secure
байх ёстой эсэхийг заана.
init тушаалаар
/etc/ttys файлыг дахин уншуулна.
Нэмэлт алхам болгож хоёрдугаар алхам дээр та өөр getty
төрлийг хэрэглээнд зориулан /etc/gettytab-д
оруулан үүсгэж болох юм. Энэ бүлэг нь үүнийг хэрхэн хийхийг тайлбарлахгүй бөгөөд
дэлгэрэнгүй мэдээллийг &man.gettytab.5; болон &man.getty.8; гарын
авлагын хуудаснуудаас үзэхийг зөвлөж байна.
/etc/ttys уруу оруулгууд нэмэх нь
/etc/ttys файл нь нэвтрэлтүүдийг зөвшөөрөхийг хүссэн
таны FreeBSD систем дээрх бүх портуудыг жагсаадаг. Жишээ нь эхний виртуал консол
ttyv0 нь энэ файлд өөрийн оруулгатай байна. Та энэ оруулгыг
ашиглан консол дээр нэвтрэн орж чадна. Энэ файл нь бас бусад виртуал консолууд, цуваа портууд,
болон псевдо tty-уудын оруулгуудыг бас агуулдаг. Хатуугаар холбогдсон терминалын хувьд
цуваа портын /dev оруулгыг /dev
хэсэггүйгээр (жишээ нь /dev/ttyv0 нь ttyv0
гэж жагсаагдах болно) жагсаадаг.
Анхдагч FreeBSD суулгац нь /etc/ttys файлыг
эхний дөрвөн цуваа портын дэмжлэгтэйгээр агуулдаг: ttyd0-ээс
ttyd3 хооронд байна. Хэрэв та терминалыг эдгээр
портуудын аль нэгэнд холбож байгаа бол өөр оруулга нэмэх шаардлагагүй юм.
/etc/ttys уруу терминалын оруулгууд нэмэх нь
Бид системд хоёр терминал холбохыг хүслээ гэж бодъё: Wyse-50
болон VT-100 терминалыг эмуляц хийх Procomm
терминал програм хангамжийг ажиллуулж байгаа хуучин 286 IBM PC-г
терминал маягаар ашиглая. Бид Wyse-ийг хоёр дахь цуваа порт уруу
холбож 286-г зургаа дахь цуваа порт уруу холбоё (олон порттой цуваа картын
порт). /etc/ttys файл дахь харгалзах
оруулгууд нь иймэрхүү байна:
ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Эхний талбар нь ихэвчлэн /dev-д байгаа
терминалын тусгай файлын нэрийг заадаг.
Хоёр дахь талбар нь энэ мөрийн хувьд ажиллах тушаал бөгөөд
ихэвчлэн &man.getty.8; байдаг. getty нь
эхлүүлж шугамыг нээн хурдыг тохируулан хэрэглэгчийн нэрийг асууж
&man.login.1; програмыг ажиллуулдаг.
getty програм нь нэг (нэмэлт) параметр
getty төрлийг өөрийн тушаалын мөрөнд
хүлээн авдаг. getty төрөл нь
терминалын шугам дахь bps хурд болон parity зэрэг шинжүүдийг
тохируулдаг. getty програм нь
эдгээр шинжүүдийг /etc/gettytab файлаас
уншдаг.
/etc/gettytab файл нь хуучин болон
шинэ терминалын шугамнуудад зориулсан олон мөрүүдийг агуулдаг.
Бараг бүх тохиолдолд std текстээр эхэлсэн
оруулгууд нь hardwired буюу хатуугаар холбогдсон терминалуудын
хувьд ажилладаг. Эдгээр оруулгууд нь parity-г орхидог.
110-аас 115200 хүртэл bps хурд болгоны хувьд std
оруулга байдаг. Мэдээж та өөрийнхөө оруулгыг энэ файлд нэмж болно.
&man.gettytab.5; гарын авлагын хуудас илүү дэлгэрэнгүй мэдээллийг
өгөх болно.
getty төрлийг
/etc/ttys файлд тохируулахдаа
терминал дахь холбооны тохируулгууд таарч байгаа эсэхийг
шалгаарай.
Бидний жишээн дээр Wyse-50 нь parity ашиглахгүй бөгөөд
38400 bps хурдаар холбогдоно. 286 PC нь parity
ашиглахгүй бөгөөд 19200 bps хурдаар холбогдоно.
Гурав дахь талбар нь тэр tty шугам уруу ихэвчлэн холбогдсон байдаг
терминалын төрөл юм. Хэрэглэгч нь бараг л дурын терминалын төрөл эсвэл
програм хангамжаар утасдан холбогдож болох учир dial-up портуудын хувьд
unknown эсвэл dialup
төрөл энэ талбарт ихэвчлэн ашиглагддаг. Хатуугаар холбогдсон терминалуудын
хувьд терминалын төрөл өөрчлөгдөхгүй учраас та энэ талбарт
&man.termcap.5; мэдээллийн баазаас жинхэнэ терминалын төрлийг
тавьж болно.
Бидний жишээн дээр Wyse-50 нь жинхэнэ терминалын төрлийг ашиглах
бол Procomm ажиллуулж байгаа
286 PC нь VT-100-г эмуляц хийхээр тохируулагдах болно.
Дөрөв дэх талбар нь порт идэвхтэй байх ёстой эсэхийг заадаг.
Энд on гэж тавихад init
процесс хоёр дахь талбар дахь програм getty-г
ажиллуулах болно. Хэрэв та энэ талбарт off гэж
тавьбал getty үгүй болж порт дээр
нэвтрэлт байхгүй болно.
Сүүлийн талбар нь порт аюулгүй эсэхийг заахад хэрэглэгддэг.
Портыг secure буюу аюулгүй болгох нь root
бүртгэлийг (эсвэл хэрэглэгчийн ID 0 бүхий дурын бүртгэлийг) тэр портоос
нэвтрэхийг зөвшөөрч хангалттай итгэнэ гэсэн үг юм. Insecure буюу
аюулгүй биш портууд нь root нэвтрэлтүүдийг
зөвшөөрдөггүй. Insecure буюу аюулгүй биш порт дээр хэрэглэгчид нь
эрхгүй бүртгэлүүдээс нэвтрэн орж супер хэрэглэгчийн эрхүүдийг
авахын тулд &man.su.1; эсвэл өөр төстэй арга замыг ашиглах
ёстой юм.
Түгжээтэй хаалганы цаана байгаа терминалын хувьд ч гэсэн
insecure
тохируулгыг ашиглах нь хамгийн зөв зүйтэй
юм. Хэрэв танд супер хэрэглэгчийн зөвшөөрлүүд хэрэгтэй бол
нэвтрэн ороод su тушаалыг ашиглах нь
их амархан байдаг.
/etc/ttys-г init тушаалаар
дахин уншуулах
/etc/ttys файлд шаардлагатай өөрчлөлтүүдийг
хийсний дараа init процесс уруу өөрийн тохиргооных нь файлыг
дахин уншуулахын тулд SIGHUP (hangup) дохиог илгээх хэрэгтэй. Жишээ нь:
&prompt.root; kill -HUP 1
init нь үргэлж систем дээр ажиллаж байгаа эхний
процесс байдаг учир энэ нь үргэлж PID 1-тэй байна.
Хэрэв бүгд зөв тохируулагдаж бүх кабелиуд нь байх ёстой газраа байж
терминалууд нь ассан байгаа бол терминал бүр дээр getty
процесс ажиллаж байх ёстой бөгөөд та энэ үед өөрийн терминалууд
дээр нэвтрэлт хүлээх мөрүүдийг харах ёстой.
Өөрийн холболтод гарсан алдааг олж засварлах нь
Нягт нямбай анхаарал хандуулсан байлаа ч гэсэн терминалыг тохируулж
байх явцад алдаа гарч буруутаж болох юм. Энд шинж тэмдгүүдийн жагсаалт
болон зарим нэг санал болгосон засваруудыг үзүүлэв.
Нэвтрэлт хүлээх мөр гарч ирэхгүй байх
Терминал холбогдсон бөгөөд ассан байгаа эсэхийг шалгана. Энэ нь хэрэв
терминал маягаар ажиллаж байгаа персонал компьютер бол зөв цуваа порт дээр
терминал эмуляц хийх програм хангамж ажиллуулж байгаа эсэхийг
шалгаарай.
Кабель терминал болон FreeBSD компьютерт сайн холбогдсон эсэхийг
шалгах хэрэгтэй. Энэ нь зөв төрлийн кабель болохыг баталгаажуулж үзээрэй.
Терминал болон FreeBSD нь bps хурд болон parity тохиргоонууд дээр
тохирч байгаа эсэхийг шалгаарай. Хэрэв та видео дэлгэцийн терминалтай бол
хар цагаан болон тод байдлын хяналтууд таарсан эсэхийг үзээрэй. Хэрэв энэ нь
хэвлэх терминал бол цаас болон бэх сайн эсэхийг шалгаарай.
getty процесс ажиллаж терминалд үйлчилж
байгаа эсэхийг үзнэ. Жишээ нь ажиллаж байгаа getty
процессуудын жагсаалтыг ps тушаалаар авахын тулд
доор дурдсаныг бичнэ:
&prompt.root; ps -axww|grep getty
Та терминалын хувьд түүний оруулгыг харах ёстой. Жишээ нь
дараах дэлгэц нь getty нь хоёр дахь
цуваа порт ttyd1 дээр ажиллаж
/etc/gettytab файлд
std.38400 гэсэн оруулгыг ашиглаж
байгааг харуулж байна:
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1
Хэрэв ямар ч getty процесс ажиллахгүй
байгаа бол /etc/ttys файлд та портыг
идэвхжүүлсэн эсэхээ шалгаарай. Мөн ttys
файлыг өөрчилснийхөө дараа kill -HUP 1
тушаалыг ажиллуулахаа мартуузай.
Хэрэв getty процесс ажиллаж байгаа боловч
терминал нь нэвтрэлт хүлээх мөрийг харуулахгүй байгаа, эсвэл энэ нь
хүлээх мөрийг үзүүлж байгаа боловч танд бичихийг зөвшөөрөхгүй байгаа бол
таны терминал эсвэл кабель тоног төхөөрөмжийн handshaking буюу
харилцан зохицож холбогдох горимыг дэмжихгүй байна гэсэн үг юм.
/etc/ttys файл дахь оруулгыг
std.38400-с 3wire.38400
уруу болгож үзээрэй (/etc/ttys файлыг өөрчилснийхөө
дараа kill -HUP 1 тушаалыг ажиллуулахаа
мартуузай). 3wire оруулга нь std-тэй
төстэй боловч тоног төхөөрөмжийн handshaking хийдэггүй.
Магадгүй та хурдыг багасгаж эсвэл 3wire-г
ашиглаж байхдаа буфер дүүрэхээс сэргийлж
програм хангамжийн урсгалын хяналтыг идэвхжүүлэх
хэрэгтэй байж болох юм.
Нэвтрэлт хүлээх мөрийн оронд хог гарч ирвэл
Терминал болон FreeBSD нь bps хурд болон parity тохиргоонууд дээр тохирч
байгаа эсэхийг шалгана. Зөв getty төрлийг
ашиглаж байгаа эсэхийг баталгаажуулж getty
процессуудыг шалгах хэрэгтэй. Хэрэв үгүй бол /etc/ttys-г
засварлаж kill -HUP 1 тушаалыг ажиллуулна.
Тэмдэгтүүд хоёр удаа гарах; бичих үед нууц үг гарах
Терминалыг (эсвэл терминал эмуляц хийх програм хангамжийг)
half duplex
эсвэл local echo
горимоос full duplex
уруу шилжүүлнэ.
Гай
Хэлмер
Хувь нэмэр болгон оруулсан
Шон
Келли
Нэмсэн
Dial-in буюу гаднаас залгах үйлчилгээ
dial-in үйлчилгээ
Өөрийн FreeBSD системийг dial-in буюу гаднаас залгах үйлчилгээнд
зориулж тохируулах нь терминалууд холбохтой маш төстэй бөгөөд ялгаатай
тал нь та терминалуудын оронд модемуудтай ажиллах юм.
Гадаад, Дотоод модемууд
Гадаад модемууд нь dial-up буюу гадагш залгахад илүү тохиромжтой
байдаг, учир нь гадаад модемууд нь хувирдаггүй RAM-д хадгалагдах параметрүүдээр
хагас тогтмолоор ихэвчлэн тохируулагдсан байж болдог бөгөөд тэдгээр нь ихэвчлэн
чухал RS-232 дохионуудын төлөвийг үзүүлдэг гэрлийн заагчтай байдаг.
Анивчих гэрлүүд нь гийчдийн сэтгэлийг татахаас гадна гэрлүүд нь бас модем зөв ажиллаж
байгаа эсэхийг харахад их ашигтай байдаг.
Дотоод модемуудад ихэвчлэн хувирдаггүй RAM байдаггүй болохоор тэдгээрийн
тохиргоо зөвхөн DIP шилжүүлэгчдийг тохируулснаар хязгаарлагдаж болох юм.
Хэрэв таны дотоод модем ямар нэг дохио заагч гэрэлтэй бол системийн гадар
байгаа нөхцөлд харахад хүнд байх байсан болов уу.
Модемууд болон Кабелууд
модем
Хэрэв та гадаад модем ашиглаж байгаа бол танд мэдээж зөв кабель
хэрэгтэй болно. Хэвийн бүх дохионууд холбогдсон байхад стандарт RS-232C цуваа
кабель хангалттай байх ёстой:
Дохионы нэрс
Товчлолууд
Нэрс
RD
Received Data буюу Хүлээн авсан өгөгдөл
TD
Transmitted Data буюу Дамжуулсан өгөгдөл
DTR
Data Terminal Ready буюу Өгөгдлийн терминал бэлэн
DSR
Data Set Ready буюу Өгөгдлийн олонлог бэлэн
DCD
Data Carrier Detect буюу Өгөгдлийн зөөгч илрүүлэх (RS-232-ийн Хүлээн авсан Шугамын Дохио Илрүүлэгч)
SG
Signal Ground буюу Дохио газар
RTS
Request to Send буюу Илгээх хүсэлт
CTS
Clear to Send буюу Илгээхэд цэвэр
2400 bps хурдаас дээш урсгалын хяналтад
RTS болон CTS дохионууд
FreeBSD-д хэрэгтэй байдаг. Мөн хэзээ дуудлага хүлээн авсан эсвэл шугам таслагдсаныг мэдэх
CD дохио болон сесс бүрэн гүйцэд болсны дараа модемийг
дахин тохируулах DTR дохионууд хэрэгтэй байдаг.
Зарим кабелиуд нь бүх хэрэгцээтэй дохионуудгүйгээр холбогдсон байдаг болохоор
шугам таслагдах үед нэвтрэх сесс байхгүй болохгүй байх зэрэг асуудлууд хэрэв танд байгаа бол
таны кабель асуудалтай байж болох юм.
Бусад &unix; төст үйлдлийн системүүдийн адил FreeBSD нь
хэзээ дуудлагыг хүлээн авсан эсвэл шугам хэзээ таслагдсан болон дуудлагын дараа
модемийг тасалж дахин тохируулахыг мэдэх тоног төхөөрөмжийн дохионуудыг
ашигладаг. FreeBSD нь модем уруу тушаалуудыг илгээх эсвэл модемоос
төлвийн тайлангуудыг харахаас зайлсхийдэг. Хэрэв та модемуудыг
PC дээр тулгуурласан мэдээ тавих системүүд уруу холбохыг мэддэг бол
энэ нь болхи санагдаж магадгүй юм.
Цуваа интерфэйсийн эргэцүүллүүд
FreeBSD нь NS8250-, NS16450-, NS16550-, болон NS16550A-дээр
тулгуурласан EIA RS-232C (CCITT V.24) холбооны интерфэйсүүдийг дэмждэг.
8250 болон 16450 интерфэйсүүд нь ганц тэмдэгтийн буфертай байдаг. 16550
төхөөрөмж нь системийн ажиллагааг илүү сайн болгох 16 тэмдэгтийн буфертай
байдаг. (Цэвэр 16550 дахь алдаанууд нь 16 тэмдэгтийн буферийн хэрэглээнээс
зайлсхийдэг, тиймээс хэрэв боломжтой бол 16550A-г ашиглаарай). Ганц тэмдэгтийн
буфер бүхий төхөөрөмжүүд нь 16 тэмдэгтийн буфер бүхий төхөөрөмжүүдээс илүү
ажил үйлдлийн системээс шаарддаг учраас 16550A-дээр тулгуурласан цуваа
интерфэйс картуудыг эрхэмлэх нь зүйтэй юм. Хэрэв систем олон идэвхтэй
цуваа портуудтай бол эсвэл их ачаалалтай бол 16550A-дээр тулгуурласан картууд
нь бага алдааны түвшин бүхий холбоонуудад илүү зохицдог.
Түргэн дүгнэлт
getty
Терминалуудтай адил init нь
гаднаас залгах холболтуудын хувьд тохируулсан цуваа порт бүрийн хувьд
getty процессийг ажиллуулдаг. Жишээ нь
хэрэв модем /dev/ttyd0 уруу
залгагдсан бол ps ax тушаал ингэж
харуулж болох юм:
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0
Хэрэглэгч модемийн шугам залгаад модем холбогдох үед
CD (Carrier Detect буюу Зөөгч Илрүүлэгч) шугамыг
модем гаргаж харуулна. Цөм зөөгч илрүүлэгдсэнийг мэдэж getty-ийн
порт нээхийг гүйцээнэ. getty нь login:
хүлээх мөрийг заагдсан эхний шугамын хурдаар илгээдэг. getty нь
зөвшөөрөгдсөн тэмдэгтүүд хүлээн авагдсан эсэхийг мэдэхийн тулд харж байдаг
бөгөөд ердийн тохиргоонд хэрэв энэ нь хог олох юм бол (модемийн холболтын хурд
getty-ийн хурднаас өөр байгаагаас магадгүй болоод)
getty нь боломжийн тэмдэгтүүд хүлээж автлаа
шугамын хурдуудыг тааруулахыг оролдох болно.
/usr/bin/login
Хэрэглэгч өөрийн нэвтрэх нэрийг оруулсны дараа getty
тушаал хэрэглэгчийн нууц үгийг асууж нэвтрэлтийг гүйцээн хэрэглэгчийн бүрхүүлийг
эхлүүлдэг /usr/bin/login тушаалыг
ажиллуулдаг.
Тохиргооны файлууд
/etc санд гурван системийн тохиргооны
файл байдаг бөгөөд өөрийн FreeBSD системд dial-up буюу гадагш
залгах боломжийг олгохын тулд та магадгүй засварлах хэрэгтэй болно.
Эхний /etc/gettytab нь
/usr/libexec/getty демоны тохиргооны
мэдээллийг агуулдаг.
Хоёр дахь /etc/ttys
нь getty процессуудын ажиллах tty
төхөөрөмжүүдэд юу байх ёстойг /sbin/init тушаалд хэлж өгөх
мэдээллийг агуулдаг.
Сүүлд нь порт эхлүүлэх тушаалуудыг та /etc/rc.d/serial
скриптэд байрлуулж болно.
&unix; дээр dial-up модемуудын талаар санаа бодлын хоёр сургууль байдаг.
Нэг бүлэг нь алсын хэрэглэгч ямар ч хурдаар залгасан байсан гэсэн локал компьютераас
модемд холбогдсон RS-232 интерфэйс түгжигдсэн хурдаар ажиллахаар өөрсдийн
модемууд болон системүүдийг тохируулах дуртай байдаг. Энэ тохиргооны ашигтай
тал нь алсын хэрэглэгч системийн нэвтрэлт хүлээх мөрийг үргэлж нэн даруй хардаг
явдал юм. Сул тал нь систем хэрэглэгчийн өгөгдлийн жинхэнэ хурдыг мэддэггүй
явдал бөгөөд Emacs зэрэг бүрэн дэлгэцийн програмууд нь
удаан холболтуудын хувьд хариултыг сайжруулахын тулд өөрийн дэлгэц будах аргуудаа
тааруулахгүй байх болно.
Нөгөө нэг сургууль нь өөрсдийн модемуудынхаа RS-232 интерфэйсийн хурдыг
алсын компьютерийн холболтын хурд дээр тулгуурлан өөрчилдгөөр тохируулдаг.
Жишээ нь модем уруу хийгдэх V.32bis (14.4 Kbps) холболтууд нь
модемийг өөрийн RS-232 интерфэйсийг 19.2 Kbps хурдаар ажиллуулах
бол 2400 bps холболтууд нь модемийн RS-232 интерфэйсийг 2400 bps
хурд дээр ажиллуулдаг. getty нь тухайн ямар нэг
модемийн холболтын хурдны тайлагналтыг ойлгодоггүй учраас getty
тушаал нь login: мэдэгдлийг эхний хурдан дээр
өгдөг бөгөөд хариултаас ирэх тэмдэгтүүдийг харж байдаг. Хэрэв хэрэглэгч хог
харвал тэдгээр нь танигдах хүлээх мөрийг хартлаа Enter
товчлуурыг дарах ёстой гэдгээ мэдэж байгаа гэж тооцдог. Хэрэв өгөгдлийн хурд
таарахгүй бол getty нь хэрэглэгчийн бичсэн болгоныг
хог
гэж харах бөгөөд дараагийн хурдыг оролдож
login: хүлээх мөрийг дахин өгдөг. Энэ процедур
дотор муухайрах түвшинд хүртэл үргэлжилж болох боловч хэрэглэгч зөв хүлээх мөрийг харах
хүртэл ихэвчлэн ганц хоёр товчлуур даруулдаг. Мэдээж энэ нэвтрэлтийн дараалал нь
түрүүчийн locked-speed буюу түгжигдсэн хурд
тай адил
цэвэр байдаггүй боловч бага хурдтай холболтон дээр байх хэрэглэгчийн хувьд бүрэн дэлгэцийн
програмуудаас илүү сайн интерактив хариултыг хүлээн авах ёстой юм.
Энэ хэсэг нь тэнцвэртэй тохиргооны мэдээллийг өгөхийг оролдох боловч
модемийн өгөгдлийн хурд холболтын хурдыг дагах тал уруу илүү хазайсан байгаа
болно.
/etc/gettytab
/etc/gettytab
/etc/gettytab нь &man.getty.8;-ийн
тохиргооны мэдээллийн &man.termcap.5; загварын файл юм. Файлын
хэлбэр болон боломжуудын жагсаалтын тухай бүрэн мэдээллийг &man.gettytab.5;
гарын авлагын хуудаснаас үзнэ үү.
Locked-speed буюу түгжигдсэн хурд тохиргоо
Хэрэв та өөрийн модемийн өгөгдлийн холбоонуудын хурдыг тухайн нэг
хурдан дээр түгжиж байгаа бол магадгүй /etc/gettytab файлд
ямар нэг өөрчлөлт хийх шаардлагагүй юм.
Matching-speed буюу таарах хурд тохиргоо
Өөрийн модемд зориулж ашиглахыг хүссэн хурдны талаар getty-д
мэдээлэл өгөхийн тулд /etc/gettytab файлд та
оруулга тохируулах хэрэгтэй болно. Хэрэв та 2400 bps модемтой бол
байгаа D2400 оруулгыг магадгүй ашиглаж болох
юм.
#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:
Хэрэв та илүү хурдтай модемтой бол /etc/gettytab
файлд магадгүй оруулга нэмэх хэрэгтэй болж болох юм; энд
интерфэйсийн дээд хурд нь 19.2 Kbps бүхий 14.4 Kbps модемд
зориулан таны ашиглах оруулга байна:
#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:
Энэ нь 8 бит, parity байхгүй холболтуудад хүргэнэ.
Дээрх жишээ нь холболтын хурдаа 19.2 Kbps
(V.32bis холболтын хувьд) гэж эхлүүлж дараа нь 9600 bps (V.32-ийн хувьд),
2400 bps, 1200 bps, 300 bps, гэж оролдоод
19.2 Kbps хурд уруу буцах болно. Холбооны хурдны тойролт нь
nx= (next table
буюу дараагийн
хүснэгт) боломжтой цуг хийгдсэн байдаг. Мөр бүр нь өгөгдлийн тухайн хурдны
хувьд стандарт
тохиргоонуудын үлдсэнийг авахын тулд
tc= (table continuation
буюу
хүснэгтийн үргэлжлэл) оруулгыг ашигладаг.
Хэрэв та 28.8 Kbps модемтой ба/эсвэл та 14.4 Kbps модем
дээр шахалтын давуу талыг авахыг хүсвэл 19.2 Kbps-ээс илүү холбооны
хурдыг ашиглах хэрэгтэй юм. Энд 57.6 Kbps-ээс эхлэх
gettytab оруулгын жишээ байна:
#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:
Хэрэв та удаан CPU-тэй эсвэл ачаалал ихтэй системтэй бөгөөд
16550A дээр тулгуурласан цуваа портуудтай бол 57.6 Kbps хурд
дээр та sio silo
гэсэн алдаанууд хүлээн авч болох юм.
/etc/ttys
/etc/ttys
/etc/ttys файлын тохиргоо
хэсэгт яригдсан байгаа.
Модемуудын тохиргоо төстэй боловч бид өөр терминалын төрлийг заахын тулд
getty уруу өөр нэмэлт өгөгдлүүдийг дамжуулах ёстой.
Түгжигдсэн хурдтай болон таарах хурдтай тохиргоонуудын ерөнхий хэлбэр нь
иймэрхүү байна:
ttyd0 "/usr/libexec/getty xxx" dialup on
Дээрх мөрний эхнийх нь энэ оруулгад зориулсан төхөөрөмжийн тусгай
файл юм — ttyd0 нь /dev/ttyd0
гэсэн үг бөгөөд үүнийг getty харж байдаг.
Хоёр дахь "/usr/libexec/getty
xxx"
(xxx нь эхний
gettytab боломжоор солигдоно) нь энэ төхөөрөмж дээр
init-ийн ажиллуулах процесс юм. Гурав дахь
dialup гэдэг нь терминалын анхдагч төрөл юм.
Дөрөв дэх параметр on гэдэг нь init-д
шугам ажиллагаатай гэдгийг заана. Тав дахь параметр secure
байж болох боловч энэ нь зөвхөн физикийн хувьд аюулгүй терминалуудад (системийн
консолд) ашиглагдах ёстой юм.
Анхдагч терминалын төрөл нь (дээрх жишээний dialup)
локал тохируулгуудаас хамаарна. dialup нь dial-up шугамууд
дээрх уламжлалт терминалын анхдагч төрөл бөгөөд хэрэглэгчид нь өөрсдийн нэвтрэх
скриптүүдийг терминал dialup байгаа үед мэдэхээр өөрчилж өөрсдийн
терминалын төрлийг автоматаар тааруулж болох юм. Гэхдээ зохиогч өөрийн сайт дээр
анхдагч терминалын төрлөө vt102 гэх нь хялбар болохыг
олсон бөгөөд хэрэглэгчид өөрсдийн алсын системүүд дээрээ ердөө л VT102 эмуляцыг
ашигладаг болохоор тэр юм.
Та /etc/ttys файлд өөрчлөлтүүд хийснийхээ
дараа init процессод файлыг дахин уншуулахын тулд
HUP дохиог илгээж болох юм. Та дараах тушаалыг
ашиглаж
&prompt.root; kill -HUP 1
дохио илгээж болно. Хэрэв та анх удаагаа системийг тохируулж байгаа бол
өөрийн модем(үүд)ийг зөв тохируулж init
уруу дохиолохоос өмнө холбогдох хүртэл хүлээхийг хүсэж болох юм.
Locked-speed буюу түгжигдсэн хурд тохиргоо
Түгжигдсэн хурд тохиргооны хувьд таны ttys
оруулга getty уруу өгөгдөх тогтмол хурд бүхий
оруулгатай байх хэрэгтэй. Портын хурд нь 19.2 Kbps
гэж түгжигдсэн модемийн хувьд ttys оруулга нь
иймэрхүү харагдаж болох юм:
ttyd0 "/usr/libexec/getty std.19200" dialup on
Хэрэв таны модем өөр хурдан дээр түгжигдсэн бол
std.19200-ийн оронд
std.speed-ийн
хувьд тохирох утгыг тавьж солиорой. Та /etc/gettytab-д
жагсаагдсан зөв төрлийг ашигласан эсэхээ шалгаарай.
Matching-speed буюу таарах хурд тохиргоо
Таарах хурд тохиргоон дээр таны ttys
оруулга нь /etc/gettytab дахь
тохирох зөв auto-baud
(sic) оруулгаас
авах хэрэгтэй болдог. Жишээ нь хэрэв та дээрх санал
болгосон оруулгыг 19.2 Kbps-ээс (V19200 эхлэх
цэгийг агуулах gettytab оруулга) эхлэх таарах хурд
бүхий модемийн хувьд нэмсэн бол таны ttys
оруулга иймэрхүү харагдах болно:
ttyd0 "/usr/libexec/getty V19200" dialup on
/etc/rc.d/serial
rc files
rc.serial
V.32, V.32bis, болон V.34 зэрэг өндөр хурдтай модемууд
тоног төхөөрөмжийн (RTS/CTS) урсгал хяналтыг
ашиглах хэрэгтэй. Та модемийн портуудын хувьд FreeBSD цөмд
тоног төхөөрөмжийн урсгалын хяналтын тугийг тохируулахын тулд
stty тушаалуудыг /etc/rc.d/serial
файлд нэмж болно.
Жишээ нь гаднаас залгах болон гадагш залгах эхний төхөөрөмжүүдийн
хувьд цуваа порт #1 дээр crtscts гэсэн
termios-ийн тугийг тохируулахын тулд
дараах мөрүүдийг /etc/rc.d/serial
файлд нэмж болох юм:
# Serial port initial configuration
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtscts
Модемийн тохиргоонууд
Хэрэв та хувирдаггүй RAM-д параметрүүд нь тогтмолоор тохируулагдсан байж болох
модемтой бол параметрүүдийг тохируулахын тулд та терминал програм (&ms-dos; дээр
Telix эсвэл FreeBSD дээр tip гэх мэт) ашиглах
хэрэгтэй болно. Эхний хурдтай адил холболтын хурдыг ашиглан модем уруу холбогдохын
тулд getty нь доор дурдсан шаардлагуудтай таарахын тулд
модемийн хувирдаггүй RAM-ийг хэрэглэж тохируулах болно:
Холбогдох үед CD шалгагдана
Үйлдлийн хувьд DTR шалгагдана; DTR-ийг
хаях нь шугамыг салгаж модемийг дахин тохируулахад хүргэнэ
CTS нь өгөгдлийн урсгалын хяналтыг дамжуулсан
XON/XOFF урсгалын хяналтыг хаана
RTS нь өгөгдлийн урсгалын хяналтыг хүлээн авсан
Чимээгүй горим (үр дүнгийн кодууд байхгүй)
Тушаалын цуурай байхгүй
Аль тушаалууд ба/эсвэл DIP шилжүүлэгчийн тохиргоонуудыг та өгөх ёстой
болохыг олохын тулд өөрийн модемийн баримтыг уншина уу.
Жишээ нь &usrobotics; &sportster; 14,400 хурдтай гадаад модем
дээр дээрх параметрүүдийг тохируулахын тулд эдгээр тушаалуудыг модемд өгч
болох юм:
ATZ
AT&C1&D2&H1&I0&R2&W
V.42bis ба/эсвэл MNP5 шахалтыг ашиглах зэрэг модемийн бусад тохиргоонуудыг
тааруулахын тулд та бас энэ боломжийг ашиглахыг хүсэж болох юм.
&usrobotics; &sportster; 14,400 хурдтай гадаад модем нь тохируулах хэрэгтэй
DIP шилжүүлэгчүүдтэй бас байдаг; бусад модемуудын хувьд та эдгээр тохируулгуудыг
жишээ болгон ашиглаж болох юм:
Шилжүүлэгч 1: ДЭЭШ — DTR Хэвийн
Шилжүүлэгч 2: N/A буюу Байхгүй (Үр дүнгийн үгэн кодууд/Үр дүнгийн тоон кодууд)
Шилжүүлэгч 3: ДЭЭШ — Үр дүнгийн дарах/хориглох кодууд
Шилжүүлэгч 4: ДООШ — Цуурай байхгүй, холбогдоогүй үеийн тушаалууд
Шилжүүлэгч 5: ДЭЭШ — Автомат хариулна
Шилжүүлэгч 6: ДЭЭШ — Зөөгч илрүүлэлт хэвийн
Шилжүүлэгч 7: ДЭЭШ — NVRAM анхдагчуудыг ачаалах
Шилжүүлэгч 8: N/A буюу Байхгүй (Ухаалаг Горим/Дүлий Горим)
Хэрэв getty тушаал нь
login: хүлээх мөрийг тушаалын горимд байгаа модем уруу
андуурч өгсөн бөгөөд модем нь тушаалыг цуурайтуулан буцааж эсвэл үр дүнгийн
кодыг буцаахад үүсч болох асуудлуудаас сэргийлэхийн тулд үр дүнгийн кодууд нь
dial-up модемуудын хувьд хаагдсан/дарагдсан байх ёстой. Энэ дараалал нь
getty болон модемийн хооронд сунасан, тэнэг
ярианд хүргэж болох юм.
Locked-speed буюу түгжигдсэн хурд тохиргоо
Түгжигдсэн хурд тохиргооны хувьд та модемийг холболтын хурдаас хамааралгүйгээр
модемоос компьютер хүртэлх өгөгдлийн хурдыг тогтмолоор байлгахаар тохируурах
хэрэгтэй. &usrobotics; &sportster; 14,400 хурдтай гадаад модем дээр
эдгээр тушаалууд нь модемоос компьютер хүртэлх өгөгдлийн хурдыг тушаалуудыг
ажиллуулах хурд дээр түгжих болно:
ATZ
AT&B1&W
Matching-speed буюу таарах хурд тохиргоо
Хувьсах хурд тохиргооны хувьд ирж байгаа дуудлагын хурдтай ижил байлгаж
өөрийн цуваа портын өгөгдлийн хурдыг тааруулахын тулд та өөрийн модемийг
тохируулах хэрэгтэй болно. &usrobotics; &sportster; 14,400 хурдтай
гадаад модем дээр эдгээр тушаалууд нь модемийн алдаа засварлах өгөгдлийн хурдыг
тушаалуудыг ажиллуулах хурд дээр түгжих боловч цуваа портын хурдыг
алдаа засварлахүй холболтуудын хувьд хувьсах байхаар зөвшөөрөх болно:
ATZ
AT&B2&W
Модемийн тохиргоог шалгах нь
Ихэнх өндөр хурдтай модемууд нь модемийн тухайн үеийн үйлдлийн параметрүүдийг
хүн уншиж болохоор үзүүлэх тушаалуудтай байдаг. &usrobotics; &sportster; 14,400 хурдтай
гадаад модемууд дээр ATI5 тушаал хувирдаггүй RAM-д хадгалагдаж
байгаа тохиргоонуудыг харуулдаг. Модемийн үйлдлийн жинхэнэ параметрүүдийг харахын
тулд (модемийн DIP шилжүүлэгчийн тохиргоонууд нөлөөлсөн) ATZ болон
дараа нь ATI4 тушаалуудыг ашиглана.
Хэрэв та өөр загварын модемтой бол өөрийн модемийн тохиргооны
параметрүүдийг хэрхэн давхар шалгах талаар өөрийн модемийн гарын авлагаас
шалгаарай.
Алдааг олж засварлах нь
Өөрийн систем дээр dial-up модемийг шалгахын тулд таны дагах цөөн хэдэн алхмууд
энд байна.
FreeBSD системийг шалгах
Өөрийн модемийг өөрийн FreeBSD системд залгаад системээ ачаалах бөгөөд
хэрэв таны модем төлөв заах гэрлүүдтэй бол системийн консол дээр login:
хүлээх мөр гарч ирэх үед модемийн DTR заагч асаж байгаа эсэхийг
шалгах хэрэгтэй — хэрэв асаж байгаа бол FreeBSD нь тохирох холболтуудын
порт дээр getty-г эхлүүлж модемийг дуудлага хүлээж авахыг
хүлээж байна гэсэн үг юм.
Хэрэв DTR заагч асахгүй бол FreeBSD систем уруу
консолоор нэвтрээд FreeBSD нь зөв порт дээр getty процессийг
ажиллуулахаар оролдож байгаа эсэхийг харахын тулд ps ax
тушаалыг ажиллуулна. Та эдгээртэй төстэй мөрүүдийг процессуудын хамтаар
харах ёстой:
114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1
Хэрэв та үүнтэй адил өөр:
114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0
мөрийг харсан бөгөөд модем нь дуудлага хүлээж авч амжаагүй байгаа бол
getty нь холболтуудын порт дээр өөрийн онгойлголтыг
бүрэн хийж гүйцсэн гэсэн үг юм. Энэ нь кабелийн асуудал эсвэл буруу тохируулсан модемтой
холбоотой асуудлыг зааж болох юм. Яагаад гэвэл getty
нь CD-г (carrier detect буюу зөөгч илрүүлэх) модемоор
шалгагдтал холболтуудын портуудыг онгойлгож чадахгүй байх ёстой юм.
Хэрэв та хүссэн ttydN
портыг онгойлгохыг хүлээж байгаа ямар нэг getty процессуудыг
харахгүй байгаа бол /etc/ttys файл дахь өөрийн оруулгуудад
алдаа байгаа эсэхийг давхар шалгаарай. Мөн init эсвэл
getty тушаалаас гарсан бүртгэлийн ямар нэг мэдэгдлүүд
асуудлууд байгаа эсэхийг мэдээлсэн эсэхийг харахын тулд бүртгэлийн файл
/var/log/messages-г бас шалгаарай. Хэрэв ямар нэг
мэдэгдлүүд байгаа бол /etc/ttys болон
/etc/gettytab тохиргооны файлуудыг гурав дахин
шалгаарай. Мөн /dev/ttydN зэрэг тохирох төхөөрөмжийн
тусгай файлуудад алдаанууд, оруулгууд дутагдаж байгаа эсэх, эсвэл төхөөрөмжийн
тусгай файлууд дутагдаж байгаа эсэхийг бас шалгаарай.
Гаднаас залгаж үзэх
Систем уруу гаднаас залгаж үзээрэй; 8 битийг parity байхгүйгээр болон
алсын систем дээр 1 зогсох битийг ашигласан эсэхээ шалгаарай.
Хэрэв та хүлээх мөрийг тэр дор нь хүлээж авахгүй бол эсвэл хог хүлээн авсан бол
секунд тутам нэг Enter дараад оролдоод үзээрэй.
Тэгсэн ч гэсэн та login: хүлээх мөрийг хэсэг хугацаа
өнгөрсөн ч гэсэн харахгүй байгаа бол BREAK илгээж
оролдоод үзээрэй. Та залгахдаа өндөр хурдтай модем ашиглаж байгаа бол
модемийн интерфэйсийн хурдыг (жишээ нь &usrobotics; &sportster;
модем дээр AT&B1 тушаал ашиглан) түгжсэнийхээ дараа
дахин залгаад оролдоод үзээрэй.
Хэрэв та тэгсэн ч гэсэн login: хүлээх мөрийг
хүлээн авахгүй байгаа бол /etc/gettytab файлыг
дахин шалгаад доор дурдсаныг давхар шалгаарай
Шугамын хувьд /etc/ttys файлд заагдсан
боломжийн эхний нэр /etc/gettytab дахь
боломжийн нэртэй таарч байгаа эсэх
nx= оруулга бүр gettytab
боломжийн өөр нэртэй таарч байгаа эсэх
tc= оруулга бүр gettytab
боломжийн өөр нэртэй таарч байгаа эсэх
Хэрэв таныг залгахад FreeBSD систем дээрх модем хариулахгүй байгаа бол
DTR шалгагдах үед модем нь утсанд хариулахаар тохируулагдсан
эсэхийг шалгаарай. Хэрэв модем зөв тохируулагдсан юм шиг байвал
DTR шугам шалгагдсан эсэхийг модемийн заагч гэрлүүдийг (гэрлүүдтэй бол)
шалган нягтлаарай.
Хэрэв та бүгдийг хэд хэдэн удаа шалгасан бөгөөд ажиллахгүй хэвээр байгаа бол
завсарлага аваад дараа нь үзээрэй. Хэрэв тэгсэн ч гэсэн ажиллахгүй байгаа бол
та &a.questions; уруу өөрийн модем болон асуудлынхаа талаар цахим захидал
илгээж болох бөгөөд жагсаалтан дахь сайн хүмүүс танд туслахыг оролдох болно.
Dial-out буюу гадагш залгах үйлчилгээ
dial-out үйлчилгээ
Дараах нь таны хостыг модемоор өөр компьютер уруу холбох зааврууд юм.
Энэ нь алсын хосттой терминал сесс үүсгэхэд тохирох юм.
Энэ нь BBS уруу нэвтрэн ороход ашигтай байдаг.
Хэрэв та PPP дээр асуудалтай байгаа бол Интернэт дэх файлыг авахад энэ төрлийн
холболт нь туйлын ашигтай байж болох юм. Хэрэв та ямар нэг зүйл FTP хийх хэрэгтэй
бөгөөд PPP эвдэрсэн бол терминал сесс ашиглан FTP хийж болно. Дараа нь
түүнийг өөрийн машин уруу дамжуулахын тулд zmodem ашиглана.
Миний Hayes модем дэмжигдээгүй байна, би юу хийх вэ?
Жинхэнэдээ бол tip-д зориулсан гарын авлагын
хуудас хуучирсан байгаа. Энгийн Hayes залгагч аль хэдийн цуг бүтээгдсэн байгаа
болно. Өөрийн /etc/remote файлд ердөө л
at=hayes-г ашиглаарай.
Hayes драйвер нь шинэ модемуудын дэвшилтэт боломжуудын заримыг
таних хэмжээний ухаалаг байдаггүй бөгөөд BUSY, NO DIALTONE,
эсвэл CONNECT 115200 зэрэг мэдэгдлүүд нь
түүнийг самууруулах болно. Та tip-ийг хэрэглэхдээ тэдгээр мэдэгдлүүдийг
(ATX0&W-г ашиглаж) хаах хэрэгтэй.
Бас tip-ийн хувьд залгах хугацаа нь 60 секунд байдаг.
Таны модем нь үүнээс багыг ашиглах ёстой бөгөөд тэгэхгүй бол tip холбоонд асуудал
байна гэж үзэх болно. ATS7=45&W гэж үзээрэй.
tip нь Hayes модемуудыг бүрэн гүйцэд
дэмждэггүй. Үүний шийдэл нь /usr/src/usr.bin/tip/tip
сан дахь tipconf.h файлыг засварлах явдал
юм. Танд мэдээж үүнийг хийхийн тулд эх түгээлт байх шаардлагатай.
#define HAYES 0 мөрийг
#define HAYES 1 болгон засварлана. Дараа нь
make хийгээд make install хийнэ.
Түүний дараа бүгд сайхан ажиллах болно.
Эдгээр AT тушаалуудыг би хэрхэн оруулах ёстой вэ?
/etc/remote
Өөрийн /etc/remote файлдаа шууд
гэгддэг оруулгыг хийх хэрэгтэй. Жишээ нь хэрэв таны модем эхний цуваа порт /dev/cuad0-д
- холбогдсон бол дараах мөрийг тавина:
+ холбогдсон бол дараах мөрийг тавьна:
cuad0:dv=/dev/cuad0:br#19200:pa=none
br боломжид таны модемийн дэмждэг хамгийн их bps хурдыг ашиглаарай. Дараа нь
tip cuad0 гэж бичихэд та өөрийн модемд холбогдох
болно.
root хэрэглэгчээр cu-г
дараах маягаар ашиглаарай:
&prompt.root; cu -lline -sspeed
line нь цуваа порт (өөрөөр хэлбэл
/dev/cuad0) бөгөөд
speed нь хурд (өөрөөр хэлбэл
57600) юм. Та AT тушаалуудыг оруулж дуусаад
гарахын тулд ~. дарна.
pn боломжийн @ тэмдэг ажиллахгүй байна!
Утасны дугаарын боломжийн @ тэмдэг нь tip-ийг
/etc/phones файлаас утасны дугаар хайхыг заадаг.
Гэхдээ @ тэмдэг нь бас /etc/remote
зэрэг боломжийн файлуудын тусгай тэмдэгт юм. Үүнийг урагш ташуу зураас ашиглан
оруулж болно:
pn=\@
Тушаалын мөрөн дээр би утасны дугаар уруу хэрхэн залгах вэ?
Өөрийн /etc/remote файлд
ердийн
гэгддэг оруулгыг оруулна. Жишээ нь:
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuad0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:
Дараа нь та иймэрхүү зүйлс хийж болно:
&prompt.root; tip -115200 5551234
Хэрэв та cu-г tip-ээс
илүүд үздэг бол ердийн cu оруулгыг ашиглаж:
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:
дараа нь ингэж бичнэ:
&prompt.root; cu 5551234 -s 115200
Би түүнийг хийх болгондоо bps хурдыг бичих хэрэгтэй юу?
tip1200 эсвэл cu1200-ийн
хувьд оруулгыг хийнэ, гэхдээ br боломжтой тохирох ямар ч bps хурдыг ашиглаж болно.
tip нь боломжийн анхдагч утга бол 1200 bps гэж үздэг.
tip1200 оруулгыг хайдгийн учир нь ийм юм.
Гэхдээ та заавал 1200 bps хурдыг ашиглах шаардлагагүй юм.
Би терминал серверээр хэд хэдэн хостууд уруу ханддаг
Та холбогдох хүртлээ хүлээж CONNECT <host> гэж
тухай бүрт бичиж байхын оронд tip-ийн cm боломжийг
ашиглаж болно. Жишээ нь /etc/remote файл
дахь эдгээр оруулгууд нь:
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:
pain эсвэл muffin хостууд уруу
холбогдохын тулд танд tip pain эсвэл tip
muffin гэж бичих боломжийг олгохоос гадна терминал сервер уруу
орохын тулд tip deep13 гэж бичих боломжийг бас олгоно.
Сайт болгоны хувьд нэгээс их мөрийг tip оролдож чадах уу?
Энэ нь их сургууль хэд хэдэн модемийн шугамуудтай бөгөөд хэдэн мянган оюутнууд
тэдгээрийг ашиглахыг оролдох үед ихэвчлэн гардаг асуудал юм.
Өөрийн их сургуулийн оруулгыг /etc/remote файлд
хийгээд pn боломжийн хувьд @-ийг
ашиглаарай:
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuad3:br#9600:at=courier:du:pa=none:
Дараа нь их сургуулиудын хувьд утасны дугааруудыг
/etc/phones файлд жагсаана:
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
tip нь жагсаагдсан дарааллаар утас болгоныг
оролдож дараа нь зогсоно. Та оролдлогоо үргэлжлүүлсээр байхын тулд
tip-ийг while давталтад ажиллуулах
хэрэгтэй.
Ctrl
P
хослолыг нэг удаа илгээхийн тулд
Ctrl
P
хослолыг яагаад хоёр удаа дарах хэрэгтэй гэж?
CtrlP нь
анхдагч force буюу хүчлэх
тэмдэгт бөгөөд tip
тушаалд дараагийн тэмдэгт нь үсгэн өгөгдөл гэдгийг хэлэхэд хэрэглэгддэг.
Та хүчлэх тэмдэгтийг дурын тэмдэгт болгон ~s тушаалаар
зааж өгч болно. ~s тушаал нь хувьсагчийг
тохируулах
гэсэн үг юм.
~sforce=single-char
гэж бичээд шинэ мөр авах хэрэгтэй. single-char нь
дурын ганц тэмдэгт юм. Хэрэв та single-char-г
орхих юм бол хүчлэх тэмдэгт нь хоосон тэмдэгт болох бөгөөд та үүнийг
Ctrl2
эсвэл
CtrlSpace
гэж бичин авч болно.
single-char-ийн хувьд боломжийн утга
Shift
Ctrl
6
байж болох бөгөөд энэ нь зөвхөн зарим нэг терминал серверүүдийн хувьд
ашиглагддаг.
Та хүчлэх тэмдэгтийг өөрийн хүссэнээр
$HOME/.tiprc файлд доор дурдсаныг
зааж тохируулж болно:
force=<single-char>
Гэнэт миний бичсэн болгон том үсгээр гараад байна??
Та
эвдэгдсэн caps-lock товчлуур бүхий хэрэглэгчдэд тусгайлан зориулагдсан
tip-ийн өсгөх тэмдэгт
болох
Ctrl
A
хослолыг дарсан байна. Дээр дурдсаны адил ~s
тушаалыг ашиглан raisechar хувьсагчийг
боломжийн утгаар тохируулах хэрэгтэй. Та үүнийг хүчлэх тэмдэгттэй
адилаар тохируулж болох юм. Өөрөөр хэлбэл хэрэв та эдгээр боломжуудын
аль нэгийг ашиглах бол ингэж болох юм.
Ctrl2
болон
CtrlA
хослолуудыг байнга бичих хэрэгтэй болдог
Emacs хэрэглэгчдэд
яг зориулагдсан жишээ .tiprc файл энд байна:
force=^^
raisechar=^^
^^ нь
ShiftCtrl6
юм.
tip-ээр би яаж файл дамжуулалтуудыг хийх вэ?
Хэрэв та өөр &unix; системтэй харьцаж байвал та ~p (put буюу тавих) болон
~t (take буюу авах) тушаалуудыг ашиглан файлуудыг илгээж хүлээн
авч болно. Эдгээр тушаалууд нь файлуудыг хүлээн авч илгээхийн тулд алсын систем дээр
cat болон echo
тушаалуудыг ажиллуулдаг. Синтакс нь ийм байна:
~p
local-file
remote-file
~t
remote-file
local-file
Алдаа шалгалт байдаггүй учраас магадгүй та zmodem-той адил өөр протокол
ашиглах хэрэгтэй юм.
tip-тэй би zmodem-ийг хэрхэн ажиллуулах вэ?
Файлуудыг хүлээн авахын тулд алсын машин дээр програмыг илгээж эхэлнэ.
Дараа нь тэдгээрийг локалаар хүлээн авч эхлэхийн тулд ~C rz
гэж бичнэ.
Файлуудыг илгээхийн тулд алсын машин дээр програмыг хүлээн авч эхэлнэ. Дараа нь тэдгээрийг
алсын систем уруу илгээхийн тулд ~C sz files
гэж бичнэ.
Казутака
ЁОКОТА
Хойно дурдсан хүний бичсэн баримт дээр тулгуурлан хувь нэмэр болгон оруулсан
Билл
Пол
Бичиг баримтыг бичсэн
Цуваа консолыг тохируулах нь
цуваа консол
Танилцуулга
FreeBSD нь зөвхөн цуваа порт дээр консол маягаар ашиглах дүлий терминал бүхий
систем дээр ачаалах чадвартай байдаг. Ийм тохиргоо нь хоёр ангиллын хүмүүст
ашигтай байх ёстой бөгөөд эдгээр нь гар эсвэл монитор байхгүй машинууд дээр FreeBSD суулгахыг
хүссэн системийн администраторууд болон цөм эсвэл төхөөрөмжийн драйверуудыг
дибаг хийхийг хүссэн хөгжүүлэгчид юм.
-т тайлбарласнаар FreeBSD нь гурван шаттай эхлүүлэгчийг
хэрэглэдэг. Эхний хоёр шат нь ачаалах диск дээрх FreeBSD-ийн зүсмэлийн эхлэл дээр
хадгалагддаг ачаалах блокийн кодод байдаг. Ачаалах блок нь ачаалагч дуудагчийг
(/boot/loader) гурав дахь шатны код болгон дуудаж
ажиллуулдаг.
Цуваа консолыг тохируулахын тулд та ачаалах блокийн код, ачаалагч дуудах код болон
цөмөө тохируулах ёстой болно.
Цуваа консолын тохиргоо, Товч хувилбар
Энэ хэсэг нь таныг анхдагч тохируулга ашиглаж байгаа бөгөөд цуваа консолыг
тохируулах хурдан тоймыг авахыг хүсэж байгаа гэж үздэг.
Цуваа кабелийг COM1 болон хянаж байгаа терминал уруу
холбоно.
Цуваа консол дээр бүх ачаалалтын мэдэгдлүүдийг харахын тулд
супер хэрэглэгчээр нэвтэрснийхээ дараа дараах тушаалыг ажиллуулна:
&prompt.root; echo 'console="comconsole"' >> /boot/loader.conf
/etc/ttys-г засварлаж ttyd0
оруулгын хувьд off гэснийг
on, dialup
гэснийг vt100 болгоно. Ингэхгүй бол
цуваа консолоор холбогдоход нууц үг шаардахгүй бөгөөд
боломжит аюулгүй байдлын цоорхой үүсгэх юм.
Өөрчлөлтүүд идэвхтэй болсон эсэхийг харахын тулд системийг дахин ачаална.
Хэрэв өөр тохиргоо шаардлагатай бол
хэсэгт илүү гүнзгий тохиргооны тайлбар байгаа болно.
Цуваа консолын тохиргоо
Цуваа кабель бэлдэнэ.
null-модем кабель
Танд null-модем кабель эсвэл стандарт цуваа кабель болон null-модем
хувиргагч хэрэгтэй болно. Цуваа кабелиудын тухай хэлэлцүүлгийг
хэсгээс үзнэ үү.
Гарыг салгана.
Ихэнх PC системүүд нь Power-On Self-Test (POST) буюу асаах үеийн
тестийн үеэр гарыг байгаа эсэхийг шалгадаг бөгөөд гар олдохгүй бол
алдаа үүсгэдэг. Зарим машинууд нь гар байхгүйг чангаар мэдээлж
залгагдтал нь цааш ачаалдаггүй.
Хэрэв таны компьютер алдааг мэдээлсэн боловч цааш ачаалах юм бол
та ямар нэг тусгай зүйл хийх шаардлагагүй юм. (Phoenix BIOS суулгагдсан
зарим машинууд нь ердөө л Keyboard failed
гэж мэдээлээд хэвийнээр цааш ачаалах болно.)
Хэрэв таны компьютер гар залгалгүйгээр ачаалахаас татгалзвал энэ алдааг
авч үзэлгүйгээр орхихоор болгож та BIOS-оо тохируулах хэрэгтэй болно
(хэрэв болдог бол). Үүнийг хэрхэн хийх талаар дэлгэрэнгүйг өөрийн эх хавтангийн
гарын авлагаас лавлана уу.
BIOS-ийн тохиргоон дээр гараа Not installed
буюу
суулгагдаагүй гэж тохируулна. Тэгсэн ч гэсэн та өөрийн гарыг ашиглаж чадах
болно. Үүний хийж байгаа зүйл нь BIOS-д асах үед гарыг шалгахгүй
гэж хэлж өгч байгаа юм. Таны BIOS гар байхгүй үед гомдоллохгүй байх
ёстой. Та энэ тугийг Not installed
гэж тохируулсан байлаа
ч гэсэн гараа залгаатай хэвээр орхиж болох бөгөөд гар ажилласан хэвээр
байх болно.
Хэрэв таны систем &ps2; хулганатай бол та бас өөрийн гарны адил
хулганаа бас салгах шаардлагатай байж болох юм. Учир нь юу вэ гэвэл
&ps2; хулгана нь гартай цуг зарим тоног төхөөрөмжийг хуваалцдаг бөгөөд
хулганаа залгаатай орхих нь гар шалгагчийг гар байсаар байгаа гэж
бодоход хүргэн хуурч болох юм. AMI BIOS бүхий
Gateway 2000 Pentium 90 MHz систем ингэдэг гэж
яригддаг. Ерөнхийдөө хулгана нь гаргүйгээр олигтой ажиллахгүй
болохоор энэ нь асуудал биш юм.
Дүлий терминалыг COM1 уруу залгана
(sio0).
Хэрэв танд дүлий терминал байхгүй бол та хуучин PC/XT-г модемийн
програмтай цуг, эсвэл өөр &unix; хайрцаг дээр цуваа портыг ашиглаж болох юм.
Хэрэв танд COM1 (sio0)
байхгүй бол түүнтэй болох хэрэгтэй. Одоогоор ачаалах блокуудыг дахин
эмхэтгэлгүйгээр ачаалах блокуудын хувьд COM1-с
өөр портыг сонгох арга байхгүй. Хэрэв та COM1-г
өөр төхөөрөмжид ашиглаж байгаа бол та тэр төхөөрөмжөө түр зуур салгаад
FreeBSD эхлүүлж ажиллуулсныхаа дараа шинэ ачаалах блок болон цөмийг
суулгах хэрэгтэй болно. (COM1 нь
файл/тооцоолох/терминал сервер дээр байдаг гэж үздэг; хэрэв танд
COM1 нь үнэхээр өөр зүйлд хэрэгтэй байгаа
(бөгөөд та тэр өөр зүйлээ COM2
(sio1) уруу шилжүүлж чадахгүй байгаа))
бол та магадгүй эхлээд энэ бүх зүйл дээр бүр санаа зовох шаардлагагүй
байж болох юм.)
Таны цөмийн тохиргооны файлд COM1-ийн
(sio0) хувьд тохирох тугууд тохируулагдсан
эсэхийг шалгаарай.
Холбоотой тугууд нь:
0x10
Энэ нэгжид зориулан консолын дэмжлэгийг идэвхжүүлнэ. Энэ туг
тохируулагдаагүй бол бусад тугууд нь орхигддог. Одоогоор хамгийн ихдээ
нэг нэгж консолын дэмжлэгтэй байж болдог; Энэ туг тохируулагдсан
эхнийхийг (тохиргооны файлын дарааллаар) эрхэмлэдэг. Энэ тохируулга
нь ганцаараа цуваа портыг консол болгодоггүй. Дараах тугийг тохируулах
юм уу эсвэл энэ тугтай цуг доор тайлбарласан тохируулгыг
ашиглана.
0x20
Доор тайлбарласан тохируулга байгаа
эсэхээс үл хамаарч энэ нэгжийг консол болгоно (өөр илүү эрхтэй консол байхгүй
тохиолдолд). 0x20 туг нь
тугтай цуг ашиглагдах ёстой.
0x40
Энэ нэгжийг (0x10-тай цуг)
нөөцөлж хэвийн хандалтад энэ нэгжийг байхгүй
болгоно. Та энэ тугийг цуваа консол маягаар ашиглахыг хүсэж
байгаа цуваа портын нэгждээ тохируулах ёсгүй юм. Энэ тугны
цорын ганц хэрэглээ нь алсаас цөмийг дибаг хийхэд нэгжийг
зориулах явдал юм. Алсаас дибаг хийх талаар илүү мэдээллийг
Хөгжүүлэгчийн Гарын Авлагаас үзнэ үү.
Жишээ:
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
Илүү дэлгэрэнгүйг &man.sio.4; гарын авлагын хуудаснаас үзнэ үү.
Хэрэв тугнууд тохируулагдаагүй бол UserConfig-г (өөр консол дээр)
ажиллуулах юм уу эсвэл цөмийг дахин эмхэтгэх хэрэгтэй.
Ачаалах төхөөрөмж дээр a хуваалтын
root санд boot.config файлыг үүсгэнэ.
Энэ файл нь системийг та хэрхэн ачаалахыг хүсэж байгааг ачаалах блокийн кодод
зааварлах болно. Цуваа консолыг идэвхжүүлэхийн тулд танд дараах
нэг буюу хэд хэдэн тохируулгууд хэрэгтэй болно—хэрэв та олон тохируулгуудыг
хүсэж байгаа бол бүгдийг нэг мөрт оруулах хэрэгтэй:
Дотоод болон цуваа консолуудыг харилцан сольно. Та үүнийг ашиглан
консол төхөөрөмжүүдийг сольж шилжүүлж болно. Жишээ нь хэрэв та
дотоод (видео) консолоос ачаалах бол ачаалагч дуудагч болон
цөмд өөрийн консолын төхөөрөмждөө цуваа портыг ашиглуулахаар чиглүүлэх
тохируулгыг ашиглаж болох юм. Мөн өөрөөр
хэрэв та цуваа портоос ачаалах бол ачаалагч дуудагч болон
цөмд видео дэлгэцийг консол маягаар харин хэрэглүүлэхийн тулд
тохируулгыг ашиглаж болох юм.
Ганц болон хоёр консолын тохиргоонуудыг сольно. Ганц тохиргоон дээр
дээрх тохиргооны төлвөөс хамаарч консол нь
дотоод консол (видео дэлгэц) байх юм уу эсвэл цуваа порт байх болно.
Хоёр консолын тохиргоон дээр видео дэлгэц болон цуваа порт нь хоёулаа
тохиргооны төлвөөс үл хамааран консол болох
юм. Гэхдээ хоёр консолын тохиргоо нь зөвхөн ачаалах блок ажиллаж байх
үед идэвхтэй байхыг санаарай. Ачаалагч дуудагч хяналтыг авсны дараа
тохируулгаар заагдсан консол нь цорын ганц
консол болох юм.
Ачаалах блокоор гарыг шалгуулна. Хэрэв гар олдоогүй бол
болон тохируулгууд
автоматаар тохируулагдана.
Зайны шаардлагаас болоод ачаалах блокуудын одоогийн
хувилбарт тохируулга нь зөвхөн
өргөтгөсөн гарнуудыг олох чадвартай байдаг. 101 товчлуураас
бага товчлууруудтай (ба F11 болон F12 товчлууруудгүй) гарнууд нь
олдохгүй байж болох юм. Зарим нэг зөөврийн компьютерууд
дээрх гарнууд нь энэ хязгаарлалтаас болоод зөвөөр олдохгүй байж
болох юм. Хэрэв та ийм системтэй бол
тохируулга ашиглахаа болих хэрэгтэй юм. Харамсалтай нь
энэ асуудлыг тойрон гарах арга зам байдаггүй.
Консолио автоматаар сонгохын тулд тохируулгыг
ашиглах юм уу эсвэл цуваа консолыг идэвхжүүлэхийн тулд
тохируулгыг ашиглана.
Та &man.boot.8;-д тайлбарласны адил бас бусад тохируулгуудыг
оруулж болох юм.
-с бусад тохируулгууд нь ачаалагч дуудагчид
(/boot/loader) дамжуулагддаг. Ачаалагч
дуудагч нь зөвхөн тохируулгын төлөвийг шалгаж
дотоод видео эсвэл цуваа портын аль нь консол болох ёстойг тодорхойлох
болно. Энэ нь хэрэв та /boot.config файлд
тохируулгыг тохируулаад гэхдээ
тохируулгыг тохируулаагүй бол та цуваа портыг
зөвхөн ачаалах блокийн үед консол болгон ашиглаж болно гэсэн үг юм;
ачаалагч дуудагч нь дотоод видео дэлгэцийг консол маягаар ашиглах болно.
Машиныг ачаална.
Та өөрийн FreeBSD хайрцгийг эхлүүлэх үед ачаалах блокууд нь
/boot.config файлын агуулгуудыг консол
уруу гаргаж харуулах болно. Жишээ нь:
/boot.config: -P
Keyboard: no
Хоёр дахь мөр нь /boot.config файлд
тохируулгыг зөвхөн тавьсан тохиолдолд
гарах бөгөөд гар байгаа/байхгүйг заадаг. Эдгээр мэдэгдлүүд нь
/boot.config файл дахь тохируулгаас
хамаараад цуваа эсвэл дотоод консол уруу, эсвэл хоёулан уруу гардаг.
Тохируулгууд
Мэдэгдлүүд гарах газар
байхгүй
дотоод консол
цуваа консол
цуваа болон дотоод консолууд
цуваа болон дотоод консолууд
, гар байна
дотоод консол
, гар байхгүй
цуваа консол
Дээрх мэдэгдлүүдийн дараа ачаалах блокууд нь ачаалагч дуудагчийг дуудахаас
өмнө болон бусад дараа дараагийн мэдэгдлүүд консол дээр хэвлэгдэхээс өмнө
бага хэмжээний завсарлага (пауз) авах болно. Хэвийн нөхцөлд танд ачаалах
блокуудыг тасалдуулах хэрэггүй боловч та бүх зүйлс зөв тохируулагдсаныг
баталгаажуулахын тулд ингэхийг хүсэж болох юм.
Ачаалах процессийг тасалдуулахын тулд консол дээр Enter-с
өөр дурын товчлуурыг дарах хэрэгтэй. Ачаалах блокууд нь дараа нь танаас дараачийн
чинь үйлдлийг асуух болно. Та одоо иймэрхүү мэдэгдэл харах ёстой:
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
Дээрх мэдэгдэл цуваа эсвэл дотоод консол дээр эсвэл хоёулан дээр
гарч байгаа эсэхийг /boot.config файлд
хийсэн тохируулгуудынхаа дагуу шалгаарай. Хэрэв мэдэгдэл зөв
консол дээр гарч байвал ачаалах процессийг үргэлжлүүлэхийн тулд
Enter дараарай.
Хэрэв та цуваа консолыг хүсэж байгаа боловч цуваа терминал дээр
хүлээх мөрийг харахгүй байгаа бол таны тохиргоонд ямар нэг зүйл буруу
байна. Тэр хооронд та ачаалах блокт (ба дараа нь ачаалагч дуудагч болон
цөмд) цуваа портыг консолд зориулан сонгуулахыг хэлэхийн тулд
гэж бичээд Enter/Return (боломжтой бол)
дараарай. Систем ачаалсны дараа юу буруу болсныг буцаж шалгаарай.
Ачаалагч дуудагч дуудагдсаны дараа та ачаалах процессийн гурав дахь
шатанд байгаа бол ачаалагч дуудагчид зохих орчны хувьсагчуудыг тохируулж
дотоод консол болон цуваа консолын хооронд та шилжиж чадсан хэвээр байх
болно. -г үзнэ үү.
Дүгнэлт
Энэ хэсэгт хэлэлцсэн төрөл бүрийн тохиргоонуудын дүгнэлт болон
эцсийн дүнд консол сонгогдсон тухай мэдээлэл энд байна.
Тохиолдол 1: Та sio0-д зориулж тугуудыг 0x10
болгож тохируулна
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
/boot.config дахь тохируулгууд
Ачаалах блокуудын үеийн консол
Ачаалагч дуудагчийн үеийн консол
Цөм дэх консол
юу ч байхгүй
дотоод
дотоод
дотоод
цуваа
цуваа
цуваа
цуваа болон дотоод
дотоод
дотоод
цуваа болон дотоод
цуваа
цуваа
, гар байна
дотоод
дотоод
дотоод
, гар байхгүй
цуваа болон дотоод
цуваа
цуваа
Тохиолдол 2: Та sio0-д зориулж тугуудыг 0x30
болгож тохируулна
device sio0 at isa? port IO_COM1 flags 0x30 irq 4
/boot.config дахь тохируулгууд
Ачаалах блокуудын үеийн консол
Ачаалагч дуудагчийн үеийн консол
Цөм дэх консол
юу ч байхгүй
дотоод
дотоод
цуваа
цуваа
цуваа
цуваа
цуваа болон дотоод
дотоод
цуваа
цуваа болон дотоод
цуваа
цуваа
, гар байна
дотоод
дотоод
цуваа
, гар байхгүй
цуваа болон дотоод
цуваа
цуваа
Цуваа консолд зориулсан зааврууд
Цуваа портын хурдыг илүү хурдан болгох
Анхдагчаар цуваа портын тохируулгууд нь 9600 baud, 8
бит, parity байхгүй, ба 1 зогсох бит бүхий байна. Хэрэв та анхдагч консолын
хурдыг өөрчлөхийг хүсвэл танд дараах сонголтууд байна:
Ачаалах блокуудыг консолын шинэ хурд заагдсан
BOOT_COMCONSOLE_SPEED хувьсагчтай цуг
дахин эмхэтгэнэ. Шинэ ачаалах блокуудыг бүтээж суулгах талаар
дэлгэрэнгүй заавруудыг -с
үзнэ үү.
Хэрэв цуваа консол нь тохируулгатайгаар
ачаалахаас өөр аргаар тохируулагдсан бол эсвэл цөмийн ашиглаж байгаа
цуваа консол нь ачаалах блокуудын ашиглаж байгаагаас өөр бол
та дараах тохируулгыг цөмийн тохиргооны файлдаа бас нэмж шинэ цөмөө
эмхэтгэх ёстой юм:
options CONSPEED=19200
Цөмийн ачаалах тохируулгыг ашиглана.
тушаалын мөрийн тохируулга нь
/boot.config файлд нэмэгдэж болно.
/boot.config файлд хэрхэн тохируулгууд
нэмэх тухай тайлбар болон дэмжигдсэн тохируулгуудын талаар
&man.boot.8; гарын авлагын хуудаснаас үзнэ үү.
Өөрийн /boot/loader.conf файлд
comconsole_speed тохируулгыг
идэвхжүүлнэ.
Энэ тохируулга нь /boot/loader.conf
файлд бас console,
boot_serial, болон
boot_multicons тохируулагдсан эсэхээс
хамаардаг. Цуваа консолын хурдыг өөрчлөх
comconsole_speed тохируулгын хэрэглээний
жишээ энд байна:
boot_multicons="YES"
boot_serial="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"
6.1-RELEASE-с өмнөх &os; хувилбарууд нь
/boot/loader.conf файлд
эсвэл comconsole_speed
тохируулгыг дэмждэггүй учраас хэрэв та ийм хувилбарын &os; ашиглаж байгаа
бол ачаалах блокуудыг дахин эмхэтгэх хэрэгтэй болох юм.
Консолд зориулж sio0-с өөр цуваа портыг
ашиглах
sio0-с өөр портыг консолд ашиглах нь
зарим нэг дахин эмхэтгэлтийг шаарддаг. Та ямар ч шалтгаанаар байлаа гэсэн
өөр цуваа портыг ашиглахыг хүсвэл доор дурдсан шигээр ачаалах блокууд,
ачаалагч дуудагч болон цөмийг дахин эмхэтгэх хэрэгтэй.
Цөмийн эхийг авна. ( бүлгийг үзнэ үү)
/etc/make.conf файлыг засварлаж
BOOT_COMCONSOLE_PORT хувьсагчийг
ашиглахыг хүсэж байгаа портынхоо хаягаар (0x3F8, 0x2F8, 0x3E8 эсвэл
0x2E8) тохируулна. Зөвхөн sio0-с
sio3 (COM1-с
COM4) хүртэлх портууд ашиглагдаж болно;
олон порттой цуваа картууд ажиллахгүй. Тасалдлын тохируулга
шаардлагагүй.
Тусгайлсан цөмийн тохиргооны файл үүсгээд ашиглахыг хүсэж байгаа
портынхоо хувьд тохирох тугуудыг нэмээрэй. Жишээ нь хэрэв та
sio1 (COM2)
портыг консол болгохыг хүсэж байгаа бол:
device sio1 at isa? port IO_COM2 flags 0x10 irq 3
эсвэл
device sio1 at isa? port IO_COM2 flags 0x30 irq 3
Бусад цуваа портуудын хувьд консолын тугууд тохируулагдах ёсгүй.
Ачаалах блокууд болон ачаалагч дуудагчийг дахин эмхэтгээд суулгана:
&prompt.root; cd /sys/boot
&prompt.root; make clean
&prompt.root; make
&prompt.root; make install
Цөмийг дахин бүтээж суулгана.
Ачаалах блокуудыг ачаалах диск уруу &man.bsdlabel.8;-ийн
тусламжтай бичээд шинэ цөмөөс ачаална.
Цуваа шугамнаас DDB дибаг хийгч уруу орох
Хэрэв та цуваа консолоос цөмийг дибаг хийгч уруу орохыг хүсвэл
(алсаас хийх шинжилгээнд ашиг тустай байдаг боловч хэрэв та цуваа порт дээр
алдаатай BREAK үүсгэсэн бол энэ нь аюултай байдаг!) та өөрийн цөмийг дараах
тохируулгуудтай эмхэтгэх шаардлагатай:
options BREAK_TO_DEBUGGER
options DDB
Цуваа консол дээр нэвтрэлт хүлээх мөр гаргаж авах
Энэ нь шаардлагатай биш боловч та одоо цуваа шугамаар ачаалалтын мэдэгдлүүдийг
харж цөмийн дибаг хийх сесс уруу орж чадаж байгаа юм чинь та цуваа шугамаар
нэвтрэлт хүлээх мөрийг авахыг хүсэж болох юм.
Энд хэрхэн үүнийг хийх талаар байна.
/etc/ttys файлыг засварлагчаар
онгойлгоод дараах мөрүүдийг олно:
ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off secure
ttyd0-с ttyd3 хүртэлх
нь COM1-с COM4
хүртэлхтэй тохирно. Хүссэн порт дээрээ off гэснийг
on болгож өөрчилнө. Хэрэв та цуваа портын хурдыг өөрчилсөн
бол тухайн үеийн тохиргоотой тааруулахын тулд std.9600-г
өөрчлөх хэрэгтэй болно, өөрөөр хэлбэл std.19200 гэх
мэт.
Та бас терминалын төрлийг unknown гэдгээс
өөрийн цуваа терминалын жинхэнэ төрлөөр солихыг хүсэж болох юм.
Файлыг засварласны дараа та энэ өөрчлөлтийг идэвхжүүлэхийн тулд
kill -HUP 1 хийх ёстой.
Ачаалагч дуудагчаас консолыг өөрчлөх
Өмнөх хэсгүүд нь ачаалах блокуудыг тохируулан цуваа консолыг хэрхэн тохируулах
талаар тайлбарлалаа. Энэ хэсэг нь ачаалагч дуудагч дээр зарим нэг тушаалууд болон
орчны хувьсагчуудыг оруулж консолыг тохируулах талаар үзүүлэх болно.
Ачаалах блокийн дараа ачаалах процессийн гурав дахь шатан дээр ачаалагч дуудагч
ажиллах үед ачаалагч дуудагч дахь тохиргоонууд нь ачаалах блок дахь тохиргоонуудыг
дарж ажиллах болно.
Цуваа консол тохируулах
Та ачаалагч дуудагч болон цөмд цуваа консолыг ашиглуулахын тулд
/boot/loader.rc файлд зөвхөн нэг мөр бичээд
амархан зааж өгч болно:
set console="comconsole"
Энэ нь өмнөх хэсэгт хэлэлцсэн ачаалах блок дахь тохиргоонуудаас
үл хамааран идэвхжих болно.
Та цуваа консол дээр ачаалалтын мэдэгдлүүдийг аль болох эрт харахын тулд
дээрх мөрийг /boot/loader.rc файлынхаа
хамгийн эхний мөр болгон оруулах нь зүйтэй юм.
Үүнтэй адилаар та дотоод консолоо ингэж зааж өгч болно:
set console="vidconsole"
Хэрэв та ачаалагч дуудагчийн орчны хувьсагч console-г
тохируулахгүй бол ачаалагч болон дараа нь цөм ачаалах блок дахь
тохируулгаар заагдсан тэр консолыг ашиглах
болно.
3.2 болон түүнээс хойшхи хувилбаруудад та консолыг
/boot/loader.rc файлд биш харин
/boot/loader.conf.local юм уу
эсвэл /boot/loader.conf файлд
зааж өгнө. Энэ аргаар бол таны /boot/loader.rc
файл иймэрхүү харагдана:
include /boot/loader.4th
start
Дараа нь /boot/loader.conf.local
файлыг үүсгээд дараах мөрийг оруулна.
console=comconsole
эсвэл
console=vidconsole
Дэлгэрэнгүй мэдээллийг &man.loader.conf.5;-с үзнэ үү.
Одоогоор ачаалагч дуудагчид ачаалах блок дахь
тохируулгатай адил тохируулга байдаггүй
бөгөөд гар байгаа эсэхээс хамаарч дотоод консол ба цуваа консолыг
автоматаар сонгох бэлтгэл байдаггүй юм.
Консолд зориулж sio0-с өөр цуваа портыг
ашиглах
Та цуваа консолд зориулж sio0-с өөр
цуваа портыг ашиглахын тулд ачаалагч дуудагчийг дахин эмхэтгэх хэрэгтэй.
хэсэгт тайлбарласан процедурыг
дагаарай.
Анхаарах зүйлс
Гол санаа нь график тоног төхөөрөмж эсвэл гар залгагдсан байхыг шаарддаггүй
тийм зориулагдсан серверүүдийг тохируулах боломжийг хүмүүст зөвшөөрөх явдал юм.
Ихэнх системүүд нь гаргүйгээр ачаалах боломжийг танд олгох боловч харамсалтай нь
график хувиргагчгүйгээр танд ачаалахыг зөвшөөрдөггүй нэлээн хэдэн системүүд байдаг.
AMI BIOS-уудтай машинуудыг график хувиргагч суулгалгүйгээр ачаалдаг болгож
тохируулж болдог. Ингэхийн тулд ердөө л CMOS тохиргоон дахь graphics adapter
тохируулгыг Not installed
болгож өөрчилнө.
Гэхдээ олон машинууд энэ тохируулгыг дэмждэггүй бөгөөд та систем дээрээ
ямар ч дэлгэцийн тоног төхөөрөмж байхгүй бол машин ачаалахаас татгалзах болно.
Ийм машинуудад та ямар нэг төрлийн график карт (хогийн хар цагаан хавтан байсан ч
гэсэн болно) залгаж орхих хэрэгтэй болох боловч заавал дэлгэц залгах шаардлагагүй юм.
Та бас AMI BIOS суулгахыг оролдож болох юм.