diff --git a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml index c941665af3..9b64b9df47 100644 --- a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml @@ -1,1467 +1,1466 @@ Шагдарын Нацагдорж Орчуулсан Програм суулгах: Багцууд болон портууд Ерөнхий агуулга портууд багцууд Маш олон системийн хэрэгслүүд FreeBSD-н үндсэн системтэй нь хамт суугддаг. Гэхдээ зарим хүмүүст ажлаа гүйцээхийн тулд маш олон гуравдагчдын бэлтгэсэн програмыг суулгах шаардлага гардаг билээ. Таны систем дээр гуравдагчийн бүтээсэн програмуудыг суулгах хоёр үндсэн маш сайн аргыг FreeBSD хангаж өгдөг нь: FreeBSD-н портын цуглуулга (эх бичлэгээс нь суулгахад зориулагдсан), ба багцууд (урьдчилан хөрвүүлсэн хоёртын хэлбэрийн файлаас суулгахад зориулагдсан) юм. Энэ хоёр арга нь хоёулаа таны суулгахыг хүссэн програмын хамгийн сүүлийн хувилбарыг сүлжээ юм уу дотоод төхөөрөмжөөс суулгахад хэрэглэгдэнэ. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: Гуравдагчдын бүтээсэн програмын багцыг хэрхэн суулгах. Портын цуглуулга ашиглаж гуравдагчдын програмыг эх бичлэгээс нь хэрхэн бүтээх. Өмнө суугдсан багц юм уу эсвэл портуудыг хэрхэн устгах. Портын цуглуулгын хэрэглэдэг анхдагч утгуудыг хэрхэн дарж бичих. Шаардлагатай програмын багцаа хэрхэн хайж олох. Програмаа хэрхэн шинэчилсэн түвшинд авчрах. Програм суулгацын ерөнхий ойлголт Хэрэв та урьд нь &unix; системийг хэрэглэж байсан бол, гуравдагчдын бүтээсэн програмыг суулгах явц дараах маягаар явагддаг билээ: Програмыг татаж авах. Энэ нь голдуу эх бичлэг хэлбэрээрээ юм уу эсвэл хөрвүүлэгдсэн хоёрт файлын хэлбэрээр байдаг. Авсан програмаа задлах (ихэнх нь &man.compress.1;, &man.gzip.1;, эсвэл &man.bzip2.1; нараар шахагдсан байдаг). Бичиг баримт нь хаана байгааг олоод (голдуу INSTALL юм уу README файлууд байдаг ба, эсвэл doc/ гэсэн дэд санд буй бичиг баримтууд) хэрхэн суулгах зааврыг нь унших. Хэрэв програм нь эх бичлэг хэлбэрээрээ байгаа бол, түүнийг хөрвүүлэх. Ингэхийн тулд магадгүй Makefile файлыг засварлах, эсвэл configure скриптийг ажиллуулах зэрэг ажлууд байдаг. Програмыг шалгаад, дараа нь суулгах. Хэрэв бүх зүйл сайхан бүтсэн үед л ийм явц үйлдэгддэг. Хэрэв та тусад нь FreeBSD-д зориулж порт болгоогүй програмыг суулгахыг хүсвэл, магадгүй та уг програмыг ажиллуулахын тулд тухайн програмын эх кодыг засварлах хэрэг гарна. Хэрэв та хүсэж байгаа бол, иймэрхүү уламжлалт аргаар програмыг FreeBSD дээр суулгаж болно. Гэхдээ FreeBSD дээр таны нөр их хөдөлмөрийг хөнгөлөх хоёр арга байдаг нь: багцууд болон портууд юм. Энэ баримтжуулалтыг бэлтгэж байх үед &os.numports; гаран гуравдагчийн бэлтгэсэн програмууд ийм аргаар бэлэн болсон байгаа. Ямар ч програм байсан, FreeBSD дээрх уг програмын багц гэж ердөө нэг л файлыг та татаж авах ёстой байдаг. Уг багц дотор тухайн програмын урьдчилан хөрвүүлсэн хувилбар, бичиг баримт болон тохируулга хийх скриптүүд зэрэг нь багтсан байгаа. Татаж авагдсан багц файлыг &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1; зэрэг FreeBSD-н багц зохицуулагч програмаар өөрчилж болдог. Шинэ програм суулгах явцыг нэг л тушаалаар гүйцэтгэхийг эрмэлзсэн байдаг билээ. Програмуудын FreeBSD порт гэдэг нь, тухайн програмуудыг эх бичлэгээс хөрвүүлж автоматаар суулгах зориулалттай бүлэглэгдсэн файлуудыг хэлдэг. Програмыг эх бичлэгээс нь хөрвүүлж суулгахад хэд хэдэн үйлдэл (татаж авах, задлах, нөхөх, хөрвүүлэх, суулгах) хийдгийг та санаж байгаа байх. Портын агуулж буй файлууд нь яг энэ явцыг танд зориулж автоматжуулахад зориулагдсан мэдээлэл агуулсан байдаг. Та энгийн хэдэн тушаалыг гарнаас оруулахад л, уг програм татагдаж авагдаад, задлагдан, нөхөгдөж, хөрвүүлэгдээд суугдах болно. Яг үнэн хэрэгтээ, портлох арга нь тухайн програмыг дараа нь pkg_add болон бусад багц зохицуулагч програмуудад хэрэглэгдэж болохоор багц үүсгэж хэрэглэгдэж бас болдог. Багц болон портлох энэ хоёр арга нь хоёулаа, тухайн програмын dependencies буюу хамаатан програмуудыг мэдэж байдаг. Та нэг програм суулгах шаардлагатай байгаа бөгөөд уг програм нь бас нэг програмын сан файлыг суугдсан байхыг шаарддаг байна хэмээн авч үзье. Уг хоёр програм хоёулаа FreeBSD-н порт ба багц хэлбэрээр танд байгаа гэж бодъё. Хэрэв та pkg_add тушаалыг хэрэглэх юм уу эсвэл портын аргыг хэрэглэж уг програмыг суулганэ гэвэл, энэ хоёр арга нь хоёулаа уг програмыг суулгахад шаардагдах сан файл суугдаагүй байвал суугдаагүй байна гэж мэдээлээд, тэр сан файлыг эхлээд суулгадаг. Энэ хоёр аргыг харах юм бол хоорондоо тун ижилхэн үйлдэл хийдгийг та ажиглаж магадгүй юм. Тэгээд яагаад FreeBSD гуай энэ хоёр аргатай хоёулантай нь зууралдаад байгаа юм бол гэж гайхаж мададгүй. Багц болон порт хоёр нь таны суулгах нөхцлөөс шалтгаалан өөрсдийн гэсэн хүчирхэг давуу талтай. Багцын давуу тал Програмын шахсан багц файл нь уг програмын эх бичлэгийг агуулдаггүй болохоор хэмжээний хувьд бага байдаг. Багцууд нэмэлт хөрвүүлэх үйлдэл шаарддаггүй. Mozilla, KDE, эсвэл GNOME зэрэг том програмуудыг удаавтар систем дээр суулгахаар бол, энэ арга нь тун их давуу талтай юм. Багцууд нь FreeBSD дээрх ямар нэгэн хөрвүүлэх явцын тухай мэдээлэл шаарддаггүй. Портын давуу талууд Багцыг аль болох олон систем дээр тохирогдон суулгах гэж хичээсэн болохоор, ийм багц нь маш өргөн дэлгэр сонголттойгоор хөрвүүлэгдэж бэлтгэгдсэн байдаг. Порт хэрэглэн програм суулгахаар бол, (жишээ нь) Pentium 4 эсвэл Athlon процессордоо зориулж програмын тохируулгыг өөрчилж болдог. Зарим програмууд өөрийнхөө чадах болон чадахгүй зэрэг нөхцлөөсөө хамаараад хөрвүүлэгдэх явцад өөрчлөлт хийгдэх тохиолдлууд байдаг. Жишээ нь, Apache програм нь маш олон төрлийн өөртөө агуулсан тохиргоотой ирдэг. Ийм програмыг та портоос бүтээх үедээ анхдагч тохиргоонуудыг нь өөрчилж өөртөө тохируулж болно. Заримдаа, ижил төрлийн програмууд өөрсдийнхөө онцгой тохиргооноос хамаараад хэдэн хэдэн янзаар хөрвүүлэгдэж багцлагдсан байдаг. Жишээ нь, Х11 сервер суусан эсэхээс хамаараад Ghostscript програм нь ghostscript гэсэн нэртэй багцлагдсан байдаг ба бас ghostscript-nox11 гэсэн нэрээр мөн багц хэлбэртэй байдаг. Багцлах аргад иймэрхүү явцуу тохируулгаас хамаарсан арга байдаг боловч, хэрэв хөрвүүлэх үеийн тохиргоо нь ихсэх болбол энэ арга нь тун явуургүй болдог билээ. Зарим програмын лицензэнд, уг програмыг хөрвүүлэгдсэн хэлбэрээр түгээхийг хорьсон байдаг. Тийм програмуудыг эх бичлэг хэлбэрээр нь түгээх ёстой болдог билээ. Зарим хүмүүс хөрвүүлэгдсэн хоёртын файлын түгээлтэнд дургүй байдаг. Ядаж эх бичлэг нь байвал, та (онолын хувьд) эх бичлэгийг уншиж болзошгүй аюулыг илрүүлж болох юм. Хэрэв танд нөхөлт бичлэг (засвар) байгаа бол, та уг нөхөлтийг зөвхөн эх бичлэг дээр л хийж чадна. Зарим хүмүүс эх бичлэгээр наадах дуртай байдаг. Тэд нар эх бичлэгийг уншаад залхуу нь хүрээд ирэхээрээ уг бичлэгийг өөрчилж эвдэх, эсвэл зээлдэж өөрчлөх ( мэдээж лицензийн дагуу ) гэх мэтээр оролддог. Портын шинэчлэлийн тухай мэдээлэл авч байхыг хүсвэл &a.ports; болон &a.ports-bugs; зэрэг захианы жагсаалтад бүртгүүлэх хэрэгтэй. Ямар нэгэн програм суулгахаасаа өмнө -с програмын нууцлалын тухай мэдээллийг харах нь зүйтэй. Та мөн ports-mgmt/portaudit-г суулгаж болох бөгөөд энэ нь, програмыг суулгахын өмнө уг програмын хуучралт болон аюулгүй байдалтай хамаатай шаардлагатай шалгалтуудыг хийж өгдөг. Иймэрхүү шалгалтыг зарим багц суулгасны дараа та portaudit -F -a гэсэн тушаал хэрэглэн үйлдэж болно. Энэ бүлгийн үлдсэн хэсэгт FreeBSD дээр порт юм уу багц ашиглан хэрхэн програм суулгах талаар өгүүлэх болно. Програмаа олох нь Ямар нэгэн програм суулгахаасаа өмнө та ямар програм суулгахыг хүсэж байгаа болон ямар нэртэй гэдгийг нь мэдсэн байх хэрэгтэй. FreeBSD-н програмын жагсаалт нь цаг тутамд нэмэгдэж байдаг. Аз болж таны хүссэн програмыг олох хэд хэдэн арга бий: FreeBSD-н вэб хуудас нь http://www.FreeBSD.org/ports/ хаяг дээр бүх байгаа програмын шинэчлэгдсэн хувилбаруудыг нь хайж болох хэлбэрээр арчилж байдаг. Портууд нь төрөлжиж хуваагдсан байдаг бөгөөд та хүссэн програмаа хайж олох (хэрэв та нэрийг нь мэдэж байвал) эсвэл тухайн төрөлд байгаа бүх програмуудын нэрсийн жагсаалтыг харж болно. FreshPorts буюу шинэхэн портууд Dan Langille гэгч нь FreshPorts хуудсыг хаяг дээр арчлан эрхэлдэг. FreshPorts нь порт дээр гарсан өөрчлөлтүүдийг хянаж байдаг бөгөөд хэрэв таныг хүсвэл таны сонгосон хэд хэдэн портуудыг ажиглаж байгаад өөрчлөлт гарангуут танд захиагаар мэдэгддэг. FreshMeat Хэрэв та програмынхаа нэрийг нь мэдэхгүй байгаа бол FreshMeat () хуудсан дээр хайж үзэх хэрэгтэй. Хэрэв уг хуудсан дээр шинэ програм олдсон бол буцаад FreeBSD хуудсанд очиж уг хуудсыг порт болсон эсэхийг магадлах нь зүйтэй. Хэрэв та портынхоо нэрийг яг мэддэг боловч ямар төрөлд багтдагийг нь мэдэх хэрэгтэй бол &man.whereis.1; тушаалыг ашиглаарай. Ердөө л whereis файлын_нэр гэж бичих бөгөөд файлын_нэр нь суулгахыг хүссэн програмын нэр билээ. Хэрэв уг програм нь олдвол, танд хаана байгааг нь дараах маягаар харуулна: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Энэ нь бидэнд lsof (системийн нэгэн хэрэгсэл) програмыг /usr/ports/sysutils/lsof санд буй гэж мэдэгдэж байна. Мөн портын модонд тухайн порт хаана байгааг олохын тулд ердийн &man.echo.1; тушаалыг ашиглаж болно. Жишээ нь: &prompt.root; echo /usr/ports/*/*lsof* /usr/ports/sysutils/lsof Энэ нь /usr/ports/distfiles сан уруу татаж авагдсан таарсан файлуудыг харуулах болно гэдгийг анхаараарай. Хүссэн портоо олох бас нэг арга бол портын цуглуулга дотор нь байдаг өөрийнх нь хайгчийг нь ашиглах билээ. Уг хайгчийг нь хэрэглэхийн тулд та /usr/ports сан дотор байх шаардлагатай. Уг сан дотроос make search name=програмын-нэр гэж бичих бөгөөд програмын-нэр нь таны олохыг хүссэн програмын нэр байх ёстой. Жишээлбэл lsof програмыг олохын тулд: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Уг хайлтын үр дүнд та Path: гэсэн мөрөнд анхаарлаа хандуулах хэрэгтэй бөгөөд энэ нь хаана байгааг илэрхийлж байдаг. Бусад харуулж байгаа мэдээллүүд нь програм суулгахад хэрэглэгддэггүй болохоор энд дэлгэн ярихгүй. Бүр нарийвчилан хайхыг хүсвэл make search key=хайх-мөр гэх бөгөөд хайх-мөр нь тухайн програмтай холбоотой мөр байдаг. Энэ нь портын нэр, тайлбар, тодорхойлолт болон хамааралтай програм зэргүүдэд хайлт хийдэг болохоор тухайн програмынхаа талаар дэлгэрэнгүй мэдээлэл байхгүй хүнд хайхад тун тохиромжтой. Дээрх хоёр тохиолдолд хайх мөр тань жижиг болон том бичсэнээс хамаардаггүй. LSOF гэж хайх нь lsof гэж хайсантай ижилхэн үр дүнд хүргэнэ. Chern Lee Хамтран бичсэн Багцалсан системийг хэрэглэх нь FreeBSD дээр багцуудыг удирдах хэд хэдэн төрлийн хэрэгслүүд байдаг: Ажиллаж байгаа систем дээр боломжтой байгаа болон суулгагдсан багцуудыг харах, устгах, суулгахын тулд sysinstall-ийг ажиллуулж болно. Дэлгэрэнгүй мэдээллийг Суулгацын дараах тохиргооноос - үзнэ үү. + linkend="packages">-с үзнэ үү. Багцын удирдлагын тушаалын мөрийн хэрэгслүүдийг энэ хэсгийн үлдсэн хэсэгт хэлэлцэх болно. Багц суулгах багц суулгах pkg_add Та &man.pkg.add.1; хэрэгслийг ашиглан өөртөө хадгалагдсан юм уу эсвэл сүлжээнд буй серверээс FreeBSD-н програмын багц суулгаж болдог. Багц татаж аваад суулгах явц &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Хэрэв танд багц суулгах дотоод эх үүсвэр ( FreeBSD CD-ROM гэх мэт) байхгүй бол &man.pkg.add.1; хэрэгслийг сонголттой хамт хэрэглэх нь зүйтэй. Энэ нь тухайн програмыг төрөл болон хувилбар зэрэг мэдээллийг нь автоматаар таньж мэдээд FTP хуудаснаас татан авч суулгадаг. pkg_add &prompt.root; pkg_add -r lsof Дээрх жишээн дээр уг хэрэгсэл нь хэрэглэгчийн оролцоогүйгээр татаж аваад суулгаж буйг харуулж байна. Хэрэв та татаж авах алс хаягийг нь адилхан толин тусгал болох өөр нэг &os; багцын хаягаар солихыг хүсвэл PACKAGESITE орчны хувьсагчийн утгад анхных нь утгыг нь дарж өөр хаяг өгөх хэрэгтэй. &man.pkg.add.1; нь &man.fetch.3;-г ашиглаж файл татаж авдаг бөгөөд янз бүрийн орчны хувьсагчийн утга хэрэглэдэг. Тэд нар нь FTP_PASSIVE_MODE, FTP_PROXY, мөн FTP_PASSWORD гэх мэт хувьсагчид байдаг. Хэрэв та галт хананы цаана байгаа юм уу эсвэл FTP/HTTP прокси хэрэглэж байгаа бол уг хувьсагчдыг өөрчлөх ёстой. Хувьсагчдын бүрэн жагсаалтыг &man.fetch.3; хуудаснаас харна уу. Дээрх жишээн дээр lsof нь lsof-4.56.4 оронд хэрэглэгдэв. Хэрэв та алсаас автоматаар татаж авах үйлдэл хийж байгаа бол багцны хувилбарын дугаарыг оруулалгүй бичих хэрэгтэй. &man.pkg.add.1; нь тухайн програмын сүүлийн хувилбарыг автоматаар таньж суулгадаг. Хэрэв та &os.current; эсвэл &os.stable; хувилбарыг хэрэглэж байгаа бол &man.pkg.add.1; нь програмын хамгийн сүүлийн хувилбарыг татаж авч суулгадаг. Хэрэв та -RELEASE хувилбар хэрэглэж байгаа бол таны хэрэглэж байгаа тухайн хувилбарт тохирсон хувилбарыг нь татаж авч суулгадаг. Гэхдээ иймэрхүү үйлдлийг нь өөрчлөхийг хүсвэл PACKAGESITE-г өөрчлөөрэй. Жишээлбэл та &os; 5.4-RELEASE систем дээр &man.pkg.add.1; хэрэгслийг ажиллуулбал анхдагч хаяг нь ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ байх болно. Хэрэв та &man.pkg.add.1;-г &os; 5-STABLE багц суулгахаар тохируулахыг хүсвэл PACKAGESITE хувьсагчийг ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/ гэж зааж өгөх хэрэгтэй. Багц файлууд нь .tgz болон .tbz гэсэн хэлбэртэй байдаг. Та тэдгээрийг хаягнаас олж болох бөгөөд эсвэл FreeBSD CD-ROM дээр бас буй. FreeBSD-н 4 ширхэг CD тус бүрийн /packages сан дотор багц байрлаж байгаа. Багц байрлуулалт нь /usr/ports-н загвартай ижил модлог байдаг. Төрөл болгон өөрийн гэсэн сантай ба багц болгон бас All буюу бүгд гэсэн сангаас олддог. Багцны сангийн бүтэц нь портын бүтэцтэй таарч багц портын системийг бүрэлдүүлдэг юм. Багц зохицуулалт багц зохицуулах &man.pkg.info.1; хэрэгсэл нь суугдсан багцтай холбоотой мэдээллүүдийг харуулдаг. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; хэрэгсэл нь суугдсан бүх багцны ерөнхий мэдээллийг харуулж байдаг. Энэ нь багцны хувилбарыг портын санд буй програмын хувилбартай жишиж харьцуулдаг. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Хоёр дахь баганад буй тэмдэгт нь порт доторх програмын хувилбартай харьцуулсан харьцуулалт юм. Тэмдэг Утга = Суугдсан багцны хувилбар нь портын хувилбартай адилхан байна. < Суугдсан хувилбар нь портын хувилбараас хуучин байна. >Суугдсан хувилбар нь портын хувилбараас шинэ байна. (Дотоод порт тань хуучирсан байж болзошгүй) ?Суугдсан багц нь портын жагсаалтад олдсонгүй. (Энэ тохиолдож болох юм. Жишээлбэл суугдсан порт нь устгагдах юм уу нэр нь өөрчлөгдсөн байж болзошгүй.) *Багц олон хувилбартай байна. !Суулгагдсан багц жагсаалтад байгаа боловч ямар нэг шалтгааны улмаас pkg_version тушаал нь суулгагдсан багцын хувилбарын дугаарыг жагсаалт дахь харгалзах оруулгатай харьцуулж чадахгүй байна. Багц устгах pkg_delete багц устгах Өмнө суугдсан байгаа багцыг устгахдаа &man.pkg.delete.1; хэрэгслийг ашиглана. &prompt.root; pkg_delete xchat-1.7.1 &man.pkg.delete.1; нь багцын бүрэн нэр болон дугаарыг шаарддагийг тэмдэглэе; xchat-1.7.1-ийн оронд xchat өгөгдсөн бол дээр дурдсан тушаал ажиллахгүй. Гэхдээ суулгагдсан багцын хувилбарыг олохын тулд &man.pkg.version.1;-ийг ашиглах хялбар байдаг. Ингэхийн оронд та бүгдийг орлуулах тэмдэгт ашиглаж болох юм: &prompt.root; pkg_delete xchat\* Энэ тохиолдолд xchat-аар эхэлсэн нэртэй бүх багцуудыг устгах болно. Бусад мэдүүштэй зүйлс Бүх багцтай холбоотой мэдээллүүд /var/db/pkg сан дотор хадгалагдаж байдаг. Суугдсан багцны жагсаалт болон холбогдох тодорхойлолтууд нь уг санд буй файл дотроос уншигдах боломжтой. Портын цуглуулгыг хэрэглэх нь Дараах хэсэгт системдээ портын цуглуулгыг ашиглан хэрхэн програм суулгах болон устгах талаар өгүүлэх болно. make хөрвүүлэгчийн байршил болон орчны хувьсагчийн тухай нэмэлт тодорхой мэдээллийг &man.ports.7; хуудаснаас харна уу. Портын цуглуулгыг суулгах нь Порт суулгахаасаа өмнө нь /usr/ports сан дотор Makefiles, patches буюу нөхөгч файл, мөн тодорхойлолт файлуудыг агуулсан портын цуглуулгыг суулгах хэрэгтэй. FreeBSD-г суулгах үед sysinstall програм танаас портын цуглуулгыг суулгах эсэхийг тань асуудаг. Хэрэв та тэр үед үгүй гэж хариулсан бол энэ хэсэгт хэрхэн суулгах талаар тайлбарлана: CVSup арга Энэ арга нь CVSup протоколыг ашиглан портын цуглуулгаа суулгаж мөн байнга шинэчилж болох хамгийн түргэн арга юм. Хэрэв та CVSup-н талаар дэлгэрэнгүй мэдэхийг хүсэж байвал CVSup-г хэрэглэх нь хэсгээс хараарай. &os; системд орсон CVSup протоколын шийдэл нь csup гэж нэрлэгддэг. Энэ нь &os; 6.2-т анх удаа орсон. Хуучин &os; хувилбарын хэрэглэгчид үүнийг net/csup порт/багцын тусламжтайгаар суулгаж болно. csup-г анх удаагаа ажиллуулахынхаа өмнө /usr/ports санг хоосон байлгах хэрэгтэй. Хэрэв уг сан дотор өөр эх сурвалжаас суулгасан портын цуглуулга байвал, csup нь уг файлуудыг шинэчилж нөхдөггүй билээ. csup тушаалыг ажиллуулна: &prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile cvsup.FreeBSD.org гэдгийг өөртэйгээ ойрхон орших CVSup серверийн нэрээр солих хэрэгтэй. CVSup толин тусгалууд () хэсгээс толин тусгал хуудаснуудын бүрэн жагсаалтыг хараарай. Зарим нэг нь өөрийнхөө бэлтгэсэн ports-supfile файлыг хэрэглэхийг хүсэж болох юм. Ингэсэн үед тушаал бичих мөрөнд CVSup серверийн нэрийг бичих шаардлага гардаггүй. Ингэхийг хүссэн үед root эрхээр ороод /usr/share/examples/cvsup/ports-supfile файлыг шинэ сан уруу хуулах хэрэгтэй. Жишээлбэл /root юм уу эсвэл өөрийнхөө эхлэл санд хуулж болно. ports-supfile файлыг засварлана. CHANGE_THIS.FreeBSD.org мөрийг өөртэйгөө ойрхон буй CVSup серверийн нэрээр сольно. CVSup Толин тусгалууд () хэсэгт толин тусгалуудын бүрэн жагсаалтыг харж болно. Одоо csup-г ажиллуулахын тулд дараах алхмыг хийх хэрэгтэй: &prompt.root; csup -L 2 /root/ports-supfile Дараа нь &man.csup.1; тушаалыг ажиллуулснаар тухайн үед хөрвүүлж байгаа портуудыг эс оруулаад бүх портын цуглуулгыг татаж аван сүүлд орсон өөрчлөлтүүдийг мөн шинэчилдэг. Portsnap арга Portsnap нь портын цуглуулгыг шинэчлэх бас нэг арга билээ. Portsnap-г хэрэглэх нь хэсгээс Portsnap-тай холбоотой бүх мэдээллийг харна уу. Шахсан хэлбэртэй портын цуглуулгыг /var/db/portsnap сан дотор татаж авах хэрэгтэй. Хэрэв та хүсвэл энэ алхмын дараа интернэтээс салгаатай ажиллаж болдог. &prompt.root; portsnap fetch Хэрэв та Portsnap-г анх удаагаа ажиллуулж байгаа бол шахагдсан уг цуглуулгыг /usr/ports сан дотор задална: &prompt.root; portsnap extract Хэрэв та өмнө нь /usr/ports сан дотор цуглуулгыг суулгасан бөгөөд энэ үед зөвхөн шинэчлэхийг хүсэж байгаа бол дараах тушаалыг өгөх хэрэгтэй: &prompt.root; portsnap update Sysinstall арга Энэ арга нь суулгацын төхөөрөмжөөс sysinstall-г ашиглан портын цуглуулгыг суулгах арга юм. Гэхдээ тухайн төхөөрөмж дээр байгаа цуглуулга нь тухайн хувилбарыг гаргасан өдрийн хувилбартай байдгийг анзаарах хэрэгтэй. Хэрэв танд интернэт холболт байдаг бол дээр өгүүлсэн хоёр аргыг урьтал болгох нь зүйтэй. root эрхээр ороод sysinstall гэсэн тушаал өгөх хэрэгтэй (/stand/sysinstall гэж &os; -н 5.2-с хуучин хувилбаруудад бичих ёстой): &prompt.root; sysinstall Configure гэдгийг сонгоод Enter товч дарна. Distributions цэсийг сонгоод Enter дээр дарна. ports гэж сонгон Space товч дээр дарах хэрэгтэй. Дээр буй Exit гэдгийг олж сонгон Enter дээр дарна. CDROM юм уу FTP гэх мэт суулгах төхөөрөмжөө сонгоно. Дээр буй Exit цэсийг сонгоод Enter дээр дарна. X дээр дарж sysinstall-с гарах болно. Порт суулгах нь портууд суулгах Портын цуглуулгын талаар яриа хийхийн өмнө портын skeleton буюу араг ясны талаар ойлголт авах хэрэгтэй. Хамгийн энгийн ойлголтоор бол энэ нь FreeBSD системд програмыг цэвэрхэн хөрвүүлээд суулгахыг зааварласан товч заавар байдаг. Порт болгоны араг яс дараах зүйлсийг агуулж байдаг: Makefile. Makefile нь янз бүрийн заавар бичлэгүүд агуулж байдаг бөгөөд энэ нь програм хэрхэн хөрвүүлэгдэх, бас хаана суугдах зэрэг үйлдлүүдийг тодорхойлсон байгаа. distinfo файл. Энэ файл нь хөрвүүлж бүтээгдэх ёстой файлуудын татаж авалт болон тэдгээрийн алдаагүй татагдсан эсэхийг (&man.md5.1; болон &man.sha256.1; хэрэгслүүдийг ашиглан) шалгах зэрэг мэдээллүүдийг агуулж байдаг. files нэртэй сан. Энэ санд таны FreeBSD систем дээр суугдах програмуудын хөрвүүлэгдэхэд хэрэглэгддэг patches буюу нөхөөс файлуудыг агуулна. Нөхөөс файлууд нь жижигхэн хэмжээний файл бөгөөд тодорхой зарим файлд гарсан өөрчлөлтүүдийг агуулдаг. Нөхөөсүүд текст хэлбэрээр оршдог ба голдуу 10 дугаар мөрийг устга эсвэл 26 дугаар мөрийг үүгээр соль ... гэсэн зааврууд байдаг. Нөхөөсүүдийг мөн diffs буюу ялгааны төрлийн файл гэж ярьцгаадаг. Ийм ялгааг нь илэрхийлсэн файлыг үүсгэхдээ &man.diff.1; програмыг хэрэглэдэг юм. Энэ санд портыг бүтээхэд шаардагдах өөр төрлийн файлууд бас байж болох юм. pkg-descr файл. Энэ файл дотор тухайн програмын тухай нэлээн дэлгэрэнгүй тодорхойлолт агуулагдаж байдаг. pkg-plist файл. Энэ файл дотор порт суугдах явцад хуулагдаж суугдах файлуудын жагсаалт байдаг. Энэ нь мөн портыг устгах үед портын системд мэдэгдэх файлуудын жагсаалт билээ. Зарим портууд pkg-message гэх мэтийн өөр файлууд агуулж байдаг. Портын систем нь онцгой тохиолдолд уг файлуудтай хандаж тухайн портод харгалзах үйлдлүүдийг хийх болно. Хэрэв та ийм файлуудын тухай дэлгэрэнгүй мэдээлэл мөн портын тухай үндсэн ойлголт авахыг хүсвэл FreeBSD порт бүтээгчийн гарын авлага хуудаснаас харна уу. Порт дотор програмын эх бичлэгийг хэрхэн хөрвүүлж бүтээх тухай заавар байдаг болохоос уг програмын эх бичлэг нь байдаггүй. Та уг програмын эх бичлэгийг CD-ROM эсвэл интернэтээс уг зохиогчийнх нь гаргасан хэлбэрээр татаж авч болно. Голдуу эх бичлэгүүд нь tar болон gzip шахалтаар шахаж бэлдсэн байдаг боловч заримдаа өөр төрлийн хэрэгсэл ашиглан шахсан тохиолдол тулгарч магадгүй. Ямар ч хэлбэрээр програмын эх бичлэгийг авсан байг, түүнийг distfile гэж нэрийддэг. Доор &os; порт суулгах хоёр аргыг танилцуулж байна. Порт суулгахын тулд та root эрхэнд сэлгэсэн байх ёстой. Ямар нэгэн портыг суулгахаасаа өмнө портынхоо цуглуулгыг та шинэчилсэн байх хэрэгтэй бөгөөд хуудсанд тухайн порттой холбоотой аюул нууцлалын тухай сэдэв хөндөгдсөн эсэхийг шалгах хэрэгтэй. Ямар ч порт суулгахаасаа өмнө аюулгүйн нууцлалын хувьд сул тал буй эсэхийг portaudit-р автоматаар шалгаж болно. Энэ хэрэгслийг портын цуглуулга дотор олох боломжтой (ports-mgmt/portaudit). Шинэ портыг суулгахаасаа өмнө portaudit -F гэж ажиллуулснаар аюулгүйн нууцлалд гарсан сул тал нүхнүүдийн тухай мэдээллийн өгөгдлийн баазаас мэдээллүүдийг авч нөхөлт хийдэг. Аюулгүйн нууцлалын мэдээллийн өгөгдлийн баазын шинэчлэх явц өдөр болгон давтагдаж хийгдэх болно. Нэмэлт дэлгэрэнгүй мэдээллийг &man.portaudit.1; болон &man.periodic.8; хуудаснаас харна уу. Портын цуглуулга таныг интернэт холболттой гэж авч үздэг. Хэрэв танд интернэт холболт байхгүй бол distfile файлуудыг /usr/ports/distfiles санд хуулах хэрэгтэй. Эхлэхийн өмнө суулгах гэж буй портын санд орох хэрэгтэй: &prompt.root; cd /usr/ports/sysutils/lsof Тэгээд lsof санд орсон хойноо уг сан дотор та тухайн портын араг ясыг харах болно. Дараагийн алхам бол портыг хөрвүүлэх буюу бүтээх билээ. Ингэхийн тулд тушаал бичих мөрөнд make гэж бичнэ. Ингэж гүйцэтгэсний дараа дараах маягийн явцын мэдээллийг та харах болно: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Хөрвүүлэлт дуусаад та буцаад тушаал бичих мөрөнд ирэнгүүт хийх ёстой дараагийн алхам бол портыг суулгах билээ. Ингэхийн тулд таны хийх ёстой зүйл бол make тушаалыг өөр нэг үгтэй хамт бичих ёстой бөгөөд тэр үг нь install юм: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Ингээд тушаал бичих мөр боломжтой болонгуут суулгасан портоо ажиллуулах боломжтой болдог. Бид нарын жишээ авч суулгасан lsof програм нь нууцлалын давуу эрх шаарддаг болохоор аюулгүйн нууцлалын анхааруулга харуулагддаг. Порт суулгах үед хэрэв анхааруулга харуулагдваас түүнийг тун анхааралтай уншиж ойлгох хэрэгтэй. Програмыг хөрвүүлж бүтээхэд хэрэглэгдсэн түр файлуудыг хадгалсан дэд сангуудыг устгах нь зүйтэй. Энэ нь дискний зайг хэмнэхээс гадна тухайн портыг шинэчлэх үед алдаа гаргуулахгүй маш сайн зуршил юм. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Та make, make install мөн make clean гэсэн дамжлагуудыг make install clean гэж товчилж бичиж болно. Зарим shells буюу бүрхүүлийн орчнууд нь PATH орчны хувьсагч дотор буй сангууд доторх ачаалагдаж болдог програмуудын тушаалын хайлтыг түргэвчлэх зорилгоор түр хадгалагчид хадгалсан байдаг. Та хэрэв ийм төрлийн бүрхүүлийн орчин ашиглаж байгаа бол порт суулгасны дараа rehash тушаалыг хэрэглэн портын ачаалагдах файлыг бүрхүүлийн таних сан дотор нэмдэг. Энэ тушаал нь tcsh маягийн бүрхүүлд ажилладаг. sh төрлийн бүрхүүлд hash -r гэж ашигладаг. Тухайн бүрхүүлд хамаатай нэмэлт мэдээллийг нь харна уу. FreeBSD Mall зэрэг зарим гуравдагчдын гаргасан DVD-ROM дээр distfiles файлууд агуулагдсан байдаг. Тэдгээрийг портын цуглуулганд хэрэглэж болно. DVD-ROM-г /cdrom санд таниулж холбоно. Хэрэв та өөр санд холбосон бол уг сангийн нэрийг CD_MOUNTPTS орчны хувьсагчид зааж өгөөрэй. Шаардлагатай distfiles файлууд нь дискнээс автоматаар хэрэглэгддэг. Зарим нэг цөөн тооны портуудын лицензийг нь анхаарах хэрэгтэй. Ийм төрлийн портуудын эх бичлэг нь CD-ROM дээр байдаггүй. Тэдгээрийг татаж авах юм уу цааш нь түгээхийн тулд ямар нэгэн гэрээ бөглөх илгээх ёстой болдог. Хэрэв таны суулгах порт CD-ROM дээр байхгүй байгаа бол интернэт рүү орон хэлсний дагуу гүйцэтгэх хэрэгтэй. Портын систем нь &man.fetch.1; хэрэгслийг ашиглан файлуудыг татаж авдаг. Уг хэрэгсэл нь FTP_PASSIVE_MODE, FTP_PROXY, мөн FTP_PASSWORD гэх мэтчилэн төрөл бүрийн орчны хувьсагчдыг ашиглаж ажилладаг. Хэрэв та галт хана юм уу FTP/HTTP прокси хэрэглэдэг бол эдгээр хувьсагчдад тохирох утгыг нь зааж өгөх хэрэгтэй. &man.fetch.3; хуудаснаас хувьсагчдын бүрэн жагсаалтыг харна уу. Интернэтэд байнга холбогддоггүй хэрэглэгчдэд зориулж make fetch тушаал байдаг. Уг тушаалыг портын дээд сан (/usr/ports) дотор гүйцэтгэхэд шаардагдах бүх файлуудыг татаж авдаг. Уг тушаалыг мөн /usr/ports/net гэх зэргийн дэд сан дотор гүйцэтгэж болно. Хэрэв тухайн порт өөр сан юм уу портоос хамаардаг бол fetch гүйцэтгэл нь тэдгээр хамаарлыг нь нөхөж татдаггүйг анхаараарай. Харин fetch гэдгийг fetch-recursive гэж орлуулснаар тухайн портын хамааралтай порт болон сангуудыг давхар татаж авдаг. Та бүх портуудыг хөрвүүлж бүтээнэ гэвэл make тушаалыг make fetch тушаалыг тайлбарласан шиг дээд санд гүйцэтгэж болдог. Гэвч зарим порт байхгүй тохиолдолд ийм үйлдэл бол аюултай. Мөн зарим портууд хоёр өөр файлыг нэг нэрээр суулгах хүндрэл гаргаж болзошгүй. Мөш цөөхөн тохиолдолд хэрэглэгчид MASTER_SITES (татаж авах файлуудын байршил) хаягнаас өөр байршил ашиглан эх файлуудыг татаж авах шаардлага гарч болох юм. Ийм үед MASTER_SITES хувьсагчийн утгыг дараах тушаалаар өөрчилдөг: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Энэ жишээн дээр бид MASTER_SITES-н утгыг ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ гэж өөрчиллөө. Зарим порт нь өөрийнхөө зарим хэсгийг шаардлагагүй гэж үзэх тохиолдолд, эсвэл аюулгүйн нууцлалын шалтгаанаар ч юм уу өөрчлөлт хийх боломж (эсвэл шаарддаг) өгдөг. www/mozilla, security/gpgme, мөн mail/sylpheed-claws зэргүүдийг жишээ болгож болох юм. Иймэрхүү мэдэгдлүүд байвал тухайн үед танд харуулагдах болно. Портын анхдагч санг дарж бичих Заримдаа портыг хөрвүүлэх болон суулгах өөр санг хэрэглэх нь хэрэгтэй (онц шаардлагатай) байдаг. WRKDIRPREFIX болон PREFIX хувьсагчдын утгыг өөрчилж анхдагч сангийн байршлыг сольдог. Жишээ нь: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install гэсэн тушаал нь портыг /usr/home/example/ports сан дотор хөрвүүлээд хөрвүүлэгдэж бүтээгдсэн файлуудыг /usr/local санд суулгадаг. &prompt.root; make PREFIX=/usr/home/example/local install гэсэн тушаал нь портыг /usr/ports санд хөрвүүлж бэлдээд /usr/home/example/local санд суулгана. Мэдээж &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install гэж хоёр хувьсагчийг хослуулан хэрэглэж бас болно (танд зөвхөн ерөнхий ойлголт өгөх зорилгоор урт мөрийг товчилж харуулсан билээ). Мөн та уг хувьсагчдыг өөрийнхөө орчны хувьсагч болгож зарлаж болно. Тухайн бүрхүүлийнхээ орчны тухай зааврыг эхлээд уншиж танилцах нь зүйтэй. <command>imake</command>-г хэрэглэх Зарим порт imake-г хэрэглэдэг ( X цонхот системийн хэсэг) бөгөөд PREFIX хувьсагч ашиглалгүй /usr/X11R6 санд суулгадаг. Үүнтэй ижил зарим Perl портууд PREFIX хувьсагч хэрэглэлгүй Perl-н санд суулгадаг. Эдгээр портуудыг PREFIX хувьсагчтай хамтран ажиллуулж энэ хувьсагчийг ойлгож хүндэтгэдэг болгоно гэдэг бол тун хэцүү бөгөөд бараг боломжгүй ажил юм. Портуудыг дахин тохируулах нь Тухайн портуудыг бүтээж байхад чинь танд бүтээх тохируулгуудаас сонгож болох ncurses дээр тулгуурласан цэс харуулагддаг. Портыг нэгэнт бүтээсний дараа тэдгээр тохируулгуудыг нэмэх, хасах, эсвэл өөрчлөхийн тулд энэ цэсэнд дахин орохыг хүсэх нь хэрэглэгчдийн хувьд тийм ч нийтлэг биш юм. Үүнийг хийх олон аргууд байдаг. Нэг арга нь портыг агуулж байгаа сан уруу ороод урьдын адил тохируулгуудыг сонгосон хэвээр байгаа цэсийг дахин харуулах make config гэж тушаалыг ажиллуулах явдал юм. Өөр нэг арга нь портын хувьд бүх тохиргооны сонголтуудыг харуулах make showconfig тушаалыг ашиглах явдал юм. Бас нэг өөр арга нь бүх сонгогдсон тохируулгуудыг арилгаад танд дахин эхлэх боломж олгох make rmconfig тушаалыг ажиллуулах явдал юм. Эдгээр бүх аргууд болон бусдын талаар &man.ports.7; гарын авлагын хуудсанд илүү дэлгэрэнгүй тайлбарласан байгаа. Суугдсан портыг устгах нь портууд устгах Та одоо портыг хэрхэн суулгах талаар мэдсэн юм чинь хэрэв буруу портоо суулгасан бол түүнийг хэрхэн утсгадаг талаар мэдэхийг хүсэж байгаа байх. Өмнөх жишээнд суулгасан портоо бид устгацгаая (анхааралгүй уншсан нэгэнд нь lsof програм гэж сануулъя). Портууд багцтай ижилхэн &man.pkg.delete.1; тушаалаар устгагдаж болно ( Багц сонголт хэсэгт тайлбарласан буй): &prompt.root; pkg_delete lsof-4.57 Порт шинэчлэх порт шинэчлэх Хамгийн түрүүнд &man.pkg.version.1; тушаал ашиглан портын цуглуулгаас шинэ хувилбар агуулсан портуудыг жагсаах хэрэгтэй: &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> Портыг шинэчлэхээсээ өмнө портын цуглуулгаа шинэчлээд /usr/ports/UPDATING файлыг шалгана. Энэ файл дотор портыг шинэчлэхэд шаардагдах үйлдлүүд болох өөрчлөгдсөн төрөл, тохируулгын өөрчлөлт, эсвэл өмнөх хувилбартайгаа зөрчилдөх хэсгүүд гэх мэтийн чухал мэдээллүүд агуулагдаж байдаг. Хэрэв UPDATING файлд саяны таны уншсан зүйлүүдээс өөр юм агуулагдаж байвал уг файлд буй зааврыг дагах нь зүйтэй. Portupgrade ашиглан порт шинэчлэх нь portupgrade portupgrade хэрэгсэл нь портыг амархан шинэчлэхэд зориулагдсан. Үүнийг ports-mgmt/portupgrade портоос суулгаж болно. Бусад портын нэгэн адил порт суулгадаг журмаар make install clean гэсэн тушаалаар суулгадаг: &prompt.root; cd /usr/ports/ports-mgmt/portupgrade &prompt.root; make install clean Суугдсан портын жагсаалтыг pkgdb -F тушаал ашиглан шалгаад үр дүнгийн мэдээлэлд байгаа зөрчлүүдийг нь залруулж засах хэрэгтэй. Шинэчлэл хийхээсээ өмнө ингэж зөрчлүүдийг арилгах нь тун сайн санаа билээ. Хэрэв та portupgrade -a гэж ажиллуулбал таны системд суугдсан бүх хуучирсан портуудыг portupgrade шинэчилж эхэлдэг. Хэрэв та суугдах шинэчлэл болгонд лавлаж асуух үйлдэл хийлгэхийг хүсвэл сонголт нэмээрэй. &prompt.root; portupgrade -ai Хэрэв та бүх шинэчлэгдэх порт биш харин зөвхөн тодорхой нэгэн портыг шинэчлэх хүсэлтэй бол portupgrade багцны-нэр гэж бичнэ. сонголт нэмснээр тухайн програмд шаардагдах портуудыг portupgrade эхлээд нь шинэчлэдэг. &prompt.root; portupgrade -R firefox Портын оронд багц хэрэглэж суулгахыг хүсвэл сонголт хэрэглэнэ. Энэ сонголттой үед portupgrade нь PKG_PATH хувьсагчид зааж өгсөн жагсаалтад буй сан дотроос багцуудыг хайх ба хэрэв уг санд байхгүй байгаа бол сүлжээнээс татаж нөхдөг. Хэрэв дотоод сан болон сүлжээнээс багц олдоогүй тохиолдолд portupgrade нь портоор суулгахыг оролдох болно. Порт хэлбэрээр суулгах үйлдлийг зогсоохын тулд сонголтыг нэмж өгдөг. &prompt.root; portupgrade -PP gnome2 Хэрэв хөрвүүлж суулгалгүйгээр зөвхөн distfiles файлыг татаж авах (хэрэв сонголттой бол багц файлыг ) шаардлагатай бол сонголтыг ашиглаарай. Дэлгэрэнгүй мэдээллийг &man.portupgrade.1; хэсэгт харна уу. Portmanager ашиглан портыг шинэчлэх нь portmanager Portmanager бол портыг суулгаж шинэчлэхийг амарчилсан өөр нэг хэрэгсэл билээ. Үүнийг ports-mgmt/portmanager портноос суулгаж болно: &prompt.root; cd /usr/ports/ports-mgmt/portmanager &prompt.root; make install clean Бүх суугдсан портууд дараах энгийн тушаалаар шинэчлэгдэж болдог: &prompt.root; portmanager -u Та мөн сонголт нэмснээр Portmanager-н гүйцэтгэх алхам бүрийг лавлах асуух хэлбэрт оруулан хянаж болдог. Portmanager-г ашиглан системд шинэ портыг суулгаж болно. make install clean гэсэн ердийн тушаалаас ялгаатай нь тухайн сонгосон портыг суулгахаасаа өмнө түүнд хамааралтай бүх портуудыг шинэчлэдэг. &prompt.root; portmanager x11/gnome2 Хэрэв сонгосон портын хамааралтай портод ямар нэгэн хүндрэл гарвал Portmanager-г тэр хүндрэл гарсан портоос эхлэн дахин шинээр хөрвүүлж бэлд гэж зааж өгч болдог. Ингэсэн үед хүндрэл гаргасан портыг эхлэж хөрвүүлээд дараа нь портоо шинэчлэх явцаа цааш нь үргэлжлүүлдэг. &prompt.root; portmanager graphics/gimp -f Дэлгэрэнгүй мэдээллийг &man.portmanager.1;-с харна уу. Portmaster ашиглан портыг шинэчлэх нь portmaster Portmaster нь үндсэн системд байдаг (бусад портуудаас хамаардаггүй) хэрэгслүүдийг ашиглахаар хийгдсэн бөгөөд аль портыг шинэчлэхээ тогтоохын тулд /var/db/pkg/ сан доторхийг ашигладаг. Тэрээр ports-mgmt/portmaster порт хэлбэрээр байдаг: &prompt.root; cd /usr/ports/ports-mgmt/portmaster &prompt.root; make install clean Portmaster нь портуудыг дөрвөн төрөлд бүлэглэдэг: Root буюу язгуур портууд (хамаарсан портууд байхгүй, бусдаас хамаардаггүй) Trunk буюу гол портууд (хамаарсан портууд байхгүй, бусдууд хамаардаг) Салбар портууд (хамаарсан портуудтай, бусдууд хамаардаг) Навч портууд (хамаарсан портуудтай, бусдаас хамаардаггүй) Та суулгагдсан бүх портуудыг жагсааж болох бөгөөд тохируулга ашиглан шинэчлэлт байгаа эсэхийг хайж болно: &prompt.root; portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available Бүх суулгагдсан портуудыг энэ хялбар тушаал ашиглан шинэчилж болно: &prompt.root; portmaster -a Анхдагчаар Portmaster нь байгаа портыг устгахаасаа өмнө нөөц багц үүсгэдэг. Хэрэв шинэ хувилбар суулгалт амжилттай болсон бол Portmaster нөөц багцыг устгана. сонголтыг ашиглаж Portmaster-т нөөцийг автоматаар устгахгүй байхыг тушаана. сонголтыг ашигласнаар порт бүрийг шинэчлэхээс өмнө асууж лавлан Portmaster-ийг интерактив горимд эхлүүлнэ. Хэрэв шинэчлэх процессийн явцад алдаа гарвал та бүх портыг шинэчлэх буюу дахин бүтээхийн тулд -г ашиглаж болно: &prompt.root; portmaster -af Шинэ порт бүтээж суулгахаасаа өмнө бүх хамааралтай портуудыг шинэчилж Portmaster-ийг системд шинэ порт суулгахдаа та бас ашиглаж болно: &prompt.root; portmaster shells/bash Дэлгэрэнгүй мэдээллийг &man.portmaster.8;-с үзнэ үү. Порт ба дискний хэмжээ порт дискний хэмжээ Портын цуглуулга нь дискний хэмжээг байнга идэж байдаг. Портоос програмыг хөрвүүлж суулгасны дараа бэлдэж байсан work санг make clean тушаалаар цэвэрлэхээ үргэлж санах хэрэгтэй. Та портын цуглуулгыг бүхлээр нь дараах тушаалаар цэвэрлэж болно: &prompt.root; portsclean -C Маш олон эх файлууд distfiles санд явцын үр дүнд хадгалагдаж байдаг. Та тэдгээрийг гар аргаар устгаж болох ба дараах тушаал хэрэглэн ямар нэгэн порттой холбоогүй болсон бүх distfiles устгаж болно: &prompt.root; portsclean -D Эсвэл таны системд одоо суугдсан байгаа порттой хамаагүй бүх distfiles-уудыг дараах тушаалаар устгана: &prompt.root; portsclean -DD portsclean хэрэгсэл нь portupgrade програмын нэг бүрдэл хэсэг. Суулгасан портоо хэрэглэхгүй болсон үедээ устгахаа мартаж болохгүй. Иймэрхүү автоматжуулалтыг гүйцэтгэдэг эвтэйхэн програм бол ports-mgmt/pkg_cutleaves порт билээ. Порт суулгасны дараах үйлдлүүд Ердийн програмыг суулгасны дараа тухайн програмтай холбоотой бичиг баримтыг унших, ямар нэгэн тохиргооны файл засварлах, эсвэл уг програм компьютер ачаалагдах үед эхлэх (хэрэв энэ нь далд чөтгөр бол) эсэхийг нь шалгах шаардлага гарч болзошгүй. Суулгасан програм болгоныг тохируулах зарчим өөр өөр. Гэхдээ та шинэ програм суулгачихаад Одоо яах вэ? гэсэн асуулттай тулгарах үед дараах зүйлс тусалж магадгүй: &man.pkg.info.1; тушаалыг ашиглан ямар файл хаана яаж суугдсаныг харна. Жишээ нь та саяхан FooPackage version 1.0.0, програмыг суулгасан бол &prompt.root; pkg_info -L foopackage-1.0.0 | less гэсэн тушаал нь уг програмыг суулгах явцад хуулсан бүх файлуудыг харуулдаг. man/ санд хуулсан файл байвал тун анхааралтай харах хэрэгтэй. Энэ нь гарын авлага файлууд байдаг. Мөн etc/ санд хуулсан файлууд нь тохируулгын файлууд байдаг бөгөөд doc/ санд бол дэлгэрэнгүй бичиг баримтуудыг хадгалсан байдаг. Хэрэв та програмынхаа хувилбарын талаар сайн мэдэхгүй байгаа бол &prompt.root; pkg_info | grep -i foopackage гэсэн тушаал нь бүх суугдсан програм дотор foopackage гэсэн нэртэй програм байвал харуулдаг. foopackage-н оронд хүссэн програмынхаа нэрийг бичээрэй. Програмын гарын авлага хаана суугдсаныг мэдсэн үедээ &man.man.1;-г ашиглан харах хэрэгтэй. Мөн түүнчлэн ийм аргаар тохируулга болон нэмэлт мэдээллийн файлуудыг нь тухай бүрд нь харах хэрэгтэй. Хэрэв уг програм өөрийн гэсэн вэб хуудастай бол түүнд нь зорчин нэмэлт мэдээлэл авах, байнгын асуулт хариултыг нь үзэх гэх мэтчилэн оролдоорой. Уг програмын вэб хуудасны хаяг нь &prompt.root; pkg_info foopackage-1.0.0 тушаалын гаралт дээр WWW: гэсэн хэсэгт байдаг. Эхлэн ачаалагдах үед эхлэх ёстой портууд (Интернэт сервер гэх мэт) голдуу /usr/local/etc/rc.d сан дотор эхлүүлэх файлаа хуулдаг. Та уг файлыг шаардлагатай бол засварлах юм уу өөрчилж болно. Үйлчилгээг эхлүүлэх хэсгээс дэлгэрэнгүй мэдэээллийг харна уу. Эвдрэлтэй портыг засах нь Хэрэв та портыг ажиллуулж чадаагүй тохиолдолд хийж болох хэд хэдэн алхам бий: Problem Report database хуудсанд уг портын засварлах заавар бий эсэхийг шалгах. Хэрэв байвал уг зааврын дагуу засварлах хэрэгтэй. Уг портыг арчилж сайжруулдаг хүнээс тусламж авах. make maintainer тушаал ашиглаад юм уу эсвэл Makefile файл дотроос тухайн арчлагчийн захианы хаягийг нь олох хэрэгтэй. Захиандаа портынхоо нэр болон хувилбарыг оруулан (Makefile файлд буй $FreeBSD: мөрийг илгээх хэрэгтэй ) хэрэв боломжтой бол алдаа заасан явцын мэдээллүүдийг явуулах хэрэгтэй. Зарим порт нь хувь хүнээр биш харин захианы жагсаалтаар арчлагдаж байдаг. Энэ жагсаалтад бүгд биш ч гэсэн ихэнх хүмүүс нь freebsd-listname@FreeBSD.org маягийн захианы хаягтай байдаг. Ийм хүмүүс рүү захиагаа явуулах хэрэгтэй. Голдуу ports@FreeBSD.org-р арчлагдаж байгаа гэсэн портууд нэг тодорхой хүнээр арчлагдаагүй байдаг. Завсарлалт болон тусламж зэргүүд нь ихэнхдээ захианы жагсаалтад буй хүмүүсээс ирдэг. Туслан дэмжих хүмүүс бидэнд үргэлж хэрэгтэй байгаа! Хэрэв та ямар нэгэн хариулт аваагүй бол &man.send-pr.1;-г ашиглан алдааны мэдэгдэл ( FreeBSD-н алдааг мэдээлэх хэсгийг харна уу) хийж болно. Өөрөө засаад үз! Порт хийгчдийн гарын авлага дотор портын ажиллах зарчим болон бүтэц заавар, засах дараалал, тэр байтугай өөрөө порт зохиох талаар дурдсан байгаа! Ойрхон байгаа FTP хуудаснаас багцыг татаж авах хэрэгтэй. Үндсэн багцны цуглуулга ftp.FreeBSD.org хуудасны багцны санд байдаг бөгөөд орон нутгийн толин тусгалуудыг эхлээд турш! Ингэсэн нь эх бичлэгийг хөрвүүлэхээс түргэн бэлэн болсон багцыг татаж аван цаг хэмнэж байдаг. &man.pkg.add.1; програмыг ашиглан өөртөө хадгалсан багцаа систем дээрээ суулгана. diff --git a/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml b/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml index 82f194e239..2b80a51e18 100644 --- a/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml @@ -1,3034 +1,3034 @@ Жим Мок Бүтцийг дахин өөрчлөн зохион байгуулж шинэчилсэн Цагаанхүүгийн Ганболд Орчуулсан PPP болон SLIP Ерөнхий агуулга PPP SLIP FreeBSD нь нэг компьютерийг нөгөөтэй холбох хэд хэдэн аргуудтай байдаг. Dial-up модемоор сүлжээнд эсвэл Интернэтэд холболт хийх юм уу эсвэл бусдыг өөрөөр чинь дамжихыг зөвшөөрөхийн тулд PPP эсвэл SLIP-г хэрэглэхийг шаарддаг. Энэ бүлэг эдгээр модем дээр тулгуурласан холбооны үйлчилгээнүүдийг тохируулах талаар дэлгэрэнгүй тайлбарлах болно. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: Хэрэглэгчийн PPP-г хэрхэн тохируулах талаар. Цөмийн PPP-г хэрхэн тохируулах талаар. PPPoE-г (PPP over Ethernet буюу Ethernet дээгүүрх PPP) хэрхэн тохируулах талаар. PPPoA-г (PPP over ATM буюу ATM дээгүүрх PPP) хэрхэн тохируулах талаар. SLIP клиент болон серверийг хэрхэн тохируулж суулгах талаар. PPP хэрэглэгчийн PPP PPP цөмийн PPP PPP Ethernet дээгүүрх Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй: Сүлжээний үндсэн ухагдахуунуудыг мэддэг байх. Гадагш залгах (dialup) холболт болон PPP ба/эсвэл SLIP-ийн үндэс болон зорилгыг ойлгосон байх. Та хэрэглэгчийн PPP болон цөмийн PPP хоёрын хоорондох гол ялгаа нь юу юм бол гэж гайхаж байж магадгүй юм. Хариулт нь хялбархан: хэрэглэгчийн PPP нь ирж байгаа болон гарч байгаа өгөгдлийг цөмийн талбарт биш хэрэглэгчийн талбарт процесс хийдэг. Энэ нь өгөгдлийг цөм болон хэрэглэгчийн талбар хоёрын хооронд хуулдгаараа зардалтай боловч хамаагүй илүү боломжуудаар баялаг PPP шийдлийг зөвшөөрдөг. Хэрэглэгчийн PPP нь гаднах ертөнцтэй холбогдохдоо tun төхөөрөмжийг ашигладаг бол цөмийн PPP ppp төхөөрөмжийг ашигладаг. Энэ бүлэгт хэрэглэгчийн PPP-г pppd зэрэг өөр бусад PPP програм хангамжаас ялгах шаардлага гарахгүй тохиолдолд ердөө л ppp гэх болно. Тусгайлан тайлбарлаагүй л бол энэ бүлэгт тайлбарласан бүх тушаалууд нь root эрхээр ажиллуулагдах ёстой. Том Рөүдс Шинэчилж өргөжүүлсэн Брайн Сомерс Анхлан хувь нэмэр болгон оруулсан Ник Клэйтон Зарим хэсгийг нэмсэн Дирк Фромберг Питер Чайлдс Хэрэглэгчийн PPP ашиглах Хэрэглэгчийн PPP Таамаглалууд Энэ баримт нь таныг дараах шаардлагуудыг хангасан гэж тооцдог: ISP PPP PPP ашиглан таны холбогдох Интернэтийн үйлчилгээ үзүүлэгчээс (ISP) өгсөн бүртгэл. Танд модем эсвэл өөр төхөөрөмж таны системд холбогдсон байгаа бөгөөд тэр нь танд өөрийн ISP-тай холбогдохыг зөвшөөрөхөөр зөв тохируулагдсан байгаа. Таны ISP-ийн хандах dial-up дугаар(ууд). PAP CHAP UNIX нэвтрэх нэр нууц үг Таны нэвтрэх нэр болон нууц үг. (ердийн &unix; загварын нэвтрэлт болон нууц үгийн хослол юм уу эсвэл PAP эсвэл CHAP нэвтрэлт болон нууц үгийн хослол). нэрийн сервер Нэг буюу хэд хэдэн нэрийн серверүүдийн IP хаяг. Хэвийн үед үүнд зориулан ашиглахаар хоёр IP хаягийг таны ISP танд өгдөг. Хэрэв тэд танд ядаж ганцыг өгөөгүй бол та enable dns тушаалыг ppp.conf файлд ашиглавал ppp нэрийн серверүүдийг танд тохируулж өгөх болно. Энэ боломж нь DNS-тай тохиролцоог дэмждэг таны ISP-ийн PPP шийдлээс хамаарах юм. Дараах мэдээллийг таны ISP өгсөн байж болох боловч энэ нь заавал шаардлагагүй юм: Таны ISP-ийн гарцын IP хаяг. Гарц нь таны холбогдох машин бөгөөд таны анхдагч чиглүүлэлт гэж тохируулагдах болно. Хэрэв танд энэ мэдээлэл байхгүй бол бид нэгийг орлуулж болох бөгөөд таны ISP-ийн PPP сервер биднийг холбогдох үед зөв утгыг хэлж өгөх болно. Энэ IP дугаар нь ppp-ээр HISADDR гэгдэнэ. Таны ашиглах ёстой сүлжээний баг. Хэрэв таны ISP үүнийг өгөөгүй бол та аюулгүйгээр 255.255.255.255 гэж ашиглаж болно. статик IP хаяг Хэрэв таны ISP танд статик IP хаяг болон хостын нэр өгсөн бол та тэдгээрийг оруулж болно. Үгүй бол бид нөгөө талын өгөх тохирох IP хаягийг ердөө л зөвшөөрөх болно. Хэрэв танд шаардлагатай мэдээллийн аль нь ч байхгүй бол өөрийн ISP уруугаа хандана уу. Энэ хэсэгт жишээнүүдийн олонхийн үзүүлж байгаа тохиргооны файлуудын агуулгуудад байгаа мөр бүр дугаарлагдсан байгаа болно. Эдгээр дугаарууд нь танилцуулга болон хэлэлцүүлэгт туслах зорилгоор зөвхөн ашиглагддаг бөгөөд яг үнэндээ жинхэнэ файл дээрээ тавигдах ёстой гэсэн үг биш юм. Tab ашиглан зөв догол хийх болон зайн тэмдэгтүүд нь бас чухал юм. Автомат <application>PPP</application> тохиргоо PPPтохиргоо ppp болон pppd нь - (PPP-ийн цөмийн түвшний шийдэл) /etc/ppp сан + (PPP-ийн цөмийн түвшний шийдэл) /etc/ppp сан дахь тохиргооны файлуудыг ашигладаг. Хэрэглэгчийн ppp-д зориулсан жишээнүүдийг - /usr/share/examples/ppp/ сангаас олж болно. + /usr/share/examples/ppp/ сангаас олж болно. ppp-г тохируулах нь таны өөрийн шаардлагуудаас хамаарч хэд хэдэн файлуудыг засварлахыг танаас шаарддаг. Тэдгээрт юу оруулах нь таны ISP IP хаягуудыг статикаар өгдөг үү (өөрөөр хэлбэл танд нэг IP хаяг өгөх бөгөөд зөвхөн тэрийг дандаа ашиглана) эсвэл динамикаар (өөрөөр хэлбэл таны IP хаяг таныг ISP-даа холбогдох бүрт өөрчлөгддөг) өгдөг үү гэдгээс зарим талаараа хамаардаг. PPP болон статик IP хаягууд PPPстатик IP хаягуудтай цуг Та /etc/ppp/ppp.conf тохиргооны файлыг засварлах хэрэгтэй. Энэ нь доорх жишээтэй төстэй харагдах ёстой. :-ээр төгссөн мөрүүд эхний баганаас эхэлнэ (мөрийн эхлэл)— бусад бүх мөрүүдэд доор үзүүлсэн шиг зай эсвэл tab-аар догол гаргасан байх ёстой. 1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION (built COMPILATIONDATE) 4 set device /dev/cuad0 5 set speed 115200 6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ 7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" 8 set timeout 180 9 enable dns 10 11 provider: 12 set phone "(123) 456 7890" 13 set authname foo 14 set authkey bar 15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" 16 set timeout 300 17 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0 18 add default HISADDR Мөр 1: Анхдагч оруулгыг тэмдэглэдэг. Энэ оруулга дахь тушаалууд нь ppp ажиллах үед автоматаар ажилладаг. Мөр 2: Параметрүүдийг бүртгэл хийхийг идэвхжүүлнэ. Тохиргоо хангалттайгаар ажиллаж байгаа үед бүртгэлийн файлын их хэмжээнээс сэргийлэхийн тулд энэ мөрийг: set log phase tun гэж болгох ёстой. Мөр 3: PPP-д нөгөө талдаа өөрийгөө хэрхэн таниулахыг хэлж өгдөг. PPP нь тохиролцож холбоосыг үүсгэх үедээ ямар нэгэн асуудалтай байгаа эсэхээ таниулсан мэдээллээр нөгөө талаа хангадаг бөгөөд нөгөө талын администратор иймэрхүү асуудлуудыг судалж байгаа үед энэ нь ашигтай байж болох юм. Мөр 4: Модемийн холбогдсон төхөөрөмжийг тодорхойлдог. COM1 нь - /dev/cuad0 + /dev/cuad0 бөгөөд COM2 нь - /dev/cuad1 юм. + /dev/cuad1 юм. Мөр 5: Таны холбогдох хурдыг заадаг. Хэрэв 115200 ажиллахгүй бол (ямар ч шинэ модемтой энэ нь болох ёстой) 38400-гаар оролдож үзээрэй. Мөр 6 & 7: PPPхэрэглэгчийн PPP Залгах мөр. Хэрэглэгчийн PPP нь &man.chat.8; програмын адил хүлээгээд илгээх зарчмыг ашигладаг. Энэ хэлний боломжуудын тухай мэдээллийг гарын авлагын хуудаснаас лавлана уу. Энэ тушаал нь уншигдахад хялбар байх зорилгоор дараагийн мөрөнд үргэлжилж байгааг анзаараарай. Хэрэв мөрийн сүүлийн тэмдэгт \ байвал ppp.conf файл дахь ямар ч тушаал ийм байж болох юм. Мөр 8: Энэ холбоосонд зориулж сул зогсох хугацааг тохируулна. 180 секунд нь анхдагч байна, тэгэхээр энэ мөр нь цэвэр гоо сайхны зүйл юм. Мөр 9: Локал танигчийн тохиргоог бататгахын тулд нөгөө талаасаа асуухыг PPP-д хэлнэ. Хэрэв та локал нэрийн серверийг ажиллуулах бол энэ мөрийг тайлбар болгох юм уу эсвэл арилгах ёстой. Мөр 10: Уншихад хялбар байх зорилгоор хоосон мөр байна. PPP нь хоосон мөрүүдийг орхидог. Мөр 11: provider гэж нэрлэгдсэн үзүүлэгчид зориулсан оруулгыг тодорхойлдог. Үүнийг өөрийн ISP-ийн нэрээр сольж болох юм. Ингэсний дараа та холболтыг эхлүүлэхийн тулд гэж ашиглаж болох юм. Мөр 12: Энэ үзүүлэгчийн хувьд утасны дугаарыг тохируулдаг. Олон утасны дугаарыг тодорхойлох хоёр цэг (:) юм уу эсвэл хоолой тэмдэгтийг (|) тусгаарлагч болгон ашиглан зааж өгч болно. Хоёр тусгаарлагчийн ялгаа &man.ppp.8;-д тайлбарлагдсан байдаг. Дүгнэж хэлэхэд хэрэв та дугааруудыг ээлжлэн ашиглах бол тодорхойлох цэгийг ашиглана. Хэрэв та эхний дугаар уруу эхлээд үргэлж залгахыг хүсэж байгаа бөгөөд зөвхөн эхний дугаар нь амжилтгүй болсон тохиолдолд бусад дугааруудыг ашиглахыг хүсэж байгаа бол хоолой тэмдэгтийг ашиглаарай. Утасны дугааруудыг тэр чигээр нь үзүүлсэн шиг үргэлж хаалтанд хийх хэрэгтэй. Хэрэв та утасны дугаар дээр зай ашиглахаар бол утасны дугаарыг хаалтанд (") хийх ёстой. Ингэхгүй бол энэ нь энгийн боловч баригдашгүй алдаанд хүргэж болох юм. Мөр 13 & 14: Хэрэглэгчийн нэр болон нууц үгийг тодорхойлно. &unix; загварын нэвтрэлт хүлээх мөрийг ашиглан холбогдох үед эдгээр утгууд нь set login тушаалаар \U болон \P хувьсагчуудыг ашиглан хийгддэг. PAP эсвэл CHAP ашиглан холбогдож байгаа үед эдгээр утгууд нь нэвтрэлт танилт хийгдэхэд хэрэглэгддэг. Мөр 15: PAP CHAP Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол нэвтрэлт энэ үед байхгүй байх бөгөөд энэ мөр нь тайлбар болгогдох юм уу эсвэл арилгагдсан байх ёстой. Илүү дэлгэрэнгүй мэдээллийг PAP болон CHAP нэвтрэлт танилт холбоосоос үзнэ үү. Нэвтрэлтийн мөр нь залгах мөр шиг чалчихтай төсөөтэй зарчимтай байдаг. Энэ жишээн дээр нэвтрэх сесс нь доор дурдсантай адил үйлчилгээний хувьд уг мөр ажиллаж байна: J. Random Provider login: foo password: bar protocol: ppp Та энэ скриптийг өөрийн хэрэгцээндээ тааруулан өөрчлөх хэрэгтэй болно. Энэ скриптийг эхний удаа бичиж байхдаа та яриа хүссэнээр үргэлжилж байгаа эсэхийг тодорхойлж чадахаар байхын тулд chat буюу чалчих бүртгэлийг идэвхжүүлсэн эсэхээ баталгаажуулах хэрэгтэй. Мөр 16: timeout Анхдагч сул зогсох хугацааг (секундээр) холболтод зориулж тохируулдаг. Энд холболт нь 300 секундын хугацаанд идэвхгүй байвал автоматаар хаагдах болно. Хэрэв та хугацааны хувьд хэзээ ч дуусахгүй байхыг хүсвэл энэ утгыг тэг болгох юм уу эсвэл тушаалын мөрийн тохируулгыг ашиглах хэрэгтэй. Мөр 17: ISP Интерфэйсийн хаягуудыг тохируулна. x.x.x.x мөрийг таны интернэтийн үйлчилгээ үзүүлэгчийн танд хуваарилсан IP хаягаар солих шаардлагатай. y.y.y.y мөрийг таны ISP өөрийн гарцыг (таны холбогдох машин) заасан тэр IP хаягаар солих шаардлагатай. Хэрэв таны ISP гарцын хаягийг танд өгөөгүй бол 10.0.0.2/0 гэж ашиглаарай. Хэрэв та таасан хаягийг ашиглах хэрэгтэй бол PPP болон динамик IP хаягууд хэсэгт зориулсан заавруудын дагуу /etc/ppp/ppp.linkup файлдаа оруулга үүсгэсэн эсэхээ шалгаарай. Хэрэв энэ мөрийг орхивол ppp нь горимд ажиллаж чадахгүй. Мөр 18: Өөрийн ISP-ийн гарц уруу анхдагч чиглүүлэлтийг нэмнэ. HISADDR тусгай үгийг мөр 17 дээр заасан гарцын хаягаар сольдог. Энэ мөр нь 17-р мөрийн дараа байх нь чухал бөгөөд тэгэхгүй бол HISADDR нь эхлэн тохируулагдаж амжихгүй байх юм. Хэрэв та ppp-г горимд ажиллуулахыг хүсэхгүй бол энэ мөрийг ppp.linkup файлд шилжүүлэх ёстой. Та статик IP хаягтай бөгөөд ppp-г горимоор ажиллуулж байгаа бол ppp.linkup файлд оруулга нэмэх шаардлагагүй бөгөөд учир нь таныг холбогдохоос өмнө таны чиглүүлэлтийн хүснэгтийн оруулгууд нь аль хэдийн зөв байх учраас тэр юм. Гэхдээ та холболтын дараа програмуудыг ажиллуулах оруулга үүсгэхийг хүсэж болох юм. Энэ нь sendmail-ийн жишээн дээр сүүлд тайлбарлагдах болно. - Жишээ тохиргооны файлууд нь /usr/share/examples/ppp/ + Жишээ тохиргооны файлууд нь /usr/share/examples/ppp/ санд байрлана. PPP болон динамик IP хаягууд PPPдинамик IP хаягуудтай цуг IPCP Хэрэв таны үйлчилгээ үзүүлэгч статик IP хаягуудыг олгодоггүй бол локал болон алсын хаягууд дээр тохирдог байхаар ppp нь тохируулагдаж болно. IP хаягийг таах болон холболтын дараа IP Configuration Protocol (IPCP) буюу IP тохиргооны протокол ашиглан зөвөөр тохируулахыг ppp-д зөвшөөрөх замаар үүнийг хийнэ. ppp.conf тохиргоо нь дараах өөрчлөлтийн хамтаар PPP болон статик IP хаягууд хэсэгтэй адил байна: 17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 Дахин хэлэхэд мөрийн дугаарыг битгий оруулаарай, энэ нь зөвхөн лавлагааны зорилгоор байгаа юм. Ядаж нэг хоосон зайгаар догол гаргах шаардлагатай. Мөр 17: / тэмдэгтийн дараах дугаар нь ppp-ийн шаардах хаягийн битийн тоо юм. Та өөрийн нөхцөлдөө тохируулан IP дугааруудыг ашиглахыг хүсэж болох юм, гэхдээ дээрх жишээнүүд нь үргэлж ажиллах болно. Сүүлийн нэмэлт өгөгдөл (0.0.0.0) нь PPP-д 10.0.0.1-ийн оронд 0.0.0.0 хаяг ашиглан тохиролцоог эхлүүлэхийг хэлж байгаа бөгөөд зарим нэгэн ISP-уудын хувьд энэ нь шаардлагатай байдаг. Эхний чиглүүлэлтийг горимд тохируулахад PPP-д саад болдог учраас set ifaddr тушаалд 0.0.0.0-г эхний нэмэлт өгөгдөл болгон битгий ашиглаарай. Хэрэв та горимд ажиллахгүй байгаа бол /etc/ppp/ppp.linkup файлд оруулга үүсгэх хэрэгтэй болно. ppp.linkup нь холболт тогтсоны дараа ашиглагддаг. Энэ үед ppp нь интерфэйсийн хаягуудыг олгосон байх бөгөөд одоо чиглүүлэлтийн хүснэгтийн оруулгуудыг нэмэх боломжтой болсон байх болно: 1 provider: 2 add default HISADDR Мөр 1: Холболт тогтоохдоо ppp нь дараах дүрмүүдийн дагуу ppp.linkup файлд оруулгыг хайх болно: Эхлээд бидний ppp.conf файлд ашигласантай адил хаяг/шошготой таарахыг оролдоно. Хэрэв амжилтгүй болвол бидний гарцын IP хаягийн оруулгыг хайна. Энэ оруулга нь дөрвөн ширхэг найман битээс тогтох IP загварын хаяг/шошго юм. Хэрэв бид тэгсэн ч гэсэн оруулга олоогүй байгаа бол MYADDR оруулгыг хайна. Мөр 2: Энэ мөр нь HISADDR уруу заасан анхдагч чиглүүлэлт нэмэхийг ppp-д хэлж байна. HISADDR нь IPCP-ээр тохиролцсоны дагуу гарцын IP хаягаар солигдох болно. Нарийвчилсан жишээний хувьд /usr/share/examples/ppp/ppp.conf.sample болон /usr/share/examples/ppp/ppp.linkup.sample файлууд дахь pmdemand оруулгыг харна уу. Ирж байгаа дуудлагуудыг хүлээн авах PPPирж байгаа дуудлагуудыг хүлээн авах LAN-д холбогдсон машин дээр ирж байгаа дуудлагуудыг хүлээн авахаар болгож ppp-г тохируулахдаа LAN уруу пакетуудыг дамжуулахыг хүсэж байгаа эсэхээсээ хамаарч үүнийг шийдэх ёстой. Хэрэв та ингэхийг хүсэж байгаа бол өөрийн LAN-ий дэд сүлжээнээс IP хаягийг нөгөө талдаа хуваарилж өгөх хэрэгтэй бөгөөд өөрийн /etc/ppp/ppp.conf файлд enable proxy тушаалыг ашиглах хэрэгтэй. /etc/rc.conf файл доор дурдсаныг агуулж байгаа эсэхийг бас баталгаажуулах хэрэгтэй: gateway_enable="YES" Аль getty? &man.getty.8; ашиглан dial-up буюу гадагш залгах үйлчилгээнүүдийг идэвхжүүлэх тухай сайн тайлбарыг Dial-up буюу гадагш залгах үйлчилгээнүүдэд зориулж FreeBSD-г тохируулах хэсэг өгдөг. getty-тэй төстэй програм нь dial-up шугамуудыг бодолцож хийсэн getty-ийн илүү ухаалаг хувилбар болох mgetty юм. mgetty-г ашиглахын давуу тал нь тэрээр модемуудтай идэвхтэйгээр ярилцдаг явдал бөгөөд энэ нь юу гэсэн үг вэ гэхээр хэрэв таны порт хаагдсан бол модем чинь утсанд хариулахгүй гэсэн үг юм. mgetty-ийн сүүлийн хувилбарууд нь (0.99beta-аас эхлэн) таны клиентүүдэд скриптгүйгээр таны серверт хандах хандалтыг зөвшөөрч PPP урсгалуудын автомат илрүүлэлтийг бас дэмждэг. mgetty-ийн тухай дэлгэрэнгүй мэдээллийг Mgetty ба AutoPPP хаягаас лавлана уу. <application>PPP</application> зөвшөөрлүүд ppp тушаалыг root хэрэглэгчээр хэвийн үед ажиллуулах ёстой. Гэхдээ хэрэв та ppp-г доор тайлбарласны адилаар энгийн хэрэглэгчээр серверийн горимд ажиллуулах боломжтой болгохыг хүсэж байгаа бол хэрэглэгчийг ppp ажиллуулах зөвшөөрөлтэй болгож тэдгээрийг /etc/group файлд network бүлэгт нэмэх ёстой. Та allow тушаалыг ашиглан тохиргооны файлын нэг буюу хэд хэдэн хэсгүүдэд хандах боломжийг бас өгөх шаардлагатай болно: allow users fred mary Хэрэв энэ тушаал нь default хэсэгт хэрэглэгдсэн бол заасан хэрэглэгчдэд бүх зүйл уруу хандах боломжийг олгоно. Динамик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд PPP бүрхүүлүүд доор дурдсаныг агуулсан /etc/ppp/ppp-shell гэгдэх файлыг үүсгэнэ: #!/bin/sh IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` CALLEDAS="$IDENT" TTY=`tty` if [ x$IDENT = xdialup ]; then IDENT=`basename $TTY` fi echo "PPP for $CALLEDAS on $TTY" echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT Энэ скрипт нь ажиллахаар болсон байх ёстой. Одоо энэ скрипт уруу ppp-dialup гэгдсэн симболын холбоосыг дараах тушаалуудыг ашиглан үүсгэх хэрэгтэй: &prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialup Та энэ скриптийг өөрийн бүх dialup хэрэглэгчдийн хувьд бүрхүүл маягаар ашиглах ёстой. Энэ нь pchilds гэсэн хэрэглэгчийн нэртэй dialup PPP хэрэглэгчид зориулсан /etc/passwd файлд байгаа жишээ юм (нууц үгийн файлыг шууд битгий засаарай, &man.vipw.8;-г ашиглаарай). pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup Дараах 0 байт файлуудыг агуулсан бүгд бичих боломжтой - /home/ppp санг үүсгэнэ: + /home/ppp санг үүсгэнэ: -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin -r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts Энэ нь /etc/motd файлыг үзүүлэхээс сэргийлдэг. Статик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд PPP бүрхүүлүүд Дээр дурдсаны адил ppp-shell файл үүсгээд статикаар өгөгдсөн IP-тай бүртгэл бүрийн хувьд ppp-shell уруу симболын холбоос үүсгэнэ. Жишээ нь хэрэв та fred, sam, болон mary гэсэн гурван dialup хэрэглэгчтэй бөгөөд тэдгээрт зориулж /24 CIDR сүлжээнүүдийг чиглүүлж байгаа бол дараах тушаалыг ажиллуулж болох юм: &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary Эдгээр хэрэглэгчдийн dialup бүртгэл бүр өөрсдийн бүрхүүлийг дээр үүсгэсэн симболын холбоос уруу заасан байх ёстой (жишээ нь mary-ийн бүрхүүл /etc/ppp/ppp-mary байх ёстой). Динамик IP-тай хэрэглэгчдэд зориулж <filename>ppp.conf</filename>-г тохируулах /etc/ppp/ppp.conf файл доор дурдсантай төстэй мөрүүдээс тогтох ёстой: default: set debug phase lcp chat set timeout 0 ttyd0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyd1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy Догол үүсгэх нь чухал юм. default: хэсэг нь хэсэг бүрийн хувьд дуудагддаг. /etc/ttys файлд идэвхжүүлсэн dialup мөр бүрийн хувьд дээрх ttyd0:-д зориулсантай төстэй оруулга үүсгэнэ. Динамик хэрэглэгчдэд зориулсан IP хаягийн цөөрмөөс мөр болгон өөр өөр IP хаяг авах ёстой. Статик IP-тай хэрэглэгчдэд зориулж <filename>ppp.conf</filename>-г тохируулах Дээрх жишээ /usr/share/examples/ppp/ppp.conf файлын агуулгатай цуг статикаар өгөгдсөн dialup хэрэглэгч бүрийн хувьд зохих хэсэг нэмэх шаардлагатай. Бид өөрсдийн fred, sam, болон mary хэрэглэгчидтэй жишээгээ үргэлжлүүлэх болно. fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 /etc/ppp/ppp.linkup файл хэрэв шаардлагатай бол статик IP-тай хэрэглэгч бүрийн хувьд чиглүүлэлтийн мэдээллийг бас агуулсан байх ёстой. Доорх мөр нь клиентийн ppp холбоосоор 203.14.101.0/24 сүлжээнд зориулж чиглүүлэлт нэмэх болно. fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR <command>mgetty</command> болон AutoPPP mgetty AutoPPP LCP mgettyAUTO_PPP тохируулга идэвхжүүлсэн байдлаар тохируулж эмхэтгэх нь mgetty-д PPP холболтуудын LCP шатыг илрүүлж автоматаар ppp бүрхүүл ажиллуулах боломжийг олгодог. Гэхдээ анхдагч нэвтрэлт/нууц үгийн дараалал болдоггүй болохоор PAP аль эсвэл CHAP ашиглан хэрэглэгчдийн нэвтрэлтийг таних шаардлагатай юм. Энэ хэсэг нь хэрэглэгч AUTO_PPP тохируулгатайгаар mgetty-ийн хувилбарыг (v0.99beta эсвэл хойшх) амжилттайгаар тохируулж эмхэтгэн суулгасан гэж үздэг. Таны /usr/local/etc/mgetty+sendfax/login.config файл доор дурдсаныг агуулсан эсэхийг шалгаарай: /AutoPPP/ - - /etc/ppp/ppp-pap-dialup Энэ нь илрүүлсэн PPP холболтууддаа ppp-pap-dialup скриптийг ажиллуулахыг mgetty-д хэлнэ. доор дурдсаныг агуулсан /etc/ppp/ppp-pap-dialup файлыг үүсгэнэ (файл ажиллах боломжтой байх ёстой): #!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT /etc/ttys-д идэвхжүүлсэн dialup мөр бүрийн хувьд тохирох оруулгыг /etc/ppp/ppp.conf файлд үүсгэнэ. Энэ нь бидний үүсгэсэн тодорхойлолтуудтай аз жаргалтайгаар цуг байх болно. pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy Энэ аргаар нэвтэрч байгаа хэрэглэгч бүр /etc/ppp/ppp.secret файлд хэрэглэгчийн нэр/нууц үгтэй байх шаардлагатай, эсвэл өөр нэг арга нь /etc/passwd файлаас хэрэглэгчдийг PAP-аар таньж нэвтрүүлэхийн тулд дараах тохируулгыг хийх явдал юм. enable passwdauth Хэрэв та зарим хэрэглэгчдэд статик IP хаяг өгөхийг хүсвэл та хаягийг /etc/ppp/ppp.secret файлд гурав дахь нэмэлт өгөгдөл болгон зааж өгч болно. Жишээнүүдийг /usr/share/examples/ppp/ppp.secret.sample-с үзнэ үү. MS өргөтгөлүүд DNS NetBIOS PPPMicrosoft өргөтгөлүүд DNS болон NetBIOS нэрийн серверийн хаягуудыг шаардлагын дагуу хангахаар PPP-г тохируулах боломжтой байдаг. PPP хувилбар 1.x дээр эдгээр өргөтгөлүүдийг идэвхжүүлэхийн тулд дараах мөрүүдийг /etc/ppp/ppp.conf файлын тохирох хэсэгт нэмэх ёстой. enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 PPP хувилбар 2 болон түүнээс хойно гарсан хувилбарын хувьд: accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 Энэ нь анхдагч болон хоёрдох нэрийн серверийн хаягууд болон NetBIOS нэрийн серверийн хостыг клиентүүдэд хэлнэ. Хувилбар 2 болон түүнээс дээшхид set dns мөрийг орхигдуулсан бол PPP нь /etc/resolv.conf файлд байгаа утгуудыг ашиглах болно. PAP болон CHAP нэвтрэлт шалгалт PAP CHAP Таны холболтын нэвтрэлт танилтын хэсгийг PAP юм уу эсвэл CHAP нэвтрэлт танилтын аргуудыг ашиглан хийдэг байхаар зарим ISP-ууд өөрсдийн системийг тохируулдаг. Хэрэв ийм бол таны ISP нь login: хүлээх мөрийг таныг холбогдох үед харуулдаггүй бөгөөд PPP нэн даруй ярьж эхлэх болно. PAP нь CHAP-аас аюулгүй байдлын хувьд дутуу байдаг бөгөөд нууц үг нь PAP-аар цэвэр текст маягаар илгээгддэг боловч цуваа шугамаар зөвхөн дамжуулагддаг болохоор аюулгүй байдал нь нууц үгүүдэд байдаг асуудал шиг биш байдаг. Эвдлэгчдэд зориулсан сэм чагнах зай бараг байдаггүй гэсэн үг юм. PPP болон статик IP хаягууд эсвэл PPP болон динамик IP хаягууд хэсгүүдийн хувьд дараах өөрчлөлтүүдийг хийх ёстой: 13 set authname MyUserName 14 set authkey MyPassword 15 set login Мөр 13: Энэ мөр нь таны PAP/CHAP хэрэглэгчийн нэрийг заана. Та MyUserName-д зөв утгыг оруулах хэрэгтэй болно. Мөр 14: нууц үг Энэ мөр нь таны PAP/CHAP нууц үгийг заана. Та MyPassword-д зөв утгыг оруулах хэрэгтэй болно. Та дараах шиг нэмэлт мөр нэмэхийг хүсэх юм уу: 16 accept PAP эсвэл 16 accept CHAP гэж болно. Ингэснээр үүнийг зориуд тодорхой болгох юм, гэхдээ PAP болон CHAP-ийг хоюуланг анхдагчаар хүлээн авдаг. Мөр 15: Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол таны ISP хэвийн үед сервер уруу нэвтрэн орохыг шаарддаггүй. Тийм болохоор та өөрийн set login мөрийг хаах ёстой. Өөрийн <command>ppp</command> тохиргоог явцын дунд шууд өөрчлөх нь ppp-г ар талд далд ажиллаж байхад түүнтэй зөвхөн тохирох оношлогооны порт тохируулагдсан тохиолдолд харилцаж болдог. Үүнийг хийхийн тулд өөрийн тохиргоондоо дараах мөрийг нэмнэ: set server /var/run/ppp-tun%d DiagnosticPassword 0177 Энэ нь клиентүүдийн хандалтыг зөвшөөрөхийн өмнө тэднээс нууц үгийг асууж заасан &unix; домэйн сокет дээр сонсохыг PPP-д хэлнэ. Нэрэн дэх %d нь ашиглагдаж байгаа tun төхөөрөмжийн дугаараар солигдоно. Сокет тохируулагдсаны дараа &man.pppctl.8; програм нь ажиллаж байгаа програмыг удирдахыг хүсэж байгаа скриптүүдэд ашиглагдаж болно. PPP-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт боломжийг ашиглах нь PPPNAT PPP нь цөмийн divert буюу өөрчлөн дамжуулах боломжуудыг ашиглалгүйгээр дотоод NAT-ийг ашиглах чадвартай байдаг. /etc/ppp/ppp.conf файл дахь дараах мөрөөр энэ боломжийг идэвхжүүлж болно: nat enable yes Өөрөөр, PPP NAT-ийг тушаалын мөрийн -nat тохируулгаар идэвхжүүлж болох юм. Мөн /etc/rc.conf файлын хувьсагч ppp_nat гэж байх бөгөөд энэ нь анхдагчаар идэвхжүүлэгдсэн байна. Хэрэв та энэ боломжийг ашиглаж байгаа бол ирж байгаа холболтуудын цааш дамжуулалтыг идэвхжүүлэх дараах /etc/ppp/ppp.conf файлын тохируулгуудын ашигтайг харж болох юм: nat port tcp 10.0.0.2:ftp ftp nat port tcp 10.0.0.2:http http эсвэл гадна талд ерөөсөө битгий итгээрэй nat deny_incoming yes Системийн сүүлийн тохиргоо PPPтохиргоо Та одоо ppp-г тохируулчихлаа, гэхдээ яг ажиллахад бэлэн болохын өмнө хийх цөөн хэдэн зүйлс бий. Тэдгээр нь бүгд /etc/rc.conf файлыг засварлуулах болно. Энэ файлтай дээрээс доош ажиллахдаа hostname= мөр тохируулагдсан эсэхийг шалгаарай, өөрөөр хэлбэл: hostname="foo.example.com" Хэрэв таны ISP танд статик IP хаяг болон нэр өгсөн бол та энэ нэрийг хостын нэрэндээ ашиглах нь магадгүй зүйтэй юм. network_interfaces хувьсагчийг хайгаарай. Хэрэв та өөрийн системийг ISP уруугаа шаардлага хүсэлтээр залгахаар тохируулахыг хүсвэл tun0 төхөөрөмжийг жагсаалтад нэмсэн эсэхээ баталгаажуулаарай, хэрэв тэгж хүсээгүй бол түүнийг устгаарай. network_interfaces="lo0 tun0" ifconfig_tun0= ifconfig_tun0 хувьсагч хоосон байх ёстой бөгөөд /etc/start_if.tun0 гэж нэрлэгдсэн файлыг үүсгэх ёстой. Энэ файл нь дараах мөрийг агуулсан байх ёстой: ppp -auto mysystem Энэ скрипт нь сүлжээ тохируулах үед таны ppp дэмонг автомат горимд эхлүүлэн ажилладаг. Хэрэв та энэ машин гарц болж байгаа LAN-тай бол сонголтыг ашиглахыг хүсэж болох юм. Илүү дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас лавлана уу. Таны /etc/rc.conf файлд чиглүүлэлтийн програм NO гэж дараах мөрөөр хийгдсэн эсэхийг шалгаарай: router_enable="NO" routed routed дэмон нь эхлэхгүй байх нь чухал юм. Учир нь routed нь ppp-ийн үүсгэсэн анхдагч чиглүүлэлтийн хүснэгтийн оруулгуудыг устгадаг юм. sendmail_flags мөр тохируулгыг агуулаагүй эсэхийг шалгах нь магадгүй зүйтэй юм. Тэгэхгүй бол sendmail нь таны машиныг гадагш залгуулан үргэлж сүлжээний хайлт хийхийг оролдох болно. Та доор дурдсаныг тохируулж болох юм: sendmail_flags="-bd" sendmail Үүний сул тал нь ppp холбоос тогтсон үед та доор дурдсаныг бичиж sendmail-ээр захидлын дарааллыг дахин шалгуулж байх явдал юм: &prompt.root; /usr/sbin/sendmail -q Та үүнийг хийхийн тулд ppp.linkup файлд !bg тушаалыг ашиглахыг хүсэж болох юм: 1 provider: 2 delete ALL 3 add 0 0 HISADDR 4 !bg sendmail -bd -q30m SMTP Хэрэв танд энэ таалагдахгүй байгаа бол SMTP урсгалыг хаахын тулд dfilter-г тохируулах боломжтой байдаг. Илүү дэлгэрэнгүй мэдээллийг жишээ файлуудаас лавлана уу. Одоо машиныг дахин ачаалах л үлдлээ. Дахин ачаалсны дараа та доор дурдсаныг бичиж: &prompt.root; ppp дараа нь PPP сессийг эхлүүлэхийн тулд dial provider тушаалыг ажиллуулах юм уу эсвэл гадагшаа урсгал байгаа (бөгөөд та start_if.tun0 скрипт үүсгээгүй) бол сессүүдийг автоматаар тогтоодгоор ppp-г байлгахыг хүсэж байгаа бол доор дурдсаныг бичээрэй: &prompt.root; ppp -auto provider Дүгнэлт Дүгнэхэд ppp-г эхний удаа тохируулахад дараах алхмууд шаардлагатай: Клиент тал: Таны цөмд tun төхөөрөмж бүтээгдсэн эсэхийг шалгана. - /dev санд - tunN + /dev санд + tunN төхөөрөмжийн файл байгаа эсэхийг шалгана. /etc/ppp/ppp.conf файлд оруулга үүсгэнэ. pmdemand жишээ нь ихэнх ISP-уудын хувьд хангалттай байх ёстой. Хэрэв та динамик IP хаягтай бол /etc/ppp/ppp.linkup файлд оруулга үүсгээрэй. Өөрийн /etc/rc.conf файлыг шинэчилнэ. Хэрэв танд хэрэгцээгээр залгах шаардлага байгаа бол start_if.tun0 скрипт үүсгээрэй. Сервер тал: Таны цөмд tun төхөөрөмж бүтээгдсэн эсэхийг шалгана. - /dev санд - tunN + /dev санд + tunN төхөөрөмжийн файл байгаа эсэхийг шалгана. /etc/passwd файлд (&man.vipw.8; програмыг ашиглан) оруулга үүсгэнэ. Энэ хэрэглэгчдийн гэрийн санд ppp -direct direct-server юм уу эсвэл үүнтэй адилыг ажиллуулах хувийн тохиргоог (profile) үүсгэнэ. /etc/ppp/ppp.conf файлд оруулга үүсгэнэ. direct-server жишээ хангалттай байх ёстой. /etc/ppp/ppp.linkup файлд оруулга үүсгэнэ. Өөрийн /etc/rc.conf файлыг шинэчилнэ. Геннадий Б. Сорокопуд Хэсгүүдийг анхлан хувь нэмэр болгон оруулсан Роберт Хафф Цөмийн PPP-г ашиглах Цөмийн PPP тохируулах PPPцөмийн PPP Та өөрийн машин дээр PPP-г тохируулж эхлэхээсээ өмнө pppd нь - /usr/sbin санд байгаа болон - /etc/ppp сан байгаа эсэхийг шалгаарай. + /usr/sbin санд байгаа болон + /etc/ppp сан байгаа эсэхийг шалгаарай. pppd нь хоёр горимд ажиллах чаддаг: Клиент маягаар — та өөрийн машиныг гаднах ертөнц уруу PPP цуваа холболтоор эсвэл модемийн шугамаар холбохыг хүсдэг. PPPсервер Сервер маягаар — Таны машин сүлжээн дээр байгаа бөгөөд бусад компьютеруудыг PPP ашиглан холбоход хэрэглэгдэнэ. Аль ч тохиолдол байлаа гэсэн та тохируулгуудын файлыг (/etc/ppp/options эсвэл хэрэв та PPP ашиглаж байгаа өөрийн машин дээрээ нэгээс илүү олон хэрэглэгчидтэй бол ~/.ppprc) тохируулах хэрэгтэй болно. Та залгаж алсын хосттой холболт тогтоохын тулд танд бас зарим модем/цуваа програм хангамж (comms/kermit-г аль болох эрхэмлэх) хэрэгтэй болно. Трев Ройдхауз Based on information provided by <command>pppd</command>-г клиент маягаар ашиглах PPPклиент Cisco Дараах /etc/ppp/options файл нь Cisco терминал серверийн PPP шугам уруу холбогдоход хэрэглэгдэж болох юм. crtscts # enable hardware flow control modem # modem control line noipdefault # remote PPP server must supply your IP address # if the remote host does not send your IP during IPCP # negotiation, remove this option passive # wait for LCP packets domain ppp.foo.com # put your domain name here :remote_ip # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option # change this line to local_ip:remote_ip defaultroute # put this if you want that PPP server will be your # default router Холбогдохын тулд: Kermit модем Алсын хост уруу Kermit (эсвэл өөр бусад модемийн програм) ашиглан залгаж өөрийн хэрэглэгчийн нэр болон нууц үгийг (эсвэл алсын хост дээр PPP-г идэвхжүүлэхэд шаардлагатай тэр зүйлийг) оруулна. Kermit-с гарна (шугамыг таслалгүйгээр). Доор дурдсаныг оруулна: &prompt.root; /usr/sbin/pppd /dev/tty01 19200 Тохирох хурд болон төхөөрөмжийн нэрийг ашиглахаа мартуузай. Одоо таны компьютер PPP-тэй холбогдлоо. Хэрэв холболт амжилтгүй болбол та /etc/ppp/options файлд тохируулгыг нэмж асуудлыг олохын тулд консолын мэдэгдлүүдийг шалгана. Дараах /etc/ppp/pppup скрипт нь бүх 3 алхмыг автомат болгоно: #!/bin/sh pgrep -l pppd pid=`pgrep pppd` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi pgrep -l kermit pid=`pgrep kermit` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.dial pppd /dev/tty01 19200 Kermit /etc/ppp/kermit.dial нь Kermit скрипт бөгөөд гадагш залгаж бүх шаардлагатай нэвтрэлт таниулалтыг алсын хост дээр хийдэг (энэ баримтын төгсгөлд ийм скриптийн жишээ хавсаргагдсан болно). Дараах /etc/ppp/pppdown скриптийг ашиглаж PPP шугамыг салгаж болно: #!/bin/sh pid=`pgrep pppd` if [ X${pid} != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill -TERM ${pid} fi pgrep -l kermit pid=`pgrep kermit` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi /sbin/ifconfig ppp0 down /sbin/ifconfig ppp0 delete kermit -y /etc/ppp/kermit.hup /etc/ppp/ppptest pppd ажиллаж байгаа эсэхийг шалгахын тулд /usr/etc/ppp/ppptest-г ажиллуулна. Энэ нь иймэрхүү харагдах ёстой: #!/bin/sh pid=`pgrep pppd` if [ X${pid} != "X" ] ; then echo 'pppd running: PID=' ${pid-NONE} else echo 'No pppd running.' fi set -x netstat -n -I ppp0 ifconfig ppp0 Модемийг салгаж буцааж залгахын тулд /etc/ppp/kermit.hup-г ажиллуулна. Энэ нь доор дурдсаныг агуулах ёстой: set line /dev/tty01 ; put your modem device here set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 echo \13 exit Энд kermit тушаалын оронд chat тушаал хэрэглэх өөр арга байна: Дараах хоёр мөр нь pppd холболтыг хийхэд хангалттай байдаг. /etc/ppp/options: /dev/cuad1 115200 crtscts # enable hardware flow control modem # modem control line connect "/usr/bin/chat -f /etc/ppp/login.chat.script" noipdefault # remote PPP serve must supply your IP address # if the remote host doesn't send your IP during # IPCP negotiation, remove this option passive # wait for LCP packets domain your.domain # put your domain name here : # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option # change this line to local_ip:remote_ip defaultroute # put this if you want that PPP server will be # your default router /etc/ppp/login.chat.script: Дараах нь нэг мөрөнд байх ёстой. ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id TIMEOUT 5 sword: password Эдгээр нь суулгагдаж зөв болж өөрчлөгдсөний дараа таны хийх ганц зүйл бол pppd-г иймэрхүү маягаар ажиллуулах явдал юм: &prompt.root; pppd <command>pppd</command>-г сервер маягаар ашиглах /etc/ppp/options файл нь доор дурдсантай төстэйг агуулах ёстой: crtscts # Hardware flow control netmask 255.255.255.0 # netmask (not required) 192.114.208.20:192.114.208.165 # IP's of local and remote hosts # local ip must be different from one # you assigned to the Ethernet (or other) # interface on your machine. # remote IP is IP address that will be # assigned to the remote machine domain ppp.foo.com # your domain passive # wait for LCP modem # modem line Дараах /etc/ppp/pppserv скрипт нь pppd-г сервер маягаар ажиллахыг заах болно: #!/bin/sh pgrep -l pppd pid=`pgrep pppd` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi pgrep -l kermit pid=`pgrep kermit` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi # reset ppp interface ifconfig ppp0 down ifconfig ppp0 delete # enable autoanswer mode kermit -y /etc/ppp/kermit.ans # run ppp pppd /dev/tty01 19200 Серверийг зогсоохын тулд энэ /etc/ppp/pppservdown скриптийг ашиглана: #!/bin/sh pgrep -l pppd pid=`pgrep pppd` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi pgrep -l kermit pid=`pgrep kermit` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.noans Дараах Kermit скрипт нь (/etc/ppp/kermit.ans) таны модем дээр автомат хариулагчийг нээх/хаах болно. Энэ нь иймэрхүү харагдах ёстой: set line /dev/tty01 set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 inp 5 OK echo \13 out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable ; autoanswer mode inp 5 OK echo \13 exit /etc/ppp/kermit.dial гэсэн нэртэй скрипт нь гадагш залгаж алсын хост дээр нэвтрэлт таниулахад хэрэглэгддэг. Та үүнийг өөрийн хэрэгцээнд зориулан өөрчлөх хэрэгтэй болно. Өөрийн нэвтрэх нэр болон нууц үгийг энэ скриптэд оруулах хэрэгтэй; та бас оролтын илэрхийллийг таны модем болон алсын хостоос ирэх хариунуудаас хамааран өөрчлөх хэрэгтэй болно. ; ; put the com line attached to the modem here: ; set line /dev/tty01 ; ; put the modem speed here: ; set speed 19200 set file type binary ; full 8 bit file xfer set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; Then SET CARRIER if necessary, set dial display on ; Then SET DIAL if necessary, set input echo on set input timeout proceed set input case ignore def \%x 0 ; login prompt counter goto slhup :slcmd ; put the modem in command mode echo Put the modem in command mode. clear ; Clear unread characters from input buffer pause 1 output +++ ; hayes escape sequence input 1 OK\13\10 ; wait for OK if success goto slhup output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd ; if modem doesn't answer OK, try again :slhup ; hang up the phone clear ; Clear unread characters from input buffer pause 1 echo Hanging up the phone. output ath0\13 ; hayes command for on hook input 2 OK\13\10 if fail goto slcmd ; if no OK answer, put modem in command mode :sldial ; dial the number pause 1 echo Dialing. output atdt9,550311\13\10 ; put phone number here assign \%x 0 ; zero the time counter :look clear ; Clear unread characters from input buffer increment \%x ; Count the seconds input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin ; login assign \%x 0 ; zero the time counter pause 1 echo Looking for login prompt. :slloop increment \%x ; Count the seconds clear ; Clear unread characters from input buffer output \13 ; ; put your expected login prompt here: ; input 1 {Username: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 10 goto slloop ; try 10 times to get a login prompt else goto slhup ; hang up and start again if 10 failures :sluid ; ; put your userid here: ; output ppp-login\13 input 1 {Password: } ; ; put your password here: ; output ppp-password\13 input 1 {Entering SLIP mode.} echo quit :slnodial echo \7No dialtone. Check the telephone line!\7 exit 1 ; local variables: ; mode: csh ; comment-start: "; " ; comment-start-skip: "; " ; end: Том Рөүдс Хувь нэмэр болгон оруулсан <acronym>PPP</acronym> холболтуудын алдааг олж засварлах PPPалдааг олж засварлах Энэ хэсэг нь PPP-г модемийн холболтоор ашиглах үед гарч болох цөөн асуудлуудыг хамрах болно. Жишээ нь магадгүй танд залгаж холбогдох гэж байгаа систем чинь яг ямар хүлээх мөрүүдийг үзүүлэхийг мэдэх шаардлагатай байж болох юм. Зарим ISP-ууд ssword хүлээх мөрийг үзүүлдэг бол зарим нь password гэж үзүүлэх болно; хэрэв ppp скрипт нь түүний дагуу бичигдээгүй бол нэвтрэх оролдлого амжилтгүй болох болно. ppp холболтуудыг дибаг хийх хамгийн түгээмэл арга бол гараар холбогдох явдал юм. Дараах мэдээлэл нь алхам алхмаар гар холболтыг танд тайлбарлах болно. Төхөөрөмжийн цэгүүдийг шалгана Хэрэв та өөрийн цөмийг дахин тохируулсан бол sio төхөөрөмжийг санах хэрэгтэй. Хэрэв та өөрийн цөмийг тохируулаагүй бол санаа зовох хэрэггүй. Модем төхөөрөмжийн хувьд dmesg гаралтыг шалгаарай: &prompt.root; dmesg | grep sio Та sio төхөөрөмжүүдийн талаар тохирох мэдээллүүдийг авах ёстой. Эдгээр нь бидэнд хэрэгтэй COM портууд юм. Хэрэв таны модем стандарт цуваа порт шиг ажиллаж байвал та түүнийг sio1, эсвэл COM2 дээр жагсаагдсан байхыг харах ёстой. Хэрэв тийм бол та цөмийг дахин бүтээх шаардлагагүй юм. sio модем sio1 дээр эсвэл хэрэв та DOS дээр байгаа бол COM2 дээр таарч байвал таны модемийн төхөөрөмж - /dev/cuad1 байх болно. + /dev/cuad1 байх болно. Гараар холбогдох нь Гараар ppp-г хянаж Интернэтэд холбогдох нь холболтыг дибаг хийх юм уу эсвэл ердөө л таны ISP чинь ppp клиент холболтуудад хэрхэн ханддаг талаар мэдээлэл авахад хурдан, хялбар, агуу арга байдаг. Тушаалын мөрөөс PPP-г эхлүүлье. Бидний бүх жишээнүүд дээр бид PPP ажиллуулж байгаа машины хостын нэрийг example гэж авч ашиглах болно. Та pppppp гэж бичин эхлүүлнэ: &prompt.root; ppp Бид одоо ppp-г эхлүүллээ. - ppp ON example> set device /dev/cuad1 + ppp ON example> set device /dev/cuad1 Бид өөрсдийн модемний төхөөрөмжийг тохируулна. Энэ тохиолдолд cuad1 болно. ppp ON example> set speed 115200 Холболтын хурдыг тохируулна. Энэ тохиолдолд бид 115,200 kbps-г ашиглаж байна. ppp ON example> enable dns Бидний нэр танигчийг тохируулж /etc/resolv.conf файлд нэрийн серверүүдийн мөрүүдийг нэмэхийг ppp-д хэлнэ. ppp бидний хостын нэрийг тодорхойлж чадахгүй байгаа бол бид дараа нь гараараа тохируулж өгч болно. ppp ON example> term Модемийг гараар хянаж чадаж байхын тулд Терминал горимд шилжих хэрэгтэй. - deflink: Entering terminal mode on /dev/cuad1 + deflink: Entering terminal mode on /dev/cuad1 type '~h' for help at OK atdt123456789 Модемийг эхлүүлэхийн тулд at-г ашиглаж дараа нь atdt дээр өөрийн ISP-ийн дугаараа нэмээд залгах процессоо эхлэх хэрэгтэй. CONNECT Холболтын баталгаа гарах ёстой, хэрэв бид тоног төхөөрөмжтэй холбоогүй ямар нэг холболтын асуудлуудтай байх бол энд бид тэдгээрийг шийдэхийг оролдох болно. ISP Login:myusername Энд танаас хэрэглэгчийн нэрийг асуух болно, ISP-ээс өгсөн хэрэглэгчийн нэрийг оруулаад буцахыг дарна. ISP Pass:mypassword Энэ удаад нууц үгийг асуух болно, ISP-ээс өгсөн нууц үгээр хариулах хэрэгтэй. Яг л &os; уруу нэвтрэн ордог шиг нууц үг нь буцаж дэлгэцэд харагдахгүй. Shell or PPP:ppp Таны ISP-ээс хамаараад энэ хүлээх мөр нь хэзээ ч гарахгүй байж болох юм. Энд биднээс үйлчилгээ үзүүлэгч дээр бүрхүүл ашиглах эсэх эсвэл ppp эхлүүлэх эсэхийг асуудаг. Энэ жишээн дээр бид Интернэт холболтыг хүсэж байгаа болохоор ppp-г ашиглахаар сонгосон. Ppp ON example> Энэ жишээн дээр эхний тохируулга томоор бичигдсэнийг хараарай. Энэ нь бид ISP-д амжилттайгаар холбогдсоныг харуулж байна. PPp ON example> Бид ISP-д амжилттайгаар өөрсдийгөө таниулан нэвтэрч заагдсан IP хаягийг хүлээж байна. PPP ON example> Бид IP хаяг дээрээ зөвшилцөж холболтоо амжилттайгаар хийж дуусгалаа. PPP ON example>add default HISADDR Энд бид өөрсдийн анхдагч чиглүүлэлтээ нэмж байна. Бид үүнийг гаднах ертөнцтэй ярьж эхлэхээсээ өмнө хийх ёстой бөгөөд одоогоор зөвхөн хийгдсэн холболт нь нөгөө талтайгаа хийгдсэн холболт байгаа болно. Хэрэв энэ нь байгаа чиглүүлэлтүүдээсээ болоод амжилтгүй болбол та тохируулгын өмнө анхаарлын тэмдэг ! тавьж болно. Өөрөөр та үүнийг жинхэнэ холболт хийхээсээ өмнө тохируулж болох бөгөөд энэ нь шинэ чиглүүлэлтийг зохих ёсоор тохиролцоно. Хэрэв бүх зүйл сайн болж өнгөрсөн бол бид одоо идэвхтэй Интернэтийн холболттой болсон байх бөгөөд үүнийг ар талд CTRL z хослолоор оруулж болох юм. Хэрэв та PPPppp болохыг анзаарах юм бол бид өөрсдийн холболтоо алдсан гэсэн үг юм. Энэ нь бидний холболтын төлөвийг үзүүлдэг болохоор мэдэхэд илүүдэхгүй юм. Том P үсэгнүүд нь бид ISP уруу холболттой байгааг үзүүлэх бөгөөд жижиг p үсэгнүүд нь холболт ямар нэг шалтгаанаар тасарсныг харуулна. ppp нь зөвхөн эдгээр хоёр төлөвтэй байдаг. Дибаг хийх нь Хэрэв та шууд шугамтай бөгөөд холболт хийж чадахгүй байгаа юм шиг санагдвал CTS/RTS тоног төхөөрөмжийн урсгалыг болгон хаах хэрэгтэй. Энэ нь ялангуяа та PPP хийж чаддаг терминал серверт холбогдох тохиолдол юм. Энэ тохиолдолд PPP нь таны холбооны шугам дээр өгөгдлийг бичихээр оролдох үед өлгөгдөж хэзээ ч ирэхгүй байж болох CTS юм уу эсвэл Clear To Send буюу Илгээхэд Цэвэр дохиог хүлээж байж болох юм. Хэрэв та энэ тохируулгыг ашиглах юм бол тохируулгыг бас хэрэглэх шаардлагатай. Энэ тохируулга нь зарим нэг параметрүүдийг, ихэнх тохиолдолд XON/XOFF-г төгсгөлөөс төгсгөлд дамжуулахад тоног төхөөрөмжийн хувьд хамааралтай байдлыг үгүй хийхийн тулд шаардлагатай байж болох юм. Энэ тохируулгын талаар дэлгэрэнгүй мэдээллийг болон хэрхэн ашиглагддаг талаар &man.ppp.8; гарын авлагын хуудаснаас үзнэ үү. Хэрэв та хуучин модемтой бол тохируулгыг ашиглах хэрэгтэй болж болох юм. Parity нь анхдагчаар none буюу байхгүй гэж тохируулагдсан байдаг боловч хуучин модемууд болон ISP-уудад (урсгалын хувьд их хэмжээгээр ихсэхэд) алдаа шалгахад хэрэглэгддэг. Compuserve ISP-ийн хувьд танд энэ тохируулга хэрэгтэй байж болох юм. PPP нь тушаалын горимд буцахгүй байж болох юм. Энэ нь ихэвчлэн ISP нь танаас харилцан тохиролцохыг эхлүүлэхийг хүлээх тохиролцооны алдаа байдаг. Энэ үед ~p тушаалыг ашиглах нь ppp-г тохиргооны мэдээллээ илгээж эхлэхэд хүргэх болно. Хэрэв та нэвтрэлт хүлээх мөрийг хэзээ ч авахгүй байгаа бол та магадгүй дээрх жишээн дээрх &unix; загварын нэвтрэлт танилтын оронд PAP юм уу эсвэл CHAP нэвтрэлт танилтыг ашиглах хэрэгтэй байж болох юм. PAP эсвэл CHAP-г ашиглахын тулд ердөө л дараах тохируулгуудыг PPP-д терминал горим уруу орохоос өмнө нэмэх хэрэгтэй: ppp ON example> set authname myusername Дээр байгаа myusernameISP-с өгөгдсөн хэрэглэгчийн нэрээр солих шаардлагатай. ppp ON example> set authkey mypassword Дээр байгаа mypasswordISP-с өгөгдсөн нууц үгээр солих шаардлагатай. Хэрэв та зүгээр холбогдсон мөртлөө ямар ч домэйн нэр олохгүй байгаа юм шиг байвал &man.ping.8; тушаалыг IP хаягтай ашиглаж ямар нэг мэдээлэл буцаж ирж байгаа эсэхийг шалгах хэрэгтэй. Хэрэв та 100 хувийн (100%) пакетийн алдагдалд орж байвал танд бараг л анхдагч чиглүүлэлт заагдаагүй байгаа гэсэн үг юм. Холболтын үеэр тохируулга тохируулагдсан эсэхийг давхар шалгаарай. Хэрэв та алсын IP хаяг уруу холбогдож чадаж байвал нэр танигчийн хаяг /etc/resolv.conf файлд нэмэгдээгүй байх магадлалтай юм. Энэ файл нь иймэрхүү харагдах ёстой: domain example.com nameserver x.x.x.x nameserver y.y.y.y Дээр байгаа x.x.x.x болон y.y.y.y нь таны ISP-ийн DNS серверүүдийн IP хаягаар солигдох ёстой. Таныг үйлчилгээнд эхэлж бүртгүүлэхэд энэ мэдээлэл өгөгдсөн юм уу эсвэл өгөгдөөгүй байж болох бөгөөд өөрийн ISP уруугаа хурдхан утасдаж энэ мэдээллийг мэдэж болох юм. Та өөрийн PPP холболтондоо зориулж &man.syslog.3;-г бүртгэл бичихээр болгож болно. Дараах: !ppp *.* /var/log/ppp.log мөрийг /etc/syslog.conf файлд нэмнэ. Ихэнх тохиолдолд энэ боломж аль хэдийн орсон байдаг. Жим Мок Хувь нэмэр болгон (http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html хаягаас) оруулсан Ethernet дээгүүр PPP ашиглах нь (PPPoE) PPPEthernet дээгүүр PPPoE PPP, Ethernet дээгүүр Энэ хэсэг нь Ethernet дээгүүр PPP (PPPoE) хэрхэн тохируулах талаар тайлбарлах болно. Цөмийг тохируулах нь Одоо PPPoE-д зориулсан цөмийн тохиргоо шаардлагатай байхаа больжээ. Хэрэв шаардлагатай netgraph-ийн дэмжлэг цөмд бүтээгдээгүй бол энэ нь динамикаар ppp-ээр дуудагдах болно. <filename>ppp.conf</filename> файлыг тохируулах Энд ажилладаг ppp.conf файлын жишээ байна: default: set log Phase tun command # you can add more detailed logging if you wish set ifaddr 10.0.0.1/0 10.0.0.2/0 name_of_service_provider: set device PPPoE:xl1 # replace xl1 with your Ethernet device set authname YOURLOGINNAME set authkey YOURPASSWORD set dial set login add default HISADDR <application>ppp</application>-г ажиллуулах root хэрэглэгчээр та доор дурдсаныг ажиллуулж болно: &prompt.root; ppp -ddial name_of_service_provider <application>ppp</application>-г ачаалах үед эхлүүлэх доор дурдсаныг өөрийн /etc/rc.conf файлд нэмнэ: ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO ppp_profile="name_of_service_provider" PPPoE үйлчилгээний хаягийг ашиглах Заримдаа өөрийн холболтыг хийхийн тулд үйлчилгээний хаягийг ашиглах шаардлагатай болж болох юм. Үйлчилгээний хаягууд нь өгөгдсөн сүлжээнд залгагдсан өөр өөр PPPoE серверүүдийг ялгахын тулд хэрэглэгддэг. Таны ISP-ээс өгсөн баримтад шаардлагатай үйлчилгээний хаягийн мэдээлэл байх ёстой. Хэрэв та ийм мэдээлэл олоогүй бол өөрийн ISP-ийн техникийн дэмжлэг үзүүлэгч ажилтнаас асуугаарай. Хамгийн сүүлд та Портын цуглуулгад байх Архирах Оцон шувуу PPPoE хаягт санал болгосон аргыг туршиж болох юм. Гэхдээ энэ нь таны модемийг буцаан програмчилж ажиллагаагүй болгож магадгүй болохоор үүнийг хийхээсээ өмнө дахин бодоорой. Таны үйлчилгээ үзүүлэгчийн модемтой цуг ирсэн програмыг ердөө л суулгаарай. Дараа нь програмаас System цэсд хандаарай. Таны тохиргооны нэр тэнд жагсаагдсан байх ёстой. Энэ нь ихэвчлэн ISP гэж байдаг. Тохиргооны нэр (үйлчилгээний хаяг) нь ppp.conf файл дахь PPPoE тохиргооны оруулгад set device тушаалын үйлчилгээ үзүүлэгч хэсэг болон ашиглагдах болно (бүрэн мэдээллийг &man.ppp.8; гарын авлагын хуудаснаас үзнэ үү). Энэ нь иймэрхүү харагдах ёстой: set device PPPoE:xl1:ISP xl1-г өөрийн Ethernet картны зөв төхөөрөмжөөр солихоо мартуузай. ISP гэснийг дээрх дөнгөж олсон тохиргоогоор солихоо мартуузай. Нэмэлт мэдээллийг доорх хаягуудаас үзнэ үү: Рено Валдурагийн DSL дээр FreeBSD-ээр арай хямд өргөн зурвас ашиглах (Cheaper Broadband with FreeBSD on DSL). Удо Эрделхоффийн Nutzung von T-DSL und T-Online mit FreeBSD (Герман хэл дээр). &tm.3com; <trademark class="registered">HomeConnect</trademark> ADSL Хос Холбоос Модемтой PPPoE Энэ модем нь RFC 2516 (Л. Мамакос, К. Лидл, Ж. Эвартс, Д. Каррел, Д. Симоне, болон Р. Вийлэр нарын бичсэн PPP-г Ethernet дээгүүр (PPPoE) дамжуулах арга ) стандартыг дагадаггүй. Харин Ethernet хүрээнүүдийн хувьд пакетийн төрлийн өөр кодуудыг ашигладаг. Хэрэв та үүнийг PPPoE-ийн тодорхойлолтыг мөрдөх ёстой гэж бодож байгаа бол 3Com уруу гомдоллоно уу. Энэ төхөөрөмжтэй FreeBSD-г холбогдох боломжтой болгохын тулд sysctl тохируулагдах ёстой. /etc/sysctl.conf файлыг шинэчилж ачаалалтын үед энэ нь автоматаар хийгдэж болно: net.graph.nonstandard_pppoe=1 эсвэл дараах тушаалаар нэн даруй хийгдэж болно: &prompt.root; sysctl net.graph.nonstandard_pppoe=1 Харамсалтай нь энэ нь системийн дагуух тохиргоо болохоор хэвийн PPPoE клиент эсвэл сервер болон &tm.3com; HomeConnect ADSL модемтой нэгэн зэрэг холбогдох боломжгүй болох юм. ATM дээгүүр <application>PPP</application> (PPPoA) ашиглах PPPATM дээгүүр PPPoA PPP, ATM дээгүүр Дараах нь ATM дээгүүр PPP-г (PPPoA) хэрхэн тохируулах талаар тайлбарлана. PPPoA нь Европийн DSL үзүүлэгчдийн дунд алдартай сонголт болдог. Alcatel &speedtouch; USB-тэй PPPoA-г ашиглах нь Энэ төхөөрөмжийн PPPoA дэмжлэг нь FreeBSD-д порт хэлбэрээр байдаг. Учир нь үүний firmware Alcatel-ийн лицензийн гэрээгээр түгээгддэг бөгөөд FreeBSD-ийн үндсэн системтэй цуг чөлөөтэй түгээгдэж болдоггүй. Програм хангамжийг суулгахын тулд ердөө л Портуудын цуглуулгыг ашиглана. net/pppoa портыг суулгаад түүнтэй хамт ирсэн заавруудыг дагаарай. Олон USB төхөөрөмжүүдийн адил Alcatel-ийн &speedtouch; USB нь зөв ажиллахын тулд хост компьютераас firmware татах хэрэгтэй болдог. &os; дээр энэ дамжуулалт нь төхөөрөмж USB порт уруу холбогдсон үед хийгдэхээр болгож энэ процессийг автоматчилах боломжтой. Энэ автомат firmware дамжуулалтыг идэвхжүүлэхийн тулд дараах мэдээллийг /etc/usbd.conf файлд нэмж болох юм. Энэ файлыг root хэрэглэгчээр засварлах шаардлагатай. device "Alcatel SpeedTouch USB" devname "ugen[0-9]+" vendor 0x06b9 product 0x4061 attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o" usbd USB дэмонг идэвхжүүлэхийн тулд дараах мөрийг /etc/rc.conf файлд нэмнэ: usbd_enable="YES" Эхлүүлэхэд залгадаг байхаар ppp-г тохируулах боломжтой байдаг. Үүнийг хийхийн тулд дараах мөрүүдийг /etc/rc.conf файлд нэмнэ. Ахин хэлэхэд энэ процедурын хувьд та root хэрэглэгчээр нэвтрэн орох хэрэгтэй болно. ppp_enable="YES" ppp_mode="ddial" ppp_profile="adsl" Үүнийг зөв ажиллуулахын тулд та net/pppoa порттой цуг ирсэн ppp.conf файлыг ашиглах хэрэгтэй болно. mpd ашиглах нь Та төрөл бүрийн үйлчилгээнүүдэд ялангуяа PPTP үйлчилгээнүүдэд холбогдохын тулд mpd-г ашиглаж болно. Та mpd-г Портуудын цуглуулга net/mpd сангаас олж болно. Олон ADSL модемууд нь модем болон компьютерийн хооронд PPTP хоолой үүсгэгдсэн байхыг шаарддаг бөгөөд тийм модемийн нэг нь Alcatel &speedtouch; Home юм. Та эхлээд портоо суулгах ёстой бөгөөд дараа нь өөрийн шаардлага болон үйлчилгээ үзүүлэгчийн тохиргоонуудад тааруулан mpd-г тохируулж болно. Порт нь жишээ тохиргооны файлуудыг байрлуулдаг бөгөөд - эдгээр нь PREFIX/etc/mpd/-д + эдгээр нь PREFIX/etc/mpd/-д сайн баримтжуулагдсан байдаг. Энд нэг юмыг тэмдэглэх хэрэгтэй. PREFIX гэдэг нь таны портууд - суулгагдсан сан бөгөөд анхдагчаар /usr/local/ + суулгагдсан сан бөгөөд анхдагчаар /usr/local/ байдаг. mpd-г тохируулах бүрэн заавар порт суулгагдсаны дараа HTML хэлбэрээр орсон байдаг. Энэ нь - PREFIX/share/doc/mpd/ + PREFIX/share/doc/mpd/ санд байрладаг. Энд mpd-ээр ADSL үйлчилгээнд холбогдох жишээ тохиргоо байна. Тохиргоо нь хоёр файлаас тогтох бөгөөд эхний mpd.conf нь ийм байна: default: load adsl adsl: new -i ng0 adsl adsl set bundle authname username set bundle password password set bundle disable multilink set link no pap acfcomp protocomp set link disable chap set link accept chap set link keep-alive 30 10 set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set iface route default set iface disable on-demand set iface enable proxy-arp set iface idle 0 open Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх хэрэглэгчийн нэр. Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх нууц үг. mpd.links файл нь таны хийхийг хүссэн холбоос эсвэл холбоосуудын тухай мэдээллийг агуулдаг. Дээрх жишээнд тохирох харгалзах жишээ mpd.links файлыг доор үзүүлэв: adsl: set link type pptp set pptp mode active set pptp enable originate outcall set pptp self 10.0.0.1 set pptp peer 10.0.0.138 Таны mpd ашиглах &os; компьютерийн IP хаяг. Таны ADSL модемийн IP хаяг. Alcatel &speedtouch; Home-ийн хувьд энэ хаяг нь анхдагчаар 10.0.0.138 байна. Дараах тушаалыг root-ээр ажиллуулж холболтыг хялбараар эхлүүлэх боломжтой байдаг: &prompt.root; mpd -b adsl Та холболтын төлөвийг дараах тушаалаар харж болно: &prompt.user; ifconfig ng0 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff &os; дээр ADSL үйлчилгээнд холбогдохын тулд mpd-г ашиглахыг зөвлөдөг юм. pptpclient ашиглах нь Мөн бусад PPPoA үйлчилгээнүүдэд FreeBSD-ээр холбогдохын тулд net/pptpclient ашиглах боломжтой байдаг. net/pptpclient-г ашиглан DSL үйлчилгээнд холбогдохын тулд порт болон багцыг суулгаад өөрийн /etc/ppp/ppp.conf файлыг засварлана. Эдгээр үйлдлүүдийг хийж гүйцэтгэхийн тулд та root болсон байх ёстой. ppp.conf файлын жишээ хэсгийг доор үзүүлэв. ppp.conf-ийн тохируулгуудын тухай илүү мэдээллийг ppp гарын авлагын хуудас &man.ppp.8;-с лавлана уу. adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname username set authkey password set ifaddr 0 0 add default HISADDR DSL үйлчилгээ үзүүлэгчтэй холбогдох таны бүртгэлийн хэрэглэгчийн нэр. Таны бүртгэлийн нууц үг. Та өөрийн бүртгэлийн нууц үгийг ppp.conf файлд цэвэр текст хэлбэрээр тавих ёстой болохоор энэ файлын агуулгыг хэн ч уншиж чадахгүй болгосон эсэхээ шалгах хэрэгтэй. Дараах сери тушаалууд нь энэ файлыг зөвхөн root бүртгэлээр уншигдахаар болгох юм. Дэлгэрэнгүй мэдээллийг &man.chmod.1; болон &man.chown.8; гарын авлагын хуудаснуудаас лавлана уу. &prompt.root; chown root:wheel /etc/ppp/ppp.conf &prompt.root; chmod 600 /etc/ppp/ppp.conf Энэ нь PPP сессэд зориулан таны DSL чиглүүлэгч уруу хоолой нээх болно. Ethernet DSL модемууд нь LAN IP хаягаар урьдчилан тохируулагдсан байдаг бөгөөд та түүн уруу холбогдоно. Alcatel &speedtouch; Home-ийн хувьд энэ хаяг нь 10.0.0.138 байна. Таны чиглүүлэгчийн баримтад төхөөрөмж ямар хаяг ашиглаж байгааг хэлсэн байх ёстой. Хоолой нээж PPP сесс эхлүүлэхийн тулд дараах тушаалыг ажиллуулна: &prompt.root; pptp address adsl Та өмнөх тушаалын төгсгөлд & тэмдгийг нэмэхийг хүсэж болох юм. Ингэхгүй бол pptp нь танд тушаал хүлээх мөрийг буцаадаггүй. tun виртуал хоолой төхөөрөмж нь pptp болон ppp процессуудын хоорондох харилцаанд зориулан үүсгэгдэх болно. Тушаал хүлээх мөрөнд буцаж ирснийхээ дараа юм уу эсвэл pptp нь холболтыг баталгаажуулсны дараа та хоолойг ингэж шалгаж болно: &prompt.user; ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918 Хэрэв та холбогдож чадахгүй байгаа бол өөрийн чиглүүлэгчийн тохиргоог шалгаарай. Энэ нь ихэвчлэн telnet юм уу эсвэл вэб хөтчөөр хандах боломжтой байдаг. Хэрэв та холбогдож чадахгүй хэвээр байвал pptp тушаалын гаралт болон ppp бүртгэлийн файл /var/log/ppp.log-оос ямар нэг сэжүүр байгаа эсэхийг шалгах хэрэгтэй. Сатоши Асами Анхлан хувь нэмэр болгон оруулсан Гай Хэлмер Зарим хэсгийг оруулсан Пьеро Серини SLIP ашиглах SLIP SLIP клиент тохируулах SLIPклиент Дараах нь FreeBSD машиныг SLIP-д зориулан статик хост сүлжээн дээр тохируулах нэг арга юм. Динамикаар хостын нэрийг өгөхийн тулд (таныг залгаж холбогдох болгонд таны хаяг өөрчлөгддөг) танд илүү төвөгтэй тохируулга хэрэгтэй болох байх. Эхлээд таны модем аль цуваа портод холбогдсоныг тодорхойлно. Олон хүн - /dev/modem гэх зэргээр жинхэнэ төхөөрөмжийн нэр - /dev/cuadN + /dev/modem гэх зэргээр жинхэнэ төхөөрөмжийн нэр + /dev/cuadN уруугаа заасан симболын холбоосыг тохируулдаг. Энэ нь модемийг өөр порт уруу шилжүүлэх шаардлагатай болсон тохиолдолд жинхэнэ төхөөрөмжийн нэрийг хийсвэрлэх - боломжийг танд олгож байгаа юм. Бүх системийн дагуу /etc + боломжийг танд олгож байгаа юм. Бүх системийн дагуу /etc дэх олон файлууд болон .kermrc файлуудыг засварлах шаардлагатай болох үед энэ нь нэлээн ярвигтай болж ирдэг! - /dev/cuad0 нь - COM1, cuad1 нь + /dev/cuad0 нь + COM1, /dev/cuad1 нь COM2, гэх мэт. Өөрийн цөмийн тохиргооны файлд дараах нь байгаа эсэхийг шалгаарай: device sl Энэ нь GENERIC цөмд орсон байдаг бөгөөд та түүнийг устгаагүй л бол энэ нь асуудал биш юм. Зөвхөн нэг удаа хийх зүйлс Өөрийн гэр машин, гарц болон нэрийн серверүүдийг өөрийн /etc/hosts файлд нэмнэ. Биднийх иймэрхүү харагдах болно: 127.0.0.1 localhost loghost 136.152.64.181 water.CS.Example.EDU water.CS water 136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway 128.32.136.9 ns1.Example.EDU ns1 128.32.136.12 ns2.Example.EDU ns2 Өөрийн /etc/nsswitch.conf файлын hosts: хэсэгт files мөр нь dns мөрөөс өмнө байгаа эсэхийг шалгаарай. Эдгээр параметрүүдгүй бол сонин зүйлс болж магадгүй юм. /etc/rc.conf файлыг засна. Дараах мөрийг засварлаж өөрийн хостын нэрийг тохируулна: hostname="myname.my.domain" Таны машины Интернэтийн бүрэн хостын нэрийг энд тавих ёстой. анхдагч чиглүүлэлт Дараах мөрийг өөрчилж анхдагч чиглүүлэлт: defaultrouter="NO" гэдгийг: defaultrouter="slip-gateway" болгоно. доор дурдсаныг агуулсан /etc/resolv.conf файл үүсгэнэ: domain CS.Example.EDU nameserver 128.32.136.9 nameserver 128.32.136.12 нэрийн сервер домэйн нэр Таны харж байгаагаар эдгээр нь нэрийн серверийн хостуудыг тохируулж байна. Мэдээж жинхэнэ домэйн нэрс болон хаягууд нь таны орчноос хамаарна. root болон toor (нууц үггүй бусад бүртгэлүүдийн) нууц үгийг тохируулна. Өөрийн машиныг дахин ачаалж зөв хостын нэртэйгээр ачаалсан эсэхийг нь шалгаарай. SLIP холболт хийх нь SLIPхолболт хийх нь Залгаад хүлээх мөрөн дээр slip гэж бичээд өөрийн машины нэр болон нууц үгийг оруулна. Юу оруулах шаардлагатай нь таны орчноос хамаарна. Хэрэв та Kermit ашиглаж байгаа бол та иймэрхүү скриптийг ажиллуулахаар оролдож болно: # kermit setup set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # The next macro will dial up and login define slip dial 643-9600, input 10 =>, if failure stop, - output slip\x0d, input 10 Username:, if failure stop, - output silvia\x0d, input 10 Password:, if failure stop, - output ***\x0d, echo \x0aCONNECTED\x0a Мэдээж өөртөө тааруулаад өөрийн хэрэглэгчийн нэр болон нууц үгийг солих хэрэгтэй. Ингэснийхээ дараа та Kermit-ийн хүлээх мөрөөс холбогдохын тулд slip гэж бичих хэрэгтэй. Файлын системд хаа нэгтээ өөрийн нууц үгийг цэвэр текстээр үлдээх нь ерөнхийдөө буруу юм. Үүнийг хийх нь аз туршсан явдал юм. Kermit-г тэнд нь үлдээж (та үүнийг Ctrl z хослолоор зогсоож болно) root-ээр дараах тушаалыг бичнэ: &prompt.root; slattach -h -c -s 115200 /dev/modem Хэрэв та чиглүүлэгчийн нөгөө талд байгаа хостууд уруу ping хийж чадаж байвал та холбогдсон байна! Хэрэв энэ нь ажиллахгүй байгаа бол slattach тушаалд нэмэлт өгөгдлийн оронд -г тавьж оролдоод үзээрэй. Холболтыг хэрхэн зогсоох вэ доор дурдсаныг хийж: &prompt.root; kill -INT `cat /var/run/slattach.modem.pid` slattach-г зогсооно. Дээр дурдсаныг хийхийн тулд root байх шаардлагатайг санаарай. Дараа нь kermit уруугаа (хэрэв та түр зогсоосон бол fg тушаалыг ажиллуулан) буцаж түүнээс гарна (q). &man.slattach.8; гарын авлагын хуудсанд интерфэйсийг зогссон гэж тэмдэглэхийн тулд ifconfig sl0 down тушаалыг ашиглах ёстой гэсэн байдаг боловч энэ нь ямар ч өөрчлөлт хийдэггүй юм шиг санагддаг. (ifconfig sl0 тушаал нь бас үүнтэй адилыг гаргадаг.) Заримдаа таны модем зөөгчийг унагахаасаа татгалзаж болох юм. Тийм тохиолдолд ердөө л дахин kermit-г ажиллуулаад тэгээд түүнээс гарах хэрэгтэй. Энэ нь ихэвчлэн хоёр дахь оролдлогод болдог. Алдааг олж засварлах Хэрэв энэ нь ажиллахгүй байгаа бол &a.net.name; захидлын жагсаалтаас чөлөөтэй асуугаарай. Одоогоор хүмүүсийн аялж мэдсэн зүйлс гэх юм бол: slattach тушаалд эсвэл тохируулгуудыг ашиглахгүй байх (энэ нь мөхлийн байх ёсгүй, гэхдээ энэ нь зарим хэрэглэгчдийн асуудлуудыг шийддэг гэж бичсэн байдаг.) -ийн оронд тохируулгыг ашиглах (зарим фонтууд дээр ялгааг нь олж харах хэцүү байж болох юм). Өөрийн интерфэйсийн төлөвийг харахын тулд ifconfig sl0 тушаалыг ажиллуулж үзээрэй. Жишээ нь та иймэрхүү дүн харж болох юм: &prompt.root; ifconfig sl0 sl0: flags=10<POINTOPOINT> inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 Хэрэв та &man.ping.8; тушаалаас no route to host мэдэгдлүүдийг авах юм бол таны чиглүүлэлтийн хүснэгтэд асуудал байж болзошгүй юм. Тухайн үед байгаа чиглүүлэлтүүдийг үзүүлэхийн тулд netstat -r тушаалыг ашиглаж болно : &prompt.root; netstat -r Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: (root node) (root node) Route Tree for Protocol Family inet: (root node) => default inr-3.Example.EDU UG 8 224515 sl0 - - localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438 inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 (root node) Өмнөх жишээнүүд нь харьцангуй завгүй байгаа системүүдийнх юм. Таны систем дээрх тоонууд нь сүлжээний ачааллаас хамаарч өөр өөр байх болно. SLIP сервер тохируулах нь SLIPсервер Энэхүү баримт нь FreeBSD систем дээр SLIP серверийн үйлчилгээнүүдийг тохируулахад зориулсан зөвлөгөөнүүдийг санал болгодог. Энэ нь юу гэсэн үг вэ гэхээр алсын SLIP клиентүүдийн нэвтрэлтийн үед холболтуудыг автоматаар эхлүүлэхээр болгож таны системийг тохируулна гэсэн үг юм. Шаардлагатай зүйлс TCP/IP сүлжээ Энэ баримт нь өөрийн үндсэн чанарын хувьд хэт техникийн учраас тодорхой мэдлэг шаардах болно. Энэ нь таныг TCP/IP сүлжээний протоколыг тодорхой хэмжээгээр мэддэг бөгөөд ялангуяа сүлжээ болон цэгийн хаяглалт, сүлжээний хаягийн багууд, дэд сүлжээ үүсгэх, чиглүүлэлт болон RIP зэрэг чиглүүлэлтийн протоколуудыг мэддэг гэж тооцдог. SLIP үйлчилгээнүүдийг dial-up сервер дээр тохируулах нь эдгээр ухагдахуунуудын тухай мэдлэгийг шаарддаг бөгөөд хэрэв та эдгээрийг мэдэхгүй бол O'Reilly & Associates, Inc-ийн хэвлэсэн Крэг Хантын TCP/IP Network Administration буюу TCP/IP сүлжээний удирдлага номыг юм уу эсвэл TCP/IP протоколуудын тухай Даглас Комерийн номнуудыг уншина уу. модем Мөн таныг модемоо суулгаж өөрийн модемоор дамжин нэвтрэх боломжуудыг зөвшөөрөхөөр тохируулсан байгаа гэж үздэг. Хэрэв та үүнд зориулж өөрийн системийг бэлдэж амжаагүй байгаа бол dialup үйлчилгээнүүдийн тохиргооны тухай мэдээллийг хэсгээс үзнэ үү. Та бас цуваа портын төхөөрөмжийн драйверийн тухай мэдээлэл болон модемууд дээр нэвтрэлтүүдийг хүлээн авахаар болгож системийг тохируулах тухай мэдээллийг &man.sio.4; болон &man.ttys.5;, &man.gettytab.5;, &man.getty.8;, & &man.init.8; гарын авлагын хуудаснуудаас шалгахыг хүсэж болох юм. Цуваа портын параметрүүдийг (шууд холбогдсон цуваа интерфэйсүүдийн хувьд clocal зэрэг) тохируулах тухай мэдээллийг &man.stty.1; гарын авлагын хуудаснаас үзнэ үү. Түргэн дүгнэлт FreeBSD-г SLIP сервер болгон ашиглах ердийн тохиргоонд дараах маягаар ажилладаг: SLIP сервер нь таны FreeBSD SLIP сервер системийг гадагш залгуулдаг бөгөөд /usr/sbin/sliplogin-ийг тусгай хэрэглэгчийн бүрхүүл болгон ашигладаг тусгай SLIP нэвтрэх ID-аар нэвтэрдэг. sliplogin програм нь тусгай хэрэглэгчийн хувьд таарах мөрийг олохын тулд /etc/sliphome/slip.hosts файлыг гүйлгэн үздэг бөгөөд хэрэв олсон бол цуваа шугамыг байгаа SLIP интерфэйс уруу холбож дараа нь SLIP интерфэйсийг тохируулахын тулд /etc/sliphome/slip.login бүрхүүлийн скриптийг ажиллуулдаг. SLIP серверийн нэвтрэлтийн жишээ Жишээ нь хэрэв SLIP хэрэглэгчийн ID нь Shelmerg байсан бол /etc/master.passwd файл дахь Shelmerg-ийн оруулга иймэрхүү байж болох юм: Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin Shelmerg нэвтрэх үед sliplogin нь таарах хэрэглэгчийн ID-тай мөрийг /etc/sliphome/slip.hosts файлаас хайх болно, жишээ нь /etc/sliphome/slip.hosts файлд дараах мөр байж болох юм: Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp sliplogin тушаал нь тэр таарах мөрийг олох бөгөөд цуваа шугамыг дараачийн байгаа SLIP интерфэйс уруу залгаж дараа нь /etc/sliphome/slip.login-ийг иймэрхүүгээр ажиллуулна: /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp Хэрэв бүгд зүгээр болж өнгөрвөл /etc/sliphome/slip.login нь өөрийгөө залгасан (дээрх жишээн дээр slip.login уруу өгөгдсөн жагсаалтан дахь эхний параметр болох SLIP интерфэйс 0) SLIP интерфэйсийн хувьд ifconfig тушаалыг ажиллуулж локал IP хаяг (dc-slip), алсын IP хаяг (sl-helmer), SLIP интерфэйсийн сүлжээний баг (0xfffffc00) болон бусад нэмэлт тугнуудыг (autocomp) тохируулдаг. Хэрэв ямар нэг зүйл буруу болвол sliplogin нь ихэвчлэн /var/log/messages уруу бүртгэх syslogd дэмон боломжоор дамжуулан боломжийн мэдээллийн чанартай мэдэгдлүүдийг ихэвчлэн бүртгэдэг. (&man.syslogd.8; болон &man.syslog.conf.5;-ийн гарын авлагын хуудаснуудыг үзнэ үү. /etc/syslog.conf-ийг шалгаж syslogd-ийн юу бүртгэдэг болон хаана бүртгэдгийг харна уу). Цөмийн тохиргоо цөмтохиргоо SLIP &os;-ийн анхдагч цөм (GENERIC) нь SLIP (&man.sl.4;) дэмжлэгтэй цуг ирдэг; тухайлан өөрчилсөн цөмийн хувьд бол та өөрийн цөмийн тохиргооны файлдаа дараах мөрийг нэмэх хэрэгтэй: device sl Анхдагчаар таны &os; машин пакетуудыг урагш дамжуулахгүй байх болно. Хэрэв та өөрийн SLIP серверийг чиглүүлэгч маягаар ашиглахыг хүсвэл /etc/rc.conf файлыг засварлах хэрэгтэй болох бөгөөд gateway_enable хувьсагчийн тохиргоог болгож өөрчлөх хэрэгтэй. Ингэж зааж өгснөөр чиглүүлэлтийн тохиргоог дахин ачаалсны дараа ч тогтмол байлгадаг. Тохиргоог даруй идэвхтэй болгохын тулд та root хэрэглэгчээр дараах тушаалыг ажиллуулж болно: &prompt.root; /etc/rc.d/routing start FreeBSD-ийн цөмийг тохируулах талаар бичсэн -с өөрийн цөмийг дахин тохируулах талаар лавлана уу. Sliplogin тохиргоо Урьд нь дурдаж байсны дагуу /usr/sbin/sliplogin файлын - тохиргооны хэсэг болох гурван файл /etc/sliphome санд + тохиргооны хэсэг болох гурван файл /etc/sliphome санд байдаг (sliplogin-ий талаар мэдээллийг &man.sliplogin.8; гарын авлагын хуудаснаас үзнэ үү). Эдгээрт SLIP хэрэглэгчид болон тэдгээрийн холбоотой IP хаягуудыг тодорхойлдог slip.hosts файл, SLIP интерфэйсийг ихэвчлэн тохируулдаг slip.login файл, болон (нэмэлт) цуваа холболт төгссөн үед slip.login-ий нөлөөллүүдийг буцаадаг slip.logout файл ордог. <filename>slip.hosts</filename> тохиргоо /etc/sliphome/slip.hosts нь өөр хоорондоо зайгаар тусгаарлагдсан хамгийн багаар бодоход дөрвөн хэсгээс тогтох мөрүүдээс тогддог: SLIP хэрэглэгчийн нэвтрэх ID SLIP холбоосын локал хаяг (SLIP серверийн хувьд локал) SLIP холбоосын алсын хаяг Сүлжээний баг Локал болон алсын хаягууд нь хостын нэрс ( /etc/nsswitch.conf файлд заасан таны тодорхойлолтуудаас хамаарч /etc/hosts файлаар юм уу эсвэл домэйн нэрний үйлчилгээгээр IP болон танигддаг) байж болох бөгөөд сүлжээний баг нь /etc/networks-аас хийгдэх хайлтаар танигдах нэр байж болно. Жишээ систем дээр /etc/sliphome/slip.hosts нь иймэрхүү харагдана: # # login local-addr remote-addr mask opt1 opt2 # (normal,compress,noicmp) # Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp Мөрийн төгсгөлд нэг буюу хэд хэд тохируулгууд байна: — толгойн шахалт байхгүй — толгойнуудыг шахна — алсын тал толгойнуудыг шахахыг зөвшөөрөх бол хийнэ — ICMP пакетуудыг хаана (таны урсгалыг дүүргэхийн оронд ping пакетууд хаягдах болно) SLIP TCP/IP сүлжээ Таны SLIP холбоосуудын локал болон алсын хаягуудын сонголт та TCP/IP дэд сүлжээг тусгайлан зориулах уу эсвэл өөрийн SLIP сервер дээрээ proxy ARP-г (энэ нь жинхэнэ proxy ARP биш боловч үүнийг тайлбарлахын тулд энэ хэсэгт энэ ухагдахуун ашиглагдах болно) ашиглах уу гэдгээс хамаарна. Хэрэв та аль аргыг сонгохдоо эсвэл IP хаягуудыг хэрхэн зааж өгөхдөө эргэлзэж байгаа бол SLIP-ийн шаардлагатай зүйлс () хэсэгт дурдсан TCP/IP-ийн номнууд ба/эсвэл өөрийн IP сүлжээний удирдагчаас лавлана уу. Та өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглах бол та өөрийн өгөгдсөн IP сүлжээний дугаараас дэд сүлжээний дугаарыг хуваарилж өөрийн SLIP клиент бүрийн IP дугааруудыг тэр дэд сүлжээнээс зааж өгөх хэрэгтэй болно. Дараа нь өөрийн хамгийн ойрын чиглүүлэгч дээр SLIP серверээрээ дамжуулан SLIP дэд сүлжээ уруу статик чиглүүлэлт тохируулах хэрэгтэй болох болов уу. Ethernet Өөрөөр, хэрэв та proxy ARP аргыг ашиглах бол та өөрийн SLIP клиентийн IP хаягуудыг өөрийн SLIP серверийн Ethernet дэд сүлжээнээс олгох хэрэгтэй болох бөгөөд та бас SLIP серверийн ARP хүснэгт дэх proxy ARP оруулгуудыг удирдахын тулд &man.arp.8;-г ашиглахаар болгож өөрийн /etc/sliphome/slip.login болон /etc/sliphome/slip.logout скриптүүдийг тохируулах хэрэгтэй болно. <filename>slip.login</filename> тохиргоо Ердийн /etc/sliphome/slip.login файл иймэрхүү харагдана: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 Энэ slip.login файл нь ердөө л тохирох SLIP интерфэйсийн хувьд ifconfig-г локал ба алсын хаягууд болон SLIP интерфэйсийн сүлжээний багтайгаар ажиллуулдаг. Хэрэв та proxy ARP аргыг ашиглахаар шийдсэн бол (өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглахын оронд) таны /etc/sliphome/slip.login файл иймэрхүү харагдах ёстой: #!/bin/sh - # # @(#)slip.login 5.1 (Berkeley) 7/1/90 # # generic login file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 inet $4 $5 netmask $6 # Answer ARP requests for the SLIP client with our Ethernet addr /usr/sbin/arp -s $5 00:11:22:33:44:55 pub Энэ slip.login файл дахь arp -s $5 00:11:22:33:44:55 pub тушаал нь SLIP серверийн ARP хүснэгтэд ARP оруулгыг үүсгэдэг. Ethernet дэх өөр IP цэг SLIP клиентийн IP хаягтай ярилцахыг хүсэх үед энэ ARP оруулга нь SLIP серверийг SLIP серверийн Ethernet MAC хаягаар хариулахад хүргэдэг. EthernetMAC хаяг Дээрх жишээг ашиглаж байхдаа Ethernet MAC хаягийг (00:11:22:33:44:55) өөрийн системийн Ethernet картын MAC хаягаар солисон эсэхээ шалгаарай. Тэгэхгүй бол таны proxy ARP чинь мэдээж ажиллахгүй! Та өөрийн SLIP серверийн Ethernet MAC хаягийг netstat -i тушаалыг ажиллуулан гарсан үр дүнгээс нь харан олж болох юм; гарсан үр дүнгийн хоёр дахь мөр иймэрхүү харагдах ёстой: ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 Энэ нь системийн Ethernet MAC хаяг нь 00:02:c1:28:5f:4a гэдгийг үзүүлж байгаа юм — netstat -i тушаалаар өгөгдсөн Ethernet MAC хаяг дахь цэгүүд нь тодорхойлох хоёр цэгээр солигдох ёстой бөгөөд &man.arp.8;-ийн хүсдэг хэлбэр уруу хаягийг хөрвүүлэхийн тулд ганц оронтой 16-тын тоо бүрийн өмнө тэг нэмэх ёстой. Ашиглалтын тухай бүрэн мэдээллийг &man.arp.8; гарын авлагын хуудаснаас үзнэ үү. /etc/sliphome/slip.login болон /etc/sliphome/slip.logout файлыг үүсгэж байхдаа execute буюу ажиллуулах битийг (өөрөөр хэлбэл chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout) тавих ёстой, тэгэхгүй бол sliplogin тушаал түүнийг ажиллуулж чадахгүй байх болно. <filename>slip.logout</filename> тохиргоо /etc/sliphome/slip.logout нь заавал хатуу чангаар хэрэгтэй биш (та proxy ARP хийгээгүй л бол) боловч та үүнийг үүсгэхийг хүсвэл энд үндсэн slip.logout скриптийн жишээ байна: #!/bin/sh - # # slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down Хэрэв та proxy ARP ашиглаж байгаа бол SLIP клиентийн хувьд ARP оруулгыг устгах /etc/sliphome/slip.logout файлтай байхыг хүсэж болох юм: #!/bin/sh - # # @(#)slip.logout # # logout file for a slip line. sliplogin invokes this with # the parameters: # 1 2 3 4 5 6 7-n # slipunit ttyspeed loginname local-addr remote-addr mask opt-args # /sbin/ifconfig sl$1 down # Quit answering ARP requests for the SLIP client /usr/sbin/arp -d $5 arp -d $5 тушаал нь ARP оруулгыг устгаж SLIP клиент нэвтрэх үед proxy ARP slip.login нэмэгддэг. /etc/sliphome/slip.logout файлыг үүсгэснийхээ дараа ажиллуулах битийг тавьсан эсэхээ шалгаарай (өөрөөр хэлбэл chmod 755 /etc/sliphome/slip.logout). Чиглүүлэлтийн эргэцүүллүүд SLIP чиглүүлэлт Хэрэв та өөрийн SLIP клиентүүд болон таны бусад сүлжээний хоорондох (болон магадгүй Интернэт хоорондох) чиглүүлэлтийн пакетуудын хувьд proxy ARP аргыг ашиглахгүй байгаа бол өөрийн SLIP клиентүүдийн дэд сүлжээг өөрийн SLIP серверээр дамжуулан чиглүүлэхийн тулд өөрийн хамгийн ойрын анхдагч чиглүүлэгчид(үүдэд) статик чиглүүлэлтүүдийг нэмэх хэрэгтэй болж болох юм. Статик чиглүүлэлтүүд статик чиглүүлэлтүүд Өөрийн хамгийн ойрын чиглүүлэгчүүдэд статик чиглүүлэлтүүдийг нэмэх нь яршигтай байж болох юм (эсвэл хэрэв та тэгж хийх зөвшөөрөлгүй бол боломжгүй байх юм...). Та өөрийн байгууллагадаа олон чиглүүлэгчтэй бол Cisco болон Proteon-ий хийсэн зарим чиглүүлэгчүүд нь зөвхөн SLIP дэд сүлжээ уруу статик чиглүүлэлттэй байхаар тохируулагдсан байх шаардлагагүй байж болох бөгөөд бас аль статик чиглүүлэлтүүд нь бусад чиглүүлэгчүүдэд хэлж байгааг хэлж өгөх хэрэгтэй болох юм. Тийм болохоор статик чиглүүлэлт дээр тулгуурласан чиглүүлэлтийг ажиллуулахад зарим нэг чадамж болон алдаа олж засварлах/тааруулах чадвар хэрэгтэй болж болох юм. diff --git a/mn_MN.UTF-8/books/handbook/security/chapter.sgml b/mn_MN.UTF-8/books/handbook/security/chapter.sgml index ae4641160d..a6976157e1 100644 --- a/mn_MN.UTF-8/books/handbook/security/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/security/chapter.sgml @@ -1,4268 +1,4312 @@ Мэтью Диллон Энэ бүлгийн ихэнх хэсгийг security(7) гарын авлагын хуудаснаас авсан бөгөөд security(7) гарын авлагын хуудсыг бичсэн Цагаанхүүгийн Ганболд Орчуулсан Аюулгүй байдал аюулгүй байдал Ерөнхий агуулга Энэ бүлэг нь системийн аюулгүй байдлын ухагдахуунуудын үндэс, зарим нэг нийтлэг практикийн сайн аргууд болон &os; дэх зарим нэг дэвшилттэй сэдвүүдийг танилцуулах болно. Энд дурдагдсан олон сэдвүүдийг бас системийн болон Интернэтийн аюулгүй байдалд хэрэглэж болох юм. Интернэт нь хүн бүр таны найрсаг хөрш байхыг хүсдэг найзархаг газар байхаа аль хэдийн больсон. Өөрийн системийг аюулгүй болгох нь таны өгөгдөл, оюуны өмч, цаг хугацаа зэрэг олон зүйлсийг хакерууд зэргийн савраас хамгаалахад хойшлуулашгүй чухал юм. &os; нь таны систем болон сүлжээний аюулгүй байдал болон бүрэн бүтэн байдлыг хангаж байдаг хэрэгслүүд болон арга замуудын цуглуулгыг агуулдаг. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: &os;-ийн хувьд системийн аюулгүй байдлын үндсэн ухагдахуунууд. &os;-д байдаг DES болон MD5 зэрэг төрөл бүрийн нууцлах арга замуудын талаар. Нэг удаагийн нууц үгийн нэвтрэлтийг хэрхэн тохируулах талаар. TCP Wrappers буюу TCP Гүйцэтгэлийг хялбаршуулагчдыг inetd-д ашиглан хэрхэн тохируулах талаар. &os;-ийн 5.0-с өмнөх хувилбарууд дээр KerberosIV-г хэрхэн тохируулах талаар. &os; дээр Kerberos5-г хэрхэн тохируулах талаар. IPsec-г хэрхэн тохируулж &os;/&windows; машинуудын хооронд VPN үүсгэх талаар. &os;-ийн SSH шийдэл болох OpenSSH-г хэрхэн тохируулж ашиглах талаар. Файлын системийн ACL-үүд гэж юу болох, тэдгээрийг хэрхэн ашиглах талаар. Portaudit хэрэгслийг хэрхэн ашиглаж Портын цуглуулгаас суулгагдсан гуравдагч програм хангамжийн багцуудыг аудит хийх талаар. &os;-ийн аюулгүй байдлын зөвлөмжүүдийн сонордуулгуудыг хэрхэн хэрэглэх талаар. Процессийн Бүртгэл хөтлөх гэж юу болох талаар ойлголттой болж түүнийг &os; дээр хэрхэн идэвхжүүлэх талаар. Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай: &os; болон Интернэтийн үндсэн ухагдахуунуудыг ойлгох. Энэ номонд нийтдээ аюулгүй байдлын нэмэлт сэдвүүд хамрагдсан болно. Жишээ нь Mandatory Access Control буюу Шаардлагатай Хандалтын Хяналт -д, Интернэт галт ханануудын талаар -д хэлэлцэгдсэн байгаа. Танилцуулга Аюулгүй байдал нь системийн администратораас эхэлж түүнтэй дуусдаг үйл ажиллагаа юм. BSD &unix; олон хэрэглэгчийн системүүд нь угаасаа зарим нэг аюулгүй байдлыг хангаж байдаг боловч тэдгээр хэрэглэгчдийг үнэнч байлгахыг эрмэлздэг аюулгүй байдлын нэмэлт арга замуудыг бүтээж түүний ажиллагааг хангах ажил нь сисадмины магадгүй ганц, хамгийн том үүргүүдийн нэг юм. Таныг аюулгүй болгосон зөвхөн тэр хэмжээгээр машинууд нь аюулгүй байдаг бөгөөд аюулгүй байдлын санаа зовнилууд нь хүний ая тухтай хялбар байлгах гэсэн хэрэгцээтэй үргэлж тэмцэлдэж байдаг. Ерөнхийдөө &unix; системүүд нь асар олон тооны зэрэгцээ процессуудыг ажиллуулах чадвартай бөгөөд эдгээр процессуудын ихэнх нь серверүүд болон ажилладаг — энэ нь гаднын зүйлс тэдэнтэй холбогдож ярилцах боломжтой гэсэн үг юм. Өчигдрийн миникомпьютерууд, мэйнфрэймүүдээс өнөөгийн ширээний компьютерууд болж компьютерууд нь сүлжээнд холбогдож сүлжээнүүд нь хоорондоо холбогдох тусам аюулгүй байдал нь улам илүү том асуудал болсоор байна. Системийн аюулгүй байдал нь сүйрүүлэхийг оролдсон эсвэл системийг ашиглагдахааргүй болгох гэсэн, гэхдээ root бүртгэлийг буулган авах (root-г эвдэх) оролдлого хийдэггүй, халдлагууд зэрэг төрөл бүрийн халдлагуудыг зогсоохтой бас хамааралтай юм. Аюулгүй байдлын санаа зовнилуудыг хэд хэдэн зэрэглэлд хувааж болно: Үйлчилгээг зогсоох халдлагууд. Хэрэглэгчийн бүртгэл буулган авалтууд. Хандаж болох серверүүдээр дамжин root-г буулган авах. Хэрэглэгчийн бүртгэлүүдээс дамжин root-г буулган авах. Арын хаалга үүсгэлт. DoS халдлагууд Үйлчилгээг Зогсоох (DoS) аюулгүй байдал DoS халдлагууд Үйлчилгээг Зогсоох (DoS) Үйлчилгээг Зогсоох (DoS) Үйлчилгээг зогсоох халдлага нь машиныг хэрэгцээтэй эх үүсвэрээс нь салгах үйлдэл юм. Ихэвчлэн DoS халдлагууд нь сүйрүүлэхийг оролдсон эсвэл машиныг түүн дээрх серверүүд болон сүлжээний стекийг эзэмдэн ашиглах боломжгүй болгодог балмадаар хүчлэх арга замууд юм. Зарим DoS халдлагууд нь сүлжээний стек дэх алдаануудыг ашиглан ганц пакетаар машиныг сүйрүүлэхийг оролддог. Үүнийг зөвхөн алдааны засварыг цөмд хийснээр засах боломжтой. Систем дээрх хөнөөлтэй нөхцөлд байх тэр серверийн дуудлагыг хязгаарладаг тохируулгуудыг зөв зааж серверүүд уруу хийсэн халдлагуудыг ихэвчлэн засаж болдог. Сүлжээний балмадаар хүчлэх халдлагуудын эсрэг арга хэмжээ авахад илүү төвөгтэй байдаг. Жишээ нь хууран мэхэлсэн пакетийн халдлагыг зогсоох бараг л боломжгүй, таны системийг Интернэтээс салгахад хүргэж болох юм. Энэ нь таны машиныг зогсоож чадахгүй байж болох боловч таны Интернэтийн холболтыг дүүргэж болно. аюулгүй байдал бүртгэл буулган авалтууд Хэрэглэгчийн бүртгэлийг буулган авах халдлага нь DoS халдлагаас илүү их тохиолддог. Одоо болтол олон сисадминууд стандарт telnetd, rlogind, rshd, болон ftpd серверүүдийг өөрсдийн машинууд дээр ажиллуулсаар байна. Анхдагчаар серверүүд нь шифрлэсэн холболт дээр ажилладаггүй. Ийм холболт дээр хэрэв та багагүй хэмжээний хэрэглэгчидтэй бөгөөд тэдгээр хэрэглэгчдээс нэг болон хэд хэд нь алсаас (энэ нь систем уруу нэвтрэн орох хамгийн нийтлэг тав тухтай арга юм) таны систем уруу нэвтрэн орж байгаа бол тэдгээр хэрэглэгчийн нууц үг дундаасаа сүлжээгээр шиншлэгдэн алдагдах боломжтой байдаг. Анхааралтай системийн админ тэр хэрэглэгчийн алсаас хандсан бүртгэлүүд дээрээс бүр амжилттай болсон нэвтрэлтүүдэд хүртэл сэжигтэй эхлэл хаягууд байгаа эсэхийг хайн шинжилдэг. Халдагч хэрэглэгчийн бүртгэлд хандаж чадсаны дараа root-г бас эвдэж чадна гэдгийг үргэлж бодож байх хэрэгтэй. Гэхдээ жинхэнэ амьдрал дээр бол сайн аюулгүй байдлыг хангаж нууцлаг болгосон байнга ажиллагааг нь хянаж байдаг систем дээр хэрэглэгчийн бүртгэлд хандах нь халдагч заавал ч үгүй root эрхэд хандаж чадна гэсэн үг биш юм. Энэ ялгааг зөв салгаж ойлгох хэрэгтэй. Учир нь root уруу хандах боломжгүй халдагч ерөнхийдөө өөрийн мөрийг баллаж нууж чаддаггүй бөгөөд тухайн хэрэглэгчийн файлуудыг замбараагүйтүүлэх эсвэл машиныг сүйрүүлэхээс илүүтэйг хийж чаддаггүй. Хэрэглэгчид нь сисадминууд шиг аюулгүй байдлын арга хэмжээг тэр болгон авдаггүй болохоор хэрэглэгчийн бүртгэлийн буулган авалт нь маш элбэг байдаг юм. аюулгүй байдал арын хаалганууд Машин дээрх root бүртгэлийг эвдэх боломжит олон аргууд байдгийг системийн администраторууд санаж байх хэрэгтэй. Халдагч нь root-н нууц үгийг мэдэж болно. Эсвэл халдагч root эрхээр ажилладаг серверт алдаа олж сүлжээгээр тэр сервер уруу дамжин орж root-г эвдэж болно. Эсвэл халдагч нь suid-root програмд алдаа байгааг мэдэж хэрэглэгчийн бүртгэлийг эвдэн орсныхоо дараа тэр алдаагаар дамжин root-г эвдэн орж болох юм. Хэрэв халдагч машин дээрх root-г эвдэх аргаа олсон бол заавал арын хаалга суулгах шаардлагагүй болж болох юм. root-н цоорхойнуудын олонхийг тухайн үед аль хэдийн олоод хаачихсан байдаг бөгөөд энэ үед халдагчид өөрийн мөрөө цэвэрлэхэд ихээхэн ажиллагаа шаарддаг болохоор ихэнх халдагчид арын хаалга суулгадаг. Арын хаалга нь систем уруу хандах root хандалтыг халдагчид амархнаар дахин олж авах боломжийг олгодог боловч энэ нь ухаалаг системийн администраторт халдлагыг амархнаар илрүүлэх боломжийг бас олгодог юм. Халдагчийн хамгийн эхлээд эвдэн орсон цоорхойг хааж чаддаггүй болохоор арын хаалга суулгахыг боломжгүй болгох нь магадгүй таны аюулгүй байдалд ашиггүй байж болох юм. Аюулгүй байдлын засварууд нь олон давхраатай сонгины хальс хандлагаар үргэлж шийдэгдэж байх шаардлагатай бөгөөд тэдгээрийг дараах маягаар зэрэглэж болно: root болон staff бүртгэлүүдийг нууцлаг/аюулгүй болгох. root–ажилладаг серверүүд болон suid/sgid хоёртын файлуудыг аюулгүй болгох. Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох. Нууц үгийн файлыг аюулгүй болгох. Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон файлын системүүдийг аюулгүй болгох. Системд хийгдсэн зохисгүй өөрчлөлтүүдийг түргэн илрүүлэх. Параной буюу хэт зовнил. Энэ бүлгийн дараагийн хэсэг нь дээр дурдсан зүйлсүүдийг илүү гүнзгийгээр авч үзэх болно. &os;-н аюулгүй байдлыг хангах нь аюулгүй байдал &os;-н аюулгүй байдлыг хангах нь Тушаалыг Протоколтой харьцуулахад (Command vs. Protocol) Энэ баримтын туршид бид тод текстээр програмыг monospaced фонтоор тусгай тушаалуудыг тэмдэглэх болно. Протоколууд ердийн фонт ашиглах болно. Тэмдэглэгээний энэ ялгаа нь ssh зэргийн хувьд ашигтай, учир нь энэ ssh нь протоколоос гадна бас тушаал юм. Үүнээс хойшх хэсгүүд нь түрүүчийн бүлгийн сүүлийн хэсэгт дурдсан таны &os; системийг аюулгүй болгох аргуудыг авч үзнэ. <username>root</username> бүртгэл болон staff бүртгэлүүдийг аюулгүй болгох su Эхлээд хэрэв та root бүртгэлийг аюулгүй болгоогүй бол staff бүртгэлүүдийг аюулгүй болгоход санаа зовсны хэрэггүй. Ихэнх системүүд root бүртгэлд нууц үг өгсөн байдаг. Таны эхний хийх зүйл бол нууц үг үргэлж эвдэгдэж болно гэдгийг бодох хэрэгтэй. Энэ нь та нууц үгээ устгах хэрэгтэй гэсэн үг биш юм. Нууц үг нь машин уруу консол хандалт хийхэд үргэлж хэрэгтэй байдаг. Энэ нь юу гэсэн үг вэ гэхээр та нууц үгийг консолоос гадна эсвэл болж өгвөл бүр &man.su.1; тушаалтай ашиглаж болохоор хийх ёсгүй гэсэн үг юм. Жишээ нь telnet эсвэл rlogin-р хийгдэх шууд root нэвтрэлтүүдийг хаах pty-уудын тохиргоог insecure буюу аюултай гэж /etc/ttys файлд заасан эсэхийг шалгаарай. Хэрэв бусад нэвтрэх үйлчилгээнүүд болох sshd зэргийг ашиглаж байгаа бол шууд root нэвтрэлтүүдийг бас хаасан эсэхийг шалгаарай. Та үүнийг /etc/ssh/sshd_config файлыг засварлан PermitRootLogin тохируулгыг NO болгон зааж өгөөрэй. Хандах арга бүр — FTP зэрэг үйлчилгээнүүдээр ихэвчлэн эвдлэн ордог болохыг бодолцох хэрэгтэй. Шууд root нэвтрэлтүүд зөвхөн системийн консолоор хийгдэхэд зөвшөөрөгдөх ёстой. wheel Мэдээж систем админы хувьд та root уруу орж чадаж байх ёстой болохоор бид хэдэн цоорхой үлдээдэг. Гэхдээ эдгээр цоорхойнууд нь нэмэлт нууц үг шалгаж ажилладаг байхаар бид хийдэг. root-г хандах боломжтой байлгах нэг арга нь тохирох staff бүртгэлүүдийг wheel бүлэгт (/etc/group файлд) нэмэх явдал юм. wheel бүлэгт оруулсан staff-ийн гишүүдэд root уруу su хийхийг зөвшөөрдөг. Та staff-ийн гишүүдийг тэдгээрийн нууц үгийн оруулгад wheel бүлэгт оруулан байрлуулж анхнаас нь wheel хандалт өгч хэзээ ч болохгүй. Staff бүртгэлүүдийг staff бүлэгт оруулах ёстой бөгөөд тэгээд дараа нь /etc/group файлын wheel бүлэгт нэмэх ёстой. Зөвхөн root хандалт заавал шаардлагатай тийм staff-ийн гишүүдийг wheel бүлэгт оруулах ёстой. Kerberos зэрэг жинхэнээ шалгуулж нэвтрэх аргыг ашиглаж байх тохиолдолд заавал wheel бүлэгт оруулалгүйгээр root бүртгэл дэх Kerberos-ийн .k5login файлыг ашиглаж root уруу &man.ksu.1; хийхийг зөвшөөрөх бас боломжтой байдаг. Энэ нь магадгүй давуу шийдэл байж болох юм. Учир нь хэрэв халдагч таны нууц үгийн файлыг олж аван staff бүртгэлийг эвдлэн орж чадах бол wheel арга нь халдагчид root-г эвдэх боломжийг олгосон хэвээр байдаг юм. wheel аргатай байх нь огт аргагүй байхаас илүү боловч энэ нь заавал ч үгүй хамгийн аюулгүй сонголт бас биш юм. Бүртгэлийг бүрэн түгжихийн тулд &man.pw.8; тушаалыг ашиглах хэрэгтэй: &prompt.root;pw lock staff Энэ нь &man.ssh.1;-ийг оролцуулаад хэрэглэгчийг ямар ч арга ашиглан нэвтрэн орохыг хориглоно. Бүртгэлүүдэд хандахыг хориглох өөр нэг арга бол нууцлагдсан нууц үгийг ганц * тэмдэгтээр солих явдал юм. Энэ тэмдэгт нь нууцлагдсан нууц үгтэй хэзээ ч таарахгүй бөгөөд хэрэглэгчийн хандалтыг хаах болно. Жишээ нь доор дурдсан staff бүртгэлийг: foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh Ийм болгон өөрчлөх хэрэгтэй: foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh Энэ нь foobar хэрэглэгчийг ердийн аргууд ашиглан нэвтрэн орох боломжийг хаадаг. Энэ хандалт хязгаарлах арга нь Kerberos ашиглаж байгаа сайтууд эсвэл хэрэглэгч &man.ssh.1; ашиглан түлхүүрүүд тохируулсан тохиолдлууд зэрэгт ажилладаггүй. Эдгээр аюулгүй байдлын арга замууд нь бас таныг илүү хязгаарласан серверээс арай бага хязгаарласан машин уруу нэвтрэн орж байна гэж тооцдог. Жишээ нь хэрэв таны гол хайрцаг чинь бүх л төрлийн серверүүд ажиллуулж байвал таны ажлын компьютер чинь ямрыг ч ажиллуулах ёсгүй. Өөрийн компьютерийг боломжийн аюулгүй болгохын тулд та ерөөсөө сервергүй болтол аль болох цөөн сервер ажиллуулах хэрэгтэй бөгөөд та нууц үгээр хамгаалагдсан дэлгэц хоослогч ажиллуулах хэрэгтэй. Мэдээж ажлын компьютер уруу физик хандалт өгвөл халдагч ямар ч төрлийн аюулгүй байдлыг та хангасан байлаа гэсэн эвдэж чадна. Энэ нь таны бодох ёстой асуудлын нэг юм. Гэхдээ эвдлэн оролтуудын олонхи нь алсаас сүлжээгээр дамжин таны ажлын компьютер эсвэл серверүүдэд физик хандалт байхгүй хүмүүсээс ирдэг гэдгийг та бас л бодолцох хэрэгтэй юм. KerberosIV Kereberos мэтийг ашиглах нь танд staff бүртгэлийн нууц үгийг нэг газар өөрчлөх эсвэл хаах боломжийг олгох бөгөөд staff-ийн гишүүдийн бүртгэл байж болох бүх машинууд дээр нэн даруй бас үйлчилдэг. Хэрэв staff-ийн гишүүний бүртгэл эвдэгдсэн бол түүний нууц үгийг бүх машинууд дээр нэн даруй өөрчлөх тэр боломжийг дутуу үнэлэх ёсгүй юм. Тусдаа байгаа нууц үгүүдийг N машинууд дээр өөрчлөх нь зовлонтой байдаг. Мөн та Kerberos-д нууц үг дахин өгөлтийг ноогдуулж болох бөгөөд Kerberos тасалбарыг хэсэг хугацааны дараа дуусдагаар хийж болохоос гадна Kerberos систем нь тодорхой хугацааны (жишээ нь сар бүр) дараа хэрэглэгчийг шинэ нууц үг сонгохыг шаарддагаар бас тохируулж болдог. root-ажилладаг серверүүд болон suid/sgid хоёртын файлуудыг аюулгүй болгох ntalk comsat finger sandboxes sshd telnetd rshd rlogind Хянамгай сисадмин илүү ч үгүй дутуу ч үгүй зөвхөн өөрийн хэрэгтэй серверүүдийг ажиллуулдаг. Гуравдагч талын серверүүд ихэвчлэн хамгийн алдаатай байх хандлагатай гэдгийг санаж байх хэрэгтэй. Жишээ нь imapd эсвэл popper серверийн хуучин хувилбарыг ажиллуулна гэдэг нь универсал root тасалбарыг бүх дэлхийд өгч байна гэсэн үг юм. Та няхуур шалгаагүй сервер битгий ажиллуул. Олон серверүүд заавал root эрхээр ажиллах шаардлагагүй байдаг. Жишээ нь ntalk, comsat, болон finger дэмонуудыг тусгай хэрэглэгчийн sandboxes буюу хамгаалагдсан хязгаарлагдмал орчинд ажиллуулах боломжтой байдаг. Хамгаалагдсан хязгаарлагдмал орчин нь асар их төвгүүдийг давж хийгээгүй л бол төгс биш бөгөөд өмнө дурдсан сонгины хандлагаар аюулгүй байдалд хандах нь хэвээр байна: хэрэв хэн нэгэн нь хамгаалагдсан хязгаарлагдмал орчинд ажиллаж байгаа серверт эвдэн орж чадсан ч гэсэн тэд хамгаалагдсан хязгаарлагдмал орчныг бас эвдэн гарах хэрэг болно. Аль болох олон давхаргыг халдагч эвдлэх ёстой болох тусам тэдгээрийн амжилттай болох нь улам багасах болно. Урьд нь root цоорхойнууд нь системийн үндсэн серверүүдээс авахуулаад бараг л бүх root ажилладаг сервер дээр олдож байсан. Хэрэв таны ажиллуулдаг машин уруу хүмүүс зөвхөн sshd ашиглан нэвтэрдэг бөгөөд telnetd, rshd эсвэл rlogind хэзээ ч ашиглан нэвтэрдэггүй бол эдгээр үйлчилгээнүүдийг хаагаарай! Одоо &os; нь ntalkd, comsat, болон finger үйлчилгээнүүдийг хамгаалагдсан хязгаарлагдмал орчинд анхдагчаар ажиллуулдаг. Хамгаалагдсан хязгаарлагдмал орчинд ажиллуулж болох өөр нэг програм нь &man.named.8; юм. /etc/defaults/rc.conf нь named-г хамгаалагдсан хязгаарлагдмал орчинд ажиллуулахад шаардлагатай нэмэлт өгөгдлүүдийг тайлбар хэлбэрээр агуулсан байдаг. Таны шинэ систем эсвэл байгаа системээ шинэчилж байгаагаас хамааран тэдгээр хамгаалагдсан хязгаарлагдмал орчинд ашиглагдах тусгай хэрэглэгчийн бүртгэлүүд суулгагдаагүй байж болох юм. Хянамгай сисадмин судалгаа хийж серверүүдийг хамгаалагдсан хязгаарлагдмал орчинд аль болох ажиллуулдаг. sendmail Хамгаалагдсан хязгаарлагдмал орчинд ерөнхийдөө ажилладаггүй хэд хэдэн серверүүд байдаг: sendmail, popper, imapd, ftpd, болон бусад. Эдгээрийн зарим шиг бас өөр серверүүд байдаг боловч тэдгээрийг суулгах нь таны хүсэж байгаагаас илүү (амархан байх гэсэн асуудал энд сөхөгдөж байна) их ажиллагаа шаардаж магадгүй юм. Та эдгээр серверүүдийг магадгүй root эрхээр ажиллуулж тэдгээрт учирч болох эвдрэн оролтуудыг илрүүлэх өөр арга замуудад найдах хэрэгтэй болж болох юм. Системийн өөр нэг том боломжтой root цоорхойнууд бол системд суусан suid-root болон sgid хоёртын файлууд юм. rlogin зэрэг эдгээрийн ихэнх нь /bin, /sbin, /usr/bin, эсвэл /usr/sbin сангуудад байрладаг. Юу ч 100% аюулгүй байдаггүй боловч системийн анхдагч suid болон sgid хоёртын файлууд нь боломжийн хэрээр аюулгүй гэж тооцогддог. Гэсэн хэдий ч эдгээр хоёртын файлуудад root цоорхойнууд үе үе олддог. xterm-г (энэ нь ихэвчлэн suid байдаг) эмзэг болгосон root цоорхойнууд 1998 онд Xlib-д олджээ. Харамсахаасаа өмнө аюулгүй байж байсан нь дээр учраас хянамгай сисадмин зөвхөн staff ажиллуулах ёстойгоор staff зөвхөн хандаж чадах тусгай бүлэгт зөвшөөрч suid хоёртын файлуудыг хязгаарладаг бөгөөд хэн ч ашигладаггүй suid хоёртын файлуудыг ажиллуулж болохгүй болгодог (chmod 000). Дэлгэцгүй серверт ер нь xterm хоёртын файл хэрэгцээгүй юм. Sgid хоёртын файлууд нь бас л аюултай юм. Хэрэв халдагч sgid-kmem хоёртын файлыг эвдэж чадвал тэр /dev/kmem-г уншиж чадах бөгөөд ингэснээр нууц үгтэй дурын бүртгэлийг эвдэн орж шифрлэсэн нууц үгийн файлыг уншихад хүргэдэг. Бас kmem бүлгийг эвдсэн халдагч secure буюу аюулгүй аргаар дамжин нэвтрэн орсон хэрэглэгчдийн ашиглаж байгаа pty-уудаар илгээгдсэн гарын товчнуудын даралтуудыг хянаж чаддаг. tty бүлгийг эвдсэн халдагч бараг дурын хэрэглэгчийн tty-д бичиж чадна. Хэрэв хэрэглэгч гар дуурайх боломж бүхий терминал програм эсвэл эмулятор ажиллуулж байгаа бол хэрэглэгчийн терминалыг тушаал буцаан харуулахаар болгодог өгөгдлийн урсгалыг халдагч үүсгэж дараа нь тэр тушаалыг тэр хэрэглэгчийн эрхээр ажиллуулдаг. Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох нь ихэвчлэн хамгийн хэцүү байдаг. Та өөрийн staff-д ширүүн хандалтын хязгаарлалтууд оногдуулж тэдгээрийн нууц үгүүдийг од болгож болох боловч та ердийн хэрэглэгчийн бүртгэлүүдийг яг ингэж хязгаарлаж чадахгүй байж болох юм. Хэрэв та хангалттай хяналттай байх юм бол таны аз болж хэрэглэгчийн бүртгэлүүдийг зөвөөр аюулгүй болгож чадна. Хэрэв үгүй бол та тэдгээр бүртгэлүүдийг хянахдаа ердөө л илүү сонор сэрэмжтэй байх хэрэгтэй. ssh болон Kerberos-г хэрэглэгчийн бүртгэлүүдэд ашиглах нь нэмэлт удирдлага болон техникийн дэмжлэг шаардлагатайгаас болоод илүү асуудалтай байдаг боловч энэ нь шифрлэсэн нууц үгийн файлыг бодох юм бол маш сайн шийдэл хэвээр байдаг. Нууц үгийн файлыг аюулгүй болгох Цорын ганц итгэлтэй арга бол аль болох олон нууц үгүүдийг од болгон тэдгээр бүртгэлүүдэд хандахын тулд ssh эсвэл Kerberos ашигла. Шифрлэгдсэн нууц үгийн файлыг (/etc/spwd.db) зөвхөн root уншиж чаддаг боловч халдагч root-бичих хандалт олж авч чадаагүй ч гэсэн тэр файлд унших эрх олж авах боломжтой байж болох юм. Таны аюулгүй байдлын скриптүүд нууц үгийн файлд хийгдсэн өөрчлөлтүүдийг үргэлж шалгаж тайлагнах шаардлагатай (доорх Файлын бүрэн бүтэн байдлыг шалгах хэсгийг үзнэ үү). Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон файлын системүүдийг аюулгүй болгох Хэрэв халдагч root-г эвдсэн бол тэр юуг ч хийж чадах боловч зарим ашиг сонирхлууд байдаг. Жишээ нь орчин үеийн ихэнх цөмүүдэд пакет шиншлэх төхөөрөмжийн драйвер бүтээгдсэн байдаг. &os;-д энэ нь bpf төхөөрөмж гэж нэрлэгддэг. Халдагч ердөө буулган авсан машин дээрээ пакет шиншлэгчийг ажиллуулахыг оролддог. Та халдагчид энэ боломжийг өгөх хэрэггүй бөгөөд ихэнх системүүдэд bpf төхөөрөмжийг эмхэтгэн оруулах шаардлагагүй юм. sysctl Гэхдээ bpf төхөөрөмжийг хаасан ч гэсэн та /dev/mem болон /dev/kmem файлуудад бас санаа тавих хэрэгтэй. Энэнээс болоод халдагч түүхий (raw) төхөөрөмжүүдэд бичиж чадсан хэвээр байна. Мөн цөмийн бас нэг боломж болох модуль ачаалагч гэж нэрлэгддэг &man.kldload.8; байдаг. Самбаатай халдагч KLD модуль ашиглаад өөрийн bpf төхөөрөмж эсвэл бусад шиншлэх төхөөрөмжийг ажиллаж байгаа цөмд суулгадаг. Эдгээр асуудлуудаас зайлсхийхийн тулд та цөмийг илүү өндөр аюулгүй байдлын - түвшинд ядаж аюулгүйн түвшин 1-д ажиллуулах хэрэгтэй. Аюулгүй түвшин - sysctl тушаалаар kern.securelevel - хувьсагчийн тусламжтай тохируулагдаж болно. Аюулгүйн түвшинг 1 болгосны дараа - түүхий төхөөрөмжүүдэд бичих хандалт хийхийг хориглох бөгөөд schg - зэрэг chflags тугууд үйлчлэх болно. Мөн та - чухал эхлүүлэх хоёртын файлууд, сангууд болон скрипт файлууд, ер нь аюулгүйн - түвшин заагдах хүртэл ажиллаж байгаа бүгдэд schg туг - байгаа эсэхийг шалгах хэрэгтэй. Энэ нь хэтэрхий болж болох бөгөөд - таныг илүү өндөр аюулгүйн түвшинд ажиллаж байгаа үед системийг шинэчлэхийг - бүр илүү төвөгтэй болгодог юм. Та буулт хийж системийн бүх файл болон санд - schg тугийг зааж өгөлгүйгээр системийг өндөр аюулгүйн - түвшинд ажиллуулж болох юм. Өөр нэг боломж нь / - болон /usr санг ердөө л зөвхөн уншихаар холбох явдал - юм. Хамгаалах зүйлдээ хэт ширүүн байх нь булаан эзлэлтийн бүх чухал илрүүлэлтийг - бас болиулж болохыг санахад илүүдэхгүй. + түвшинд ядаж аюулгүйн түвшин 1-д ажиллуулах хэрэгтэй. + + Цөмийн аюулгүй байдлын түвшинг янз бүрийн аргаар тохируулж болно. + Ажиллаж байгаа цөмийн аюулгүй байдлын түвшинг нэмэгдүүлэх хялбар алга бол + цөмийн kern.securelevel хувьсагчийг + sysctl ашиглан өөрчлөх явдал юм: + + &prompt.root; sysctl kern.securelevel=1 + + Анхдагчаар &os; цөм аюулгүй байдлын -1 түвшинтэй ачаалдаг. Аюулгүй + байдлын түвшинг администратор эсвэл эхлүүлэх скриптүүд дэх тохиргооноос болоод + &man.init.8;-ээр өөрчлөөгүй л бол -1 хэвээр байх болно. + /etc/rc.conf файлд kern_securelevel_enable + хувьсагчийг YES ба kern_securelevel хувьсагчийн + утгыг аюулгүй байдлын хүссэн түвшин рүүгээ болгон тохируулж системийг эхлүүлэх + үед аюулгүй байдлын түвшинг нэмэгдүүлж болно. + + Эхлүүлэх скриптүүд дөнгөж дуусаад байх үед &os; системийн аюулгүй + байдлын анхдагч түвшин -1 байдаг. Үүнийг insecure mode + буюу аюулгүй байдлыг хангаагүй горим гэдэг бөгөөд учир нь + хувиршгүй байлын тугуудыг болиулах, бүх төхөөрөмжөөс уншиж эсвэл тэдгээр рүү + бичих гэх зэргийг хориогүй байдаг. + + Аюулгүй байдлын түвшинг 1 эсвэл илүү өндөр утгаар тохируулсны дараа + зөвхөн нэмэх болон хувиршгүй файлууд идэвхжиж тэдгээрийг болиулах боломжгүй + болон түүхийн төхөөрөмжүүдэд хандахыг хориглодог. Илүү өндөр түвшингүүд + бүр илүү олон үйлдлүүдийг хязгаарладаг. Төрөл бүрийн аюулгүй байдлын түвшнүүдийн + үйлчилгээний талаарх дэлгэрэнгүй тайлбарыг &man.security.7; гарын авлагын + хуудсыг уншина уу (&os; 7.0-с хуучин хувилбаруудын хувьд &man.init.8; гарын + авлагын хуудсыг уншина уу). + + + Аюулгүйн түвшинг 1 эсвэл илүү өндөр түвшнээр дээшлүүлэх нь X11 + (/dev/io руу хандах хандалт хаалттай байна) эсвэл + &os;-ийн бүтээлтийг эхээс суулгах (процессын installworld + хэсэг зарим файлуудын зөвхөн нэмэгдэх болон хувиршгүй тугуудыг түр зуур + өөрчлөхийг шаарддаг) болон бусад цөөн тохиолдлуудын хувьд асуудлууд гаргаж + болох юм. Заримдаа, жишээ нь X11-ийн хувьд ачаалах явцад &man.xdm.1;-ийг + нэлээн эрт аюулгүйн түвшин бага байгаа үед нь ажиллуулж энэ асуудлыг тойрон + гарах боломжтой байж болох юм. Үүнтэй адил тойрон гарах арга замууд нь бүх + аюулгүй байдлын түвшингүүд эсвэл тэдгээрийн мөрдөж шаарддаг боломжит бүх + хязгаарлалтуудын хувьд боломжтой биш байж болох юм. Урьдчилаад бага зэрэг + төлөвлөх нь зүйтэй байдаг. Аюулгүйн түвшин бүр системийн хэрэглээг нэлээн + багасгах боломжтой байдаг учир тэдгээртэй хамааралтай хязгаарлалтуудыг + ойлгох нь чухал юм. Энэ нь бас анхдагч тохиргоог сонгохыг илүү хялбар болгож + санамсаргүй явдлаас урьдчилан сэргийлэх болно. + + + Хэрэв цөмийн аюулгүйн түвшин 1 эсвэл түүнээс илүү утгаар дээшлүүлэгдсэн + бол schg тугийг чухал эхлүүлэх хоёртын файлууд, сангууд + болон скрипт файлууд (өөрөөр хэлбэл аюулгүйн түвшин тохируулагдах хүртэлх ажиллах + бүх файлууд) дээр тохируулах нь ашигтай байж болох юм. Энэ нь хэтэрхий хийгдэж + байж болох бөгөөд аюулгүйн өндөр түвшинд ажиллаж байхад системийг шинэчлэх үйл + явцыг илүү хэцүү болгодог. Арай бага хязгаарлалттай өөр нэг боломж нь + системийг илүү өндөр аюулгүйн түвшинд ажиллуулж гэхдээ schg + тугийг системийн файл болон сан бүр дээр тохируулахгүй байх явдал юм. + Өөр нэг боломж нь / болон /usr + санг зөвхөн уншигдахаар холбох явдал юм. Юу зөвшөөрөгдсөн байх дээр хэтэрхий + чанга байх нь халдлага илрүүлэлтийн бүх чухал зүйлсийг хязгаарлаж болох юм. Файлын бүрэн бүтэн байдлыг шалгах нь: Хоёртын файлууд, Тохиргооны файлууд, гэх мэт. Тэр мөч ирэхэд, та зөвхөн системийн гол тохиргоо болон хяналтын файлуудаа ая тухын хүчин зүйл урьтахаас хамаагүй өмнө хамгаалж чадна. Жишээ нь chflags тушаал ашиглан / болон /usr сангууд дахь ихэнх файлуудад schg битийг тохируулах нь магадгүй үр ашиггүй байж болох бөгөөд учир нь ингэснээр файлуудыг хамгаалахын хажуугаар бас илрүүлэх цонхыг хаадаг юм. Таны аюулгүй байдлын сонгины сүүлийн давхарга нь илрүүлэлт бөгөөд энэ нь хамгийн чухал юм. Хэрэв та боломжит халдагчдыг илрүүлж чадахгүй л бол аюулгүй байдлын бусад үлдсэн асуудлуудын талаар бодоод ч бараг хэрэггүй юм (эсвэл бүр дэмий юм, аюулгүй байдлыг танд буруу ойлгуулахад хүргэдэг). Сонгины ажлын хагас нь халдагчийг үйлдэл дээр нь барихын тулд түүнийг зогсоохын оронд харин удаашруулах явдал юм. Халдлагыг илрүүлэх хамгийн сайн арга бол өөрчлөгдсөн, алга болсон, эсвэл гэнэтийн файлуудыг хайх явдал юм. Өөрчлөгдсөн файлуудыг хайх хамгийн сайн арга бол тэдгээрийг өөр (ихэвчлэн төвлөрсөн) хязгаарлагдмал хандалттай системээс хайх явдал юм. Өөрийн аюулгүй байдлын скриптийг нэмэлт аюулгүй байдал хангасан хязгаарлагдмал хандалттай систем дээр бичих нь тэдгээрийг боломжит халдагчдад бараг харагдуулдаггүй бөгөөд энэ нь чухал юм. Давуу талыг хамгийн ихээр авахын тулд ерөнхийдөө хязгаарлагдмал хандалттай хайрцагт бусад машинуудад хандах тэр ач холбогдолтой хандалтыг өгөх хэрэгтэй. Үүнийг ихэвчлэн бусад машинуудын зөвхөн унших NFS экспортыг хязгаарлагдмал хандалттай хайрцагт өгөх эсвэл ssh түлхүүр хослолыг тохируулж хязгаарлагдмал хандалттай хайрцгийг бусад машинууд уруу ssh хийхийг зөвшөөрөх замаар хийдэг. Өөрийн сүлжээний урсгалыг тооцохгүй юм бол NFS нь хамгийн харагддаггүй арга юм — энэ нь клиент хайрцаг бүр дэх файлын системүүдийг монитор хийхийг танд зөвшөөрч бараг л илэрдэггүй. Хэрэв таны хязгаарлагдмал хандалттай сервер нь клиент хайрцагнууд уруу hub буюу салаалагч эсвэл чиглүүлэлтийн хэд хэдэн давхаргаар дамжин холбогдсон бол NFS арга нь хэтэрхий аюултай (сүлжээний хувьд) байж болох бөгөөд ssh-ийг ашиглах нь түүний гаргадаг аудит мөрийн замуудтай байсан ч гэсэн магадгүй илүү сонголт байж болох юм. Монитор хийгдэх клиент систем уруу хандахад хамгийн багаар бодоход унших эрхийг та хязгаарлагдмал хандалттай хайрцагт өгсний дараа яг мониторыг хийхдээ скрипт бичих хэрэгтэй. Өгөгдсөн NFS холболтод &man.find.1; болон &man.md5.1; зэрэг энгийн системийн хэрэгслүүд ашиглан та скриптүүд бичиж болно. Клиент хайрцгийн файлуудад өдөрт нэг удаа физикээр md5 хийж /etc болон /usr/local/etc сангууд дахь хяналтын файлуудыг бүр илүү давтамжтайгаар шалгаж байх нь зүйтэй юм. Хязгаарлагдмал хандалттай машины зөв гэж тооцсон md5 мэдээлэлтэй харьцуулахад тарахгүй файлууд олдвол сисадминд үүнийг очиж шалгахыг хашгиран мэдээлэх ёстой. Аюулгүй байдлын сайн скрипт нь тохирохгүй suid хоёртын файлууд болон / болон /usr зэрэг системийн хуваалтууд дээрх шинээр үүссэн эсвэл устгагдсан файлуудыг бас шалгадаг. NFS биш ssh-ийг ашиглаж байх үед аюулгүй байдлыг скрипт бичих нь бүр илүү хэцүү байдаг. Та скриптүүдийг харагдуулж ажиллуулахын тулд тэдгээрийг клиент хайрцаг уруу үндсэндээ scp хийх хэрэгтэй бөгөөд аюулгүй байдлаа бодох юм бол та тэдгээр скриптүүдийн ашигладаг хоёртын файлуудыг (find гэх зэрэг) бас scp хийх хэрэгтэй юм. Клиент хайрцаг дээрх ssh клиент аль хэдийн эвдэгдсэн байж болох юм. Аюултай холболтоор ажиллаж байгаа бол ssh-г ашиглах нь шаардлагатай байж болох боловч бас түүнтэй ажиллахад бүр илүү хэцүү байдаг юм. Аюулгүй байдлын сайн скрипт нь .rhosts, .shosts, .ssh/authorized_keys гэх зэрэг MD5 шалгалтын хүрээний гадуур байх хэрэглэгч болон staff-ийн гишүүдийн хандалтын тохиргооны файлууд дахь өөрчлөлтүүдийг бас шалгадаг. Хэрэв та асар их хэрэглэгчийн дискний зайтай бол тэдгээр хуваалтууд дээр байгаа файл бүр дээр ажиллахад хэт удаж болох юм. Энэ тохиолдолд suid хоёртын файлуудыг хаах холболтын тугуудыг зааж өгөх нь зүйтэй юм. nosuid нь таны хайж байгаа тэр тохируулга юм. Энэ давхаргын зорилго нь эвдлэн оролтын оролдлогуудыг амжилттай эсвэл амжилтгүй болсноос үл хамааран илрүүлэх явдал учраас ямар ч гэсэн ядаж долоо хоногт нэг удаа та тэдгээр файлуудыг магадгүй шалгаж байх хэрэгтэй юм. Процессийн бүртгэл хийх нь (&man.accton.8;-г үзнэ үү) эвдлэн оролтын дараах үнэлэх арга замууд болон тусалж болох харьцангуй бага ачаалал бүхий үйлдлийн системийн боломж юм. Энэ нь эвдлэн орсны дараа файлыг хөндөөгүй хэвээр гэж үзэн халдагч систем уруу хэрхэн эвдлэн орсныг мөрдөхөд ялангуяа ашигтай байдаг. Эцэст нь аюулгүй байдлын скриптүүд нь бүртгэлийн файлуудыг процесс хийх ёстой бөгөөд бүртгэлүүд өөрсдөө аль болох аюулгүй байдлаар үүсгэгдэх ёстой бөгөөд алсын syslog нь их ашигтай байж болох юм. Халдагч өөрийн мөрийг арилгахыг оролдох бөгөөд эхний эвдлэн оролтын арга болон хугацааг мөрдөхөд сисадмины хувьд бүртгэлийн файлууд нь маш чухал байдаг юм. Бүртгэлийн файлуудын байнгын бичлэгийг хадгалах нэг арга нь системийн консолыг сериал порт уруу ажиллуулж консолуудыг хянаж аюулгүй машин дээр мэдээллийг цуглуулах явдал юм. Параной буюу хэт зовнил Бага зэргийн хэт зовнил буруудахгүй. Дүрэм болгож тав тухтай байдлыг алдагдуулдаггүй дурын тооны аюулгүй байдлын боломжуудыг сисадмин нэмж болох бөгөөд зарим анхаарлыг бодолцон тав тухтай байдалд нөлөөлөх аюулгүй байдлын боломжуудыг бас нэмж болох юм. Бүр илүү чухал нь аюулгүй байдлын администратор үүнийг бага зэрэг хольж хэрэглэж болно — хэрэв та энэ баримтад дурдсан заавруудыг үгчлэн ашиглавал энэ баримтыг уншсан ирээдүйн халдагчид та өөрийн арга замуудыг заан өгч байна гэсэн үг юм. Үйлчилгээг Зогсоох Халдлагууд Үйлчилгээг Зогсоох (DoS) Энэ хэсэг нь Үйлчилгээг Зогсоох халдлагуудыг хамарна. DoS халдлага нь ихэвчлэн пакетийн халдлага байдаг. Таны сүлжээг дүүргэж байгаа орчин үеийн хууран мэхэлсэн пакетийн халдлагуудын эсрэг нэг их юм хийж чадахгүй ч гэсэн халдлагууд таны серверүүдийг унагахгүйн тулд та ерөнхийдөө хохирлыг хязгаарлаж болно: Серверийн fork хийлтийг хязгаарлах. Springboard буюу бусад халдлагуудыг хязгаарлах (ICMP хариу халдлагууд, ping цацалт, гэх мэт.). Цөмийн чиглүүлэлтийн кэшийг хэт ачаалах. Нийтлэг DoS халдлагын дүр зураг бол fork хийгдэж байгаа серверт халдаж түүнээр асар их хүүхэд процесс үүсгүүлж эцсийн эцэст хост системийн хувьд санах ой, файлын тодорхойлогчууд гэх мэтүүд дуусч зогсоход хүргэдэг. inetd (&man.inetd.8;-г үзнэ үү) нь энэ төрлийн халдлагыг хязгаарлах хэд хэдэн тохируулгатай. Машиныг зогсоохоос хамгаалах боломжтой боловч ерөнхийдөө үйлчилгээг халдлагад өртүүлэхгүй байх боломжгүйг энд тэмдэглэх нь зүйтэй юм. inetd гарын авлагын хуудсыг анхааралтай уншиж , , болон тохируулгуудад ялангуяа анхаарлаа хандуулаарай. Хууран мэхэлсэн IP халдлагууд нь inetd дахь тохируулгыг хуурах учраас ихэвчлэн тохируулгуудын хослолыг ашиглах шаардлагатай. Зарим дан серверүүд өөрийн fork хийгдэхийг хязгаарлах параметрүүдтэй байдаг. Sendmail нь тохируулгатай байдаг бөгөөд энэ нь Sendmail-ийг ачаалал хязгаарлах тохируулгатай ажиллуулж ачааллын хоцрогдол үүсгэснээс хавьгүй илүүтэйгээр ажилладаг. Та Sendmail-г ажиллуулахдаа хүссэн ачааллыг даахаар гэхдээ компьютерийг унагахаар их хэмжээний тоогоор Sendmail-үүдийг ажиллуулах биш түүнээс багаар MaxDaemonChildren параметрийг хангалттай өндрөөр тавьж өгөх хэрэгтэй. Мөн sendmail-ийг дарааллын горимоор () ажиллуулах болон дэмонг (sendmail -bd) дараалалтай (sendmail -q15m) ажиллуулдгаас тусад нь ажиллуулах нь чухал юм. Хэрэв та шууд илгээх горимыг хүсэж байгаа бол та дарааллыг зэргээр бүр бага интервалаар ажиллуулах боломжтой боловч MaxDaemonChildren тохируулгыг боломжийн утгаар хоорондоо холбоотой амжилтгүйтлүүдээс sendmail-ийг хамгаалахын тулд зааж өгсөн эсэхээ шалгаарай. Syslogd-д шууд халдаж болох учраас аль болох тохируулгыг эсвэл тохируулгыг ашиглахыг танд зөвлөдөг. Шууд халдлага хийгдэж болох TCP Wrapper-ийн буцах identd зэрэг буцан холбогддог үйлчилгээнүүдийн хувьд та маш хянамгай байх хэрэгтэй. Ийм учраас та TCP Wrapper-ийн буцах identd боломжийг ерөнхийдөө ашиглах хэрэггүй юм. Та өөрийн захын чиглүүлэгчүүд дээрээ дотоод үйлчилгээнүүд уруугаа гаднаас хандуулахгүй болгож галт ханаар хамгаалах нь зүйтэй юм. Үүний цаадах санаа нь гаднаас ирж болзошгүй сүлжээ дүүргэх халдлагаас өөрийн LAN-г хамгаалах явдал бөгөөд сүлжээн дээр тулгуурласан root эрхийг буулгахаас дотоод үйлчилгээнүүдийг хамгаалах зүйлс тийм их биш юм. exclusive буюу хамааруулаагүй галт ханыг үргэлж тохируулах хэрэгтэй, өөрөөр хэлбэл A, B, C, D болон M-Z портуудаас бусад бүгдийг галт ханаар хамгаалах хэрэгтэй. Ингэснээр та named (хэрэв та бүсийн хувьд анхдагч бол), ntalkd, sendmail болон бусад Интернэтээс хандах үйлчилгээнүүд зэрэг зарим нэг тусгай үйлчилгээнүүдийн портуудаас бусад бүх бага дугаарын портуудыг галт ханаар хамгаалж чадах юм. Хэрэв та галт ханыг өөр аргаар — inclusive буюу хамааруулсан эсвэл зөвшөөрсөн галт хана маягаар тохируулахыг оролдвол хэд хэдэн үйлчилгээнүүдийг хаахаа мартаж магадгүй юм, эсвэл та шинэ дотоод үйлчилгээ нэмээд галт ханаа шинэчлэхээ мартаж болох юм. Та галт хана дээр зөвшөөрсөнтэй адил үйлдлийг нэвтрүүлэхийн тулд бага дугаарын портуудыг нээлгүйгээр өндөр дугаарын портуудыг онгойлгож болох юм. Мөн &os; нь динамик холболтод хэрэглэгддэг портуудыг sysctl-ийн төрөл бүрийн net.inet.ip.portrange хувьсагчуудаар (sysctl -a | fgrep portrange) хянах боломжийг танд олгодгийг бас тэмдэглэх нь зүйтэй юм. Энэ нь бас таны галт ханын тохиргооны төвөгтэй байдлыг амарчилдаг юм. Жишээ нь та ердийн 4000-аас 5000 хүртэлх портууд болон 49152-оос 65535 хүртэлх өндөр дугаарын портуудыг ашигладаг бол 4000-аас бага бүгдийг өөрийн галт хана дээр хаах хэрэгтэй (мэдээж Интернэтээс ханддаг хэдэн тусгай портуудаас бусад). Өөр нийтлэг DoS халдлагуудын нэг нь springboard халдлага юм — сервер, дотоод сүлжээ эсвэл бусад машиныг хариу үйлдэл хийхийг нь ихэсгэж хэт ачаалахад хүргэдэг халдлага юм. Ийм маягийн хамгийн нийтлэг халдлага нь ICMP ping broadcast буюу цацалт юм. Халдагч таны LAN-ий цацах хаяг уруу илгээсэн ping пакетийнхаа эхлэл IP хаягийг халдахыг хүсэж байгаа машиныхаа IP хаягаар сольж хуурдаг. Хэрэв таны захын чиглүүлэгчүүд цацах хаяг уруу илгээх ping пакетуудыг зогсоохоор тохируулагдаагүй бол таны LAN хангалттай хариу үүсгэн хууран мэхэлсэн эхлэл хаяг уруу илгээж, ялангуяа халдагч хэдэн арван цацах хаягууд уруу өөр өөр хэдэн арван сүлжээнүүдээр дамжин энэ башир аргаа ашигласан үед, хохирогчийг дүүргэдэг. 120 мегабайтаас илүү хэмжээний цацах халдлага одоогоор хэмжигдээд байна. Энэ төрлийн хоёр дахь нийтлэг халдлага нь ICMP-ийн алдаа тайлагнах системийн эсрэг халдлага юм. ICMP алдааны мэдэгдэл үүсгэдэг пакетуудыг бүтээж халдагч серверийн орж ирж байгаа сүлжээг дүүргэж ингэснээр серверийг өөрийн гарах сүлжээг ICMP хариунуудаар дүүргэхэд хүргэдэг. Энэ төрлийн халдлага нь ялангуяа хэрэв сервер үүсгэж байгаа ICMP хариунуудаа хангалттай хурднаар шавхан гаргаж чадахгүй байгаа бол серверийг санах ойгүй болгож сүйрүүлж бас болох юм. sysctl-ийн net.inet.icmp.icmplim хувьсагчийг ашиглан эдгээр халдлагуудыг хязгаарлах хэрэгтэй. Springboard төрлийн халдлагуудын сүүлийн гол ангилал нь udp цуурай үйлчилгээ зэрэг зарим дотоод inetd үйлчилгээнүүдтэй холбоотой юм. Халдагч UDP пакетийг хууран мэхэлж A болон B сервер нь хоёулаа таны LAN-д байгаа тийм A серверийн цуурай порт дээрх эхлэл хаягаар болон төгсгөл хаягийг B серверийн цуурай порт дээрх хаягаар сольдог. Уг хоёр сервер дараа нь энэ ганц пакетийг хоорондоо шидэлцдэг. Эдгээр серверүүд болон тэдгээрийн LAN-г энэ маягаар халдагч хэдхэн пакетуудыг хатган оруулан хэт ачаалж чаддаг. Үүнтэй адил асуудлууд дотоод chargen портод бас байдаг. Чадварлаг сисадмин эдгээр бүх дотоод inetd тест үйлчилгээнүүдийг хаадаг. Хууран мэхэлсэн пакетийн халдлагуудыг цөмийн чиглүүлэлтийн кэшийг хэт ачаалахад хэрэглэж болдог. net.inet.ip.rtexpire, rtminexpire, болон rtmaxcache sysctl параметрүүдийг үзнэ үү. Дурын эхлэл IP хаягийг ашигласан хууран мэхэлсэн пакетийн халдлага нь чиглүүлэлтийн хүснэгтэд түр зуур кэш хийгдсэн чиглүүлэлтийг цөмөөр үүсгүүлэхэд хүргэдэг бөгөөд энэ нь netstat -rna | fgrep W3 тушаалаар харагддаг. Эдгээр чиглүүлэлтүүд нь ихэвчлэн 1600 секунд орчим хугацааны дотор дуусдаг. Хэрэв цөм кэш хийгдсэн чиглүүлэлтийн хүснэгт хэтэрхий том болсныг илрүүлэх юм бол rtexpire динамикаар багасгадаг боловч rtminexpire-с бага болтол хэзээ ч багасгадаггүй. Хоёр асуудал байдаг: Бага ачаалагдсан сервер гэнэт халдлагад өртөхөд цөм хангалттай хурдан хариу үйлдэл хийдэггүй. rtminexpire хувьсагч нь үргэлжилсэн халдлагыг цөм дааж чадахаар хангалттай бага байдаггүй. Хэрэв таны серверүүд Интернэтэд T3 эсвэл илүү хурдаар холбогдсон бол &man.sysctl.8;-оор rtexpire болон rtminexpire хувьсагчуудыг хоёуланг гараар дарж бичихдээ хянамгай байх хэрэгтэй. Аль ч параметрийг (машиныг сүйрүүлэхийг та хүсээгүй л бол) хэзээ ч битгий 0 болгоорой. Эдгээр параметрүүдийг хоёуланг нь 2 секунд болгох нь чиглүүлэлтийн хүснэгтийг халдлагаас хамгаалахад хангалттай байх ёстой. Kerberos болон SSH-тэй холбоотой хандалтын асуудлууд ssh KerberosIV Хэрэв та Kerberos болон ssh-г хоёуланг ашиглахаар бол цөөн хэдэн асуудлуудыг дурдах хэрэгтэй. Kerberos 5 нь жинхэнийг шалгах маш сайн нэвтрэлтийн протокол боловч түүнийг ашигласан telnet болон rlogin-д байдаг алдаанууд нь энэ хоёр програмыг хоёртын урсгалтай ажиллахад тохиромжгүй болгодог. Мөн тохируулгыг ашиглахгүй л бол анхдагчаар Kerberos нь сессийг шифрлэдэггүй. ssh нь бүгдийг шифрлэдэг. Ssh нь анхдагчаар шифрлэсэн түлхүүрүүдээ дамжуулдгаас бусад бүх л талаараа зэгсэн сайн ажилладаг. Энэ нь юу гэсэн үг вэ гэхээр та хэрэв системийн бусад хэсэгт хандах боломж олгодог түлхүүрүүд бүхий аюулгүй ажлын компьютертай бөгөөд та аюултай машин уруу ssh хийвэл таны түлхүүрүүд ашиглагдах боломжтой гэсэн үг юм. Яг түлхүүрүүд нь өөрсдөө ил гардаггүй боловч ssh нь таны нэвтэрсэн хугацааны туршид зориулж дамжуулах порт суулгадаг бөгөөд хэрэв халдагч аюулгүй машин дээрх root-г эвдсэн бол тэрхүү портыг таны түлхүүрүүдийг ашиглахын тулд хэрэглэн таны түлхүүрээр тайлагдах өөр бусад машинуудад хандах боломжийг олж авах боломжтой юм. Бид staff нэвтрэлтүүдийн хувьд аль болох ssh-г Kerberos-той цуг ашиглахыг зөвлөдөг. Ssh нь Kerberos-ийн дэмжлэгтэй эмхэтгэгдэж болдог. Энэ нь ил гарсан байж болзошгүй ssh түлхүүрүүдэд найдах таны найдварыг багасгахын хамт нууц үгүүдийг Kerberos-оор хамгаалдаг. Ssh түлхүүрүүд нь аюулгүй машинуудын автоматчилагдсан ажлуудад (Kerberos-оор хийхэд таарахгүй) зөвхөн хэрэглэгдэх ёстой. Мөн бид таныг ssh-ийн тохиргоондоо key-forwarding буюу түлхүүр дамжуулалтыг болиулах эсвэл ssh-ийн authorized_keys файлдаа зөвхөн тусгайлсан машинуудаас нэвтрэхэд түлхүүрийг ашиглаж болохоор болгож зөвшөөрдөг from=IP/DOMAIN тохируулгыг ашиглахыг зөвлөдөг. Билл Свингл Хэсгүүдийг дахин бичиж шинэчилсэн DES, MD5, болон Crypt аюулгүй байдал crypt crypt Blowfish DES MD5 &unix; систем дээрх хэрэглэгч бүрийн хувьд нууц үг бүртгэлтэй нь холбоотой байдаг. Мэдээж эдгээр нууц үгүүд нь зөвхөн хэрэглэгч ба үйлдлийн системд мэдэгдэж байх ёстой. Эдгээр нууц үгүүдийг нууцлаг байлгахын тулд тэдгээрийг one-way hash буюу үл буцах хэш гэгддэг шифрлэхэд амархан боловч буцааж болдоггүй аргаар шифрлэдэг. Өөрөөр хэлбэл хормын өмнө мэдээж гэж хэлсэн бидний хэлсэн үг яг жинхэнэдээ үнэн биш юм: үйлдлийн систем өөрөө нууц үгийг жинхэнэдээ мэддэггүй. Энэ нь зөвхөн нууц үгийн шифрлэсэн хэлбэрийг мэддэг. plain-text буюу ердийн уншигдах текст хэлбэрийн нууц үгийг авах цорын ганц арга нь боломжит нууц үгүүдийн орон зайгаас балмадаар хүчлэн хайх явдал юм. Харамсалтай нь &unix; бий болсон тэр үед нууц үгийг аюулгүй аргаар шифрлэх цорын ганц арга нь DES, Data Encryption Standard буюу Өгөгдөл Шифрлэх Стандарт дээр үндэслэсэн байлаа. Энэ нь АНУ-д оршин сууж байсан хэрэглэгчдийн хувьд тийм ч асуудалтай биш байсан юм, гэхдээ DES-ийн эх код АНУ-аас гадагшаа экспорт хийгдэж болохгүй байсан учир &os; нь АНУ-ын хуулийг дагахын хажуугаар DES-ийг ашигласан хэвээр байсан бусад бүх &unix; төрлүүдтэй нийцтэй байх арга замыг хайж олоход хүрсэн юм. Үүний шийдэл нь АНУ-ын хэрэглэгчид DES сангуудыг суулгаж ашиглах боломжтой мөртлөө олон улсын хэрэглэгчид гадагш экспорт хийгдэж болох шифрлэх аргатай бас байхаар шифрийн сангуудыг хуваасан явдал байлаа. Ингэж &os; нь MD5-ийг өөрийн анхдагч шифрлэх аргаа болгон ашиглах болсон юм. MD5 нь DES-ээс илүү аюулгүй нууцлаг гэгддэг бөгөөд DES-ийг суулгах нь үндсэндээ нийцтэй байх шалтгаануудын улмаас зориулагдсан юм. Өөрийн Crypt арга замыг таних нь Одоогоор шифрийн сан DES, MD5 болон Blowfish хэш функцуудыг дэмждэг. Анхдагчаар &os; нь MD5 ашиглан нууц үгүүдийг шифрлэдэг. &os; аль шифрлэх аргыг тохируулж ашиглаж байгааг мэдэх хялбар байдаг. /etc/master.passwd файл дахь шифрлэсэн нууц үгийг шалгах нь нэг арга юм. MD5 хэшээр шифрлэгдсэн нууц үгүүд нь DES-р шифрлэгдсэнийгээ бодох юм бол урт бөгөөд $1$ тэмдэгтээр бас эхэлдэг. $2a$ тэмдэгтээр эхэлсэн нууц үгүүд Blowfish хэш функцаар шифрлэгдсэн байдаг. DES мөр нь ямар нэг тусгайлан таньж болох шинж тэмдэггүй байдаг боловч тэд MD5 нууц үгүүдээс богино бөгөөд $ тэмдэгт ордоггүй 64 тэмдэгттэй цагаан толгойгоор кодчилогддог, тиймээс долларын тэмдэгтээр эхлээгүй харьцангуй богино мөр ихэвчлэн DES нууц үг байдаг. Шинэ нууц үгүүдэд ашиглагдах нууц үгийн хэлбэр нь нэвтрэлтийн passwd_format боломжийн тусламжтай /etc/login.conf файлд хянагддаг бөгөөд энэ хувьсагч нь des, md5 эсвэл blf утгуудыг авдаг. Нэвтрэлтийн боломжуудын талаар дэлгэрэнгүй мэдээллийг &man.login.conf.5; гарын авлагын хуудаснаас үзнэ үү. Нэг удаагийн нууц үгүүд нэг удаагийн нууц үгүүд аюулгүй байдал нэг удаагийн нууц үгүүд Анхдагчаар &os; OPIE (One-time Passwords In Everything буюу Бүхэнд зориулсан нэг удаагийн нууц үгүүд) дэмжлэгтэй байдаг бөгөөд энэ нь MD5 хэшийг анхдагчаар ашигладаг. Бид гурван өөр төрлийн нууц үгийг доор хэлэлцэх болно. Эхнийх нь таны ердийн &unix; загварын эсвэл Kerberos нууц үг юм; бид үүнийг &unix; нууц үг гэж нэрлэх болно. Хоёр дахь төрөл нь OPIE &man.opiekey.1; програмаар үүсгэгдэж &man.opiepasswd.1; програм болон нэвтрэлт хүлээх мөр хүлээн авах нэг удаагийн нууц үг юм; бид үүнийг нэг удаагийн нууц үг гэх болно. Сүүлийн төрөл нууц үг бол opiekey програмд (заримдаа opiepasswd програмууд) өгдөг нууцлаг нууц үг бөгөөд үүнийг ашиглан дээрх програмууд нэг удаагийн нууц үг үүсгэдэг; бид үүнийг нууцлаг нууц үг гэх буюу эсвэл зүгээр л шалгагдаагүй нууц үг гэх болно. Нууцлаг нууц үг нь таны &unix; нууц үгтэй ямар ч холбоогүй юм; тэдгээр нь адил байж болох боловч ингэхийг зөвлөдөггүй. OPIE нууцлаг нууц үгүүд нь хуучин &unix; нууц үгүүд шиг 8 тэмдэгтэд хязгаарлагддаггүй &os; дээр стандарт нэвтрэх нууц үг уртаараа 128 тэмдэгт хүртэл байж болдог. бөгөөд таны хүссэн хэмжээний урттай байж болдог. Зургаа эсвэл долоон үг бүхий өгүүлбэрээс тогтох нууц үгүүд нэлээн элбэг байдаг. Ихэнх хэсгийн хувьд OPIE систем &unix;-ийн нууц үгийн системээс бүр мөсөн ангид ажилладаг. Нууц үгээс гадна OPIE-д чухал өгөгдлийн өөр хоёр хэсэг байдаг. Нэг нь seed буюу үр эсвэл key буюу түлхүүр гэгддэг бөгөөд 2 үсэг болон таван тооноос тогтдог. Нөгөөдөх нь давталтын тоо буюу 1-ээс 100 хүртэлх тоо юм. OPIE нэг удаагийн нууц үгийг үр болон нууцлаг нууц үгийг нийлүүлэн MD5 хэшийг давталтын тоогоор ашиглан үүсгэж үр дүнг нь зургаан богино Англи үг болгодог. Эдгээр зургаан Англи үг нь таны нэг удаагийн нууц үг юм. Нэвтрэлт шалгах систем (үндсэндээ PAM) ашигласан хамгийн сүүлийн нэг удаагийн нууц үгийг хадгалж байдаг бөгөөд хэрэглэгчийн өгсөн нууц үгийн хэш өмнөх нууц үгтэй таарч байвал хэрэглэгчийг нэвтрүүлдэг. Үл буцах хэш ашиглагддаг болохоор хэрэв амжилттайгаар ашиглагдсан нууц үгийг олж авсан бол дараа дараагийн нэг удаагийн нууц үгүүдийг үүсгэх боломжгүй байдаг; хэрэглэгч болон нэвтрэлтийн програмыг хамгийн сүүлийн хэлбэрт адилхан байлгаж байхын тулд давталтын тоо амжилттай нэвтрэлт хийгдэх бүрийн дараа багасаж байдаг. Давталтын тоо 1 хүрэх үед OPIE дахин хийгдэх хэрэгтэй болно. Систем болгоны хувьд хэдэн програмууд байдаг бөгөөд тэдгээрийг бид энд хэлэлцэх болно. opiekey програм давталтын тоо, үр болон нууцлаг нууц үгийг хүлээн авч нэг удаагийн нууц үг эсвэл нэг удаагийн нууц үгүүдийн үргэлжилсэн жагсаалтыг үүсгэдэг. opiepasswd програмыг OPIE-г эхлүүлэх болон нууц үг, давталтын тоо эсвэл үр өөрчлөхөд ашигладаг; энэ нь нууцлаг нэвтрэх үгс аль эсвэл давталтын тоо, үр болон нэг удаагийн нууц үгийг авдаг. opieinfo програм тохирох итгэмжлэлүүдийн файлуудыг (/etc/opiekeys) шалгаж ажиллуулсан хэрэглэгчийн одоогийн давталтын тоо болон үрийг дэлгэцэд гаргадаг. Бид дөрвөн өөр төрлийн үйлдлийн талаар хэлэлцэх болно. Эхнийх нь аюулгүй холболтоор opiepasswd ашиглаж нэг удаагийн нууц үгүүдийг эхний удаа тохируулах эсвэл өөрийн нууц үг эсвэл үрийг өөрчлөх үйлдэл юм. Хоёр дахь үйлдэл нь opiepasswd-г аюултай холболтоор, opiekey тушаалыг аюулгүй холболтоор ашиглаж адил үйлдлийг хийх явдал юм. Гурав дахь нь opiekey-г аюултай холболтоор ашиглан нэвтрэн орох үйлдэл юм. Дөрөв дэх нь opiekey-г ашиглан хэд хэдэн түлхүүрүүд үүсгэх үйлдэл бөгөөд гадагшаа аюулгүй холболтуудгүй газрууд уруу явахдаа тэдгээр түлхүүрүүдийг бичин авч эсвэл хэвлэн аваад өөртөө авч явж болох юм. Аюулгүй холболт эхлүүлэх OPIE-г эхний удаа эхлүүлэхдээ opiepasswd тушаалыг ажиллуул: &prompt.user; opiepasswd -c [grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED Enter new secret pass phrase: эсвэл Enter secret password: мөрүүд дээр та нууц үг эсвэл өгүүлбэр оруулах ёстой. Энэ нь таны нэвтрэхдээ ашиглах нууц үг биш гэдгийг санах хэрэгтэй, үүнийг ашиглаж таны нэг удаагийн нэвтрэх түлхүүрийг үүсгэдэг. ID мөр таны тухайн үеийн параметрүүд болох таны нэвтрэх нэр, давталтын тоо болон үрийг өгдөг. Нэвтрэн орох үед систем эдгээр параметрүүдийг санаж танд тэдгээрийг санах шаардлагагүйгээр буцаан үзүүлдэг. Сүүлийн мөр нь тэдгээр параметрүүд болон таны нууцлаг нууц үгт харгалзах нэг удаагийн нууц үгийг өгдөг; хэрэв та нэн даруй дахин нэвтэрвэл энэ нэг удаагийн нууц үг нь таны ашиглах тэр нууц үг юм. Аюултай холболт эхлүүлэх Өөрийн нууцлаг нууц үгийг аюултай холболтоор эхэлж өгөхдөө эсвэл өөрчлөхдөө opiekey ажиллуулж болох тийм газар уруу аюулгүй холболттой байж байх шаардлагатай; энэ нь таны итгэж байгаа машин дээр бүрхүүлийн тушаал хүлээх мөр хэлбэрээр байж болно. Та бас давталтын тоог (100 боломжийн утга байж болох юм) бодож өгөх хэрэгтэй бөгөөд та өөрөө үр бодож олох эсвэл дурын үүсгэснийг ашиглах хэрэгтэй. Аюултай холболтоор (таны эхлүүлж байгаа машин уруу) opiepasswd тушаалыг ашигла: &prompt.user; opiepasswd Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY Анхдагч үрийг хүлээж авах бол Return дар. Дараа нь хандах нууц үгийг оруулахын өмнө аюулгүй холболт уруугаа орж адил параметрүүдийг өгөөрэй: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Одоо аюултай холболт уруугаа шилжиж үүсгэсэн нэг удаагийн нууц үгээ тохирох програм уруу хуулаарай. Нэг удаагийн нууц үг ганцыг үүсгэх нь OPIE-г эхлүүлэн тохируулж нэвтэрсний дараа танд иймэрхүү тушаал хүлээх мөр харуулагдана: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> otp-md5 498 gr4269 ext Password: Энэ дашрамд тэмдэглэн хэлэхэд OPIE тушаал хүлээх мөрүүд ашигтай боломжтой байдаг: хэрэв та нууц үг хүлээх мөр дээр Return дарвал хүлээх мөр цуурайг идэвхжүүлж таны юу бичиж байгааг танд харуулдаг. Та хэвлэсэн зүйлээсээ харж магадгүй нууц үгийг гараараа бичиж оруулахыг оролдож байгаа бол энэ маш ашигтай байж болох юм. MS-DOS Windows MacOS Энэ үед нэвтрэлт хүлээх мөрөнд хариулахын тулд та өөрийн нэг удаагийн нууц үгийг үүсгэх хэрэгтэй болно. Үүнийг opiekey тушаал итгэн ажиллуулж чадах тийм систем дээрээ хийх хэрэгтэй. (DOS, &windows; болон &macos;-д зориулсан эдгээрийн хувилбарууд байдаг) Эдгээрт давталтын тоо болон үр тушаалын мөрийн тохируулга хэлбэрээр хэрэгтэй байдаг. Та нэвтрэн орж байгаа машиныхаа нэвтрэлт хүлээх мөрөөс эдгээрийг шууд хуулан тавьж болох юм. Итгэсэн систем дээрээ: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Одоо та өөрийн нэг удаагийн нууц үгтэй болсон болохоор нэвтрэлтээ үргэлжлүүлж болно. Нэг удаагийн нууц үг олныг үүсгэх нь Заримдаа та итгэсэн машин эсвэл аюулгүй холболт уруу хандах боломжгүй тийм газар очих хэрэгтэй болдог. Энэ тохиолдолд opiekey тушаал ашиглаж хэд хэдэн нэг удаагийн нууц үгүүдийг урьдчилан үүсгэж хэвлэн биедээ авч явах боломжтой юм. Жишээ нь: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI нь дараалсан таван түлхүүрийг үүсгэхийг, нь сүүлийн давталтын тоог хэд байх ёстойг зааж өгч байгаа юм. Эдгээр нь ашиглах бололцоотойг урвуу дарааллаар дэлгэцэнд харуулдгийг тэмдэглэх нь зүйтэй. Хэрэв та хэт санаа зовниж байгаа бол та үр дүнг гараар бичиж авахыг хүсэж болох юм; эсвэл lpr уруу хуулан авч тавьж болох юм. Мөр бүр давталтын тоо болон нэг удаагийн нууц үгийг харуулж байгааг анхаараарай; та нууц үгүүдийг хэрэглэх бүртээ тэдгээрийг арилгаж энэ хэвлэсэн арга тань ашигтай хэвээр болохыг мэдэж болох юм. &unix; нууц үгүүдийг ашиглахыг хязгаарлах нь OPIE нь &unix; нууц үгүүдийн ашиглалтыг нэвтрэлтийн сессийн IP хаяг дээр тулгуурлан хязгаарлаж чаддаг. Тохирох файл нь /etc/opieaccess бөгөөд энэ файл нь анхдагчаар байдаг. Энэ файлын талаар болон үүнийг ашигласнаар та аюулгүй байдлын ямар зүйлсүүдийг бодолцож анхаарах ёстой талаар дэлгэрэнгүй мэдээллийг &man.opieaccess.5;-с шалгана уу. Энд жишээ opieaccess файл байна: permit 192.168.0.0 255.255.0.0 Энэ мөр нь &unix; нууц үгүүдийг ямар ч үед ашиглахын тулд эхлэл IP хаягийг (хууран мэхлэхэд хүрч болох тийм эмзэг) заагдсан утга болон багтай тааруулах боломжийг хэрэглэгчдэд олгодог. opieaccess дахь аль ч дүрэм таарахгүй байгаа бол анхдагчаар OPIE биш нэвтрэлтүүдийг хааж үгүйсгэдэг. Том Рөүдс Бичсэн TCP Гүйцэтгэлийг хялбаршуулагчид TCP Гүйцэтгэлийг хялбаршуулагчид &man.inetd.8;-г мэддэг хэн бүхэн TCP Гүйцэтгэлийг хялбаршуулагчдын талаар заримдаа сонссон байх. Гэхдээ цөөн хүмүүс энэ боломжийн сүлжээний орчин дахь ашигтай талыг бүрэн ойлгодог юм шиг санагддаг. Хүн бүхэн сүлжээний холболтууд зохицуулах галт хана суулгахыг хүсдэг юм шиг санагддаг. Галт хана олон төрлийн хэрэглээтэй боловч холболт үүсгэгч уруу текст илгээх зэрэг зарим зүйлсийг галт хана хийж чаддаггүй. Энд дурдсан TCP Гүйцэтгэлийг хялбаршуулагчид энэ мэтийг болон үүнээс илүүг хийдэг. Дараагийн хэдэн хэсэгт TCP Гүйцэтгэлийг хялбаршуулагчдын олон боломжуудыг хэлэлцэх бөгөөд боломжтой үед нь жишээ тохиргооны мөрийг үзүүлэх болно. TCP Гүйцэтгэлийг хялбаршуулагчид програм хангамж нь inetd-ийн чадваруудыг сервер бүрийн хувьд түүний доор хянагдаж болохоор дэмжин өргөтгөдөг. Энэ аргыг ашиглан бүртгэл хөтлөх дэмжлэг нэмэх, холболтууд уруу мэдэгдэл буцаах, дэмонд зөвхөн дотоод холболтуудыг хүлээн авахыг зөвшөөрөх гэх мэт үйлдлүүдийг хийх боломжтой. Эдгээр боломжуудын заримыг галт хана суулган тохируулж хийж болох боловч энэ нь зөвхөн хамгаалалтын нэмэлт давхарга болохоос гадна галт ханын үзүүлж чаддагаас илүү хяналтыг олгодог юм. TCP Гүйцэтгэлийг хялбаршуулагчдын ийнхүү нэмэгдсэн ажиллагаа нь сайн галт ханыг солихоор зүйл гэж ойлгогдох ёсгүй юм. TCP Гүйцэтгэлийг хялбаршуулагчид нь галт хана эсвэл өөр бусад аюулгүй байдлыг нэмэгдүүлэгч програмуудын хамтаар ашиглагдаж системийн хувьд хамгаалалтын нэмэлт давхарга болон аятайхан үйлчлэх боломжтой юм. Энэ нь inetd-ийн тохиргооны өргөтгөл болохоор энэхүү баримтыг уншигч таныг inetd тохиргоо хэсгийг уншсан гэдэгт найдаж байна. &man.inetd.8;-ээр ажиллуулагдсан програмууд яг жинхэнээрээ дэмонууд биш боловч тэдгээрийг уламжлалаар дэмонууд гэдэг. Энэ ухагдахууныг бид энэ хэсэгт бас ашиглах болно. Эхний тохиргоо TCP Гүйцэтгэлийг хялбаршуулагчдыг &os;-д ашиглахад байх цорын ганц шаардлага нь inetd серверийг rc.conf файлаас тохируулгатай ажиллуулсан эсэхийг шалгах явдал юм; энэ нь анхдагч тохиргоо юм. Мэдээж /etc/hosts.allow файлын зөв тохиргоо бас байгааг хүлээж байдаг боловч эдгээр тохиолдлуудад &man.syslogd.8; системийн бүртгэлүүдэд мэдэгдлүүд шиддэг. Бусад TCP Гүйцэтгэлийг хялбаршуулагчдын шийдлүүдтэй харьцуулах юм бол hosts.deny файлыг хэрэглэхээ больсон. Тохиргооны бүх сонголтууд /etc/hosts.allow файлд байх шаардлагатай. Хамгийн амархан тохиргоогоороо бол дэмоны холболтын бодлогууд зөвшөөрөгдсөн эсвэл хаагдсаны аль нэгээр /etc/hosts.allow файл дахь тохируулгуудаас хамааран тохируулагддаг. &os; дээрх анхдагч тохиргоо нь inetd-ээр эхэлсэн дэмон бүр уруу хийгдэх холболтыг зөвшөөрдөг. Үүнийг өөрчлөх талаар зөвхөн үндсэн тохиргооны тухай дурдсаны дараа хэлэлцэх болно. Үндсэн тохиргоо ихэвчлэн дэмон : хаяг : үйлдэл хэлбэрийг авдаг. Энд байгаа дэмон нь inetd-ийн эхлүүлсэн дэмоны нэр юм. Хаяг нь зөв хостын нэр, address хаяг эсвэл дөрвөлжин хаалтан ([ ]) доторх IPv6 хаяг байж болно. action буюу үйлдлийн талбар нь allow буюу зөвшөөрөх эсвэл deny буюу эрхийг хориглох эсвэл хандалтыг хаахын аль нэг байна. Тохиргоо эхний тохирсон дүрэм журмын дагуу ажилладаг гэдгийг санах хэрэгтэй, энэ нь тохирох дүрмийг тохиргооны файлаас өсөх дарааллаар хайна гэсэн үг юм. Тохирох дүрэм олдвол тэр дүрэм ашиглагдаж хайх процесс зогсоно. Бусад хэд хэдэн тохируулгууд байдаг боловч тэдгээрийг энэ хэсгийн сүүлд тайлбарлах болно. Хялбар тохиргооны мөр ганцхан тэр мэдээллийн дагуу амархнаар хийгдэж болно. Жишээ нь mail/qpopper дэмоноор дамжин хийгдэж болох POP3 холболтуудыг зөвшөөрөхийн тулд дараах мөрүүд hosts.allow файлд нэмж хийгдэх хэрэгтэй: # This line is required for POP3 connections: qpopper : ALL : allow Энэ мөрийг нэмснийхээ дараа inetd-г дахин эхлүүлэх хэрэгтэй. Үүнийг &man.kill.1; тушаал эсвэл /etc/rc.d/inetdrestart параметртай ашиглан хийж болно. Дэвшилтэт тохиргоо TCP Гүйцэтгэлийг хялбаршуулагчид нь бас дэвшилтэт тохируулгуудтай байдаг; тэдгээр нь холболтуудтай хэрхэн ажиллахыг илүүтэйгээр хянах боломжийг олгодог. Зарим тохиолдолд тодорхой хостууд эсвэл дэмон холболтууд уруу тайлбар буцаах нь зүйтэй санаа байж болох юм. Бусад тохиолдолд магадгүй бүртгэлийн файл бичигдэх ёстой эсвэл цахим захидал администратор уруу илгээгдэж болох юм. Бусад тохиолдлууд үйлчилгээг зөвхөн дотоод холболтууддаа ашиглахыг шаардаж болох юм. Эдгээр нь бүгдээрээ орлуулагддаг тэмдэгтүүд, өргөтгөх тэмдэгтүүд болон гадаад тушаалыг ажиллуулах зэрэг тохиргооны сонголтуудын тусламжтай хийгдэх боломжтой юм. Дараагийн хоёр хэсэгт эдгээр тохиолдлуудын талаар бичсэн байгаа. Гадаад тушаалууд Холболтыг хааж түүнийг тогтоохыг оролдсон хүн уруу шалтгааныг нь илгээх тохиолдол гарчээ гэж бодъё. Үүнийг яаж хийх вэ? Энэ үйлдлийг тохируулга ашиглан хийх боломжтой. Холболт тогтоохоор оролдоход тохируулга бүрхүүлийн тушаал эсвэл скрипт ажилуулахаар дуудагддаг. hosts.allow файлд үүний жишээ аль хэдийн орсон байдаг: # The rest of the daemons are protected. ALL : ALL \ : severity auth.info \ : twist /bin/echo "You are not welcome to use %d from %h." Энэ жишээ нь You are not allowed to use daemon from hostname. буюу Та дэмоныг hostname-с ашиглах зөвшөөрөлгүй. гэсэн мэдэгдлийг хандалтын файлд урьдаар тохируулагдаагүй дэмон бүрийн хувьд буцаадаг. Энэ нь тогтоогдсон холболт дөнгөж салсны дараа холболтыг эхлүүлэгч уруу хариултыг буцааж илгээхэд маш их ашигтай байдаг. Буцсан мэдэгдэл бүр " тэмдэгтүүд дотор заавал байх шаардлагатай; энэ дүрмэнд ямар нэг жич зөвшөөрөл байхгүй. Хэрэв халдагч эсвэл бүлэг халдагчид эдгээр дэмонуудыг холболт хийх хүсэлтээр цутгаж чадах юм бол серверийн эсрэг үйлчилгээг зогсоох халдлага явуулах боломжтой байж болох юм. Өөр нэг боломж нь эдгээр тохиолдлуудад тохируулгыг ашиглах явдал юм. тохируулгын нэгэн адил тохируулга нь холболтуудыг сохроор хааж гадаад бүрхүүлийн тушаалууд эсвэл скриптүүдийг ажиллуулахад ашиглагдаж болно. тохируулгаас ялгаатай тал нь нь холболт тогтоосон хүн уруу хариулт буцааж илгээдэггүй. Жишээ нь дараах тохиргооны мөр байжээ гэж бодъё: # We do not allow connections from example.com: ALL : .example.com \ : spawn (/bin/echo %a from %h attempted to access %d >> \ /var/log/connections.log) \ : deny Энэ нь *.example.com домэйноос ирсэн бүх холболтын оролдлогуудаас татгалзахын зэрэгцээ хостын нэр, IP хаяг болон тэдний хандалт хийхийг оролдсон дэмонг /var/log/connections.log файл уруу бүртгэнэ. Дээр тайлбарласан орлуулах тэмдэгтүүдээс гадна, өөрөөр хэлбэл %a тэмдэгтээс гадна бусад цөөн хэдэн тэмдэгтүүд бас байдаг. Бүрэн жагсаалтыг &man.hosts.access.5; гарын авлагын хуудаснаас үзнэ үү. Орлуулагддаг тэмдэгтүүдийн тохиргоонууд Энэ хүртэл ALL тохируулга бүх л жишээнүүдэд ашиглагдлаа. Ажиллагааг арай цаашлуулж өргөтгөх бусад тохируулгууд байдаг. Жишээ нь ALL нь дэмон, домэйн эсвэл IP хаягийн аль нэгтэй тааруулах зорилгоор ашиглагдаж болох юм. Өөр нэг орлуулагддаг тэмдэгт нь IP хаягаа өөрчлөн хуурсан байж болох дурын хостыг тааруулах PARANOID тохируулга юм. Өөрөөр хэлбэл PARANOID буюу хэт зовнил нь өөрийн хостын нэрээс өөр IP хаягтай машинаас холболт хийгдэх бүр түүнд тохирох үйлдлийг тодорхойлоход ашиглагдаж болох юм. Дараах жишээ энэ хэлэлцүүлэгт арай илүү ойлголт өгч магадгүй юм: # Block possibly spoofed requests to sendmail: sendmail : PARANOID : deny Энэ жишээн дээр sendmail уруу хийгдэж байгаа өөрийнхөө хостын нэрээс өөр IP хаягтай холболтын бүх хүсэлтүүдээс татгалзан хааж байна. Хэрэв клиент эсвэл сервер эвдэрхий DNS суулгацтай бол PARANOID орлуулагддаг тэмдэгтийг ашиглах нь серверүүдийг ноцтойгоор зэрэмдэг болгож болох юм. Иймд администраторын зохион байгуулалт болон хуваарилалт хийхийг зөвлөж байна. Орлуулагддаг тэмдэгтүүдийн талаар болон тэдэнтэй холбоотой ажиллагааны талаар дэлгэрэнгүйг &man.hosts.access.5; гарын авлагын хуудаснаас үзээрэй. Тусгай тохиргооны аль ч мөрүүдийн өмнө дээрх нь ажиллана, эхний тохиргооны мөр hosts.allow файлд тайлбар болгон хаагдах шаардлагатай. Үүнийг энэ хэсгийн эхэнд тэмдэглэж хэлсэн байгаа. Марк Мюррей Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан Марк Дэйпоз Хувь нэмэр болгон оруулсан <application>KerberosIV</application> Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм. Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж болохоор болсон. Дараах заавруудыг &os;-тэй цуг түгээгддэг Kerberos-ийг хэрхэн тохируулах гарын авлага болгон хэрэглэж болох юм. Гэхдээ та бүрэн тайлбарын талаар харгалзах гарын авлагын хуудаснуудад хандаж үзэх шаардлагатай. <application>KerberosIV</application> суулгах нь MIT KerberosIV суулгах нь Kerberos нь &os;-ийн нэмэлт бүрэлдэхүүн хэсэг юм. Энэ програм хангамжийг суулгах хамгийн амархан арга нь &os; эхэлж суулгах үед sysinstallkrb4 эсвэл krb5 түгээлтийг сонгон суулгах явдал юм. Энэ нь Kerberos-ийн eBones (KerberosIV) эсвэл Heimdal (Kerberos5) шийдлүүдийг суулгах болно. Эдгээр нь АНУ/Канадаас гадна хөгжүүлэгдсэн учраас АНУ-ын криптограф код дээрх экспортын хязгаарлагдмал хяналтын үед бусад улсуудын системийн эзэмшигчдэд ашиглагдах боломжтой болсон юм. Иймээс эдгээр шийдлүүд нь орсон байдаг. Үүнээс гадна Kerberos-ийн MIT шийдэл портуудын цуглуулгын security/krb5 санд байдаг. Эхний мэдээллийн бааз үүсгэх Энэ нь Kerberos сервер дээр зөвхөн хийгддэг. Эхлээд хуучин Kerberos мэдээллийн баазууд байгаа эсэхийг шалгаарай. Та /etc/kerberosIV сан уруу орж зөвхөн дараах файлууд байгааг шалгаарай: &prompt.root; cd /etc/kerberosIV &prompt.root; ls README krb.conf krb.realms Хэрэв аль нэг нэмэлт файлууд (principal.* эсвэл master_key зэрэг) байвал kdb_destroy тушаал ашиглаж хуучин Kerberos мэдээллийн баазыг устгах эсвэл хэрэв Kerberos ажиллахгүй байгаа бол ердөө л нэмэлт файлуудыг устгах хэрэгтэй. Та одоо өөрийн Kerberos хүрээг (realm) зааж өгөхдөө krb.conf болон krb.realms файлуудыг засварлах шаардлагатай. Энэ тохиолдолд хүрээ нь EXAMPLE.COM болох бөгөөд сервер нь grunt.example.com болох юм. Бид krb.conf файлыг засварлаж эсвэл үүсгэнэ: &prompt.root; cat krb.conf EXAMPLE.COM EXAMPLE.COM grunt.example.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov Энэ тохиолдолд бусад хүрээнүүд тэнд байх хэрэггүй. Тэдгээр нь энд машиныг хэрхэн олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод та тэдгээрийг оруулахгүйг хүсэж болох юм. Эхний мөр нь систем ажиллах хүрээг нэрлэж байна. Бусад мөрүүд нь хүрээ/хост оруулгуудыг агуулна. Мөр дэх эхнийх нь хүрээ бөгөөд хоёр дахь нь түлхүүр түгээх төв болж байгаа хүрээн дэх хост юм. Хостын нэрийн дараах admin server нь хост бас удирдах мэдээллийн баазаар хангаж байна гэсэн үг юм. Эдгээр ухагдахуунуудын тайлбаруудын талаар Kerberos-ийн гарын авлагын хуудаснуудаас зөвлөгөө авна уу. Одоо бид grunt.example.comEXAMPLE.COM хүрээ уруу нэмэх ёстой бөгөөд бас EXAMPLE.COM хүрээний .example.com домэйн дэх бүх хостуудыг оруулан нэмж өгөх хэрэгтэй. krb.realms файл дараах байдлаар шинэчлэгдэх болно: &prompt.root; cat krb.realms grunt.example.com EXAMPLE.COM .example.com EXAMPLE.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU Дахин хэлэхэд бусад хүрээнүүд тэнд байх шаардлагагүй. Тэдгээр нь энд машиныг хэрхэн олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод та тэдгээрийг оруулахгүйг хүсэж болох юм. Эхний мөр нь тусгай системийг нэрлэгдсэн хүрээ уруу оруулж байна. Бусад мөрүүд нэрлэгдсэн хүрээнд тухайн дэд домэйны системүүдийг хэрхэн анхдагчаар болгож байгааг харуулна. Одоо бид мэдээллийн сан үүсгэхэд бэлэн боллоо. Энэ нь зөвхөн Kerberos сервер (эсвэл Түлхүүр Түгээх Төв) дээр ажиллах ёстой. kdb_init тушаал ажиллуулж үүнийг хийнэ: &prompt.root; kdb_init Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter Kerberos master key: Одоо бид локал машин дээрх серверүүд авч болгохоор болгохын тулд түлхүүрийг хадгалах хэрэгтэй. kstash тушаал ашиглаж үүнийг хийнэ: &prompt.root; kstash Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Энэ нь шифрлэгдсэн мастер нууц үгийг /etc/kerberosIV/master_key-д хадгална. Бүгдийг ажиллахаар болгох KerberosIV эхний эхлүүлэлт Kerberos-оор аюулгүй болгогдох систем бүрийн хувьд хоёр удирдагч мэдээллийн баазад нэмэгдэх шаардлагатай. Тэдгээрийн нэрс нь kpasswd болон rcmd байна. Эдгээр хоёр удирдагч нь систем бүрийн хувьд хувь системийн нэртэй тохиолдлуудын хамтаар хийгдэнэ. Эдгээр kpasswd болон rcmd дэмонууд нь бусад системүүдэд Kerberos нууц үгнүүдийг өөрчилж &man.rcp.1;, &man.rlogin.1; болон &man.rsh.1; зэрэг тушаалуудыг ажиллуулахыг зөвшөөрдөг. Одоо эдгээр оруулгуудыг нэмэцгээе: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: passwd Instance: grunt <Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? y Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: rcmd Instance: grunt <Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Серверийн файлыг үүсгэх Одоо бид машин бүр дээр үйлчилгээнүүдийг тодорхойлдог бүх тохиолдлуудыг гаргаж авах хэрэгтэй. Энэ зорилгоор бид ext_srvtab тушаалыг ашиглана. Энэ нь файл үүсгэх бөгөөд түүнийг Kerberos-ийн клиент бүрийн /etc сан уруу аюулгүйн үүднээс хуулах эсвэл шилжүүлэх хэрэгтэй. Энэ файл нь сервер болон клиент бүр дээр байх хэрэгтэй бөгөөд Kerberos-ийн ажиллагаанд шийдвэрлэх зүйл болдог. &prompt.root; ext_srvtab grunt Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Generating 'grunt-new-srvtab'.... Одоо, энэ тушаал зөвхөн түр зуурын файл үүсгэдэг бөгөөд тэр файлын нэрийг бүх серверүүд авч чадахаар srvtab болгон нэрлэх шаардлагатай. &man.mv.1; тушаал ашиглаж эх систем дээрх байрлал уруу шилжүүл: &prompt.root; mv grunt-new-srvtab srvtab Хэрэв файл нь клиент системд зориулагдсан бөгөөд сүлжээ нь аюулгүй биш гэж бодогдвол client-new-srvtab файлыг шилжүүлж болох зөөвөрлөгч уруу хуулж физик аюулгүйн үүднээс тээвэрлэж болно. Үүнийг клиентийн /etc сан дотор srvtab болгон нэрлэж 600 горимд байгаа эсэхийг шалгаарай: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab Мэдээллийн санг нутагшуулах Бид одоо зарим хэрэглэгчийг мэдээллийн баазад оруулах хэрэгтэй. Эхлээд jane хэрэглэгчид зориулсан оруулгыг үүсгэе. Үүнийг kdb_edit тушаал ашиглаж хийнэ: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: <Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 New Password: <---- enter a secure password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Бүгдийг тест хийх Эхлээд бид Kerberos дэмонууд ажиллуулах шаардлагатай. Хэрэв та өөрийн /etc/rc.conf файлыг зөв засварласан бол дахин ачаалахад энэ нь автоматаар хийгдэх ёстойг санаарай. Энэ нь зөвхөн Kerberos сервер дээр шаардлагатай. kerberos-ийн клиентүүд хэрэгтэй зүйлээ автоматаар /etc/kerberosIV сангаас авах болно. &prompt.root; kerberos & Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EXAMPLE.COM &prompt.root; kadmind -n & KADM Server KADM0.0A initializing Please do not use 'kill -9' to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE! Одоо бид kinit тушаал ашиглаж бидний дээр үүсгэсэн jane ID-д зориулсан тасалбарыг авахыг оролдож болно: &prompt.user; kinit jane MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane" Password: Токенууд бидэнд үнэхээр байгаа эсэхийг klist ашиглан үзэхийг оролдоорой: &prompt.user; klist Ticket file: /tmp/tkt245 Principal: jane@EXAMPLE.COM Issued Expires Principal Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM Одоо kpasswd дэмон Kerberos-ийн мэдээллийн баазад нэвтрэлтийн зөвшөөрөл авч чадах эсэхийг шалгахын тулд нууц үгийг &man.passwd.1; ашиглан өөрчлөхийг оролдоорой: &prompt.user; passwd realm EXAMPLE.COM Old password for jane: New Password for jane: Verifying password New Password for jane: Password changed. <command>su</command> зөвшөөрлүүдийг нэмэх Kerberos нь root зөвшөөрлүүд хэрэгтэй хэрэглэгч бүрд өөрсдийнх нь тусдаа &man.su.1; нууц үгийг өгөхийг бидэнд зөвшөөрдөг. Одоо бид &man.su.1;-аар танигдан зөвшөөрөгдсөн ID-г root уруу нэмж болно. Үүнийг root-г удирдагчтай холбосон тохиолдолтой байснаар хянаж болно. kdb_edit ашиглан Kerberos-ийн мэдээллийн баазад jane.root оруулгыг бид үүсгэж болно: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: root <Not found>, Create [y] ? y Principal: jane, Instance: root, kdc_key_ver: 1 New Password: <---- enter a SECURE password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short! Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Одоо үүнийг ажиллаж байгааг шалгаж токенуудыг авахыг оролдоорой: &prompt.root; kinit jane.root MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane.root" Password: Одоо бид хэрэглэгчийг root-ийн .klogin файлд нэмэх хэрэгтэй: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Одоо &man.su.1; хийхийг оролдоод үз: &prompt.user; su Password: тэгээд ямар токенууд бидэнд байгааг хараарай: &prompt.root; klist Ticket file: /tmp/tkt_root_245 Principal: jane.root@EXAMPLE.COM Issued Expires Principal May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM Бусад тушаалуудыг ашиглах Өмнөх жишээн дээр бид jane гэж нэрлэгдсэн удирдагчийг root тохиолдолтой үүсгэсэн. Энэ нь удирдагчтай адил нэртэй хэрэглэгч дээр үндэслэсэн бөгөөд энэ нь Kerberos-ийн анхдагч юм; root-ийн гэр сан дахь .klogin файлд шаардлагатай оруулгууд байвал <username>.root хэлбэрийн <principal>.<instance> нь тэр <username>root уруу &man.su.1; хийхийг зөвшөөрдөг: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM хэрэв хэрэглэгч үүнтэй адил хэлбэрийн өөрийн гэр сангийн мөрүүдтэй бол: &prompt.user; cat ~/.klogin jane@EXAMPLE.COM jack@EXAMPLE.COM Энэ нь өөрсдийгөө jane эсвэл jack гэж таниулсан (kinit-ийн тусламжтай, дээр дурдсаныг үз) EXAMPLE.COM хүрээний хэнд ч &man.rlogin.1;, &man.rsh.1; эсвэл &man.rcp.1; ашиглан энэ систем (grunt) дээрх jane-ий бүртгэл эсвэл файлуудад хандахыг зөвшөөрдөг. Жишээ нь jane одоо өөр систем уруу Kerberos ашиглан нэвтрэн орж байна: &prompt.user; kinit MIT Project Athena (grunt.example.com) Password: &prompt.user; rlogin grunt Last login: Mon May 1 21:14:47 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Эсвэл jack яг тэр машин дээрх jane бүртгэл уруу нэвтрэн орж байна (jane дээрхтэй адил .klogin-ийг тохируулсан бөгөөд Kerberos хариуцсан хүн удирдагч jack-ийг хоосон тохиолдолтой тохируулсан): &prompt.user; kinit &prompt.user; rlogin grunt -l jane MIT Project Athena (grunt.example.com) Password: Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Тиллмэн Хоожсон Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан Марк Мюррей Хувь нэмэр болгон оруулсан <application>Kerberos5</application> &os;-5.1-ээс хойшх &os;-ийн хувилбар бүр зөвхөн Kerberos5-д зориулсан дэмжлэгийг оруулсан байдаг. Kerberos5 нь орсон цорын ганц хувилбар болохоор түүний тохиргоо олон талаараа KerberosIV-д байдагтай адил байдаг. Дараах мэдээлэл &os;-5.0-с хойшх хувилбар дахь Kerberos5-тай хамаатай. KerberosIV багцыг ашиглахыг хүсэж байгаа хэрэглэгчид security/krb4 портыг суулгаж болно. Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм. Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж болохоор болсон. Kerberos нь хэн бэ гэдгийг шалгах прокси систем юм. Энэ нь бас итгэгдсэн гуравдагч нэвтрэлт таних систем гэж тайлбарлагдаж болно. Kerberos нь зөвхөн нэг функцыг хангадаг — сүлжээн дээр хэрэглэгчдэд өөрсдийгөө аюулгүйгээр таниулах боломжийг хангаж өгдөг. Энэ нь шалгаж таних функцууд (хэрэглэгчдийн хийхийг зөвшөөрдөг) эсвэл аудит функцуудын (тэдгээр хэрэглэгчид юу хийснийг) үүргийг гүйцэтгэдэггүй. Клиент болон сервер өөрийгөө таниулж батлахаар Kerberos-г ашигласны дараа тэд бизнесээ бодож өөрсдийн бүх холболтуудаа шифрлэж нууцлал болон бүрэн бүтэн байдлаа хадгалан баталгаажуулж болно. Иймээс Kerberos-ийг нэвтрэлт танилт болон аудит үйлчилгээнүүдийг хангадаг бусад аюулгүй байдлын аргуудтай цуг ашиглахыг маш ихээр зөвлөдөг. Дараах заавруудыг &os;-д зориулан түгээгдсэн Kerberos-ийг хэрхэн тохируулах гарын авлага болгон ашиглаж болно. Гэхдээ та тохирох гарын авлагын хуудаснуудаас бүрэн тайлбарын талаар лавлах хэрэгтэй. Kerberos-ийн суулгацыг үзүүлэх зорилгоор төрөл бүрийн нэрийн талбарууд дараах байдлаар зохицуулагдана: DNS домэйн (бүс) нь example.org байна. Kerberos хүрээ нь EXAMPLE.ORG байна. Хэрэв та дотооддоо ажиллуулах бодолтой байсан ч гэсэн Kerberos-ийг суулгаж тохируулахдаа жинхэнэ домэйны нэрүүдийг ашиглана уу. Энэ нь DNS-ийн асуудлуудыг тойрон гарч бусад Kerberos хүрээнүүдтэй хийх хоорондын үйлдлийг баталгаажуулдаг. Түүх Kerberos5 түүх Kerberos-ийг MIT анх сүлжээний аюулгүй байдлын асуудлуудын шийдэл болгож хийсэн. Kerberos протокол нь хүчирхэг криптографыг ашигладаг бөгөөд клиент нь аюултай сүлжээний холболтоор өөрийгөө хэн бэ гэдгийг серверт (болон эсрэгээр) баталж чадах боломжийг олгодог. Kerberos нь сүлжээний танин шалгах протоколын нэрээс гадна програмыг (жишээ нь Kerberos телнет) шийдвэрлэж байгаа програмуудыг тайлбарласан тайлбар бас болдог. Протоколын одоогийн хувилбар нь 5 бөгөөд RFC 1510-д тайлбарласан байдаг. Өргөн хүрээний үйлдлийн системүүдийг хамарсан энэ протоколын хэд хэдэн чөлөөтэй шийдлүүд байдаг. Kerberos анх хөгжүүлэгдсэн Массачусетсийн Технологийн Институт (MIT) нь өөрийн Kerberos багцыг хөгжүүлсээр байна. Энэ багц нь US-д криптограф бүтээгдэхүүн болж нийтлэг хэрэглэгддэг бөгөөд энэ нь түүхээс авч үзэхэд US-ын экспортын дүрэм журмуудаас болсон юм. MIT Kerberos нь порт (security/krb5) хэлбэрээр байдаг. Heimdal Kerberos нь өөр шийдлийн 5-р хувилбар бөгөөд экспортын дүрэм журмуудыг тойрон гарах зорилгоор US-ээс гадна хамааралгүйгээр хөгжүүлэгдсэн ( бөгөөд ихэвчлэн арилжааны бус &unix; төрлүүдэд орсон байдаг) юм. Heimdal Kerberos түгээлт нь порт (security/heimdal) хэлбэрээр байдаг бөгөөд үүний хамгийн бага суулгац үндсэн &os; суулгацад орсон байдаг. Аль болох олон үзэгчдийг хамрахын тулд эдгээр зааврууд нь &os;-д орсон Heimdal түгээлтийг ашиглаж байна гэж тооцдог. Heimdal <acronym>KDC</acronym> суулгаж тохируулах Kerberos5 Түлхүүр Түгээх Төв Түлхүүр Түгээх Төв (KDC) нь Kerberos-ийн хангадаг төвлөрсөн нэвтрэлт таних үйлчилгээ юм — энэ нь Kerberos тасалбарууд өгдөг компьютер юм. KDC нь Kerberos хүрээний бусад бүх компьютеруудад итгэгдсэн гэж тооцогддог бөгөөд аюулгүй байдлын санаа зовнилыг дээшлүүлдэг. Kerberos серверийг ажиллуулж байхад маш цөөн тооцооллын эх үүсвэрийг шаарддаг боловч аюулгүй байдлын шалтгаанаас болоод зөвхөн KDC болон ажиллах тусдаа зориулагдсан машинтай байхыг зөвлөдгийг санаарай. KDC-г тохируулж эхлэхдээ таны /etc/rc.conf файлд KDC болж ажиллах зөв тохиргоо хийгдсэн эсэхийг шалгаарай (өөрийн системийн хувьд та замуудыг өөрчлөх хэрэгтэй байж болох юм): kerberos5_server_enable="YES" kadmind5_server_enable="YES" Дараа нь бид таны Kerberos тохиргооны файл /etc/krb5.conf-г тохируулна: [libdefaults] default_realm = EXAMPLE.ORG [realms] EXAMPLE.ORG = { kdc = kerberos.example.org admin_server = kerberos.example.org } [domain_realm] .example.org = EXAMPLE.ORG Энэ /etc/krb5.conf файл нь таны KDC нь бүрэн баталгаажсан хостын нэр kerberos.example.org-тэй байна гэж үзэж байгааг санаарай. Хэрэв таны KDC өөр хостын нэртэй бол та өөрийн бүсийн файлдаа CNAME (alias)-ийг нэмэх хэрэгтэй. Зөв тохируулсан BIND DNS сервер бүхий том сүлжээнүүдэд өмнөх жишээ нь: [libdefaults] default_realm = EXAMPLE.ORG болж дараах мөрүүдийг example.org бүсийн файлд нэмж цэгцэлж болно: _kerberos._udp IN SRV 01 00 88 kerberos.example.org. _kerberos._tcp IN SRV 01 00 88 kerberos.example.org. _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. _kerberos IN TXT EXAMPLE.ORG Kerberos үйлчилгээнүүдийг хэрэглэгчдэд хүртээмжтэй болгохын тулд та эсвэл бүрэн тохируулсан /etc/krb5.conf файлтай эсвэл хамгийн багаар тохируулсан /etc/krb5.conf файл болон зөв тохируулсан DNS сервертэй байх ёстой. Дараа нь бид Kerberos мэдээллийн бааз үүсгэнэ. Энэ мэдээллийн бааз нь мастер нууц үгээр шифрлэсэн бүх удирдагчдын түлхүүрүүдийг агуулдаг. Та энэ нууц үгийг тогтоох шаардлагагүй, энэ нь файлд (/var/heimdal/m-key) хадгалагдах болно. Мастер түлхүүр үүсгэхийн тулд kstash тушаалыг ажиллуулж нууц үгээ оруулаарай. Мастер түлхүүр үүсгэгдсэний дараа та мэдээллийн баазыг kadmin програмыг -l тохируулгатай (локал гэсэн утгатай) ашиглан эхлүүлж болно. Энэ тохируулга нь kadmin-д мэдээллийн баазын файлыг kadmind сүлжээний үйлчилгээгээр дамжилгүйгээр шууд өөрчлөхийг заадаг. Энэ нь мэдээллийн бааз үүсэхээс өмнө түүн уруу хандахыг оролдох асуудлыг (яг л өндөг, тахианы аль нь түрүүлж гарсан гэж маргадаг тэр асуудлын адил) зохицуулдаг. kadmin хүлээх мөртэй болсныхоо дараа та өөрийн хүрээнүүдийн эхний мэдээллийн санг init тушаал ашиглан үүсгээрэй. Эцэст нь kadmin-ы горимд байхдаа өөрийн эхний удирдагчийг add тушаал ашиглан үүсгээрэй. Одоохондоо удирдагчийн хувьд анхдагч тохируулгуудыг сонгоорой, та тэдгээрийг сүүлд нь modify тушаал ашиглан өөрчилж чадна. Та аль ч тушаал хүлээх мөрөнд ? тушаал ашиглаж байгаа боломжит тохируулгуудыг харж болохыг санаарай. Мэдээллийн сан үүсгэлтийн жишээ сесс доор байна: &prompt.root; kstash Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx &prompt.root; kadmin -l kadmin> init EXAMPLE.ORG Realm max ticket life [unlimited]: kadmin> add tillman Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx Одоо KDC үйлчилгээнүүдийг эхлүүлэх цаг болжээ. Үйлчилгээнүүдийг эхлүүлэхдээ /etc/rc.d/kerberos start болон /etc/rc.d/kadmind start тушаалуудыг ажиллуулна. Энэ үед танд ямар ч kerberos хийгдсэн дэмон байхгүйг санаарай, гэхдээ та KDC-ийн өөрийнх нь тушаалын мөрөөс үүсгэсэн удирдагчид (хэрэглэгч) зориулсан тасалбарыг авч жагсаан KDC-г ажиллаж байгаа гэдгийг та баталж чадаж байх ёстой: &prompt.user; kinit tillman tillman@EXAMPLE.ORG's Password: &prompt.user; klist Credentials cache: FILE:/tmp/krb5cc_500 Principal: tillman@EXAMPLE.ORG Issued Expires Principal Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG Та дууссаныхаа дараа тасалбарыг буцааж болно: &prompt.user; kdestroy Серверийг <application>Kerberos</application> хийн Heimdal үйлчилгээнүүдтэй идэвхжүүлэх Kerberos5 үйлчилгээнүүдийг идэвхжүүлэх Эхлээд бидэнд Kerberos-ийн тохиргооны файл /etc/krb5.conf-ийн хуулбар хэрэг болно. Ингэхийн тулд KDC-ээс түүнийг аюулгүй аргаар (&man.scp.1; зэрэг сүлжээний хэрэгслүүд эсвэл физикээр уян диск ашиглан) клиент компьютер уруу ердөө л хуулах хэрэгтэй. Дараа нь танд /etc/krb5.keytab файл хэрэгтэй. Энэ нь Kerberos хийгдсэн дэмонууд бүхий сервер болон ажлын станц хоёрын гол ялгаа юм — сервер нь keytab файлтай байх шаардлагатай. Энэ файл нь өөрийг нь зөвшөөрдөг серверийн хост түлхүүр болон өөрсдийнхөө нэрийг (identity) шалгах KDC-г агуулдаг. Хэрэв түлхүүр нь нийтэд мэдэгдвэл серверийн аюулгүй байдал эвдэрч болох учир энэ нь сервер уруу аюулгүйн үүднээс дамжуулагдах ёстой. Энэ нь шууд утгаараа FTP зэрэг цэвэр текст сувгаар дамжуулах нь маш буруу гэсэн үг юм. Ихэвчлэн сервер уруу keytab файлыг kadmin тушаал ашиглан дамжуулдаг. Энэ нь тохиромжтой байдаг бөгөөд учир нь та бас хостын удирдагчийг (krb5.keytab файлын KDC төгсгөл) kadmin тушаал ашиглан үүсгэх хэрэгтэй болдог. Та тасалбарыг аль хэдийн авсан байх ёстой бөгөөд энэ тасалбар нь kadmind.acl файлын kadmin интерфэйсийг ашиглаж болохоор зөвшөөрөгдсөн байх ёстойг санаарай. Heimdal-ийн мэдээллийн хуудаснуудын (info heimdal) Алсын удирдлага гэсэн гарчигтай хэсгээс хандалт хянах жагсаалтуудыг дизайн хийх талаар дэлгэрэнгүйг үзнэ үү. Хэрэв та алсын kadmin хандалтыг идэвхжүүлэхийг хүсэхгүй байгаа бол та KDC уруу ердөө л аюулгүйгээр холбогдож (локал консолоор, &man.ssh.1; эсвэл Kerberos &man.telnet.1;) удирдлагыг локалаар өөр дээрээсээ kadmin -l тушаал ашиглан хийж болно. /etc/krb5.conf файлыг суулгасны дараа та Kerberos серверээс kadmin тушаалыг ашиглаж болно. add --random-key тушаал нь серверийн хост удирдагчийг нэмэх боломжийг танд олгох бөгөөд ext тушаал нь серверийн хост удирдагчийг өөрийн keytab уруу задлах боломжийг танд олгоно. Жишээ нь: &prompt.root; kadmin kadmin> add --random-key host/myserver.example.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: kadmin> ext host/myserver.example.org kadmin> exit ext тушаал нь (extract гэдгийг богиноор илэрхийлнэ) задалсан түлхүүрийг анхдагчаар /etc/krb5.keytab файлд хадгалдаг. Хэрэв таны хувьд KDC дээр kadmind ажиллахгүй байгаа бөгөөд (магадгүй аюулгүй байдлын шалтгаануудаас болоод) тэгээд kadmin уруу алсаас хандах боломжгүй бол та хост удирдагчийг (host/myserver.EXAMPLE.ORG) шууд KDC дээр нэмж дараа нь доор дурдсантай адилаар түүнийг түр зуурын файл уруу (KDC дээрх /etc/krb5.keytab файлыг дарж бичихээс сэргийлж) задалж болно: &prompt.root; kadmin kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org kadmin> exit Та дараа нь keytab-ийг аюулгүйгээр (жишээ нь scp эсвэл уян диск ашиглан) сервер компьютер уруу хуулж болно. KDC дээрх keytab-ийг дарж бичихээс сэргийлж keytab нэрийг анхдагч бишээр зааж өгсөн эсэхээ шалгаарай. Энэ мөчид хүрэх үед таны сервер KDC-тэй (krb5.conf файлтай учраас) холбогдож чадах бөгөөд (krb5.keytab файлтай учраас) өөрийгөө таниулан баталж чадна. Одоо та зарим нэг Kerberos үйлчилгээнүүдийг идэвхжүүлэхэд бэлэн болжээ. Энэ жишээн дээр бид telnet үйлчилгээг /etc/inetd.conf файлд доор дурдсантай төстэй мөрийг оруулан идэвхжүүлж дараа нь &man.inetd.8; үйлчилгээг /etc/rc.d/inetd restart тушаалын тусламжтай дахин ачаалах болно: telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user Хамгийн чухал нь -a төрөл (нэвтрэлт танихад) хэрэглэгчид тохируулагдсан. Илүү дэлгэрэнгүйг &man.telnetd.8; гарын авлагын хуудаснаас лавлана уу. Клиентийг <application>Kerberos</application> хийн Heimdal үйлчилгээтэйгээр идэвхжүүлэх Kerberos5 клиентүүдийг тохируулах Клиент компьютерийг тохируулах нь маш амархан. Kerberos тохиргоо хийгдсэний дараа танд зөвхөн /etc/krb5.conf-д байрлах Kerberos тохиргооны файл хэрэгтэй. Үүнийг ердөө л аюулгүйгээр клиент компьютер уруу KDC-ээс хуулна. Клиентээсээ kinit, klist, болон kdestroy тушаалуудыг үүсгэсэн удирдагчийнхаа хувьд тасалбар олж авах, үзүүлэх, болон дараа нь устгахад ашиглахыг оролдон клиент компьютераа тест хийгээрэй. Та Kerberos програмуудыг ашиглан Kerberos хийгдсэн серверүүд уруу холбогдож чадах ёстой бөгөөд хэрэв ингэж ажиллаж болохгүй байгаа бөгөөд тасалбар олж авах нь асуудалтай байгаа бол энэ нь клиент эсвэл KDC-тэй холбоотой биш сервертэй холбоотой асуудал юм. telnet зэрэг програмыг тест хийж байх үед таны нууц үг цэвэр текстээр бишээр илгээгдэж байгааг шалгахын тулд пакет шиншлэгч (&man.tcpdump.1; зэрэг) ашиглаад үзээрэй. telnet-ийг бүх өгөгдлийн урсгалыг шифрлэдэг (ssh-тэй адил) -x тохируулгатай ашиглахыг оролдоорой. Төрөл бүрийн гол биш Kerberos клиент програмууд нь бас анхдагчаар суудаг. Энэ нь үндсэн Heimdal суулгацын хамгийн бага мөн чанар юм: telnet нь цорын ганц Kerberos хийгдсэн үйлчилгээ юм. Heimdal порт нь зарим нэг дутуу програмуудыг нэмдэг: ftp, rsh, rcp, rlogin болон бусад цөөн хэдэн нийтлэг биш програмуудын Kerberos хийгдсэн хувилбаруудыг нэмдэг. MIT порт нь бас Kerberos клиент програмуудын бүрэн цуглуулгыг агуулдаг. Хэрэглэгчийн тохиргооны файлууд: <filename>.k5login</filename> болон <filename>.k5users</filename> .k5login .k5users Хүрээн дэх хэрэглэгчийн хувьд ихэнхдээ өөрсдийнх нь Kerberos удирдагчийг (tillman@EXAMPLE.ORG зэрэг) локал хэрэглэгчийн бүртгэлд (tillman зэрэг локал бүртгэл) харгалзуулж өгсөн байдаг. telnet зэрэг клиент програмууд ихэвчлэн хэрэглэгчийн нэр эсвэл удирдагчийг шаарддаггүй. Гэхдээ хааяа нэг та харгалзах Kerberos удирдагчгүй хэн нэгэнд зориулж локал хэрэглэгчийн бүртгэлд хандах хандалтыг өгөхийг хүсэж болох юм. Жишээ нь tillman@EXAMPLE.ORG магадгүй локал хэрэглэгчийн бүртгэл webdevelopers-д хандах хандалт хэрэгтэй байж болох юм. Бусад удирдагчид бас энэ локал бүртгэлд хандах хэрэгтэй байж болох юм. .k5login болон .k5users файлууд нь хэрэглэгчдийн гэрийн сангуудад байрладаг бөгөөд .hosts болон .rhosts файлуудын хүчирхэг хослолын нэгэн адилаар энэ асуудлыг шийдэн ашиглагдаж болох юм. Жишээ нь хэрэв .k5login нь дараах агуулгатайгаар: tillman@example.org jdoe@example.org локал хэрэглэгч webdevelopers-ийн гэр санд байрлаж байвал энд жагсаагдсан хоёр удирдагч хоёулаа хуваалцсан нууц үгийн шаардлагагүйгээр тэр бүртгэл уруу хандах хандалттай болох юм. Эдгээр тушаалуудын гарын авлагын хуудаснуудыг уншихыг зөвлөж байна. ksu гарын авлагын хуудас .k5users файлын тухай тайлбарладгийг тэмдэглэх нь зүйтэй юм. <application>Kerberos</application>-той холбоотой арга, зальнууд болон алдааг олж засварлах Kerberos5 алдааг олж засварлах Heimdal эсвэл MIT Kerberos портууд ашиглах үед таны PATH орчны хувьсагч клиентийн програмуудын Kerberos хувилбаруудыг системийн хувилбаруудаас өмнө жагсаасан байхыг шаарддаг. Таны хүрээний бүх компьютерууд цагийн тохиргоонуудаа адилаар тохируулсан уу? Хэрэв үгүй бол нэвтрэлт танилт амжилтгүй болж болох юм. нь NTP ашиглан цагийг хамгийн сүүлийн хэлбэрт аваачиж адил болгож тохируулах талаар тайлбарладаг. MIT болон Heimdal нь хоорондоо сайн ажилладаг. kadmin-аас бусад талаараа сайн ажилладаг, учир нь энэ програмын протокол стандартчилагдаагүй. Та хэрэв өөрийн хостын нэрийг өөрчилбөл бас өөрийн host/ удирдагчийг өөрчилж өөрийн keytab-ийг шинэчлэх хэрэгтэй. Энэ нь бас Апачигийн www/mod_auth_kerb-д хэрэглэгддэг www/ удирдагч зэрэг тусгай keytab оруулгуудад хамаатай юм. Таны хүрээний бүх хостууд DNS-д (эсвэл хамгийн багадаа /etc/hosts-ийн хувьд) танигдаж (урагш болон эсрэгээр танигдаж) байх ёстой. CNAME-үүд ажиллах боловч A болон PTR бичлэгүүд зөв бөгөөд байрандаа байж байх ёстой. Алдааны мэдэгдэл нь тийм ч ойлгогдохоор байдаггүй, жишээ нь: Kerberos5 refuses authentication because Read req failed: Key table entry not found буюу орчуулбал Унших Req амжилтгүй болсон болохоор Kerberos5 нь нэвтрэлт танилтаас татгалзаж байна. Таны KDC-ийн хувьд магадгүй клиент маягаар харьцаж байгаа зарим үйлдлийн системүүд setuid root болохын тулд ksu тушаалд зөвшөөрлүүдийг тохируулдаггүй. Энэ нь ksu ажиллахгүй гэсэн үг бөгөөд аюулгүй байдлын хувьд сайн боловч залхаамаар байдаг. Энэ нь KDC-ийн алдаа биш юм. MIT Kerberos-той байхад хэрэв та анхдагч 10 цагаас арай урт амьдрах хугацаа бүхий тасалбартай удирдагчийг зөвшөөрөхийг хүсвэл kadmin дээр modify_principal тушаал ашиглан өөрчлөхийг хүссэн удирдагч болон krbtgt удирдагчийн maxlife-ийг өөрчлөх шаардлагатай. Дараа нь удирдагч -l тохируулгыг kinit-тай ашиглаж илүү урт амьдрах хугацаатай тасалбарыг авах хүсэлт илгээж болох юм. Хэрэв та өөрийн KDC дээр алдааг олж засварлахын тулд пакет шиншлэгч ажиллуулж дараа нь ажлын станцаасаа kinit-ийг ажиллуулахад kinit-ийг ажилласан даруй таны TGT илгээгдэхийг — таныг бүр нууц үгээ бичихээс өмнө та харах болно! Үүний тайлбар нь Kerberos сервер чөлөөтэйгээр TGT-ийг (Ticket Granting Ticket буюу Тасалбар Баталгаажуулах Тасалбар) ямар ч танигдаагүй хүсэлтэд дамжуулдаг; гэхдээ TGT бүр хэрэглэгчийн нууц үгээс гарсан түлхүүр болон шифрлэгдсэн байдаг. Тийм болохоор хэрэглэгч өөрсдийн нууц үгийг бичихэд тэр нь KDC уруу илгээгддэггүй бөгөөд харин kinit-ийн аль хэдийн олж авсан TGT-г буцааж шифрлэхэд (decrypt) ашиглагддаг. Хэрэв буцааж шифрлэх процесс хүчинтэй хугацаа бүхий хүчинтэй тасалбарыг гаргаж авбал хэрэглэгч хүчинтэй Kerberos итгэмжлэлүүдтэй байна. Эдгээр итгэмжлэлүүд нь ирээдүйд Kerberos сервертэй аюулгүй холболтууд хийхэд зориулагдсан сессийн түлхүүр болон бас Kerberos серверийн өөрийнх нь түлхүүрээр шифрлэгдсэн тасалбар-баталгаажуулах тасалбарыг агуулдаг. Шифрлэлтийн хоёр дахь давхарга нь хэрэглэгчид мэдэгддэггүй, гэхдээ энэ нь TGT бүрийн жинхэнийг шалгахыг Kerberos серверт зөвшөөрч байгаа тэр зүйл юм. Хэрэв та урт амьдрах хугацаатай (жишээ нь долоо хоног) тасалбар ашиглахыг хүсэж байгаа бөгөөд та тасалбар хадгалагдаж байгаа машин уруу OpenSSH ашиглан холбогдож байгаа бол Kerberos тохируулга no гэж sshd_config тохиргооны файлд байгаа эсэхийг шалгаарай, тэгэхгүй бол таны тасалбарууд таныг гарах үед устгагдах болно. Хостын удирдагчид илүү урт амьдрах хугацаатай тасалбартай бас байж болно гэдгийг санаарай. Хэрэв таны хэрэглэгчийн удирдагч долоо хоног амьдрах хугацаатай бөгөөд гэхдээ таны холбогдож байгаа хост 9 цаг амьдрах хугацаатай бол та кэшдээ хугацаа нь дууссан хостын удирдагчтай болж тасалбарын кэш хүссэнээр ажиллахгүй болох болно. Тусгайлсан муу нууц үгүүдийг ашиглуулахгүйн тулд (kadmind тушаалын гарын авлагын хуудас үүнийг товчхон тайлбарладаг) krb5.dict файлыг тохируулахдаа нууц үгийн бодлого тавигдсан удирдагчдад энэ нь зөвхөн хамаатайг санах хэрэгтэй. krb5.dict файлуудын хэлбэр хялбар байдаг: нэг мөрт нэг үг (string) байна. /usr/share/dict/words симболын холбоос үүсгэх нь ашигтай байж болох юм. <acronym>MIT</acronym> портоос ялгаатай талууд MIT болон Heimdal суулгацуудын гол ялгаа нь өөр (гэхдээ орлуулж болох) тушаалууд болон өөр протоколууд ашигладаг kadmin програмтай холбоотой юм. Хэрэв таны KDC нь MIT бол та Heimdal kadmin програмыг ашиглаж өөрийн KDC-г алсаас (эсвэл эсрэг чиглэлд энэ зорилгоор) удирдаж чадахгүй болдог учир энэ нь их хамаатай юм. Клиент програмууд нь бас шал өөр өөр тушаалын мөрийн тохируулгууд авч адил үүргийг гүйцэтгэж болох юм. MIT Kerberos вэб сайт () дээрх заавруудыг дагахыг зөвлөж байна. Замын асуудлуудаас болгоомжлоорой: MIT порт нь анхдагчаар /usr/local/ уруу суудаг бөгөөд хэрэв таны PATH орчны хувьсагч системийн сангуудыг эхлээд жагсаадаг бол жирийн системийн програмууд MIT-ийн оронд ажиллаж болохыг санаарай. telnetd болон klogind-ээр нэвтрэх нэвтрэлтүүд нэг л хачин байдаг тэр шалтгааныг ойлгохыг хүсвэл &os;-ийн хангадаг MIT security/krb5 портын суулгасан /usr/local/share/doc/krb5/README.FreeBSD файлыг унших хэрэгтэй. Хамгийн чухал нь кэш файл дахь буруу зөвшөөрлүүдийг зөв болгох нь дамжуулагдсан итгэмжлүүдийн эзэмшилтийг зөвөөр солих login.krb5 хоёртын файлыг нэвтрэлт танилтад ашиглахыг шаарддаг. rc.conf файл дараах тохиргоог агуулж засварлагдсан байх бас шаардлагатай: kerberos5_server="/usr/local/sbin/krb5kdc" kadmind5_server="/usr/local/sbin/kadmind" kerberos5_server_enable="YES" kadmind5_server_enable="YES" MIT керберосд зориулсан програмууд /usr/local санд хоёртын файлуудыг суулгадаг болохоор ингэж хийгддэг. <application>Kerberos</application> дахь хязгааруудыг багасгах Kerberos5 хязгаарууд болон дутагдлууд <application>Kerberos</application> нь бүгдийг эсвэл юуг ч биш гэсэн арга юм Сүлжээнд идэвхжүүлэгдсэн үйлчилгээ бүр Kerberos-тэй ажиллахаар засварлагдсан (эсвэл сүлжээний халдлагуудын эсрэг аюулгүй байдлыг хангасан) байх шаардлагатай, тэгэхгүй бол хэрэглэгчдийн итгэмжлэлүүд хулгайлагдаж дахин ашиглагдаж болох юм. Үүний нэг жишээ нь бүх алсын бүрхүүлүүдийг (жишээ нь rsh болон telnet) Kerberos хийн идэвхжүүлсэн мөртлөө нууц үгүүдийг цэвэр текстээр илгээдэг POP3 захидлын серверийг тэгж хувиргахгүй байх явдал юм. <application>Kerberos</application> нь ганц хэрэглэгчийн ажлын станцуудад зориулагдсан Олон хэрэглэгчийн орчинд Kerberos нь тийм ч аюулгүй биш юм. Энэ нь тасалбаруудыг бүх хэрэглэгчийн хувьд уншигдаж болох /tmp санд хадгалдаг учраас тэр юм. Хэрэв хэрэглэгч компьютераа хэд хэдэн бусад хүмүүстэй зэрэг харилцан хуваалцаж байвал (өөрөө хэлбэл олон-хэрэглэгч) хэрэглэгчийн тасалбаруудыг өөр хэрэглэгч хулгайлах (хуулан авах) боломжтой юм. Үүнийг -c файлын нэрийн тушаалын мөрийн тохируулгатай эсвэл (илүү зохимжтой) KRB5CCNAME орчны хувьсагчтайгаар даван гарч болох юм, гэхдээ ингэх нь их ховор байдаг. Зарчмын хувьд тасалбарыг хэрэглэгчдийн гэр санд хадгалж хялбар файлын зөвшөөрлүүдийг ашиглах нь энэ асуудлыг багасгадаг. KDC нь бүтэлгүйтлийн ганц цэг Дизайнаараа бол KDC нь мастер нууц үгийн мэдээллийн баазаас тогтох бөгөөд түүний нэгэн адил аюулгүй байх ёстой. KDC нь үүн дээр өөр ямар ч үйлчилгээнүүд ажиллуулсан байх ёсгүй бөгөөд физикээр аюулгүй байдлыг нь хангасан байх шаардлагатай. Kerberos нь ижил түлхүүрээр (мастер түлхүүр) шифрлэгдсэн бүх нууц үгүүдийг хадгалдаг бөгөөд тэр ижил түлхүүр нь эргээд KDC дээр файл маягаар хадгалагддаг учраас аюул өндөртэй байдаг. Тэмдэглэн хэлэхэд булаан эзлэгдсэн мастер түлхүүр нь хэн нэг нь айхаар тийм ч муу биш юм. Түлхүүр үг нь зөвхөн Kerberos мэдээллийн баазыг шифрлэхэд болон санамсаргүй тоо үүсгэгчийн үр болон хэрэглэгддэг. Таны KDC уруу хандахад аюулгүй л байж байвал халдагч мастер түлхүүрээр их юм хийж чадахгүй. Мөн нэмж хэлэхэд хэрэв KDC нь боломжгүй байвал (магадгүй үйлчилгээ зогсоох халдлага эсвэл сүлжээний асуудлуудаас болоод) сүлжээний үйлчилгээнүүд нь нэвтрэлт танилтыг хийж болохгүй болохоор хэрэглэгдэх боломжгүй болох бөгөөд нэг ёсны үйлчилгээ зогсоох халдлагын рецепт болох юм. Үүнийг олон KDC-тэй (нэг мастер болон нэг буюу хэд хэдэн боолууд) болон хоёрдогч эсвэл нэмэлт, эцсийн нэвтрэлт таних (PAM нь энэнд маш сайн) болгоомжтой шийдлийн тусламжтайгаар даван гарч болох юм. <application>Kerberos</application>-ийн дутагдлууд Kerberos нь хэрэглэгчид, хостууд болон үйлчилгээнүүдэд өөр хоорондоо бие биенээ таниулах боломжийг олгодог. Гэхдээ энэ нь KDC-г хэрэглэгчид, хостууд эсвэл үйлчилгээнүүдэд таниулах аргагүй юм. Энэ нь троян хийгдсэн kinit (жишээ нь) тушаал бүх хэрэглэгчийн нэрс болон нууц үгүүдийг бүртгэн бичиж авч болно гэсэн үг юм. security/tripwire ч юм уу эсвэл өөр бусад файлын системийн бүрэн бүтэн байдлыг шалгах хэрэгслүүд үүнийг арилгаж чадна. Эх сурвалжууд болон нэмэлт мэдээллүүд Kerberos5 гадаад эх сурвалжууд Kerberos-ийн FAQ Танин шалгах системийг дизайн хийх нь: Дөрвөн үзэгдэл дэх харилцан яриа (диалог) RFC 1510, Kerberos Сүлжээний Танин Шалгах Үйлчилгээ (V5) MIT Kerberos-ийн гэр хуудас Heimdal Kerberos-ийн гэр хуудас Том Рөүдс Бичсэн OpenSSL аюулгүй байдал OpenSSL Олон хэрэглэгчдийн хайдаг нэг боломж нь &os;-д байдаг OpenSSL багаж юм. OpenSSL нь ердийн холбооны давхарга дээр шифрлэлт дамжуулах давхаргыг хангаж өгдөг; ингэснээр түүнийг сүлжээний програмууд болон үйлчилгээнүүдтэй холбож өгөх боломжийг олгодог. OpenSSL-ийн зарим нэг хэрэглээнд захидлын клиентүүдийн шифрлэсэн нэвтрэлт, кредит картаар хийх төлбөрүүд гэх мэт вэб дээр тулгуурласан шилжүүлгүүд зэрэг олныг дурдаж болно. www/apache13-ssl болон mail/sylpheed-claws зэрэг олон портууд нь OpenSSL-тэй бүтээх эмхэтгэлийн дэмжлэгийг санал болгодог. Ихэнх тохиолдолд Портуудын Цуглуулга нь make хувьсагч WITH_OPENSSL_BASE-ийг yes гэж заагаагүй тохиолдолд security/openssl портыг бүтээхийг оролддог. &os;-д орсон OpenSSL-ийн хувилбар нь Secure Sockets Layer v2/v3 (SSLv2/SSLv3) буюу Аюулгүй Сокетуудын Давхаргын v2/v3 хувилбарууд, Transport Layer Security v1 (TLSv1) буюу Тээврийн Давхаргын Аюулгүй байдлын v1 хувилбарын сүлжээний аюулгүй байдлын протоколуудыг дэмждэг бөгөөд ерөнхий криптограф сан болон ашиглагдаж болох юм. OpenSSL нь IDEA алгоритмийг дэмждэг боловч Нэгдсэн Улсын патентуудаас болоод анхдагчаар хаалттай байдаг. Үүнийг ашиглахын тулд лицензийг шалгасан байх ёстой бөгөөд хэрэв хязгаарлалтуудыг хүлээн авах боломжтой бол MAKE_IDEA хувьсагчийг make.conf файлд заагж өгөх ёстой байдаг. OpenSSL-ийн хамгийн түгээмэл хэрэглээний нэг бол програм хангамжуудад зориулан ашиглах сертификатуудыг бэлдэх явдал юм. Эдгээр сертификатууд нь компани болон хувь хүмүүсийн итгэмжлэлүүдийг хүчинтэй бөгөөд луйврын биш гэдгийг баталгаажуулдаг. Хэрэв асуудалтай сертификат хэд хэдэн Certificate Authorities эсвэл CA-ууд буюу Сертификатын Эрх мэдэлтнүүдээр шалгагдаагүй бол ихэвчлэн анхааруулга үзүүлдэг. Сертификатын Эрх мэдэлтэн нь VeriSign зэрэг компани байдаг бөгөөд компаниуд эсвэл хувь хүмүүсийн итгэмжлэлүүдийг хүчин төгөлдөр болгохын тулд сертификатуудыг баталгаажуулж өгдөг. Энэ процесс нь өртөгтэй бөгөөд сертификатууд ашиглахад заавал ч үгүй шаардлага болдоггүй; гэхдээ энэ нь паранойд буюу хэт зовнисон хэрэглэгчдийн заримын санааг тайвшруулж болох юм. Сертификатуудыг үүсгэх нь OpenSSL сертификат үүсгэлт Сертификат үүсгэхийн тулд дараах тушаал байдаг: &prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem Generating a 1024 bit RSA private key ................++++++ .......................................++++++ writing new private key to 'cert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []:Systems Administrator Common Name (eg, YOUR name) []:localhost.example.org Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:SOME PASSWORD An optional company name []:Another Name Common Name хүлээх мөрийн дараах хариу домэйны нэрийг харуулж байгааг анзаараарай. Энэ мөр нь шалгалт хийх зорилгоор серверийн нэрийг оруулахыг шаарддаг; домэйн нэрээс бусдыг байрлуулах нь ашиггүй сертификат үүсэхэд хүргэдэг. Бусал тохируулгууд, жишээ нь дуусах хугацаа, өөр шифрлэх алгоритмууд гэх мэт тохируулгууд байдаг. Бүрэн гүйцэд жагсаалтыг &man.openssl.1; гарын авлагын хуудсыг үзэн авч болно. Дээрх тушаалын ажилласан санд хоёр файл одоо байж байх ёстой. Сертификатын хүсэлт req.pem нь таны оруулсан итгэмжлэлүүдийг хүчин төгөлдөр болгож хүсэлтийг баталгаажуулан сертификатыг танд буцаах сертификатын эрх мэдэлтэн уруу илгээгдэж болно. Үүсгэгдсэн хоёр дахь файл нь cert.pem гэж нэрлэгдэн сертификатын хувийн түлхүүр болох бөгөөд ямар ч байсан гэсэн хамгаалагдсан байх ёстой; хэрэв энэ нь бусдын гарт орох юм бол таны (эсвэл таны серверийн) дүрд тоглон ашиглагдаж болох юм. CA-с гарын үсэг шаарддаггүй тохиолдолд өөрөө зурсан сертификатыг үүсгэж болно. Эхлээд RSA түрхүүр үүсгэх хэрэгтэй: &prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024 Дараа нь CA түлхүүр үүсгэ: &prompt.root; openssl gendsa -des3 -out myca.key myRSA.key Сертификат үүсгэхийн тулд энэ түлхүүрийг ашигла : &prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt Санд хоёр шинэ файл үүсэх ёстой: сертификатын эрх мэдэлтний гарын үсгийн файл myca.key болон сертификат өөрөө new.crt байна. Эдгээрийг зөвхөн root унших эрхтэй /etc санд байрлуулах шаардлагатай. Үүнд 0700 зөвшөөрөл байж болох бөгөөд түүнийг chmod хэрэгсэл ашиглан тохируулж болно. Сертификатуудыг ашиглах нь, жишээ Тэгэхээр эдгээр файлууд нь юу хийж чадах вэ? Сайн хэрэглээ болох нэг жишээ нь Sendmail MTA уруу хийгдэх холболтуудыг шифрлэх байж болно. Энэ нь локал MTA ашиглан захидал илгээх хэрэглэгчдийн цэвэр текст нэвтрэлтийн хэрэглээг болиулах юм. Зарим MUA-ууд нь хэрэв хэрэглэгчид дотроо сертификат суулгаагүй бол тэдэнд алдааг харуулдаг болохоор энэ нь ертөнц дээрх хамгийн шилдэг хэрэглээ биш юм. Сертификат суулгах тухай илүү мэдээллийг програм хангамжтай цуг ирсэн баримтаас үзэх хэрэгтэй. Дотоод .mc файл дотор дараах мөрүүдийг байрлуулах хэрэгтэй: dnl SSL Options define(`confCACERT_PATH',`/etc/certs')dnl define(`confCACERT',`/etc/certs/new.crt')dnl define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl Дээрх /etc/certs/ нь сертификат болон түлхүүр файлуудыг дотооддоо хадгалах сан юм. Сүүлийн хэдэн шаардлагууд нь дотоод .cf файлын дахин бүтээлт юм. Үүнийг /etc/mail сан дотроос make install тушаал бичин хийж болно. Ингэсний дараа make restart тушаалыг ажиллуулаарай, энэ нь Sendmail дэмонг эхлүүлэх ёстой. Хэрэв бүгд зүгээр болж өнгөрвөл /var/log/maillog файлд ямар ч алдаа бичигдэхгүй бөгөөд Sendmail процессийн жагсаалтад харуулагдана. Хялбар тест хийхийн тулд &man.telnet.1; хэрэгсэл ашиглан захидлын серверт холбогдох хэрэгтэй: &prompt.root; telnet example.com 25 Trying 192.0.34.166... Connected to example.com. Escape character is '^]'. 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) ehlo example.com 250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP quit 221 2.0.0 example.com closing connection Connection closed by foreign host. Хэрэв STARTTLS мөр гарч ирвэл бүгд зөв ажиллаж байна. Ник Клэйтон
nik@FreeBSD.org
Бичсэн
IPsec IPsec дээгүүр VPN хийх FreeBSD гарц машинуудыг ашиглан Интернэтээр тусгаарлагдсан хоёр сүлжээний хооронд VPN үүсгэх. Хитэн М. Пандиа
hmp@FreeBSD.org
Бичсэн
IPsec-ийг ойлгох нь Энэ хэсэг нь IPsec-ийг тохируулах процессийг тайлбарлах болно. IPsec-ийг тохируулахын тулд та өөрчлөн тохируулсан цөм бүтээх ухагдахууныг мэдсэн байх шаардлагатай (-г үзнэ үү). IPsec нь Интернэт Протокол (IP) давхаргын дээр суудаг протокол юм. Энэ нь хоёр буюу хэд хэдэн хостуудыг аюулгүй байдлаар (нэрээс нь харах юм бол) холбох боломжийг олгодог. FreeBSD IPsec сүлжээний стек нь IPv4 болон IPv6 протоколуудыг хоёуланг дэмждэг KAME шийдэл дээр үндэслэсэн. IPsec ESP IPsec AH IPsec нь хоёр дэд протоколоос тогтоно: Encapsulated Security Payload (ESP) буюу Хайрцаглагдсан Аюулгүй байдлын ачаа нь гуравдагчийн нөлөөллөөс тэгш хэмт криптограф алгоритмийг (Blowfish, 3DES-тэй адил) ашиглан агуулгыг нь шифрлэж IP пакетийн өгөгдлийг хамгаалдаг. Authentication Header (AH) буюу Нэвтрэлт Танилтын Толгой нь аюулгүй хэш хийх функцаар IP пакетийн толгойн талбаруудыг хэш хийн криптограф хянах нийлбэрийг тооцоолон гуравдагч этгээдийн нөлөөлөл болон хууран мэхлэлтээс IP пакетийн толгойг хамгаалдаг. Үүний дараа пакет дахь мэдээллийг таниулахыг зөвшөөрөх хэшийг агуулсан нэмэлт толгой байдаг. ESP болон AH нь орчноосоо хамаараад хоёулаа цуг эсвэл тусдаа ашиглагдаж болно. VPN виртуал хувийн сүлжээ VPN IPsec нь хоёр хостын хоорондох урсгалыг шууд шифрлэх (Transport Mode буюу Тээвэрлэх Горим гэгддэг) буюу эсвэл хоёр корпорацийн сүлжээний хооронд аюулгүй холбоонд ашиглагдаж болох виртуал туннелиуд (Tunnel Mode буюу Туннелийн Горим гэгддэг) бүтээхэд хэрэглэгдэж болох юм. Сүүлийнх нь ерөнхийдөө Виртуал Хувийн Сүлжээ (VPN) гэгддэг. FreeBSD-ийн IPsec дэд системийн талаар дэлгэрэнгүй мэдээллийг &man.ipsec.4; гарын авлагын хуудаснаас лавлах хэрэгтэй. Өөрийн цөмдөө IPsec дэмжлэгийг нэмэхийн тулд та дараах тохируулгуудыг цөмийн тохиргоондоо нэмээрэй: цөмийн тохируулгууд IPSEC options IPSEC #IP security device crypto цөмийн тохируулгууд IPSEC_DEBUG Хэрэв IPsec дибаг хийх дэмжлэг заавал хэрэгтэй бол дараах цөмийн тохируулга бас нэмэгдсэн байх шаардлагатай: options IPSEC_DEBUG #debug for IP security
Асуудал VPN-ийг байгуулахад ямар нэг стандарт байхгүй. VPN-үүд нь өөр өөрийн давуу болон сул талуудтай төрөл бүрийн технологиудыг ашиглан хийгдэж болно. Энэ хэсэг нь нэг тохиолдлын загвар үзүүлэх бөгөөд энэ тохиолдол дахь VPN-ийг хийхэд хэрэглэгдэх стратегиудыг харуулах болно. Тохиолдол: Хоёр сүлжээ, нэг нь гэрийн нэг нь ажлын. Хоюулаа Интернэтэд холбогдсон бөгөөд энэ <acronym>VPN</acronym>-ээр нэг юм шиг ажиллах сүлжээ. VPN үүсгэх Угтвар нөхцөл дараах маягийн байна: Та хамгийн багадаа хоёр сайттай байна Хоёр сайт хоёулаа IP-г дотооддоо ашигладаг FreeBSD дээр нь ажилладаг гарц компьютераар хоёр сайт хоёулаа Интернэтэд холбогдсон. Хоёр сүлжээний гарц компьютер бүр хамгийн багаар бодоход нэг нийтийн IP хаягтай. Хоёр сүлжээний дотоод хаягууд нь нийтийн эсвэл хувийн IP хаягууд байж болох юм, энэ нь хамаагүй. Тэдгээр нь давхцахгүй байх ёстой, өөрөөр хэлбэл хоюулаа 192.168.1.x-г ашиглаж болохгүй юм. Том Рөүдс
trhodes@FreeBSD.org
Бичсэн
IPsec-ийг &os; дээр тохируулах нь Эхлээд security/ipsec-tools портын цуглуулгаас суусан байх шаардлагатай. Энэ гуравдагч талын програм хангамжийн багц нь тохиргоог дэмжихэд туслах хэд хэдэн програмуудыг агуулдаг. Дараагийн шаардлага нь пакетуудыг тунель хийх болон хоёр сүлжээг зөв холбогдоход ашиглагдах хоёр &man.gif.4; псевдо төхөөрөмжийг үүсгэх явдал юм. root хэрэглэгчээр internal болон external гэсэн утгуудыг жинхэнэ дотоод болон гадаад гарцуудаар өөрчлөн дараах тушаалыг ажиллуулна: &prompt.root; ifconfig gif0 create &prompt.root; ifconfig gif0 internal1 internal2 &prompt.root; ifconfig gif0 tunnel external1 external2 Жишээ нь ажлын LAN-ий нийтийн IP нь 172.16.5.4 бөгөөд хувийн IP нь 10.246.38.1 байна. Гэрийн LAN-ий нийтийн IP нь 192.168.1.12 бөгөөд дотоод хувийн IP нь 10.0.0.5 байна. Энэ нь толгой эргэмээр санагдаж болох бөгөөд &man.ifconfig.8; тушаалын дараах жишээ үр дүнгээс харна уу: Gateway 1: gif0: flags=8051 mtu 1280 tunnel inet 172.16.5.4 --> 192.168.1.12 inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6 inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00 Gateway 2: gif0: flags=8051 mtu 1280 tunnel inet 192.168.1.12 --> 172.16.5.4 inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00 inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4 Хийгдэж дууссаны дараа хоёр хувийн IP-д &man.ping.8; тушаал ашиглан дараах үр дүнд харуулсан шиг хүрэх боломжтой байх ёстой: priv-net# ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5): 56 data bytes 64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms 64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms 64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms 64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms --- 10.0.0.5 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms corp-net# ping 10.246.38.1 PING 10.246.38.1 (10.246.38.1): 56 data bytes 64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms 64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms 64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms 64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms 64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms --- 10.246.38.1 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms Хүсэн хүлээж байсны дагуу хоёр тал хоюулаа хувийн тохируулсан хаягаасаа ICMP пакетуудыг илгээх болон хүлээн авах боломжтой байна. Дараа нь аль аль сүлжээнээс урсгалыг зөв илгээдэг байхын тулд хоёр гарцад хоюуланд нь пакетуудыг хэрхэн яаж чиглүүлэхийг зааж өгөх ёстой. Энэ зорилгод дараах тушаал хүрнэ: &prompt.root; corp-net# route add 10.0.0.0 10.0.0.5 255.255.255.0 &prompt.root; corp-net# route add net 10.0.0.0: gateway 10.0.0.5 &prompt.root; priv-net# route add 10.246.38.0 10.246.38.1 255.255.255.0 &prompt.root; priv-net# route add host 10.246.38.0: gateway 10.246.38.1 Энэ үе хүрэхэд дотоод машинууд нь аль аль гарц болон гарцын цаана байгаа машинуудаас хүрэх боломжтой байх ёстой. Үүнийг хялбараар дараах жишээнээс тодорхойлж болно: corp-net# ping 10.0.0.8 PING 10.0.0.8 (10.0.0.8): 56 data bytes 64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms 64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms 64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms 64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms 64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms --- 10.0.0.8 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms priv-net# ping 10.246.38.107 PING 10.246.38.1 (10.246.38.107): 56 data bytes 64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms 64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms 64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms 64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms 64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms --- 10.246.38.107 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms Тунелиуд үүсгэж тохируулах нь хялбар хэсэг юм. Аюулгүй холбоосыг тохируулах нь илүү гүнзгий процесс юм. Дараах тохиргоо нь урьдчилан хуваалцсан (PSK) RSA түлхүүрүүдийг ашиглаж байна. IP хаягаас гадна хоёр /usr/local/etc/racoon/racoon.conf файл хоюулаа адил бөгөөд доорхтой төстэй байна. path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete padding # options are not to be changed { maximum_length 20; randomize off; strict_check off; exclusive_tail off; } timer # timing options. change as needed { counter 5; interval 20 sec; persend 1; # natt_keepalive 15 sec; phase1 30 sec; phase2 15 sec; } listen # address [port] that racoon will listening on { isakmp 172.16.5.4 [500]; isakmp_natt 172.16.5.4 [4500]; } remote 192.168.1.12 [500] { exchange_mode main,aggressive; doi ipsec_doi; situation identity_only; my_identifier address 172.16.5.4; peers_identifier address 192.168.1.12; lifetime time 8 hour; passive off; proposal_check obey; # nat_traversal off; generate_policy off; proposal { encryption_algorithm blowfish; hash_algorithm md5; authentication_method pre_shared_key; lifetime time 30 sec; dh_group 1; } } sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp) { # $network must be the two internal networks you are joining. pfs_group 1; lifetime time 36000 sec; encryption_algorithm blowfish,3des,des; authentication_algorithm hmac_md5,hmac_sha1; compression_algorithm deflate; } Тохируулга бүрийг энэ жишээн дээр жагсаагдсантай нь тайлбарлах нь энэ баримтын хүрээнээс гадуур юм. racoon-ий тохиргооны гарын авлагын хуудсанд холбогдох мэдээлэл олон бий. &os; болон racoon нь хостуудын хооронд сүлжээний урсгалыг нууцлах болон буцааж задалж чаддаг байхын тулд SPD бодлогуудыг тохируулсан байх ёстой. Энэ үйлдлийг дараах ажлын гарц дээрх шиг энгийн бүрхүүлийн скриптээр шийдэж болно. Энэ файлыг системийг эхлүүлэх үед ашиглах бөгөөд /usr/local/etc/racoon/setkey.conf гэж хадгалах ёстой. flush; spdflush; # To the home network spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use; spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use; Ингэсний дараа racoon-г хоёр гарц дээр дараах тушаал ашиглан эхлүүлнэ: &prompt.root; /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log Гарах үр дүнд нь доорхтой төстэй байна: corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf Foreground mode. 2006-01-30 01:35:47: INFO: begin Identity Protection mode. 2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon 2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon 2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a 2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0] 2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=28496098(0x1b2d0e2) 2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47784998(0x2d92426) 2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0] 2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=124397467(0x76a279b) 2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=175852902(0xa7b4d66) Тунель зөв ажиллаж байгааг шалгахын тулд нөгөө консол руу шилжиж сүлжээний урсгалыг харахын тулд &man.tcpdump.1; ашиглан дараах тушаалыг хэрэглэнэ. em0-ийг сүлжээний интерфэйс картаараа шаардлагатай бол солиорой. &prompt.root; tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12 Доорхтой төстэй өгөгдөл консол дээр гарах ёстой. Хэрэв үгүй бол асуудалтай гэсэн үг бөгөөд буцаасан өгөгдлийг дибаг хийх шаардлагатай. 01:47:32.021683 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa) 01:47:33.022442 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb) 01:47:34.024218 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc) Энд хүрэхэд хоёр сүлжээ хүрэх боломжтой байх бөгөөд нэг сүлжээний хэсэг юм шиг харагдах болно. Хоёр сүлжээ нь аль аль нь галт ханаар хамгаалагдсан байж болох бөгөөд ингэх ч ёстой юм. Тэдгээрийн хооронд урсгалыг зөвшөөрөхийн тулд пакетуудыг нааш цааш дамжуулах дүрмүүдийг нэмэх шаардлагатай. &man.ipfw.8; галт ханын хувьд галт ханын тохиргооны файлдаа дараах дүрмүүдийг нэмээрэй: ipfw add 00201 allow log esp from any to any ipfw add 00202 allow log ah from any to any ipfw add 00203 allow log ipencap from any to any ipfw add 00204 allow log udp from any 500 to any Дүрмийн дугааруудыг тухайн хостын тохиргооноос хамаарч өөрчлөх шаардлагатай байж болох юм. &man.pf.4; эсвэл &man.ipf.8;,-ийн хэрэглэгчдийн хувьд дараах дүрмүүд үүнийг хийх болно: pass in quick proto esp from any to any pass in quick proto ah from any to any pass in quick proto ipencap from any to any pass in quick proto udp from any port = 500 to any port = 500 pass in quick on gif0 from any to any pass out quick proto esp from any to any pass out quick proto ah from any to any pass out quick proto ipencap from any to any pass out quick proto udp from any port = 500 to any port = 500 pass out quick on gif0 from any to any Төгсгөлд нь системийг эхлүүлэх явцад VPN-ийг машин дэмжин ажиллаж эхэлдэг байлгахын тулд дараах мөрүүдийг /etc/rc.conf файлд нэмэх хэрэгтэй: ipsec_enable="YES" ipsec_program="/usr/local/sbin/setkey" ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot racoon_enable="yes"
Шерн Ли Хувь нэмэр болгон оруулсан OpenSSH OpenSSH аюулгүй байдал OpenSSH OpenSSH нь алсын машинуудад аюулгүйгээр хандах сүлжээний холболтын хэрэгслүүдийн олонлог юм. rlogin, rsh, rcp, болон telnet-ийг энэ програмаар шууд орлуулан ашиглаж болно. Мөн TCP/IP холболтууд аюулгүйгээр SSH-ээр туннель хийгдэж/дамжуулагдаж болдог. OpenSSH нь сэм чагналт, холболт булаан авалт, болон бусад сүлжээний түвшний халдлагуудыг үр дүнтэйгээр устгаж бүх трафикийг шифрлэдэг. OpenSSH-г OpenBSD төсөл дэмжиж байдаг бөгөөд бүх сүүлийн үеийн алдааны засварууд болон шинэчлэлтүүд бүхий SSH v1.2.12 дээр тулгуурласан байдаг. Энэ програм нь SSH протокол 1 болон 2-той хоёулантай нь нийцтэй. OpenSSH-ийг ашиглах давуу тал &man.telnet.1; эсвэл &man.rlogin.1; ашиглаж байх үед сүлжээгээр илгээгдэж байгаа өгөгдөл цэвэр, шифрлэгдээгүй хэлбэрээр байдаг. Сүлжээний шиншлэгчид клиент болон серверийн хооронд хаана ч байсан гэсэн таны хэрэглэгч/нууц үгийн мэдээлэл эсвэл таны сессээр дамжсан өгөгдлийг хулгайлж чадна. OpenSSH нь ийм асуудлаас хамгаалж төрөл бүрийн нэвтрэлт таних болон шифрлэх аргуудыг санал болгодог. sshd-г идэвхжүүлэх OpenSSH идэвхжүүлэх sshd нь стандарт &os; суулгацын явцад харуулагдах тохируулга юм. sshd идэвхжсэн эсэхийг харахдаа rc.conf файлаас дараах мөрийг шалгаарай: sshd_enable="YES" Энэ нь дараагийн удаа таны систем эхлэхэд OpenSSH-д зориулсан &man.sshd.8; дэмон програмыг дуудна. Мөн /etc/rc.d/sshd &man.rc.8; скрипт ашиглан OpenSSH-г эхлүүлэх боломжтой байдаг: /etc/rc.d/sshd start SSH клиент OpenSSH клиент &man.ssh.1; хэрэгсэл &man.rlogin.1;-тэй адил ажилладаг. &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes Host 'example.com' added to the list of known hosts. user@example.com's password: ******* Нэвтрэлт нь rlogin эсвэл telnet ашиглан үүсгэгдсэн сесс шиг үргэлжлэх болно. SSH нь хэрэглэгч холбогдоход серверийн жинхэнэ эсэхийг шалгахын тулд түлхүүр хээ шалгах системийг хэрэглэдэг. Хэрэглэгч зөвхөн эхний удаа холбогдоход yes гэж оруулахыг шаардана. Дараа дараагийн нэвтрэлт оролдлогууд бүгд хадгалсан хээ шалгах түлхүүртэй харьцуулагдан шалгагддаг. Хэрэв хадгалсан хээ нь дараа дараагийн нэвтрэлтийн оролдлогуудаас хүлээн авсан хээнээс өөр бол SSH клиент нь танд түгшүүр өгнө. Хээнүүд ~/.ssh/known_hosts файлд эсвэл SSH v2-ийн хээнүүд ~/.ssh/known_hosts2 файлд хадгалагдана. Анхдагчаар OpenSSH серверүүдийн сүүлийн үеийн хувилбарууд зөвхөн SSH v2 холболтуудыг хүлээн авдаг. Клиент нь хэрэв боломжтой бол 2-р хувилбарыг ашиглах бөгөөд боломжгүй бол 1-р хувилбарыг ашигладаг. эсвэл тохируулгуудыг 1-р эсвэл 2-р хувилбаруудад зориулан дамжуулан клиентэд зөвхөн аль нэгийг ашиглахыг хүчилж болно. 1-р хувилбарын нийцтэй байдал нь клиентэд хуучин хувилбаруудтай нийцтэй байх зорилгоор дэмжигдсэн байдаг. Аюулгүй хуулбарлалт OpenSSH аюулгүй хуулбарлалт scp &man.scp.1; тушаал &man.rcp.1;-тэй адил ажилладаг; энэ нь файлыг алсын машинаас эсвэл машин уруу, ялгаатай нь аюулгүйгээр хуулдаг. &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: ******* COPYRIGHT 100% |*****************************| 4735 00:00 &prompt.root; Өмнөх жишээн дээр энэ хостын хувьд хээ нь аль хэдийн хадгалагдсан болохоор &man.scp.1;-ийг энд ашиглах үед шалгагддаг. &man.scp.1;-ээр дамжуулсан нэмэлт өгөгдлүүд нь &man.cp.1;-тэй адил бөгөөд эхний нэмэлт өгөгдөлд файл эсвэл файлууд, хоёр дахь дээр очих файлыг зааж өгдөг. Файл нь сүлжээгээр SSH-ээр татагддаг болохоор файлын нэг эсвэл хэд хэдэн нэмэлт өгөгдлүүд хэлбэрийг авдаг. Тохиргоо OpenSSH тохиргоо OpenSSH дэмон болон клиентийн системийн дагуух тохиргооны файлууд /etc/ssh санд байрладаг. ssh_config клиентийн тохируулгуудыг тохируулдаг бөгөөд sshd_config нь дэмонг тохируулдаг. Мөн (анхдагчаар /usr/sbin/sshd) болон rc.conf тохируулгууд тохиргооны түвшнүүдийг илүүтэйгээр хангадаг. ssh-keygen Нууц үгүүдийг ашиглахын оронд &man.ssh-keygen.1; нь хэрэглэгчийг шалгаж танихад DSA эсвэл RSA түлхүүрүүдийг үүсгэхэд хэрэглэгдэж болно: &prompt.user; ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com &man.ssh-keygen.1; нь шалгаж танихад хэрэглэгдэх нийтийн болон хувийн түлхүүр хослолыг үүсгэнэ. Хувийн түлхүүр ~/.ssh/id_dsa эсвэл ~/.ssh/id_rsa-д хадгалагдах бөгөөд харин нийтийн түлхүүр нь ~/.ssh/id_dsa.pub эсвэл ~/.ssh/id_rsa.pub-д DSA болон RSA түлхүүрийн төрлүүдэд зориулагдан хадгалагддаг. Тохируулга нь ажиллахын тулд нийтийн түлхүүр нь алсын машины ~/.ssh/authorized_keys файлд DSA болон RSA түлхүүрүүдийн хоёулангийнх нь хувьд хийгдэх ёстой байдаг. Үүнтэй адилаар нийтийн түлхүүрүүдийн RSA хувилбар нь ~/.ssh/authorized_keys файлд бас хийгдэх ёстой. Энэ нь нууц үгүүдийн оронд SSH түлхүүрүүдийг ашиглан алсын машин уруу холбогдохыг зөвшөөрөх болно. Хэрэв нэвтрэх үгнүүд &man.ssh-keygen.1;-д ашиглагдаж байгаа бол хувийн түлхүүрийг хэрэглэхийн тулд хэрэглэгчээс нууц үгийг нэвтрэх болгонд асуудаг. &man.ssh-agent.1; нь урт нэвтрэх үгнүүдийг дахин дахин оруулах тэр зовлонг зөөллөж чадах бөгөөд хэсэгт тайлбарлагдсан байгаа болно. Төрөл бүрийн тохируулгууд болон файлууд нь таны систем дээр байгаа OpenSSH-ийн хувилбаруудаас шалтгаалан өөр өөр байдаг; асуудалтай учрахгүйн тулд та &man.ssh-keygen.1; гарын авлагын хуудаснаас лавлах хэрэгтэй. ssh-agent болон ssh-add &man.ssh-agent.1; болон &man.ssh-add.1; хэрэгслүүд нь нэвтрэх үгнүүдийг дахин дахин бичүүлэлгүйгээр SSH түлхүүрүүдийг санах ойд дуудан ашиглаж болох аргуудаар хангадаг. &man.ssh-agent.1; хэрэгсэл нь түүн уруу дуудагдсан хувийн түлхүүр(үүд) ашиглан жинхэнэ эсэхийг шалгах танилтыг зохицуулна. &man.ssh-agent.1; нь өөр програмыг ачаалахад хэрэглэгдэх ёстой. Хамгийн хялбартаа энэ нь бүрхүүл эсвэл илүү дэвшилттэйгээр ашиглавал цонхны удирдагч ажиллуулж болох юм. &man.ssh-agent.1;-ийг бүрхүүлд ашиглахын тулд үүнийг эхлээд бүрхүүлтэй цуг нэмэлт өгөгдөл маягаар ажиллуулах шаардлагатай. Хоёрдугаарт хэн бэ гэдэг мэдээллийг (identity) &man.ssh-add.1;-г ажиллуулан нэмэх хэрэгтэй бөгөөд түүнд хувийн түлхүүрийн нэвтрэх үгнүүдийг өгөх хэрэгтэй. Эдгээр алхмууд хийгдсэний дараа хэрэглэгч харгалзах нийтийн түлхүүр суулгагдсан дурын хост уруу &man.ssh.1; хийж чадах болно. Жишээ нь: &prompt.user; ssh-agent csh &prompt.user; ssh-add Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; X11 дээр &man.ssh-agent.1; хэрэглэхийн тулд &man.ssh-agent.1;-ийн дуудлага ~/.xinitrc-д байх шаардлагатай. Ингэснээр X11-д ачаалагдсан бүх програмуудад &man.ssh-agent.1;-ийн үйлчилгээнүүдийг үзүүлэх болно. Жишээ ~/.xinitrc файл иймэрхүү харагдах болно: exec ssh-agent startxfce4 Энэ нь &man.ssh-agent.1;-ийг ажиллуулах бөгөөд тэр нь эргээд X11 эхлэх бүрт XFCE-ийг ажиллуулна. Ингэж хийгдсэний дараа өөрчлөлтүүд нь үйлчлэхийн тулд X11 дахин эхэлсний хойно өөрийн SSH түлхүүрүүдийг бүгдийг ачаалахын тулд ердөө л &man.ssh-add.1;-ийг ажиллуулаарай. SSH туннель хийх OpenSSH туннель хийх OpenSSH нь шифрлэгдсэн сессийн үед өөр протоколыг хайрцаглах туннель үүсгэх чадвартай байдаг. Дараах тушаал telnet-д зориулж туннель үүсгэхийг &man.ssh.1;-д хэлж өгнө: &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com &prompt.user; ssh тушаал дараах тохируулгуудтай хэрэглэгдэнэ: ssh-ийг протоколын 2-р хувилбарыг ашиглахыг зааж өгнө. (хэрэв та хуучин SSH серверүүдтэй ажиллаж байгаа бол үүнийг битгий ашиглаарай) Тушаал байхгүй эсвэл зөвхөн туннель гэдгийг заана. Хэрэв үүнийг орхивол ssh ердийн сесс эхлүүлнэ. ssh-ийг ард, далд ажиллуулахыг заана. Локал туннелийг localport:remotehost:remoteport загвараар зааж өгнө. Алсын SSH сервер. SSH туннель нь сонсох сокетийг localhost-ийн заагдсан порт дээр үүсгэн ажилладаг. Дараа нь локал хост/порт дээр хүлээн авсан дурын холболтыг SSH-ээр дамжуулан заасан алсын хост болон порт уруу илгээдэг. Жишээн дээр localhost дээрх 5023 порт нь алсын машины localhost дээрх 23 порт уруу дамжуулагдаж байна. 23 нь telnet учир энэ нь SSH туннелээр аюулгүй telnet сесс үүсгэнэ. SMTP, POP3, FTP гэх зэрэг ямар ч аюултай TCP протоколуудын гүйцэтгэлийг хялбаршуулахад үүнийг ашиглаж болно. SMTP-д зориулан SSH ашиглан аюулгүй туннель үүсгэх &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP Үүнийг &man.ssh-keygen.1; болон нэмэлт хэрэглэгчийн бүртгэлүүдтэй цуг илүү үл үзэгдэх/төвөггүй SSH туннель хийх орчин үүсгэхэд ашиглаж болно. Түлхүүрүүд нь нууц үг бичихийн оронд ашиглагдаж болох бөгөөд туннелиуд нь тусдаа хэрэглэгч маягаар ажиллаж чадна. SSH туннелийн практик жишээнүүд POP3 сервер уруу аюулгүй хандах Ажил дээр чинь гаднаас холболтууд хүлээн авах SSH сервер байна. Бас тэр оффисийн сүлжээнд POP3 сервер ажиллуулж байгаа захидлын сервер байна. Таны гэр болон оффисийн хоорондын сүлжээ болон сүлжээний зам итгэж болохоор эсвэл итгэж болохооргүй байж магадгүй юм. Ийм учраас та өөрийн захидлыг аюулгүй аргаар шалгах хэрэгтэй юм. Үүний шийдэл нь өөрийн оффисийн SSH сервер уруу SSH холболт үүсгэж захидлын сервер уруу туннель хийх явдал юм. &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** Туннель эхлэн ажилласны дараа та өөрийн захидлын клиентийнхээ POP3 хүсэлтүүдийг localhost-ийн 2110 порт уруу илгээхээр зааж өгч болно. Эндэх холболт туннелээр аюулгүйгээр дамжин mail.example.com уруу илгээгдэнэ. Хэцүү галт ханыг тойрон гарах Зарим сүлжээний администраторууд хэтэрхий чанга галт ханын дүрэм ашиглан зөвхөн ирж байгаа холболтууд төдийгүй гарч байгаа холболтуудыг ч бас шүүдэг. Танд алсын машинуудад зөвхөн SSH болон вэбээр аялах 22 болон 80-р портуудад хандах боломжийг өгсөн байж болох юм. Та хөгжим цацдаг Ogg Vorbis сервер зэрэг өөр (магадгүй ажилдаа холбоогүй) үйлчилгээ уруу хандахыг магадгүй хүсэж болох юм. Хэрэв энэ Ogg Vorbis сервер нь 22 эсвэл 80-аас бусад өөр порт дээр цацаж байгаа бол та түүнд хандаж чадахгүй юм. Үүний шийдэл нь таны сүлжээний галт ханаас гаднах машин уруу SSH холболт үүсгэж үүнийг Ogg Vorbis сервер уруу туннель хийхэд ашиглах явдал юм. &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* Таны урсгал хүлээн авах клиент одоо localhost-ийн 8888 порт уруу заагдах бөгөөд тэр цаашаагаа галт ханыг амжилттайгаар гэтлэн music.example.com уруу дамжуулагдана. <varname>AllowUsers</varname> хэрэглэгчийн тохируулга Ямар хэрэглэгчид хаанаас орохыг хязгаарлаж өгөх нь зүйтэй юм. AllowUsers тохируулга нь үүнд хүрэх сайн арга юм. Жишээ нь root хэрэглэгчийг зөвхөн 192.168.1.32-оос орохыг зөвшөөрөхийн тулд доор дурдсантай адил тохируулгыг /etc/ssh/sshd_config файлд хийх нь зүйтэй юм: AllowUsers root@192.168.1.32 admin хэрэглэгчийг хаанаас ч орохыг зөвшөөрөхийн тулд ердөө л хэрэглэгчийн нэрийг өөрийг нь жагсааж өгнө: AllowUsers admin Олон хэрэглэгчид нэг мөрөнд жагсаагдах шаардлагатай: AllowUsers root@192.168.1.32 admin Та энэ машин уруу нэвтрэх хэрэгцээтэй хэрэглэгч бүрийг жагсааж өгөх нь чухал юм, тэгэхгүй бол тэдгээр нь орж чадахгүй болно. /etc/ssh/sshd_config-д өөрчлөлтүүд хийснийхээ дараа &man.sshd.8;-д өөрийн тохиргооны файлуудыг дахин дуудахыг дараах тушаалыг ажиллуулж та хэлж өгөх ёстой: &prompt.root; /etc/rc.d/sshd reload Нэмэлт унших материалууд OpenSSH &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; Том Рөүдс Хавь нэмэр болгон оруулсан ACL Файлын системийн хандалт хянах жагсаалтууд Хормын хувилбарууд зэрэг файлын системийн өргөжүүлэлтүүдийн хамтаар FreeBSD 5.0 болон сүүлийн хувилбарууд Файлын системийн хандалт хянах жагсаалтуудын (ACL-ууд) аюулгүй байдлыг санал болгодог. Хандалт Хянах Жагсаалтууд нь стандарт &unix; зөвшөөрлийн загварыг маш нийцтэй (&posix;.1e) аргаар өргөтгөдөг. Энэ боломж нь администраторт илүү төвөгтэй аюулгүй байдлын загвар болон түүний давуу талыг ашиглахыг зөвшөөрдөг. UFS файлын системүүдэд ACL дэмжлэгийг идэвхжүүлэхийн тулд дараах: options UFS_ACL тохируулгыг цөмд эмхэтгэх шаардлагатай. Хэрэв энэ тохируулга эмхэтгэгдээгүй бол ACL-ууд дэмжих файлын системийг холбохыг оролдоход анхааруулах мэдэгдэл дэлгэцэд гардаг. Энэ тохируулга GENERIC цөмд орсон байдаг. ACL-ууд нь файлын систем дээр өргөтгөсөн шинж чанаруудыг идэвхжүүлсэн дээр тулгуурладаг. Өргөтгөсөн шинж чанарууд нь дараа үеийн &unix; файлын систем UFS2-д төрөлхийн дэмжигдсэн байдаг. UFS1 дээр өргөтгөсөн шинж чанаруудыг тохируулахад UFS2 дээр тохируулахтай харьцуулбал илүү удирдлагын зардал шаардлагатай байдаг. UFS2 дээрх өргөтгөсөн шинж чанаруудын ажиллагаа нь бас бодитойгоор илүү байдаг. Иймээс UFS2UFS1-ийн оронд хандалт хянах жагсаалтуудад ашиглахыг ерөнхийдөө зөвлөдөг. ACL-ууд нь /etc/fstab файлд нэмэгдэж өгч болох холбох үеийн удирдлагын тугаар идэвхтэй болдог. Файлын системийн толгой дахь супер блокийн ACL-ууд тугийг өөрчлөхийн тулд &man.tunefs.8;-ийг ашиглан шургуу замаар холбох үеийн тугийг автоматаар зааж өгч болно. Ерөнхийдөө хэд хэдэн шалтгааны улмаас супер блокийн тугийг ашиглах нь дээр байдаг: Холбх үеийн ACL-ууд туг дахин холболтоор өөрчлөгддөггүй (&man.mount.8; ), зөвхөн бүрэн гүйцэд &man.umount.8; хийгдэж шинэ &man.mount.8; хийгдсэний дараа болно. Энэ нь бас файлын системийг ашиглаж байх үед дарааллыг нь өөрчилж болохгүй гэсэн үг юм. fstab-д мөр байхгүй байсан ч гэсэн эсвэл төхөөрөмжүүдийн дараалал өөрчлөгдсөн ч гэсэн супер блокийн тугийг тохируулах нь файлын системийг үргэлж ACL-уудыг идэвхтэйгээр холбоход хүргэдэг. Энэ нь файлын системийг ACL-уудыг идэвхжүүлэлгүйгээр санамсаргүйгээр холбохоос хамгаалдаг бөгөөд ингэж санамсаргүй холбох нь ACL-уудыг буруугаар албадаж тэгснээр аюулгүй байдлын асуудлуудад хүргэж болох юм. Бид шинэ &man.mount.8; хийлгүйгээр туг идэвхжүүлдгийг зөвшөөрөхөөр ACL-уудын ажиллагааг өөрчилж болох юм, гэхдээ бид ACL-уудыг идэвхжүүлэлгүй санамсаргүйгээр холболт хийхийг болиулахыг хүсдэг бөгөөд учир нь хэрэв та ACL-уудыг идэвхжүүлээд дараа нь болиулаад өргөтгөсөн шинж чанаруудыг устгалгүйгээр дахин идэвхжүүлбэл та өөртөө нэлээн хэцүү асуудал учруулах зүйлийг хийх болно. Ерөнхийдөө та файлын систем дээр ACL-уудыг идэвхжүүлсний дараа файлын хамгаалалтууд нь системийн хэрэглэгчдэд зориулагдсан файлуудтай нийцгүй болж болох учир тэдгээрийг болиулж болохгүй бөгөөд ACL-уудыг дахин идэвхжүүлэх нь зөвшөөрлүүд нь өөрчлөгдсөн байж болох файлуудад өмнөх ACL-уудыг магадгүй дахин холбож өөр тааварлаж болшгүй ажиллагаанд хүргэж болох юм. ACL-ууд идэвхжүүлсэн файлын системүүд өөрсдийн зөвшөөрлийн тохируулгууд дээрээ + (нэмэх) тэмдэг үзэх үед харуулдаг. Жишээ нь: drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html Энд бид directory1, directory2, болон directory3 сангууд бүгд ACL-ууд-ийн давуу талыг авч байгааг харж байна. public_html сан тэгэхгүй байна. <acronym>ACL</acronym>-уудыг ашиглах нь Файлын системийн ACL-уудыг &man.getfacl.1; хэрэгслээр харж болно. Жишээ нь test файл дээрх ACL тохируулгуудыг харахын тулд дараах тушаалыг ажиллуулах хэрэгтэй: &prompt.user; getfacl test #file:test #owner:1001 #group:1001 user::rw- group::r-- other::r-- Энэ файлын ACL тохируулгуудыг өөрчлөхийн тулд &man.setfacl.1; хэрэгслийг ажиллуул. Ажиглаарай: &prompt.user; setfacl -k test туг нь тухайн үед тодорхойлогдсон бүх ACL-уудыг файл эсвэл файлын системээс арилгана. Илүү дээр арга бол ACL-уудыг ажиллуулахад шаардлагатай үндсэн талбаруудыг орхидог тугийг ашиглах явдал юм. &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test Дээр дурдсан тушаал дээр тохируулга анхдагч ACL оруулгуудыг өөрчлөхөд хэрэглэгдсэн. Өмнөх тушаалаар устгагдсан болохоор урьдчилан тодорхойлсон оруулгууд байхгүй учир энэ нь анхдагч тохируулгуудыг сэргээж жагсаасан тохируулгуудаас зааж өгдөг. Хэрэв та систем дээр байхгүй хэрэглэгч эсвэл бүлэг нэмэх бол Invalid argument буюу Буруу нэмэлт өгөгдөл гэсэн алдаа stdout уруу хэвлэгдэнэ гэдгийг санаж байх хэрэгтэй. Том Рөүдс Хувь нэмэр болгон оруулсан Portaudit Гуравдагч талын аюулгүй байдлын асуудлуудыг монитор хийх нь Сүүлийн жилүүдэд эмзэг асуудлын үнэлгээ хэрхэн зохицуулагдаж байгаа тал дээр аюулгүй байдлын ертөнц олон сайжруулалт хийсэн. Одоогийн байгаа бүх л үйлдлийн системүүд дээр гуравдагч талын хэрэгслүүд суулгаж тохируулдгаас болж системийн халдлагын заналхийлэл ихэсдэг. Эмзэг асуудлын үнэлгээ нь аюулгүй байдлын түлхүүр хүчин зүйл бөгөөд &os; нь үндсэн системд зориулан зөвлөгөөнүүдийг гаргадаг боловч гуравдагч талын хэрэгслүүд бүрийн хувьд хийх нь &os; төслийн боломжоос гадуур юм. Мэдэгдэж байгаа асуудлуудыг администраторуудад анхааруулж гуравдагч талын эмзэг асуудлуудыг зөөлрүүлэх арга байдаг. &os;-д нэмэлтээр Portaudit гэгддэг хэрэгсэл зөвхөн энэ зорилгоор байдаг. ports-mgmt/portaudit порт нь &os;-ийн аюулгүй байдлын баг болон портуудын хөгжүүлэгчдийн шинэчилж ажиллагааг нь хангаж байдаг мэдээллийн баазаас мэдэгдэж байгаа аюулгүй байдлын асуудлуудыг шалгадаг. Portaudit-г ашиглаж эхлэхийн тулд Портуудын цуглуулгаас түүнийг суулгах хэрэгтэй: &prompt.root; cd /usr/ports/ports-mgmt/portaudit && make install clean Суулгах процессийн явцад өдөр бүрийн аюулгүй байдлыг шалгах ажиллагаанд Portaudit-н гаралтыг зөвшөөрч &man.periodic.8;-д зориулсан тохиргооны файлуудыг шинэчилдэг. Өдөр тутмын аюулгүй байдлыг шалгах ажиллагаа root-ийн захидлын бүртгэл уруу цахим захидал явуулж түүнийг уг хэрэглэгч уншсан эсэхийг баталгаажуулах хэрэгтэй. Өөр ямар ч илүү тохиргоо энд хэрэггүй. Суулгасны дараа администратор мэдээллийн баазыг шинэчлэх болон суулгасан багцуудад мэдэгдэж байгаа эмзэг асуудлуудыг үзэхдээ дараах тушаалыг ажиллуулна: &prompt.root; portaudit -Fda Мэдээллийн бааз &man.periodic.8; ажиллах үед автоматаар шинэчлэгддэг; иймээс дээрх тушаал заавал шаардлагагүй юм. Энэ нь зөвхөн дараах жишээнүүдэд шаардлагатай. Портуудын цуглуулгын хэсэг болгон суулгагдсан гуравдагч талын хэрэгслүүдийг ямар ч үед аудит хийхдээ администратор зөвхөн дараах тушаалыг ажиллуулах хэрэгтэй: &prompt.root; portaudit -a Portaudit эмзэг асуудалтай багцын хувьд доор дурдсантай адилыг гаргана: Affected package: cups-base-1.1.22.0_1 Type of problem: cups-base -- HPGL buffer overflow vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately. Үзүүлсэн URL уруу вэб хөтчийг чиглүүлж администратор асуудалтай байгаа эмзэг асуудлын талаар дэлгэрэнгүй мэдээллийг олж авч болно. Ийм мэдээлэл нь нөлөөлөх хувилбарууд болон &os;-ийн портын хувилбар, аюулгүй байдлын зөвлөгөөнүүд байж болох өөр бусад вэб сайтуудыг агуулж болох юм. Товчхондоо Portaudit нь хүчирхэг хэрэгсэл бөгөөд Portupgrade порттой цуг хэрэглэхэд маш ашигтай байдаг. Том Рөүдс Хувь нэмэр болгон оруулсан FreeBSD-ийн аюулгүй байдлын зөвлөгөөнүүд &os;-ийн аюулгүй байдлын зөвлөгөөнүүд Үйлдвэрлэлийн чанарыг хангасан үйлдлийн системүүдийн нэгэн адил &os; Аюулгүй байдлын зөвлөгөөнүүд гаргадаг. Эдгээр зөвлөгөөнүүд нь ихэвчлэн аюулгүй байдлын жагсаалтууд уруу илгээгддэг бөгөөд зөвхөн тохирох хувилбаруудад засвар хийгдсэний дараа Errata буюу алдааны хуудсанд тэмдэглэгддэг. Энэ хэсэгт зөвлөгөө гэж юу болох, түүнийг хэрхэн ойлгох болон системд засвар хийхдээ ямар арга хэмжээнүүдийг авах талаар тайлбарлах болно. Зөвлөгөө ямархуу харагдах вэ? &os;-ийн аюулгүй байдлын зөвлөгөөнүүд &a.security-notifications.name; захидлын жагсаалтаас авсан доорх зөвлөгөөтэй адил харагдах болно. ============================================================================= &os;-SA-XX:XX.UTIL Security Advisory The &os; Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: Person@EMAIL-ADDRESS Affects: All releases of &os; &os; 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) CVE Name: CVE-XXXX-XXXX For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.FreeBSD.org/security/. I. Background II. Problem Description III. Impact IV. Workaround V. Solution VI. Correction details VII. References Topic буюу сэдэв талбар асуудал юу болохыг яг заасан байдаг. Энэ нь үндсэндээ тухайн үеийн аюулгүй байдлын зөвлөгөөний танилцуулга бөгөөд эмзэг асуудалтай цуг хэрэгслийг тэмдэглэдэг. The Category буюу зэрэглэл талбар нь хамаарч байгаа системийн хэсгийг хэлдэг бөгөөд core, contrib, эсвэл ports-ийн аль нэг байж болно. core зэрэглэл нь эмзэг асуудал &os; үйлдлийн системийн гол хэсэгт нөлөөлнө гэсэн үг юм. contrib зэрэглэл нь эмзэг асуудал sendmail зэрэг &os; төсөлд хувь нэмэр болгон оруулсан програм хангамжуудад нөлөөлнө гэсэн үг юм. Эцэст нь ports зэрэглэл нь эмзэг асуудал портуудын цуглуулганд ордог нэмэлт програм хангамжуудад нөлөөлөхийг харуулдаг. Module талбар нь бүрэлдэхүүн хэсгийн байрлалыг жишээ нь sys гэх зэргээр илэрхийлдэг. Энэ жишээн дээр sys модуль өртөхийг бид харж байгаа бөгөөд ийм учраас энэ эмзэг асуудал нь цөм дотор ашиглагдсан бүрэлдэхүүн хэсэгт нөлөөлөх юм. Announced буюу зарласан талбар нь аюулгүй байдлын зөвлөгөө хэвлэгдсэн эсвэл ертөнцөд зарлагдсан огноог заадаг. Энэ нь аюулгүй байдлын баг асуудал байгааг шалгаж үүний засвар &os;-ийн эх модны архивт итгэмжлэн оруулсныг тогтоосон гэсэн үг юм. Credits буюу талархал талбар нь эмзэг асуудлыг мэдэж тайлагнасан хувь хүн болон байгууллагыг зааж талархдаг. Affects буюу нөлөөлөх хувилбарын талбар нь энэ эмзэг асуудал нөлөөлөх &os;-ийн хувилбаруудыг тайлбарладаг. Цөмийн хувьд уг нөлөөлсөн файлууд дээр ажиллуулсан ident тушаалын үр дүнг зэрвэс харж хувилбарыг тодорхойлж болно. Портуудын хувьд /var/db/pkg санд портын нэрийн дараа хувилбарын дугаар байдаг. Хэрэв систем нь &os;-ийн CVS архивтай адил хамгийн сүүлийн хэлбэрт орж өдөр тутам дахин бүтээгдээгүй бол энэ нь нөлөөлөлд орсон хэвээр байх магадлалтай юм. Corrected буюу засварласан талбар нь огноо, цаг, цагийн бүс болон засварласан хувилбаруудыг заадаг. Common Vulnerabilities Database system буюу Нийтлэг Эмзэг асуудлуудын Мэдээллийн Баазын системээс эмзэг асуудлуудыг хайхад хэрэглэгдэх магадлалын мэдээлэлд нөөцлөгддөг. Background талбар нь нөлөөлөлд яг ямар хэрэгсэл орсон талаар мэдээлэл өгдөг. Ихэнхдээ энэ нь &os;-д яагаад тухайн хэрэгсэл байдаг, юунд хэрэглэгддэг болон хэрэгсэл хэрхэн бий болсон талаар байдаг. Problem Description буюу асуудлын тайлбар талбар нь аюулгүй байдлын цоорхойг гүнзгий тайлбарладаг. Энэ нь гажигтай кодын мэдээлэл эсвэл бүр хэрэгслийг хэрхэн хорлонтойгоор ашиглаж аюулгүй байдлын цоорхой нээдэг тухай мэдээллийг агуулдаг. Impact буюу үйлчлэл талбар нь асуудал системд ямар төрлийн үйлчлэл үзүүлдгийг тайлбарладаг. Жишээ нь энэ нь үйлчилгээг зогсоох халдлагаас авахуулаад хэрэглэгчдэд өгч болох нэмэлт зөвшөөрлүүд эсвэл халдагчид супер хэрэглэгчийн хандалт өгөх зэрэг юу ч байж болно. Workaround буюу тойрон гарах талбар нь боломжит тойрон гарах арга замыг системийг шинэчилж чадахгүй байж болох системийн администраторуудад олгодог. Энэ нь хугацааны шаардлагууд, сүлжээний боломж эсвэл өөр бусад олон шалтгаанаас болдог байж болох юм. Ямар ч байсан гэсэн аюулгүй байдлыг хөнгөнөөр авч үзэж болохгүй бөгөөд нөлөөлөлд орсон систем эсвэл засвар нөхөөс хийгдэх аль эсвэл аюулгүй байдлын цоорхойг тойрон гарах шийдэл хийгдэх шаардлагатай. Solution буюу шийдэл талбар нь нөлөөлөлд орсон системийг засварлах заавруудыг санал болгодог. Энэ нь системд засвар нөхөөс хийн аюулгүй ажиллуулах алхам алхмаар тест хийгдэж шалгагдсан арга юм. Correction Details буюу засварын нарийн учир талбар нь CVS салбар эсвэл хувилбарын нэрийн цэгүүдийг доогуур зураас тэмдэгтээр өөрчилж үзүүлдэг. Мөн энэ нь салбар болгон дахь нөлөөлөлд орсон файлуудын хувилбарын дугаарыг бас харуулдаг. References буюу лавлагаа талбар нь ихэвчлэн бусад мэдээллийн эхүүдийг өгдөг. Энэ нь вэбийн URL-ууд, номнууд, захидлын жагсаалтууд болон мэдээний бүлгүүдийг агуулж болно. Том Рөүдс Хувь нэмэр болгон оруулсан Процессийн бүртгэл хөтлөх Процессийн бүртгэл хөтлөх Процессийн бүртгэл хөтлөх аюулгүй байдлын аргыг ашиглаж администраторууд системийн эх үүсвэрүүдийг ашигласан байдал болон тэдгээрийг хэрэглэгчдэд хэрхэн хуваарилсныг мэдэж болох бөгөөд энэ нь системийг монитор хийх боломжийг олгодог. Мөн энэ арга нь хэрэглэгчдийн тушаалуудыг туйлын багаар мөшгих боломжийг администраторуудад олгодог. Энэ нь үнэн хэрэгтээ өөрийн эерэг болон сөрөг талуудтай. Эерэг талуудын нэг нь халдлагыг орсон цэг хүртэл нарийсган олох боломж юм. Сөрөг тал нь процессийн бүртгэл хөтлөлтөөр үүссэн бүртгэлүүд бөгөөд тэдгээр нь дискний зай шаардаж болох юм. Энэ хэсэг процессийн бүртгэл хөтлөлтийн үндсүүдийг администраторуудад таниулах болно. Процессийн бүртгэл хөтлөлтийг идэвхжүүлж хэрэглэх нь Процессийн бүртгэл хөтлөлтийг ашиглаж эхлэхээсээ өмнө үүнийг идэвхжүүлэх хэрэгтэй. Үүнийг хийхийн тулд дараах тушаалуудыг ажиллуул: &prompt.root; touch /var/account/acct &prompt.root; accton /var/account/acct &prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf Идэвхтэй болгосны дараа бүртгэл хөтлөлт CPU статистикууд, тушаалууд гэх мэтийг даган мөшгиж эхэлнэ. Бүртгэлийн бүх бичлэгүүд уншиж болохооргүй хэлбэрээр байдаг бөгөөд тэдгээрийг &man.sa.8; хэрэгсэл ашиглан үзэж болдог. Ямар нэг тохируулгагүйгээр ажиллуулбал sa тушаал нь хэрэглэгч болгоны дуудлагуудын тоо, нийт зарцуулсан хугацааг минутаар, нийт CPU болон хэрэглэгчийн хугацааг минутаар, дундаж I/O үйлдлүүдийн тоо гэх мэттэй холбоотой мэдээллийг дэлгэцэнд хэвлэн үзүүлдэг. Тушаалуудыг ашигласан тухай мэдээллийг харахын тулд &man.lastcomm.1; хэрэгслийг ашиглах хэрэгтэй. lastcomm тушаал нь тухайн &man.ttys.5; дээр хэрэглэгчдийн ажиллуулсан тушаалуудыг үзүүлэхэд хэрэглэгдэж болно, жишээ нь: &prompt.root; lastcomm ls trhodes ttyp1 Дээрх тушаал нь ttyp1 терминал дээр trhodes хэрэглэгчийн ls тушаал ашигласан мэдэгдэж байгаа бүгдийг дэлгэцэд харуулах болно. Өөр олон ашигтай тохируулгууд байдаг бөгөөд &man.lastcomm.1;, &man.acct.5; болон &man.sa.8; гарын авлагын хуудаснуудад тайлбарласан байдаг.