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 a9954752a8..687ec485d3 100644
--- a/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
@@ -1,4583 +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,
кабел modem, 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;-тай холбоо барина уу.
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
-
-
- 6bone.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 хостууд болон сүлжээнүүдтэй холбогдох дөрвөн арга байдаг:
-
- Туршилтын 6bone уруу нэгдэх
-
-
Өөрийн дээд үйлчилгээ үзүүлэгчээсээ IPv6 сүлжээ авах. Зааврын талаар өөрийн
Интернетийн үйлчилгээ үзүүлэгчтэйгээ ярилцах хэрэгтэй.
6-аас-4 уруу туннел хийх (RFC3068)
Хэрэв та dial-up холболт дээр байгаа бол
net/freenet6 портыг ашиглах
хэрэгтэй.
-
- Энд бид 6bone уруу хэрхэн холбогдох талаар ярилцах болно. Учир нь энэ нь одоогоор
- хамгийн түгээмэл арга юм.
-
- Эхлээд 6bone сайтад орж
- үзээд өөртөө хамгийн ойр байгаа 6bone холболтыг олох хэрэгтэй. Хариуцаж байгаа
- хүн уруу нь бичээд ялимгүй аз байвал танд өөрийн холболтыг хэрхэн тохируулах талаар заавруудыг
- өгөх болно. Энэ нь ихэвчлэн GRE (gif) туннел тохируулахад хүргэдэг.
-
- Энд &man.gif.4; туннелийг тохируулах нийтлэг жишээ байна:
-
- &prompt.root; ifconfig gif0 create
-&prompt.root; ifconfig gif0
-gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
-&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDR MY_IPv4_REMOTE_TUNNEL_ENDPOINT_ADDR
-&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR
-
- Дээд талын 6bone цэгээс авсан мэдээллээр томоор бичсэн үгнүүдийг солино.
-
- Энэ нь туннел үүсгэнэ. Туннел ажиллаж байгаа эсэхийг шалгаж
- ff02::1%gif0 уруу &man.ping6.8; хийж үзэх
- хэрэгтэй. Та хоёр ping хариулт хүлээн авах ёстой.
-
- Хэрэв таны сонирхлыг ff02:1%gif0 хаяг татсан бол
- энэ нь multicast хаяг юм. %gif0 нь gif0
- сүлжээний интерфэйс дэх multicast хаягийг ашиглахыг хэлж байна. Бид multicast хаяг уруу ping
- хийж байгаа болохоор туннелийн нөгөө тал ч бас хариулах ёстой.
-
- Одоо өөрийн дээш холбогдсон 6bone холбоос уруу чиглүүлэлт тохируулах нь
- шулуухан байх ёстой:
-
- &prompt.root; route add -inet6 default -interface gif0
-&prompt.root; ping6 -n MY_UPLINK
-
- &prompt.root; traceroute6 www.jp.FreeBSD.org
-(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
- 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
- 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
- 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
- 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
- 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
- 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms
-
- Энэхүү гаралт нь машинаас машинд өөр өөр байх болно. Одоо та IPv6 сайт
- www.kame.net уруу хүрч бүжиглэж байгаа яст мэлхийг
- харж чадаж байх ёстой — x11/kdebase3,
- эсвэл www/epiphany-ийн хэсэг болох
- Konqueror, www/mozilla
- зэрэг IPv6 идэвхжүүлэгдсэн хөтөчтэй байхад ингэх боломжтой.
-
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 чиглүүлэгч/гарцын тохиргоонууд
- Энэ нь 6bone зэрэг
- таны туннелийн үйлчилгээ үзүүлэгчийн өгсөн чиглэлүүдийг авч тэдгээрийг дахин ачаалсан ч
+ Энэ нь таны туннелийн үйлчилгээ үзүүлэгчийн өгсөн чиглэлүүдийг авч тэдгээрийг дахин ачаалсан ч
гэсэн үлдэхээр болгож тохиргоо болгон хөрвүүлэхэд танд туслах болно. Эхлүүлэх үед
өөрийн туннелийг сэргээхийн тулд доорхтой төстэйг /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/firewalls/chapter.sgml b/mn_MN.UTF-8/books/handbook/firewalls/chapter.sgml
index 8f8efb842b..471ac99930 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-г гадаад интерфэйсээр сольж тавина.
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/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 cc46d49350..05fe5844da 100644
--- a/mn_MN.UTF-8/books/handbook/geom/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/geom/chapter.sgml
@@ -1,543 +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.conf файлыг одоогийн болон
шинэ 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 d38ed8661e..3ff1dd6895 100644
--- a/mn_MN.UTF-8/books/handbook/jails/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/jails/chapter.sgml
@@ -1,477 +1,478 @@
Матео
Риондато
Хувь нэмэр болгон оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
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; хэрэгсэл дөрвөн зайлшгүй шаардлагатай
нэмэлт өгөгдлийг авдаг бөгөөд эдгээр нь хэсэгт тайлбарлагдсан байгаа болно.
- Өөр бусад нэмэлт өгөгдлүүдийг бас зааж өгч болох бөгөөд жишээ нь
+ Өөр бусад нэмэлт өгөгдлүүдийг бас зааж өгч болох бөгөөд өөрөөр хэлбэл
шорон хийгдсэн процессийг тухайн нэг хэрэглэгчийн итгэмжлэлүүдтэй ажиллуулж болох юм.
- command-н нэмэлт өгөгдөл нь
+ -н нэмэлт өгөгдөл нь
шоронгийн төрлөөс хамаарна; виртуал системийн
хувьд /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-ийн тусгай дэд мод байдаг;
+ зохион байгуулах үндэс болон 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;-ийн үндсэн системийн
+ цуглуулгыг агуулдаг. &man.jls.8; болон &man.jexec.8; тушаалууд нь &os;-ийн үндсэн системийн
хэсэг бөгөөд дараах хялбар ажлуудыг хийж гүйцэтгэхэд ашиглагдаж болно:
Идэвхтэй байгаа шоронгуудын жагсаалт болон тэдгээрийн харгалзах
шорон танигч (JID), IP
хаяг, хостын нэр болон замыг үзүүлнэ.
Өөрийнх нь хост системээс ажиллаж байгаа шоронд залгагдаж
- шорон дотроос шоронгийн удирдлагын ажлуудаас тушаалыг ажиллуулна.
+ шорон дотор тушаал ажиллуулах юм уу эсвэл шоронгийн удирдлагын ажлуудыг
+ шорон дотор ажиллуулна.
root хэрэглэгч шоронг цэвэрхэн
зогсоож унтраахыг хүсэх үед энэ нь ялангуяа ашигтай байдаг.
Шорон дотор удирдлага хийхийн тулд түүн дотор бүрхүүл эхлүүлэхэд
&man.jexec.8; хэрэгсэл бас ашиглагдаж болдог; жишээ нь:
&prompt.root; jexec 1 tcsh
&os;-ийн портын цуглуулга дахь өндөр түвшний удирдлагын хэрэгслүүд
Шорон удирдлагад зориулагдсан гуравдагч талуудын олон хэрэгслүүдийн дундаас
хамгийн бүрэн гүйцэд, ашигтай нь sysutils/jailutils юм. Энэ нь
&man.jail.8;-ийн удирдлагад хувь нэмэр болсон жижиг програмуудын цуглуулга
юм. Дэлгэрэнгүй мэдээллийн талаар түүний веб хуудсанд хандана уу.
diff --git a/mn_MN.UTF-8/books/handbook/virtualization/chapter.sgml b/mn_MN.UTF-8/books/handbook/virtualization/chapter.sgml
index 2cdf671301..6921f4c988 100644
--- a/mn_MN.UTF-8/books/handbook/virtualization/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/virtualization/chapter.sgml
@@ -1,593 +1,593 @@
Мюррей
Стөүкли
Хувь нэмэр болгон оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
Виртуалчлал
Ерөнхий агуулга
Виртуалчлалын програм хангамж нь олон үйлдлийн системийг нэг компьютер дээр
ажиллуулах боломжийг олгодог. PC-үүдэд зориулсан тийм програм хангамжууд
нь виртуалчлалын програм хангамжийг ажиллуулж зочин үйлдлийн систем хэд л
бол хэдийг дэмжих эх үйлдлийн систем байдаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Хост буюу эх үйлдлийн систем болон зочин үйлдлийн системийн
ялгаа.
FreeBSD-г Линукс дээр &xen; ашиглан хэрхэн суулгах талаар.
FreeBSD-г &intel; дээр суурилсан &apple; &macintosh; компьютер дээр
хэрхэн суулгах талаар.
Виртуалчлалын доор FreeBSD системийг хамгийн сайн ажиллагаатайгаар
хэрхэн тааруулах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
&unix; болон FreeBSD-ийн үндсүүдийг ойлгох ().
FreeBSD-г хэрхэн суулгах талаар мэдэх ().
Өөрийн сүлжээний холболтоо хэрхэн тохируулах талаар мэдэх ().
Нэмэлт гуравдагч програм хангамжуудыг хэрхэн суулгах талаар
мэдэх ().
FreeBSD-г зочин OS маягаар ашиглах
MacOS дээрх Parallels
&mac;-д зориулсан Parallels Desktop нь &macos;
10.4.6 буюу түүнээс дээш хувилбарыг ашиглаж байгаа &intel; дээр суурилсан
&apple; &mac; компьютеруудад зориулагдсан арилжааны програм хангамжийн
бүтээгдэхүүн юм. FreeBSD нь бүрэн дэмжигдсэн зочин үйлдлийн систем
юм. &macos; X дээр Parallels суулгагдсаны дараа хэрэглэгч
виртуал машинаа тохируулж дараа нь хүсэж байгаа зочин үйлдлийн
системээ суулгах ёстой.
Parallels/&macos; X дээр FreeBSD-г суулгах
FreeBSD-г &macos; X/Parallels дээр суулгах эхний алхам нь
FreeBSD-г суулгахад зориулж шинэ виртуал машиныг үүсгэх
явдал юм. Guest OS Type буюу Зочин OS-ийн төрөл гэж асуухад нь
FreeBSD гэж сонгох хэрэгтэй:
Тэгээд энэ виртуал FreeBSD машинын хувьд өөрийн төлөвлөгөөнөөс хамаараад
боломжийн хэмжээний диск болон санах ойг сонгох хэрэгтэй.
Parallels дээр FreeBSD-г ашиглах ихэнх хэрэглээний хувьд
4GB ба 512MB хэмжээний RAM сайн ажилладаг.
Сүлжээний төрөл болон сүлжээний интерфэйсийг сонгоно:
Хадгалаад тохиргоог дуусгана:
Таны FreeBSD виртуал машин үүсгэгдсэний дараа та FreeBSD-г түүн
дээр суулгах хэрэгтэй болно. Албан ёсны FreeBSD CDROM эсвэл
албан ёсны FTP сайтаас татан авсан ISO дүрс ашиглан
суулгах нь зүйтэй юм. Та өөрийн локал &mac; файлын систем дээрээ
тохирох ISO дүрстэй болонгуутаа эсвэл өөрийн &mac;-ийн CD хөтөч дээр
CDROM-той болонгуутаа өөрийн FreeBSD Parallels цонхны баруун
доод талд байгаа дискийн дүрсэн дээр дарах хэрэгтэй. Энэ нь
таны виртуал машин дахь CDROM хөтөчийг диск дээрх ISO файл
эсвэл таны жинхэнэ CDROM хөтөчтэй холбох боломжийг олгох
цонхыг харуулах болно.
Өөрийн CDROM эхтэй энэ холболтыг хийснийхээ дараа дахин ачаалах
дүрсийг дарж өөрийн FreeBSD машиныг хэвийн үед дахин ачаалдаг шигээ
дахин ачаална. Parallels нь хэвийн BIOS-ийн хийдэг шиг
танд CDROM байгаа эсэхийг шалгах тусгай BIOS-оор эхлэх болно.
Энэ тохиолдолд энэ нь FreeBSD-ийн суулгах зөөвөрлөгчийг олж
-т тайлбарлагдсаны адилаар
ердийн sysinstall дээр суурилсан суулгалтыг эхлүүлэх болно.
Та X11 системийг суулгаж болох боловч энэ удаад
тохируулахыг битгий оролдоорой.
Суулгалтыг дууссаныхаа дараа
та өөрийн шинэ суулгасан FreeBSD виртуал машин руугаа дахин
ачаалж ороорой.
FreeBSD-г &macos; X/Parallels дээр тохируулах
FreeBSD-г Parallels-ийн тусламжтай &macos; X дээр амжилттайгаар
суулгасны дараа виртуалчлагдсан ажиллагаанд зориулж системийг
оновчтой болгохын тулд хэд хэдэн тохиргооны алхмуудыг хийх ёстой.
Ачаалагч дуудагчийн хувьсагчуудыг тохируулна
Хамгийн чухал алхам бол Parallels-ийн орчинд FreeBSD-ийн
CPU-н хэрэглээг багасгахын тулд -г
багасгах явдал юм. Дараах мөрийг
/boot/loader.conf файлд
нэмэн үүнийг хийж болно:
kern.hz=100
Энэ тохиргоогүйгээр, сул зогсож байгаа FreeBSD Parallels
зочин OS нэг процессор бүхий &imac;-ийн CPU-ийн 15%-г ойролцоогоор
ашиглах болно. Энэ өөрчлөлтийн дараа хэрэглээ нь 5% руу ойртох
болно.
Шинэ цөмийн тохиргооны файлыг үүсгэнэ
Та бүх SCSI, FireWire, болон USB төхөөрөмжийн драйверуудыг
арилгаж болно. Parallels нь драйверийн
ашигладаг виртуал сүлжээний адаптерийн боломжтой байдаг, тэгэхээр
&man.ed.4; болон &man.miibus.4;-д
зориулснаас бусад бүх сүлжээний төхөөрөмжүүдийг цөмөөс арилгаж
болно.
Сүлжээг тохируулна
Хамгийн хялбар сүлжээний тохиргоо бол таны хост &mac; шигээр
ижил локал сүлжээнд өөрийн виртуал машиныг холбохын тулд DHCP-г
ашиглах явдал юм. Үүнийг /etc/rc.conf
файлд ifconfig_ed0="DHCP" гэж
нэмэн хийж болно. Сүлжээний илүү нарийн тохиргоонууд -д тайлбарлагдсан
байгаа.
Фуканг
Чен (Loader)
Хувь нэмэр болгон оруулсан
Линукс дээр ажиллах &xen; FreeBSD
&xen; хэт бүрхүүл нь нээлттэй эх виртуалчлалын бүтээгдэхүүн бөгөөд
түүнийг одоогооор арилжааны XenSource компани дэмждэг. Зочин
үйлдлийн системүүд нь domU домен гэгддэг бөгөөд хост буюу эх үйлдлийн
систем нь dom0 гэгддэг. FreeBSD-ийн виртуал хувилбарыг Линукс дээр
ажиллуулах эхний алхам нь Линукс dom0-д зориулж &xen;-ийг суулгах явдал юм.
Хост буюу эх үйлдлийн систем нь Slackware Линукс тархац байна.
&xen; 3-г Линукс dom0 дээр суулгаж тохируулах
&xen; 3.0-г XenSource-с татаж авах
xen-3.0.4_1-src.tgz-г
-с татаж авах хэрэгтэй.
tar хийгдсэн бөмбөгийг задлах хэрэгтэй
&prompt.root; cd xen-3.0.4_1-src
&prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world
&prompt.root; make install
dom0-д зориулж цөмийг дахин эмхэтгэхийн тулд:
&prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0
&prompt.root; make menuconfig
&prompt.root; make
&prompt.root; make install
&xen;-ий хуучин хувилбаруудад make ARCH=xen menuconfig
тушаалыг зааж өгөх хэрэгтэй байж болох юм
Grub menu.lst-д цэс оруулга нэмэх хэрэгтэй
/boot/grub/menu.lst-г засварлаж
дараах мөрүүдийг нэмэх хэрэгтэй:
title Xen-3.0.4
root (hd0,0)
kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro
Өөрийн компьютераа &xen; руу дахин ачаална
Эхлээд
/etc/xen/xend-config.sxp-г засварлаад
дараах мөрийг нэмнэ:
(network-script 'network-bridge netdev=eth0')
Дараа нь бид
&xen;-г ажиллуулж болно:
&prompt.root; /etc/init.d/xend start
&prompt.root; /etc/init.d/xendomains start
Бидний dom0 ажиллаж байна:
&prompt.root; xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 256 1 r----- 54452.9
FreeBSD 7-CURRENT domU
&xen; 3.0-д зориулсан FreeBSD domU цөм болон дискийн дүрсийг http://www.fsmware.com/
татаж авах хэрэгтэй.
kernel-current
mdroot-7.0.bz2
xmexample1.bsd
xmexample1.bsd тохиргооны файлыг
/etc/xen/ санд хийж цөм болон диск дүрсийн
хадгалагдсан хэсэгтэй холбоотой оруулгуудыг засварлана.
Энэ нь иймэрхүү харагдах ёстой:
kernel = "/opt/kernel-current"
memory = 256
name = "freebsd"
vif = [ '' ]
disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
#on_crash = 'preserve'
extra = "boot_verbose"
extra += ",boot_single"
extra += ",kern.hz=100"
extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"
mdroot-7.0.bz2 файл шахагдаагүй байх ёстой.
Дараа нь kernel-current дахь __xen_guest
хэсгийг &xen; 3.0.3-ийн шаарддаг VIRT_BASE-г нэмж өөрчлөх хэрэгтэй:
&prompt.root; objcopy kernel-current -R __xen_guest
&prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp
&prompt.root; objcopy kernel-current --add-section __xen_guest=tmp
&prompt.root; objdump -j __xen_guest -s kernel-current
kernel-current: file format elf32-i386
Contents of section __xen_guest:
0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G
0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd,
0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE
0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS
0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA
0050 53453d30 78433030 30303030 3000 SE=0xC0000000.
Одоо бид өөрсдийн domU-г үүсгэж ажиллуулахад бэлэн боллоо:
&prompt.root; xm create /etc/xen/xmexample1.bsd -c
Using config file "/etc/xen/xmexample1.bsd".
Started domain freebsd
WARNING: loader(8) metadata is missing!
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006
kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
WARNING: DIAGNOSTIC option enabled, expect reduced performance.
Xen reported: 1796.927 MHz processor.
Timecounter "ixen" frequency 1796927000 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf29 Stepping = 9
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x4400<CNTX-ID,<b14>>
real memory = 265244672 (252 MB)
avail memory = 255963136 (244 MB)
xc0: <Xen Console> on motherboard
cpu0 on motherboard
Timecounters tick every 10.000 msec
[XEN] Initialising virtual ethernet driver.
xn0: Ethernet address: 00:16:3e:6b:de:3a
[XEN]
Trying to mount root from ufs:/dev/xbd769a
WARNING: / was not properly dismounted
Loading configuration files.
No suitable dump device was found.
Entropy harvesting: interrupts ethernet point_to_point kickstart.
Starting file system checks:
/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
Setting hostname: demo.freebsd.org.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
Additional routing options:.
Mounting NFS file systems:.
Starting syslogd.
/etc/rc: WARNING: Dump device does not exist. Savecore not run.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
Starting usbd.
usb: Kernel module not available: No such file or directory
Starting local daemons:.
Updating motd.
Starting sshd.
Initial i386 initialization:.
Additional ABI support: linux.
Starting cron.
Local package initialization:.
Additional TCP options:.
Starting background file system checks in 60 seconds.
Sun Apr 1 02:11:43 UTC 2007
FreeBSD/i386 (demo.freebsd.org) (xc0)
login:
domU нь &os; 7.0-CURRENT
цөмийг ажиллуулах ёстой:
&prompt.root; uname -a
FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006
kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386
Сүлжээг одоо domU дээр тохируулж болно. &os; domU нь xn0
гэж нэрлэгдэх тусгай интерфэйсийг ашиглах болно:
&prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0
&prompt.root; ifconfig
xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500
inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
ether 00:16:3e:6b:de:3a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
dom0 Slackware дээр &xen;-ээс
хамаарах зарим сүлжээний интерфэйсүүд харагдах ёстой:
&prompt.root; ifconfig
eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2
inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:815 errors:0 dropped:0 overruns:0 frame:0
TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:99 errors:0 dropped:0 overruns:0 frame:0
TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB)
peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB)
Base address:0xc000 Memory:ef020000-ef040000
vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB)
vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:140 (140.0 b) TX bytes:158 (158.0 b)
xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:112 (112.0 b) TX bytes:0 (0.0 b)
&prompt.root; brctl show
bridge name bridge id STP enabled interfaces
xenbr1 8000.feffffffffff no vif0.1
peth0
vif1.0
&windows;/&mac;/&linux; дээрх VMware
Энэ хэсэг бичигдэж амжаагүй байна.
FreeBSD-г хост буюу эх OS маягаар ашиглах
FreeBSD нь хост буюу эх үйлдлийн систем маягаар ашиглагдахаар
аль ч виртуалчлалын багцад одоогоор албан ёсоор дэмжигдээгүй байгаа боловч
олон хүмүүс VMware-ийн хуучин хувилбаруудыг энэ зорилгоор ашигладаг.
FreeBSD дээр &xen;-ийг хост буюу эх орчин маягаар ажиллуулах тал дээр ажиллаж
байгаа болно.