diff --git a/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml b/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml index 430ef9b636..c41bff7cdc 100644 --- a/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/eresources/chapter.sgml @@ -1,1836 +1,1865 @@ Интернэт дэх эх үүсвэрүүд FreeBSD-ийн дэвшлийн хурдан алхаа нь хамгийн сүүлийн хөгжүүлэлтүүдийг дагахаас хамаараад хэвлэн гаргах хэрэгцээгүй болгоход хүргэдэг. Цахим эх үүсвэрүүд нь хамгийн шилдэг нь бөгөөд хамгийн сүүлийн үеийн дэвшилтүүдийн талаар мэдлэгтэй байх бараг цорын ганц арга юм. FreeBSD нь сайн дурын чармайлт болохоор хэрэглэгчийн хүрээнийхэн нь өөрсдөө цахим захидал болон тэр хүрээнийхэнд хүрэх хамгийн үр ашигтай арга болох USENET мэдээнүүдийн тусламжтайгаар ерөнхийдөө нэгэн хэлбэрийн техникийн дэмжлэгийн хэлтэс маягаар үйлчилдэг. FreeBSD-ийн хэрэглэгчийн хүрээнийхэнд хандах хамгийн чухал цэгүүдийг доор дурдав. Хэрэв та энд дурдагдсанаас өөр эх үүсвэрүүдийн талаар мэдэж байвал тэдгээрийг бас энэ жагсаалтад оруулахаар &a.doc; уруу илгээнэ үү. Захидлын жагсаалтууд FreeBSD-ийн хөгжүүлэлтийн олон гишүүд USENET-ийг уншдаг ч гэсэн хэрэв та comp.unix.bsd.freebsd.* бүлгүүдийн аль нэг уруу өөрийн асуултуудаа илгээсэн бол бид таны асуултуудыг цагт нь (эсвэл бүр үгүй) авч чадна гэж үргэлж баталгаа өгч чадахгүй билээ. Өөрийн асуултуудаа тохирох захидлын жагсаалт уруу хаягласнаар таны асуултууд бидэнд болон төвлөрсөн FreeBSD-ийн олон нийтэд илүү хариулт авах боломжтойгоор (буюу ядаж л хурдан) хүрэх болно. Энэ баримтын сүүл хэсэгт төрөл бүрийн жагсаалтуудад зориулсан дүрмүүд бий. Аль нэг жагсаалт уруу элсэн орох эсвэл захидал илгээхээсээ өмнө жагсаалтын дүрмийг уншина уу. Одоо манай захидлын жагсаалтын захиалагчдын ихэнх нь FreeBSD-тэй холбоотой олон зуун захиануудыг өдөр бүр авдаг бөгөөд зөв хэрэглэх тухай дүрэм, журмуудыг гаргаснаар бид жагсаалтуудын шуугиан, дохионы харьцааг (signal-to-noise ratio) өндөр байлгахыг хичээдэг. Бага хийх нь захидлын жагсаалтыг энэ төсөлд зориулсан үр ашигтай холбооны зөөвөрлөгч байхыг эцсийн эцэст болиулж болох юм. Хэрэв та &os;-ийн жагсаалтууд руу илгээж чадаж байгаа эсэхээ шалгаж тест хийхийг хүсвэл &a.test.name; руу тест захидал илгээнэ үү. Өөр бусад жагсаалт руу тест захидал битгий илгээгээрэй. Аль жагсаалт уруу асуултаа илгээхээ мэдэхгүй эргэлзэж байгаа бол FreeBSD-асуултууд захидлын жагсаалтаас хэрхэн хамгийн их ашгийг авч болох вэ хэсгээс үзнэ үү. Аль нэг жагсаалт уруу илгээхээсээ өмнө байнга давтагддаг хэлэлцүүлгүүдийг үүсгэхгүй байхад хэрхэн туслах зэрэг захидлын жагсаалтыг хэрхэн хамгийн үр ашигтай ашиглах талаар сурах хэрэгтэй. Үүнийг тулд Захидлын жагсаалтын байнга асуудаг асуултууд (FAQ) баримтыг унших нь зүйтэй. Бүх захидлын жагсаалтуудын хувьд архивууд хадгалагддаг бөгөөд FreeBSD Дэлхий Даяарх Вэб сервер ашиглан хайлт хийж болно. Түлхүүр үгээр хайж болох архив нь байнга асуугддаг асуултуудад зориулсан хариултуудыг олох хамгийн шилдэг аргыг санал болгодог бөгөөд асуулт илгээхээсээ өмнө эдгээрээс лавлах хэрэгтэй юм. Жагсаалтын тойм Ерөнхий жагсаалтууд: Дараах нь ерөнхий жагсаалтууд бөгөөд эдгээрт хэн ч гэсэн чөлөөтэй (зоригтойгоор) элсэж болно: Жагсаалт Зорилго &a.cvsall.name; FreeBSD-ийн эх мод уруу хийгдсэн өөрчлөлтүүд &a.advocacy.name; FreeBSD Evangelism &a.announce.name; Чухал үйл явдлууд болон төслийн гол гол үе шатууд &a.arch.name; Архитектур болон дизайны хэлэлцүүлгүүд &a.bugbusters.name; FreeBSD-ийн асуудлын тайлангийн мэдээллийн бааз болон түүнтэй холбоотой хэрэгслүүдийн арчилгаатай холбоотой хэлэлцүүлгүүд &a.bugs.name; Алдааны тайлангууд &a.chat.name; FreeBSD хүрээнийхэнтэй холбоотой техникийн бус зүйлс &a.current.name; &os.current;-н хэрэглээтэй хамаатай хэлэлцүүлэг &a.isp.name; FreeBSD ашиглаж байгаа Интернэтийн үйлчилгээ үзүүлэгчдийн асуудлууд &a.jobs.name; FreeBSD-тэй холбоотой ажил болон зөвлөгөөний боломжууд &a.policy.name; FreeBSD-ийн Гол багийн бодлогын шийдвэрүүд. Бага хэмжээний бөгөөд зөвхөн унших боломжтой &a.questions.name; Хэрэглэгчийн асуултууд болон техникийн дэмжлэг &a.security-notifications.name; Аюулгүй байдлын мэдэгдлүүд &a.stable.name; &os.stable;-н хэрэглээтэй холбоотой хэлэлцүүлэг &a.test.name; Аль нэг жагсаалт уруу тест захиа явуулахын оронд энэ жагсаалт ашиглагдана Техникийн жагсаалтууд: Дараах жагсаалтууд нь техникийн хэлэлцүүлэгт зориулагдсан. Эдгээр жагсаалтын агуулга болон хэрхэн ашиглах талаар нарийн чанд зааврууд байдаг учраас аль нэг уруу нь элсэх юм уу эсвэл захидал илгээхээсээ өмнө жагсаалт болгоны дүрэм, журмыг та унших хэрэгтэй юм. Жагсаалт Зорилго &a.acpi.name; ACPI болон тэжээлийн удирдлагын хөгжүүлэлт &a.afs.name; AFS-г FreeBSD уруу хөрвүүлэх &a.aic7xxx.name; &adaptec; AIC 7xxx-д зориулж драйверууд хөгжүүлэх &a.alpha.name; FreeBSD-г Alpha уруу хөрвүүлэх &a.amd64.name; FreeBSD-г AMD64 системүүд уруу хөрвүүлэх &a.apache.name; Apache-тай холбоотой портуудын тухай хэлэлцүүлэг &a.arm.name; FreeBSD-г &arm; процессорууд уруу хөрвүүлэх &a.atm.name; FreeBSD дээр ATM сүлжээг ашиглах &a.audit.name; Эх код аудит хийх төсөл &a.binup.name; Хоёртын шинэчлэл хийх системийн дизайн болон хөгжүүлэлт &a.bluetooth.name; FreeBSD дээр &bluetooth; технологийг ашиглах &a.cluster.name; FreeBSD-г кластерчлагдсан орчинд ашиглах &a.cvsweb.name; CVSweb арчилгаа &a.database.name; FreeBSD дээрх мэдээллийн бааз болон хөгжүүлэлтийн талаар хэлэлцэх &a.doc.name; FreeBSD-тэй холбоотой баримтуудыг үүсгэх &a.drivers.name; &os;-д зориулж төхөөрөмжийн драйверуудыг бичих &a.eclipse.name; Eclipse IDE, хэрэгслүүд, клиентийн баялаг програмууд болон портуудын FreeBSD хэрэглэгчид. &a.embedded.name; FreeBSD-г авсаар (embedded) програмуудад ашиглах &a.eol.name; FreeBSD төслөөр дэмжигдэхээ больсон FreeBSD-тэй холбоотой програм хангамжийн дэмжлэг. &a.emulation.name; Линукс/&ms-dos;/&windows; зэрэг системүүдийн эмуляц &a.firewire.name; FreeBSD &firewire; (iLink, IEEE 1394) техникийн хэлэлцүүлэг &a.fs.name; Файлын системүүд &a.geom.name; GEOM-той холбоотой хэлэлцүүлгүүд болон шийдлүүд &a.gnome.name; GNOME болон GNOME програмуудыг хөрвүүлэх &a.hackers.name; Техникийн ерөнхий хэлэлцүүлэг &a.hardware.name; FreeBSD-г тааруулахтай холбоотой тоног төхөөрөмжийн ерөнхий хэлэлцүүлэг &a.i18n.name; FreeBSD Интернационалчлал &a.ia32.name; IA-32 (&intel; x86) тавцан дээрх FreeBSD &a.ia64.name; FreeBSD-г &intel;-ийн ирж байгаа IA64 системүүд уруу хөрвүүлэх &a.ipfw.name; IP галт ханын кодны шинэ дизайны тухай техникийн хэлэлцүүлэг &a.isdn.name; ISDN хөгжүүлэгчид &a.jail.name; &man.jail.8; боломжийн тухай хэлэлцүүлэг &a.java.name; &java; хөгжүүлэгчид болон &jdk;-г FreeBSD уруу хөрвүүлж байгаа хүмүүс &a.kde.name; KDE болон KDE програмуудыг порт хийх &a.lfs.name; LFS-г FreeBSD руу порт хийх &a.libh.name; Хоёр дахь үеийн суулгалт болон багцын систем &a.mips.name; FreeBSD-г &mips рүү порт хийх; &a.mobile.name; Хөдөлгөөнт тооцооллын тухай хэлэлцүүлгүүд &a.mozilla.name; Mozilla-г FreeBSD руу порт хийх &a.multimedia.name; Мультимедиа програмууд &a.newbus.name; Шугамын архитектурын тухай техникийн хэлэлцүүлгүүд &a.net.name; Сүлжээний хэлэлцүүлэг ба TCP/IP эх код &a.openoffice.name; OpenOffice.org болон &staroffice;-г FreeBSD руу порт хийх &a.performance.name; Өндөр хурдтай ажиллагаа/ачааллын суулгалтуудад зориулсан ажиллагааг тааруулах асуултууд &a.perl.name; Perl-тэй холбоотой портуудын арчилгаа &a.pf.name; Пакет шүүгч галт ханын системийн тухай хэлэлцүүлэг болон асуултууд &a.platforms.name; &intel; биш архитектур тавцангууд руу порт хийх талаар &a.ports.name; Портын цуглуулгын тухай хэлэлцүүлэг &a.ports-bugs.name; Портын алдаанууд/PR-уудын тухай хэлэлцүүлэг &a.ppc.name; FreeBSD-г &powerpc; руу порт хийх &a.proliant.name; HP ProLiant сервер тавцангууд дээрх FreeBSD-ийн тухай техникийн хэлэлцүүлэг &a.python.name; FreeBSD-тэй холбоотой Python-ий асуудлууд &a.qa.name; Чанарын баталгааны тухай хэлэлцүүлэг, ихэвчлэн гарах гэж байгаа хувилбар &a.rc.name; rc.d систем болон түүний хөгжүүлэлттэй холбоотой хэлэлцүүлэг &a.realtime.name; FreeBSD-ийн realtime өргөтгөлүүдийн хөгжүүлэлт &a.ruby.name; FreeBSD-тэй холбоотой Ruby-ийн хэлэлцүүлэг &a.scsi.name; SCSI дэд систем &a.security.name; FreeBSD-д нөлөөлөх аюулгүй байдлын асуудлууд &a.small.name; Embedded буюу авсаар програмуудад FreeBSD-г ашиглах (хуучин; үүний оронд &a.embedded.name;-г ашигла) &a.smp.name; [A]Symmetric MultiProcessing буюу нэг ба олон процессортой холбоотой дизайны хэлэлцүүлгүүд &a.sparc.name; FreeBSD-г &sparc; дээр суурилсан системүүдэд порт хийх &a.standards.name; C99 болон &posix; стандартуудтай FreeBSD-ийн нийцтэй байдал &a.sun4v.name; FreeBSD-г &ultrasparc; T1 дээр суурилсан системүүд уруу порт хийх &a.threads.name; FreeBSD дээрх урсгалжилт &a.testing.name; FreeBSD-ийн ажиллагаа болон найдвартай байдлын тестүүд &a.tokenring.name; FreeBSD дээрх Token Ring-ийн дэмжлэг &a.usb.name; USB-д зориулсан &os;-ийн дэмжлэгийн тухай хэлэлцүүлэг &a.virtualization.name; &os;-ийн дэмждэг төрөл бүрийн виртуалчлалтын техникүүдийн талаарх хэлэлцүүлэг &a.vuxml.name; VuXML дэд бүтцийн тухай хэлэлцүүлэг &a.x11.name; FreeBSD дээрх X11-ийн арчилгаа ба дэмжлэг Хязгаарлагдмал жагсаалтууд: Дараах жагсаалтууд нь илүү тусгайлсан (болон шаардаж байгаа) олон нийтэд зориулагдсан бөгөөд ерөнхий нийтийн сонирхлыг татахгүй байж болох юм. Эдгээр хязгаарлагдмал жагсаалтуудын аль нэг уруу элсэхээсээ өмнө техникийн жагсаалтуудад орох нь зүйтэй юм. Ингэснээр та харилцааны ёс дүрмийг ойлгох болно. Жагсаалт Зорилго &a.hubs.name; Толин тусгал сайтуудыг ажиллуулж байгаа хүмүүс (дэд бүтцийн дэмжлэг) &a.usergroups.name; Хэрэглэгчийн бүлгийн зохицуулалт &a.vendors.name; Үйлдвэрлэгчдийн урьдчилсан хувилбарын зохицуулалт + + &a.wip-status.name; + FreeBSD-ийн Work-In-Progress буюу хийгдэж байгаа ажлуудын төлөв + + &a.www.name; www.FreeBSD.org-ийн арчлагчид Digest буюу товч мэдээллийн жагсаалтууд: Дээрх бүх жагсаалтууд нь товч хэлбэрээр байдаг. Жагсаалтад бүртгүүлсний дараа та өөрийн бүртгэлийн тохируулгуудын хэсэгт товч мэдээлэл хүлээж авах тохируулгуудыг өөрчилж болно. CVS жагсаалтууд: Дараах жагсаалтууд нь эх модны төрөл бүрийн талбарууд дахь өөрчлөлтүүдийн тухай бүртгэлийн мэдэгдлүүдийг харахыг хүссэн хүмүүст зориулагдсан байдаг. Тэдгээр нь Зөвхөн Уншигдах жагсаалтууд бөгөөд тэдгээр рүү захидал илгээх ёсгүй юм. Жагсаалт Эх талбар Талбарын тайлбар (зориулагдсан эх) &a.cvsall.name; /usr/(CVSROOT|doc|ports|projects|src) Модон дахь бүх газар хийгдсэн бүх өөрчлөлтүүд (бусад CVS итгэмжлэн оруулалтын жагсаалтуудын том нь) &a.cvs-doc.name; /usr/(doc|www) doc болон www моднуудын бүх өөрчлөлтүүд &a.cvs-ports.name; /usr/ports Портын цуглуулгын бүх өөрчлөлтүүд &a.cvs-projects.name; /usr/projects projects модны бүх өөрчлөлтүүд &a.cvs-src.name; /usr/src src модны бүх өөрчлөлтүүд Хэрхэн бүртгүүлэх вэ Жагсаалтанд бүртгүүлэхийн тулд дээр байгаа жагсаалтын нэрэн дээр дарах юм уу эсвэл &a.mailman.lists.link; руу очоод сонирхож байгаа жагсаалт дээрээ дарах хэрэгтэй. Жагсаалтын хуудас бүртгүүлэхэд хэрэгтэй бүх заавруудыг агуулсан байх ёстой. Өгөгдсөн жагсаалт уруу илгээхийн тулд ердөө л жагсаалтын_нэр@FreeBSD.org хаяг уруу захидал илгээнэ. Дараа нь захидлын жагсаалтын дэлхий даяарх гишүүдэд тараагдах болно. Жагсаалтаас гарахын тулд жагсаалтаас хүлээн авсан цахим захидал бүрийн доор байрлах URL дээр дарах хэрэгтэй. Өөрийгөө бүртгэлээс хасахын тулд бас цахим захидал жагсаалтын_нэр-unsubscribe@FreeBSD.org руу илгээж болно. Дахин хэлэхэд бид техникийн захидлын жагсаалтуудад техникийн талын зүйлс хэлэлцэхийг танаас хүсэж байна. Хэрэв та зөвхөн чухал зарлалуудыг сонирхож байгаа бол та &a.announce;-д бүртгүүлэх нь зүйтэй юм. Энэ жагсаалт нь зөвхөн мэдээллийн сийрэг урсгалд зориулагдсан юм. Жагсаалтын дүрэм, журмууд FreeBSD-ийн бүх захидлын жагсаалтууд нь тодорхой нэг үндсэн дүрмүүдтэй байдаг. Тэдгээрийг ашиглаж байгаа болгон дагаж мөрдөх ёстой. Эдгээр заавруудыг дагахгүй байх тохиолдолд FreeBSD Postmaster postmaster@FreeBSD.org-с хоёр (2) анхааруулга бичгээр ирэх бөгөөд үүний дараа гурав дахь удаагаа зөрчсөн тохиолдолд илгээгчийг FreeBSD-ийн бүх захидлын жагсаалтаас хасаж тэдгээр рүү дахиж илгээхийг нь шүүх болно. Бид ийм дүрмүүд, арга хэмжээнүүд байгаад харамсаж байгаа боловч өнөөгийн Интернэт нь маш танхай балмад орчин юм шиг санагддаг бөгөөд олон хүмүүс эдгээрийн арга замууд ямар эмзэг болохыг хүндэтгэдэггүй билээ. Дагаж мөрдөх дүрэм, журмууд: Аль ч илгээлтийн сэдэв нь илгээгдсэн жагсаалтынхаа үндсэн дүрэм, журмыг дагаж мөрдөж байх ёстой, өөрөөр хэлбэл хэрэв жагсаалт техникийн асуудлуудын талаар бол таны илгээж байгаа захидал техникийн хэлэлцүүлэг агуулсан байх ёстой. Хамааралгүй үргэлжлэх чалчаа эсвэл уурлаж шатсан байдал нь захидлын жагсаалтын утгыг түүн дээр байгаа бүхний хувьд алдагдуулж тэвчихгүй байдалд хүргэнэ. Ямар ч тодорхой сэдэвгүй чөлөөт хэлбэрийн хэлэлцүүлэгт зориулсан &a.chat; хэлэлцүүлэг чөлөөтэй байдаг бөгөөд үүнийг ашиглах ёстой юм. 2-оос илүү захидлын жагсаалтад зэрэг илгээж болохгүй бөгөөд зөвхөн 2 хүртэлхийг хэрэв тодорхой, илт хэрэгцээ байгаа тохиолдолд хоёр жагсаалт уруу илгээхийг зөвшөөрдөг. Ихэнх жагсаалтуудын хувьд аль хэдийн маш их хэмжээний бүртгэгдсэн хүмүүс давхацдаг бөгөөд ихэнх тусгай зориулагдсан холилдлуудыг (-stable & -scsi гэх мэт) тооцохгүй юм бол нэгэн зэрэг нэг жагсаалтаас олон жагсаалт уруу илгээх шалтгаан жинхэнэдээ байхгүй юм. Хэрэв мэдээ ийм замаар Cc мөрөн дээр олон захидлын жагсаалттайгаар тань руу илгээгдсэн бол дахин илгээхээсээ өмнө Cc мөрийг бас авч хаях ёстой юм. Анхлан эхлэгч нь хэн байгаагаас үл хамааран та олон жагсаалт уруу илгээх өөрийн илгээлтүүдийнхээ төлөө хариуцлага бас хүлээх ёстой юм. Хувь хүн рүү чиглэсэн халдлагууд болон гутаан доромжлол нь (маргаан) зөвшөөрөгддөггүй бөгөөд энэ нь хэрэглэгчид болон хөгжүүлэгчдийг адилхан хамардаг. Зөвшөөрөөгүй байхад эсвэл зөвшөөрөл өгөгдөхөөргүй байхад хувийн захиаг нээх эсвэл дахин илгээх зэрэг сүлжээн дэх харилцааны бүдүүлэг үйлдлүүд сайшаагддаггүй боловч хүчээр таслан зогсоогддоггүй. Гэхдээ жагсаалтын дүрэм, журмын хүрээнд ийм агуулга таарах зарим цөөн тохиолдол бас байдаг бөгөөд ийм тохиолдолд анхааруулга явуулах (эсвэл хөөх) арга хэмжээнүүдийг тухай бүрт нь авч болох юм. FreeBSD-тэй холбоогүй бүтээгдэхүүнүүд эсвэл үйлчилгээнүүдийг сурталчлахыг хатуугаар хориглодог бөгөөд хэрэв зөрчигч спамаар сурталчилж байгаа нь илт байвал түүнийг нэн даруй хөөхөд хүргэнэ. Жагсаалт бүрийн дүрэм, журмууд: &a.acpi.name; ACPI болон тэжээлийн удирдлагын хөгжүүлэлт &a.afs.name; Andrew File System буюу Эндрю файлын систем Энэ жагсаалт нь AFS-г CMU/Transarc-аас порт хийж ашиглах тухай хэлэлцүүлэгт зориулагдсан &a.announce.name; Чухал үйл явдлууд / түүхийн гол үеүүд Энэ нь FreeBSD-ийн чухал үйл явдлуудын тухай тохиолдлын зарлалуудыг сонирхсон хүмүүст зориулагдсан захидлын жагсаалт юм. Үүнд хормын хувилбарууд болон бусад хувилбаруудын тухай зарлалууд багтдаг. Энэ нь бас FreeBSD-ийн шинэ боломжуудын зарлалуудыг агуулдаг. Сайн дурынхныг уриалах гэх мэтийг бас агуулж болох юм. Энэ нь бага ачаалалтай, чанд хянагдсан захидлын жагсаалт юм. &a.arch.name; Архитектур болон дизайны хэлэлцүүлгүүд Энэ жагсаалт нь FreeBSD-ийн архитектурын хэлэлцүүлэгт зориулагдсан. Захианууд нь ихэвчлэн маш техникийн шинж чанартай байх болно. Тохиромжтой сэдвүүдийн жишээг дурдвал: Нэгэн зэрэг хэд хэдэн өөрчлөн тохируулсан бүтээлтүүдийг ажиллуулахын тулд бүтээх системийг хэрхэн засаж сэлбэх талаар. Heidemann буюу Хайдеман давхаргуудыг ажиллуулахын тулд VFS-д юуг засварлах ёстой талаар. Ижил драйверуудыг олон шугамууд болон архитектурууд дээр цэвэрхэн ашиглаж чаддаг байхын тулд төхөөрөмжийн драйверийн интерфэйсийг хэрхэн өөрчлөх талаар. Сүлжээний драйверийг хэрхэн бичих талаар. &a.audit.name; Эх кодын аудитийн төсөл Энэ нь FreeBSD-ийн эх кодын аудит төсөлд зориулсан захидлын жагсаалт юм. Хэдийгээр энэ нь анхандаа аюулгүй байдалтай холбоотой өөрчлөлтүүдэд зориулагдсан боловч үүний дүрэм, журам кодын өөрчлөлтүүдийг хянахаар өргөжсөн юм. Энэ жагсаалт нь засваруудаар маш их дарагдсан байдаг болохоор FreeBSD-ийн дундаж хэрэглэгчид сонирхолгүй байх магадлалтай. Ямар нэг кодын өөрчлөлттэй холбоогүй аюулгүй байдлын хэлэлцүүлгүүд freebsd-security жагсаалтад явагддаг. Бүх хөгжүүлэгчдээс өөрсдийн засваруудыг хянуулахаар илгээхийг дэмждэг. Ийм тохиолдол ялангуяа алдаа нь системийн бүрэн бүтэн байдалд сөргөөр нөлөөлсөн тэр системийн хэсгийг тэдгээр засварууд нь хөндөж байх үе юм. &a.binup.name; FreeBSD-ийн Хоёртын шинэчлэлийн төсөл Энэ жагсаалт нь хоёртын шинэчлэлийн төсөл буюу binup-д зориулсан хэлэлцүүлгийн боломжийг хангахаар байдаг. Дизайны асуудлууд, шийдлийн тухай дэлгэрэнгүй зүйлс, засварууд, алдааны тайлангууд, төлвийн тайлангууд, боломжийн хүсэлтүүд, итгэмжлэн оруулсан зүйлсийн бүртгэлүүд болон binup-тай холбоотой бусад бүх зүйлс энэ жагсаалтаар хэлэлцэгддэг. &a.bluetooth.name; FreeBSD дээрх &bluetooth; Энэ нь FreeBSD-ийн &bluetooth; хэрэглэгчид цугладаг хэлэлцүүлэг юм. Дизайны асуудлууд, шийдлийн тухай дэлгэрэнгүй зүйлс, засварууд, алдааны тайлангууд, төлвийн тайлангууд, боломжийн хүсэлтүүд, итгэмжлэн оруулсан зүйлсийн бүртгэлүүд болон &bluetooth;-тай холбоотой бусад бүх зүйлс энэ жагсаалтаар хэлэлцэгддэг. &a.bugbusters.name; Асуудал Тайлагналттай (Problem Report) ажиллах хүчин чармайлтын зохицуулалт Энэ жагсаалтын зорилго нь Алдааны маэстро (Bugmeister), түүний Цох нядлагчид (Bugbusters) болон PR мэдээллийн баазад үнэн сэтгэлээсээ сонирхолтой бусад талуудад зориулсан зохицуулалт болон хэлэлцүүлэг болон үйлчлэх явдал юм. Энэ жагсаалт нь тусгайлсан алдаанууд, засварууд юм уу эсвэл PR-уудын тухай хэлэлцүүлгүүдэд зориулагдаагүй. &a.bugs.name; Алдааны тайлангууд Энэ нь FreeBSD дээрх алдаануудыг тайлагнахад зориулагдсан захидлын жагсаалт юм. Алдаануудыг аль болох &man.send-pr.1; тушаалыг ашиглах юм уу эсвэл түүний ВЭБ интерфэйсийг ашиглан илгээх ёстой. &a.chat.name; FreeBSD-ийн хүрээнийхэнд хамаагүй техникийн бус зүйлс Энэ жагсаалт нь бусад жагсаалтаас хальсан техникийн бус, нийгмийн мэдээллийг агуулдаг. Жордан хүүхэлдэйн киноны өмхий хүрэнтэй адил уу эсвэл үгүй юу, томоор бичих үү эсвэл үгүй юу, хэн хэтэрхий их кофе ууж байна, хамгийн шилдэг пиво хаана исгэж байна, хэн подвалдаа пиво исгэж байна гэх мэт хэлэлцүүлгүүд үүнд багтдаг. Чухал үйл явдлуудын (болох үдэшлэгүүд, хуримнууд, төрсөн өдрүүд, шинэ ажлууд гэх мэт) тохиолдлын зарлал техникийн жагсаалтууд уруу хийгдэж болох боловч дараа дараагийн захианууд энэ -chat жагсаалт уруу заагдах ёстой байдаг. &a.core.name; FreeBSD гол баг Энэ нь гол гишүүдийн ашиглахад зориулсан дотоод захидлын жагсаалт юм. FreeBSD-тэй холбоотой чухал зүйлийг шүүх эсвэл өндөр түвшний нарийвчилсан нягтлал хийх шаардлагатай үед захидлууд энэ жагсаалт уруу илгээгдэж болно. &a.current.name; &os.current;-г ашиглах тухай хэлэлцүүлэг Энэ нь &os.current;-ийн хэрэглэгчдэд зориулсан захидлын жагсаалт юм. Хэрэглэгчдэд нөлөөлөх -CURRENT-с гарсан шинэ боломжуудын тухай анхааруулгууд болон -CURRENT байхын тулд хийх алхмуудын заавруудыг энэ жагсаалт агуулдаг. CURRENT-г ашиглаж байгаа хэн бүхэн энэ жагсаалтад бүртгүүлэх ёстой. Энэ нь техникийн чанартай агуулгыг хатуу чанд хүлээж байдаг техникийн захидлын жагсаалт юм. &a.cvsweb.name; FreeBSD CVSweb төсөл FreeBSD-CVSweb-ийн хэрэглээ, хөгжүүлэлт болон арчилгааны тухай техникийн хэлэлцүүлгүүд. &a.doc.name; Баримтжуулах төсөл Энэ захидлын жагсаалт нь FreeBSD-д зориулсан баримтжуулалтыг үүсгэхтэй холбоотой төслүүд болон асуудлуудын хэлэлцүүлэгт зориулсан билээ. Энэ захидлын жагсаалтын гишүүдийг бүхэлд нь FreeBSD баримтжуулах төсөл гэдэг. Энэ нь нээлттэй жагсаалт юм; чөлөөтэй нэгдэж хувь нэмрээ оруулаарай! &a.drivers.name; &os;-д зориулж төхөөрөмжийн драйверууд бичих Энэ нь &os; дээрх төхөөрөмжийн драйверуудтай холбоотой техникийн хэлэлцүүлгүүдэд зориулсан форум юм. &os; цөм дэх API-уудыг ашиглан төхөөрөмжийн драйверуудыг хэрхэн бичих талаар төхөөрөмжийн драйвер бичигчдийн асуух тэр талбар юм. &a.eclipse.name; Eclipse IDE, хэрэгслүүд, клиентийн баялаг програмууд болон портуудын &os; хэрэглэгчид. Энэ жагсаалтын зорилго нь &os; тавцан дээр Eclipse IDE, хэрэгслүүд, клиентийн баялаг програмуудыг сонгох, суулгах, ашиглах, хөгжүүлэх болон арчлах, Eclipse IDE болон залгаасуудыг &os; орчин уруу порт хийхэд туслахтай холбоотой бүх зүйлсэд зориулж хамтын дэмжлэгийг хангах явдал юм. Eclipse хүрээнийхэн болон &os; хүрээнийхэнд хоёуланд нь ашигтай байхаар тэдгээрийн хооронд мэдээлэл солилцохыг хөнгөвчлөх бас зорилготой юм. Энэ жагсаалт нь Eclipse хэрэглэгчдийн хэрэглээн дээр үндсэндээ анхаарал тавьдаг боловч бас Eclipse тогтолцоог ашиглан &os; програмуудыг хөгжүүлэхийг хүссэн хүмүүст зориулсан форум болдог. &a.embedded.name; FreeBSD-г суулгагдсан авсаар програмуудад ашиглах Энэ жагсаалт нь FreeBSD-г суулгагдсан програмуудад ашиглахтай холбоотой сэдвүүдийг хэлэлцдэг. Энэ нь зөвхөн техникийн агуулга хүлээж байдаг техникийн захидлын жагсаалт юм. Энэ жагсаалтын зорилгын хувьд бид суулгагдсан системүүдийг тодорхойлдог бөгөөд эдгээр системүүд нь ширээний системүүд биш бөгөөд тооцоолох ерөнхий орчнуудад зориулагдаагүй тодорхой нэг зорилгоор ашиглагддаг тооцоолох төхөөрөмжүүд юм. Жишээнүүдэд бүх төрлийн утасны харилцуурууд, чиглүүлэгчүүд, шилжүүлэгчүүд болон PBX-үүд, алсын хэмжих төхөөрөмж, PDA-ууд, Point of Sale буюу POS системүүд гэх зэрэг орох бөгөөд зөвхөн энд дурдагдсанаар хязгаарлагдахгүй юм. &a.emulation.name; Линукс/&ms-dos;/&windows; зэрэг бусад системүүдийн эмуляц Бусад үйлдлийн системүүдэд зориулж бичигдсэн програмуудыг &os; дээр ажиллуулахтай холбоотой техникийн хэлэлцүүлгүүдэд зориулсан форум юм. &a.eol.name; FreeBSD төслийн дэмжихээ больсон FreeBSD-тэй холбоотой програм хангамжуудын тэгш дэмжлэг. Энэ жагсаалт нь FreeBSD төслийн албан ёсны (өөрөөр хэлбэл аюулгүй байдлын зөвлөгөөнүүд болон засваруудын хэлбэрээр) дэмжлэг үзүүлэхээ больсон FreeBSD-тэй холбоотой програм хангамжийн дэмжлэг үзүүлэх эсвэл ашиглахыг хүссэн хүмүүст зориулагдсан юм. &a.firewire.name; &firewire; (iLink, IEEE 1394) Энэ нь FreeBSD дээр &firewire; (IEEE 1394, бас iLink гэгддэг) дэд системийн дизайн болон шийдлийн хэлэлцүүлэгт зориулсан захидлын жагсаалт юм. Хамааралтай сэдвүүдэд ялангуяа стандартууд, шугамын төхөөрөмжүүд болон тэдгээрийн протоколууд, адаптер хавтангууд/картууд/бичил схемүүд, тэдгээрийг зөв дэмжих кодын архитектур болон шийдэл ордог. &a.fs.name; Файлын системүүд FreeBSD файлын системтэй холбоотой хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.geom.name; GEOM GEOM болон түүнтэй холбоотой шийдлүүдтэй холбоотой хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.gnome.name; GNOME FreeBSD системүүдэд зориулсан GNOME Ширээний орчны тухай хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.ipfw.name; IP Firewall буюу галт хана Энэ нь FreeBSD дээрх IP галт ханын кодыг дахин дизайн хийхтэй холбоотой техникийн хэлэлцүүлгүүдэд зориулсан форум юм. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.ia64.name; FreeBSD-г IA64 руу порт хийх Энэ нь FreeBSD-г &intel;-ийн IA-64 тавцан руу порт хийхээр идэвхтэйгээр ажиллаж байгаа хувь хүмүүст зориулсан, асуудлууд гаргаж тавих юм уу эсвэл өөр шийдлүүдийн талаар хэлэлцэх техникийн захидлын жагсаалт юм. Техникийн хэлэлцүүлгийг дагах сонирхолтой хувь хүмүүс бас нэгдэж болох юм. &a.isdn.name; ISDN холбоонууд Энэ нь FreeBSD-д зориулсан ISDN-ий дэмжлэгийн хөгжүүлэлтийг хэлэлцэхэд зориулсан захидлын жагсаалт юм. &a.java.name; &java; хөгжүүлэлт Энэ нь FreeBSD дээр чухал &java; програмуудыг хөгжүүлэх болон &jdk;-г порт хийх болон арчлах талаар хэлэлцэхэд зориулсан захидлын жагсаалт юм. &a.jobs.name; Санал болгож байгаа болон хайж байгаа ажлууд Энэ нь &os;-тэй ялангуяа холбоотой ажлын мэдэгдлүүд болон CV/resume-үүдийг илгээх зориулалттай форум юм. Өөрөөр хэлбэл хэрэв та &os;-тэй холбоотой ажил хайж байгаа эсвэл танд &os; оролцсон зарлах ажил байгаа бол энэ нь зөв газар юм. Энэ нь ерөнхий ажилтай холбоотой асуудлуудад зориулсан захидлын жагсаалт биш юм. Учир нь түүнд зориулсан тохирсон форумууд хаа нэгтээ аль хэдийн байдаг. Энэ жагсаалт нь бусад FreeBSD.org захидлын жагсаалтуудын адил дэлхий даяар тардаг. Тиймээс та байрлал болон аялах эсвэл шинэ газар нүүхтэй холбоотой туслалцаа байгаа эсэх тэр хир хэмжээг ойлгосон байх хэрэгтэй. Цахим захидлууд нь нээлттэй хэлбэршилтүүдийг ашиглах ёстой — цэвэр текстийг аль болох эрхэмлэсэн байх ёстой боловч Portable Document Format (PDF), HTML, болон бусад цөөн хэдэн хэлбэршилт ихэнх уншигчдын хувьд хүлээж авах боломжтой байдаг. µsoft; Word (.doc) зэрэг хаалттай хэлбэршилтүүдээс захидлын жагсаалтын сервер татгалзах болно. &a.kde.name; KDE FreeBSD системүүд дээрх KDE-тэй холбоотой хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.hackers.name; Техникийн хэлэлцүүлгүүд Энэ нь жагсаалт нь FreeBSD-тэй холбоотой техникийн хэлэлцүүлгүүдэд зориулагдсан. Энэ нь техникийн анхдагч захидлын жагсаалт юм. Энэ нь FreeBSD дээр идэвхтэйгээр ажиллаж байгаа хувь хүмүүст асуудлууд гаргаж тавих эсвэл өөр шийдлүүдийг хэлэлцэхэд нь зориулагджээ. Техникийн хэлэлцүүлгийг дагах сонирхолтой хувь хүмүүс нэгдэхэд дуртайяа байх болно. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.hardware.name; FreeBSD тоног төхөөрөмжийн ерөнхий хэлэлцүүлэг FreeBSD-ийн ажиллаж байгаа тоног төхөөрөмжийн төрлүүд, төрөл бүрийн асуудлууд болон юу худалдаж авах эсвэл авахгүй байхтай холбоотой саналуудын тухай ерөнхий хэлэлцүүлэг. &a.hubs.name; Толин тусгал сайтууд FreeBSD толин тусгал сайтуудыг ажиллуулж байгаа хүмүүст зориулсан зарлалууд ба хэлэлцүүлэг. &a.isp.name; Интернэтийн үйлчилгээ үзүүлэгчдэд зориулсан асуудлууд Энэ захидлын жагсаалт нь FreeBSD ашиглаж байгаа Интернэтийн үйлчилгээ үзүүлэгчидтэй (ISP-ууд) холбоотой сэдвүүдийг хэлэлцэхэд зориулагдсан. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.openoffice.name; OpenOffice.org OpenOffice.org болон &staroffice;-ийн арчилгаа болон тэдгээрийг порт хийтэй холбоотой хэлэлцүүлгүүд. &a.performance.name; FreeBSD-г тааруулах эсвэл хурдлуулах тухай хэлэлцүүлгүүд Энэ захидлын жагсаалт нь хакерууд, администраторууд ба/эсвэл оролцож байгаа талууд FreeBSD-тэй хамаатай ажиллагаатай холбоотой сэдвүүдийг хэлэлцэхэд зориулсан талбар юм. Хүлээж авах боломжтой сэдвүүдэд их ачаалалтай, ажиллагааны асуудлуудтай учирч байгаа эсвэл FreeBSD-ийн хязгааруудад тулж байгаа FreeBSD суулгацуудын тухай хэлэлцүүлэг ордог. FreeBSD-ийн ажиллагааг сайжруулах талаар ажиллах сонирхолтой талуудыг энэ жагсаалтад бүртгүүлэхэд туйлаас дэмждэг. Энэ нь FreeBSD-г хурдан, хүчирхэг, өргөжих боломжтой болгох сонирхолтой, туршлагатай FreeBSD хэрэглэгчид, хакерууд эсвэл администраторуудад туйлын таарсан техникийн жагсаалт юм. Энэ нь баримтыг уншсанаар орлуулж болох асуулт хариултын жагсаалт биш боловч хувь нэмэр оруулах юм уу эсвэл хариулагдаагүй бөгөөд ажиллагаатай холбоотой сэдвүүдийн талаар лавлаж болох талбар юм. &a.pf.name; Пакет шүүгч галт ханын системийн тухай хэлэлцүүлэг ба асуултууд Пакет шүүгч (pf) галт ханын системийн тухай FreeBSD-тэй холбоотой хэлэлцүүлэг. Техникийн хэлэлцүүлэг болон хэрэглэгчийн асуултууд аль алийг хэлэлцэх боломжтой. Энэ жагсаалт нь ALTQ QoS тогтолцоог хэлэлцэх бас талбар юм. &a.platforms.name; &intel; биш тавцангууд руу порт хийх Тавцан хоорондох FreeBSD-ийн асуудлууд, ерөнхий хэлэлцүүлэг ба &intel; биш FreeBSD портуудад зориулагдсан төслүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.policy.name; Гол багийн бодлогын шийдвэрүүд Энэ нь FreeBSD-ийн гол багийн бодлогын шийдвэрүүдэд зориулагдсан бага ачаалалтай, зөвхөн уншигдах захидлын жагсаалт юм. &a.ports.name; Портуудын хэлэлцүүлэг FreeBSD-ийн портын цуглуулга (/usr/ports), портын дэд бүтэц болон портын ерөнхий зохицуулалтын чармайлтуудын тухай хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.ports-bugs.name; Портуудын алдаануудын хэлэлцүүлэг FreeBSD-ийн портын цуглуулгад (/usr/ports) зориулсан асуудлын тайлангууд, санал болгогдож байгаа портууд эсвэл портуудад хийгдэх өөрчлөлтүүдтэй холбоотой хэлэлцүүлгүүд. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.proliant.name; HP Proliant сервер тавцангууд дээрх FreeBSD-ийн техникийн хэлэлцүүлэг Энэ захидлын жагсаалт нь Proliant-тай холбоотой драйверууд, удирдлагын програм хангамж, тохиргооны хэрэгслүүд ба BIOS-ийн шинэчлэлтүүдийн хэлэлцүүлэг зэрэг HP Proliant серверүүд дээрх FreeBSD-ийн хэрэглээний техникийн хэлэлцүүлэгт зориулагдсан талбар юм. Тиймээс энэ нь hpasmd, hpasmcli, болон hpacucli модулиудын талаар хэлэлцэх үндсэн газар юм. &a.python.name; FreeBSD дээрх Python Энэ нь FreeBSD дээр Python дэмжлэгийг сайжруулахтай холбоотой хэлэлцүүлгүүдэд зориулсан жагсаалт юм. Энэ нь техникийн захидлын жагсаалт юм. Энэ нь Python, түүний гуравдагч талуудын модулиуд болон Zope-ийн юмсыг FreeBSD руу порт хийхээр ажиллаж байгаа хувь хүмүүст зориулагдсан юм. Техникийн хэлэлцүүлгийг дагах сонирхолтой хувь хүмүүс нэгдэхэд бас дуртайяа байх болно. &a.questions.name; Хэрэглэгчийн асуултууд Энэ нь FreeBSD-ийн тухай асуултуудад зориулагдсан захидлын жагсаалт юм. Та асуултаа нэлээн техникийн гэж үзэж байгаагаас бусад тохиолдолд how to буюу хэрхэн яаж гэсэн асуултуудыг техникийн жагсаалтууд руу илгээх ёсгүй юм. &a.ruby.name; FreeBSD-тэй холбоотой Ruby-ийн хэлэлцүүлэг Энэ нь FreeBSD дээрх Ruby-ийн дэмжлэгтэй холбоотой хэлэлцүүлэгт зориулсан жагсаалт юм. Энэ нь техникийн захидлын жагсаалт юм. Ruby портууд, гуравдагч сангууд болон тогтолцоонууд дээр ажиллаж байгаа хувь хүмүүст зориулсан юм. Техникийн хэлэлцүүлгийг дагах сонирхолтой хувь хүмүүс нэгдэхэд бас дуртайяа байх болно. &a.scsi.name; SCSI дэд систем Энэ нь FreeBSD-д зориулагдсан SCSI дэд систем дээр ажиллаж байгаа хүмүүст зориулсан захидлын жагсаалт юм. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.security.name; Аюулгүй байдлын асуудлууд FreeBSD компьютерийн аюулгүй байдлын асуудлууд (DES, Kerberos, мэдэгдэж байгаа аюулгүй байдлын цоорхойнууд болон засварууд гэх мэт). Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. Энэ нь асуулт, хариултын жагсаалт биш гэдгийг санах хэрэгтэй, гэхдээ FAQ-д хувь нэмэр оруулахыг (асуулт, хариултын аль нь ч байсан гэсэн) дэмждэг. &a.security-notifications.name; Аюулгүй байдлын мэдэгдлүүд FreeBSD-ийн аюулгүй байдлын асуудлууд ба засваруудын мэдэгдлүүд. Энэ нь хэлэлцүүлгийн жагсаалт биш юм. Хэлэлцүүлгийн жагсаалт нь FreeBSD-security юм. &a.small.name; FreeBSD-г суулгагдсан програмууд дээр ашиглах Энэ жагсаалт нь ердийн биш жижиг ба суулгагдсан авсаар FreeBSD суулгацуудтай холбоотой сэдвүүдийг хэлэлцдэг. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. Энэ жагсаалт нь &a.embedded.name;-р хуучирч ашиглагдахаа больсон. &a.stable.name; &os.stable;-ийн хэрэглээний тухай хэлэлцүүлэг Энэ нь &os.stable;-ийн хэрэглэгчдэд зориулсан захидлын жагсаалт юм. Хэрэглэгчдэд нөлөөлөх -STABLE-с гарсан шинэ боломжуудын тухай анхааруулгууд болон -STABLE байхын тулд хийх алхмуудын заавруудыг энэ жагсаалт агуулдаг. STABLE-г ашиглаж байгаа хэн бүхэн энэ жагсаалтад бүртгүүлэх хэрэгтэй. Энэ жагсаалт нь техникийн захидлын жагсаалт бөгөөд зөвхөн техникийн агуулгыг хүлээж байдаг. &a.standards.name; C99 & POSIX нийцтэй байдал Энэ нь C99 болон POSIX стандартуудтай FreeBSD хэрхэн нийцэж байгаатай холбоотой техникийн хэлэлцүүлгүүдэд зориулагдсан форум юм. &a.usb.name; USB-д зориулсан &os;-ийн дэмжлэгийг хэлэлцэх Энэ нь USB-д зориулсан &os;-ийн дэмжлэгтэй холбоотой техникийн хэлэлцүүлгүүдэд зориулсан захидлын жагсаалт юм. &a.usergroups.name; Хэрэглэгчийн бүлгийн зохицуулалтын жагсаалт Энэ нь бүс нутгийн Хэрэглэгчдийн бүлэг бүрийн зохицуулагчид нэг нэгэнтэйгээ болон гол багийн хариуцсан хүнтэй юмс хэлэлцэхэд зориулагдсан захидлын жагсаалт юм. Энэ захидлын жагсаалт нь ерөнхий агуулгууд болон хэрэглэгчийн бүлгүүдэд тархсан төслүүдийн зохицуулалтад тааран хязгаарлагдсан байх ёстой. &a.vendors.name; Үйлдвэрлэгчид FreeBSD төсөл болон FreeBSD-д зориулсан програм хангамж ба тоног төхөөрөмжийн үйлдвэрлэгчдийн хоорондох хэлэлцүүлгүүдийн зохицуулалт. &a.virtualization.name; &os;-ийн дэмждэг төрөл бүрийн виртуалчлалын техникүүдийн талаарх хэлэлцүүлэг &os;-ийн дэмждэг төрөл бүрийн виртуалчлалын техникүүдийн талаар хэлэлцэх жагсаалт. Нэг талаасаа үндсэн ажиллагааны шийдэл болон шинэ техникүүд нэмэх тал дээр төвлөрөх болно. Нөгөө талаасаа хэрэглэгчдэд ямар нэг асуудал гарсан үед тусламж гуйх эсвэл өөрсдийнхөө хэрэглээний тохиолдлуудыг хэлэлцэх хэлэлцүүлэг байх болно. + + &a.wip-status.name; + + + &os;-ийн Work-In-Progress буюу хийгдэж байгаа ажлуудын төлөв + + Энэхүү захидлын жагсаалтыг &os;-тэй холбоотой өөрийн + эхлүүлж байгаа ажил болон түүний явцыг зарлахад ашиглаж болох юм. + Захидлууд нь хянагддаг. Илүү сэдэвт ойр &os;-ийн жагсаалт руу "To:" + дээр хаягийг бичин, харин энэ жагсаалт руу "BCC:" хийж захидлыг илгээх нь + зүйтэй юм. Энэ жагсаалтад хэлэлцүүлэг зөвшөөрөгддөггүй учир + ингэснээр таны WIP бас тухайн сэдэвтэй холбоотой жагсаалтад + хэлэлцэгдэх боломжтой юм. + + Тохиромжтой захидлуудын жишээг архиваас + үзнэ үү. + + Энэ жагсаалтад явуулсан захидлуудын редакторын тоймыг + &os;-ийн вэб хуудсанд хэдэн сар тутам Төлвийн Тайлангийн + + хэсэг болгон тавьж болох юм. Тэндээс илүү олон жишээнүүд болон хуучин тайлангуудыг + та бас олж болох юм. + + Захидлын жагсаалтууд дээрх шүүлт &os;-ийн захидлын жагсаалтууд нь спам, вирус, болон бусад хүсээгүй цахим захидлуудаас сэргийлэхийн тулд олон аргаар шүүгддэг. Энэ хэсэгт тайлбарласан шүүлт хийх үйлдлүүд нь захидлын жагсаалтуудыг хамгаалахад хэрэглэгддэг бүх зүйлсийг хамрахгүй. Захидлын жагсаалтад зөвхөн тодорхой төрлийн хавсралтууд зөвшөөрөгддөг. Доорх жагсаалтад дурдагдаагүй MIME агуулгын төрөл бүхий бүх хавсралтууд захидлын жагсаалтад цахим захидал түгээгдэхээс өмнө авагддаг. application/octet-stream application/pdf application/pgp-signature application/x-pkcs7-signature message/rfc822 multipart/alternative multipart/related multipart/signed text/html text/plain text/x-diff text/x-patch Зарим захидлын жагсаалтууд бусад MIME агуулгын төрлийн хавсралтуудыг зөвшөөрч болох боловч дээрх жагсаалт нь захидлын жагсаалтуудын ихэнх хэсэгт хамаарах болно. Хэрэв цахим захидал HTML болон цэвэр текст хувилбарыг хоёуланг агуулж байвал HTML хувилбарыг устгах болно. Хэрэв цахим захидал зөвхөн HTML хувилбарыг агуулж байвал энэ нь цэвэр текст рүү хөрвүүлэгдэх болно. Usenet Newsgroups буюу мэдээний бүлгүүд FreeBSD-ийн хоёр тусгай мэдээний бүлгээс гадна FreeBSD-н талаар хэлэлцдэг юм уу эсвэл FreeBSD хэрэглэгчидтэй холбоотой бусад олон бүлгүүд байдаг. Эдгээр мэдээний бүлгүүдэд зориулагдсан Түлхүүр үгээр хайгдах боломжтой архивуудыг Warren Toomey wkt@cs.adfa.edu.au санал болгодог. BSD-тэй холбоотой мэдээний бүлгүүд comp.unix.bsd.freebsd.announce comp.unix.bsd.freebsd.misc de.comp.os.unix.bsd (German) fr.comp.os.bsd (French) it.comp.os.freebsd (Italian) tw.bbs.comp.386bsd (Traditional Chinese) Бусад сонирхол татахуйц &unix;-ийн мэдээний бүлгүүд comp.unix comp.unix.questions comp.unix.admin comp.unix.programmer comp.unix.shell comp.unix.user-friendly comp.security.unix comp.sources.unix comp.unix.advocacy comp.unix.misc comp.bugs.4bsd comp.bugs.4bsd.ucb-fixes comp.unix.bsd X Цонхот Систем comp.windows.x.i386unix comp.windows.x comp.windows.x.apps comp.windows.x.announce comp.windows.x.intrinsics comp.windows.x.motif comp.windows.x.pex comp.emulators.ms-windows.wine Word Wide Web серверүүд &chap.eresources.www.inc; Цахим захидлын хаягууд Дараах хэрэглэгчийн бүлгүүд нь FreeBSD-тэй холбоотой цахим захидлын хаягуудыг өөрсдийн гишүүддээ хангадаг. Жагсаагдсан администратор нь хаягийг буруугаар ашигласан тохиолдолд цуцлах эрхийг эдэлдэг. Домэйн Боломжууд Хэрэглэгчийн бүлэг Администратор ukug.uk.FreeBSD.org Зөвхөн дамжуулах freebsd-users@uk.FreeBSD.org Ли Жонстон lee@uk.FreeBSD.org Бүрхүүлийн бүртгэлүүд Дараах хэрэглэгчийн бүлгүүд нь FreeBSD төслийг идэвхтэйгээр дэмжиж байдаг хүмүүст бүрхүүлийн бүртгэлүүдийг олгодог. Жагсаагдсан администратор нь бүртгэлийг буруугаар ашигласан тохиолдолд хүчингүй болгох эрхийг эдэлдэг. Хост Хандалт Боломжууд Администратор dogma.freebsd-uk.eu.org Telnet/FTP/SSH Цахим захидал, Вэб талбар, Нэргүй FTP Ли Жонстон lee@uk.FreeBSD.org diff --git a/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml b/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml index 4a78955b86..11c472f740 100644 --- a/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/mirrors/chapter.sgml @@ -1,3226 +1,3220 @@ FreeBSD-г олж авах нь CDROM болон DVD Нийтлэгчид Жижиглэнгийн хайрцагласан бүтээгдэхүүнүүд FreeBSD нь хайрцагласан бүтээгдэхүүн хэлбэрээр (FreeBSD CD-үүд, нэмэлт програм хангамж, болон хэвлэсэн баримт) хэд хэдэн жижиглэн худалдаалагчдаас гардаг:
CompUSA WWW:
Frys Electronics WWW:
CD болон DVD цуглуулгууд FreeBSD CD болон DVD цуглуулгуудыг олон жижиглэн худалдаалагчдаас шууд худалдан авах боломжтой байдаг:
BSD Mall by Daemon News PO Box 161 Nauvoo, IL 62354 USA Утас: +1 866 273-6255 Факс: +1 217 453-9956 Email: sales@bsdmall.com WWW:
FreeBSD Mall, Inc. 3623 Sanford Street Concord, CA 94520-1405 USA Утас: +1 925 240-6652 Факс: +1 925 674-0821 Email: info@freebsdmall.com WWW:
Dr. Hinner EDV St. Augustinus-Str. 10 D-81825 München Germany Утас: (089) 428 419 WWW:
Ikarios 22-24 rue Voltaire 92000 Nanterre France WWW:
JMC Software Ireland Утас: 353 1 6291282 WWW:
The Linux Emporium Hilliard House, Lester Way Wallingford OX10 9TA United Kingdom Утас: +44 1491 837010 Факс: +44 1491 837016 WWW:
Linux+ DVD Magazine Lewartowskiego 6 Warsaw 00-190 Poland Утас: +48 22 860 18 18 Email: editors@lpmagazine.org WWW:
Linux System Labs Australia 21 Ray Drive Balwyn North VIC - 3104 Australia Утас: +61 3 9857 5918 Факс: +61 3 9857 8974 WWW:
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Утас: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Түгээгчид Хэрэв та дахин худалдагч бөгөөд FreeBSD CDROM бүтээгдэхүүнүүдийг тараахыг хүсэж байгаа бол түгээгч буюу дистрибьюторт хандана уу:
Cylogistics 809B Cuesta Dr., #2149 Mountain View, CA 94040 USA Утас: +1 650 694-4949 Факс: +1 650 694-4953 Email: sales@cylogistics.com WWW:
Ingram Micro 1600 E. St. Andrew Place Santa Ana, CA 92705-4926 USA Утас: 1 (800) 456-8000 WWW:
Kudzu, LLC 7375 Washington Ave. S. Edina, MN 55439 USA Утас: +1 952 947-0822 Факс: +1 952 947-0876 Email: sales@kudzuenterprises.com
LinuxCenter.Ru Galernaya Street, 55 Saint-Petersburg 190000 Russia Утас: +7-812-3125208 Email: info@linuxcenter.ru WWW:
Navarre Corp 7400 49th Ave South New Hope, MN 55428 USA Утас: +1 763 535-8333 Факс: +1 763 535-0341 WWW:
FTP сайтууд FreeBSD-д зориулсан абан ёсны эхүүдийг дэлхий даяар байрласан толин тусгал сайтуудаас авч болно. сайт нь сайн холбогдсон бөгөөд маш олон тооны холболтуудыг зөвшөөрдөг. Гэхдээ та илүү ойр толин тусгал сайтыг хайж олсон нь дээр биз ээ (ялангуяа хэрэв та ямар нэгэн толин тусгал маягийн сайт тохируулж ажиллуулахыг хүсвэл). FreeBSD толин тусгал сайтуудын мэдээллийн бааз нь Гарын авлага дахь толин тусгалын жагсаалтаас илүү зөв байдаг. Учир нь энэ нь хостуудын статик жагсаалтад тулгуурлалгүй өөрийн мэдээллээ DNS серверээс авдаг юм. Мөн FreeBSD нь дараах толин тусгал сайтууд дахь нэргүй FTP-ээс авч болохоор байдаг. Хэрэв та нэргүй FTP-ээс FreeBSD-г авахыг сонговол өөртөө аль болох ойр сайтыг ашиглаад үзээрэй. Primary Mirror Sites буюу үндсэн толин тусгал сайтууд дахь толин тусгал сайтууд нь бүхэл FreeBSD архивыг (архитектур болгонд зориулсан одоо байгаа бүх хувилбарууд) ихэвчлэн агуулдаг боловч танай улс юм уу эсвэл бүсэд байрлаж байгаа сайтаас татаж авахад танд илүү хурдан байх болов уу. Бүсийн сайтууд нь хамгийн түгээмэл архитектуруудад зориулсан хамгийн сүүлийн үеийн хувилбаруудыг агуулдаг боловч FreeBSD-ийн бүх архивыг агуулаагүй байж болох юм. Бүх сайтууд нь нэргүй FTP-ээр хандах боломжийг олгодог. Зарим сайтууд нь бас бусад аргуудаар хандах боломжийг олгодог. Сайт болгоны хувьд хандах аргууд нь хостын нэрийн дараа хаалтанд өгөгдсөн байгаа болно. &chap.mirrors.ftp.inc; Нэргүй CVS <anchor id="anoncvs-intro">Танилцуулга CVS нэргүй Нэргүй CVS (эсвэл өөрөөр anoncvs гэгддэг) нь алсын CVS архивтай синхрончлол хийгдэхэд зориулагдсан FreeBSD-тэй цуг багцлагдсан CVS хэрэгслүүдийн үзүүлдэг боломж юм. Мөн FreeBSD-ийн хэрэглэгчдэд ямар нэгэн зөвшөөрлүүдгүйгээр зөвхөн унших эрхтэй CVS үйлдлүүдийг FreeBSD төслийн албан ёсны anoncvs серверүүдийн аль нэг дээр хийх боломжийг олгодог. Ашиглахын тулд CVSROOT орчны хувьсагчийг тохирох anoncvs сервер руу зааж cvs login тушаалд бүгдийн мэддэг anoncvs нууц үгийг өгч дараа нь &man.cvs.1; тушаал ашиглан локал архивт хандаж байгаа шигээр хандана. cvs login тушаал нь CVS серверт өөрийгээ таниулан нэвтрэхэд хэрэглэгдсэн нууц үгсийг таны HOME санд .cvspass файлд хадгалдаг.Хэрэв энэ файл байхгүй бол таныг cvs login тушаалыг эхний удаа ашиглахаар оролдоход алдаа гарч болох юм. Ердөө л хоосон .cvspass файл үүсгээд нэвтрэхийг оролдоорой. CVSup болон anoncvs үйлчилгээнүүд нь хоюул үндсэндээ адил үүргийг гүйцэтгэдэг гэж бас хэлж болох боловч синхрончлол хийх аргуудын хэрэглэгчийн сонголтод нөлөөлж болох төрөл бүрийн сул болон давуу талуудтай байдаг. Товчхондоо CVSup нь өөрийн сүлжээний эх үүсвэрүүдийн хэрэглээндээ илүү үр ашигтай бөгөөд техникийн хувьд хамгийн ухаалаг нь боловч ажиллагаа ихтэй байдаг. CVSup-г ашиглахын тулд эхүүдийг авч эхлэхээсээ өмнө тусгай клиентийг эхлээд суулгаж тохируулсан байх ёстой бөгөөд зөвхөн дараа нь нэлээн том хэмжээтэй хэсгүүдээр CVSup нь цуглуулгуудыг дууддаг. Харин Anoncvs-г нэг файлаас авахуулаад тусгай програм (ls эсвэл grep гэх зэрэг) хүртэлх бүгдийг CVS модулийн нэрээр нь шалгахад ашиглаж болно. Мэдээж anoncvs нь CVS архив дээрх зөвхөн уншигдах үйлдлүүдэд бас сайн болохоор хэрэв та FreeBSD төслийн хэсгүүдтэй хуваалцсан нэг архив дахь локал хөгжүүлэлтийг дэмжих зорилготой байгаа бол CVSup нь таны цорын ганц сонголт байх юм. <anchor id="anoncvs-usage">Нэргүй CVS-г ашиглах нь Ердөө л CVSROOT орчны хувьсагчийг FreeBSD төслийн anoncvs серверүүдийн аль нэг уруу зааснаар &man.cvs.1;-ийг нэргүй CVS архив ашиглахаар тохируулах юм. Биднийг энэ баримтыг бичиж байх үед дараах серверүүд байгааг дурдав: Франц: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (нууц үг anoncvs), ssh (нууц үггүй)) - - Герман: - :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs - (rsh, pserver, ssh, ssh/2022) - - Япон: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (cvs login тушаалыг ашиглаж асуух үед нь anoncvs нууц үгийг оруулна.) Тайвань: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (pserver (cvs login тушаалыг ашиглаж асуух үед нь дурын нууц үг оруулна), ssh (нууц үггүй)) SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub АНУ: freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs (зөвхөн ssh - нууц үггүй) SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub АНУ: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (зөвхөн ssh2 - нууц үггүй) SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub CVS нь FreeBSD-ийн хэзээ нэгэн цагт байсан (эсвэл зарим тохиолдолд ирээдүйд байх) эхүүдийн бараг л дурын хувилбарыг check out буюу шалгаж авах боломжийг олгодог болохоор та &man.cvs.1;-ийн залруулалт () туг болон түүнд зориулагдсан зарим зөвшөөрөгдөх ямар утгууд FreeBSD төслийн архивт байдгийг мэддэг байх хэрэгтэй. Залруулалтын хаягууд болон салбарын хаягууд гэсэн хоёр төрлийн хаяг байдаг. Залруулалтын хаяг нь тухайн залруулалтыг заадаг. Үүний утга нь өдрөөс өдөрт ижил хэвээр байна. Нөгөө талаас салбарын хаяг нь ямар ч үед хөгжүүлэлтийн өгөгдсөн шугам дахь хамгийн сүүлийн залруулалтыг заадаг. Салбарын хаяг нь тухайн нэг залруулалтыг заадаггүй болохоор үүний маргаашийн утга нь өнөөдрийнхөөс өөр байж болох юм. нь хэрэглэгчдийн сонирхож болох залруулалтуудын хаягуудыг агуулдаг. Дахин хэлэхэд портын цуглуулга нь хөгжүүлэлтийн олон салбаргүй учир эдгээрийн аль нь ч портын цуглуулгын хувьд зөв биш юм. Та салбарын хаягийг заах юм бол тэр хөгжүүлэлтийн шугам дахь файлуудын сүүлийн хувилбаруудыг хүлээн авах болно. Хэрэв та ямар нэг өнгөрсөн хувилбарыг хүлээн авахыг хүсэж байгаа бол тугаар огноог заан тэгж хийж болно. Илүү дэлгэрэнгүйг &man.cvs.1; гарын авлагын хуудаснаас үзнэ үү. Жишээнүүд Ямар нэг юм хийхээсээ өмнө &man.cvs.1;-ийн гарын авлагын хуудсыг нэг бүрчлэн уншихыг зөвлөдөг хэдий ч нэргүй CVS-ийг хэрхэн ашиглахыг харуулж байгаа зарим жишээнүүдийг энд үзүүлэв: -CURRENT-с ямар нэгэн зүйл шалгаж авах нь (&man.ls.1;): &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Хүлээх мөрөн дээр дурын үгийг нууц үг болгон ашиглаарай. &prompt.user; cvs co ls <filename>src/</filename> модыг шалгаж авахын тулд SSH-г ашиглах нь: &prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts. 6-STABLE салбар дахь &man.ls.1;-ийн хувилбарыг шалгаж авах нь: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Хүлээх мөрөн дээр дурын үгийг нууц үг болгон ашиглаарай. &prompt.user; cvs co -rRELENG_6 ls &man.ls.1;-д хийгдсэн өөрчлөлтүүдийн жагсаалтыг (нэгдсэн ялгаанууд хэлбэрээр) үүсгэх нь &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Хүлээх мөрөн дээр дурын үгийг нууц үг болгон ашиглаарай. &prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls Өөр бусад ямар модулийн нэрс ашиглагдаж болохыг олох нь: &prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs &prompt.user; cvs login Хүлээх мөрөн дээр дурын үгийг нууц үг болгон ашиглаарай. &prompt.user; cvs co modules &prompt.user; more modules/modules Бусад эх үүсвэрүүд Дараах нэмэлт эх үүсвэрүүд нь CVS-ийг сурахад тус болж болох юм: Кал Полигийн CVS заавар. CVS гэр, CVS-ийн хөгжүүлэлт болон дэмжлэгийн нийгэм. CVSweb нь FreeBSD төслийн CVS-д зориулсан вэб интерфэйс юм. CTM-г ашиглах нь CTM CTM нь алсын сангийн модыг төвтэй синхрончлол хийхэд зориулсан арга юм. Энэ нь FreeBSD-ийн эх моднуудтай ашиглахад зориулагдаж хөгжүүлэгдсэн бөгөөд цаг хугацаа өнгөрөх тусам бусад хүмүүс бусад зорилгоор хэрэглэхэд ашигтайг мэдэж болох юм. Дельтанууд үүсгэх процессийн талаар бараг баримт байхгүй болохоор бас хэрэв та CTM-г бусад зүйлсэд зориулж ашиглахыг хүсэж байгаа бол дэлгэрэнгүй мэдээллийн талаар &a.ctm-users.name; захидлын жагсаалтад хандана уу. <application>CTM</application>-г би яагаад ашиглах ёстой вэ? CTM нь танд FreeBSD эх моднуудын локал хуулбарыг өгдөг. Модны төрөл бүрийн хэлбэрүүд байдаг. Таны бүхэл CVS мод эсвэл аль нэг салбаруудын нэгийг дагахыг хүсэж байгаагаас хамаарч CTM нь танд мэдээлэл өгч чадна. Та FreeBSD-ийн идэвхтэй хөгжүүлэгч боловч олиггүй юм уу эсвэл TCP/IP холболт байхгүй эсвэл өөрчлөлтүүдийг автоматаар тан руу илгээгддэг байлгахыг хүсэж байгаа бол CTM нь танд зориулагджээ. Та хамгийн идэвхтэй салбаруудын хувьд өдөрт гурав хүртэлх дельтануудыг авах хэрэгтэй болно. Гэхдээ та тэдгээрийг автомат цахим захидлаар илгээгддэг байхыг бодох хэрэгтэй. Шинэчлэлтүүдийн хэмжээг үргэлж аль болох бага байлгадаг. Энэ ихэвчлэн 5K-с бага байдаг, хааяа (арваас нэгт) 10-50K хэмжээтэй байдаг бөгөөд заримдаа том 100K+ эсвэл илүү бас байдаг. Та урьдчилан багцалсан хувилбарын оронд хөгжүүлэлтийн эхүүд дээр шууд ажиллахтай холбоотой гардаг төрөл бүрийн анхааруулгуудын талаар бас мэдэж байх хэрэгтэй болно. Энэ нь таныг current эхүүдийг сонгох тохиолдолд ялангуяа үнэн байдаг. Таныг FreeBSD-ийн одоо үеийн хэлбэрт байх нь хэсгийг уншихыг зөвлөдөг. <application>CTM</application>-г ашиглахад надад юу хэрэгтэй вэ? Танд хоёр зүйл хэрэгтэй: CTM програм болон түүнийг тэжээх эхний дельтанууд (current түвшингүүдэд хүрэхийн тулд). CTM програм нь хувилбар 2.0 гарснаас хойш FreeBSD-ийн хэсэг болж ирсэн бөгөөд хэрэв танд эх байгаа бол энэ нь /usr/src/usr.sbin/ctm санд байдаг. CTM-г тэжээх дельтануудыг нь FTP эсвэл цахим захидал гэсэн хоёр аргаар авч болно. Хэрэв танд Интернет уруу хандах ерөнхий FTP хандалт байгаа бол дараах FTP сайтууд нь CTM-д хандахыг дэмждэг: эсвэл толин тусгалууд хаягийг үзнэ үү. тохирох сан руу FTP хийгээд README файлыг татаж аваад тэндээс эхлээрэй. Хэрэв та өөрийн дельтануудыг цахим захидлаар авахыг хүсэж байгаа бол: CTM түгээлтийн жагсаалтуудын аль нэгэнд бүртгүүлэх хэрэгтэй. &a.ctm-cvs-cur.name; нь бүхэл CVS модыг дэмждэг. &a.ctm-src-cur.name; нь хөгжүүлэлтийн салбарын толгойг дэмждэг. &a.ctm-src-4.name; нь 4.X хувилбарыг дэмждэг, гэх мэт. (Хэрэв та өөрийгөө жагсаалтад хэрхэн бүртгүүлэхийг мэдэхгүй байгаа бол дээрх жагсаалтын нэрэн дээр дарах юм уу эсвэл &a.mailman.lists.link; уруу очоод өөрийн хүсэж байгаа жагсаалтан дээрээ дарах хэрэгтэй. Бүртгэхэд шаардлагатай бүгдийг жагсаалтын хуудас агуулсан байх ёстой.) Өөрийн CTM шинэчлэлтүүдийг хүлээн авч эхлэхдээ та тэдгээрийг задалж ашиглахдаа ctm_rmail тушаал ашиглаж болох юм. Хэрэв та процессийг бүрэн автомат загвараар ажилладаг байлгахыг хүсэж байгаа бол /etc/aliases файл дахь оруулгаас ctm_rmail програмыг шууд ашиглаж болох юм. Илүү дэлгэрэнгүйг ctm_rmail-ийн гарын авлагын хуудаснаас шалгана уу. CTM дельтануудыг авах ямар аргыг ашиглаж байгаагаас үл хамааран та &a.ctm-announce.name; захидлын жагсаалтад бүртгүүлэх хэрэгтэй. Ирээдүйд CTM системийн ажиллагааны тухай зарлалууд илгээгдэх газар нь зөвхөн энэ болох юм. Дээрх жагсаалтын нэрэн дээр дарж жагсаалтад бүртгүүлэхийн тулд заавруудыг дагах хэрэгтэй. <application>CTM</application>-г эхний удаа хэрэглэх CTM дельтануудыг ашиглаж эхлэхээсээ өмнө дельтанууд дараа дараагийн удаа үүсгэгдэхэд нь зориулж та эхлэх цэг дээр ирэх хэрэгтэй болно. Танд юу байгааг эхлээд тодорхойлох хэрэгтэй. Бүгд хоосон сангаас эхэлж болно. Өөрийн CTM-ээр дэмжигдсэн модыг эхлүүлэхийн тулд та эхний Empty буюу хоосон дельтаг ашиглах ёстой. Тодорхой нэг цэгт эдгээр started буюу эхэлсэн дельтануудын аль нэгийг өөрийн хүслээр CD дээр түгээж болохоор энэ нь зориулагдсан боловч одоогоор тийм юм болоогүй байгаа билээ. Моднууд нь хэдэн арван мегабайт байдаг болохоор өөртөө байгаагаас эхлэхийг эрхэмлэх ёстой юм. Хэрэв танд -RELEASE CD байгаа бол та эхний эхийг түүнэс хуулж эсвэл задалж болох юм. Энэ нь өгөгдлийн чухал дамжуулалтыг хэмнэх болно. Та эдгээр starter буюу эхлэх дельтануудыг дугаарт нэмэгдсэн X-ээр таньж болно (жишээ нь src-cur.3210XEmpty.gz). X-ийн дараах тэмдэглээс нь таны эхний seed буюу үрийн үүсэлд харгалзана. Дүрмээр бол Empty буюу хоосноос шилжих үндсэн шилжилт нь 100 дельта бүрээс үүсгэгдэнэ. Ингэхэд тэдгээр нь том байна! XEmpty дельтануудын хувьд 70-аас 80 мегабайт gzip хийгдсэн өгөгдөл нь нийтлэг байдаг. Эхлэх анхдагч дельтаг сонгосны дараа танд түүний дараах өндөр дугааруудтай бүх дельтанууд хэрэгтэй болно. Өөрийн өдөр тутмын амьдралдаа <application>CTM</application>-г ашиглах нь Дельтануудыг өгөхийн тулд ердөө л доор дурдсаныг хийнэ: &prompt.root; cd /where/ever/you/want/the/stuff &prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.* CTM нь gzip-ээр тавигдсан дельтануудыг ойлгодог болохоор та тэдгээрийг эхлээд gunzip хийх хэрэггүй юм. Энэ нь дискний зай хэмнэх болно. Бүх процессийн талаар маш нууцлаг гэж бодоогүй л бол CTM нь таны модыг хөндөхгүй байх болно. Дельтаг шалгахын тулд та тугийг бас ашиглаж болох бөгөөд CTM нь таны модыг үнэндээ хөндөхгүй; энэ нь зөвхөн дельтаны бүрэн бүтэн байдлыг шалгаж таны одоогийн модонд цэвэр хийгдэх эсэхийг л үздэг. CTM-д өгөгдөх бусад сонголтууд бас байдаг бөгөөд эдгээрийг гарын авлагын хуудаснуудаас үзнэ үү, эсвэл илүү дэлгэрэнгүйг эхүүдээс хайна уу. Ингээд л бүгд бараг болж байна. Шинэ дельта авах бүртээ өөрийн эхүүдийг хамгийн сүүлийн хувилбарт аваачихын тулд түүнийг CTM-ээр ажиллуулах хэрэгтэй. Дельтануудыг дахин татаж авахад хэцүү байгаа бол битгий устгаарай. Ямар нэг муу юм болж болзошгүй гэж үзээд тэдгээрийг та хаа нэгтэй хадгалахыг хүсэж болох юм. Танд зөвхөн уян диск байсан ч гэсэн fdwrite тушаалыг ашиглан хуулбар хийх нь зүйтэй. Өөрийн локал өөрчлөлтүүдийг хадгалах нь Хөгжүүлэгчийн хувьд эх модыг өөрчлөх эсвэл түүн дээр турших хүсэл төрж болох юм. CTM нь локал өөрчлөлтүүдийг хязгаарлалттайгаар дэмждэг: foo файлыг байгаа эсэхийг шалгахын өмнө foo.ctm файлыг эхлээд хайдаг. Хэрэв энэ файл байвал CTM нь foo-ийн оронд энэ файл дээр ажилладаг. Энэ нь бидэнд локал өөрчлөлтүүдийг хялбараар арчлах боломжийг олгодог: өөрийн өөрчлөх төлөвлөгөөтэй байгаа файлуудаа .ctm өргөтгөлтэй болгон хуулах хэрэгтэй. Дараа нь та кодыг чөлөөтэй оролдож болох бөгөөд CTM нь .ctm файлыг хамгийн сүүлийн хэлбэрт байлгах болно. <application>CTM</application>-ийн бусад сонирхолтой сонголтууд Шинэчлэлтээр яг юу хөндөгдөхийг олох Та өөрийн эх архивт CTM-ийн хийх өөрчлөлтүүдийн жагсаалтыг сонголтыг CTM-д өгөн тодорхойлж болно. Та өөрчлөлтүүдийн бүртгэлүүдийг хадгалах, өөрчлөгдсөн файлуудад урьдчилан эсвэл дараа нь боловсруулалт хийх эсвэл ердөө л хэтэрхий зовниж байгаа бол энэ нь ашигтай юм. Шинэчлэхээсээ өмнө нөөцлөлтүүд хийх Заримдаа та CTM шинэчлэлтээр өөрчлөгдөх бүх файлуудыг нөөцөлж авахыг хүсэж болох юм. сонголтыг зааснаар CTM-ийг өгөгдсөн CTM дельтагаар хөндөгдөх бүх файлуудыг нөөцөлж backup-file руу хадгалахад хүргэнэ. Шинэчлэлтээр хөндөгдөх файлуудыг хязгаарлах Заримдаа та өгөгдсөн CTM шинэчлэлтийн хүрээг хязгаарлах сонирхолтой эсвэл дельтануудын дарааллаас цөөн хэдэн файлуудыг задлах сонирхолтой байж болох юм. CTM-ийн ажилладаг файлуудын жагсаалтыг та болон сонголтуудыг ашиглан шүүлт хийх регулар илэрхийллүүдийг заан хянаж болно. Жишээ нь өөрийн хадгалсан CTM дельтануудын цуглуулгаас lib/libc/Makefile-ийн хамгийн сүүлийн хуулбарыг задалж авахын тулд дараах тушаалуудыг ажиллуулна: &prompt.root; cd /where/ever/you/want/to/extract/it/ &prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.* CTM дельтанд заагдсан файл бүрийн хувьд тушаалын мөрөнд өгөгдсөн дарааллаар болон сонголтуудыг өгсөн. Файл нь бүх болон сонголтууд түүнд өгөгдсөний дараа зөвхөн сонгогдох эрхтэй гэж тэмдэглэгдсэн бол CTM-ээр боловсруулагддаг. <application>CTM</application>-ийн ирээдүйн төлөвлөгөөнүүд Маш их: CTM-ийн хуурамч шинэчлэлтүүдийг илрүүлэхийн тулд CTM системд ямар нэгэн нэвтрэлт танилт ашиглах. CTM-ийн сонголтуудыг цэвэрлэх, тэдгээр нь толгой эргүүлэм, зөн совингийн эсрэг болсон. Бусад зүйлс ports цуглуулгад зориулсан дельтануудын дараалал бас байдаг боловч сонирхол тийм ч өндөр байдаггүй. CTM толин тусгалууд CTM/FreeBSD нь дараах толин тусгал сайтууд дахь нэргүй FTP-ээр хандаж авах боломжтой байдаг. Хэрэв та CTM-г нэргүй FTP-ээр авахыг сонгосон бол өөртөө ойр сайтыг оролдож үзнэ үү. Асуудал гарсан тохиолдолд &a.ctm-users.name; захидлын жагсаалтад хандана уу. Калифорни, Bay Area, албан ёсны эх Өмнөд Африк, хуучин дельтануудад зориулсан нөөц сервер Тайвань/R.O.C. Хэрэв та өөртөө ойрхон толин тусгалыг олоогүй бол эсвэл толин тусгал нь бүрэн биш байгаа бол alltheweb зэрэг хайлтын системийг ашиглаад үзээрэй. CVSup-г ашиглах нь Танилцуулга CVSup нь алсын сервер хост дээр байгаа мастер CVS архиваас эх модыг шинэчлэх болон түгээхэд зориулагдсан програм хангамжийн багц юм. FreeBSD-ийн эхүүд Калифорни дахь төв хөгжүүлэлтийн машин дээрх CVS архивт арчлагдаж байдаг. CVSup-ийн тусламжтай FreeBSD хэрэглэгчид өөрсдийн эх модыг хялбараар хамгийн сүүлийн хэлбэрт аваачиж чаддаг байна. CVSup нь шинэчлэлтийн pull буюу татах загварыг ашигладаг. Татах загвар дээр клиент бүр серверээс шинэчлэлтийг хүссэн үедээ эсвэл хэрэгтэй үедээ асуудаг. Сервер нь өөрийн хэрэглэгчдээс ирэх хүсэлтүүдийг идэвхгүйгээр хүлээж байдаг. Сервер хэзээ ч хүсээгүй шинэчлэлтүүдийг илгээдэггүй. Хэрэглэгчид нь шинэчлэлтийг авахын тулд CVSup клиентийг гараар ажиллуулах юм уу эсвэл түүнийг автоматаар давтамжтайгаар ажиллуулахын тулд cron ажил тохируулах ёстой болно. Ингэж том үсгээр бичсэн CVSup ухагдахуун нь бүхэл програм хангамжийн багцыг хэлнэ. Түүний гол бүрэлдэхүүн хэсгүүд нь хэрэглэгч бүрий машин дээр ажилладаг cvsup клиент, ба FreeBSD-ийн толин тусгал сайтууд дээр ажиллаж байдаг cvsupd сервер юм. FreeBSD-ийн баримт болон захидлын жагсаалтуудыг уншиж байхдаа та sup гэж хэлснийг харж болох юм. Sup нь CVSup-ийн өмнөх үе бөгөөд ижил зорилгоор ашиглагддаг байсан. CVSup нь sup-тай бараг л адилаар ашиглагддаг бөгөөд үнэндээ sup ашиглаж болохоор тохиргооны файлуудыг ашигладаг. CVSup нь илүү хурдан бөгөөд уян хатан учраас Sup нь FreeBSD төсөлд ашиглагдахаа больсон. csup хэрэгсэл нь CVSup-г C дээр бичсэн хувилбар юм. Үүний хамгийн том давуу тал бол илүү хурдан бөгөөд Modula-3 хэлээс хамаардаггүй, тиймээс та түүнийг суулгах шаардлагагүй байдаг. Мөн хэрэв та &os; 6.2 юм уу эсвэл түүнээс хойшх хувилбаруудыг ашиглаж байгаа бол түүнийг шууд ашиглаж болно, учир нь энэ нь үндсэн системд орсон байдаг. Хуучин &os; хувилбаруудын үндсэн системд &man.csup.1; байдаггүй, гэхдээ та net/csup портууд юм уу эсвэл урьдчилан эмхэтгэсэн багцыг хялбархан суулгаж болно. csup хэрэгсэл нь гэхдээ CVS горимыг дэмждэггүй. Хэрэв та бүрэн архивыг толин тусгал хийхийг хүсэж байгаа бол CVSup-г ашиглах хэрэгтэй болно. Хэрэв та csup-г ашиглахаар шийдсэн бол CVSup-ийн суулгалт дахь алхмуудыг алгасаж энэ нийтлэлийн үлдсэн хэсгийг дагаж байхдаа CVSup гэснийг csup болгож солиорой. Суулгалт CVSup-г суулгах хамгийн хялбар арга бол FreeBSD-ийн багцын цуглуулгаас урьдчилан эмхэтгэсэн net/cvsup багцыг ашиглах явдал юм. Хэрэв та CVSup-г эхээс бүтээхийг эрхэмлэж байгаа бол net/cvsup портыг ашиглаарай. Гэхдээ урьдчилан анхааруулъя: net/cvsup порт нь Modula-3 системээс хамаардаг бөгөөд үүнийг татан авч суулгахад ихээхэн хэмжээний дискний зай болон хугацаа шаарддаг. Хэрэв та &xfree86; эсвэл &xorg; зэрэг суулгагдаагүй сервер машин дээр CVSup-г ашиглах гэж байгаа бол CVSup GUI-г агуулаагүй net/cvsup-without-gui портыг ашиглах хэрэгтэй. Хэрэв та csup-г FreeBSD 6.1 эсвэл түүнээс өмнөх хувилбаруудад суулгахыг хүсэж байгаа бол FreeBSD-ийн багцын цуглуулгаас урьдчилан эмхэтгэсэн net/csup багцыг ашиглаж болно. Хэрэв та csup-г эхээс бүтээхийг эрхэмлэж байгаа бол net/csup портыг ашиглаж болно. CVSup тохиргоо CVSup-ийн ажиллагаа supfile гэгддэг тохиргооны файлаар хянагддаг. /usr/share/examples/cvsup/ санд зарим жишээ supfiles байдаг. supfile дахь мэдээлэл CVSup-д зориулж дараах асуултуудад хариулдаг: Ямар файлуудыг та хүлээн авахыг хүсэж байна вэ? Тэдгээрийн ямар хувилбаруудыг та хүсэж байна вэ? Тэдгээрийг та хаанаас авахыг хүсэж байна вэ? Та тэдгээрийг өөрийн машиныхаа хаана байрлуулахыг хүсэж байна вэ? Та өөрийн төлвийн файлуудыг хаана байрлуулахыг хүсэж байна вэ? Дараах хэсгүүдэд бид эдгээр асуултуудад хариулан түгээмэл supfile-г бүтээх болно. Эхлээд бид supfile-ийн ерөнхий бүтцийг тайлбарлах болно. supfile нь текст файл юм. Тайлбарууд нь # тэмдэгтээс эхэлж мөр дуустал үргэлжилнэ. Хоосон мөрнүүд болон зөвхөн тайлбараас тогтох мөрүүдийг орхидог. Үлдэж байгаа мөр болгон хэрэглэгчийн авахыг хүсэж байгаа файлуудын цуглуулгыг тайлбарладаг. Мөр нь файлуудын цуглуулга буюу файлуудын логик бүлэглэлийн нэрээс эхэлдэг бөгөөд эдгээрийг сервер тодорхойлдог. Цуглуулгын нэр таны аль файлуудыг хүсэж байгааг серверт хэлдэг. Цуглуулгын нэрийн дараа талбарууд байхгүй эсвэл байж болох бөгөөд зайгаар тусгаарлагдсан байна. Эдгээр талбарууд нь дээрх асуултуудад хариулдаг. Хоёр төрлийн талбар байдаг: тугны талбарууд ба утгын талбарууд. Тугны талбар нь ганцаараа байгаа түлхүүр үгнээс тогтдог, өөрөөр хэлбэл delete эсвэл compress байна. Утгын талбар нь бас түлхүүр үгээс эхлэх боловч хоосон зайгаар тусгаарлагдалгүйгээр = болон хоёр дахь үгээс тогтоно. Жишээ нь release=cvs нь утгын талбар юм. supfile ихэвчлэн нэгээс илүү цуглуулгыг хүлээн авахаар заасан байдаг. supfile-г зохион байгуулах нэг арга нь цуглуулга бүрийн хувьд харгалзах бүх талбаруудыг зааж өгөх явдал юм. Гэхдээ энэ нь supfile-ий мөрүүдийг нэлээн урт болгодог бөгөөд supfile дахь цуглуулгуудын бүгдийн хувьд ихэнх талбарууд нь ижил байдаг болохоор таагүй юм. CVSup нь эдгээр асуудлуудыг тойрон гарах анхдагч болгох арга замтай байдаг. Тусгай псевдо цуглуулгын нэр *default-р эхэлсэн мөрүүд нь тугнууд болон supfile дахь дараа дараачийн цуглуулгуудын хувьд анхдагч болж ашиглагдах утгуудыг заахад хэрэглэгддэг. Анхдагч утгыг цуглуулгатай цуг өөр утгыг заан өгч тухайн цуглуулгын хувьд өөрчилж болдог. Анхдагчуудыг дундын supfile-д нэмэлт *default мөрүүдээр өөрчилж эсвэл дарж болдог. Ийм мэдээлэлтэйгээр бид одоо FreeBSD-CURRENT-ийн гол эх модыг хүлээн авч шинэчлэхэд зориулсан supfile-г бүтээх болно. Ямар файлуудыг та хүлээн авахыг хүсэж байна вэ? CVSup-аар авах боломжтой файлууд нь collections буюу цуглуулгууд гэгддэг бүлгүүдэд хуваагдан зохион байгуулагддаг. Байгаа цуглуулгууд нь дараах хэсэгт тайлбарлагдсан байгаа. Энэ жишээн дээр бид FreeBSD-ийн хувьд бүх гол эхийг авахыг хүсэж байна. src-all гэсэн ганц том цуглуулга бидэнд үүнийг өгөх болно. supfile-аа бүтээх эхний алхам болгож бид цуглуулгуудыг нэг мөрөнд нэгийг тавьж жагсаана (энэ тохиолдолд зөвхөн нэг мөр байна): src-all Тэдгээрийн ямар хувилбаруудыг та хүсэж байна вэ? CVSup-ийн тусламжтай та хэзээ ч юм байсан эхүүдийн бараг ямар ч хувилбарыг хүлээн авч чадна. cvsupd сервер нь бүх хувилбаруудыг агуулсан CVS архиваас шууд ажилладаг болохоор энэ нь боломжтой юм. Та тэдгээрийн алийг хүсэж байгаагаа tag= болон утга талбаруудыг ашиглан зааж өгч болно. tag= талбарыг зөв зааж өгөхдөө анхааралтай байх хэрэгтэй. Зарим хаягууд нь зөвхөн файлуудын зарим цуглуулгуудын хувьд зөв байдаг. Хэрэв та буруу эсвэл буруу бичсэн хаягийг зааж өгөх юм бол магадгүй таны устгахыг хүсээгүй файлуудыг CVSup нь устгах юм. Ялангуяа ports-* цуглуулгуудын хувьд зөвхөн tag=.-г ашиглаарай. tag= талбар нь симболын хаягийг архивт нэрлэдэг. Хоёр төрлийн хаяг байдаг бөгөөд эдгээр нь залруулалтын хаягууд болон салбарын хаягууд юм. Залруулалтын хаяг нь тухайн нэг залруулалтыг заадаг. Үүний утга нь өдрөөс өдөрт ижил хэвээр байна. Нөгөө талаас салбарын хаяг нь ямар ч үед хөгжүүлэлтийн өгөгдсөн шугам дахь хамгийн сүүлийн залруулалтыг заадаг. Салбарын хаяг нь тухайн нэг залруулалтыг заадаггүй болохоор үүний маргаашийн утга нь өнөөдрийнхөөс өөр байж болох юм. нь хэрэглэгчдийн сонирхож болох салбарын хаягуудыг агуулдаг. CVSup-ийн тохиргооны файлд хаягийг зааж өгөхдөө өмнө нь tag= гэж өгөх ёстой (RELENG_4 нь tag=RELENG_4 болно). Зөвхөн tag=. нь портын цуглуулгад хамааралтай болохыг санаарай. Хаягийн нэрийг яг үзүүлсэн шиг бичихдээ анхааралтай байгаарай. CVSup нь зөв болон буруу хаягуудыг ялгаж чаддаггүй. Хэрэв та хаягийг буруу бичвэл CVSup нь таныг зөв хаяг өгсөн гэж ойлгон ажиллах бөгөөд энэ нь ямар ч файлуудыг заагаагүйд хүргэж болох юм. Энэ тохиолдолд энэ нь танд байгаа эхүүдийг устгах болно. Салбарын хаягийг заахад та тэр хөгжүүлэлтийн шугамын файлуудын хамгийн сүүлийн хувилбаруудыг авах болно. Хэрэв та ямар нэг өнгөрсөн хувилбарыг авахыг хүсвэл талбарт огноог заан хийж өгч болно. &man.cvsup.1; гарын авлагын хуудас үүнийг хэрхэн хийхийг тайлбарладаг. Бидний жишээний хувьд FreeBSD-CURRENT-г авахыг бид хүсэж байна. Бид энэ мөрийг өөрсдийн supfile-ийн эхэнд нэмнэ: *default tag=. Хэрэв та tag= талбар эсвэл date= талбарын алийг ч зааж өгөөгүй бол чухал тусгай тохиолдол гарч ирнэ. Энэ тохиолдолд тодорхой нэг хувилбарыг хүлээн авахын оронд серверийн CVS архиваас RCS файлуудыг шууд хүлээн авдаг. Ажиллагааны ийм горимыг хөгжүүлэгчид ерөнхийдөө эрхэмлэдэг. Өөрсдийн системүүд дээр архивын хуулбарыг арчилснаар тэд залруулалтын түүхийг хайж файлуудын өнгөрсөн хувилбаруудыг шалгах боломжтой болох юм. Гэхдээ энэ хонжоо нь дискний зайны хувьд их өртөгтэйгээр орж ирдэг. Тэдгээрийг та хаанаас авахыг хүсэж байна вэ? Бид host= талбарыг ашиглан cvsup-д өөрийн шинэчлэлтүүдийг хаанаас авахыг хэлж өгдөг. CVSup толин тусгал сайтуудын аль нь ч болох боловч та өөрийн кибер ертөнцдөө ойрхныг турших хэрэгтэй. Энэ жишээн дээр бид зохиомол FreeBSD түгээлтийн сайт cvsup99.FreeBSD.org-г ашиглах болно: *default host=cvsup99.FreeBSD.org Та CVSup-г ашиглахаасаа өмнө үнэн хэрэг дээрээ байгаа жинхэнэ хостоор солих хэрэгтэй болно. cvsup-г ажиллуулах үедээ та хостын тохируулгыг тушаалын мөрөөс сонголтоор өөрчлөн дарж болно. Та тэдгээрийг өөрийн машиныхаа хаана байрлуулахыг хүсэж байна вэ? prefix= талбар нь хүлээн авсан файлуудыг хаана байрлуулахыг cvsup хэлнэ. Энэ жишээн дээр бид эх файлуудыг өөрсдийн гол эх модны /usr/src байрлалд шууд байрлуулах болно. src сан нь бидний хүлээн авахаар сонгосон цуглуулгад далд байгаа болохоор энэ нь зөв юм: *default prefix=/usr cvsup өөрийн төлвийн файлуудыг хаана арчлах ёстой вэ? CVSup клиент нь base буюу үндсэн гэгддэг сан дахь зарим төлвийн файлуудыг арчилж байдаг. Эдгээр файлууд нь ямар шинэчлэлтүүдийг та аль хэдийн хүлээн авсныг хянаж CVSup-ийг илүү үр ашигтай ажиллахад тусалдаг. Бид стандарт үндсэн сан /var/db-г ашиглах болно: *default base=/var/db Хэрэв таны үндсэн сан байхгүй байгаа бол одоо түүнийг үүсгэх хугацаа болсон байна. Хэрэв үндсэн сан байхгүй бол cvsup ажиллахаас татгалзах болно. supfile-ийн бусад тохиргоонууд: supfile-д ерөнхийдөө байх ёстой бас нэг мөр байдаг: *default release=cvs delete use-rel-suffix compress release=cvs нь сервер гол FreeBSD CVS архиваас өөрийн мэдээллийг авах ёстойг зааж байна. Энэ нь бараг үргэлж тохиолддог, хэдийгээр бусад боломжууд байдаг боловч энэ хэлэлцүүлгийн хүрээнээс хальдаг. delete нь CVSup-д файлууд устгах зөвшөөрөл өгдөг. CVSup нь таны эх модыг байнга хамгийн сүүлийн хэлбэрт байлгадаг байхын тулд та үүнийг үргэлж зааж өгөх хэрэгтэй. CVSup нь өөрийн хариуцдаг зөвхөн тэр файлуудыг устгах тал дээр их анхааралтай ажилладаг. Танд байж болох нэмэлт файлууд тэр хэвээрээ үлддэг. use-rel-suffix нь ... ойлгоход төвөгтэй юм. Хэрэв та үүний тухай жинхэнээсээ мэдье гэж хүсэж байгаа бол &man.cvsup.1; гарын авлагын хуудаснаас үзнэ үү. Хэрэв тийм биш бол ердөө заагаад л тэгээд санаа зовох хэрэггүй юм. compress нь холбооны суваг дээр gzip загварын шахалтын хэрэглээг идэвхжүүлдэг. Хэрэв таны сүлжээний холболт T1 эсвэл түүнээс хурдан бол та магадгүй шахалтыг ашиглах хэрэггүй юм. Хэрэв үгүй бол энэ нь бодитойгоор тусалдаг. Бүгдийг нийлүүлбэл: Энд бидний жишээнд зориулсан бүхэл supfile байна: *default tag=. *default host=cvsup99.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all <filename>refuse</filename> файл Дээр дурдсанаар CVSup нь татах аргыг ашигладаг. Энэ нь юу гэсэн үг вэ гэхээр та CVSup сервер руу холбогдох бөгөөд энэ нь Над дээрээс татаж авах боломжтой зүйлс энэ байна... гэж хэлэх бөгөөд таны клиент OK, Би энэ,энэ, энийг авна. гэж хариулна гэсэн үг юм. Анхдагч тохиргоон дээр CVSup клиент нь таны тохиргооны файлд сонгосон хаяг болон цуглуулгатай холбоотой бүх файлыг авна. Гэхдээ үүнийг та үргэлж хүсэхгүй байх, ялангуяа хэрэв та doc, ports, эсвэл www моднуудыг авч байгаа бол үүнийг хийхийг хүсэхгүй байх — ихэнх хүмүүс дөрөв эсвэл таван хэлийг уншиж чаддаггүй бөгөөд тиймээс тэдэнд хэлтэй холбоотой файлуудыг татаж авах хэрэггүй байдаг. Хэрэв та портын цуглуулгыг CVSup хийж байгаа бол та цуглуулга бүрийг тусад нь заан өгч үүнийг тойрон гарч болно (өөрөөр хэлбэл, ports-astrology, ports-biology, гэх мэтээр ports-all гэхийн оронд). Гэхдээ doc болон www моднууд нь хэлтэй холбоотой цуглуулгуудтай байдаггүй болохоор та CVSup-ийн олон сайн боломжуудын нэгийг ашиглах ёстой нь refuse юм. refuse файл нь үндсэндээ CVSup-д цуглуулгаас файл болгоныг татаж авахгүй гэдгийг хэлдэг; өөрөөр хэлбэл клиентэд серверээс зарим файлууд татаж авахаас татгалзахыг хэлж өгдөг. refuse файл нь base/sup/ сангаас олдож болно (эсвэл хэрэв танд ийм файл байхгүй байгаа бол түүнийг дээрх санд байрлуулах хэрэгтэй). base нь таны supfile-д тодорхойлогдсон байдаг; бидний тодорхойлсон base нь /var/db бөгөөд энэ нь анхдагчаар refuse файл нь /var/db/sup/refuse гэсэн үг юм. refuse файл нь маш хялбар хэлбэршилттэй байдаг; энэ нь таны татаж авахыг хүсээгүй файлууд эсвэл сангуудын нэрийг агуулдаг. Жишээ нь хэрэв та Англи болон Германаар бага зэрэг ярьдгаас өөр хэлээр ярьдаггүй бөгөөд баримтын Герман орчуулгыг авах сонирхолгүй байвал өөрийн refuse файлд дараах: doc/bn_* doc/da_* doc/de_* doc/el_* doc/es_* doc/fr_* doc/hu_* doc/it_* doc/ja_* doc/mn_* doc/nl_* doc/no_* doc/pl_* doc/pt_* doc/ru_* doc/sr_* doc/tr_* doc/zh_* мөрүүд болон гэх мэтээр бусад хэлнүүдийн хувьд оруулж өгөх хэрэгтэй (та бүрэн жагсаалтыг FreeBSD CVS архивыг шалган олж болно). Энэ ашигтай боломжийг ашиглан удаан холболттой юм уу эсвэл өөрсдийн Интернэтийн холболтод минутаар төлдөг хэрэглэгчид үнэ цэнэтэй хугацаагаа хэмнэх болно. Учир нь тэд өөрсдийн хэзээ ч ашиглахгүй файлаа татаж авах шаардлагагүй болох юм. CVSup-ийн refuse файлууд болон бусад сайхан боломжуудын талаар илүү мэдээллийг түүний гарын авлагын хуудаснаас үзнэ үү. <application>CVSup</application>-г ажиллуулах нь Одоо та шинэчлэлт хийж үзэхэд бэлэн боллоо. Үүнийг хийх тушаалын мөр их амархан: &prompt.root; cvsup supfile энд байгаа supfile нь таны дөнгөж үүсгэсэн supfile-ийн нэр юм. Таныг X11 дээр ажиллаж байна гэж үзвэл cvsup нь энгийн зүйлсийг хийх зарим товчлууруудтай GUI цонхыг үзүүлэх болно. go товчлуурыг дарж ажиллахыг нь хараарай. Та энэ жишээн дээр өөрийн жинхэнэ /usr/src модыг шинэчилж байгаа болохоор cvsup нь таны файлуудыг шинэчлэхэд шаардлагатай зөвшөөрлүүдтэй байхын тулд та програмыг root эрхээс ажиллуулах хэрэгтэй болно. Өөрийн тохиргооны файлыг дөнгөж үүсгэсэн бөгөөд урьд нь энэ програмыг хэзээ ч ашиглаж байгаагүй бол таныг бухимдуулж магадгүй юм. Өөрийн файлуудыг хөндөлгүйгээр туршилтын журмаар ажиллуулах хялбар арга байдаг. Хаа нэгтээ хоосон сан үүсгээд түүнийг тушаалын мөрөнд нэмэлт өгөгдлөөр оруулж өгнө: &prompt.root; mkdir /var/tmp/dest &prompt.root; cvsup supfile /var/tmp/dest Таны заасан сан бүх файлын шинэчлэлтүүдийн хувьд очих сан болдог. CVSup нь /usr/src сан доторх таны энгийн файлуудыг шалгадаг, гэхдээ тэдгээрийн алийг ч өөрчлөх буюу устгахгүй. Файлын шинэчлэлтүүд харин /var/tmp/dest/usr/src санд хийгдэнэ. CVSup нь ингэж ажиллахдаа бас өөрийн үндсэн сангийн төлвийн файлуудыг өөрчлөлгүйгээр үлдээдэг. Тэдгээр файлуудын шинэ хувилбарууд заагдсан сан уруу бичигдэх болно. Танд /usr/src сан уруу унших эрх л байхад иймэрхүү туршилтын ажиллагааг гүйцэтгэхэд root эрх байх заавал шаардлагагүй юм. Хэрэв та X11-г ажиллуулахгүй байгаа юм уу эсвэл танд GUI таалагддаггүй бол cvsup-г ажиллуулахдаа тушаалын мөрөн дээр хоёр сонголтыг нэмж өгөх хэрэгтэй: &prompt.root; cvsup -g -L 2 supfile сонголт нь CVSup-д өөрийн GUI-г ашиглахгүйг хэлнэ. Хэрэв та X11-ийг ажиллуулахгүй байгаа бол энэ автомат байдаг, үгүй бол та үүнийг зааж өгөх хэрэгтэй. нь CVSup-д хийж байгаа бүх шинэчлэлтүүдийнхээ талаар дэлгэрэнгүй мэдээллийг үзүүлэхийг хэлж өгнө. Гурван түвшний харуулах горим байдаг бөгөөд энэ нь хүртэл байна. Анхдагч нь 0 байх бөгөөд энэ нь алдааны мэдэгдлээс бусдыг харуулахгүй. Бусад олон сонголтууд байдаг. Тэдгээрийн товч жагсаалтыг үзэхийн тулд cvsup -H гэж бичнэ. Илүү дэлгэрэнгүй тайлбаруудын талаар гарын авлагын хуудсыг үзнэ үү. Шинэчлэлт ажилладаг аргад сэтгэл ханамжтай болсныхоо дараа та CVSup-г давтамжтайгаар ажиллуулахын тулд &man.cron.8; ашиглан хийж өгч болно. Мэдээж та &man.cron.8;-с CVSup-г ажиллуулахдаа өөрийнхөө GUI-г ашиглахгүй болгох хэрэгтэй. <application>CVSup</application>-ийн файлын цуглуулгууд CVSup-ийн файлын цуглуулгууд нь шатлалтайгаар зохион байгуулагдсан байдаг. Цөөн том цуглуулгууд байдаг бөгөөд тэдгээр нь арай жижиг дэд цуглуулгуудад хуваагддаг. Том цуглуулгыг хүлээн авах нь түүний дэд цуглуулгууд тус бүрийг хүлээн авахтай адил юм. Цуглуулга хоорондын шаталсан холбоонууд нь доорх жагсаалт дахь догол ашиглалтаар тусгагддаг. Хамгийн түгээмэл хэрэглэгддэг цуглуулгууд нь src-all, болон ports-all юм. Бусад цуглуулгуудыг тусгай зорилгоор зөвхөн жижиг бүлэг хүмүүс ашигладаг бөгөөд зарим толин тусгал сайтууд тэдгээрийг бүгдийг агуулдаггүй байж болох юм. cvs-all release=cvs Криптограф кодыг оролцуулаад FreeBSD-ийн гол CVS архив. distrib release=cvs FreeBSD-ийн түгээлт болон толин тусгал хийхтэй холбоотой файлууд. doc-all release=cvs FreeBSD гарын авлагын эхүүд ба бусад баримт. Энэ нь FreeBSD-ийн вэб сайтын файлуудыг агуулдаггүй. ports-all release=cvs FreeBSD-ийн портын цуглуулга. Хэрэв та бүхэл ports-all-г (бүх портын мод) шинэчлэхийг хүсэхгүй байгаа бөгөөд доор жагсаагдсан дэд цуглуулгуудын нэгийг ашиглаж байгаа бол ports-base дэд цуглуулгыг шинэчилсэн эсэхээ үргэлж шалгаж байх хэрэгтэй. ports-base-ээр танилцуулагдсан портын бүтээлтийн дэд бүтцэд ямар нэгэн өөрчлөлт орох болгонд тэдгээр өөрчлөлтүүд нь жинхэнэ портуудад тун удахгүй ашиглагдах нь бараг л тодорхой байдаг юм. Тиймээс хэрэв та зөвхөн жинхэнэ портуудыг шинэчилж тэдгээр нь шинэ боломжуудын заримыг ашигладаг бол тэдгээрийн бүтээлт нь зарим нэг ид шидийн алдааны мэдэгдэлтэйгээр амжилтгүй болох маш их магадлалтай юм. Энэ тохиолдолд хамгийн эхэнд хийх зүйл бол таны ports-base дэд цуглуулга хамгийн сүүлийн үеийнх эсэхийг шалгах хэрэгтэй юм. Хэрэв та ports/INDEX-ийн өөрийн локал хуулбарыг бүтээх гэж байгаа бол ports-all буюу бүх портыг хүлээж авах ёстой (бүх портын мод). ports/INDEX-г хэсэг модтой бүтээхийг дэмждэггүй. FAQ хаягийг үзнэ үү. ports-accessibility release=cvs Хөгжлийн бэрхшээлтэй хэрэглэгчдэд туслахад зориулсан програм хангамж. ports-arabic release=cvs Араб хэлний дэмжлэг. ports-archivers release=cvs Архивлах хэрэгслүүд. ports-astro release=cvs Одон оронтой холбоотой портууд. ports-audio release=cvs Дууны дэмжлэг. ports-base release=cvs Портын цуглуулгын бүтээх дэд бүтэц - төрөл бүрийн файлууд /usr/ports сангийн Mk/ болон Tools/ дэд сангуудад байрладаг. Дээрх чухал анхааруулгыг үзнэ үү: та FreeBSD-ийн портын цуглуулгын ямар ч хэсгийг шинэчлэхдээ энэ дэд цуглуулгыг үргэлж шинэчилж байх хэрэгтэй! ports-benchmarks release=cvs Бенчмаркууд. ports-biology release=cvs Биологи. ports-cad release=cvs Компьютерийн тусламжтай дизайн хийх хэрэгслүүд. ports-chinese release=cvs Хятад хэлний дэмжлэг. ports-comms release=cvs Холбооны програм хангамж. ports-converters release=cvs тэмдэгтийн код хөрвүүлэгчид. ports-databases release=cvs Мэдээллийн баазууд. ports-deskutils release=cvs Компьютер зохион бүтээгдэхээс өмнө ширээн дээр байдаг байсан зүйлс. ports-devel release=cvs Хөгжүүлэлтийн багажууд. ports-dns release=cvs DNS-тэй холбоотой програм хангамж. ports-editors release=cvs Засварлагчид. ports-emulators release=cvs Бусад үйлдлийн системүүдэд зориулсан эмуляторууд. ports-finance release=cvs Банк, санхүү болон тэдгээртэй холбоотой програмууд. ports-ftp release=cvs FTP клиент ба серверийн багажууд. ports-games release=cvs Тоглоомууд. ports-german release=cvs Герман хэлний дэмжлэг. ports-graphics release=cvs Графикийн багажууд. ports-hebrew release=cvs Хэбрю хэлний дэмжлэг. ports-hungarian release=cvs Унгар хэлний дэмжлэг. ports-irc release=cvs Internet Relay Chat буюу чалчих багажууд. ports-japanese release=cvs Япон хэлний дэмжлэг. ports-java release=cvs &java; багажууд. ports-korean release=cvs Солонгос хэлний дэмжлэг. ports-lang release=cvs Програмчлалын хэлнүүд. ports-mail release=cvs Захидлын програмууд. ports-math release=cvs Тоо тооцоолох програм хангамж. ports-mbone release=cvs MBone програмууд. ports-misc release=cvs Бусад багажууд. ports-multimedia release=cvs Мультимедиа програм хангамж. ports-net release=cvs Сүлжээний програм хангамж. ports-net-im release=cvs Шуурхай мэдэгдэл (instant messaging) илгээх програм хангамж. ports-net-mgmt release=cvs Сүлжээний удирдлагын програм хангамж. ports-net-p2p release=cvs p2p сүлжээ. ports-news release=cvs USENET мэдээний програм хангамж. ports-palm release=cvs Palm төрлийн төхөөрөмжүүдэд зориулсан програм хангамжийн дэмжлэг. ports-polish release=cvs Польш хэлний дэмжлэг. ports-ports-mgmt release=cvs Портууд болон багцуудыг удирдах багажууд. ports-portuguese release=cvs Португал хэлний дэмжлэг. ports-print release=cvs Хэвлэлтийн програм хангамж. ports-russian release=cvs Орос хэлний дэмжлэг. ports-science release=cvs Шинжлэх ухаан. ports-security release=cvs Аюулгүй байдлын хэрэгслүүд. ports-shells release=cvs Тушаалын мөрийн бүрхүүлүүд. ports-sysutils release=cvs Системийн хэрэгслүүд. ports-textproc release=cvs текст боловсруулах хэрэгслүүд (ширээний хэвлэл ордоггүй). ports-ukrainian release=cvs Украйн хэлний дэмжлэг. ports-vietnamese release=cvs Вьетнам хэлний дэмжлэг. ports-www release=cvs World Wide Web-тэй холбоотой програм хангамж. ports-x11 release=cvs X Цонхны системийг дэмжих портууд. ports-x11-clocks release=cvs X11 цагнууд. ports-x11-drivers release=cvs X11 драйверууд. ports-x11-fm release=cvs X11 файл менежерүүд. ports-x11-fonts release=cvs X11 үсгийн маягууд ба үсгийн маягийн хэрэгслүүд. ports-x11-toolkits release=cvs X11 багажны цуглуулгууд. ports-x11-servers release=cvs X11 серверүүд. ports-x11-themes release=cvs X11 харуулах маягууд. ports-x11-wm release=cvs X11 цонхны менежерүүд. projects-all release=cvs FreeBSD төслийн архив дахь эхүүд. src-all release=cvs Криптограф кодыг оролцуулаад FreeBSD-ийн гол эхүүд. src-base release=cvs /usr/src сангийн дээр байрлах бусад файлууд. src-bin release=cvs Ганц хэрэглэгчийн горимд хэрэг болох хэрэглэгчийн багажууд (/usr/src/bin). src-cddl release=cvs CDDL лицензийн доор байдаг хэрэгслүүд болон сангууд (/usr/src/cddl). src-contrib release=cvs Харьцангуй өөрчлөлтгүйгээр хэрэглэгддэг FreeBSD төслөөс гаднах хэрэгслүүд ба сангууд (/usr/src/contrib). src-crypto release=cvs Харьцангуй өөрчлөлтгүйгээр хэрэглэгддэг FreeBSD төслөөс гаднах криптограф хэрэгслүүд ба сангууд (/usr/src/crypto). src-eBones release=cvs Kerberos ба DES (/usr/src/eBones). FreeBSD-ийн одоогийн хувилбаруудад ашигладаггүй. src-etc release=cvs Системийн тохиргооны файлууд (/usr/src/etc). src-games release=cvs Тоглоомууд (/usr/src/games). src-gnu release=cvs GNU Нийтийн Лицензтэй хэрэгслүүд (/usr/src/gnu). src-include release=cvs Толгой файлууд (/usr/src/include). src-kerberos5 release=cvs Kerberos5 аюулгүй байдлын багц (/usr/src/kerberos5). src-kerberosIV release=cvs KerberosIV аюулгүй байдлын багц (/usr/src/kerberosIV). src-lib release=cvs Сангууд (/usr/src/lib). src-libexec release=cvs Бусад програмуудаар ажилладаг системийн програмууд (/usr/src/libexec). src-release release=cvs FreeBSD хувилбар гаргахад шаардагдах файлууд (/usr/src/release). src-rescue release=cvs Яаралтай сэргээлт хийхэд зориулсан статикаар холболт хийгдсэн програмууд; &man.rescue.8;-г үзнэ үү (/usr/src/rescue). src-sbin release=cvs Ганц хэрэглэгчийн горимд зориулсан системийн хэрэгслүүд (/usr/src/sbin). src-secure release=cvs Криптограф сангууд ба тушаалууд (/usr/src/secure). src-share release=cvs Олон системүүдийн хооронд хуваалцаж болох файлууд (/usr/src/share). src-sys release=cvs Цөм (/usr/src/sys). src-sys-crypto release=cvs Цөмийн криптограф код (/usr/src/sys/crypto). src-tools release=cvs FreeBSD-г арчлахад зориулсан төрөл бүрийн хэрэгслүүд (/usr/src/tools). src-usrbin release=cvs Хэрэглэгчийн хэрэгслүүд (/usr/src/usr.bin). src-usrsbin release=cvs Системийн хэрэгслүүд (/usr/src/usr.sbin). www release=cvs FreeBSD WWW сайтын эх. distrib release=self CVSup серверийн өөрийн тохиргооны файлууд. CVSup толин тусгал сайтуудад хэрэглэгддэг. gnats release=current GNATS алдаа мөрдөх мэдээллийн бааз. mail-archive release=current FreeBSD захидлын жагсаалтын архив. www release=current Урьдчилан боловсруулсан FreeBSD WWW сайтын файлууд (эх файлууд биш). WWW толин тусгал сайтуудад хэрэглэгддэг. Дэлгэрэнгүй мэдээллийг CVSup FAQ болон бусад CVSup-ийн тухай мэдээллийг CVSup гэрийн хуудас хаягаас үзнэ үү. Ихэнх FreeBSD-тэй холбоотой CVSup-ийн хэлэлцүүлэг &a.hackers;-д болдог. Програмын шинэ хувилбар тэнд, бас &a.announce;-д зарлагддаг. CVSup-ийн талаар асуултууд эсвэл алдааны тайлангуудыг CVSup FAQ холбоосоос үзнэ үү. CVSup сайтууд FreeBSD-д зориулсан CVSup серверүүд дараах хаягууд дээр ажиллаж байгаа: &chap.mirrors.cvsup.inc; Portsnap-г ашиглах нь Танилцуулга Portsnap нь &os;-ийн портын модыг аюулгүйгээр түгээхэд зориулагдсан систем юм. Дунджаар цаг тутам портын модны snapshot буюу хормын хувилбар үүсгэгдэж дахин багцлагдаж криптографын хувьд баталгаажуулагддаг. Үүний үр дүнд гарсан файлууд нь дараа нь HTTP-ээр түгээгддэг. CVSup-ийн адил Portsnap нь шинэчлэлтийн pull буюу татах загварыг ашигладаг: Багцлагдаж баталгаажуулагдсан портын моднууд клиентүүдээс ирэх файлын хүсэлтийг идэвхгүйгээр хүлээж байдаг вэб сервер дээр байрлуулагддаг. Хэрэглэгчид шинэчлэлтүүдийг татаж авахын тулд &man.portsnap.8;-г гараар ажиллуулах эсвэл шинэчлэлтүүдийг автоматаар тогтмол татаж авдгаар &man.cron.8; ажлыг тохируулах ёстой. Техникийн шалтгаануудаас болоод Portsnap нь амьд портын модыг /usr/ports/ санд шууд шинэчилдэггүй; харин анхдагчаар /var/db/portsnap/ санд хадгалагдсан портын модны шахагдсан хуулбараар дамжуулан ажилладаг. Энэ шахагдсан хуулбар нь дараа нь амьд портын модыг шинэчлэхэд хэрэглэгддэг. Хэрэв Portsnap нь &os;-ийн портын цуглуулгаас суулгагдсан бол түүний шахагдсан хормын хувилбарт зориулсан анхдагч байрлал нь /var/db/portsnap/-ийн оронд /usr/local/portsnap/ байх болно. Суулгалт &os; 6.0 болон сүүлийн хувилбарууд дээр Portsnap нь &os; үндсэн систем дээр байдаг. &os;-ийн хуучин хувилбарууд дээр үүнийг ports-mgmt/portsnap портыг ашиглан суулгаж болно. Portsnap-ийн тохиргоо Portsnap-ийн ажиллагаа /etc/portsnap.conf тохиргооны файлаар хянагддаг. Ихэнх хэрэглэгчдийн хувьд анхдагч тохиргооны файл хангалттай; илүү дэлгэрэнгүйг &man.portsnap.conf.5; гарын авлагын хуудаснаас лавлана уу. Хэрэв Portsnap нь &os;-ийн портын цуглуулгаас суулгагдсан бол /etc/portsnap.conf-ийн оронд /usr/local/etc/portsnap.conf тохиргооны файлыг ашиглах болно. Энэ тохиргооны файл нь порт суулгагдах үед үүсгэгддэггүй, гэхдээ жишээ тохиргооны файл түгээгддэг; түүнийг байрлал уруу нь хуулаад дараах тушаалыг ажиллуулна: &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf <application>Portsnap</application>-г эхний удаа ажиллуулах нь &man.portsnap.8; эхний удаа ажиллахдаа бүхэл портын модны шахагдсан хормын хувилбарыг /var/db/portsnap/ (хэрэв Portsnap нь портын цуглуулгаас суулгагдсан бол /usr/local/portsnap/ байна) руу татаж авах хэрэгтэй болдог. 2006 оны эхнээс эхлээд энэ нь ойролцоогоор 41 MB татаж авахаар байна. &prompt.root; portsnap fetch Шахагдсан хормын хувилбар татагдсаны дараа портын модны амьд хуулбарыг /usr/ports/ руу задалж болно. Энэ нь портын модны аль хэсгүүд сүүлд шинэчлэгдэх ёстойг portsnap тодорхойлж чадах үндсэн шугамыг тогтоож өгдөг болохоор портын мод (өөрөөр хэлбэл CVSup ашиглан) энэ сан уруу үүсгэгдсэн байсан ч гэсэн энэ үйлдэл шаардлагатай байдаг. &prompt.root; portsnap extract Анхдагч суулгалтад /usr/ports сан үүсгэгддэггүй. Хэрэв та &os; 6.0-RELEASE-г ажиллуулж байгаа бол энэ нь portsnap-г ашиглаж эхлэхээс өмнө үүсгэгдсэн байх ёстой. &os; эсвэл Portsnap-ийн сүүлийн хувилбарууд дээр энэ үйлдэл нь portsnap тушаалыг эхлэн ашиглахад автоматаар хийгдэх болно. Портын модыг шинэчлэх нь Портын модны эхний шахагдсан хормын хувилбар татагдаж /usr/ports/ руу задлагдсаны дараа портын модыг шинэчлэх явц хоёр алхмаас тогтоно: шинэчлэлтүүдийг шахагдсан хормын хувилбар руу татан авч амьд портын модыг шинэчлэхийн тулд тэдгээрийг ашиглана. Эдгээр хоёр алхмыг portsnap руу нэг тушаалаар зааж өгч болно: &prompt.root; portsnap fetch update portsnap-ийн зарим хуучин хувилбарууд энэ бичлэгийг дэмждэггүй; хэрэв энэ нь амжилтгүй болвол доор дурдсаныг туршаад үзээрэй: &prompt.root; portsnap fetch &prompt.root; portsnap update Portsnap-г cron-с ажиллуулах нь Portsnap серверүүдэд хандахад олон хүн холбогдсон асуудлуудыг тойрон гарахын тулд portsnap fetch тушаал нь &man.cron.8; ажлаас ажиллахгүй. Харин тусгай portsnap cron тушаал байх бөгөөд энэ нь шинэчлэлтүүдийг татаж авахаасаа өмнө 3600 секунд хүртэл санамсаргүй хугацаагаар хүлээдэг. Мөн энэ нь порт бүтээгдэж байх үед юм уу эсвэл суулгагдаж байх үед ажиллавал асуудлууд үүсгэх магадлалтай болохоор portsnap update тушаалыг cron ажлаас ажиллуулахгүй байхыг тууштай зөвлөдөг. Гэхдээ портын INDEX файлуудыг шинэчлэх нь аюулгүй байдаг бөгөөд үүнийг тугийг portsnap тушаалд өгч хийж болно. (Мэдээж хэрэв portsnap -I update нь cron-с ажиллавал үлдсэн модыг шинэчлэхийн тулд portsnap update тушаалыг туггүйгээр дараа нь ажиллуулах хэрэгтэй болно.) Дараах мөрийг /etc/crontab файлд нэмэхэд portsnap-ийг өөрийн шахагдсан хормын хувилбар болон INDEX файлуудыг /usr/ports/ санд шинэчлэж суулгагдсан портуудаас хуучин портууд байвал цахим захидал илгээхэд хүргэх болно: 0 3 * * * root portsnap -I cron update && pkg_version -vIL= Хэрэв системийн цагийг локал цагийн бүс гэж тохируулаагүй бол Portsnap серверүүд дээр ачааллыг тэгш хуваарилахын тулд 3 гэдгийг 0-с 23-ын хоорондох санамсаргүй утгаар сольно уу. portsnap-ийн зарим хуучин хувилбарууд portsnap-тай цуг зэрэг олон тушаалуудыг жагсаахыг дэмждэггүй (өөрөөр хэлбэл cron update). Хэрэв дээрх мөр амжилтгүй болвол portsnap -I cron update тушаалыг portsnap cron && portsnap -I update тушаалуудаар солиод үзээрэй. CVS Tags буюу хаягууд cvs эсвэл CVSup ашиглан эхийг авах юм уу эсвэл шинэчилж байгаа үед revision tag буюу залруулалтын хаягийг зааж өгөх ёстой байдаг. Залруулалтын хаяг нь &os; хөгжүүлэлтийн тодорхой нэг байх юм уу эсвэл хугацааны тодорхой нэг цэг байдаг. Эхнийх нь branch tags буюу салбарын хаягууд гэгддэг бөгөөд хоёр дахь нь хувилбарын хаягууд гэгддэг. Салбарын хаягууд HEAD-с (энэ нь үргэлж зөв хаяг байдаг) бусад бүх хаягууд зөвхөн src/ модонд хамаардаг. ports/, doc/, болон www/ моднууд нь салбарладаггүй. HEAD Гол шугамын симболын нэр, эсвэл FreeBSD-CURRENT. Залруулалт заагаагүй тохиолдолд бас анхдагч байдаг. CVSup-д энэ хаяг нь . гэсэн тэмдэгтээр илэрхийлэгддэг (цэг биш харин . тэмдэгт). CVS-д энэ нь залруулалт заагаагүй тохиолдолд анхдагч байдаг. Хэрэв та өөрөө хүсээгүй л бол STABLE машин дээр CURRENT эхийг татан авч шинэчлэх нь ихэвчлэн тийм ч сайн санаа биш юм. RELENG_7 FreeBSD-7.X-д зориулсан хөгжүүлэлтийн шугам, бас FreeBSD 7-STABLE гэгддэг RELENG_7_0 FreeBSD-7.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_6 FreeBSD-6.X-д зориулсан хөгжүүлэлтийн шугам, бас FreeBSD 6-STABLE гэгддэг RELENG_6_3 FreeBSD-6.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_6_2 FreeBSD-6.2-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_6_1 FreeBSD-6.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_6_0 FreeBSD-6.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5 FreeBSD-5.X-д зориулсан хөгжүүлэлтийн шугам, бас FreeBSD 5-STABLE гэгддэг. RELENG_5_5 FreeBSD-5.5-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5_4 FreeBSD-5.4-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5_3 FreeBSD-5.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5_2 FreeBSD-5.2 болон FreeBSD-5.2.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5_1 FreeBSD-5.1-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_5_0 FreeBSD-5.0-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4 FreeBSD-4.X-д зориулсан хөгжүүлэлтийн шугам, бас FreeBSD 4-STABLE гэгддэг. RELENG_4_11 FreeBSD-4.11-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_10 FreeBSD-4.10-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_9 FreeBSD-4.9-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_8 FreeBSD-4.8-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_7 FreeBSD-4.7-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_6 FreeBSD-4.6 болон FreeBSD-4.6.2-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_5 FreeBSD-4.5-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_4 FreeBSD-4.4-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_4_3 FreeBSD-4.3-д зориулсан хувилбарын салбар, аюулгүй байдлын зөвлөгөөнүүд болон бусад чухал засваруудад зориулж зөвхөн ашиглагддаг. RELENG_3 FreeBSD-3.X-д зориулсан хөгжүүлэлтийн шугам, бас 3.X-STABLE гэгддэг. RELENG_2_2 FreeBSD-2.2.X-д зориулсан хөгжүүлэлтийн шугам, бас 2.2-STABLE гэгддэг. Энэ салбар нь гол төлөв хуучирсан. Хувилбарын хаягууд Эдгээр хаягууд нь &os;-ийн тодорхой нэг хувилбар гарсан үеийн цагийн тодорхой цэгийг заадаг. Хувилбар инженерчлэлийн процессийн талаар Хувилбар инженерчлэлийн мэдээлэл болон Хувилбарын процесс баримтуудад илүү дэлгэрэнгүй баримтжуулагдсан байдаг. src мод нь RELENG_ гэж эхэлсэн хаягийн нэрсийг ашигладаг. ports болон doc моднууд нь RELEASE гэж эхэлсэн хаягийн нэрсийг ашигладаг. Төгсгөлд нь www мод нь хувилбаруудад зориулсан ямар нэг тусгай нэрээр хаяглагддаггүй. RELENG_7_0_0_RELEASE FreeBSD 7.0 RELENG_6_3_0_RELEASE FreeBSD 6.3 RELENG_6_2_0_RELEASE FreeBSD 6.2 RELENG_6_1_0_RELEASE FreeBSD 6.1 RELENG_6_0_0_RELEASE FreeBSD 6.0 RELENG_5_5_0_RELEASE FreeBSD 5.5 RELENG_5_4_0_RELEASE FreeBSD 5.4 RELENG_4_11_0_RELEASE FreeBSD 4.11 RELENG_5_3_0_RELEASE FreeBSD 5.3 RELENG_4_10_0_RELEASE FreeBSD 4.10 RELENG_5_2_1_RELEASE FreeBSD 5.2.1 RELENG_5_2_0_RELEASE FreeBSD 5.2 RELENG_4_9_0_RELEASE FreeBSD 4.9 RELENG_5_1_0_RELEASE FreeBSD 5.1 RELENG_4_8_0_RELEASE FreeBSD 4.8 RELENG_5_0_0_RELEASE FreeBSD 5.0 RELENG_4_7_0_RELEASE FreeBSD 4.7 RELENG_4_6_2_RELEASE FreeBSD 4.6.2 RELENG_4_6_1_RELEASE FreeBSD 4.6.1 RELENG_4_6_0_RELEASE FreeBSD 4.6 RELENG_4_5_0_RELEASE FreeBSD 4.5 RELENG_4_4_0_RELEASE FreeBSD 4.4 RELENG_4_3_0_RELEASE FreeBSD 4.3 RELENG_4_2_0_RELEASE FreeBSD 4.2 RELENG_4_1_1_RELEASE FreeBSD 4.1.1 RELENG_4_1_0_RELEASE FreeBSD 4.1 RELENG_4_0_0_RELEASE FreeBSD 4.0 RELENG_3_5_0_RELEASE FreeBSD-3.5 RELENG_3_4_0_RELEASE FreeBSD-3.4 RELENG_3_3_0_RELEASE FreeBSD-3.3 RELENG_3_2_0_RELEASE FreeBSD-3.2 RELENG_3_1_0_RELEASE FreeBSD-3.1 RELENG_3_0_0_RELEASE FreeBSD-3.0 RELENG_2_2_8_RELEASE FreeBSD-2.2.8 RELENG_2_2_7_RELEASE FreeBSD-2.2.7 RELENG_2_2_6_RELEASE FreeBSD-2.2.6 RELENG_2_2_5_RELEASE FreeBSD-2.2.5 RELENG_2_2_2_RELEASE FreeBSD-2.2.2 RELENG_2_2_1_RELEASE FreeBSD-2.2.1 RELENG_2_2_0_RELEASE FreeBSD-2.2.0 AFS сайтууд FreeBSD-д зориулсан AFS серверүүд нь дараах сайтууд дээр ажиллаж байна: Швед Файлуудад хүрэх зам нь: /afs/stacken.kth.se/ftp/pub/FreeBSD/ stacken.kth.se # Stacken Computer Club, KTH, Sweden 130.237.234.43 #hot.stacken.kth.se 130.237.237.230 #fishburger.stacken.kth.se 130.237.234.3 #milko.stacken.kth.se Арчлагч ftp@stacken.kth.se rsync сайтууд Дараах сайтууд нь FreeBSD-г rsync протоколоор түгээгдэх боломжийг бүрдүүлдэг. rsync хэрэгсэл нь &man.rcp.1; тушаалтай бараг төстэйгөөр ажилладаг боловч илүү олон тохируулгуудтай бөгөөд хоёр талын файлуудын зөвхөн ялгаатайг нь дамжуулдаг. Ингэснээр сүлжээгээр хийх хамгийн сүүлийн хэлбэрт аваачих үйлдлийг ихээхэн хурдасгадаг байна. Хэрэв та FreeBSD FTP сервер юм уу эсвэл CVS архивын толин тусгал сайт бол энэ нь их ашигтай байдаг. rsync цуглуулга нь олон үйлдлийн системүүд дээр байдаг. FreeBSD-ийн хувьд net/rsync порт эсвэл багцыг үзнэ үү. Бүгд Найрамдах Чех Улс rsync://ftp.cz.FreeBSD.org/ Байгаа цуглуулгууд: ftp: FreeBSD FTP серверийн хэсэгчилсэн толин тусгал. FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал. Герман rsync://grappa.unix-ag.uni-kl.de/ Байгаа цуглуулгууд: freebsd-cvs: Бүрэн FreeBSD CVS архив. Үүнээс гадна энэ машин нь NetBSD болон OpenBSD төслүүдийн CVS архивуудыг бас толин тусгал хийдэг. Нидерланд rsync://ftp.nl.FreeBSD.org/ Байгаа цуглуулгууд: vol/4/freebsd-core: FreeBSD FTP серверийн бүрэн толин тусгал. Тайвань rsync://ftp.tw.FreeBSD.org/ rsync://ftp2.tw.FreeBSD.org/ rsync://ftp6.tw.FreeBSD.org/ Байгаа цуглуулгууд: FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал. Их Британи rsync://rsync.mirror.ac.uk/ Байгаа цуглуулгууд: ftp.FreeBSD.org: FreeBSD FTP серверийн бүрэн толин тусгал. Америкийн Нэгдсэн Улс rsync://ftp-master.FreeBSD.org/ Энэ серверийг FreeBSD-ийн анхдагч толин тусгал сайтууд зөвхөн хэрэглэж болно. Байгаа цуглуулгууд: FreeBSD: FreeBSD FTP серверийн мастер архив. acl: FreeBSD-ийн мастер ACL жагсаалт. rsync://ftp13.FreeBSD.org/ Байгаа цуглуулгууд: FreeBSD: FreeBSD FTP серверийн бүрэн толин тусгал.
diff --git a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml index 05cf3efc7e..f63e6e4c09 100644 --- a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml @@ -1,4642 +1,4643 @@ Мюррей Стөүкли Дахин зохион байгуулсан Лодойсамбын Баянзул Орчуулсан Сүлжээний орчны Серверүүд Ерөнхий агуулга Энэ бүлэгт &unix; системүүдэд өргөн хэрэглэгддэг, сүлжээний орчинд ажилладаг зарим нэг үйлчилгээнүүдийн талаар авч үзнэ. Бид тэдгээр үйлчилгээнүүдийг хэрхэн суулгах, тохируулах, турших болон үйлчилгээг хариуцах талаар үзэх болно. Танд зориулж жишээ тохиргооны файлуудыг мөн оруулж өгсөн байгаа. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: inetd дэмоныг хэрхэн удирдах. Сүлжээний орчны файл системийг хэрхэн зохион байгуулах. Хэрэглэгчийн бүртгэлийг хуваалцах сүлжээний орчны мэдээллийн серверийг хэрхэн зохион байгуулах. DHCP ашиглан автоматаар сүлжээний тохиргоог хэрхэн хийх. Домэйн нэрийн серверийг хэрхэн зохион байгуулах. Apache HTTP Серверийг хэрхэн зохион байгуулах. File Transfer Protocol буюу Файл Дамжуулах Протокол(FTP) Серверийг хэрхэн зохион байгуулах. Samba ашиглан &windows; хэрэглэгчдэд зориулсан файл болон хэвлэгч серверийг хэрхэн зохион байгуулах. NTP протокол ашиглан цаг болон өдрийг тохируулах хийгээд цагийн серверийг хэрхэн зохион байгуулах. Энэ бүлгийг уншихаасаа өмнө, та дараах шаардлагыг хангасан байх хэрэгтэй: /etc/rc скриптүүдийн үндсийг ойлгосон байх. Сүлжээний үндсэн нэр томъёоллыг мэддэг байх. Гуравдагч этгээдийн програмыг() хэрхэн нэмж суулгахыг мэддэг байх. Шерн Лий Хувь нэмрээ оруулсан &os; 6.1-RELEASE-д зориулж шинэчилсэн &os; Баримтжуулах Төсөл Лодойсамбын Баянзул Орчуулсан <application>inetd</application> <quote>Супер-Сервер</quote> Ерөнхий агуулга &man.inetd.8; нь олон тооны үйлчилгээний сүлжээний холболтыг удирддаг тул заримдаа түүнийг Интернэт Супер-Сервер гэж нэрлэх нь бий. Гаднаас үүсч буй холболтыг inetd хүлээн авч, аль програмтай холбогдохыг тодорхойлон, тухайн процессийг салаалуулж, сокетийг түүн рүү чиглүүлнэ (програмын стандарт оролт, гаралт болон алдааны дескриптороор үйлчилгээний сокетийг өгнө). Байнга ашиглагддаггүй үйлчилгээний хувьд inetd-г ажиллуулах нь бүх дэмонг дангаар бие-даах горимд ажиллуулсантай харьцуулахад системийн нийт ачааллыг бууруулж өгдөг. Голчлон, inetd нь бусад дэмонуудыг салаалуулахад хэрэглэгддэг боловч chargen, auth, ба daytime гэх мэт нилээд олон ердийн протоколуудыг шууд зохицуулан ажиллуулж чадна. Энэ хэсэгт inetd-н үндсэн тохиргоог тушаалын мөрний тохируулгаар, мөн /etc/inetd.conf тохиргооны файлаар хэрхэн хийхийг үзэх болно. Тохиргоо inetd нь &man.rc.8; системээр эхлүүлэгдэнэ. inetd_enable тохируулгын анхдагч утга нь NO бөгөөд, системийг суулгах явцад хэрэглэгчийн зааж өгсний дагуу sysinstall програмын тусламжтай идэвхжүүлж болно. inetd_enable="YES" эсвэл inetd_enable="NO" гэсэн мөрийг /etc/rc.conf файл дотор байрлуулснаар inetd-г систем ачаалахад эхэлдэг болгож болно. Доор дурдсан: /etc/rc.d/inetd rcvar тушаалыг өгөн одоо идэвхтэй байгаа тохиргоог харж болно. Дээр нь, inetd_flags тохируулгаар дамжуулан inetd програмд тушаалын мөрнөөс өөр бусад тохируулгуудыг зааж өгч болно. Тушаалын мөрний тохируулгууд Ихэнх сервер дэмоны нэгэн адил, inetd нь түүнийг өөрчлөн тохируулахад зориулагдсан олон тооны тохируулгуудын хамт ирдэг. Тохируулгуудыг бүрнээр жагсаан бичвэл: inetd /etc/rc.conf файл доторх inetd_flags тохируулгыг ашиглан эдгээр тохируулгуудыг inetd-д дамжуулна. Анхдагч байдлаар, inetd_flags нь -wW -C 60 гэсэн утгыг авсан байх ба энэ нь inetd-ны үйлчилгээнүүдийн хувьд TCP wrapping буюу TCP-ийн дундын хяналтыг идэвхжүүлэх ба нэг IP хаягнаас аль нэг үйлчилгээнд нэг минутанд 60-аас дээш удаа хүсэлт тавих боломжгүй болгоно. Хэдийгээр бид гаднаас хэтэрхий олон тооны хандалт хийгдэж байгаа үед тохируулгаар түүнийг хэрхэн хязгаарлахыг доор үзүүлж байгаа ч, анхлан суралцагчдад зөвлөхөд эдгээр параметрүүдийг ихэвчлэн өөрчлөх шаардлагагүй байдаг. Тохируулгуудын бүрэн жагсаалтыг &man.inetd.8; заавар хуудаснаас үзнэ үү. -c maximum Үйлчилгээг нэгэн зэрэг хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь хязгааргүй. Үйлчилгээ тус бүрээр параметрийн тусламжтай утгыг дарж өөрчилж болно. -C rate Үйлчилгээг нэг IP хаягнаас нэг минутын дотор хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь хязгааргүй. Үйлчилгээ тус бүрээр параметрийн тусламжтай утгыг дарж өөрчилж болно. -R rate Үйлчилгээг нэг минутын дотор хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь 256. 0-г тавьснаар хязгааргүй болгоно. -s maximum Үйлчилгээг нэг IP хаягнаас хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь хязгааргүй. Үйлчилгээ тус бүрээр параметрийн тусламжтай утгыг дарж өөрчилж болно. <filename>inetd.conf</filename> inetd/etc/inetd.conf файлын тусламжтай тохируулна. /etc/inetd.conf файлд өөрчлөлт хийсний дараа, inetd-р тохиргооны файлыг дахин уншуулахдаа дараах тушаалыг өгнө: <application>inetd</application>-н тохиргооны файлыг дахин ачаалах нь &prompt.root; /etc/rc.d/inetd reload Тохиргооны файлын мөр бүр тусдаа дэмонг заана. Файл доторх тайлбарууд нь мөрийн эхэнд # тэмдэгтэй байна. /etc/inetd.conf файл доторх бичлэгүүдийн формат дараах байдалтай байна: service-name socket-type protocol {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] user[:group][/login-class] server-program server-program-arguments IPv4 ашигладаг &man.ftpd.8; дэмоны хувьд жишээ бичлэг дараах байдалтай байж болно: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l service-name Тухайн дэмоны үйлчилгээний нэрийг заана. Энэ нь /etc/services файл дотор бичигдсэн үйлчилгээнүүдийн нэг байх ёстой бөгөөд аль портон дээр сонсохыг inetd-д хэлж өгнө. Хэрэв шинэ үйлчилгээ үүсгэсэн бол түүнийг заавал /etc/services файл дотор нэмсэн байх ёстой. socket-type stream, dgram, raw, эсвэл seqpacket эдгээрийн нэг байна. stream-г холболтон дээр үндэслэсэн TCP дэмонуудын хувьд хэрэглэдэг бол, dgramUDP протоколоор ажилладаг дэмонуудын хувьд хэрэглэнэ. protocol Доор дурдсанаас нэг нь байна: Протокол Тайлбар tcp, tcp4 TCP IPv4 udp, udp4 UDP IPv4 tcp6 TCP IPv6 udp6 UDP IPv6 tcp46 TCP IPv4 ба v6 хоёул udp46 UDP IPv4 ба v6 хоёул {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] нь inetd-р дуудагдсан дэмон өөрийн сокетийг удирдаж чадах эсэхийг заана. төрлийн сокет дэмоны хувьд тохируулгыг хэрэглэх ёстой байдаг бол, ихэвчлэн олон урсгалтай байдаг сокет дэмоны хувьд тохируулгыг хэрэглэх хэрэгтэй байдаг. нь ихэвчлэн олон сокетийг нэг дэмонд шилжүүлэн өгдөг бол, нь шинээр үүссэн сокет тус бүрт харгалзуулан хүүхэд дэмонг салаалуулан үүсгэдэг. inetd-ийн салаалуулан үүсгэж болох хамгийн их хүүхэд дэмоны тоог тохируулгын тусламжтай зааж өгч болно. Хэрэв тухайн дэмоны ажиллаж болох тохиолдлыг 10-р хязгаарлах бол, -н ард /10 гэж бичнэ. /0 нь хүүхдийн тоог хязгаарлахгүй гэсэн утгатай. -с гадна, нэг газраас тухайн дэмонтой үүсгэж байгаа холболтын тоог хязгаарладаг өөр хоёр тохируулгыг хэрэглэж болно. нь тухайн ямар нэг IP хаягнаас нэг минутанд үүсгэж болох холболтын тоог хязгаарлана, жишээлбэл: 10 гэсэн утга нь тухайн ямар нэг IP хаягнаас нэг минутын дотор тухайн үйлчилгээнд холбогдохоор оролдох оролдлогын тоог 10-р хязгаарлана. нь Тухайн ямар нэг IP хаяг дээр үүсгэгдсэн хүүхдийн тоог хязгаарлана. Эдгээр тохируулгууд нь санаатай болон санамсаргүйгээр нөөцийг хэтрүүлэн хэрэглэх, мөн Үйлчилгээг Зогсоох (DoS) халдлагаас хамгаалахад хэрэгтэй байдаг. Хэрэглэхдээ, ба хоёрын аль нэгийг заавал хэрэглэх ёстой. Харин , ба тохируулгуудыг сонгон хэрэглэж болно. Stream төрлийн олон урсгалтай дэмоны хувьд, , эсвэл хязгаарлалтуудын алийг ч хэрэглэхгүй тохиолдолд ердөө: nowait байна. Дээрхтэй адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай бол: nowait/10 байна. Мөн адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай, минутанд нэг IP хаягнаас үүсгэх холболтын тоог 20-р хязгаарлах бол: nowait/10/20 болно. Эдгээр тохируулгуудыг &man.fingerd.8; дэмоны анхдагч тохиргоон дээр жишээ болгон харвал: finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s Эцэст нь, 100 хүүхдийн хязгаарлалттай, нэг IP хаягнаас үүсэх холболтын тоог 5-р хязгаарласан дэмоны жишээг авбал: nowait/100/0/5 байх юм. user Энд тухайн дэмон ямар хэрэглэгчийн нэрээр ажиллахыг зааж өгнө. Ихэвчлэн дэмонууд root хэрэглэгчийн нэр дээр ажилладаг. Аюулгүй байдлын үүднээс, зарим серверүүд daemon, эсвэл хамгийн бага эрхтэй nobody хэрэглэгчийн нэр дээр ажиллах нь элбэг байдаг. server-program Энд гаднаас холболт хүлээн авахад ажиллуулах дэмоны бүрэн замыг зааж өгнө. Хэрэв энэ дэмон inetd-р удирдагдсан дотоод үйлчилгээ бол тохируулгыг хэрэглэх хэрэгтэй. server-program-arguments Үүнийг -тай хамт, argv[0]-с эхлэн програмын аргументыг зааж өгөх байдлаар хэрэглэнэ. Хэрэв командын мөрөнд mydaemon -d гэсэн байдлаар хэрэглэдэг бол, -н утга mydaemon -d байна. Дахин хэлэхэд, хэрэв тухайн дэмон дотоод үйлчилгээний нэг бол -г энд мөн хэрэглэнэ үү. Аюулгүй байдал Үйлдлийн системийг суулгах үед хийсэн сонголтуудаас хамааран inetd-н үйлчилгээнүүдийн ихэнх нь идэвхтэй болсон байдаг. Хэрэв хэрэглэх онцын шаардлага байхгүй бол тэдгээрийг идэвхгүй болгоно уу. /etc/inetd.conf файл дотор, идэвхгүй болгох гэж байгаа демоныхоо харгалзах мөрийн урд # тэмдгийг тавьж өгнө. Дараа нь inetd-н тохиргоог дахин ачаална. fingerd зэрэг зарим дэмонууд гадны халдагчид хэрэгтэй мэдээллийг түгээж байдаг тул тэдгээр үйлчилгээг бүрмөсөн хааж болох юм. Зарим дэмонууд аюулгүй байдлыг бодолцолгүйгээр бүтээгдсэн байдаг ба холболт тогтоох харьцангуй урт болзоот хугацаатай, эсвэл болзоот хугацааг огт зааж өгөөгүй байдаг. Энэ нь халдагчид тодорхой дэмон уруу холболт тогтоох хүсэлтийг олон дахин илгээж, нөөцийг дуусгах замаар системд халдах боломжийг олгодог. Хэрэв ямар нэг дэмоны хувьд үүссэн холболтын тоо хэтэрхий олон байвал , эсвэл тохиргооны тусламжтайгаар хязгаарлалт хийх нь оновчтой байдаг. Анхдагч байдлаар TCP-ийн дундын хяналт (гүйцэтгэл хялбаршуулалт) идэвхтэй байдаг. inetd-р дуудагдсан дэмонуудын хувьд TCP хязгаарлалтыг хэрхэн тавих талаар дэлгэрэнгүй мэдээллийг &man.hosts.access.5; заавар хуудаснаас үзнэ үү. Элдэв зүйлс daytime, time, echo, discard, chargen, ба auth бүгд inetd-н дотоод үйлчилгээнүүд юм. auth үйлчилгээ нь сүлжээний орчинд, тодорхойлолт өгөх үйлчилгээ үзүүлдэг бөгөөд тодорхой түвшинд тохиргоо хийх боломжтой байдаг бол бусад үйлчилгээнүүдийг зөвхөн идэвхтэй эсвэл идэвхгүй болгох боломжтой. Дээрх үйлчилгээнүүдийн талаар бүрэн дүүрэн мэдээллийг &man.inetd.8; заавар хуудаснаас үзнэ үү. Том Рөүдс Дахин зохион байгуулж, сайжруулсан Билл Свингл Бичсэн Лодойсамбын Баянзул Орчуулсан Сүлжээний Файлын Систем (NFS) NFS FreeBSD дээр дэмжигддэг олон файлын системүүдийн нэг бол Network File System буюу Сүлжээний Файлын Систем юм, мөн NFS гэж нэрлэнэ. NFS нь сүлжээний орчинд файл болон санг бусадтай хуваалцах боломжийг олгодог. NFS-г хэрэглэн, хэрэглэгчид болон програмууд алслагдсан систем рүү дотоод файл руу хандаж байгаатай адилаар хандах боломжтой. NFS-н тэмдэглүүштэй давуу талуудаас дурдвал: Өргөн хэрэглэгддэг өгөгдлийг нэгтгэн нэг машин дээр байрлуулж, түүнд алсаас хандах боломжтой болсноор дотоод машинууд илүү бага диск хэрэглэх болно. Хэрэглэгчийн хувьд сүлжээнд байгаа машин бүр дээр тус тусдаа гэрийн сантай байх шаардлагагүй болно. Гэрийн санг нэг удаа NFS сервер дээр үүсгээд түүнийгээ сүлжээгээр дамжин хэрэглэх боломжтой. Уян диск, CDROM болон &iomegazip; төхөөрөмжүүдийг сүлжээний бусад машинууд хэрэглэх боломжтой болно. Ингэснээр сүлжээнд хэрэглэгдэх зөөвөрлөх боломжтой хадгалах төхөөрөмжүүдийн тоог багасгана. <acronym>NFS</acronym> хэрхэн ажилладаг вэ NFS нь үндсэн хоёр хэсгээс бүрдэнэ: сервер болон нэг ба түүнээс дээш тооны харилцагч. Сервер машин дээр хадгалагдаж байгаа өгөгдөл рүү харилцагч алсаас хандана. Дээрх үйлдлийг зөв гүйцэтгэхийн тулд нилээд хэдэн процессийн тохиргоог хийж, ажиллуулсан байх ёстой. Сервер дээр дараах дэмонууд ажиллаж байх ёстой: NFS сервер файл сервер UNIX харилцагчид rpcbind mountd nfsd Дэмон Тайлбар nfsd NFS харилцагчдаас ирэх хүсэлтийг хүлээн авах NFS дэмон. mountd &man.nfsd.8;-с дамжиж ирсэн хүсэлтийг гүйцэтгэгч NFS холбох дэмон. rpcbind Энэ дэмоны тусламжтай NFS харилцагчид NFS сервер аль портон дээр ажиллаж байгааг олж мэднэ. Харилцагч nfsiod гэсэн дэмонг мөн ажиллуулж болно. nfsiod дэмон NFS серверээс ирэх хүсэлтийг гүйцэтгэнэ. Ингэх нь системийг хэвийн, алдаагүй ажиллуулахад зайлшгүй шаардлагагүй боловч зарим үзүүлэлтүүдийг сайжруулдаг тул нэмэлт байдлаар хэрэглэж болно. Дэлгэрэнгүй мэдээллийг &man.nfsiod.8; хуудаснаас үзнэ үү. <acronym>NFS</acronym>-н тохиргоог хийх NFS тохиргоо NFS-н тохиргоог хийх нь харьцангуй амархан. Ажиллах ёстой процессуудыг системтэй хамт автоматаар асдаг болгохын тулд /etc/rc.conf файлыг бага зэрэг өөрчлөхөд хангалттай. NFS сервер дээрх /etc/rc.conf файл дотор дараах тохируулгууд идэвхжсэн байгаа эсэхийг шалгана уу: rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r" mountd нь NFS серверийг идэвхжүүлсэн тохиолдолд өөрөө автоматаар ажиллана. Харилцагч талд, /etc/rc.conf файл дотор дараах тохируулга идэвхтэй байгаа эсэхийг шалгана уу: nfs_client_enable="YES" /etc/exports файл дотор NFS ямар файл системүүдийг экспорт хийхийг (заримдаа хуваалцах гэж мөн нэрлэнэ) зааж өгнө. /etc/exports файлын мөр бүр нь нэг файл системд харгалзана. Энэ файл системд хандах эрхтэй машинуудыг заахаас гадна, ямар тохируулгаар хандахыг мөн зааж өгч болно. Энэ файл дотор бичигдэж болох нилээд олон ийм тохируулгууд байгаа хэдий ч, бид тэдгээрээс зөвхөн заримыг нь энд авч үзэх болно. Та бусад тохируулгуудын талаар &man.exports.5; заавар хуудаснаас уншиж мэднэ үү. Доор /etc/exports файлаас хэдэн жишээ мөрийг үзүүлэв: NFS экспортлох жишээ Дараах жишээн дээрээс файл системийг хэрхэн экспортлох санааг олж авах болно. Тохируулгууд нь таны сүлжээний тохиргоо, нөхцөл байдлаас шалтгаалан өөр байхыг анхаарна уу. Жишээ нь, /cdrom гэсэн санг 3 машин руу экспортлохын тулд дараах байдалтай бичнэ. Жишээн дээрх 3 машин сервертэй адил домэйн нэртэй, эсвэл таны /etc/hosts файл дотор тодорхойлогдсон гэж үзсэн болно. туг нь экспортлогдож буй файл системийг зөвхөн унших боломжтой болохыг заана. Энэ тугийг тавьснаар алсаас хандаж буй машин энэ файл систем дээр ямар нэг өөрчлөлт хийх боломжгүй болно. /cdrom -ro host1 host2 host3 Дараах жишээн дээр /home санг IP хаягаар нь зааж өгсөн 3 машин руу экспортолж байна. Ингэж IP хаягаар нь зааж өгөх нь дотоод сүлжээндээ DNS сервер ажиллуулаагүй үед их хэрэгтэй байдаг. Эсвэл /etc/hosts файл дотор дотоод хостуудын нэрийг тохируулж болно; &man.hosts.5; хэсгийг дахин үзнэ үү. гэсэн туг нь дэд сангуудыг холболтын цэг байхыг зөвшөөрч өгдөг. Өөрөөр хэлбэл, дэд сангуудыг холболгүй орхиж, харилцагч зөвхөн өөрийн хэрэгцээтэй байгаа сангаа холбохыг зөвшөөрнө гэсэн үг юм. /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 Дараах жишээн дээр /a санг хоёр өөр домэйноос 2 харилцагч хандаж болохоор экспортолж байна. гэсэн туг нь алслагдсан систем дээрх root хэрэглэгч экспортлогдсон файл систем дээр root эрхээр бичихийг зөвшөөрнө. Хэрэв -maproot=root тугийг тусгайлан зааж өгөөгүй бол, хэдий алслагдсан систем дээрх хэрэглэгч root эрхтэй ч экспортлогдсон файл систем дээр бичих эрхгүй болно. /a -maproot=root host.example.com box.example.org Харилцагч экспортлогдсон файл систем рүү хандахын тулд эрх нь байх ёстой. Тухайн харилцагч /etc/exports файл дотор бүртгэлтэй эсэхийг шалгаарай. /etc/exports файл дотор мөр болгон нь нэг файл системийг нэг хост руу экспортлох мэдээллийг төлөөлнө. Алслагдсан хост аль нэг файл системийн хувьд зөвхөн ганц удаа л тодорхойлогдсон байх ёстой ба үүнд харгалзах ганцхан анхдагч бичлэг байж болно. Жишээ нь, /usr нь нэг файл систем гэж бодъё. /etc/exports файл доторх дараах бичлэгүүд нь буруу юм: # Invalid when /usr is one file system /usr/src client /usr/ports client Учир нь /usr гэсэн файл системийг client гэсэн хост руу экспортолсон хоёр бичлэг байна. Энэ тохиолдолд дараах форматаар бичвэл зөв болно: /usr/src /usr/ports client Нэг хост руу экспортлогдож байгаа файл системийн хувьд шинжүүдийг бүгдийг нэг мөрөнд жагсаан бичих ёстой. Харилцагчийг зааж өгөөгүй мөрүүдийг энгийн хост гэж үзнэ. Энэ нь файл системийг экспортлох боломжийг хязгаарлана, гэвч энэ нь ихэнх хүмүүст хүнд асуудал биш байдаг. Дараагийн жишээн дээр /usr ба /exports гэсэн дотоод файл системийг экспортолсон байна: # Export src and ports to client01 and client02, but only # client01 has root privileges on it /usr/src /usr/ports -maproot=root client01 /usr/src /usr/ports client02 # The client machines have root and can mount anywhere # on /exports. Anyone in the world can mount /exports/obj read-only /exports -alldirs -maproot=root client01 client02 /exports/obj -ro /etc/exports файл дотор гарсан өөрчлөлтүүдийг хүчинтэй болгохын тулд, өөрчлөлт орсон тухай бүрд mountd дэмонг албадан /etc/exports-г дахин уншуулах хэрэгтэй болдог. Үүний тулд эсвэл HUP дохиог ажиллаж байгаа дэмонд өгөх хэрэгтэй: &prompt.root; kill -HUP `cat /var/run/mountd.pid` эсвэл mountd &man.rc.8; скриптийг зохих параметрийн хамт ажиллуулах хэрэгтэй: &prompt.root; /etc/rc.d/mountd onereload rc скриптийг хэрэглэх зааврыг хэсгээс үзнэ үү. Бас нэг боломж нь, FreeBSD-г эхнээс нь ачаалж, бүх процессийг дахин эхлүүлэх юм. Гэвч үүний тулд заавал системийг дахин ачаалах шаардлага байхгүй. root эрхээр дараах тушаалуудыг өгснөөр зөвхөн хэрэгтэй процессуудаа дахин эхлүүлэх боломжтой. NFS сервер дээр: &prompt.root; rpcbind &prompt.root; nfsd -u -t -n 4 &prompt.root; mountd -r NFS харилцагч дээр: &prompt.root; nfsiod -n 4 Одоо алсын файл системийг холбоход бэлэн боллоо. Доорх жишээнүүд дээр серверийн нэрийг server, харилцагчийн нэрийг client гэж авсан болно. Хэрэв та алсын файл системийг зөвхөн түр хугацаагаар холбох гэж байгаа эсвэл тохиргоогоо шалгах гэж байгаа бол, харилцагч талд root эрхээр дараах тушаалыг өгөхөд хангалттай: NFS холболт &prompt.root; mount server:/home /mnt Энэ тушаалыг өгснөөр та сервер талд байгаа /home гэсэн санг харилцагч талд байгаа /mnt сантай холбох болно. Хэрэв бүх зүйл зөв тохируулагдсан бол, та харилцагч талын /mnt сан дотор орж сервер дээр байгаа файлуудыг харж чадах ёстой. Хэрэв систем шинээр ачаалах бүрд ямар нэг алсын файл системийг холбох хүсэлтэй байгаа бол, түүнийгээ /etc/fstab файл дотор нэмж бичих хэрэгтэй. Жишээ нь: server:/home /mnt nfs rw 0 0 Боломжит бүх сонголтуудын талаар &man.fstab.5; заавар хуудаснаас үзнэ үү. Цоожлолт Зарим програмууд (ж.н. mutt) зөв ажиллахын тулд файл цоожлолтыг шаарддаг. NFS-н хувьд, rpc.lockd-г файл цоожлолтонд хэрэглэж болно. Түүнийг идэвхжүүлэхийн тулд, сервер болон харилцагч талд хоёуланд нь /etc/rc.conf файл дотор дараах мөрүүдийг нэмж өгөх хэрэгтэй (NFS сервер болон харилцагч талуудыг аль хэдийн тохируулчихсан гэж үзэв): rpc_lockd_enable="YES" rpc_statd_enable="YES" Програмыг дараах байдалтай эхлүүлнэ: - &prompt.root; /etc/rc.d/nfslocking start + &prompt.root; /etc/rc.d/lockd start +&prompt.root; /etc/rc.d/statd start Хэрэв NFS харилцагч болон NFS сервер талуудын хооронд жинхэнэ файл цоожлолт хийгдэх шаардлагагүй бол, NFS харилцагч талд &man.mount.nfs.8;-д тохируулгыг өгөн дотоод цоожлолт хийлгэж болно. Дэлгэрэнгүй мэдээллийг &man.mount.nfs.8; заавар хуудаснаас үзнэ үү. Практик хэрэглээ NFS нь олон практик хэрэглээтэй. Хамгийн элбэг тохиолддог хэрэглээг доор жагсаав: NFS хэрэглээ Олон машиныг нэг CDROM эсвэл төхөөрөмжийг дундаа хэрэглэдэг байхаар зохион байгуулах. Энэ нь нэг програмыг олон машин дээр суулгах хамгийн хямд, хялбар арга юм. Том сүлжээний хувьд, бүх хэрэглэгчдийн гэрийн санг хадгалдаг төвлөрсөн NFS серверийг тохируулах. Эдгээр гэрийн сангуудыг дараа нь сүлжээний орчинд экспортолсноор хэрэглэгчид аль машин дээр ажиллаж буйгаас үл хамааран өөрийн нэг л сан дотор ажиллах боломжтой болно. Олон машин дундаа нэг /usr/ports/distfiles сантай байх. Ийм замаар, нэг портыг олон машин дээр суулгах хэрэгтэй үед машин бүр дээр эх файлыг татаж авалгүйгээр хурдан суулгах боломжтой болно. Вылий Стилвэл Хувь нэмрээ оруулсан Шерн Лий Дахин эмхтгэсэн Лодойсамбын Баянзул Орчуулсан <application>amd</application>-р автоматаар холбох нь amd автоматаар холбогч дэмон &man.amd.8; (автоматаар холбогч дэмон) нь алсын файл системийн файл эсвэл санд хэрэглэгч хандах тухай бүрт уг файл системийг автоматаар холбодог. Хэсэг хугацааны туршид идэвхгүй байгаа файл системийг amd мөн автоматаар салгана. amd-г хэрэглэснээр /etc/fstab дотор бичигддэг байнгын холболтоос гадна, холболт хийх боломжийг олгодог. amd нь өөрийгөө, /host ба /net сангууд дээр NFS сервер байдлаар холбож ажиллах бөгөөд эдгээр сангууд доторх файлд хандах үед, amd харгалзах алсын холболтыг хайж олоод автоматаар холбох болно. /net нь экспортлогдсон файл системийг IP хаягаар нь холбоход, харин /host нь хост нэрээр нь холбоход хэрэглэгдэнэ. /host/foobar/usr сан доторх файлд хандана гэдэг нь amdfoobar гэсэн хост дээр экспортлогдсон /usr санг холбохын зааж өгнө. Экспортыг <application>amd</application>-р холбох Алсын хост дээр байгаа боломжит холболтуудын жагсаалтыг showmount тушаалын тусламжтай харж болно. Жишээлбэл, foobar нэртэй хостын экспортыг харахын тулд: &prompt.user; showmount -e foobar Exports list on foobar: /usr 10.10.10.0 /a 10.10.10.0 &prompt.user; cd /host/foobar/usr Жишээн дээр үзүүлснээр showmount нь /usr-г экспортлогдсон болохыг харуулж байна. /host/foobar/usr сан дотор ороход, amd нь foobar гэсэн хост нэрийг тайлахыг оролдох ба заасан санг холбоно. amd-г эхлэл скриптүүдээр эхлүүлж болох ба үүний тулд /etc/rc.conf файл дотор дараах мөрийг нэмэх хэрэгтэй: amd_enable="YES" Мөн, amd програмд amd_flags тохируулгын тусламжтай тугуудыг өгч болно. amd_flags-н анхдагч утга нь: amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" /etc/amd.map файл дотор экспортуудыг холбох анхдагч тохируулгуудыг зааж өгсөн байна. /etc/amd.conf файл дотор amd-н илүү дээд түвшний чанаруудыг тодорхойлж өгнө. Дэлгэрэнгүй мэдээллийг &man.amd.8; ба &man.amd.conf.5; заавар хуудаснаас үзнэ үү. Жон Линд Хувь нэмрээ оруулсан Лодойсамбын Баянзул Орчуулсан Бусад системтэй нэгтгэхэд тохиолдох асуудлууд ISA PC системд зориулсан зарим Ethernet адаптерууд учир дутагдалтай байдгаас сүлжээний орчинд ажиллахад, тэр дундаа NFS-тэй ажиллахад нилээд асуудалтай байдаг. Энэ асуудал зөвхөн FreeBSD-д тохиолддоггүй боловч FreeBSD систем үүнд нилээд өртөмтгий байдаг. Энэ асуудал нь (FreeBSD) PC системийг өндөр үзүүлэлттэй машинуудтай (жишээлбэл, Silicon Graphics, Inc., ба Sun Microsystems, Inc компаниудын хийсэн) сүлжээнд холбох үед бараг үргэлж тохиолддог. NFS холболт хийхэд асуудалгүй, зарим үйлдлүүдийг хийхэд амжилттай байх боловч, гаднаас ирж явж байгаа хүсэлтүүдийг боловсруулж чадаж байгаа хэдий ч сервер гэнэт харилцагчид хариу өгөхгүй болдог. Энэ асуудал мөн харилцагчийн хувьд, харилцагч FreeBSD систем эсвэл ажлын машин байхаас үл шалтгаалан тохиолдоно. Ихэнх системийн хувьд, нэгэнт ийм асуудалд орсон бол харилцагч талыг ном ёсных нь дагуу унтраах боломжгүй болдог. Ганц авдаг арга хэмжээ бол системийг хүчээр унтрааж асаах юм. Учир нь, NFS-н энэ асуудал одоо хир нь шийдэгдээгүй байна. Хэдийгээр зөв шийдэл бол FreeBSD системд тохирох илүү өндөр үзүүлэлттэй, илүү багтаамжтай Ethernet адаптерийг олж авах боловч, боломжит ажиллагааг хангахын тулд нэг арга байна. Хэрэв FreeBSD систем нь сервер бол, харилцагч талаас холболт хийхдээ тохируулгыг оруулж өгөх явдал юм. Хэрэв FreeBSD систем нь харилцагч бол, NFS файл системтэй холбогдохдоо тохируулгыг хэрэглэх юм. Эдгээр тохируулгуудыг автомат холболтын хувьд fstab бичлэгийн дөрөв дэх талбарыг ашиглан, гар аргаар холболт хийх бол &man.mount.8; тушаалын параметрыг ашиглан зааж өгч болно. NFS сервер болон харилцагчид өөр өөр сүлжээнд байхад гардаг өөр нэг асуудлыг энэ асуудалтай хольж хутгах тохиолдол байдгийг энд дурдах нь зүйтэй болов уу. Хэрэв тийм бол, чиглүүлэгчид шаардлагатай UDP мэдээллийг дамжуулж чадаж байгаа эсэхийг нягталж үзээрэй. Үгүй бол, өөр юу ч хийлээ гээд та үр дүнд хүрч чадахгүй. Дараах жишээн дээр, fastws нь өндөр үзүүлэлттэй ажлын машины хост (интерфэйс) нэр, freebox нь бага үзүүлэлттэй Ethernet адаптертай FreeBSD системийн нэр юм. Мөн, /sharedfs нь экспортлогдох гэж байгаа NFS файл систем (&man.exports.5;-г үз), ба /project нь харилцагч талын экспортлогдсон файл системийг холбох цэг байх болно. Аль ч тохиолдолд, эсвэл ба зэрэг нэмэлт тохируулгууд таны хувьд хэрэгтэй байж болох юм. FreeBSD системийг (freebox) freebox дээр /etc/fstab дотор харилцагч байдлаар зааж өгөх жишээ: fastws:/sharedfs /project nfs rw,-r=1024 0 0 freebox дээр гараар холбохдоо: &prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project FreeBSD системийг (freebox) fastws дээр /etc/fstab дотор сервер байдлаар зааж өгөх жишээ: freebox:/sharedfs /project nfs rw,-w=1024 0 0 fastws дээр гараар холбохдоо: &prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project Бараг бүх 16-битийн Ethernet адаптерийн хувьд унших ба бичих хэмжээн дээр дээрх байдлаар хязгаарлалт хийлгүйгээр ажиллах боломжтой байдаг. Сонирхсон улсуудад толилуулахад, дээрх алдаа гарахад чухам юу тохиолддог, яагаад засагдах боломжгүй болох талаар дор тайлбарлав. NFS нь голчлон 8 K (хэдийгээр илүү бага хэмжээтэй хэсэг дээр ажиллаж чадах боловч) хэмжээтэй блокууд дээр ажилладаг. Хамгийн урт Ethernet пакет 1500 байт орчим байх ба, NFS блок нь хэд хэдэн Ethernet пакетуудад хуваагдах хэрэгтэй болдог. Дээд түвшний програмын хувьд энэ нь нэг нэгж хэвээр байх ба хүлээж аваад, нийлүүлээд, бататгал хийхэд ч мөн нэг нэгж хэвээр байдаг. Өндөр үзүүлэлттэй ажлын машинууд NFS нэгжийг бүрдүүлж байгаа тэдгээр пакетуудыг стандартад заасны дагуу аль болох ойрхон ойрхон, нэг нэгээр нь цувуулж гаргана. Жижиг, бага багтаамжтай картууд дээр, дээд түвшний програмд дамжуулахаас өмнө сүүлийн пакет нь өмнөх пакетаа дарснаар тухайн нэгжийг буцааж нийлүүлж, бататгах боломжгүй болно. Үүнээс болж, ажлын машины болзоот хугацаа дуусаж бүхэл бүтэн 8 K нэгжийг дахин дамжуулах болно. Энэ үйл ажиллагаа дахин дахин хязгааргүй давтагдах болно. Нэгжийн хэмжээг Ethernet пакетийн хэмжээнээс бага байлгаснаар, бид Ethernet пакет тус бүрийг бататгаж мухардалд орохоос сэргийлж чадна. Өндөр үзүүлэлттэй ажлын машинууд PC систем рүү өгөгдлийг цацсаар байх үед давхцал үүссээр байх боловч, илүү сайн карт ашигласнаар NFS нэгжийн хувьд заавал тийм давхцал үүсэх албагүй болно. Давхцал үүссэн тохиолдолд, түүнд өртсөн нэгжийг дахин дамжуулах ба түүнийг хүлээн авч, нийлүүлж, бататгах боломж өндөртэй. Билл Свингл Бичсэн Эрик Огрен Сайжруулсан Удо Эрделхофф Лодойсамбын Баянзул Орчуулсан Сүлжээний Мэдээллийн Систем (NIS/YP) Энэ юу вэ? NIS Solaris HP-UX AIX Linux NetBSD OpenBSD NIS, нь Network Information Services буюу Сүлжээний Мэдээллийн Үйлчилгээнүүд гэсэн үгийн товчлол бөгөөд &unix; (анхандаа &sunos;) системүүдийн удирдлагыг төвлөрүүлэх зорилгоор Sun Microsystems анх хөгжүүлсэн. Одоо энэ салбарын үндсэн стандарт болжээ; бүх гол &unix; төрлийн системүүд (&solaris;, HP-UX, &aix;, Линукс, NetBSD, OpenBSD, FreeBSD, гэх мэт) NIS-г дэмждэг. шар хуудасNIS NIS анх Yellow Pages буюу Шар Хуудас гэсэн нэртэй байсан боловч худалдааны тэмдгийн асуудлаас болж Sun нэрийг нь сольсон. Хуучин нэр (ба yp) нь одоо хир нь хэрэглэгдсээр байдаг. NIS домэйнууд Энэ нь RPC дээр үндэслэсэн, нэг NIS домэйнд байгаа бүлэг машинууд дундаа адилхан тохиргооны файлтай боломжийг олгодог харилцагч/сервер систем юм. Үүний тусламжтай системийн администратор NIS харилцагч системийг зайлшгүй байх үндсэн тохиргоотойгоор үүсгэх, тохиргооны өгөгдлийг нэг дор нэмэх, хасах, өөрчлөх зэрэг үйлдлүүдийг хийх боломжтой болдог. Windows NT Энэ нь &windowsnt;-н домэйн системтэй төстэй. Хэдийгээр тэдгээрийн дотоод ажиллагаа нь ердөө ч адилхан биш боловч үндсэн үүргийг нь адилтгаж болох юм. Таны мэдэж байх ёстой Нэр томъёо/Процессууд NIS сервер эсвэл NIS харилцагч байдлаар ажилладаг NIS-г FreeBSD дээр зохион байгуулахын тулд нилээд хэдэн нэр томъёо, чухал хэрэглэгчийн процессуудтай та тааралдах болно: rpcbind portmap Нэр томъёо Тайлбар NIS домэйн нэр NIS мастер сервер болон түүний бүх харилцагчид (түүний зарц серверийг оруулаад) бүгд NIS домэйн нэртэй байна. &windowsnt;-н домэйн нэртэй адилаар, NIS домэйн нэр DNS-тэй ямар ч хамаагүй. rpcbind RPC-г (Remote Procedure Call буюу Алсын Процедур Дуудах, NIS-н ашигладаг сүлжээний протокол) идэвхтэй байлгахын тулд заавал ажиллаж байх ёстой. Хэрэв rpcbind ажиллахгүй бол, NIS сервер ажиллуулах, NIS харилцагч болох боломжгүй. ypbind NIS харилцагчийг NIS сервертэй холбоно. NIS домэйн нэрийг системээс авч, RPC ашиглан сервертэй холбоно. ypbind нь NIS орчны харилцагч-серверийн харилцааны цөм нь болж өгдөг; Хэрэв харилцагчийн машин дээр ypbind үхвэл, NIS сервер рүү хандах боломжгүй болно. ypserv Зөвхөн NIS сервер дээр ажиллаж байх ёстой; энэ бол NIS сервер процесс өөрөө юм. Хэрэв &man.ypserv.8; үхвэл, сервер NIS хүсэлтэд хариу өгөх боломжгүй болно (магадгүй, түүний үүргийг үргэлжлүүлэх зарц сервер байгаа байх). Зарим NIS-н хувьд (FreeBSD-гийх биш), анх холбогдож байсан сервер байхгүй болбол өөр сервертэй холбоо тогтоохыг оролддоггүй хувилбарууд байдаг. Ихэнхдээ, ийм үед ганц тус болох зүйл бол сервер процессийг дахин эхлүүлэх (эсвэл серверийг бүхлээр нь), эсвэл харилцагч талын ypbind процессийг дахин эхлүүлэх юм. rpc.yppasswdd Зөвхөн NIS эзэн сервер дээр ажиллаж байх ёстой өөр нэг процесс; Энэ дэмон NIS харилцагч нарыг өөрсдийн нэвтрэх үгийг солих боломжийг олгоно. Хэрэв энэ дэмон ажиллахгүй бол, хэрэглэгчид NIS эзэн сервер рүү нэвтэрч орон тэнд нэвтрэх үгээ солих хэрэгтэй болно. Хэрхэн ажилладаг вэ? NIS орчинд гурван төрлийн хост байна: эзэн сервер, зарц сервер, ба харилцагч. Серверүүд нь хостуудын тохиргооны мэдээллийг хадгалсан агуулахын үүргийг гүйцэтгэнэ. Эзэн сервер энэ мэдээллийн бүрэн эрхтэй хуулбарыг хадгалж байдаг бол, зарц сервер нь энэ мэдээллийн хуулбарыг нөөцөнд хадгалж байдаг. Серверүүд харилцагчдыг эдгээр мэдээллээр хангана. Олон файлд байгаа мэдээллийг энэ маягаар хуваалцаж хэрэглэнэ. master.passwd, group, ба hosts гэсэн файлуудыг ихэвчлэн NIS тусламжтай хуваалцана. Эдгээр файлд байдаг мэдээлэл харилцагч талын нэг процессод хэрэгтэй боллоо гэхэд түүнийг өөрийн дотоодоос хайхын оронд түүнд оноогдсон NIS серверээс асуулга хийнэ. Машины төрөл NIS эзэн сервер NIS эзэн сервер. Энэ сервер, &windowsnt;-н анхдагч домэйн сервер хянагчийн нэг адил, NIS харилцагчдын хэрэгцээний бүх файлуудыг агуулсан байна. passwd, group ба NIS харилцагчийн хэрэглэх бусад олон файлууд эзэн сервер дээр байна. Нэг машин нэгээс олон NIS домэйны хувьд NIS эзэн сервер байж болно. Гэхдээ, энд бид бага хэмжээний NIS орчны талаар ярилцах тул энэ талаар энд үзэхгүй. NIS зарц сервер NIS зарц сервер. &windowsnt;-н нөөц домэйн хянагчтай адилаар, NIS зарц сервер нь NIS эзэн серверийн өгөгдлийн файлын хуулбарыг хадгална. NIS зарц серверүүд нь нөөцөнд байдаг. Тэдгээр нь мөн эзэн серверийн ачааллыг хуваалцаж байдаг: NIS Харилцагчид нь хамгийн түрүүнд хариу өгсөн серверт холбогдох ба үүний тоонд зарц серверүүд ч бас орно. NIS харилцагч NIS харилцагч. NIS харилцагч нь ихэнх &windowsnt; ажлын машины адилаар, NIS серверт шалгуулж (эсвэл &windowsnt; ажлын машины хувьд &windowsnt; домэйн хянагчид) нэвтэрнэ. NIS/YP-г хэрэглэх нь Энэ хэсэгт жишээ NIS орчныг үүсгэх болно. Төлөвлөх Та өөрийгөө нэгэн их сургуулийн жижигхэн лабораторын администратор гэж бод. Энэ лаб 15 FreeBSD машинаас бүрдэх ба одоогоор төвлөрсөн удирдлага байхгүй; машин бүр өөрийн /etc/passwd ба /etc/master.passwd файлуудтай. Эдгээр файлуудыг адилхан байлгахын тулд гараараа зөөж тавьдаг; одоогийн байдлаар лабораторид шинэ хэрэглэгч нэмэхийн тулд, бүх 15 машин дээр нэг бүрчлэн adduser тушаалыг оруулах хэрэгтэй байгаа. Мэдээж үүнийг өөрчлөх хэрэгтэй, иймээс та лабораторидоо NIS хэрэглэхээр боллоо. Машинуудаасаа хоёрыг нь сервер болгохоор сонгож авлаа. Тиймээс, лабораторын тохиргоо дараах байдалтай байна: Машины нэр IP хаяг Машины үүрэг ellington 10.0.0.2 NIS эзэн coltrane 10.0.0.3 NIS зарц basie 10.0.0.4 Факультетийн ажлын машин bird 10.0.0.5 Харилцагч машин cli[1-11] 10.0.0.[6-17] Бусад харилцагч машинууд Хэрэв та NIS зураглалыг анх удаа хийж байгаа бол, хаанаас эхлэхээ эхлээд сайн бодох хэрэгтэй. Сүлжээ чинь ямар ч хэмжээтэй байж болно, гол нь хэд хэдэн сонголт хийх хэрэгтэй. NIS Домэйн Нэрийг сонгох нь NIS домэйннэр Өөрийн тань байнга хэрэглэдэг домэйн нэр байж болохгүй. Залруулж хэлбэл NIS домэйн нэр байх ёстой. Харилцагч мэдээлэл олж авахын тулд хүсэлтээ цацах үед NIS домэйн нэрийг хэрэглэнэ. Үүгээр нэг сүлжээнд байгаа олон серверүүд хэн нь хэний асуултанд хариулах ёстойгоо мэдэж авна. NIS домэйн нэрийг хоорондоо ямар нэг байдлаар хамаатай бүлэг хостын нэр гэж ойлгож болно. Зарим байгууллагууд өөрийн Интернэтийн домэйн нэрийг NIS домэйн нэрээр хэрэглэх нь байдаг. Энэ нь сүлжээний ямар нэг асуудлыг задлан шинжлэх явцад түвэг удах тул энэ аргыг зөвлөдөггүй. NIS домэйн нэр нь сүлжээний орчинд цор ганц байх ёстой бөгөөд төлөөлж байгаа бүлэг машинаа онцолсон нэр байвал дөхөм байдаг. Жишээлбэл, Acme Inc. компаний Урлагийн хэлтэс acme-art гэсэн NIS домэйнтой байж болох юм. Бид өөрсдийн жишээндээ test-domain гэсэн домэйн нэрийг авлаа. SunOS Гэвч, зарим үйлдлийн системүүд (цохон дурдвал &sunos;) өөрийн NIS домэйн нэрийг Интернэт домэйн нэрээр хэрэглэдэг. Хэрэв таны сүлжээний нэг болон түүнээс дээш тооны машин ийм асуудалтай бол, та Интернэт домэйн нэрээ NIS домэйндоо хэрэглэх ёстой. Серверт тавигдах шаардлагууд NIS серверт зориулсан машин сонгон авахдаа анхаарах хэд хэдэн зүйлс бий. NIS-тэй холбоотой нэг учир дутагдалтай зүйл бол харилцагчдын серверээс хамаарах хамаарал юм. Хэрэв харилцагч өөрийн NIS домэйныг асуухаар сервертэй холбогдож чадахгүй бол, тэр машин ашиглагдах боломжгүй болдог. Хэрэглэгч болон бүлгийн мэдээлэл дутуугаас ихэнх системүүд түр хугацаанд зогсдог. Тиймээс, дахин дахин асааж унтраалгаад байхааргүй, эсвэл туршилтад хэрэглэгдэхээр машиныг сонгох хэрэгтэй. NIS сервер нь тусдаа, зөвхөн NIS серверт зориулагдсан машин байх ёстой. Хэрэв ачаалал багатай сүлжээнд ажиллаж байгаа бол, NIS серверийг өөр үйлчилгээ ажиллаж байгаа машин дээр тавьж болох талтай. Хамгийн гол нь NIS сервер чинь ажиллахгүй болбол, бүх NIS харилцагчид чинь мөн ажиллахгүй болохыг санаарай. NIS Серверүүд Бүх NIS мэдээлэл он цагийн дарааллаараа NIS эзэн сервер дээр хадгалагдаж байдаг. Энэ мэдээллийг хадгалж байгаа өгөгдлийн санг NIS буулгалт гэж нэрлэнэ. FreeBSD-д, эдгээр буулгалтууд /var/yp/[domainname] файл дотор байрлана. [domainname] нь NIS домэйн нэр болно. Нэг NIS сервер хэд хэдэн домэйныг зэрэг агуулж чадах тул домэйн тус бүрт зориулсан хэд хэдэн ийм сан байж болно. Домэйн бүр өөрийн гэсэн буулгалтуудтай байна. NIS эзэн болон зарц серверүүд бүх NIS хүсэлтийг ypserv дэмоны тусламжтай удирдаж явуулна. ypserv нь NIS харилцагч нараас ирж буй хүсэлтийг хүлээн авч, домэйныг хөрвүүлэн, уг домэйн нэрд харгалзах өгөгдлийн файлын замыг хайж олоод, өгөгдлийг буцаан харилцагчид дамжуулах үүрэгтэй. NIS Эзэн Серверийг зохион байгуулах нь NIS серверийн тохиргоо Эзэн NIS серверийг зохион байгуулах нь харьцангуй ойлгомжтой. FreeBSD нь бэлэн NIS суучихсан ирдэг. Зөвхөн /etc/rc.conf файл дотор дараах мөрүүдийг нэмэхэд л хангалттай, үлдсэнийг нь FreeBSD таны өмнөөс хийгээд өгөх болно. nisdomainname="test-domain" Энэ мөр сүлжээ асахад (жишээ нь, систем дахин ачаалсны дараа) NIS домэйн нэрийг test-domain болгоно. nis_server_enable="YES" Энэ мөр нь сүлжээ асахад NIS сервер процессуудыг асаахыг хэлж өгнө. nis_yppasswdd_enable="YES" Энэ мөр нь rpc.yppasswdd дэмонг идэвхжүүлнэ. Дээр хэлсэнчлэн, энэ дэмон нь харилцагч машин дээрээс хэрэглэгч өөрийн NIS нэвтрэх үгийг солих боломжтой болгодог. Таны NIS тохиргооноос хамааран, нэмэлт мөрүүдийг оруулах хэрэгтэй болж магадгүй. NIS сервер мөртлөө давхар NIS харилцагч серверийн тухай хэсгээс, доор, дэлгэрэнгүй мэдээллийг авна уу. Одоо, супер хэрэглэгчийн эрхээр /etc/netstart тушаалыг өгөх л үлдлээ. Энэ нь таны /etc/rc.conf файл дотор тодорхойлж өгсөн утгуудыг ашиглан бүх зүйлсийг таны өмнөөс хийх болно. NIS Буулгалтуудыг эхлүүлэх нь NIS буулгалтууд NIS буулгалтууд нь өгөгдлийн сангийн файлууд бөгөөд /var/yp сан дотор хадгалагдана. Тэдгээрийг NIS эзэн серверийн /etc сан дотор байгаа /etc/master.passwd файлаас бусад тохиргооны файлуудаас үүсгэдэг. Энэ нь их учиртай. Мэдээж та өөрийн root болон удирдах эрхтэй дансуудынхаа нэвтрэх үгийг NIS домэйн дахь бүх сервер дээр тарааж тавих хүсэлгүй байгаа биз дээ. Тиймээс, NIS буулгалтуудыг эхлүүлэхийн өмнө, дараах зүйлсийг хийх хэрэгтэй: &prompt.root; cp /etc/master.passwd /var/yp/master.passwd &prompt.root; cd /var/yp &prompt.root; vi master.passwd Системийн дансуудад хамаарах мөрүүдийг (bin, tty, kmem, games, гэх мэт), мөн NIS харилцагч дээр тарааж тавих хүсэлгүй байгаа дансуудад хамаарах мөрүүдийг (жишээлбэл root ба бусад UID 0 (супер хэрэглэгчийн) дансууд) бүгдийг устгах хэрэгтэй. /var/yp/master.passwd файл бүлгийн болон нийтийн хувьд унших эрхгүй (600 төлөв) байгааг нягтална уу! Шаардлагатай бол chmod тушаалыг хэрэглээрэй. Tru64 UNIX Дээр дурдсаныг гүйцэтгэж дууссаны дараа, сая NIS буулгалтуудыг эхлүүлнэ! FreeBSD нь танд үүнийг хийж өгөх ypinit нэртэй скриптийг (холбогдох заавар хуудаснаас дэлгэрэнгүй мэдээллийг авна уу) агуулж байдаг. Энэ скрипт ихэнх &unix; үйлдлийн системд байдаг боловч, заримд нь байхгүй байх тохиолдол бий. Digital UNIX/Compaq Tru64 UNIX дээр энэ скрипт ypsetup гэсэн нэртэй байдаг. Бид NIS эзэн серверийн хувьд буулгалтуудыг үүсгэж байгаа тул ypinit тушаалыг тохируулгын хамт өгнө. Дээрх алхмуудыг бүгдийг хийсний дараа, NIS буулгалтуудыг үүсгэхдээ дараах тушаалыг өгнө: ellington&prompt.root; ypinit -m test-domain Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. At this point, we have to construct a list of this domains YP servers. rod.darktech.org is already known as master server. Please continue to add any slave servers, one per line. When you are done with the list, type a <control D>. master server : ellington next host to add: coltrane next host to add: ^D The current list of NIS servers looks like this: ellington coltrane Is this correct? [y/n: y] y [..output from map generation..] NIS Map update completed. ellington has been setup as an YP master server without any errors. ypinit нь /var/yp/Makefile.dist/var/yp/Makefile-г үүсгэсэн байх ёстой. Үүсэхдээ, энэ файл таныг ганц NIS сервертэй орчинд зөвхөн FreeBSD машинуудтай ажиллаж байна гэж үзнэ. test-domain нь зарц сервертэй тул, та /var/yp/Makefile файлыг засах хэрэгтэй: ellington&prompt.root; vi /var/yp/Makefile Доорх мөрийг далдлах хэрэгтэй NOPUSH = "True" (хэрэв далдлагдаагүй бол). NIS Зарц Серверийг зохион байгуулах нь NIS зарц сервер NIS зарц серверийг зохион байгуулах нь эзэн серверийг зохион байгуулахаас ч хялбар байдаг. Зарц сервер рүү нэвтэрч ороод түрүүн хийсэн шигээ /etc/rc.conf файлыг засах хэрэгтэй. Ганц ялгаа нь ypinit тушаалыг өгөхдөө тохируулгыг өгнө. тохируулга нь NIS эзэн серверийн нэрийг хамт оруулахыг шаардах тул бидний тушаалын мөр дараах байдалтай байна: coltrane&prompt.root; ypinit -s ellington test-domain Server Type: SLAVE Domain: test-domain Master: ellington Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] n Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from ellington. Transferring netgroup... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byuser... ypxfr: Exiting: Map successfully transferred Transferring netgroup.byhost... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byuid... ypxfr: Exiting: Map successfully transferred Transferring passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring group.bygid... ypxfr: Exiting: Map successfully transferred Transferring group.byname... ypxfr: Exiting: Map successfully transferred Transferring services.byname... ypxfr: Exiting: Map successfully transferred Transferring rpc.bynumber... ypxfr: Exiting: Map successfully transferred Transferring rpc.byname... ypxfr: Exiting: Map successfully transferred Transferring protocols.byname... ypxfr: Exiting: Map successfully transferred Transferring master.passwd.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byname... ypxfr: Exiting: Map successfully transferred Transferring networks.byaddr... ypxfr: Exiting: Map successfully transferred Transferring netid.byname... ypxfr: Exiting: Map successfully transferred Transferring hosts.byaddr... ypxfr: Exiting: Map successfully transferred Transferring protocols.bynumber... ypxfr: Exiting: Map successfully transferred Transferring ypservers... ypxfr: Exiting: Map successfully transferred Transferring hosts.byname... ypxfr: Exiting: Map successfully transferred coltrane has been setup as an YP slave server without any errors. Don't forget to update map ypservers on ellington. Одоо /var/yp/test-domain нэртэй сан үүссэн байх ёстой. NIS эзэн серверийн буулгалтуудын хуулбарууд энэ сан дотор байх ёстой. Эдгээр файлууд шинэчлэгдэж байгаа эсэхийг нягтлаж байх хэрэгтэй. Таны зарц серверийн /etc/crontab доторх дараах мөрүүд үүнийг хийх болно: 20 * * * * root /usr/libexec/ypxfr passwd.byname 21 * * * * root /usr/libexec/ypxfr passwd.byuid Энэ хоёр мөр нь зарц сервер өөрийн буулгалтуудыг эзэн сервертэй ижилхэн байлгахыг хүчилнэ. Хэдийгээр эдгээр мөрүүдийг заавал хэрэглэх шаардлагагүй боловч, эзэн сервер өөрийх нь NIS буулгалтад гарсан өөрчлөлтүүд зарц серверүүдийн хувьд дамжигдсан эсэхийг шалгадаг, нэвтрэх үгийн тухай мэдээлэл нь системийн хувьд амин чухал зэргээс дээрх шинэчлэлтийг хүчлэх нь зүгээр. Одоо, зарц сервер талд мөн /etc/netstart тушаалыг өгч NIS серверийг ажиллуулна. NIS Харилцагчид NIS харилцагч нь ypbind дэмоны тусламжтай тодорхой нэг NIS сервертэй холбоо тогтооно. ypbind системийн анхдагч домэйныг шалгах ба (domainname тушаалаар өгөгдсөн), дотоод сүлжээнд RPC хүсэлтийг цацаж эхлэнэ. Эдгээр хүсэлтүүд нь ypbind-н холбоо тогтоох гэж байгаа домэйн нэрийг зааж өгнө. Хэрэв тухайн домэйнд үйлчлэхээр тохируулагдсан сервер дээрх хүсэлтийг хүлээн авбал, ypbind-д хариу өгөх ба хариуг хүлээж авсан тал серверийн хаягийг тэмдэглэж авна. Хэрэв хэд хэдэн сервер хариу өгсөн бол (нэг эзэн ба хэд хэдэн зарц), ypbind хамгийн түрүүнд хариу өгсөн серверийг сонгон авна. Түүнээс хойш, харилцагч өөрийн бүх NIS хүсэлтүүдээ тэр сервер рүү явуулна. ypbind нь хааяа сервер амьд байгаа эсэхийг нягтлахын тулд ping хийж үзнэ. Хэрэв хангалттай хугацааны дотор хариу хүлээж аваагүй бол, ypbind энэ домэйнтой холбоо тасарлаа гэж үзээд өөр сервер олохын тулд хүсэлтээ цацаж эхэлнэ. NIS Харилцагчийг зохион байгуулах NIS харилцагчийг тохируулах нь FreeBSD машин дээр NIS харилцагчийг зохион байгуулах нь нилээд хялбар байдаг. /etc/rc.conf файлыг нээгээд, NIS домэйн нэрийг зааж өгөх ба сүлжээ асах үед ypbind-г ажиллуулдаг болгохын тулд дараах мөрүүдийг нэмж бичнэ: nisdomainname="test-domain" nis_client_enable="YES" NIS серверээс хэрэгтэй нэвтрэх үгүүдийг импортолж авахын тулд /etc/master.passwd файл дотор байгаа бүх хэрэглэгчийн дансыг устгаад, файлын төгсгөлд дараах мөрийг нэмэхийн тулд vipw тушаалыг ашиглана: +::::::::: Энэ мөр нь NIS серверийн нэвтрэх үгийн буулгалтад байгаа хүчинтэй хэрэглэгчид данс олгоно. Энэ мөрийг өөрчлөх замаар NIS харилцагчийг хэд хэдэн янзаар тохируулж болно. Дэлгэрэнгүй мэдээллийг доорх netgroups section хэсгээс үзнэ үү. Цааш гүнзгийрүүлэн судлах хүсэлтэй бол NFS ба NIS-г удирдах нь тухай O'Reilly-н номыг үзнэ үү. Дор хаяж нэг дотоод эрхийг (өөрөөр хэлбэл NIS-с импортолж аваагүй) /etc/master.passwd файл дотор авч үлдэх хэрэгтэй. Энэ данс wheel бүлгийн гишүүн байх ёстой. Хэрэв NIS дээр ямар нэг асуудал гарлаа гэхэд энэ эрхээр алсаас нэвтрэн орж, root болоод асуудлыг шийдвэрлэх болно. NIS серверээс бүх бүлгүүдийг импортолж авахын тулд дараах мөрийг /etc/group файлд нэмнэ: +:*:: Үүний дараа, ypcat passwd тушаалыг өгч NIS серверийн passwd буулгалтыг харж чадаж байх ёстой. NIS-н Аюулгүй байдал Ер нь ямар ч алсын хэрэглэгчийн хувьд өөрийн чинь домэйн нэрийг мэдэж байвал RPC хүсэлтийг &man.ypserv.8;-д явуулж NIS буулгалтыг харах боломжтой. Ийм төрлийн зөвшөөрөгдөөгүй үйлдлээс сэргийлэхийн тулд &man.ypserv.8; нь зөвхөн зааж өгсөн хостуудаас ирсэн хандалтыг зөвшөөрдөг securenets гэсэн функцыг агуулж байдаг. Систем анх ачаалахад, &man.ypserv.8; нь securenets-н мэдээллийг /var/yp/securenets гэсэн файлаас ачаална. Энэ замыг тохируулгаар зааж өгөх ба янз бүр байж болно. Энэ файлд сүлжээг сүлжээний багийн хамт зайгаар тусгаарлан оруулж өгсөн байна. # тэмдгээр эхэлсэн мөрүүд нь тайлбар болно. Жишээ securenets файл дараах байдалтай байна: # allow connections from local host -- mandatory 127.0.0.1 255.255.255.255 # allow connections from any host # on the 192.168.128.0 network 192.168.128.0 255.255.255.0 # allow connections from any host # between 10.0.0.0 to 10.0.15.255 # this includes the machines in the testlab 10.0.0.0 255.255.240.0 Хэрэв &man.ypserv.8;-н хүсэлт хүлээж авсан хаяг эдгээр дүрмүүдийн аль нэгэнд тохирч байвал хүсэлтийг ердийн байдлаар боловсруулна. Хэрэв энэ хаяг ямар ч дүрмэнд тохирохгүй байвал, хүсэлтийг үл анхаарах бөгөөд анхааруулах бичлэгийг бүртгэлд нэмнэ. Хэрэв /var/yp/securenets гэсэн файл байхгүй бол, ypserv нь гаднаас ирсэн бүх хүсэлтийг хүлээн авна. ypserv програм нь Wietse Venema-н TCP Wrapper багцыг дэмждэг. Энэ нь администраторуудын хувьд /var/yp/securenets-ны оронд TCP Wrapper-н тохиргооны файлыг хандалтыг хянахад хэрэглэх боломжтой болгодог. Хэдийгээр эдгээр хандалтыг хянах механизмууд нь аюулгүй байдлыг адил түвшинд хангах боловч, хоёул IP залилах халдлагад өртөмтгий байдаг. NIS-тэй холбоотой бүх урсгалыг галт хана дээрээ хааж өгөх хэрэгтэй. /var/yp/securenets хэрэглэж байгаа серверүүд хуучин TCP/IP дээр ажиллаж байгаа зүй ёсны NIS харилцагчид үйлчилж чадахгүй байж магадгүй. Учир нь, тэдгээр нь өргөн цацалт хийхдээ хост битүүдийг бүгдийг тэглэдэг ба өргөн цацалтын хаягийг тооцоолохдоо дэд сүлжээний багийг таньж чаддаггүй болно. Хэдийгээр эдгээр асуудлуудыг харилцагчийн тохиргоог өөрчилснөөр шийдэж болох боловч, бусад асуудлууд нь харилцагчийн системийг цааш ашиглах боломжгүй эсвэл /var/yp/securenets-г болиулах шаардлагатай болдог. Ийм хуучин TCP/IP дээр ажилладаг сервер дээр /var/yp/securenets-г хэрэглэх нь үнэхээр хэрэггүй бөгөөд сүлжээний ихэнх хэсэгт NIS-г ашиглах боломжгүй байдаг. TCP Wrapper-ууд TCP Wrapper багцыг ашиглах нь NIS серверийн хоцролтыг ихэсгэдэг. Энэ нэмэлт саатал нь харилцагчийн програм дээр ялангуяа ачаалал ихтэй сүлжээнд, эсвэл удаан NIS сервертэй бол хүлээх хугацаа дуусахад хүргэх талтай. Хэрэв таны харилцагч систем чинь дээрх шинж тэмдгүүдийн аль нэгийг агуулж байгаа бол та энэ харилцагч системээ NIS зарц сервер болгож өөрчлөн хүчээр өөрөөсөө өөртөө холбогдохоор тохируулах хэрэгтэй. Зарим хэрэглэгчдийн нэвтрэхийг хаах Манай лабораторын жишээн дээр, basie нэртэй нэг машин байгаа. Энэ машиныг зөвхөн багш нар хэрэглэх ёстой. Бид энэ машиныг NIS домэйн дотроос гаргахыг хүсэхгүй байгаа, дээр нь эзэн NIS сервер дээр байгаа passwd файл нь багш нар болон оюутнуудын дансыг хоёуланг агуулж байгаа. Бид одоо яах ёстой вэ? NIS өгөгдлийн сан дотор бүртгэл нь байгаа ч, зарим хэрэглэгчдийг тухайн машин руу нэвтрэхийг хаах нэг арга байна. Үүний тулд -username гэсэн мөрийг харилцагч машин дээр /etc/master.passwd файлын төгсгөлд нэмэх хэрэгтэй. Энд username гэдэг нь нэвтрэхийг нь хаах гэж байгаа хэрэглэгчийн нэр юм. Дээрх үйлдлийг хийхдээ vipw-г ашиглахыг зөвлөж байна. vipw нь /etc/master.passwd файл дотор хийгдсэн өөрчлөлтийг хянах бөгөөд өөрчлөлт хийж дууссаны дараа нэвтрэх үгийн санг автоматаар дахин үүсгэж өгдөг. Жишээ нь, хэрэв бид bill гэсэн хэрэглэгчийг basie хост дээр нэвтрэхийг хаахыг хүсэж байгаа бол: basie&prompt.root; vipw [add -bill to the end, exit] vipw: rebuilding the database... vipw: done basie&prompt.root; cat /etc/master.passwd root:[password]:0:0::0:0:The super-user:/root:/bin/csh toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin operator:*:2:5::0:0:System &:/:/sbin/nologin bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin news:*:8:8::0:0:News Subsystem:/:/sbin/nologin man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill basie&prompt.root; Удо Эрделхофф Хувь нэмрээ оруулсан Лодойсамбын Баянзул Орчуулсан Netgroups-г Хэрэглэх нь netgroups Цөөхөн тооны машин эсвэл хэрэглэгчийн хувьд тусгай дүрэм хэрэгтэй үед өмнөх хэсэгт дурдсан аргыг хэрэглэх нь илүү тохиромжтой. Харин том сүлжээний хувьд зарим хэрэглэгчийн чухал машин руу нэвтрэх эрхийг хаахаа мартах, эсвэл бүх машиныг нэг бүрчлэн гараараа тохируулж өгөх, өөрөөр хэлбэл NIS-н төвлөрсөн удирдлага гэсэн гол санааг ашиглаж чадахгүй байх тохиолдлууд гарах болно. NIS-г хөгжүүлэгчид энэ асуудлыг шийдэхийн тулд netgroups буюу сүлжээний бүлгүүд гэсэн шинэ зүйлийг бий болгожээ. Түүний зорилго болон семантикийг &unix; файл системийн жирийн бүлэгтэй дүйцүүлж болох юм. Гол ялгаанууд нь гэвэл тоон дугаар байхгүй, мөн сүлжээний бүлгийг тодорхойлж өгөхдөө хэрэглэгч болон өөр сүлжээний бүлгийг оруулж болдог. Сүлжээний бүлэг нь хэдэн зуун хэрэглэгч болон машинтай том, төвөгтэй сүлжээтэй ажиллахад зориулж бүтээгдсэн юм. Нэг талаар, хэрэв та үнэхээр тийм том сүлжээнд ажиллаж байгаа бол энэ нь Сайн Зүйл юм. Харин нөгөө талаас, энэ байдал нь жижигхэн сүлжээнд хялбар жишээн дээр сүлжээний бүлгийг тайлбарлах бараг боломжгүй болгож байна. Энэ хэсгийн үлдсэн хэсэгт хэрэглэж байгаа жишээн дээр энэ асуудлыг харуулахыг оролдлоо. NIS-г лабораторидоо нэвтрүүлсэн тань танай удирдлагуудын анхаарлыг татсан гэж бодьё. Одоо оюутны хотхон дотор байгаа бусад машиныг NIS домэйнд оруулж өргөтгөх ажлыг хийхийг танд даалгажээ. Дараах хоёр хүснэгтэнд шинээр нэмэх хэрэглэгч болон машины нэрийг товч тайлбарын хамт үзүүллээ. Хэрэглэгчийн нэр Тайлбар alpha, beta IT хэлтсийн ердийн ажилчид charlie, delta IT хэлтсийн шинэ дагалдан echo, foxtrott, golf, ... бусад ердийн ажилчид able, baker, ... дадлагажигчид Машины нэр Тайлбар war, death, famine, pollution Таны хамгийн чухал серверүүд. Зөвхөн IT хэлтсийн ажилчид л нэвтрэх эрхтэй. pride, greed, envy, wrath, lust, sloth Харьцангуй чухал биш серверүүд. IT хэлтэст харъяалагддаг бүх хүмүүс нэвтрэх эрхтэй. one, two, three, four, ... Ердийн ажлын машинууд. Зөвхөн үндсэн ажилчид нэвтрэх эрхтэй. trashcan Чухал зүйл байхгүй маш хуучин машин. Дадлагажигчид хүртэл нэвтрэх эрхтэй. Хэрэв та дээрх хязгаарлалтуудыг тус бүрд нь хэрэглэгчийг хаах замаар хийх гэж оролдвол бүх машин дээр хаах хэрэглэгч тус бүрийн хувьд -user мөрийг passwd файл дотор нэмж өгөх ёстой болно. Хэрэв нэг л мөрийг нэмэхээ мартвал асуудалд орно гэсэн үг. Энэ байдалд сүлжээний бүлгийг ашиглах нь нилээд олон давуу талтай. Хэрэглэгч бүрийг тус тусад нь авч үзнэ; нэг хэрэглэгчийг нэг болон түүнээс дээш тооны сүлжээний бүлэгт оноож, тухайн сүлжээний бүлгийн бүх гишүүдийн хувьд нэвтрэхийг эсвэл зөвшөөрч эсвэл хаана. Хэрэв та шинэ машин нэмбэл, зөвхөн сүлжээний бүлгүүдийн хувьд л нэвтрэх эрхийг зааж өгнө. Хэрэв шинэ хэрэглэгч нэмбэл, тухайн хэрэглэгчийг нэг болон түүнээс дээш тооны сүлжээний бүлэгт нэмэхэд л хангалттай. Эдгээр өөрчлөлтүүд нь нэг нэгнээсээ хамааралгүй: хэрэглэгч ба машины бүх хувилбарт нэмэх... шаардлагагүй болно. Хэрэв та NIS-г анхнаас нь бодлоготой хийх юм бол, машинууд руу нэвтрэх эрхийг хянахдаа зөвхөн ганцхан тохиргооны файлыг өөрчлөхөд хангалттай. Хамгийн эхний алхам бол NIS сүлжээний бүлгийн буулгалтыг эхлүүлэх юм. FreeBSD-н &man.ypinit.8; нь энэ буулгалтыг анхдагч байдлаар үүсгэдэггүй, гэвч хэрэв нэгэнт үүсгэчихвэл түүний NIS-тэй ажиллах хэсэг нь энэ буулгалт дээр ажиллах чадвартай. Хоосон буулгалт үүсгэхийн тулд: ellington&prompt.root; vi /var/yp/netgroup гэж бичээд дараах зүйлсийг нэмж бичнэ. Манай жишээний хувьд, бидэнд дор хаяж дөрвөн сүлжээний бүлэг хэрэгтэй: IT ажилчид, IT дагалдангууд, ердийн ажилчид болон дадлагажигчид. IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) USERS (,echo,test-domain) (,foxtrott,test-domain) \ (,golf,test-domain) INTERNS (,able,test-domain) (,baker,test-domain) IT_EMP, IT_APP гэх мэт нь сүлжээний бүлгийн нэр. Хаалтан дотор байгаа бүлэг нь хэрэглэгч нэмж байгаа нь. Бүлэг доторх гурван талбар нь: Дараах зүйлүүд хүчинтэй байх хостын нэр. Хэрэв хостын нэр зааж өгөхгүй бол, бүх хостын хувьд хүчинтэй гэсэн үг. Хэрэв хостын нэр зааж өгвөл, та үл ойлгогдох, толгой эргүүлсэн хачин зүйлстэй тулгарах болно. Энэ сүлжээний бүлэгт хамаарах дансны нэр. Тухайн дансны NIS домэйн. Хэрэв та нэгээс олон NIS домэйнд харъяалагддаг азгүй залуусын нэг бол, өөрийн сүлжээний бүлэгт өөр NIS домэйноос данс импортолж болно. Эдгээр талбаруудын алинд ч орлуулагддаг тэмдэгт ашиглаж болно. Дэлгэрэнгүй мэдээллийг &man.netgroup.5; заавар хуудаснаас үзнэ үү. сүлжээний бүлгүүд Сүлжээний бүлгүүдийн нэр 8-с дээш тэмдэгт байж болохгүй, ялангуяа тухайн NIS домэйнд өөр үйлдлийн системтэй машинууд ажиллаж байгаа бол. Нэрүүд нь том жижиг үсгийн ялгаатай; сүлжээний бүлгийн нэрийг том үсгээр бичих нь хэрэглэгчийн нэр, машины нэр болон сүлжээний бүлгийн нэрийг хооронд нь ялгахад хялбар болгодог. Зарим NIS харилцагчид (FreeBSD-с бусад) олон тооны гишүүдтэй сүлжээний бүлэгтэй ажиллаж чаддаггүй. Жишээлбэл, &sunos;-н зарим хуучин хувилбарууд сүлжээний бүлэг 15-с дээш тооны гишүүн-тэй бол асуудалтай байдаг. Энэ хязгаарыг давахын тулд 15 ба түүнээс доош тооны хэрэглэгчтэй дэд сүлжээний бүлгүүд үүсгээд, дараа нь эдгээр дэд сүлжээний бүлгүүдээс тогтсон жинхэнэ сүлжээний бүлэг үүсгэх замаар үүсгэж болно: BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] BIGGRP2 (,joe16,domain) (,joe17,domain) [...] BIGGRP3 (,joe31,domain) (,joe32,domain) BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Хэрэв танд нэг сүлжээний бүлэгт 225-с дээш хэрэглэгч хэрэгтэй бол, дээрх үйлдлийг давтах маягаар цааш үргэлжлүүлж болно. Шинээр үүсгэсэн NIS буулгалтаа идэвхжүүлэх болон тараах нь амархан: ellington&prompt.root; cd /var/yp ellington&prompt.root; make Ингэснээр netgroup, netgroup.byhost ба netgroup.byuser гэсэн гурван NIS буулгалт үүсэх болно. Дээрх шинэ буулгалтууд идэвхтэй болсон эсэхийг &man.ypcat.1; ашиглан шалгаарай: ellington&prompt.user; ypcat -k netgroup ellington&prompt.user; ypcat -k netgroup.byhost ellington&prompt.user; ypcat -k netgroup.byuser Эхний тушаалын үр дүн /var/yp/netgroup файл доторхтой төстэй байх ёстой. Хэрэв та хостоор тусгайлан сүлжээний бүлэг үүсгээгүй бол хоёр дахь тушаалын үр дүнд юу ч гарах ёсгүй. Гурав дахь тушаалын тусламжтай тухайн хэрэглэгчийн сүлжээний бүлгүүдийн жагсаалтыг харахад хэрэглэгдэнэ. Харилцагчийг тохируулахад нилээд хялбар. war нэртэй серверийг тохируулахын тулд, &man.vipw.8;-г ажиллуулаад +::::::::: гэсэн мөрийг +@IT_EMP::::::::: гэсэн мөрөөр сольж бичих хэрэгтэй. Ингэснээр, зөвхөн IT_EMP сүлжээний бүлэгт заагдсан хэрэглэгчдийн мэдээлэл war-н нэвтрэх үгийн санд импортлогдож, зөвхөн эдгээр хэрэглэгчид л энэ машин руу нэвтрэх эрхтэй боллоо. Харамсалтай нь, энэ хязгаарлалт нь бүрхүүлийн ~ функцад, мөн хэрэглэгчийн нэр ба тоон дугаарыг хооронд нь хөрвүүлдэг бүх дэд програмуудад хамаатай. Өөрөөр хэлбэл, cd ~user тушаал ажиллахгүй, ls -l тушаал хэрэглэгчийн нэрийн оронд түүний тоон дугаарыг харуулах ба find . -user joe -print тушаал Тийм хэрэглэгч байхгүй гэсэн алдааны мэдээлэл өгч амжилтгүй болох болно. Үүнийг засахын тулд, бүх хэрэглэгчдийн бүртгэлийг сервер рүү нэвтрэх эрхгүйгээр импортлох хэрэгтэй болно. Үүний тулд өөр нэг мөрийг /etc/master.passwd файлд нэмж өгөх хэрэгтэй. Энэ мөр нь: +:::::::::/sbin/nologin гэсэн бичлэгийг агуулж байх ёстой бөгөөд, энэ нь бүх бүртгэлийг импортол, гэхдээ импортлогдож байгаа бүртгэлүүдийн бүрхүүлийг /sbin/nologin-р соль гэсэн утгатай. Үүнтэй адилаар passwd файлын ямар ч талбарыг /etc/master.passwd файл дахь анхдагч утгыг сольж бичсэнээр өөрчилж болно. +:::::::::/sbin/nologin гэсэн мөр +@IT_EMP::::::::: гэсэн мөрийн дараа бичигдсэн эсэхийг сайтар нягтлаарай. Үгүй бол, NIS-с импортлогдсон бүх хэрэглэгчдийн бүрхүүл /sbin/nologin болчихно шүү. Дээрх өөрчлөлтийг хийсний дараа, хэрэв IT хэлтэст шинэ ажилчин орвол, зөвхөн ганцхан NIS буулгалтыг өөрчлөх боллоо. Чухал бус бусад серверийн хувьд ижилхэн арга хэрэглэж, тэдгээрийн өөрийн /etc/master.passwd файл дотор байгаа хуучин +::::::::: мөрийг: +@IT_EMP::::::::: +@IT_APP::::::::: +:::::::::/sbin/nologin гэсэн мөрөөр сольж бичих хэрэгтэй. Ердийн ажлын машины хувьд: +@IT_EMP::::::::: +@USERS::::::::: +:::::::::/sbin/nologin байх ёстой. Ингээд бүх зүйл асуудалгүй ажиллах болно. Гэтэл хэдэн долоо хоногийн дараа дүрэм, журманд өөрчлөлт орлоо: IT хэлтэс дадлагажигч авч эхэллээ. IT хэлтсийн дадлагажигчид ердийн ажлын машин болон чухал бус серверүүдэд нэвтрэх эрхтэй; IT дагалдангууд гол сервер рүү нэвтрэх эрхтэй болжээ. Одоо IT_INTERN гэсэн шинэ сүлжээний бүлэг нэмж, энэ бүлэгт шинэ IT дадлагажигчдийг нэмээд, энэ өөрчлөлтийг бүх машины тохиргоонд оруулж эхлэх хэрэгтэй... Бидний хэлж заншсанаар: Төвлөрсөн төлөвлөгөөн дээрх алдаа, бүх юмыг орвонгоор нь эргүүлнэ. Энэ мэт тохиолдолуудад NIS-н өөр сүлжээний бүлгээс шинэ сүлжээний бүлэг үүсгэх боломж нь тус болно. Нэг боломж нь үүрэг дээр үндэслэсэн сүлжээний бүлэг юм. Жишээ нь, чухал серверүүд рүү нэвтрэх эрхийг хянахын тулд BIGSRV гэсэн нэртэй сүлжээний бүлэг үүсгэж болох ба, чухал бус серверүүдийн хувьд өөр SMALLSRV гэсэн бүрэг үүсгэж, USERBOX гэсэн гурав дахь бүлгийг ердийн ажлын машинуудад зориулж үүсгэж болох юм. Эдгээр сүлжээний бүлэг тус бүр дээрх гурван төрлийн машинд нэвтрэх эрхтэй сүлжээний бүлгүүдийг агуулна. NIS сүлжээний бүлгийн буулгалт дараах байдалтай байна: BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS Нэвтрэх эрхийг хязгаарлах энэ арга нь ижил төрлийн хязгаарлалттай машинуудыг нэг бүлэг болговол илүү үр дүнтэй ажиллана. Харамсалтай нь, заавал тийм байх албагүй. Ихэнх тохиолдолд, машин тус бүрээр нэвтрэх эрхийг хязгаарлах боломжтой байх шаардлага зайлшгүй тулгардаг. Машин дээр үндэслэсэн сүлжээний бүлэг тодорхойлох нь дээрх мэтийн дүрэм журамд өөрчлөлт ороход хэрэглэж болох хоёр дахь боломж юм. Энэ тохиолдолд, машин бүрийн /etc/master.passwd файл дотор +-р эхэлсэн хоёр мөр бичлэг байна. Эхнийх нь энэ машин руу нэвтрэх эрхтэй дансуудаас бүрдсэн сүлжээний бүлгийг нэмж өгнө, хоёр дахь нь бусад дансуудыг /sbin/nologin бүрхүүлтэйгээр нэмнэ. Сүлжээний бүлгийн нэрийг машины нэрийг БҮХ ҮСГИЙГ ТОМООР байхаар сонгож авах нь тохиромжтой. Өөрөөр хэлбэл, мөрүүд дараах байдалтай харагдах ёстой: +@BOXNAME::::::::: +:::::::::/sbin/nologin Бүх машины хувьд дээрх үйлдлийг хийж дууссаны дараа, өөрийн /etc/master.passwd файлыг дахин өөрчлөх шаардлагагүй болно. Бусад бүх өөрчлөлтүүдийг NIS буулгалтыг өөрчилснөөр шийдэх болно. Дээрх асуудалд тохирох сүлжээний бүлгийн буулгалтыг зарим нэмэлт өөрчлөлтүүдийн хамт дор жишээ болгож үзүүлэв: # Define groups of users first IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) DEPT1 (,echo,test-domain) (,foxtrott,test-domain) DEPT2 (,golf,test-domain) (,hotel,test-domain) DEPT3 (,india,test-domain) (,juliet,test-domain) ITINTERN (,kilo,test-domain) (,lima,test-domain) D_INTERNS (,able,test-domain) (,baker,test-domain) # # Now, define some groups based on roles USERS DEPT1 DEPT2 DEPT3 BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN USERBOX IT_EMP ITINTERN USERS # # And a groups for a special tasks # Allow echo and golf to access our anti-virus-machine SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain) # # machine-based netgroups # Our main servers WAR BIGSRV FAMINE BIGSRV # User india needs access to this server POLLUTION BIGSRV (,india,test-domain) # # This one is really important and needs more access restrictions DEATH IT_EMP # # The anti-virus-machine mentioned above ONE SECURITY # # Restrict a machine to a single user TWO (,hotel,test-domain) # [...more groups to follow] Хэрэв та хэрэглэгчдийнхээ дансыг удирдахын тулд ямар нэг өгөгдлийн санг ашигладаг бол, дээрх буулгалтын эхний хэсгийг өгөгдлийн сангийнхаа тайлан бэлтгэх багажуудыг ашиглах үүсгэх боломжтой. Энэ замаар, шинэ хэрэглэгчид машинуудад хандах эрхийг автоматаар олж авах болно. Эцэст нь анхааруулж хэлэх нэг зүйл байна: Машин дээр үндэслэсэн сүлжээний бүлгийг хэрэглэхийг байнга зөвлөхгүй. Хэрэв оюутны лабораторид зориулсан, хэдэн арван эсвэл хэдэн зуун нэг ижил машинтай ажиллаж байгаа бол, NIS буулгалтыг тодорхой хэмжээнд барьж байхын тулд машин дээр үндэслэсэн сүлжээний бүлгийн оронд үүрэг дээр үндэслэсэн сүлжээний бүлгийг хэрэглэх хэрэгтэй. Санаж явах чухал зүйлс NIS орчинд ороод, өөрөөр хийх ёстой хэд хэдэн зүйлс байна. Лабораторид шинэ хэрэглэгч нэмэх бүрдээ зөвхөн эзэн NIS серверт нэмэх ёстой, ба NIS буулгалтыг заавал дахин үүсгэх ёстой. Хэрэв ингэхээ мартвал, шинэ хэрэглэгч эзэн NIS серверээс өөр хаашаа ч нэвтэрч чадахгүй болно. Жишээ нь, бид jsmith гэсэн шинэ хэрэглэгчийг лабораторид нэмэх боллоо: &prompt.root; pw useradd jsmith &prompt.root; cd /var/yp &prompt.root; make test-domain pw useradd jsmith-н оронд adduser jsmith-г мөн хэрэглэж болно. Администратор эрхтэй дансуудыг NIS буулгалтад оруулах ёсгүй. Администратор эрхээр орох ёсгүй хэрэглэгчдийн машин дээр администратор эрхтэй дансууд болон нэвтрэх үгүүдийг тараах хүсэлгүй байгаа биз дээ. NIS эзэн болон зарц серверийн аюулгүй байдлыг хангаж, ажиллахгүй байх хугацааг багасгах хэрэгтэй. Хэрэв хэн нэг нь серверт нууцаар нэвтэрч, эсвэл унтрааж орхивол хүмүүсийг лабораторын машинууд руу нэвтрэх боломжгүй болгож, саад болох болно. Энэ нь ямар ч төвлөрсөн удирдах системийн гол сул тал юм. Хэрэв та өөрийн NIS серверийг хамгаалахгүй бол, та маш олон ууртай хэрэглэгчидтэй таарах болно шүү! NIS v1 нийцтэй байдал FreeBSD-н ypserv нь NIS v1 харилцагчдад үйлчлэх зарим дэмжигчтэй ирдэг. FreeBSD-н NIS нь зөвхөн NIS v2 протоколыг хэрэглэдэг, гэхдээ бусад нь хуучин системүүдтэй нийцтэй ажиллахын тулд v1 протоколыг дэмждэг байхаар бүтээгдсэн байдаг. Эдгээр системтэй хамт ирсэн ypbind дэмонууд хэдийгээр үнэн хэрэг дээрээ хэзээ ч хэрэглэхгүй боловч NIS v1 сервертэй холболт үүсгэхийг оролддог (ба v2 серверээс хариу хүлээж авсан ч өргөн цацалт хийж хайлтаа үргэлжлүүлдэг талтай). Хэдийгээр ердийн харилцагчийн хүсэлтийг дэмждэг боловч, ypserv-н энэ хувилбар v1 буулгалтыг зөөх хүсэлттэй ажиллаж чадахгүй; иймээс, зөвхөн v1 протоколыг дэмждэг хуучин NIS серверүүдтэй холбоотойгоор эзэн эсвэл зарц байдлаар ажиллаж чадахгүй. Аз болоход, ийм серверийг одоо хэрэглэж байгаа газар байхгүй. NIS Сервер мөртлөө NIS Харилцагч Сервер машин нь мөн NIS харилцагч байдлаар ажилладаг олон сервертэй домэйнд ypserv-г ажиллуулахдаа анхааралтай байх хэрэгтэй. Ийм серверийг өргөн цацалт хийлгэж, өөр нэг сервертэй холбоо тогтоохыг зөвшөөрөхийн оронд өөрөө өөртэй нь хүчээр холбох нь ихэвчлэн дээр байдаг. Хэрэв нэг сервер унтарч, бусад серверүүд түүнээс хамааралтай байх юм бол хачин алдаанууд гарч болзошгүй. Эцэст нь бүх харилцагчдын хүлээх хугацаа дуусаж, бүгд өөр сервертэй холбогдохыг оролдох болно. Хэдийгээр бүх серверүүд холболтуудаа сэргээж буцаад хэвийн байдалдаа орсон ч, саатлаас болж харилцагчид холбогдож чадахгүй хэвээр байх болно. Хостыг ямар нэг сервертэй холбогдохыг ypbind тушаалыг тугийн хамт ажиллуулж, урдаас зааж өгч болно. Хэрэв NIS серверийг дахин ачаалах тоолонд энэ тушаалыг гараар оруулах хүсэлгүй байгаа бол, дараах мөрүүдийг өөрийн /etc/rc.conf файл дотор нэмээрэй: nis_client_enable="YES" # run client stuff as well nis_client_flags="-S NIS domain,server" Дэлгэрэнгүй мэдээллийг &man.ypbind.8; заавар хуудаснаас үзнэ үү. Нэвтрэх үгийн хэлбэр NIS нэвтрэх үгийн хэлбэр NIS-г зохион байгуулах явцад ихэвчлэн тохиолддог асуудлуудын нэг бол нэвтрэх үгийн хэлбэрийн нийцгүй байдал юм. Хэрэв таны NIS сервер DES хувиргалттай нэвтрэх үгийг хэрэглэдэг бол, зөвхөн DES хэрэглэдэг харилцагчид үйлчлэх чадвартай. Жишээлбэл, хэрэв сүлжээнд чинь &solaris; NIS харилцагчид байгаа бол, та бараг л DES хувиргалттай нэвтрэх үг хэрэглэх шаардлагатай гэсэн үг. Таны сервер болон харилцагчид ямар хэлбэрийн нэвтрэх үг хэрэглэдгийг шалгахдаа /etc/login.conf файлыг үзээрэй. Хэрэв тухайн хост DES хувиргалттай нэвтрэх үг хэрэглэдэг бол, default буюу анхдагч ангилал нь дараах мөрүүдийг агуулсан байх болно: default:\ :passwd_format=des:\ :copyright=/etc/COPYRIGHT:\ [Further entries elided] passwd_format нь өөр blf ба md5 гэсэн утгуудыг авч болно (Blowfish болон MD5 хувиргалттай нэвтрэх үгийн хувьд). Хэрэв та /etc/login.conf файлд өөрчлөлт хийсэн бол, нэвтрэх чадварын санг дахин үүсгэх шаардлагатай. Үүний тулд дараах тушаалыг root эрхээр өгөх хэрэгтэй: &prompt.root; cap_mkdb /etc/login.conf /etc/master.passwd файл дотор аль хэдийн үүссэн нэвтрэх үгийн хэлбэр нь хэрэглэгч нэвтрэх чадварын сан дахин үүссэнээс хойш анх удаа нэвтрэх үгээ солих хүртэл өөрчлөгдөхгүй. Мөн, таны сонгосон хэлбэрээр нэвтрэх үгүүдэд хувиргалт хийгддэг болгохын тулд, /etc/auth.conf файл доторх crypt_default утга таны сонгосон хэлбэрийг хамгийн түрүүнд оруулсан байгаа эсэхийг шалгах хэрэгтэй. Жишээ нь, DES хувиргалттай нэвтрэх үгийг хэрэглэх үед: crypt_default = des blf md5 &os; дээр тулгуурласан NIS сервер болон харилцагч бүр дээр дээрх үйлдлүүдийг хийснээр, нэвтрэх үгийн хэлбэр бүгд таарч байгаа гэдэгт санаа амар байж болно. Хэрэв NIS харилцагч дээр нэвтэрч ороход асуудал гарвал, асуудлыг тодруулах нэг газар байна. Хэрэв та холимог сүлжээний хувьд NIS сервер босгох гэж байгаа бол, ихэнх систем дээр зайлшгүй байх хамгийн бага стандарт тул, бүх системүүд дээрээ DES ашиглах хэрэгтэйг санаарай. Грег Саттер Бичсэн Лодойсамбын Баянзул Орчуулсан Автомат Сүлжээний Тохиргоо (DHCP) DHCP гэж юу вэ? Динамик Хостын Тохиргооны Протокол DHCP Интернэт Програм Хангамжийн Консорциум(ISC) DHCP, Dynamic Host Configuration Protocol буюу Динамик Хостын Тохиргооны Протокол нь систем ямар байдлаар сүлжээнд холбогдох, тухайн сүлжээнд харилцаанд орохын тулд шаардагдах мэдээллийг хэрхэн олж авахыг зааж өгдөг. FreeBSD-н 6.0-с өмнөх хувилбарууд ISC (Internet Software Consortium) DHCP харилцагчийг (&man.dhclient.8;) хэрэглэдэг. Хамгийн сүүлийн хувилбар дээр OpenBSD 3.7-с авсан OpenBSD-н dhclient-г хэрэглэдэг. Энэ бүлэгт гарах dhclient-р ISC ба OpenBSD DHCP харилцагчийг хоёуланг нь төлөөлүүлсэн болно. DHCP серверийн хувьд ISC тархацын серверийг авч үзэх болно. Энэ хэсэгт авч үзэх зүйлс Энэ хэсэгт ISC ба OpenBSD DHCP харилцагчийн харилцагч талыг бүтээж байгаа элементүүд, болон ISC DHCP системийн сервер талыг бүтээж байгаа элементүүдийг хоёуланг нь авч үзэх болно. Харилцагч талын програм, dhclient, нь FreeBSD-тэй нэгдмэл байдлаар ирдэг бол, сервер талын хэсэг нь net/isc-dhcp3-server портоос суулгах боломжтой байдлаар ирдэг. &man.dhclient.8;, &man.dhcp-options.5;, ба &man.dhclient.conf.5; заавар хуудсууд болон доор өгөгдсөн зөвлөмжүүд нь хэрэг болно. Хэрхэн ажилладаг вэ? UDP Харилцагч машин дээр dhclient DHCP харилцагчийг ажиллуулахад, тохиргооны мэдээллийг хүссэн хүсэлтийг цацаж эхэлнэ. Анхдагч байдлаар, эдгээр хүсэлтүүд нь UDP 68-р портоос гарч, серверийн UDP 67 порт руу илгээгдэнэ. Сервер харилцагчид IP хаяг болон сүлжээний баг, чиглүүлэгч, DNS серверийн хаяг зэрэг хэрэгтэй мэдээллийг хариу илгээнэ. Энэ бүх мэдээллийг DHCP түрээслэх хэлбэрээр өгөх ба зөвхөн тодорхой хугацааны туршид хүчинтэй байна (DHCP серверийг хариуцагч тохируулж өгсөн байна). Ийм байдлаар, сүлжээнд холбогдохоо больсон харилцагчийн ашиглагдаагүй IP хаягуудыг автоматаар буцааж авах боломжтой болно. DHCP харилцагч серверээс өргөн мэдээллийг авч чадна. Бүрэн жагсаалтыг &man.dhcp-options.5;-с олж үзэж болно. FreeBSD-тэй нэгдмэл байдал &os; нь ISC эсвэл OpenBSD DHCP харилцагч, dhclient-г өөртэйгөө бүрэн нэгтгэсэн байдаг (&os; хувилбараас хамааран). DHCP сервер ажиллаж байгаа сүлжээнд сүлжээний тохиргоог хийх нарийн чимхлүүр ажлаас хөнгөвчлөх үүднээс, DHCP харилцагчийг систем суулгагч болон үндсэн системийн аль алинд хамт оруулж өгсөн байдаг. dhclient нь FreeBSD-н 3.2-с хойших бүх тархацуудад нэгтгэгдсэн байгаа. sysinstall sysinstall нь DHCP-г дэмждэг. sysinstall-р сүлжээний интерфэйсийг тохируулахад асуудаг хоёр дахь асуулт бол: Та энэ интерфэйсийг DHCP-р тохируулахыг хүсэж байна уу?. Зөвшөөрсөн хариулт өгсөн тохиолдолд dhclient-г ажиллуулах бөгөөд, хэрэв амжилттай бол сүлжээний тохиргоо автоматаар хийгдэнэ. Систем ачаалах үед DHCP ашигладаг болгохын тулд, хоёр зүйлийг хийх хэрэгтэй: DHCP шаардлагууд bpf төхөөрөмж цөмтэй хамт эмхэтгэгдсэн байх ёстой. Үүний тулд, device bpf мөрийг цөмийн тохиргооны файлд нэмж бичээд цөмийг дахин бүтээх хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг хэсгээс авна уу. bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг бөгөөд, DHCP-г ажиллуулахын тулд тусгайлан шинээр цөм бүтээх шаардлагагүй. Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд, bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй. /etc/rc.conf файлыг нээгээд дараах мөрийг нэмж бичнэ: ifconfig_fxp0="DHCP" -д тайлбарласан ёсоор, fxp0-г динамикаар тохируулах гэж байгаа интерфэйсийн нэрээр сольж бичнэ. Хэрэв таны dhclient өөр газар байгаа бол, эсвэл хэрэв та dhclient-г нэмэлт тугуудын хамт ажиллуулах хүсэлтэй бол, дараах мөрүүдийг нэмж бичнэ үү (эсвэл шаардлагатай хэсгийг засаж бичнэ үү): dhcp_program="/sbin/dhclient" dhcp_flags="" DHCP сервер DHCP сервер dhcpd нь портуудын цуглуулгад байгаа net/isc-dhcp3-server портын нэг хэсэг байдлаар ирдэг. Энэ порт нь ISC DHCP сервер болон түүний баримтуудыг агуулсан байдаг. Файлууд DHCP тохиргооны файлууд /etc/dhclient.conf dhclient нь /etc/dhclient.conf гэсэн тохиргооны файлыг шаарддаг. Ихэвчлэн энэ файл зөвхөн тайлбаруудаас бүрдэх ба анхдагч утгууд нь харьцангуй өөрчлөх шаардлагагүйгээр өгөгдсөн байдаг. Энэ тохиргооны файлыг &man.dhclient.conf.5; заавар хуудсанд тайлбарласан байгаа. /sbin/dhclient dhclient нь статикаар холбогдсон байх ба /sbin дотор байрлана. &man.dhclient.8; хуудаснаас dhclient-н талаар дэлгэрэнгүй мэдээллийг авна уу. /sbin/dhclient-script dhclient-script нь зөвхөн FreeBSD-д байдаг, DHCP харилцагчийг тохируулах зориулалттай тусгай скрипт юм. Энэ скриптийг &man.dhclient-script.8; заавар хуудсанд тайлбарласан байх ба, ажиллуулахын тулд хэрэглэгч ямар нэг засвар хийх шаардлагагүй. /var/db/dhclient.leases DHCP харилцагч нь түрээсэлж авсан хаягуудаа агуулсан өгөгдлийн санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг. &man.dhclient.leases.5; хэсэгт илүү дэлгэрэнгүй тайлбар бий. Гүнзгийрүүлэн унших DHCP протокол нь бүрэн хэмжээгээр RFC 2131-д тодорхойлогдсон байдаг. Нэмэлт эх үүсвэрүүд -д мөн бий. DHCP Серверийг Суулгах болон Тохируулах Энэ хэсэгт авч үзэх зүйлс Энэ хэсэгт ISC (Internet Software Consortium) DHCP серверийг ашиглан FreeBSD системийг хэрхэн DHCP сервер байдлаар ажиллуулах талаар авч үзэх болно. Сервер нь FreeBSD-н нэг хэсэг байдлаар ирдэггүй бөгөөд ийм үйлчилгээ үзүүлэхийн тулд net/isc-dhcp3-server портыг суулгах хэрэгтэй болдог. Портуудын цуглуулгын хэрхэн ашиглах талаар хэсгээс дэлгэрэнгүй мэдээллийг авна уу. DHCP Серверийг суулгах нь DHCP суулгах FreeBSD системийг DHCP сервер байдлаар тохируулахын тулд, &man.bpf.4; төхөөрөмж цөмд эмхэтгэгдсэн байх ёстой. Үүний тулд, цөмийн тохиргооны файл дотор bpf төхөөрөмжийг нэмээд цөмийг дахин бүтээх хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг хэсгээс үзнэ үү. bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг бөгөөд, DHCP-г ажиллуулахын тулд тусгайлан шинээр цөм бүтээх шаардлагагүй. Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд, bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй. Үүний дараа net/isc-dhcp3-server порттой хамт ирсэн жишээ dhcpd.conf файлыг засах хэрэгтэй. Анхдагч байдлаар, /usr/local/etc/dhcpd.conf.sample гэсэн файл байх ба өөрчлөлт хийхийнхээ өмнө энэ файлыг /usr/local/etc/dhcpd.conf нэртэйгээр хуулж тавих хэрэгтэй. DHCP Серверийг тохируулах DHCP dhcpd.conf dhcpd.conf нь дэд сүлжээ болон хостуудтай холбоотой өгөгдөл зарлалтаас бүрдэх ба жишээн дээр тайлбарлавал илүү амархан байх болов уу: option domain-name "example.com"; option domain-name-servers 192.168.4.100; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254; option routers 192.168.4.1; } host mailhost { hardware ethernet 02:03:04:05:06:07; fixed-address mailhost.example.com; } Энэ тохируулга нь анхдагч хайлтын домэйн байдлаар харилцагчид өгөх домэйныг заана. Энэ талаар дэлгэрэнгүй мэдээллийг &man.resolv.conf.5; хэсгээс үзнэ үү. Энэ тохируулга нь харилцагчийн хэрэглэх ёстой DNS серверүүдийг таслалаар холбосон жагсаалт байна. Хэрэглэгчид өгөх сүлжээний багийг заана. Түрээслэлт (lease) хүчинтэй байх тийм тусгай хугацааг харилцагч хүсэж болох юм. Хэрэв харилцагч хүсээгүй бол сервер энд заасан дуусах хугацаагаар (секундээр) түрээс хийх болно. Серверийн түрээслүүлэх хамгийн дээд хугацааг заана. Харилцагч үүнээс урт хугацаагаар түрээслэх хүсэлт тавибал хүсэлтийг хүлээж авах боловч зөвхөн max-lease-time секундын туршид хүчинтэй байна. Түрээслэх болон эргүүлж авахад DHCP сервер DNS-г шинэчлэхийг оролдох шаардлагатай эсэхийг зааж өгнө. ISC шийдлийн хувьд, энэ тохируулга заавал байх ёстой. Харилцагчид оноох IP хаягуудын хүрээг заана. Энэ хүрээнд багтах IP хаягуудыг харилцагчид өгөх болно. Харилцагчид өгөх анхдагч гарцыг заана. Хостын MAC хаягийг заана (ингэснээр DHCP сервер тухайн хостыг хүсэлт тавихад таньж чадна). Хостод тогтмол IP хаяг оноохыг заана. Энд хостын нэрийг хэрэглэж болохыг тэмдэглэх хэрэгтэй. DHCP сервер IP хаяг түрээслүүлэх хариуг өгөхөөс өмнө хост нэрийг тайлах болно. dhcpd.conf файлыг бичиж дууссаны дараа, /etc/rc.conf файл дотор DHCP серверийг идэвхжүүлэх хэрэгтэй, өөрөөр хэлбэл доорх мөрүүдийг нэмж бичих хэрэгтэй: dhcpd_enable="YES" dhcpd_ifaces="dc0" dc0-г өөрийн тань DHCP сервер DHCP харилцагчдын хүсэлтийг хүлээж авах ёстой интерфэйсийн нэрээр (эсвэл интерфэйсүүдийг зайгаар тусгаарлан) сольж бичих хэрэгтэй. Дараа нь, доорх тушаалыг өгөн серверийг ажиллуулах хэрэгтэй: &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start Серверийнхээ тохиргооны файлд өөрчлөлт оруулах бүрдээ, SIGHUP дохиог dhcpd-д өгөх нь бусад дэмонуудын хувьд тохиргоог дахин дууддаг шиг биш харин тохиргоог дахин ачаалахгүй болохыг анхаарах хэрэгтэй. Процессийг зогсоохын тулд SIGTERM дохиог өгөх хэрэгтэй ба дээрх тушаалыг өгөн дахин эхлүүлэх хэрэгтэй. Файлууд DHCP тохиргооны файлууд /usr/local/sbin/dhcpd dhcpd нь статикаар холбогдсон байх ба /usr/local/sbin дотор байрлана. Порттой хамт суусан &man.dhcpd.8; заавар хуудаснаас dhcpd-н талаар дэлгэрэнгүй мэдээллийг авна уу. /usr/local/etc/dhcpd.conf dhcpd нь /usr/local/etc/dhcpd.conf гэсэн тохиргооны файлыг шаарддаг. Энэ файл дотор харилцагчид өгөх бүх мэдээллээс гадна серверийн өөрийн үйл ажиллагаатай холбоотой мэдээлэл байх ёстой. Энэ тохиргооны файлыг портоос суусан &man.dhcpd.conf.5; заавар хуудсанд тайлбарласан байгаа. /var/db/dhcpd.leases DHCP сервер нь түрээслүүлсэн хаягуудаа агуулсан өгөгдлийн санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг. Портоос суусан &man.dhcpd.leases.5; заавар хуудсанд илүү дэлгэрэнгүй тайлбар бий. /usr/local/sbin/dhcrelay dhcrelay-г нэг DHCP сервер харилцагчаас хүлээн авсан хүсэлтийг өөр сүлжээнд байгаа нөгөө DHCP сервер рүү дамжуулдаг, нарийн бүтэцтэй орчинд хэрэглэнэ. Хэрэв энэ функцыг ашиглах шаардлагатай бол, net/isc-dhcp3-relay портыг суулгаарай. Порттой хамт ирэх &man.dhcrelay.8; заавар хуудаснаас дэлгэрэнгүй мэдээллийг авна уу. Шерн Лий Хувь нэмрээ оруулсан Том Родес Даниэл Гэрзо Лодойсамбын Баянзул Орчуулсан Домэйн Нэрийн Систем (<acronym>DNS</acronym>) Удиртгал BIND &os; анхдагч байдлаар DNS протоколын хамгийн өргөн хэрэглэгддэг хэрэгжүүлэлт болох BIND (Berkeley Internet Name Domain)-н аль нэг хувилбарыг агуулсан байдаг. DNS нь нэрүүдийг IP хаягууд руу, мөн эсрэгээр нь буулгахад хэрэглэгддэг протокол юм. Жишээ нь, www.FreeBSD.org-г асуусан DNS асуулга явуулахад, хариуд нь &os; Төсөлийн вэб серверийн IP хаяг ирэх бол, ftp.FreeBSD.org-н хувьд асуулга явуулахад, хариуд нь харгалзах FTP машины IP хаяг ирэх болно. Яг үүнтэй адилаар эсрэгээр нь хийж болно. Ямар нэг IP-р асуулга явуулахад түүний хост нэрийг олж болно. DNS хайлт хийхийн тулд тухайн системд домэйн нэрийн сервер ажиллаж байх ёстой. &os; нь одоо BIND9 DNS сервер програмын хамт ирдэг болсон. Бидний суулгац нь файл системийн шинэчилсэн зохион байгуулалт, автомат &man.chroot.8; тохиргоо зэрэг аюулгүй байдлыг дээд зэргээр хангах функцүүдтэй ирдэг. DNS DNS бол Интернэт дээр тулгуурласан, бүрэн эрхт root буюу эх сервер, Top Level Domain буюу Дээд Түвшний Домэйн (TLD) сервер, болон домэйн тус бүрийн мэдээллийг агуулж байдаг бусад жижиг нэрийн серверүүдээс бүтсэн нарийн төвөгтэй систем юм. BIND одоо Internet Software Consortium -н мэдэлд байдаг. Нэр Томъёо Энэ баримтыг ойлгохын тулд, DNS-тэй холбоотой зарим нэр томъёог ойлгосон байх шаардлагатай. resolver reverse DNS root zone Нэр Тайлбар Forward буюу Ердийн DNS Хост нэрийг IP хаяг руу буулгана. Origin буюу Үүсэл Тухайн бүсийн файлд хамрагдаж байгаа домэйныг заана. named, BIND, нэрийн сервер &os;-н BIND нэрийн серверийг нэрлэх түгээмэл нэршил. Resolver буюу Тайлагч Машин, бүсийн мэдээллийн талаар нэрийн серверээс асуулга явуулахын тулд ашигладаг системийн процесс. Reverse буюу Урвуу DNS Ердийн DNS-н урвуу нь; IP хаягийг хост нэр рүү буулгана. Root zone буюу Эх бүс Интернэт бүсийн шатлалын эхлэл. Файл системийн бүх файлууд эх санд харъяалагддаг шиг, бүх бүсүүд эх бүсэд харъяалагдана. Zone буюу Бүс Нэг бүрэн эрхт газраар удирдуулж байгаа домэйн, дэд домэйн, эсвэл DNS-н нэг хэсэг. бүсүүд жишээнүүд Бүсүүдийн жишээ: . бол эх бүс. org. бол эх бүсийн доорх Top Level Domain буюу Дээд Түвшний Домэйн (TLD). example.org. бол org. TLD-н доорх бүс. 1.168.192.in-addr.arpa бол 192.168.1.* IP хүрээнд багтаж байгаа бүх IP хаягуудыг агуулсан бүс. Хост нэр зүүн тал руугаа явах тусам илүү тодорхой болж байгааг та бүхэн анзаарсан байх. Жишээлбэл, example.org. нь org.-с илүү тодорхой, харин org. нь эх бүсээс илүү тодорхой байна. Хост нэрийн зохион байгуулалт нь файл системийнхтэй төстэй: /dev директор нь эх директорт харъяалагдана, гэх мэт. Нэрийн Сервер ажиллуулах Шалтгаанууд Нэрийн Серверүүд ихэвчлэн хоёр янз байна: authoritative буюу бүрэн эрхт нэрийн сервер, ба caching буюу түр тогтоогч нэрийн сервер. Бүрэн эрхт нэрийн сервер нь дараах тохиолдлуудад хэрэгтэй: DNS мэдээллийг өөртөө агуулж, энэ мэдээллийг нийтэд зарлан, ирсэн асуулгуудад бүрэн эрхтэйгээр хариулах хүсэлтэй үед. Бүртгэлтэй домэйны хувьд, жишээлбэл example.org, түүний дор орших хост нэрүүдэд IP хаяг оноож өгөх хэрэгтэй үед. Бүлэг IP хаягуудад урвуу DNS мэдээлэл хэрэгтэй үед (IP-с хост нэр рүү). Нөөц эсвэл хоёрдогч нэрийн сервер, зарц гэж нэрлэнэ, асуулгуудад хариулуулах шаардлагатай үед. Түр тогтоогч нэрийн сервер дараах тохиолдлуудад хэрэгтэй: Дотоод DNS сервер нь асуулгын хариуг түр тогтоосноор гадаад нэрийн серверээс илүү хурдан хариу өгч байгаа үед. www.FreeBSD.org-р асуулга явуулсан үед, тайлагч ихэвчлэн үйлчилгээ авдаг ISP-нхаа нэрийн серверээс асуугаад хариуг олж авна. Дотоод, түр тогтоогч DNS сервер ажиллуулснаар, асуулгыг гадаад интернэтээс зөвхөн ганц удаа явуулах бөгөөд, хариуг тогтоож авна. Түүнээс хойших асуулгуудад түр тогтоогч нэрийн сервер хариулах ба гадагшаа дахин асуулга явуулах шаардлага байхгүй. Хэрхэн ажилладаг вэ? &os;-д BIND дэмонг ойлгомжтойгоор named гэж нэрлэнэ. Файл Тайлбар &man.named.8; BIND дэмон. &man.rndc.8; Нэрийн серверийг хянах хэрэгсэл. /etc/namedb BIND-н бүсийн мэдээлэл хадгалагдаж байгаа сан. /etc/namedb/named.conf дэмоны тохиргооны файл. Тухайн бүс сервер дээр хэрхэн тохируулагдсанаас хамаарч энэ бүстэй хамааралтай файлууд /etc/namedb директорын master, slave, эсвэл dynamic гэсэн дэд сангуудад байрлана. Эдгээр файлуудад гадны асуулгад хариу болгон өгөх DNS мэдээллүүд байрлана. BIND-г ажиллуулах нь BIND ажиллуулах BIND нь анхдагч байдлаар суучихсан ирдэг тул тохируулахад хялбар байдаг. named-н анхдагч тохиргоо нь &man.chroot.8; орчинд ажиллах, тайлагч нэрийн сервер байдлаар хийгдсэн байдаг. Энэ тохиргоогоор серверийг ажиллуулахын тулд дараах тушаалыг өгөх хэрэгтэй: &prompt.root; /etc/rc.d/named forcestart named дэмонг систем ачаалах үед ажиллуулдаг болгохын тулд /etc/rc.conf дотор дараах мөрүүдийг нэмэх хэрэгтэй: named_enable="YES" Мэдээж /etc/namedb/named.conf файл дотор өөр олон тохируулгууд байгаа боловч энэ баримтын мэдлээс халих тул энд дурдсангүй. Хэрэв &os; дээрх named-н эхлэл тохируулгуудын талаар сонирхож байгаа бол /etc/defaults/rc.conf дотор байгаа named_* тугуудыг нэг ороод үзээрэй. Мөн &man.rc.conf.5; заавар хуудаснаас тусламж авч болно. хэсгийг уншихад илүүдэхгүй. Тохиргооны файлууд BIND тохиргооны файлууд named-н тохиргооны файлууд нь /etc/namedb директор дотор байрлах ба хэрэв хялбар тайлагчаас өөр түвшинд ажиллах хэрэгтэй бол ажиллуулахаасаа өмнө тохиргооны файлд засвар хийх хэрэгтэй. Ихэнх тохиргоог энэ сан дотор гүйцэтгэнэ. <command>make-localhost</command>-г хэрэглэх нь localhost-н хувьд эзэн бүсийг тохируулахын тулд /etc/namedb директорруу шилжээд дараах тушаалыг өгнө: &prompt.root; sh make-localhost Хэрэв бүх зүйл зүй ёсоор явагдвал, master дэд директор дотор шинэ файл үүссэн байх ёстой. Файлууд нь дотоод домэйны хувьд localhost.rev, IPv6 тохиргооны хувьд localhost-v6.rev гэсэн нэртэй байна. Анхдагч тохиргооны файлын хувьд named.conf файл дотор шаардлагатай мэдээллүүд байрлана. <filename>/etc/namedb/named.conf</filename> // $FreeBSD$ // // Refer to the named.conf(5) and named(8) man pages, and the documentation // in /usr/share/doc/bind9 for more details. // // If you are going to set up an authoritative server, make sure you // understand the hairy details of how DNS works. Even with // simple mistakes, you can break connectivity for affected parties, // or cause huge amounts of useless Internet traffic. options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; // If named is being used only as a local resolver, this is a safe default. // For named to be accessible to the network, comment this option, specify // the proper IP address, or delete this option. listen-on { 127.0.0.1; }; // If you have IPv6 enabled on this system, uncomment this option for // use as a local resolver. To give access to the network, specify // an IPv6 address, or the keyword "any". // listen-on-v6 { ::1; }; // In addition to the "forwarders" clause, you can force your name // server to never initiate queries of its own, but always ask its // forwarders only, by enabling the following line: // // forward only; // If you've got a DNS server around at your upstream provider, enter // its IP address here, and enable the line below. This will make you // benefit from its cache, thus reduce overall DNS traffic in the Internet. /* forwarders { 127.0.0.1; }; */ Тайлбар дээр хэлсэнчлэн дээд гарцын түр тогтоогчоос хүртэхийн тулд forwarders-г идэвхжүүлж болох юм. Энгийн үед, нэрийн сервер нь хариултыг олтлоо давталттай байдлаар хэд хэдэн нэрийн серверүүдээр дамжин асууна. Энэ тохируулгыг идэвхжүүлснээр, дээд гарцынхаа нэрийн серверээс (эсвэл зааж өгсөн нэрийн сервер) хамгийн түрүүнд асууж, энэ серверийн түр санах ойд байгаа мэдээллээс хүртэхийг эрмэлзэнэ. Хэрэв дээд гарцын нэрийн сервер нь олон асуулгад хариулдаг, хурдан үйлчилдэг сервер байвал дээрх тохируулгыг идэвхжүүлсний үр ашиг гарна. 127.0.0.1 энд ажиллахгүй. Энэ IP хаягийг өөрийн дээд гарцын нэрийн серверээр сольж бичнэ үү. /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND versions 8 and later * use a pseudo-random unprivileged UDP port by default. */ // query-source address * port 53; }; // If you enable a local name server, don't forget to enter 127.0.0.1 // first in your /etc/resolv.conf so this server will be queried. // Also, make sure to enable it in /etc/rc.conf. zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "master/localhost.rev"; }; // RFC 3152 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" { type master; file "master/localhost-v6.rev"; }; // NB: Do not use the IP addresses below, they are faked, and only // serve demonstration/documentation purposes! // // Example slave zone config entries. It can be convenient to become // a slave at least for the zone your own domain is in. Ask // your network administrator for the IP address of the responsible // primary. // // Never forget to include the reverse lookup (IN-ADDR.ARPA) zone! // (This is named after the first bytes of the IP address, in reverse // order, with ".IN-ADDR.ARPA" appended.) // // Before starting to set up a primary zone, make sure you fully // understand how DNS and BIND works. There are sometimes // non-obvious pitfalls. Setting up a slave zone is simpler. // // NB: Don't blindly enable the examples below. :-) Use actual names // and addresses instead. /* An example master zone zone "example.net" { type master; file "master/example.net"; }; */ /* An example dynamic zone key "exampleorgkey" { algorithm hmac-md5; secret "sf87HJqjkqh8ac87a02lla=="; }; zone "example.org" { type master; allow-update { key "exampleorgkey"; }; file "dynamic/example.org"; }; */ /* Examples of forward and reverse slave zones zone "example.com" { type slave; file "slave/example.com"; masters { 192.168.1.1; }; }; zone "1.168.192.in-addr.arpa" { type slave; file "slave/1.168.192.in-addr.arpa"; masters { 192.168.1.1; }; }; */ named.conf доторх эдгээр жишээнүүд нь ердийн болон урвуу бүсийн зарц бүртгэлүүд болно. Шинэ бүс нэмэхдээ, named.conf файл дотор шинэ бүртгэл оруулах хэрэгтэй. Жишээ нь, example.org домэйны хувьд хамгийн хялбар бүртгэл дараах байдалтай байна: zone "example.org" { type master; file "master/example.org"; }; Энэ бүс нь эзэн бүс болохыг илэрхийллээс харж болно. Мөн бүсийн мэдээллийг /etc/namedb/master/example.org файл дотор агуулж байгааг илэрхийллээс харж болно. zone "example.org" { type slave; file "slave/example.org"; }; Зарц бүсийн хувьд, тухайн бүсийн хувьд бүсийн мэдээлэл эзэн нэрийн серверээс зөөгдөж ирэх ба зааж өгсөн файлд хадгалагдана. Эзэн сервер унтарсан эсвэл холбоо тогтоох боломжгүй болбол, зарц нэрийн серверт бүсийн мэдээлэл байгаа тул асуулгуудад хариулах чадвартай байна. Бүсийн Файлууд BIND бүсийн файлууд example.org домэйны хувьд жишээ эзэн бүсийн файлыг дор үзүүлэв (/etc/namedb/master/example.org файл): $TTL 3600 ; 1 hour example.org. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) ; DNS Servers IN NS ns1.example.org. IN NS ns2.example.org. ; MX Records IN MX 10 mx.example.org. IN MX 20 mail.example.org. IN A 192.168.1.1 ; Machine Names localhost IN A 127.0.0.1 ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 mx IN A 192.168.1.4 mail IN A 192.168.1.5 ; Aliases www IN CNAME @ . тэмдэгтээр төгссөн хост нэрүүд нь жинхэнэ хост нэрүүд бөгөөд . тэмдэгтээр төгсөөгүй нэрүүдэд үүсэл залгагдахыг анхаарна уу. Жишээлбэл, www нь www.үүсэл-руу хөрвүүлэгдэх болно. Манай жишээн дээр бол, бидний үүсэл example.org. тул www нь www.example.org. болж хөрвүүлэгдэнэ. Бүсийн файл дараах хэлбэртэй байна: recordname IN recordtype value DNS бичлэгүүд Хамгийн өргөн хэрэглэгддэг DNS бичлэгүүд: SOA start of zone authority буюу бүсийн бүрэн эрхт мэдээллийн эхлэл NS бүрэн эрхт нэрийн сервер A хостын хаяг CNAME хуурамч дүрд өгөх хүлээн зөвшөөрөгдсөн нэр MX захидал солилцогч PTR домэйн нэрийг заагч (урвуу DNS-д хэрэглэнэ) example.org. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day example.org. домэйн нэр, мөн энэ бүсийн файлын хувьд үүсэл болно. ns1.example.org. энэ бүсийн гол/бүрэн эрхт нэрийн сервер. admin.example.org. энэ бүсийг хариуцагч хүн, @ тэмдэгтийг нь орлуулсан цахим захидлын хаяг. (admin@example.org нь admin.example.org болно) 2006051501 Файлын сериал дугаар. Бүсийн файлд өөрчлөлт оруулах болгонд энэ дугаарыг нэмэгдүүлэх шаардлагатай. Одоо цагт ихэнх админууд энэ сериал дугаарыг yyyymmddrr хэлбэрээр хэрэглэх болсон. 2006051501 гэдэг нь хамгийн сүүлд 05/15/2006-нд засвар хийсэн, хамгийн сүүлийн 01 гэдэг нь энэ өдөр хийгдсэн хамгийн анхны засвар гэдгийг илтгэнэ. Энэ сериал дугаар нь зарц серверүүдэд бүсийн мэдээлэл өөрчлөгдсөн талаар мэдээлэл өгдөг тул их чухал зүйл байгаа юм. IN NS ns1.example.org. Энэ бол NS бичлэг. Тухайн бүсийн хувьд бүрэн эрхт хариултыг өгч чадах сервер бүрийн хувьд энэ бичлэг байх ёстой. localhost IN A 127.0.0.1 ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 mx IN A 192.168.1.4 mail IN A 192.168.1.5 A бичлэг нь машины нэрийг заана. Дээр үзүүлсэнчлэн, ns1.example.org нь 192.168.1.2-руу буулгагдана. IN A 192.168.1.1 Энэ мөр нь 192.168.1.1 гэсэн IP хаягийг үүсэлд оноож байна, бидний жишээн дээр example.org. www IN CNAME @ Хүлээн зөвшөөрөгдсөн нэрийн бичлэг нь машинд хуурамч дүр өгөхөд хэрэглэгдэнэ. Энэ жишээн дээр, www нь example.org (192.168.1.1) гэсэн домэйн нэртэй эзэн машины хуурамч дүрийн нэр юм. CNAME-г хуурамч хост нэр өгөхөд, эсвэл олон машины дунд тойрч хэрэглэгдэх нэг хост нэр өгөхөд хэрэглэнэ. MX бичлэг IN MX 10 mail.example.org. MX бичлэг нь аль захидлын серверүүд тухайн бүсийн захидлыг хүлээж авах үүрэгтэй болохыг зааж өгнө. mail.example.org нь захидлын серверийн хост нэр бөгөөд 10 нь энэ захидлын серверийн зэрэглэлийг зааж байна. Нэг бүсэд 10, 20 гэх мэт ялгаатай зэрэглэлтэй хэд хэдэн захидлын сервер байж болно. example.org домэйн руу захидал явуулах гэж байгаа сервер эхлээд хамгийн өндөр зэрэглэлтэй MX сервертэй (хамгийн бага зэрэглэлийн дугаартай), дараа нь дараагийн хамгийн өндөр зэрэглэлтэй сервертэй гэх мэтчилэн захидлыг явуулж чадтал дарааллаар нь холбоо тогтооно. in-addr.arpa бүсийн файл (урвуу DNS) нь ижил хэлбэртэй байна. Ганцхан ялгаа нь A болон CNAME бичлэгийн оронд PTR бичлэгийг хэрэглэнэ. $TTL 3600 1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( 2006051501 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 3600 ) ; Minimum IN NS ns1.example.org. IN NS ns2.example.org. 1 IN PTR example.org. 2 IN PTR ns1.example.org. 3 IN PTR ns2.example.org. 4 IN PTR mx.example.org. 5 IN PTR mail.example.org. Энэ файлд, жишээ домэйны IP-с хост нэр рүү буулгасан зохих шаардлагатай буулгалтуудыг үзүүлсэн байна. Түр тогтоогч Нэрийн Сервер (Caching Name Server) BIND түр тогтоогч нэрийн сервер Түр тогтоогч нэрийн сервер гэдэг нь ямар ч бүсийн хувьд бүрэн эрхт биш нэрийн серверийг хэлнэ. Ийм төрлийн сервер нь зөвхөн асуулга явуулах бөгөөд хариултыг дараа хэрэглэхээр тогтоож авдаг. Ийм нэрийн серверийг зохион байгуулахын тулд, тохиргоог ердийн нэрийн сервертэй адилаар хийх боловч, ямар ч бүсийн мэдээллийг оруулахгүй байхаар хийнэ. Аюулгүй байдал Хэдийгээр BIND нь хамгийн өргөн хэрэглэгддэг DNS сервер боловч, аюулгүй байдалтай холбоотой асуудлууд байнга тулгардаг. Гадны халдлагад өртөж болзошгүй аюулгүй байдлын цоорхой заримдаа олддог. Хэдийгээр &os; named-г автоматаар &man.chroot.8; орчинд оруулдаг боловч; DNS халдлагад ашиглаж болохуйц хэд хэдэн механизмууд байсаар байна. CERT-с гаргадаг аюулгүй байдлын санамжуудыг уншихыг зөвлөж байна. Мөн &a.security-notifications;-д бүртгүүлж, шинээр гарч байгаа Интернэт болон &os;-н аюулгүй байдлын асуудлуудын талаар мэдээлэлтэй байхыг зөвлөе. Хэрэв ямар нэгэн асуудал тулгарвал, эхийг байнга шинэчилж, named-г шинээр бүтээх нь алдаа болохгүй. Гүнзгийрүүлэн унших BIND/named заавар хуудсууд: &man.rndc.8; &man.named.8; &man.named.conf.5; ISC BIND-н Албан ёсны Хуудас ISC BIND-н Албан ёсны Хэлэлцүүлэг BIND FAQ O'Reilly "DNS ба BIND" 5 дахь Хэвлэлт RFC1034 - Домэйн Нэрүүд - Зарчмууд болон Боломжууд RFC1035 - Домэйн Нэрүүд - Хэрэгжүүлэлт болон Үзүүлэлтүүд Мюррей Стөүкли Хувь нэмрээ оруулсан Лодойсамбын Баянзул Орчуулсан Apache HTTP Сервер вэб серверүүд зохион байгуулах Apache Удиртгал Дэлхийн хамгийн их ачаалалтай ажилладаг зарим вэб сайтууд &os; дээр ажилладаг. Интернэтэд ажиллаж байгаа вэб серверүүдийн олонхи нь Apache HTTP Серверийг ашиглаж байна. Apache програм хангамжийн багц таны FreeBSD суулгах дискэнд орсон байгаа. Хэрэв та &os;-г анх суулгахдаа Apache-г хамт суулгаагүй бол www/apache13 эсвэл www/apache20 портоос суулгаж болно. Apache нэгэнт амжилттай суусан бол түүнийг тохируулах шаардлагатай. Apache HTTP Server-н 1.3.X хувилбар нь &os;-д хамгийн өргөн хэрэглэгддэг тул бид энэ хэсэгт энэ хувилбарыг үзэх болно. Apache 2.X-д олон шинэ технологи нэвтэрсэн боловч бид энэ талаар энд үзэхгүй. Apache 2.X-н талаар дэлгэрэнгүй мэдээллийг хаягаар орж үзнэ үү. Тохиргоо Apache тохиргооны файл &os; дээрх Apache HTTP Серверийн гол тохиргооны файл бол /usr/local/etc/apache/httpd.conf юм. Энэ файлд, &unix;-н текст тохиргооны файлын нэгэн адил тайлбар мөрүүдийн өмнө # тэмдэгтийг хэрэглэдэг. Бүх боломжит тохируулгуудын талаар дэлгэрүүлж тайлбарлах нь энэ номын хүрээнээс халих тул, хамгийн их өөрчлөлт хийгддэг директивүүдийг энд авч үзье. ServerRoot "/usr/local" Энэ директив Apache суулгацын анхдагч директор шатлалын эхийг зааж өгнө. Хоёртын файлууд серверийн эх директорын bin ба sbin дэд директоруудад, тохиргооны файлууд etc/apache дэд директорт байрлана. ServerAdmin you@your.address Сервертэй холбоотой асуудлуудын талаар илгээх цахим захидлын хаягийг заана. Энэ хаяг алдааны хуудсууд гэх зэрэг сервер талаас автоматаар үүсгэгддэг зарим хуудсууд дээр бичигдэх болно. ServerName www.example.com ServerName нь хост дээр тохируулагдсан хост нэрээс өөр нэрийг сервертээ өгөх боломжийг танд олгоно (өөрөөр хэлбэл, хостын жинхэнэ хост нэрийн оронд www-г хэрэглэх). Энэ нэрээр таны сервер харилцагч нартай харилцах болно. DocumentRoot "/usr/local/www/data" DocumentRoot: Энэ директорт байгаа вэб баримтуудыг харилцагч нарт үзүүлэх болно. Анхдагч байдлаар, бүх хүсэлтүүд энэ директорт өгөгдөнө. Гэвч симбол холбоосууд болон хуурамч дүрүүдийг ашиглан өөр газар руу зааж өгч болно. Apache-н тохиргооны файлд ямар нэг өөрчлөлт хийхээсээ өмнө нөөц хуулбарыг авч үлдэхээ мартуузай. Тохиргоо хийж дууссан бол одоо Apache-г ажиллуулах хэрэгтэй. <application>Apache</application>-г ажиллуулах нь Apache эхлүүлэх ба зогсоох Бусад олон сүлжээний орчны серверүүд inetd супер серверээс ажилладаг бол, Apache тэгдэггүй. Харилцагч вэб хөтчүүдээс ирэх HTTP хүсэлтүүдэд хариулахдаа илүү өндөр үзүүлэлттэй ажиллуулахын тулд түүнийг бие даан ажилладаг байхаар тохируулсан байдаг. Эхлүүлэх, зогсоох болон дахин эхлүүлэх зэрэг үйлдлийг аль болох хялбар болгохын тулд бүрхүүлийн скрипт хялбаршуулагч хамт ирдэг. Apache-г анх удаа эхлүүлэхийн тулд, дараах тушаалыг өгнө: &prompt.root; /usr/local/sbin/apachectl start Хүссэн үедээ серверийг дараах тушаалаар зогсооно: &prompt.root; /usr/local/sbin/apachectl stop Тохиргооны файлд өөрчлөлт оруулсны дараа, серверийг дахин эхлүүлэх шаардлагатай: &prompt.root; /usr/local/sbin/apachectl restart Тогтсон холболтуудыг таслалгүйгээр Apache-г дахин эхлүүлэхийн тулд дараах тушаалыг өгнө: &prompt.root; /usr/local/sbin/apachectl graceful Нэмэлт мэдээллийг &man.apachectl.8; заавар хуудаснаас авна уу. Систем ачаалах үед Apache-г эхлүүлэхийн тулд дараах мөрүүдийг /etc/rc.conf файлд нэмж бичнэ: apache_enable="YES" буюу эсвэл Apache 2.2-ийн хувьд: apache22_enable="YES" Хэрэв систем ачаалах үед эхэлдэг Apache httpd програмд нэмэлт тушаалын мөрний тохируулгуудыг оруулах хүсэлтэй бол, дараах мөрийг мөн rc.conf файлд нэмэх хэрэгтэй: apache_flags="" Одоо таны вэб сервер ажиллаж байна. Та өөрийн вэб сайтыг вэб хөтөч дээрээ http://localhost/ хаягийг оруулан харж болно. Энд гарах анхдагч вэб хуудас бол /usr/local/www/data/index.html юм. Давхар байршуулалт Apache нь хоёр төрлийн давхар байршуулах үйлчилгээг дэмждэг. Эхнийх нь нэр дээр үндэслэсэн давхар байршуулалт юм. Нэр дээр үндэслэсэн давхар байршуулалт дээр хост нэрийг ялгаж мэдэхдээ харилцагчийн HTTP/1.1 толгойн хэсгийг ашигладаг. Иим байдлаар олон өөр домэйнууд нэг IP хаягийг хуваан хэрэглэх боломжтой болдог. Apache дээр, нэр дээр үндэслэсэн давхар байршуулалтыг хэрэглэхийн тулд доор дурдсантай төстэй бүртгэлийг httpd.conf файл дотор нэмж бичих хэрэгтэй: NameVirtualHost * Таны вэб серверийн нэр www.domain.tld бөгөөд www.someotherdomain.tld нэртэй домэйныг давхар байршуулах хүсэлтэй бол, та дараах бүртгэлийг httpd.conf файлд нэмэх хэрэгтэй болно: <VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain.tld </VirtualHost> <VirtualHost *> ServerName www.someotherdomain.tld DocumentRoot /www/someotherdomain.tld </VirtualHost> Дээрх хаягуудын оронд хэрэгтэй хаягуудыг, замуудын оронд баримтууд байгаа зохих замуудыг сольж бичнэ үү. Давхар хостуудыг зохион байгуулах талаар дэлгэрэнгүй мэдээллийг Apache-н албан ёсны баримтжуулалт: -с олж үзнэ үү. Apache Модулиуд Apache модулиуд Үндсэн серверийн үүрэг функцыг сайжруулахын тулд бүтээгдсэн Apache-н олон модулиуд байдаг. FreeBSD Портуудын Цуглуулга нь Apache-г түүний өргөн хэрэглэгддэг зарим модулиудын хамт хялбар суулгах боломжийг олгодог. mod_ssl вэб серверүүд аюулгүй SSL криптограф mod_ssl модуль нь Secure Sockets Layer (SSL v2/v3) ба Transport Layer Security (TLS v1) протоколоор дамжуулан өндөр нууцлалыг хангахын тулд OpenSSL санг ашигладаг. Энэ модуль нь батламж олгодог итгэмжлэгдсэн байгууллагаас батламж авахын тулд шаардлагатай бүх зүйлсээр хангадаг тул та үүнийг ашиглан &os; дээр аюулгүй вэб сервер ажиллуулж чадна. Хэрэв та Apache-г суулгаж амжаагүй бол, mod_ssl модулийг агуулдаг Apache-н 1.3.X хувилбарыг www/apache13-modssl портоос суулгаж болох юм. Apache 2.X-н хувьд SSL дэмжлэгийг www/apache22 портоос авч болно. SSL дэмжлэг автоматаар идэвхжсэн байдаг. Хэлний холболтууд Ихэнх гол скрипт хэлнүүдэд зориулсан Apache-ийн модулиуд байдаг. Эдгээр модулиуд нь Apache-ийн модулиудыг бүхэлд нь скрипт хэл дээр бичих боломжийг ихэвчлэн бүрдүүлдэг. Эдгээр нь бас гадаад тайлбарлагчийг эхлүүлэх нэмэлт зардал болон димамик вэб сайтуудын хувьд байдаг эхлүүлэх хугацааны алдагдлыг тойрон гарах, серверт багтааж хийгдсэн байнгын тайлбарлагч болон дараагийн хэсэгт тайлбарлагдсан шигээр ихэвчлэн ашиглагддаг. Динамик вэб сайтууд web servers dynamic Сүүлийн 10 жилд, өөрийн ашиг орлогыг нэмэгдүүлэх, хүмүүст хүрэх зорилгоор илүү олон компаниуд бизнесээ Интернэтээр явуулах болжээ. Энэ нь динамик агуулгатай вэб хуудсууд төрөн гарах хэрэгцээ шаардлагыг улам нэмэгдүүлсэн. µsoft; гэх мэт зарим компаниуд ч өөрийн бүтээгдэхүүнүүдэд тэдгээрээс оруулах болсон хэдий ч, нээлттэй эхийн нэгдэл энэ асуудалд хариу өгсөн юм. Динамик вэб агуулгыг бий болгох орчин үеийн боломжууд бол Django, Ruby on Rails, mod_perl болон mod_php юм. Django Python Django Django нь өндөр ажиллагаатай, гоёмсог вэб програмыг хурдан бичих боломжийг хөгжүүлэгчдэд олгохоор хийгдсэн, BSD лицензтэй тогтолцоо юм. Энэ нь өгөгдлийн төрлүүд Python обьект хэлбэрээр хөгжүүлэгддэг байхаар болгосон обьектийн харилцааг оноогчтой бөгөөд тэдгээр обьектуудад зориулсан хөгжүүлэгчдэд SQL бичих шаардлагагүй болгож өгдөг, баялаг динамик өгөгдлийн сангийн хандалтын API-тай юм. Энэ нь бас програмын логикийг HTML үзүүлбэрээс тусгаарлах боломжийг бүрдүүлэх нэмэлт загварын системтэй байдаг. Django нь mod_python, Apache, болон таны сонгосон SQL өгөгдлийн сангийн хөдөлгүүрээс хамаардаг. FreeBSD порт нь эдгээр бүх хамаарлуудыг тохирсон сонголтуудтай нь танд суулгаж өгөх болно. Django-г Apache2, mod_python3, болон PostgreSQL-тэй суулгах нь &prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL Django болон бусад хамаарлууд суулгагдсаны дараа та Django төслийн санг үүсгэх хэрэгтэй бөгөөд өөрийн сайт дээрх тухайн URL дээр өөрийн програмыг дуудахын тулд суулгагдсан Python тайлбарлагчийг ашиглахаар болгож Apache-г тохируулах хэрэгтэй. Django/mod_python-д зориулсан Apache-ийн тохиргоо Та өөрийн вэб програм руу тодорхой URL-уудад зориулсан хүсэлтүүдийг дамжуулахаар Apache-г тохируулахын тулд apache-ийн httpd.conf файлд мөр нэмэх шаардлагатай: <Location "/"> SetHandler python-program PythonPath "['/dir/to/your/django/packages/'] + sys.path" PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonAutoReload On PythonDebug On </Location> Ruby on Rails Ruby on Rails Ruby on Rails нь бүрэн гүйцэд хөгжүүлэлтийн стекийн боломжийг олгодог бөгөөд вэб хөгжүүлэгчдийг хүчирхэг програмыг хурдан шуурхай, илүү үр бүтээлтэй бичдэг байхаар оновчлогдсон, нээлттэй эхийн вэб тогтолцоо юм. Үүнийг портын системээс хялбараар суулгаж болно. &prompt.root; cd /usr/ports/www/rubygem-rails; make all install clean mod_perl mod_perl Perl Apache/Perl нэгтгэх төсөл Perl програмчлалын хэл ба Apache HTTP Серверийн бүх хүч чадлыг нэгтгэсэн юм. mod_perl модулийн тусламжтай Apache модулиудыг тэр чигээр нь Perl дээр бичих боломжтой. Дээр нь, серверт суулгасан шургуу хөрвүүлэгч, гадны хөрвүүлэгч ашиглах илүү ажил болон Perl эхлүүлэх хугацааны алдагдлаас зайлсхийж чадсан юм. mod_perl-г хэд хэдэн янзаар хэрэглэж болно. mod_perl-г хэрэглэж эхлэхээс өмнө mod_perl 1.0 зөвхөн Apache 1.3-тай ажилладаг, mod_perl 2.0 зөвхөн Apache 2.X-тэй ажилладаг гэдгийг санаарай. mod_perl 1.0-г www/mod_perl портоос, түүний статикаар эмхэтгэсэн хувилбарыг www/apache13-modperl портоос суулгаж болно. mod_perl 2.0-г www/mod_perl2 портоос суулгаж болно. Том Рөүдс Бичсэн Лодойсамбын Баянзул Орчуулсан mod_php mod_php PHP PHP буюу PHP:Hypertext Preprocessor бол вэб хөгжүүлэлтэд тусгайлан тохируулсан, энгийн хэрэглээний скрипт хэл юм. HTML дотор суулгах боломжтой түүний синтакс C, &java;, ба Perl-с гаралтай. Энэ нь вэб хөгжүүлэгчдэд динамикаар үүсгэгдэх вэб хуудсыг хурдан бичих боломжтой болгох үүднээс тэгсэн хэрэг. Apache вэб серверийг PHP5-г дэмждэг болгохын тулд, lang/php5 портыг суулгаж эхлэх хэрэгтэй. Хэрэв lang/php5 портыг анх удаа суулгаж байгаа бол, боломжит ТОХИРУУЛГУУД автоматаар дэлгэцэн дээр гарч ирнэ. Хэрэв цэс гарч ирэхгүй бол, өөрөөр хэлбэл lang/php5 портыг өмнө нь хэзээ нэгэн цагт суулгаж байсан бол, тохируулгуудын харилцах цонхыг гаргаж ирэхийн тулд дараах тушаалыг: &prompt.root; make config порт директор дотор өгөх хэрэгтэй. Тохируулгуудын харилцах цонхонд, mod_php5Apache-н ачаалах боломжтой модуль байдлаар бүтээхийн тулд APACHE тохируулгыг идэвхжүүлнэ. Олон сайтууд PHP4-г янз бүрийн шалтгааны улмаас (өөрөөр хэлбэл, нийцтэй байдал эсвэл аль хэдийн үйлчилгээнд гаргачихсан вэб програмууд) ашигласаар байна. Хэрэв mod_php4mod_php5-н оронд ашиглах шаардлагатай бол, lang/php4 портыг ашиглаарай. lang/php4 порт нь lang/php5 портод байдаг тохиргооны болон бүтээх үеийн олон тохируулгуудыг дэмждэг. Энэ хэсэг код динамик PHP програмыг дэмждэг болгоход шаардлагатай модулиудыг суулгаж тохируулах болно. Доорх мөрүүд /usr/local/etc/apache/httpd.conf файл дотор нэмэгдсэн эсэхийг шалгаарай: LoadModule php5_module libexec/apache/libphp5.so AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html </IfModule> <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> Үүний дараа, PHP модулийг ачаалахын тулд, дараах тушаалыг өгч серверийг дахин ачаалах хэрэгтэй: &prompt.root; apachectl graceful Дараа, PHP-н хувилбарыг дээшлүүлэх үедээ, make config тушаалыг өгөх шаардлагагүй; идэвхжүүлсэн ТОХИРУУЛГУУД &os; Портуудын тогтолцоонд автоматаар хадгалагдсан байгаа. &os;-н PHP дэмжлэг нь дээд зэргээр модульчлагдсан тул үндсэн суулгац нь маш хязгаарлагдмал байдаг. lang/php5-extensions портыг ашиглан дэмжлэг нэмэх нь үнэхээр амархан асуудал. PHP өргөтгөлийг суулгах явцад, энэ порт танд цэсээс тогтсон интерфэйсийг санал болгоно. Өөрөөр, өргөтгөлүүдийг нэг нэгээр нь харгалзах портуудаас суулгаж болно. Жишээлбэл, PHP5-д MySQL өгөгдлийн сангийн серверийн дэмжлэгийг нэмэхийн тулд, databases/php5-mysql портыг суулгахад хангалттай. Ямар нэг өргөтгөл суулгасны дараа, тохиргооны өөрчлөлтийг хүчин төгөлдөр болгохын тулд Apache серверийг дахин ачаалах шаардлагатайг анхаарна уу: &prompt.root; apachectl graceful Мюррей Стөүкли Хувь нэмрээ оруулсан Файл Дамжуулах Протокол (FTP) FTP серверүүд Удиртгал File Transfer Protocol буюу Файл Дамжуулах Протокол (FTP) нь хэрэглэгчдэд FTP серверээс файлыг авах болон тавих хялбар замыг бий болгодог. &os; үндсэн систем дотроо FTP сервер програм ftpd-г агуулж байдаг. Энэ нь FreeBSD дээр FTP серверийг босгох, удирдах ажлыг төвөггүй болгодог. Тохиргоо Тохиргоо хийхийн өмнөх хамгийн чухал алхам бол ямар дансууд FTP серверт хандах эрхтэй байх вэ гэдгийг шийдэх байдаг. Ердийн FreeBSD систем нь янз бүрийн дэмонуудад хэрэглэгддэг олон тооны системийн дансуудтай байдаг ба гадны хэрэглэгчид эдгээр дансыг ашиглан нэвтрэх ёсгүй. /etc/ftpusers файл дотор FTP хандалт зөвшөөрөгдөөгүй хэрэглэгчдийн жагсаалтыг хадгална. Анхдагч байдлаар, дээр дурдсан системийн дансууд энэ файлд байна. FTP хандалтыг зөвшөөрөх ёсгүй өөр хэрэглэгчдийг ч мөн энэ файлд нэмж болно. Зарим хэрэглэгчдийн FTP хэрэглэхийг нь бүр болиулчихалгүйгээр, зөвхөн зарим нэг эрхийг нь хязгаарлаж бас болно. Үүнийг /etc/ftpchroot файлын тусламжтай гүйцэтгэж болно. Энэ файл дотор FTP хандалтыг нь хязгаарлах хэрэглэгчид болон бүлгүүдийн жагсаалт байна. &man.ftpchroot.5; заавар хуудсанд бүх мэдээлэл байгаа тул энд дурдсангүй. FTP нийтийн Хэрэв сервертээ нийтийн FTP хандалтыг зөвшөөрөх хүсэлтэй байгаа бол, &os; систем дээрээ ftp нэртэй хэрэглэгч нэмэх хэрэгтэй. Ингэснээр хэрэглэгчид таны FTP сервер рүү ftp эсвэл anonymous гэсэн нэрээр ямар ч нэвтрэх үг шаардагдахгүйгээр (тогтсон заншил ёсоор хэрэглэгч цахим шуудангийн хаягаа нэвтрэх үгийн оронд хэрэглэх шаардлагатай) нэвтрэн орох болно. Нийтийн хэрэглэгч системд орж ирэхэд FTP сервер түүний эрхийг зөвхөн ftp хэрэглэгчийн гэрийн сан дотор хязгаарлахын тулд &man.chroot.2;-г дуудна. FTP харилцагчдад зориулсан мэндчилгээний үгнүүдийг агуулсан хоёр текст файл байдаг. /etc/ftpwelcome файл дотор байгааг нэвтрэлт хүлээх мөр гарахаас өмнө хэрэглэгчдэд дэлгэцэн дээр хэвлэнэ. Амжилттай нэвтэрч орсны дараа /etc/ftpmotd файл дотор байгааг дэлгэцэн дээр хэвлэнэ. Энэ файлын зам нь нэвтэрч орсон орчинтой харьцангуйгаар авсан зам гэдгийг анхаарна уу, тиймээс нийтийн хэрэглэгчдийн хувьд ~ftp/etc/ftpmotd файлыг хэвлэх болно. FTP серверийн тохиргоог зохих ёсоор хийсний дараа, /etc/inetd.conf файл дотор идэвхжүүлэх хэрэгтэй. Үүний тулд, ftpd гэсэн мөрний өмнөх # тэмдэгтийг арилгахад хангалттай: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l хэсэгт тайлбарласан ёсоор энэ тохиргооны файлд өөрчлөлт оруулсны дараа inetd-г дахин ачаалах шаардлагатай. Одоо та дараах тушаалыг өгөн FTP сервер рүү нэвтрэн орж болно: &prompt.user; ftp localhost Арчилгаа syslog бүртгэлийн файлууд FTP ftpd дэмон бүртгэл хөтлөхдөө &man.syslog.3;-г ашигладаг. Анхдагч байдлаар, системийн бүртгэлийн дэмон FTP-тэй холбоотой зурвасуудыг /var/log/xferlog файлд бичнэ. FTP бүртгэлийн файлын байршлыг өөрчлөхийн тулд /etc/syslog.conf файл дотор, дараах мөрийг засах хэрэгтэй: ftp.info /var/log/xferlog FTP нийтийн Нийтийн FTP сервер ажиллуулахад тохиолдох болзошгүй асуудлуудын талаар мэдлэгтэй байгаарай. Ялангуяа, нийтийн хэрэглэгчдэд файл байршуулахыг зөвшөөрөх тухайд сайн бодох хэрэгтэй. Таны FTP сайт лицензгүй програм хангамжуудыг наймаалцдаг талбар болох, эсвэл түүнээс ч муу зүйл тохиолдохыг үгүйсгэхгүй. Хэрэв нийтийн FTP байршуулалтыг зөвшөөрөх шаардлагатай бол, файлуудыг нягталж үзэхээс нааш бусад нийтийн хэрэглэгчид тэдгээр файлыг унших эрхгүй байхаар тохируулж өгөх хэрэгтэй. Мюррей Стөүкли Хувь нэмрээ оруулсан Лодойсамбын Баянзул Орчуулсан µsoft.windows; харилцагчдад зориулсан Файл болон Хэвлэх Үйлчилгээ (Samba) Samba сервер Microsoft Windows файл сервер Windows харилцагчид хэвлэх сервер Windows харилцагчид Ерөнхий Агуулга Samba бол µsoft.windows; харилцагчдад файл болон хэвлэх үйлчилгээг үзүүлдэг, өргөн хэрэглэгддэг нээлттэй эхийн програм хангамжийн багц юм. Ийм төрлийн харилцагчид FreeBSD файлын орчинд холбогдож, файлуудыг өөрийн дискэн дээр байгаа юм шиг, эсвэл FreeBSD хэвлэгчийг өөрийн дотоод хэвлэгч шиг хэрэглэх боломжтой болдог. Samba програм хангамжийн багцууд таны FreeBSD суулгах дискэнд орсон байгаа. Хэрэв та анх FreeBSD суулгахдаа Samba-г хамт суулгаагүй бол, net/samba3 порт эсвэл багцаас суулгаж болно. Тохиргоо Samba-н анхдагч тохиргооны файл /usr/local/share/examples/samba/smb.conf.default гэж суугдсан байдаг. Энэ файлыг /usr/local/etc/smb.conf нэртэй хуулаад, Samba-г ашиглаж эхлэхээсээ өмнө өөртөө тааруулан засварлах ёстой. smb.conf файл нь &windows; харилцагчтай хуваалцах хүсэлтэй файл системийн хэсэг ба хэвлэгчийн тодорхойлолт гэх зэрэг Samba-н ажиллах үеийн тохиргооны мэдээллийг агуулж байдаг. Samba багц дотор smb.conf файл дээр ажиллах хялбар арга замыг хангасан swat нэртэй вэб дээр суурилсан хэрэгсэл хамт ирдэг. Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT) Samba Web Administration Tool буюу Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT) нь inetd-н дэмон хэлбэрээр ажиллана. Тиймээс, Sambaswat ашиглан тохируулахын өмнө /etc/inetd.conf доторх дараах мөрийг ил гаргах шаардлагатай: swat stream tcp nowait/400 root /usr/local/sbin/swat swat хэсэгт тайлбарласан ёсоор, энэ тохиргооны файлд өөрчлөлт оруулсны дараа inetd-ийн тохиргоог дахин ачаалах шаардлагатай. swatinetd.conf дотор идэвхжүүлсний дараа, вэб хөтөч ашиглан хаяганд холбогдоно. Та эхлээд системийн root дансаар нэвтэрч орох ёстой. Samba-н тохиргооны үндсэн хуудсанд амжилттай нэвтэрч орсон бол, системийн баримтуудаар аялах, эсвэл Globals цэсэн дээр дарж тохиргоог хийх боломжтой болно. Globals хэсэг /usr/local/etc/smb.conf файлын [global] хэсэгт байгаа хувьсагчдад харгалзана. Глобал тохиргоо swat-г хэрэглэж байгаа эсвэл /usr/local/etc/smb.conf-г гараараа засаж байгаа аль нь ч бай, Samba-г тохируулах явцад тааралдах хамгийн эхний директивууд бол: workgroup Энэ нь сервер рүү хандах компьютеруудын NT Домэйн-Нэр эсвэл Ажлын бүлгийн-Нэр. netbios name NetBIOS Энэ директив Samba серверийн NetBIOS нэрийг заана. Анхдагч байдлаар, хостын DNS нэрийн эхний хэсэгтэй адил байна. серверийн мөр Энэ директив net view тушаалын хариуд гарч ирэх эсвэл зарим сүлжээний хэрэгслүүд дээр энэ серверийг төлөөлж гарах мөрийг заана. Аюулгүй байдлын Тохиргоо /usr/local/etc/smb.conf доторх хамгийн чухал хоёр тохиргоо бол аюулгүй байдлын загвар, болон харилцагчдын нэвтрэх үгийн арын шугамны хэлбэр юм. Дараах директивүүд эдгээр тохируулгуудыг хянана: security Энд хамгийн элбэг хэрэглэгддэг хоёр сонголт бол security = share ба security = user юм. Хэрэв танай харилцагч нар &os; машин дээр хэрэглэдэг хэрэглэгчийн нэртэй ижил нэрийг ашигладаг бол, user түвшний аюулгүй байдлыг сонгохыг хүсэж байж магадгүй. Энэ бол аюулгүй байдлын анхдагч бодлого бөгөөд эх үүсвэрт хандахаас өмнө харилцагчийг системд нэвтэрч орохыг шаардана. share түвшний аюулгүй байдалд, харилцагчид эх үүсвэрт хандахаас өмнө хүчин төгөлдөр хэрэглэгчийн нэр болон нэвтрэх үгээр сервер рүү нэвтрэн орох шаардлагагүй байдаг. Энэ бол Samba-н хуучин хувилбаруудын хувьд аюулгүй байдлын анхдагч загвар байсан. passdb backend NIS+ LDAP SQL өгөгдлийн сан Samba-д хэд хэдэн төрлийн арын шугамны магадлах загварууд байдаг. Харилцагчдыг LDAP, NIS+, SQL өгөгдлийн сан, эсвэл хувиргасан нэвтрэх үгийн файлаар магадлаж болно. Анхдагч магадлах арга бол smbpasswd бөгөөд бид зөвхөн энэ талаар авч үзэх болно. Анхдагч smbpasswd арын шугамыг хэрэглэж байгаа гэж үзвэл, Samba харилцагчдыг магадлахын тулд /usr/local/private/smbpasswd файлыг эхлээд үүсгэх ёстой. Хэрэв &unix; хэрэглэгчийн эрхээр &windows; харилцагчаас ханддаг байх шаардлагатай бол, дараах тушаалыг хэрэглэнэ: &prompt.root; smbpasswd -a username Тохируулгуудын талаар нэмэлт мэдээллийг Албан ёсны Samba HOWTO-с олж авна уу. Энд цухас дурдсан үндсэн мэдлэгтэйгээр Samba-г ажиллуулж эхлэх чадвартай байх ёстой. <application>Samba</application>-г Эхлүүлэх нь net/samba3 портод Samba-г удирдахад зориулсан шинэ эхлэл скрипт орсон байгаа. Энэ скриптийг идэвхжүүлэхийн тулд, өөрөөр хэлбэл энэ скриптийг ашиглан Samba-г эхлүүлэх, зогсоох болон дахин эхлүүлдэг болохын тулд, /etc/rc.conf файл дотор дараах мөрийг нэмж бичих хэрэгтэй: samba_enable="YES" Эсвэл илүү нарийнаар доор дурдсан шиг тохируулж болно: nmbd_enable="YES" smbd_enable="YES" Ингэснээр мөн Samba-г систем ачаалах үед автоматаар эхлүүлдэг болгоно. Үүний дараа хүссэн үедээ Samba-г эхлүүлэхийн тулд дараах тушаалыг өгөхөд хангалттай: &prompt.root; /usr/local/etc/rc.d/samba start Starting SAMBA: removing stale tdbs : Starting nmbd. Starting smbd. rc скриптийг ашиглах талаар дэлгэрэнгүй мэдээллийг хэсгээс авна уу. Samba нь үнэн хэрэгтээ гурван тусдаа дэмоноос тогтоно. nmbd ба smbd дэмонууд samba скриптээр эхлүүлдэг болохыг та анзаарах болно. Хэрэв smb.conf дотор winbind нэр тайлах үйлчилгээг идэвхжүүлсэн бол winbindd дэмон бас ажиллаж эхэлсэн болохыг харж болно. Samba-г хүссэн үедээ зогсоохын тулд дараах тушаалыг өгөхөд хангалттай: &prompt.root; /usr/local/etc/rc.d/samba stop Samba бол µsoft.windows; сүлжээтэй өргөн хүрээнд нэгдмэл ажиллах боломжийг олгодог нарийн төвөгтэй програмын цогц юм. Энд тайлбарласан үндсэн суулгацаас хальсан функцуудын талаар дэлгэрэнгүй мэдээллийг хаягаар орж авна уу. Том Хөүкинс Хувь нэмрээ оруулсан Лодойсамбын Баянзул Орчуулсан NTP-р Цаг Тааруулах нь NTP Ерөнхий Агуулга Цаг хугацаа өнгөрөхөд компьютерийн цаг зөрөх хандлагатай байдаг. Network Time Protocol буюу Сүлжээний Цагийн Протоколыг(NTP) цагийг зөв байлгах, зөв ажиллуулахад хэрэглэдэг. Олон тооны Интернэт үйлчилгээнүүд компьютерийн цагаас хамаарч, эсвэл хүртэж ажилладаг. Жишээлбэл, вэб сервер тодорхой цагаас хойш өөрчлөлт орсон файлуудыг илгээх хүсэлт хүлээн авсан байж болох юм. Дотоод сүлжээний орчинд, нэг файл серверээр үйлчлүүлж байгаа компьютеруудын хувьд файлын цагийн тамга дүйж байхын тулд тэдгээрийн цагууд хоорондоо тохирч байх ёстой. &man.cron.8; зэрэг үйлчилгээнүүд тодорхой цагт тушаалыг гүйцэтгэхийн тулд системийн цагт бүрэн найдаж ажилладаг. NTP ntpd FreeBSD &man.ntpd.8; NTP серверийн хамт ирдэг. &man.ntpd.8; NTP нь таны машины цагийг тааруулахын тулд бусад NTP серверүүдээс асуух эсвэл бусдад цагийн мэдээллийг түгээх үйлчилгээг үзүүлдэг. Зохимжтой NTP Серверийг Сонгох нь NTP серверийг сонгох нь Цагаа тааруулахын тулд, та нэг болон түүнээс дээш тооны NTP серверийг хэрэглэх хэрэгтэй болно. Танай сүлжээний администратор эсвэл ISP үүнд зориулсан NTP сервертэй байж болох юм—тийм эсэхийг тэдний заавраас шалгана уу. нийтэд зориулсан NTP серверүүдийн онлайн жагсаалтыг ашиглан өөртөө ойрхон байгаа NTP серверийг олно уу. Сонгож авсан серверийнхээ ашиглах журмыг судлаарай. Мөн хэрэв шаардлагатай бол зөвшөөрөл аваарай. Таны сонгосон сервер холбогдох боломжгүй, эсвэл цаг нь бүрэн итгэж болохооргүй үе гарах тул, хоорондоо хамааралгүй хэд хэдэн NTP серверүүдийг сонгох нь хамгийн зөв сонголт болдог. &man.ntpd.8; бусад серверээс хүлээн авсан хариултуудыг маш ухаалгаар хэрэглэдэг—итгэж болох серверүүдийг илүү авч үздэг. Өөрийн Машиныг Тохируулах нь NTP тохиргоо Үндсэн Тохиргоо ntpdate Хэрэв та машин асахад цагаа тааруулах хүсэлтэй байгаа бол, &man.ntpdate.8;-г ашиглаж болно. Энэ нь олон дахин тааруулах шаардлагагүй, ойр ойрхон асааж унтраадаг ширээний компьютерийн хувьд зохимжтой байж болох юм. Гэхдээ ихэнх машины хувьд &man.ntpd.8;-г ажиллуулах нь зүйтэй. Систем ачаалах үед &man.ntpdate.8;-г ашиглах нь &man.ntpd.8; ажиллаж байгаа машинуудын хувьд зөв санаа юм. Учир нь &man.ntpd.8; програм нь цагийг алгуур өөрчилдөг байхад, &man.ntpdate.8; машины одоогийн цаг болон зөв цагын хооронд хир их ялгаа байгааг үл хайхран цагийг тааруулдаг. &man.ntpdate.8;-г систем ачаалах үед идэвхжүүлэхийн тулд, ntpdate_enable="YES" гэсэн мөрийг /etc/rc.conf файлд нэмэх хэрэгтэй. Мөн цаг авах гэж байгаа бүх серверүүд болон &man.ntpdate.8;-д өгөх тугуудыг ntpdate_flags-д зааж өгөх хэрэгтэй. NTP ntp.conf Ерөнхий Тохиргоо NTP-г /etc/ntp.conf файлын тусламжтай, &man.ntp.conf.5;-д заасан хэлбэрээр тохируулна. Доор хялбар жишээг үзүүлэв: server ntplocal.example.com prefer server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift server тохируулгаар ямар серверүүдийг ашиглахыг заана. Нэг мөрөнд нэг серверийг бичнэ. Хэрэв аль нэг серверийг prefer гэсэн аргументаар онцолсон бол, ntplocal.example.com шиг, тэр серверийг бусдаас илүүд үзнэ. Илүүд үзсэн серверээс ирсэн хариу бусад серверүүдийн хариунаас мэдэгдэхүйцээр зөрж байгаа үед хариуг тоохгүй өнгөрөөнө. Түүнээс бусад тохиолдолд бусад серверийн хариуг үл харгалзан тэр серверийн хариуг хэрэглэх болно. prefer аргументийг ер нь өндөр нарийвчлалтай, тусгай цаг хянадаг тоног төхөөрөмж дээр тулгуурласан NTP серверийн хувьд хэрэглэнэ. driftfile тохируулгаар ямар файлд системийн цагийн алдах зөрүү утгыг хадгалж байгааг заана. &man.ntpd.8; програм энэ утгыг ашиглан цагийн алдсан зөрүүг автоматаар нөхнө. Ингэснээр цагийн бүх гадаад эх үүсвэрүүдтэй холбоо тогтоох боломжгүй болсон үед, хэсэг хугацааны туршид ч гэсэн цагийг харьцангуй зөв ажиллуулах боломжийг олгоно. driftfile тохируулгаар ямар файлд таны зааж өгсөн NTP серверүүдийн өмнөх хариунуудын тухай мэдээллийг хадгалж байгааг заана. Энэ файлд NTP-н дотоод үйл ажиллагааны мэдээллийг хадгалдаг. Энэ мэдээллийг өөр ямар ч процесс өөрчлөх ёсгүй. Өөрийн Сервер рүү Хандах Хандалтыг Хянах нь Анхдагч байдлаар, таны NTP сервер рүү Интернэтэд байгаа бүх хост хандах боломжтой. /etc/ntp.conf файл дотор restrict тохируулгаар ямар машинууд таны сервер рүү хандаж болохыг хянаж болно. Хэрэв та өөрийн NTP сервер рүү хэнийг ч хандуулахыг хүсэхгүй байгаа бол /etc/ntp.conf файл дотор дараах мөрийг нэмэх хэрэгтэй: restrict default ignore Энэ нь таны серверээс өөрийн чинь локал тохиргоонд жагсаагдсан аль ч сервер үрүү хандах боломжийг бас хаана. Хэрэв та өөрийн NTP серверийг гадаад NTP сервертэй синхрончлох хэрэгтэй бол ямар нэг серверийг зөвшөөрөх ёстой. Дэлгэрэнгүй мэдээллийг &man.ntp.conf.5; гарын авлагаас үзнэ үү. Хэрэв та зөвхөн өөрийн сүлжээнд байгаа машинуудыг таны сервертэй цагаа тааруулахыг зөвшөөрөөд, гэхдээ таны серверийн тохиргоог өөрчлөх болон тэгш эрхтэй серверүүд шиг цагийн мэдээллийг хуваахыг зөвшөөрөхгүй бол дээр дурдсаны оронд: restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap гэсэн мөрийг бичнэ үү. Энд 192.168.1.0 нь таны сүлжээний IP хаяг, 255.255.255.0 нь таны сүлжээний баг болно. /etc/ntp.conf дотор олон тооны restrict тохируулгууд байж болно. Илүү дэлгэрэнгүй мэдээллийг &man.ntp.conf.5;-н Хандалтыг Удирдах Дэмжлэг дэд хэсгээс үзнэ үү. NTP Серверийг Ажиллуулах нь NTP серверийг систем ачаалах үед эхлүүлэхийн тулд, ntpd_enable="YES" гэсэн мөрийг /etc/rc.conf файлд нэмж бичих хэрэгтэй. Хэрэв &man.ntpd.8;-д нэмэлт тугуудыг өгөх хүсэлтэй бол, /etc/rc.conf файлд байгаа ntpd_flags параметрийг засах хэрэгтэй. Машиныг дахин ачаалалгүйгээр серверийг эхлүүлэхийн тулд, ntpd тушаалыг /etc/rc.conf-д заасан ntpd_flags нэмэлт параметрүүдийн хамтаар өгөх хэрэгтэй. Жишээлбэл: &prompt.root; ntpd -p /var/run/ntpd.pid ntpd-г Түр зуурын Интернэт Холболттой үед Хэрэглэх нь &man.ntpd.8; програм зөв ажиллахын тулд байнгын Интернэт холболт шаардлагагүй. Гэхдээ, хэрэгцээтэй үедээ гадагшаа залгадаг тийм төрлийн түр зуурын холболттой бол, NTP трафикийг гадагшаа залгах болон холболтыг бариад байхаас сэргийлэх нь чухал. Хэрэв та PPP хэрэглэдэг бол, /etc/ppp/ppp.conf файл дотор байгаа filter директивийг ашиглаж болно. Жишээ нь: set filter dial 0 deny udp src eq 123 # Prevent NTP traffic from initiating dial out set filter dial 1 permit 0 0 set filter alive 0 deny udp src eq 123 # Prevent incoming NTP traffic from keeping the connection open set filter alive 1 deny udp dst eq 123 # Prevent outgoing NTP traffic from keeping the connection open set filter alive 2 permit 0/0 0/0 Дэлгэрэнгүй мэдээллийг &man.ppp.8;-н PACKET FILTERING хэсгээс болон /usr/share/examples/ppp/-д байгаа жишээнүүдээс авч болно. Зарим Интернэт үйлчилгээ үзүүлэгчид бага дугаартай портуудыг хаасан байдаг бөгөөд ингэснээр хариу нь таны машинд хэзээ ч хүрэхгүй болж NTP ажиллахгүй болдог. Цааших Мэдээлэл NTP серверийн баримтжуулалтыг HTML хэлбэрээр /usr/share/doc/ntp/-с олж үзэж болно. diff --git a/mn_MN.UTF-8/books/handbook/printing/chapter.sgml b/mn_MN.UTF-8/books/handbook/printing/chapter.sgml index 1f3e04dd33..0db5c8a496 100644 --- a/mn_MN.UTF-8/books/handbook/printing/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/printing/chapter.sgml @@ -1,4934 +1,4934 @@ Шон Келли Хувь нэмэр болгон оруулсан Жим Мок Дахин бүтцийг өөрчилж шинэчилсэн Цагаанхүүгийн Ганболд Орчуулсан Шагдарын Нацагдорж Хэвлэлт Ерөнхий агуулга LPD түр хадгалах систем хэвлэлт FreeBSD дээр хамгийн хуучин цохидог хэвлэгчдээс авахуулаад хамгийн сүүлийн хэвлэгчид хүртэл, мөн тэдгээрийн хооронд байгаа хэвлэгчид зэрэг төрөл бүрийн хэвлэгчдийг хэвлэхэд ашиглаж болдог бөгөөд энэ нь таны ажиллаж байгаа програмуудаас өндөр чанарын хэвлэсэн гаралтыг бүтээх боломж олгох юм. FreeBSD-г бас сүлжээн дэх хэвлэх сервер болгон тохируулж бас болдог; энэ боломжид FreeBSD нь бусад FreeBSD компьютерууд, &windows; болон &macos; хостууд зэрэг төрөл бүрийн бусад компьютеруудаас хэвлэх ажлуудыг хүлээн авдаг. FreeBSD нь зөвхөн нэг ажлыг тухайн үед хэвлэхийг баталгаажуулж ихэнх хэвлэлтийг аль хэрэглэгчид болон машинууд хийж байгаа талаар статистикууд цуглуулж хэний хэвлэсэн зүйл хэнийх болохыг үзүүлэх сурталчилгаа хуудаснуудыг бүтээх зэрэг олон үйлдлийг хийж чаддаг. Энэ бүлгийг уншиж дууссаны дараа та дараах зүйлсийг мэдэх болно: FreeBSD-ийн хэвлэгчийн түр хадгалагчийг хэрхэн тохируулах талаар. Ирж байгаа баримтуудыг таны хэвлэгчид ойлгодог хэвлэх хэлбэршилтэд оруулж хөрвүүлэх зэрэг тусгай хэвлэх ажлуудыг өөрөөр зохицуулдаг хэвлэх шүүлтүүрүүдийг хэрхэн суулгах талаар. Толгой эсвэл сурталчилгаа хуудаснуудыг өөрийн хэвлэх зүйл дээрээ хэрхэн идэвхжүүлэх талаар. Бусад компьютерууд уруу холбогдсон хэвлэгчдээр хэрхэн хэвлэх талаар. Сүлжээнд шууд холбогдсон хэвлэгчдээр хэрхэн хэвлэх талаар. Хэвлэх ажлуудын хэмжээг хязгаарлах болон зарим хэрэглэгчдийг хэвлэхийг болиулах зэрэг хэвлэгчийн хязгаарлалтуудыг хэрхэн хянах талаар. Хэвлэгчийн статистикууд болон хэвлэгчийн хэрэглээнд зориулсан бүртгэлийг хэрхэн хадгалж байх талаар. Хэвлэх асуудлуудыг хэрхэн олж засварлах талаар. Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай: Шинэ цөмийг хэрхэн тохируулж суулгах талаар мэдэх (). Танилцуулга FreeBSD дээр хэвлэгчдийг ашиглахын тулд та тэдгээрийг LPD түр хадгалах систем буюу ердөө л LPD гэж бас нэрлэгддэг Берклигийн шугаман хэвлэгчийн түр хадгалах системтэй ажиллахаар болгож тохируулж болох юм. Энэ нь FreeBSD дээрх стандарт хэвлэгч хянагч систем юм. Энэ бүлэг нь LPD-г танилцуулж түүний тохиргоог тайлбарлах болно. Хэрэв та LPD юм уу эсвэл бусад хэвлэгчийн түр хадгалах системийг мэддэг бол Үндсэн тохируулга хэсэг уруу шууд орохыг хүсэж болох юм. LPD нь хостын хэвлэгчдийн талаар бүгдийг хянадаг. Энэ нь хэд хэдэн зүйлсийг хариуцдаг: Залгагдсан хэвлэгчид болон сүлжээн дэх өөр хостуудад залгагдсан хэвлэгчдэд хандах хандалтыг хянадаг. хэвлэх ажлууд Файлууд хэвлэхээр өгөх боломжийг хэрэглэгчдэд зөвшөөрдөг; эдгээр өгөлтүүд нь jobs буюу ажлууд гэгддэг. Хэвлэгч болгоны хувьд queue буюу дарааллыг зохицуулж олон хэрэглэгчид нэгэн зэрэг хэвлэгчид хандах хандалтаас сэргийлдэг. Хэрэглэгчид хэвлэсэн тоо томшгүй олон юмнаас өөрсдийн хэвлэсэн ажлуудыг хялбархан олдог байхын тулд энэ нь толгой хуудаснуудыг (бас сурталчилгаа эсвэл тэсрэлт хуудсууд гэгддэг) хэвлэдэг. Цуваа портууд дээр холбогдсон хэвлэгчдийн холбооны параметрүүдэд анхаарлаа хандуулдаг. Өөр хост дээр байгаа LPD түр хадгалагч уруу сүлжээгээр ажлууд илгээж чаддаг. Төрөл бүрийн хэвлэгчийн хэлнүүд эсвэл хэвлэгчийн боломжуудад зориулж хэвлэх ажлуудыг хэлбэршүүлэх тусгай шүүлтүүрүүдийг ажиллуулж чаддаг. Хэвлэгчийн хэрэглээг бүртгэж чаддаг. Тохиргооны файл (/etc/printcap) болон тусгай шүүлтүүр програмууд ашиглан олон төрлийн хэвлэгч тоног төхөөрөмжүүдийн хувьд дээр дурдсануудын заримууд болон бүгдийг хийдэг байхаар LPD системийг та идэвхжүүлж чадна. Яагаад заавал түр хадгалагчийг ашиглах ёстой гэж Та системийнхээ цорын ганц хэрэглэгч бол хандалтын хяналт, толгой хуудаснууд эсвэл хэвлэгчийн бүртгэл танд хэрэгггүй байхад яагаад заавал түр хадгалагчийн талаар санаа зовох ёстой гэж та гайхаж байж болох юм. Хэвлэгч уруу шууд хандалтыг идэвхжүүлэх боломжтой байдаг боловч та түр хадгалагчийг ямар ч байсан ашиглах ёстой, учир нь: LPD нь ажлуудыг ард хэвлэдэг; та өгөгдлийг хэвлэгч уруу хуулагдахыг хүлээх хэрэггүй юм. &tex; LPD нь огноо/цаг бүхий толгой нэмэх эсвэл тусгай файлын хэлбэршилтээс (&tex; DVI файл зэрэг) хэвлэгчийн ойлгох хэлбэршилт уруу хөрвүүлдэг шүүлтүүрүүдээр дамжуулан хэвлэгдэх ажлыг тохиромжтойгоор ажиллуулдаг. Та гараараа эдгээр алхмуудыг хийх шаардлагагүй юм. Хэвлэх боломж бүхий чөлөөтэй, арилжааны олон програмууд нь таны систем дээрх түр хадгалагчтай ярилцахыг ихэвчлэн хүлээж байдаг. Түр хадгалагч системийг тохируулснаар танд байгаа болон таны сүүлд суулгаж болох бусад програм хангамжуудыг илүү амархнаар та дэмжих болно. Үндсэн тохируулга LPD түр хадгалах системтэй хэвлэгчдийг ашиглахын тулд өөрийн хэвлэгчийн тоног төхөөрөмж болон LPD програм хангамжийг тохируулах хэрэгтэй болно. Энэ баримт нь тохиргооны хоёр түвшинг тайлбарладаг: Хэвлэгчийг хэрхэн холбохыг сурахын тулд Хэвлэгчийн хялбар тохиргоо хэсгийг үзэж LPD-д хэрхэн түүнтэй холбоо тогтоохыг хэлж хэвлэгч уруу цэвэр текст файлуудыг хэвлэх. Төрөл бүрийн тусгай файлын хэлбэршилтүүдийг хэрхэн хэвлэх, толгой хуудаснуудыг хэрхэн хэвлэх, сүлжээгээр хэрхэн хэвлэх, хэвлэгчдэд хандах хандалтыг хэрхэн хянах болон хэрхэн хэвлэгчийн бүртгэлийг хийхийг сурахын тулд Хэвлэгчийн илүү нарийн тохиргоо хэсгийг үзэх. Хэвлэгчийн хялбар тохиргоо Энэ хэсэг нь хэвлэгчийг ашиглахын тулд хэвлэгчийн тоног төхөөрөмж болон LPD програм хангамжийг хэрхэн тохируулахыг хэлж өгнө. Энэ нь үндсэн ойлголтуудад сургана: Тоног төхөөрөмжийн тохиргоо хэсэг нь хэвлэгчийг таны компьютер дээрх порт уруу холбох зарим заавруудыг өгдөг. Програм хангамжийн тохиргоо хэсэг нь LPD түр хадгалагчийн тохиргооны файлыг (/etc/printcap) хэрхэн тохируулахыг үзүүлдэг. Хэвлэх өгөгдлийг хүлээн авахдаа компьютерийн локал интерфэйсүүдийг биш сүлжээний протоколыг ашигладаг хэвлэгчийг та тохируулж байгаа бол Сүлжээнд холбогдсон өгөгдлийн урсгалын интерфэйсүүдтэй хэвлэгчид хэсгийг үзнэ үү. Энэ хэсэг нь Хэвлэгчийн хялбар тохиргоо гэгддэг боловч яг үнэндээ нэлээн төвөгтэй юм. Хэвлэгчийг өөрийн компьютер болон LPD түр хадгалагчтай цуг ажиллуулна гэдэг хамгийн хэцүү хэсэг юм. Толгой хуудаснууд болон бүртгэл хийх зэрэг дэвшилтэт тохируулгууд нь хэвлэгчийг ажиллуулсны дараа нэлээн амархан байдаг. Тоног төхөөрөмжийн тохиргоо Энэ хэсэг нь өөрийн PC-тэй хэвлэгч холбох төрөл бүрийн аргуудын талаар хэлдэг. Энэ нь портууд ба кабелиудын талаар болон FreeBSD-г хэвлэгчтэй харилцдаг болгохын тулд танд хэрэг болох цөмийн тохиргооны талаар бас өгүүлнэ. Хэрэв та өөрийн хэвлэгчийг аль хэдийн холбосон бөгөөд өөр үйлдлийн систем дээр түүгээр амжилттай хэвлэсэн бол Програм хангамжийн тохиргоо хэсэг уруу алгасаж болох юм. Портууд ба кабелиуд PC дээр ашиглагдах зориулалттай худалдаалж байгаа хэвлэгчид нь ерөнхийдөө доорх гурван интерфэйсийн аль нэг юм уу эсвэл олон интерфэйстэй ирдэг: хэвлэгчид цуваа Цуваа интерфэйсүүд буюу бас RS-232 эсвэл COM портууд гэгддэг интерфэйсүүд нь өгөгдлийг хэвлэгч уруу илгээхдээ таны компьютер дээрх цуваа портыг ашигладаг. Цуваа интерфэйсүүд нь компьютерийн аж үйлдвэрлэлд түгээмэл байдаг бөгөөд кабелиуд нь бэлэн байж байдгаас гадна хийхэд хялбар байдаг. Цуваа интерфэйсүүд нь заримдаа тусгай кабелиудыг шаарддаг бөгөөд танаас төвөгтэй холбооны сонголтуудыг тохируулахыг шаардаж болох юм. Ихэнх PC-ний цуваа портууд нь хамгийн их дамжуулах хурдны хувьд 115200 bps хурдтай байдаг бөгөөд их том график хэвлэх ажлыг үүгээр хийх нь практикийн хувьд төвөгтэй болгодог. хэвлэгчид зэрэгцээ Зэрэгцээ интерфэйсүүд нь өгөгдлийг хэвлэгч уруу илгээхдээ таны компьютерийн зэрэгцээ портыг ашигладаг. Зэрэгцээ интерфэйсүүд нь PC-ийн зах зээлд нийтлэг байдаг бөгөөд RS-232 цуваагаас илүү хурдан байдаг. Кабелиуд нь байдаг боловч гараар хийхэд илүү төвөгтэй байдаг. Зэрэгцээ интерфэйсүүдэд холбооны сонголтууд ихэвчлэн байдаггүй болохоор тэдгээрийн тохиргоог маш хялбар болгодог. centronics зэрэгцээ хэвлэгчид Зэрэгцээ интерфэйсүүд нь хэвлэгчийн холбогчийн төрлийн нэрээр нэрлэгдсэн Centronics интерфэйсүүд гэж заримдаа хэлэгддэг. хэвлэгчид USB Universal Serial Bus буюу Универсал Цуваа Шугам гэгддэг USB интерфэйсүүд нь зэрэгцээ болон RS-232 цуваа интерфэйсүүдээс бүр илүү хурдаар ажиллаж чаддаг. Кабелиуд нь хялбар бөгөөд хямд байдаг. USB нь RS-232 болон Зэрэгцээ интерфэйсүүдээс хэвлэхийн хувьд илүү хүчирхэг боловч &unix; системүүд дээр тийм ч сайн дэмжигдсэн байдаггүй. Энэ асуудлыг тойрон гарахын тулд олон хэвлэгчид байдаг USB болон Зэрэгцээ интерфэйсүүдтэй тийм хэвлэгч худалдан авах явдал юм. Ерөнхийдөө зэрэгцээ интерфэйсүүд нь зөвхөн нэг талын холбоог (компьютераас хэвлэгч уруу) санал болгодог бол цуваа болон USB нь хоёр талын холбоог өгдөг. Шинэ зэрэгцээ портууд (EPP болон ECP) болон хэвлэгчид нь IEEE-1284 нийцтэй кабель ашиглаж байгаа бол FreeBSD дээр хоёр тал уруу чиглэсэн холбоог хийж чаддаг. PostScript Зэрэгцээ портоор хэвлэгч уруу чиглэсэн хоёр талын холбоог ерөнхийдөө хоёр аргын аль нэгээр хийдэг. Эхний арга нь хэвлэгчийн ашигладаг хувийн хэлээр ярьдаг FreeBSD-ийн өөрчлөн бүтээсэн хэвлэгчийн драйверийг хэрэглэдэг. Энэ нь бэхэн хэвлэгчдэд нийтлэг байдаг бөгөөд бэхний түвшин болон бусад төлвийн мэдээллийг үзүүлэхэд хэрэглэгддэг. Хоёр дахь аргыг хэвлэгч &postscript;-г дэмждэг үед ашигладаг. &postscript; ажлууд нь жинхэнэдээ хэвлэгч уруу илгээсэн програмууд юм; тэдгээр нь цаас бүтээх ерөөсөө шаардлагагүй бөгөөд үр дүнгүүдийг компьютер уруу шууд буцааж болох юм. &postscript; нь &postscript; програм дахь алдаанууд, эсвэл цаас гацсан зэрэг асуудлуудыг компьютерт хэлэхийн тулд хоёр талын холбоог бас ашигладаг. Таны хэрэглэгчид тийм мэдээллийг аваад талархах байх. Бас &postscript; хэвлэгчийн хувьд үр ашигтай бүртгэл хийх хамгийн шилдэг арга нь хоёр талын холбоог шаарддаг: хэвлэгчээс хуудасны тоог (өөрийн амьдралын хугацаандаа нийт хичнээн хуудас хэвлэсэн талаар) та асууж дараа нь хэрэглэгчийн ажлыг илгээж тэгээд дахиад хуудасны тоог асуудаг. Хоёр утгын нэгээс нөгөөг хасаад хэрэглэгчээс хичнээн цаасны төлбөр авахыг та мэдэх болно. Зэрэгцээ портууд Хэвлэгчийг зэрэгцээ интерфэйс ашиглаад залгахын тулд Centronics кабелийг хэвлэгч болон компьютерийн хооронд холбоно. Хэвлэгч, компьютер эсвэл хоёулантай нь цуг ирсэн зааврууд танд бүрэн гүйцэд заавар өгөх ёстой. Компьютер дээрээ аль зэрэгцээ портыг ашигласнаа санах хэрэгтэй. Эхний зэрэгцээ порт нь FreeBSD-д ppc0 байх бөгөөд хоёр дахь ppc1 гэх мэтээр байна. Хэвлэгчийн төхөөрөмжийн нэр мөн адил схемийг ашигладаг: /dev/lpt0 нь эхний зэрэгцээ порт дээрх хэвлэгч гэх мэтээр байна. Цуваа портууд Цуваа интерфэйсүүдийг ашиглан хэвлэгчийг залгахдаа зөв цуваа кабелийг хэвлэгч болон компьютерийн хооронд холбоно. Хэвлэгч, компьютер эсвэл хоёулантай нь цуг ирсэн зааврууд танд бүрэн гүйцэд заавар өгөх ёстой. Хэрэв та зөв цуваа кабель нь юу вэ гэдэгт эргэлзэж байвал та дараах боломжуудаас аль нэгийг туршиж үзэхийг хүсэж болох юм: Модемийн кабель нь кабелийн нэг талд байгаа холбогчийн зүү бүрийг нөгөө талд байгаа холбогчийн харгалзах зүүнд шулуухан холбодог. Энэ төрлийн кабелийг DTE-ээс DCE кабель гэж бас нэрлэдэг. null-модем кабель null-модем кабель нь зарим зүүнүүдийг шууд шулуухнаар, заримуудыг нь хооронд нь солбидог (жишээ нь өгөгдлийг хүлээн авахын тулд өгөгдлийг илгээдэг) бөгөөд заримыг нь дотроо холбогч бүрийн таг дотор богино холбодог. Энэ төрлийн кабелийг DTE-ээс DTE кабель гэж бас нэрлэдэг. Зарим нэг ховор хэвлэгчдэд шаардагддаг цуваа хэвлэгчийн кабель нь null-модем кабельтай адил боловч дотроо богино холбохын оронд зарим дохионуудыг өөрсдийн эсрэг талдаа илгээдэг. baud хурд parity урсгал хянах протокол Та хэвлэгчийн хувьд холбооны параметрүүдийг бас тохируулах хэрэгтэй бөгөөд эдгээрийг хэвлэгч дээрх нүүрэн талын хяналтууд юм уу эсвэл DIP шилжүүлэгчдээр хийдэг. Таны компьютер болон хэвлэгч дэмждэг хамгийн их bps-ийг (bits per second буюу секундэд дамжих битийн тоо, заримдаа baud хурд) сонгох хэрэгтэй. 7 юм уу эсвэл 8 өгөгдлийн бит; байхгүй (none), тэгш (even), эсвэл сондгой (odd) parity; болон 1 эсвэл 2 стоп битийг сонгох хэрэгтэй. Бас урсгал хянах протоколыг сонгох хэрэгтэй: байхгүй (none) юм уу аль эсвэл XON/XOFF (бас in-band эсвэл software гэгддэг) урсгал хяналтыг сонгох хэрэгтэй. Дараах програм хангамжийн тохиргоонд зориулж эдгээр тохируулгуудыг санах хэрэгтэй. Програм хангамжийн тохиргоо Энэ хэсэг нь FreeBSD дээр LPD түр хадгалах системээр хэвлэхэд шаардлагатай програм хангамжийн тохируулгыг тайлбарладаг. Энд шаардлагатай алхмуудыг дурдав: Хэвлэгчийн хувьд ашиглаж байгаа портод зориулж шаардлагатай бол өөрийн цөмийг тохируулна; Таны юу хийх ёстойг Цөмийн тохиргоо хэсэг хэлж өгнө. Хэрэв та зэрэгцээ порт ашиглаж байгаа бол зэрэгцээ портынхоо хувьд холбооны горимыг тохируулах хэрэгтэй; Зэрэгцээ портын хувьд холбооны горимыг тохируулах нь хэсгээс дэлгэрэнгүйг үзээрэй. Үйлдлийн систем өгөгдлийг хэвлэгч уруу илгээж чадаж байгаа эсэхийг тест хийнэ. Үүнийг хэрхэн хийх тухай зарим нэгэн зөвлөгөөнүүдийг Хэвлэгчийн холбоонуудыг шалгах нь хэсэг өгдөг. /etc/printcap файлыг засаж хэвлэгчдээ зориулж тохируулна. Үүнийг хэрхэн хийх талаар сүүлд нь энэ бүлгээс олох болно. Цөмийн тохиргоо Үйлдлийн системийн цөм тусгайлсан хэдэн төхөөрөмжүүдтэй ажиллахаар эмхэтгэгдсэн байдаг. Таны хэвлэгчид зориулагдсан цуваа болон зэрэгцээ интерфэйс нь эдгээрийн нэг хэсэг юм. Тийм болохоор хэрэв таны цөм ингэж тохируулагдаагүй бол нэмэлт цуваа эсвэл зэрэгцээ портын дэмжлэгийг нэмэх хэрэгтэй байж болох юм. Таны ашиглаж байгаа цөм цуваа интерфэйсийг дэмжиж байгаа эсэхийг мэдэхийн тулд доор дурдсаныг бичнэ: &prompt.root; grep sioN /var/run/dmesg.boot Энд байгаа N нь тэгээс эхлэх цуваа портын дугаар юм. Хэрэв та доор дурдсантай төстэй гаралтыг харвал: sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A цөм нь портыг дэмждэг гэсэн үг юм. Цөм нь зэрэгцээ интерфэйсийг дэмждэг эсэхийг мэдэхийн тулд доор дурдсаныг бичнэ: &prompt.root; grep ppcN /var/run/dmesg.boot Энд байгаа N нь тэгээс эхлэх зэрэгцээ портын дугаар юм. Хэрэв та доор дурдсантай төстэй гаралтыг харвал: ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold цөм нь портыг дэмждэг гэсэн үг юм. Таны хэвлэгчдээ зориулан ашиглаж байгаа зэрэгцээ эсвэл цуваа портыг үйлдлийн систем таньж хэрэглэдэг байхын тулд та өөрийн цөмийг дахин тохируулах хэрэгтэй болж болох юм. Цуваа портод зориулж дэмжлэг нэмэхийн тулд цөмийн тохиргооны тухай хэсгийг үзнэ үү. Зэрэгцээ портод зориулж дэмжлэг нэмэхийн тулд тэр хэсгийг болон дараагийн хэсгийг үзнэ үү. Зэрэгцээ портын хувьд холбооны горимыг тохируулах нь Зэрэгцээ интерфэйсийг ашиглаж байхдаа FreeBSD нь хэвлэгчийн хувьд тасалдлаар зохицуулагдах юм уу эсвэл байнга шалгах холбооны алийг ашиглахыг та сонгож болно. FreeBSD дээрх ердийн хэвлэгчийн төхөөрөмжийн драйвер (&man.lpt.4;) нь портын бичил схемийг &man.ppc.4; драйвераар хянадаг &man.ppbus.4; системийг ашигладаг. interrupt-driven буюу тасалдлаар зохицуулагдах арга нь GENERIC цөмд анхдагч байдаг. Энэ арганд үйлдлийн систем нь хэвлэгч өгөгдөл хүлээн авахад хэзээ бэлэн байгааг тодорхойлохын тулд IRQ шугамыг ашигладаг. polled буюу байнга шалгах арга нь үйлдлийн системд хэвлэгчээс өгөгдөл хүлээн авахад бэлэн байгаа эсэхийг нь давталттайгаар асуухыг зааж өгдөг. Бэлэн гэж хариулбал цөм илүү өгөгдөл илгээдэг. Тасалдлаар зохицуулагдах арга нь ихэвчлэн хурдан байдаг боловч нандин IRQ шугамыг ихээр ашигладаг. Зарим шинэ HP хэвлэгчид нь зарим (яг тодорхой ойлгогдоогүй) хугацааны асуудлуудаас болоод тасалдлын горимд зөв ажилладаггүй гэгддэг. Эдгээр хэвлэгчдэд байнга шалгах горим хэрэгтэй. Аль ажиллаж байгааг нь л та ашиглах хэрэгтэй. Зарим хэвлэгчид нь аль алин дээр нь ажилладаг боловч тасалдлын горим асар удаан байдаг. Та холбооны горимыг хоёр аргаар тохируулж болно: цөмийг тохируулах замаар эсвэл &man.lptcontrol.8; програм ашиглан хийж болно. Цөмийг тохируулах замаар холбоог тохируулахдаа: Өөрийн цөмийн тохиргооны файлаа засварлана. ppc0 оруулгыг хайна. Хэрэв та хоёр дахь зэрэгцээ портыг тохируулж байгаа бол ppc1-г ашиглаарай. Гурав дахь портын хувьд ppc2 гэх мэтээр ашиглана. Хэрэв та тасалдлаар зохицуулагдах горимыг хүсэж байгаа бол дараах мөрийг: hint.ppc.0.irq="N" /boot/device.hints файлд засварлаж N-ий оронд зөв IRQ дугаарыг солих хэрэгтэй. Цөмийн тохиргооны файл &man.ppc.4; драйверийг бас агуулсан байх ёстой: device ppc Хэрэв та байнга шалгадаг горимыг хүсэж байвал өөрийн /boot/device.hints файлаас дараах мөрийг арилгана: hint.ppc.0.irq="N" Зарим тохиолдолд энэ нь FreeBSD дээр портыг байнга шалгах горимд оруулахад хангалтгүй байдаг. Ихэнхдээ энэ нь &man.acpi.4; драйвераас гардаг бөгөөд энэ нь төхөөрөмжүүдийг шалгаж болон залгаж чаддаг болохоор хэвлэгчийн порт уруу хандах горимыг хянаж чаддаг байна. Энэ асуудлыг засварлахын тулд та өөрийн &man.acpi.4; тохиргоог шалгах хэрэгтэй. Файлыг хадгална. Дараа нь цөмд тохиргоо хийн бүтээж цөмийг суулгаад дахин ачаална. Илүү дэлгэрэнгүйг цөмийн тохиргоо хэсгээс үзнэ үү. Холбооны горимыг &man.lptcontrol.8;-р тохируулахын тулд: Доор дурдсаныг бичиж: &prompt.root; lptcontrol -i -d /dev/lptN lptN-д зориулж тасалдлаар зохицуулагдах горимыг тохируулна. Доор дурдсаныг бичиж: &prompt.root; lptcontrol -p -d /dev/lptN lptN-д зориулж байнга шалгах горимыг тохируулна. Эдгээр тушаалуудыг өөрийн /etc/rc.local файлд нэмж таны системийг ачаалах болгонд горимыг тохируулдаг байхаар хийж болох юм. Илүү мэдээллийг &man.lptcontrol.8;-с үзнэ үү. Хэвлэгчийн холбоог шалгах нь Түр хадгалагч системийг тохируулахаасаа өмнө та үйлдлийн системийг өгөгдлийг амжилттайгаар өөрийн хэвлэгч уруу илгээж чадаж байгаа эсэхийг шалгах хэрэгтэй. Хэвлэгчийн холбоо болон түр хадгалагч системийг тусад нь дибаг хийх нь хамаагүй хялбар байдаг. Хэвлэгчийг тест хийхийн тулд бид ямар нэг текст түүн үрүү илгээнэ. Илгээгдсэн тэмдэгтүүдийг тэр даруй нь хэвлэх хэвлэгчдийн хувьд &man.lptest.1; програм төгс байдаг: энэ нь бүх 96 хэвлэх боломжтой ASCII тэмдэгтүүдийг 96 мөрөнд үүсгэдэг. PostScript &postscript; (эсвэл бусад хэлэн дээр суурилсан) хэвлэгчийн хувьд бидэнд илүү төвөгтэй тест хэрэгтэй. Доор дурдсантай төстэй жижиг &postscript; програм хангалттай байх болно: %!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage Дээрх &postscript; кодыг файлд хийгээд доорх хэсгүүдэд гарч байгаа жишээнүүдэд үзүүлсэн шигээр ашиглаж болно. PCL Энэ баримт нь хэвлэгчийн хэл гэдгийг Hewlett Packard-ийн PCL биш харин &postscript;-тэй адил хэлийг хэлж байгаа юм. PCL нь мундаг ажиллагаатай боловч та цэвэр текстийг өөрийнх нь escape (зугтах) дарааллуудтай нь хольж болдог. &postscript; нь цэвэр текстийг шууд хэвлэж чаддаггүй бөгөөд энэ нь тусгай зохицуулалтууд хийж өгөх ёстой тийм хэвлэгчийн хэл юм. Зэрэгцээ хэвлэгчийг шалгах нь хэвлэгчид зэрэгцээ Энэ хэсэг нь зэрэгцээ порт уруу холбогдсон хэвлэгчтэй FreeBSD холбогдож чадах эсэхийг хэрхэн шалгахыг хэлж өгөх болно. Зэрэгцээ порт дээрх хэвлэгчийг тест хийхийн тулд: &man.su.1; ашиглан root болно. Хэвлэгч уруу өгөгдөл илгээнэ. Хэрэв хэвлэгч цэвэр текст хэвлэж чаддаг бол &man.lptest.1;-г ашиглана. Доор дурдсаныг бичнэ: &prompt.root; lptest > /dev/lptN Энд байгаа N нь тэгээс эхлэх зэрэгцээ портын дугаар юм. Хэрэв хэвлэгч &postscript; эсвэл бусад хэвлэгчийн хэлийг ойлгодог бол жижиг програм хэвлэгч уруу илгээх хэрэгтэй. Доор дурдсаныг бичнэ: &prompt.root; cat > /dev/lptN Тэгээд мөр мөрөөр програмыг анхааралтай оруулах хэрэгтэй. Учир нь RETURN эсвэл ENTER дарсны дараа та засварлаж чадахгүй болох юм. Програмаа оруулж дуусаад CONTROL+D юм уу эсвэл файлын төгсгөл товчлуур ямар байна тэрийг дарах хэрэгтэй. Мөн өөрөөр програмыг файлд хийж доор дурдсаныг бичин өгч болно: &prompt.root; cat file > /dev/lptN Энд байгаа file нь таны илгээхийг хүсэж байгаа програмыг агуулсан файлын нэр юм. Та ямар нэгэн зүйл харах ёстой. Текст зөв харагдахгүй байвал санаа зовсны хэрэггүй; бид иймэрхүү зүйлсийг сүүлд нь засах болно. Цуваа хэвлэгчийг шалгах нь хэвлэгчид цуваа Энэ хэсэг нь цуваа порт уруу холбогдсон хэвлэгчтэй FreeBSD холбогдож чадах эсэхийг хэрхэн шалгахыг хэлж өгөх болно. Цуваа порт дээрх хэвлэгчийг тест хийхдээ: &man.su.1; ашиглан root болно. /etc/remote файлыг засварлана. Дараах мөрийг нэмнэ: printer:dv=/dev/port:br#bps-rate:pa=parity bits-per-second цуваа порт parity Энд байгаа port нь цуваа портод (ttyd0, ttyd1, гэх мэт) зориулсан төхөөрөмжийн оруулга, bps-rate нь хэвлэгчийн холбогдох секундэд илгээх битийн хурд, болон parity нь хэвлэгчийн шаарддаг parity юм (even, odd, none, эсвэл zero). Цуваа шугамаар гурав дахь цуваа порт уруу 19200 bps хурдаар parity байхгүйгээр холбогдсон хэвлэгчид зориулсан жишээ оруулга энд байна: printer:dv=/dev/ttyd2:br#19200:pa=none &man.tip.1; ашиглан хэвлэгч уруу холбогдоно. Доор дурдсаныг бичнэ: &prompt.root; tip printer Хэрэв энэ алхам нь ажиллахгүй бол /etc/remote файлыг дахин засварлаж /dev/ttydN-ийн оронд /dev/cuaaN-г ашиглаж үзээрэй. Өгөгдлийг хэвлэгч уруу илгээнэ. Хэрэв хэвлэгч цэвэр текст хэвлэж чаддаг бол &man.lptest.1;-г ашиглана. Доор дурдсаныг бичнэ: &prompt.user; $lptest Хэрэв хэвлэгч &postscript; эсвэл бусад хэвлэгчийн хэлийг ойлгодог бол жижиг програм хэвлэгч уруу илгээх хэрэгтэй. Програмыг мөр мөрөөр маш анхааралтайгаар бичиж оруулах хэрэгтэй. Учир нь арилгах болон бусад засварлах товчлуурууд хэвлэгчийн хувьд чухал байж болох юм. Та програмыг бүгдийг нь хүлээж авсан гэж хэвлэгчид таниулахын тулд тусгай файлын төгсгөл товчлуурыг хэвлэгчид зориулж оруулах хэрэгтэй. &postscript;-ийн хэвлэгчдийн хувьд CONTROL+D дарна. Мөн өөрөөр та програмыг файлд хийж доор дурдсаныг бичин оруулж болно: &prompt.user; >file Энд байгаа file нь програмыг агуулж байгаа файлын нэр юм. &man.tip.1; файлыг илгээсний дараа шаардлагатай файлын төгсгөл товчлуурыг дарах хэрэгтэй. Та ямар нэгэн зүйл хэвлэгдэхийг харах ёстой. Текст зөв харагдахгүй байвал санаа зовсны хэрэггүй; бид иймэрхүү зүйлсийг сүүлд нь засах болно. Түр хадгалагчийг идэвхжүүлэх нь: <filename>/etc/printcap</filename> файл Энэ үед таны хэвлэгч залгагдаж таны цөм түүнтэй холбогдохоор тохируулагдсан (хэрэв шаардлагатай бол) бөгөөд та хэвлэгч уруугаа зарим энгийн өгөгдлийг илгээж чаддаг байна. Одоо бид таны хэвлэгч уруу хандах хандалтыг хянахын тулд LPD-г тохируулахад бэлэн боллоо. Та /etc/printcap файлыг засварлаж LPD-г тохируулна. LPD түр хадгалагч систем нь түр хадгалагч ашиглагдах болгонд энэ файлыг уншдаг учир энэ файл уруу хийгдсэн шинэчлэл шууд нөлөөлөх болно. хэвлэгчид боломжууд &man.printcap.5; файлын хэлбэршилт хялбархан. /etc/printcap файлд засвар хийхдээ өөрийн дуртай текст засварлагчийг ашиглах хэрэгтэй. Хэлбэршилт нь /usr/share/misc/termcap болон /etc/remote зэрэг бусад боломжийн файлуудтай төстэй байдаг. Хэлбэршилтийн тухай бүрэн мэдээллийг &man.cgetent.3;-с үзнэ үү. Энгийн түр хадгалагчийн тохиргоо дараах алхмуудаас тогтоно: Хэвлэгчид зориулж нэр (болон хэдэн тохиромжтой alias-уудыг) сонгож /etc/printcap файлд хийж өгнө; Нэрлэх тухай дэлгэрэнгүй мэдээллийг Хэвлэгчийг нэрлэх нь хэсгээс үзнэ үү. толгой хуудаснууд sh боломжийг оруулан толгой хуудаснуудыг болиулах хэрэгтэй (анхдагчаар идэвхтэй байдаг); Дэлгэрэнгүй мэдээллийг Толгой хуудаснуудыг дарах нь хэсгээс үзнэ үү. Түр хадгалах санг үүсгэж түүний байрлалыг sd боломжоор зааж өгөх хэрэгтэй; Дэлгэрэнгүй мэдээллийг Түр хадгалах санг үүсгэх нь хэсгээс үзнэ үү. Хэвлэгчид зориулж ашиглахаар /dev оруулгыг тохируулж lp боломжоор /etc/printcap файлд түүнийг тэмдэглэх хэрэгтэй; Дэлгэрэнгүй мэдээллийг Хэвлэгчийн төхөөрөмжийг таних нь хэсгээс үзнэ үү. Хэрэв хэвлэгч цуваа порт дээр байгаа бол холбооны параметрүүдийг Түр хадгалагчийн холбооны параметрүүдийг тохируулах нь хэсэгт хэлэлцсэн ms# боломжоор тохируулах хэрэгтэй. Цэвэр текст оруулах шүүлтүүрийг суулгана; Дэлгэрэнгүйг Текст шүүгчийг суулгах нь хэсгээс үзнэ үү. &man.lpr.1; тушаалаар ямар нэг юм хэвлэж тест хийнэ. Илүү дэлгэрэнгүйг Турших нь болон Алдааг олж засварлах хэсгүүдээс үзнэ үү. &postscript; хэвлэгчид зэрэг хэлэн дээр суурилсан хэвлэгчид цэвэр текстийг шууд хэвлэж чаддаггүй. Дээр болон дараагийн хэсгүүдэд тайлбарласан энгийн тохиргоо нь хэрэв та ийм хэвлэгч суулгаж байгаа бол таныг зөвхөн хэвлэгчийн ойлгодог файлыг хэвлэнэ гэж тооцдог. Хэрэглэгчид нь цэвэр текстийг таны системд суулгагдсан дурын хэвлэгч уруу өгч хэвлэж болно гэж ихэвчлэн боддог. LPD уруу залгагдсан програмууд өөрсдийн хэвлэлтийг хийхдээ бас ингэж тооцдог. Хэрэв та тийм хэвлэгч суулгаж хэвлэгчийн хэл дээр ажлуудаа хэвлэх болон цэвэр текст ажлуудыг хэвлэж чаддаг байхыг хүсэж байгаа бол дээр дурдсан энгийн тохиргоонд нэмэлт алхам нэмж өгөх зайлшгүй шаардлагатай: цэвэр текстээс &postscript; уруу автоматаар хөрвүүлэх програмыг суулгах хэрэгтэй. Цэвэр текст ажлуудыг &postscript; хэвлэгчид дээр тааруулах нь гэж нэрлэгдсэн хэсэг үүнийг хэрхэн хийхийг хэлж өгнө. Хэвлэгчийг нэрлэх нь Эхний (хялбар) алхам бол өөрийн хэвлэгчид зориулж нэр сонгох явдал юм. Ажиллагаатай нь холбогдуулж юм уу эсвэл этгээд чамин нэр сонгох нь яг үнэндээ хамаагүй юм. Учир нь та хэвлэгчид зориулж бас хэд хэдэн alias буюу өөр нэрсийг өгч болох юм. /etc/printcap-д тодорхойлогдсон хэвлэгчдийн хамгийн багаар бодоход аль нэг lp гэсэн alias-тай байх ёстой. Энэ нь анхдагч хэвлэгчийн нэр юм. Хэрэв хэрэглэгчдэд PRINTER орчны хувьсагч байхгүй юм уу эсвэл LPD тушаалуудыг өгөх тушаалын мөрөнд хэвлэгчийн нэрийг зааж өгөөгүй бол lp нь тэдгээрийн ашиглаж сурсан анхдагч хэвлэгч болох юм. Хэвлэгчийн хамгийн сүүлийн alias-д хэвлэгчийн бүрэн тайлбарыг үйлдвэрлэгч болон загварыг оруулан өгөх нь нийтлэг практик байдаг. Нэр болон зарим нийтлэг alias-уудыг сонгосныхоо дараа тэдгээрийг /etc/printcap файлд хийж өгөх хэрэгтэй. Хэвлэгчийн нэр хамгийн зүүн баганаас эхлэх ёстой. Alias болгоныг босоо шугамаар тусгаарлаж хамгийн сүүлийн alias-ийн ард тодорхойлох цэг тавьна. Дараах жишээн дээр хоёр хэвлэгчийг (Diablo 630 шугамын хэвлэгч болон Panasonic KX-P4455 &postscript; лазерийн хэвлэгч) тодорхойлох /etc/printcap файлаас бид эхлэх болно: # # /etc/printcap for host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: Энэ жишээн дээр эхний хэвлэгч нь rattan гэж нэрлэгдсэн бөгөөд line, diablo, lp, болон Diablo 630 Line Printer гэсэн alias-уудтай байна. Энэ нь lp alias-тай болохоор энэ нь бас анхдагч хэвлэгч юм. Хоёр дахь нь bamboo гэж нэрлэгдсэн бөгөөд ps, PS, S, panasonic, болон Panasonic KX-P4455 PostScript v51.4 гэсэн alias-уудтай байна. Толгой хуудаснуудыг дарах нь хэвлэлт толгой хуудаснууд LPD түр хадгалах систем нь ажил бүрийн хувьд анхдагчаар толгой хуудас хэвлэдэг. Толгой хуудас нь том сайхан үсгээр бичигдсэн ажлыг хүссэн хэрэглэгчийн нэр, ажил ирсэн хост болон ажлын нэрийг агуулдаг. Харамсалтай нь энэ бүх нэмэлт текст нь энгийн хэвлэгчийн тохиргоог дибаг хийх замд саад болдог учир бид толгой хуудаснуудыг дарж хаах болно. Толгой хуудаснуудыг дарахын тулд /etc/printcap файл дахь хэвлэгчийн оруулгад sh боломжийг нэмэх хэрэгтэй. Энд sh нэмсэн /etc/printcap файлын жишээ байна: # # /etc/printcap for host rose - no header pages anywhere # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh: Бидний зөв хэлбэршилт хэрхэн хэрэглэснийг хараарай: эхний мөр нь хамгийн зүүн талын баганаас эхэлж дараа дараачийн мөрүүд нь хойш зай авагдсан байна. Оруулга дахь сүүлийн мөрөөс бусад мөр бүр урагш налуу тэмдэгтээр төгссөн байна. Түр хадгалах санг үүсгэх нь хэвлэгчийн түр хадгалалт хэвлэх ажлууд Түр хадгалагчийн энгийн тохиргоон дахь дараагийн алхам нь хэвлэгдэх ажлууд хэвлэгдэх хүртлээ байдаг, түр хадгалагчийн бусад дэмжлэгийн файлууд бас байдаг түр хадгалах санг үүсгэх явдал юм. Түр хадгалах сангийн хувьсамтгайгаас болоод эдгээр сангуудыг /var/spool-д хийх нь зуршил болсон зүйл юм. Түр хадгалах сангуудын агуулгыг заавал нөөцлөх ч бас шаардлагагүй юм. Тэдгээрийг үүсгэх нь &man.mkdir.1; тушаалыг ажиллуулахтай адил хялбар юм. Доор үзүүлсэн шиг хэвлэгчийн нэртэй адил нэрээр санг үүсгэх нь бас зуршил болсон байдаг: &prompt.root; mkdir /var/spool/хэвлэгчийн-нэр Гэхдээ та сүлжээндээ их олон хэвлэгчидтэй бол түр хадгалах сангуудаа зөвхөн LPD-ээр хэвлэхийн тулд нөөцөлсөн нэг сангийн доор хийхийг хүсэж болох юм. Бид rattan болон bamboo гэсэн хоёр жишээ хэвлэгчдээ зориулж үүнийг хийх болно: &prompt.root; mkdir /var/spool/lpd &prompt.root; mkdir /var/spool/lpd/rattan &prompt.root; mkdir /var/spool/lpd/bamboo Хэрэглэгчдийн хэвлэх ажлын нууцлалын талаар та бодож байгаа бол түр хадгалах санд олон нийт хандах боломжгүй болгож түүнийг хамгаалахыг хүсэж болох юм. Түр хадгалах сангуудыг daemon хэрэглэгч болон daemon бүлэг эзэмшиж, өөр хэнээр ч биш зөвхөн эдгээрээр уншигдах, бичигдэх, болон хайлт хийгдэх боломжтой байх ёстой. Бид үүнийг өөрсдийн жишээ хэвлэгчдэд зориулж хийх болно: &prompt.root; chown daemon:daemon /var/spool/lpd/rattan &prompt.root; chown daemon:daemon /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan &prompt.root; chmod 770 /var/spool/lpd/bamboo Төгсгөлд нь та эдгээр сангуудын талаар LPD програмд /etc/printcap файл ашиглан хэлж өгөх хэрэгтэй. Түр хадгалах сангийн замыг sd боломжтой цуг зааж өгнө: # # /etc/printcap for host rose - added spooling directories # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo: Хэвлэгчийн нэр эхний баганаас эхэлж харин хэвлэгчийг тайлбарлах бусад бүх оруулгууд догол мөрөөс эхэлж мөр бүрийн төгсгөл урагш налуу тэмдэгтээр төгсөх ёстой. Хэрэв та түр хадгалах санг sd-ээр зааж өгөхгүй бол түр хадгалах систем нь анхдагчаар /var/spool/lpd-г ашиглах болно. Хэвлэгч төхөөрөмжийг таних нь - Портын хэсэгт зориулагдсан оруулгуудад бид - /dev сан дахь аль оруулгыг - FreeBSD нь хэвлэгчтэй холбогдохдоо ашиглахыг мэдлээ. + Тоног төхөөрөмжийн тохиргоо хэсэгт бид + порт болон тохирох /dev санг + &os; нь хэвлэгчтэй холбогдохдоо ашиглахыг мэдлээ. Одоо бид LPD-д тэр мэдээллийг хэлнэ. Түр хадгалах систем нь хэвлэх ажилтай байгаа үедээ шүүгч програмын өмнөөс заасан төхөөрөмжийг онгойлгох болно (шүүгч програм нь өгөгдлийг хэвлэгч уруу дамжуулахыг хариуцдаг). lp боломж ашиглан /etc/printcap файлд /dev оруулгын замыг жагсааж өгнө. Бидний ажиллах жишээн дээр rattan нь эхний зэрэгцээ порт дээр, bamboo нь зургаа дахь цуваа порт дээр байгаа гэж үзье; энд /etc/printcap файлд хийгдэх нэмэлтүүд байна: # # /etc/printcap for host rose - identified what devices to use # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5: Хэрэв та өөрийн /etc/printcap файл дээрээ хэвлэгчдээ зориулж lp боломжийг зааж өгөхгүй бол LPD нь анхдагчаар /dev/lp-г ашиглах болно. /dev/lp нь одоогоор FreeBSD дээр байхгүй байгаа. Хэрэв таны суулгаж байгаа хэвлэгч зэрэгцээ порт уруу холбогдсон бол Текст шүүгчийг суулгах нь хэсэг уруу алгасаарай. Үгүй бол дараагийн хэсэг дэх заавруудыг дагахаа битгий мартаарай. Түр хадгалагчийн холбооны параметрүүдийг тохируулах нь хэвлэгчид цуваа Зэрэгцээ портууд дээрх хэвлэгчдийн хувьд LPD нь bps хурд, parity, болон бусад цуваа холбооны параметрүүдийг хэвлэгч уруу өгөгдөл илгээдэг шүүгч програмын өмнөөс тохируулж чаддаг. Энэ нь давуу талуудтай, учир нь: Энэ нь /etc/printcap файлыг засварлан өөр холбооны параметрүүдийг турших боломжийг танд олгодог; та шүүгч програмыг дахин эмхэтгэх шаардлагагүй. Энэ нь өөр өөр цуваа холбооны тохируулгуудтай байж болох олон хэвлэгчдэд зориулж нэг шүүгч програмыг ашиглахаар болгож түр хадгалах системийг идэвхжүүлдэг. Дараах /etc/printcap боломжууд нь lp боломжид жагсаагдсан төхөөрөмжийн цуваа холбооны параметрүүдийг хянадаг: br#bps-rate Төхөөрөмжийн холбооны хурдыг bps-rate болгож тохируулах бөгөөд bps-rate нь секундэд 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, эсвэл 115200 бит байж болно. ms#stty-mode Төхөөрөмжийг онгойлгосны дараа терминал төхөөрөмжид зориулж сонголтуудыг тохируулна. &man.stty.1; нь байж болох сонголтуудыг тайлбарладаг. lp боломжоор заагдсан төхөөрөмжийг LPD онгойлгох үед энэ нь төхөөрөмжийн үзүүлэлтүүдийг ms# боломжоор заагдсанаар тохируулдаг. Тухайлбал, &man.stty.1; гарын авлагын хуудсанд тайлбарлагдсан байгаа parenb, parodd, cs5, cs6, cs7, cs8, cstopb, crtscts, болон ixon горимууд юм. Зургаа дахь цуваа порт дээр өөрсдийн жишээ хэвлэгчээ нэмье. Бид bps хурдыг 38400 гэж тохируулна. Горимын хувьд бид -parenb тохируулгаар parity байхгүй, cs8 тохируулгаар 8 бит тэмдэгтүүд, clocal тохируулгаар модемийн хяналт байхгүй, crtscts тохируулгаар тоног төхөөрөмжийн урсгалын хяналт байхгүй гэж тохируулах болно: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts: Текст шүүгчийг суулгах нь хэвлэлт шүүгчид Одоо бид хэвлэгч уруу ажлууд илгээхийн тулд ямар текстийн шүүгчийг ашиглахыг LPD-д хэлэхэд бэлэн боллоо. Оролтын шүүгч гэж бас нэрлэгддэг Текст шүүгч нь хэвлэх ажил байхад LPD-ийн ажиллуулдаг програм юм. LPD нь хэвлэгчид зориулж текст шүүгчийг ажиллуулахдаа шүүгчийн стандарт оролтыг хэвлэх ажил уруу тохируулж өгдөг бөгөөд стандарт гаралтыг lp боломжоор заагдсан хэвлэгчийн төхөөрөмж уруу тохируулдаг. Шүүгч нь стандарт оролтоос ажлыг уншиж хэвлэгчид зориулж шаардлагатай орчуулгыг хийж үр дүнг стандарт гаралт уруу бичихээр хийгдсэн байдаг. Ингэснээр хэвлэгдэх болно. Текст шүүгчийн тухай дэлгэрэнгүй мэдээллийг Шүүгчид хэсгээс үзнэ үү. Бидний энгийн хэвлэгчийн тохиргооны хувьд текст шүүгч нь хэвлэгч уруу ажлыг илгээхийн тулд /bin/cat тушаалыг ажиллуулах жижиг бүрхүүлийн скрипт байж болох юм. FreeBSD нь устгах болон доогуур зурах зэрэг тэмдэгтийн урсгалуудтай сайн ажиллаж чаддаггүй хэвлэгчдэд зориулсан тэдгээр тэмдэгтүүдийг зохицуулдаг lpf гэсэн өөр шүүгчтэй ирдэг. Тэгээд мэдээж та хүссэн өөр бусад шүүгч програмыг ашиглаж болно. lpf шүүгч нь lpf: текстийн шүүгч хэсэгт дэлгэрэнгүй тайлбарлагдсан байгаа. Эхлээд /usr/local/libexec/if-simple гэсэн бүрхүүлийн скриптийг энгийн текст шүүгч болгоё. Энэ файлдаа өөрийн дуртай засварлагчаа ашиглан дараах текстийг оруулъя: #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. /bin/cat && exit 0 exit 2 Файлыг ажиллах боломжтой болгоно: &prompt.root; chmod 555 /usr/local/libexec/if-simple /etc/printcap файлд if боломжоор үүнийг зааж LPD-д ашиглах ёстойг нь хэлж өгнө. Бид үүнийг /etc/printcap жишээ файл дахь одоогоор бидэнд байгаа өөрсдийн хоёр хэвлэгчдээ нэмэх болно: # # /etc/printcap for host rose - added text filter # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:\ :if=/usr/local/libexec/if-simple: if-simple скриптийн хуулбарыг /usr/share/examples/printing сангаас олж болно. <application>LPD</application>-г идэвхжүүлэх &man.lpd.8; нь lpd_enable хувьсагчаар хянагддаг /etc/rc-с ажилладаг. Энэ хувьсагчийн анхдагч утга нь NO байдаг. Тэгж хийгээгүй байгаа бол та: lpd_enable="YES" мөрийг /etc/rc.conf файлд нэмж өөрийн машиныг дахин ачаалах юм уу эсвэл ердөө л &man.lpd.8;-г ажиллуулах хэрэгтэй. &prompt.root; lpd Турших нь Та энгийн LPD тохиргооны төгсгөлд хүрлээ. Харамсалтай нь баяр хүргэх арай л болоогүй байна. Учир нь бид тохиргоог тест хийж асуудал байвал засварлах хэрэгтэй хэвээр байгаа билээ. Тохиргоог тест хийхийн тулд ямар нэгэн юм хэвлэхийг оролдож үзээрэй. LPD системээр хэвлэхийн тулд ажлыг хэвлэхээр илгээдэг &man.lpr.1; тушаалыг ашиглана. Та &man.lpr.1;-г Хэвлэгчийн холбоог шалгах нь хэсэгт танилцуулсан &man.lptest.1; програмтай цуг хамтатган ямар нэг тест текст үүсгэхийн тулд ашиглаж болно. Энгийн LPD тохиргоог тест хийхийн тулд: Доор дурдсаныг бичнэ: &prompt.root; lptest 20 5 | lpr -Pprinter-name Энд байгаа printer-name нь /etc/printcap файлд заагдсан хэвлэгчийн нэр (эсвэл alias) юм. Анхдагч хэвлэгчийг тест хийхийн тулд &man.lpr.1;-г ямар нэгэн нэмэлт өгөгдөлгүйгээр бичих хэрэгтэй. Дахин хэлэхэд &postscript;-г хүлээж байдаг хэвлэгчийг тест хийж байгаа бол &man.lptest.1;-г ашиглахын оронд &postscript; програмыг тэр хэл дээр нь илгээх хэрэгтэй. Ингэхийн тулд та програмыг файлд хийж lpr file гэж бичиж болно. &postscript; хэвлэгчийн хувьд та програмын үр дүнг авах ёстой. Хэрэв та &man.lptest.1;-г ашиглаж байгаа бол таны авсан үр дүн иймэрхүү харагдах ёстой: !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 $%&'()*+,-./01234567 %&'()*+,-./012345678 Хэвлэгчийг цааш тест хийхийн тулд илүү том програмуудыг (хэлэн дээр суурилсан хэвлэгчдийн хувьд) татаж авах юм уу эсвэл &man.lptest.1;-г өөр нэмэлт өгөгдлүүдтэй ажиллуулж үзээрэй. Жишээ нь lptest 80 60 тушаал нь мөр бүртээ 80 тэмдэгттэй 60 мөрийг үүсгэх болно. Хэрэв хэвлэгч ажиллаагүй бол Алдааг олж засварлах хэсгийг үзнэ үү. Хэвлэгчийн илүү нарийн тохиргоо Энэ хэсэгт онцгой загварчлагдсан файлыг шүүгчид, хуудасны толгой хэсэг, сүлжээгээр хэвлэх мөн хэвлэгчийг хэрэглэх эрх болон хязгаарлалт гэсэн зүйлүүдийн тухай зааварлах болно. Шүүлтүүрүүд хэвлэх шүүлтүүр Хэдийгээр LPD нь сүлжээний протокол, дараалал, хандалтын хяналт гэх мэтчилэн хэвлэлтийн асуудлуудыг хариуцдаг ч жинхэнэ ажлыг нь шүүлтүүрүүд хийдэг. Шүүлтүүрүүд нь тусгай програмууд бөгөөд хэвлэгчийн төхөөрөмжүүд болон онцгой шаардлагуудыг нь хариуцаж байдаг. Бид хамгийн энгийн суулгац хийх үед их амархан бөгөөд бараг бүх хэвлэгчид тохирдог текст шүүлтүүр суулгасан билээ. (Текст шүүлтүүр суулгах нь хэсэгт). Хэвлэх төрлийн хувиргалт, хэвлэгчийн онцгой шинж чанар зэрэг давуу чанаруудыг нь хэрэглэхийн тулд танд шүүлтүүрийг зөв ойлгох шаардлага гарна. Ийм ажлуудыг зөвхөн шүүлтүүр хийдэг. Тэгээд муу мэдээ нь юу вэ гэхээр тэдгээр бүгдийг та тодорхойлж өгөх ёстой. Сайн мэдээ нь юу вэ гэхээр тэдгээрийн ихэнх нь боломжтой бэлэн байдаг бөгөөд хэрэв бичихээр бол тун амархан бичигддэг юм. Мөн түүнчлэн FreeBSD /usr/libexec/lpr/lpf гэдэг нэртэй, бараг бүх хэвлэгчид ердийн текст хэвлэж чаддаг шүүлтүүртэй ирдэг. (энэ нь файл дотор байгаа зай болон том зай авалтуудыг таньдаг бөгөөд мөн эрх үүсгэх гээд түүний чаддаг бүх зүйл нь үүгээр дуусдаг) FreeBSD-н портын цуглуулга дотор хэд хэдэн шүүлтүүр болон шүүлтүүрийн бүрдэл хэсгүүд байдаг. Энэ хэсэгт танд танилцуулах зүйлсүүдийг харуулъя: Шүүлтүүр хэрхэн ажилладаг вэ хэсэгт хэвлэх явцад шүүлтүүр ямар үүрэг гүйцэтгэдэг талаар тайлбарлахыг оролдох болно. LPD хэвлэх үедээ шүүлтүүрийг хөшигний цаана хэрхэн ашигладаг талаар та энд ойлгох болно. Үүнийг мэдсэнээр хэрэв өөр үед та олон шүүлтүүр суулгах үед хүндрэл гарвал даван туулахад тань хэрэг болно. LPD нь хэвлэгч бүрийг анхны тохируулгаараа ердийн текстийг хэвлэж чадна гэж авч үздэг. Энэ нь ердийн текстийг шууд хэвлэж чаддаггүй &postscript; хэвлэгчид (эсвэл бусад програмын хэл дээр үндэслэсэн хэвлэгчид ) дээр хүндрэл гаргадаг. &postscript; хэвлэгчид дээр ердийн текст хэвлэдэг болох хэсэгт иймэрхүү хүндрэлийг даван туулах талаар хэлэх болно. Хэрэв танд &postscript; хэвлэгч байдаг бол энэ хэсгийг уншаарай. &postscript; нь маш олон програмын гаралт болж байдаг. Тэр бүү хэл зарим хүмүүс шууд &postscript; бичиж чаддаг. Харамсалтай нь &postscript; хэвлэгч нар үнэтэй. &postscript; биш төрлийн хэвлэгчийг &postscript; мэт хэрэглэх хэсэгт танд &postscript; өгөгдлийг &postscript; биш төрлийн хэвлэгч дээр хэвлэж болдог талаар зааварлах болно. Хэрэв танд &postscript; хэвлэгч байхгүй бол энэ хэсгийг та уншаарай. Хувиргагч шүүлтүүрүүд хэсэг танд онцгой төрлийн файлууд болох график эсвэл өөр төрлийн бичиглэлтэй файлуудыг хэрхэн таны хэвлэгчийн ойлгодог төрөл рүү хувиргаж хэвлэх талаар өгүүлэх болно. Энэ хэсгийг уншсаны дараа, та жишээ нь хэрэглэгчид lpr -t тушаал өгөн troff өгөгдөл хэвлэх эсвэл lpr -d тушаал өгөн &tex; DVI өгөгдөл хэвлэх эсвэл lpr -v тушаал өгөн зураг төрлийн файл хэвлэх зэрэг зүйлүүдийг мэдэх болно. Энэ хэсгийг заавал унших хэрэгтэй гэж танд зөвлөж байна. Гаралтын шүүлтүүр хэсэг нь LPD-н нэг их хэрэглэгддэг шинж чанарууд болох гаралтын шүүлтүүрүүдийн тухай өгүүлэх болно: Та хуудасны толгой хэсгийг хэвлэж болж л байвал (Хуудасны толгой хэсэг хэсэгт харна уу) энэ хэсгийг та алгасаж болно. lpf: текст шүүлтүүр хэсэгт FreeBSD-тэй хамт нэлээн төгс ажиллагаатай мөрөөр нь хэвлэдэг (лазер хэвлэгч нар мөр мөрөөр нь хэвлэдэг туузан хэвлэгч шиг ажилладаг) lpf текст шүүлтүүрийн тухай өгүүлэх болно. Хэрэв та хэвлэгчийнхээ эрхийг түргэн бэлэн болгох эсвэл таны хэвлэгч хоосон зайг утаа байна гэж хүлээж аваад байвал та яах аргагүй lpf-тэй ажиллах хэрэг гарна. Доорх хэсэгт харуулах янз бүрийн скриптийн хуулбарыг /usr/share/examples/printing сангаас олж болно. Шүүлтүүр хэрхэн ажилладаг вэ Өмнө дурдсанаар шүүлтүүр нь хэвлэгчтэй холбогдох төхөөрөмжөөс чөлөөтэй хэсгийг зохицуулах LPD-ээр эхлүүлэгдэн ажилладаг програм юм. Ажил дахь файлыг LPD хэвлэхийг хүсэхдээ шүүлтүүр програмыг эхлүүлдэг. Энэ нь шүүлтүүрийн стандарт оролтыг хэвлэх файл уруу, өөрийн стандарт гаралтыг хэвлэгч уруу, өөрийн стандарт алдааг алдаа бүртгэх файл (/etc/printcap файл дахь lf боломжид эсвэл анхдагчаар /dev/console) уруу тохируулдаг. troff LPD аль шүүлтүүрийг эхлүүлэх болон /etc/printcap файлд юу байгаа болон &man.lpr.1; тушаалын мөр дэх ажилд зориулж хэрэглэгч ямар нэмэлт өгөгдлүүд зааснаас шүүлтүүрийн нэмэлт өгөгдлүүд хамаардаг. Жишээ нь хэрэв хэрэглэгч lpr -t тушаал бичсэн бол LPD нь хүрэх хэвлэгчийн tf боломжид жагсаагдсан troff шүүлтүүрийг эхлүүлэх болно. Хэрэв хэрэглэгч цэвэр текстийг хэвлэхийг хүссэн бол энэ нь if шүүлтүүрийг эхлүүлэх байсан (энэ нь бараг л үнэн юм: дэлгэрэнгүйг Гаралтын шүүлтүүрүүд хэсгээс үзнэ үү). /etc/printcap файлд зааж өгч болох гурван төрлийн шүүлтүүр байдаг: текст шүүлтүүр буюу оролтын шүүлтүүр гэж LPD баримтад толгой эргүүлмээр нэрлэгдсэн шүүлтүүр нь ердийн текст хэвлэлтийг зохицуулдаг. Үүнийг анхдагч шүүлтүүр гэж бодох хэрэгтэй. LPD нь хэвлэгч бүрийг цэвэр текстийг анхдагчаар хэвлэж чаддаг гэж тооцдог бөгөөд устгах тэмдэгтүүд, tab-ууд эсвэл бусад тусгай тэмдэгтүүд хэвлэгчийг будлиулахгүй байлгахад санаа тавих нь текст шүүлтүүрийн ажил юм. Хэрэв та хэвлэгчийн хэрэглээний хувьд бүртгэлтэй тийм орчинд байгаа бол текст шүүлтүүр нь хэвлэгдсэн мөрүүдийн тоог тоолж тэр тоогоо хэвлэгчийн дэмждэг нэг хуудсан дахь мөрийн тоотой жишиж хэвлэсэн хуудаснуудыг бас бүртгэх ёстой. Текст шүүлтүүрийг дараах нэмэлт өгөгдлийн жагсаалттай эхлүүлдэг: filter-name -c -w width -l length -i indent -n login -h host acct-file энд байгаа нь ажил lpr -l тушаалаар илгээгдсэн бол гарч ирнэ width нь /etc/printcap файлд заагдсан pw (хуудасны өргөн) боломжийн утга юм. Анхдагчаар 132 байна length нь pl (хуудасны урт) боломжийн утга бөгөөд анхдагчаар 66 байна indent нь lpr -i тушаалаас өгөгдөх догол мөрний хэмжээ юм. Анхдагчаар 0 байна login нь файлыг хэвлэж байгаа хэрэглэгчийн бүртгэл юм host нь ажлыг илгээсэн хостын нэр юм acct-file нь af боломжийн бүртгэлийн файлын нэр юм. хэвлэлт шүүлтүүрүүд Хувиргах шүүлтүүр нь тусгай файлын хэлбэршилтийг хэвлэгчийн цаасан дээр амилуулж чадах хэлбэршилт уруу хувиргадаг. Жишээ нь ditroff маяг хийгдсэн өгөгдлийг шууд хэвлэж болдоггүй боловч ditroff өгөгдлийг хэвлэгчийн ойлгож хэвлэх хэлбэр уруу хувиргах ditroff файлуудад зориулсан хувиргах шүүлтүүрийг та суулгаж болох юм. Тэдгээрийн талаар бүгдийг Хувиргах шүүлтүүрүүд хэсэг хэлж өгдөг. Хэрэв танд хэвлэгчийн бүртгэл хийлт хэрэгтэй бол хувиргах шүүлтүүрүүд бас бүртгэл хийх хэрэгтэй болно. Хувиргах шүүлтүүрүүдийг дараах нэмэлт өгөгдлүүдтэй эхлүүлдэг: filter-name -x pixel-width -y pixel-height -n login -h host acct-file энд байгаа pixel-width нь px боломжийн утга (анхдагчаар 0) бөгөөд pixel-height нь py боломжийн утга юм (анхдагчаар 0). Гаралтын шүүлтүүр нь шүүх текст байхгүй байх юм уу эсвэл толгой хуудаснууд идэвхтэй байх тохиолдолд зөвхөн ашиглагддаг. Бидний туршлага дээрээс харахад гаралтын шүүлтүүрүүд ховор ашиглагддаг. Гаралтын шүүлтүүрүүд хэсэг тэдгээрийг тайлбарладаг. Гаралтын шүүлтүүрт зөвхөн хоёр нэмэлт өгөгдөл байдаг: filter-name -w width -l length эдгээр нь текст шүүлтүүрийн болон нэмэлт өгөгдлүүдтэй адил юм. Шүүлтүүрүүд нь бас дараах гарах төлөвтэйгөөр гарах ёстой: exit 0 Шүүлтүүр файлыг амжилттай хэвлэсэн тохиолдолд. exit 1 Шүүлтүүр файлыг хэвлэж чадаагүй боловч LPD-гээр файлыг дахин хэвлүүлэхээр оролдохыг хүссэн. LPD нь шүүлтүүр энэ төлөвтэй гарсан бол түүнийг дахин эхлүүлэх болно. exit 2 Шүүлтүүр файлыг хэвлэж чадаагүй бөгөөд LPD-гээр файлыг дахин хэвлүүлэхийг хүсээгүй. LPD-нь файлыг гаргаж хаях болно. FreeBSD хувилбартай цуг ирдэг текст шүүлтүүр /usr/libexec/lpr/lpf нь хуудасны өргөн болон уртын нэмэлт өгөгдлүүдийг ашиглан хэзээ form feed илгээх болон хэвлэгчийн хэрэглээг хэрхэн бүртгэхийг тодорхойлдог. Энэ нь бүртгэлийн оруулгуудыг бичихийн тулд нэвтрэлт, хост болон файлын нэмэлт өгөгдлүүдийн бүртгэл хийлтийг ашигладаг. Хэрэв та шүүлтүүр худалдаж авахыг хүсэж байгаа бол тэдгээр нь LPD-тэй нийцтэй эсэхийг нь үзээрэй. Хэрэв тийм бол тэдгээр нь дээр тайлбарласан нэмэлт өгөгдлийн жагсаалтуудыг дэмжих ёстой. Та ердийн хэрэглээнд зориулж шүүлтүүрүүд бичих төлөвлөгөөтэй байгаа бол дээрх нэмэлт өгөгдлийн жагсаалт болон гарах кодуудыг дэмждэгээр тэдгээрийг хийгээрэй. &postscript; хэвлэгчид дээр цэвэр текст ажлуудыг тааруулах нь хэвлэх ажлууд Та өөрийн компьютер болон &postscript; (эсвэл бусад хэлэн дээр суурилсан) хэвлэгчийнхээ зөвхөн цорын ганц хэрэглэгч бөгөөд өөрийн хэвлэгч уруугаа цэвэр текстийг хэзээ ч илгээхгүй, таны хэвлэгч уруу цэвэр текстийг илгээхийг хүсдэг төрөл бүрийн програмуудын боломжуудыг хэзээ ч ашиглахгүй гэж амлах юм бол та энэ хэсгийн талаар санаа ерөөсөө зовох хэрэггүй юм. Гэхдээ та &postscript; болон цэвэр текст ажлуудыг хэвлэгч уруу илгээхийг хүсэж байгаа бол өөрийн хэвлэгчийн тохиргоог нэн даруй нэмэх хэрэгтэй юм. Ингэхийн тулд ирж байгаа ажил цэвэр текст үү эсвэл &postscript; үү гэдгийг илрүүлэх текст шүүлтүүртэй байна. Бүх &postscript; ажлууд %!-аар (бусад хэвлэгчийн хэлнүүдийн хувьд өөрийн хэвлэгчийн баримтыг үзнэ үү) эхлэх ёстой. Хэрэв тэдгээр нь ажил дахь эхний хоёр тэмдэгт байгаа бол бид &postscript;-ийг ашиглаж ажлын үлдсэн хэсгийг шууд дамжуулж болно. Хэрэв тэдгээр нь файл дахь эхний хоёр тэмдэгт биш бол шүүлтүүр текстийг &postscript; уруу хувиргаж үр дүнг хэвлэх болно. Үүнийг бид хэрхэн хийх вэ? хэвлэгчид цуваа Хэрэв танд цуваа хэвлэгч байгаа бол үүнийг хийх агуу арга нь lprps-г суулгах явдал юм. lprps нь хэвлэгчтэй хоёр талын холбоог хийдэг &postscript; хэвлэгчийн шүүлтүүр юм. Энэ нь хэвлэгчийн төлвийн файлыг хэвлэгчийн дэлгэрэнгүй мэдээллээр шинэчилдэг. Ингэснээр хэрэглэгчид болон администраторууд хэвлэгчийн төлөвийг яг ямар байгааг (toner low эсвэл paper jam гэх зэрэг) харах боломжтой болох юм. Гэхдээ илүү чухал зүйл бол энэ нь ирж байгаа ажлыг цэвэр текст эсэхийг илрүүлж &postscript; уруу хөрвүүлэх textps (lprps-тэй цуг ирдэг өөр програм) тушаалыг дууддаг psif гэгддэг програмыг агуулдаг явдал юм. Дараа нь хэвлэгч уруу ажлыг илгээхийн тулд lprps тушаалыг энэ нь ашигладаг. lprps нь FreeBSD-ийн портын цуглуулгад байдаг (Портын цуглуулга бүлгийг үзнэ үү). Ашиглах цаасны хэмжээний дагуу print/lprps-a4 болон print/lprps-letter портын аль нэгийг суулгаж та болно. lprps-г суулгасны дараа lprps-ийн хэсэг болох psif програмд замыг зааж өгөх хэрэгтэй. Хэрэв та lprps-г портын цуглуулгаас суулгасан бол доор дурдсаныг /etc/printcap файл дахь цуваа &postscript; хэвлэгчийн оруулгад ашиглах хэрэгтэй: :if=/usr/local/libexec/psif: LPD-д хэвлэгчийг унших-бичих горимоор онгойлгох боломж олгохын тулд rw боломж нь бас орсон байх шаардлагатай. Хэрэв танд зэрэгцээ &postscript; хэвлэгч байгаа (бөгөөд тиймээс lprps-д хэрэгтэй хоёр талын холбоог хэвлэгчтэй цуг ашиглаж чадахгүй байгаа) бол та дараах бүрхүүлийн скриптийг текст шүүлтүүр маягаар ашиглаж болно: #!/bin/sh # # psif - Print PostScript or plain text on a PostScript printer # Script version; NOT the version that comes with lprps # Installed in /usr/local/libexec/psif # IFS="" read -r first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # PostScript job, print it. # echo "$first_line" && cat && printf "\004" && exit 0 exit 2 else # # Plain text, convert it, then print it. # ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi Дээрх скрипт дээр байгаа textps нь цэвэр текстийг &postscript; уруу хувиргахаар бидний тусдаа суулгасан програм юм. Та дурын текстээс-&postscript; уруу хувиргадаг хүссэн програмаа ашиглаж болно. FreeBSD-ийн портын цуглуулга (Портын цуглуулга бүлгийг үзнэ үү) нь өргөн боломжтой текстээс-&postscript; уруу хувиргадаг a2ps гэгддэг програмыг агуулдаг бөгөөд та магадгүй үүнийг судлахыг хүсэж болох юм. &postscript; биш хэвлэгчид дээр &postscript; дүр үзүүлэх PostScript эмуляц хийх Ghostscript &postscript; нь өндөр чанарын маяг тохируулалт болон хэвлэлтэд зориулагдсан албан ёсны стандарт юм. &postscript; нь гэхдээ үнэтэй стандарт юм. Aladdin Enterprises-ийн ачаар харин чөлөөтэй &postscript;-тэй төстэй, FreeBSD дээр ажилладаг Ghostscript гэгддэг програм байдаг. Ghostscript нь ихэнх &postscript; файлуудыг уншиж чаддаг бөгөөд тэдгээрийн хуудаснуудыг &postscript; биш хэвлэгчдийн олон загваруудыг оролцуулаад төрөл бүрийн төхөөрөмжүүд рүү амилуулж чаддаг. Ghostscript-г суулгаж өөрийн хэвлэгчийн хувьд тусгай текстийн шүүлтүүрийг ашиглан та өөрийн &postscript; биш хэвлэгчийг жинхэнэ &postscript; хэвлэгч шигээр ажиллуулах боломжтой байдаг. Ghostscript нь FreeBSD-ийн портын цуглуулгад байдаг. Олон хувилбар байдаг бөгөөд хамгийн ихээр ашиглагддаг хувилбар нь print/ghostscript-gpl юм. &postscript; шиг дүр үзүүлэхийн тулд &postscript; файл хэвлэж байна уу гэдгийг илрүүлэх текст шүүлтүүр бидэнд байна. Хэрэв энэ нь тийм биш бол шүүлтүүр нь файлыг хэвлэгч уруу шууд дамжуулна; үгүй бол энэ нь файлыг хэвлэгчийн ойлгодог хэлбэр уруу эхлээд хувиргах Ghostscript-г ашиглах болно. Энд жишээ байна: дараах скрипт нь Hewlett Packard DeskJet 500 хэвлэгчдэд зориулсан текст шүүлтүүр юм. Бусад хэвлэгчдийн хувьд нэмэлт өгөгдлийг сольж gs (Ghostscript) тушаал уруу өгөх хэрэгтэй. (Ghostscript-ийн тухайн үеийн суулгацын дэмждэг төхөөрөмжүүдийн жагсаалтыг авахын тулд gs -h гэж бичих хэрэгтэй. #!/bin/sh # # ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500 # Installed in /usr/local/libexec/ifhp # # Treat LF as CR+LF (to avoid the "staircase effect" on HP/PCL # printers): # printf "\033&k2G" || exit 2 # # Read first two characters of the file # IFS="" read -r first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # It is PostScript; use Ghostscript to scan-convert and print it. # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=- - && exit 0 else # # Plain text or HP/PCL, so just print it directly; print a form feed # at the end to eject the last page. # echo "$first_line" && cat && printf "\033&l0H" && exit 0 fi exit 2 Төгсгөлд нь та шүүлтүүрийн LPDif боломжийн тусламжтай мэдэгдэх хэрэгтэй: :if=/usr/local/libexec/ifhp: Ингээд л боллоо. Та lpr plain.text болон - lpr whatever.ps гэж бичиж болох бөгөөд + lpr whatever.ps гэж бичиж болох бөгөөд хоюулаа амжилттайгаар хэвлэгдэх болно. Хувиргах шүүлтүүрүүд Хэвлэгчийн энгийн тохиргоо хэсэгт тайлбарласан энгийн тохиргоог дуусгасны дараа магадгүй таны хамгийн эхэнд хийхийг хүссэн зүйл чинь өөрийн дуртай файлын хэлбэршилтүүдэд (цэвэр ASCII текстээс гадна) зориулж хувиргах шүүлтүүрүүдийг суулгах явдал байж болох юм. Хувиргах шүүлтүүрүүдийг яагаад суулгах ёстой вэ? &tex; DVI файлуудыг хэвлэх Хувиргах шүүлтүүрүүд нь төрөл бүрийн файлуудыг хэвлэхэд амар болгодог. Жишээ нь бид &tex; хэв маяг тохируулах системтэй их ажилладаг бөгөөд бидэнд &postscript; хэвлэгч байна гэж бодъё. &tex;-ээс DVI файлыг үүсгэх болгонд бид DVI файлыг &postscript; уруу хувиргалгүйгээр шууд хэвлэж чадахгүй. Тушаалын дараалал иймэрхүү хийгдэнэ: &prompt.user; dvips seaweed-analysis.dvi &prompt.user; lpr seaweed-analysis.ps DVI файлуудад зориулсан хувиргах шүүлтүүрийг суулгаж LPD-ээр өөрсөддөө зориулан хийлгэж бид гараар хувиргах алхмыг алгасаж болно. Одоо, DVI файлыг авах болгонд бидэнд хэвлэхэд нэг алхам дутуу байх болно: &prompt.user; lpr -d seaweed-analysis.dvi Бидэнд зориулж DVI файлын хувиргалтыг хийх LPD програмд тохируулгыг зааж өгнө. Хэлбэршүүлэх болон хувиргах тохируулгууд хэсэг хувиргах тохируулгуудыг жагсаасан байгаа. Таны хүсэх хэвлэгчийн дэмжих хувиргах тохируулга бүрт зориулж хувиргах шүүлтүүр суулгаж түүний замыг /etc/printcap файлд зааж өгнө. Хувиргах шүүлтүүр нь энгийн хэвлэгчийн тохиргоон дахь (Текст шүүлтүүрийг суулгах нь хэсгийг үзнэ үү) текст шүүлтүүртэй төстэй. Ялгаа нь цэвэр текст хэвлэхийн оронд энэ шүүлтүүр нь файлыг хэвлэгчийн ойлгодог хэлбэршилт уруу хувиргадаг. Аль хувиргах шүүлтүүрүүдийг би суулгах ёстой вэ? Та ашиглах хувиргах шүүлтүүрүүдээ суулгах ёстой. Хэрэв та маш их DVI өгөгдлийг хэвлэх бол DVI хувиргах шүүлтүүр хэрэглэгдэнэ. Хэрэв танд маш их troff хэвлэх хэрэгтэй бол та troff шүүлтүүрийг суулгахыг хүсэх байх. Дараах хүснэгтэд LPD-ийн ажилладаг шүүлтүүрүүд, тэдгээрийн /etc/printcap файл дахь боломжийн оруулгууд болон тэдгээрийг lpr тушаалаар хэрхэн дуудах талаар дурдсан болой: Файлын төрөл /etc/printcap боломж lpr тохируулга cifplot cf DVI df plot gf ditroff nf FORTRAN текст rf troff tf raster vf цэвэр текст if none, , or Бидний жишээн дээрх lpr -d тушаалыг ашиглах нь хэвлэгчийн хувьд /etc/printcap файл дахь түүний оруулгад df боломж хэрэгтэй гэсэн үг юм. FORTRAN Бусад хүмүүс магадгүй маргаж болох юм. Гэхдээ FORTRAN текст болон plot зэрэг хэлбэршилтүүд нь магадгүй хуучирсан хэлбэршилтүүд юм. Та өөрийн талдаа эдгээр шинэ ойлголтууд юм уу эсвэл ердөө л өөрчлөн тохируулсан шүүлтүүрүүдийг суулгаж аль нэг хэлбэршилтийн сонголтуудыг өгч болох юм. Жишээ нь та Printerleaf файлуудыг (Interleaf ширээний хэвлэх програмаас гарах файлууд) шууд хэвлэхийг хүсчээ. Гэхдээ plot файлуудыг хэзээ ч хэвлэхгүй гэж бодъё. Тэгвэл та gf боломжийн доор Printerleaf хувиргах шүүлтүүрийг суулгаж lpr -g тушаал нь Printerleaf файлуудыг хэвлэх гэсэн үг болохыг өөрийн хэрэглэгчиддээ сургах хэрэгтэй болох юм. Хувиргах шүүлтүүрүүдийг суулгах нь Хувиргах шүүлтүүрүүд нь үндсэн FreeBSD суулгацаас гадна суулгах програмууд бөгөөд /usr/local сан дотор байрлана. /usr/local/libexec сан нь түгээмэл хэрэглэгддэг байрлал юм. Учир нь тэдгээр нь LPD-ийн зөвхөн ажиллуулах тусгай програмууд юм; ердийн хэрэглэгчид нь тэдгээрийг хэзээ ч ажиллуулах хэрэггүй юм. Хувиргах шүүлтүүрийг идэвхжүүлэхийн тулд /etc/printcap файлд хүрэх хэвлэгчийн хувьд тохирох боломжийн доор түүний замыг зааж өгөх явдал юм. Бидний жишээн дээр bamboo гэж нэрлэгдсэн хэвлэгчийн оруулгад DVI хувиргах шүүлтүүрийг бид нэмэх болно. bamboo хэвлэгчийн хувьд шинэ df боломжийг оруулсан /etc/printcap файлын жишээг энд дахин үзүүлэв: # # /etc/printcap for host rose - added df filter for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: DVI шүүлтүүр нь /usr/local/libexec/psdf гэж нэрлэгдсэн бүрхүүлийн скрипт юм. Энд тэр скриптийг үзүүлэв: #!/bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" Энэ скрипт нь dvips-г шүүлтүүрийн горимд ( нэмэлт өгөгдөл) хэвлэх ажил болох стандарт оролт дээр ажиллуулдаг. Дараа нь &postscript; хэвлэгчийн шүүлтүүр lprps-г (&postscript; хэвлэгчид дээр текст ажлуудыг тааруулах нь хэсгийг үзнэ үү) LPD-ийн энэ скрипт уруу дамжуулсан нэмэлт өгөгдлүүдтэй цуг эхлүүлнэ. lprps тушаал нь хэвлэсэн хуудаснуудыг бүртгэхийн тулд тэдгээр нэмэлт өгөгдлүүдийг ашиглах болно. Хувиргах шүүлтүүрийн зарим жишээнүүд Хувиргах шүүлтүүрүүдийг суулгах тогтмол алхмууд байдаггүй болохоор энэ хэсэгт зарим нэг ажилладаг жишээнүүдийг энд дурдъя. Эдгээрийг өөрийн шүүлтүүрийг хийхдээ заавар болгон ашиглаарай. Тохирохоор бол шууд ашиглах хэрэгтэй. Энэ жишээ скрипт нь Hewlett Packard LaserJet III-Si хэвлэгчид зориулсан raster (яг үнэндээ GIF файл) хувиргах шүүлтүүр юм: #!/bin/sh # # hpvf - Convert GIF files into HP/PCL, then print # Installed in /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2 Энэ нь GIF файлыг зөөгдөх anymap уруу, гарсныг нь зөөгдөх graymap уруу, гарсныг нь зөөгдөх bitmap уруу, тэр гарсныг нь LaserJet/PCL-тэй нийцтэй өгөгдөлд хувиргаж ажилладаг. Дээрх шүүлтүүрийг ашиглаж байгаа хэвлэгчид зориулсан оруулгатай /etc/printcap файлыг энд үзүүлэв: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf: Дараах скрипт нь bamboo гэж нэрлэгдсэн &postscript; хувилагчийн groff маяг тохируулах системээс troff өгөгдөлд зориулсан хувиргах шүүлтүүр юм: #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@" Дээрх скрипт нь хэвлэгчтэй хийх холбоог зохицуулахын тулд lprps-г дахин ашигладаг. Хэрэв хэвлэгч зэрэгцээ порт дээр байгаа бол бид энэ скриптийг харин ашиглах болно: #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops Ингээд л боллоо. Шүүлтүүрийг идэвхжүүлэхийн тулд бид дараах оруулгыг /etc/printcap файлд нэмэх хэрэгтэй: :tf=/usr/local/libexec/pstf: Хуучин гаруудыг FORTRAN-с ичихэд хүргэх жишээг энд үзүүлэв. Энэ нь цэвэр текстийг шууд хэвлэж чадах дурын хэвлэгчид зориулсан FORTRAN-текст шүүлтүүр юм. Бид үүнийг teak хэвлэгчид зориулж суулгах болно: #!/bin/sh # # hprf - FORTRAN text filter for LaserJet 3si: # Installed in /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2 Тэгээд бид энэ шүүлтүүрийг идэвхжүүлэхийн тулд teak хэвлэгчид зориулж /etc/printcap файлд энэ мөрийг нэмэх болно: :rf=/usr/local/libexec/hprf: Энд сүүлийн бөгөөд зарим талаараа төвөгтэй жишээ байна. Бид DVI шүүлтүүрийг өмнө танилцуулсан LaserJet хэвлэгч teak-д нэмэх болно. Эхлээд амархан хэсэг нь: /etc/printcap файлыг DVI шүүлтүүрийн байрлалаар шинэчлэх явдал юм: :df=/usr/local/libexec/hpdf: Одоо хэцүү хэсэг нь: шүүлтүүр хийх явдал юм. Үүний тулд бидэнд DVI-ээс-LaserJet/PCL уруу хувиргах програм хэрэгтэй. FreeBSD-ийн портын цуглуулгад (see Портын цуглуулга) нэг байдаг: print/dvi2xx. Энэ портыг суулгах нь бидэнд хэрэгтэй програм dvilj2p-г өгдөг. Энэ нь DVI-г LaserJet IIp, LaserJet III, болон LaserJet 2000-тай нийцтэй кодууд уруу хувиргадаг. dvilj2p нь шүүлтүүр hpdf-г нэлээн төвөгтэй болгодог. Учир нь dvilj2p нь стандарт оролтоос уншиж чаддаггүй. Энэ нь файлын нэртэй ажиллахыг хүсдэг. Юу нь бүр муу вэ гэхээр файлын нэр нь .dvi гэж төгсөх ёстой. Тэгэхээр /dev/fd/0-г стандарт оролтод зориулж ашиглах нь асуудалтай болно. Бид түр зуурын файлын нэрийг (.dvi-аар төгссөн) /dev/fd/0 уруу болгож холбоос үүсгэн энэ асуудлыг тойрон гарч болох юм. Ингэснээр dvilj2p тушаалыг стандарт оролтоос уншуулах юм. Асуудалтай нэг зүйл нь бид /tmp-г түр зуурын холбоост ашиглаж болохгүй явдал юм. Симболын холбоосуудыг bin хэрэглэгч болон бүлэг эзэмшдэг. Тэгээд /tmp санд наалттай (sticky) бит тохируулагдсан байдаг. Шүүлтүүр нь холбоос үүсгэж чадах боловч холбоос нь өөр хэрэглэгчид харьяалагдах болохоор дууссаныхаа дараа цэвэрлэж устгаж чаддаггүй юм. Харин шүүлтүүр нь түр хадгалах сан (/etc/printcap файлд sd боломжоор заагдсан) болох одоо ажиллаж байгаа санд симболын холбоос үүсгэх болно . Энэ нь шүүлтүүрийн ажлаа хийх төгс газар юм. Ялангуяа илүү их чөлөөтэй дискний зай /tmp сан доторхоос илүү түр хадгалах санд (заримдаа) байдаг. Ингээд эцэст нь шүүлтүүр энэ байна: #!/bin/sh # # hpdf - Print DVI data on HP/PCL printer # Installed in /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH; export PATH # # Define a function to clean up our temporary files. These exist # in the current directory, which will be the spooling directory # for the printer. # cleanup() { rm -f hpdf$$.dvi } # # Define a function to handle fatal errors: print the given message # and exit 2. Exiting with 2 tells LPD to do not try to reprint the # job. # fatal() { echo "$@" 1>&2 cleanup exit 2 } # # If user removes the job, LPD will send SIGINT, so trap SIGINT # (and a few other signals) to clean up after ourselves. # trap cleanup 1 2 15 # # Make sure we are not colliding with any existing files. # cleanup # # Link the DVI input file to standard input (the file to print). # ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" # # Make LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Convert and print. Return value from dvilj2p does not seem to be # reliable, so we ignore it. # dvilj2p -M1 -q -e- dfhp$$.dvi # # Clean up and exit # cleanup exit 0 Автомат хувиргалт: Хувиргагч шүүлтүүртэй ижилхэн шүүлтүүрүүд Эдгээр бүх хувиргагч шүүлтүүрүүд нь таны хэвлэх орчинд тань маш олон ажлыг гүйцэтгэж өгдөг ч хэрэглэгчдийг тэднээс аль нэгийг нь хэрэглэхийг шаарддаг (&man.lpr.1;-н тушаалын мөрөн дээр). Хэрэв таны хэрэглэгчид компьютер дээр сайн гаршаагүй хүмүүс бол иймэрхүү шүүлтүүрийн сонголтууд тэд нарыг залхаах болно. Бүр муудаж болох нөхцөл юу гэвэл буруу сонгосон шүүлтүүрийг буруу файлд хэрэглэснээр хэвлэгчээр олон зуун хуудас үр дүнгүй хэвлэгдэх явдал юм. Анхнаасаа хувиргагч шүүлтүүрүүдийг суулгахаасаа өмнө эхлээд та энгийн текст шүүлтүүрийг суулгаад (анхдагч шүүлтүүр ) хэвлэгдэх файлын төрлийг нь таниад хэрэгтэй шүүлтүүрийг хэрэглэх нь зүйтэй. file гэх мэтийн хэрэгслүүд иймэрхүү зүйлд ашиглагдаж болох юм. Мэдээж зарим файлын төрлийг хооронд нь ялгахад бэрх боловч мэдээж тэдэнд зориулж та шүүлтүүр үүсгэж болно. apsfilter хэвлэх шүүлтүүр apsfilter FreeBSD-н портын цуглуулга дотор apsfilter (print/apsfilter) нэртэй автомат хувиргалт хийдэг текст шүүлтүүр бий. Энэ шүүлтүүр нь энгийн текст, &postscript;, DVI болон бараг бүх л төрлийн файлуудыг таньж тэдэнд тохирсон шүүлтүүрийг нь автоматаар ажиллуулдаг. Гаралтын шүүлтүүрүүд LPD түр хадгалагч системд бид нарын нээгээгүй бас нэг шүүлтүүрийн төрөл бий. Гаралтын шүүлтүүр гэгч нь текст шүүлтүүр шиг зөвхөн энгийн текст хэвлэх зориулалттай бөгөөд маш олон зүйлийг хялбаршуулсан байдаг. Хэрэв та текст шүүлтүүр хэрэглээгүй мөртлөө гаралтын шүүлтүүр хэрэглэж байгаа бол: LPD нь хэвлэгдэх файл болгонд шүүлтүүр ажиллуулалгүйгээр гаралтын шүүлтүүрийг нэг удаа л эхлүүлдэг. LPD нь гаралтын шүүлтүүрт зориулж файлын эхлэл болон төгсгөлийг мэдээлэх алба байхгүй. LPD нь хэрэглэгчийн болон компьютерийн нэвтрэх эрхийг дамжуулдаггүй болохоор бүртгэл хийх зориулалт байдаггүй. Үнэн хэрэгтээ бол энэ нь ердөө хоёр утга авдаг: шүүлтүүрийн-нэр -wөргөн -lурт Энд өргөн нь pw-н шинж чанар бөгөөд урт нь pl-н шинж чанар юм. Гаралтын шүүлтүүрийн амарчлалд бас найдах хэрэггүй. Хэрэв хэвлэгдэх файлуудыг тусдаа хуудаснаас эхлүүлэхийг та хүсэж байгаа бол гаралтын шүүлтүүр ажиллахгүй. Үүнд текст шүүлтүүр (бас оролтын шүүлтүүр гэж нэрлэдэг) хэрэглэх хэрэгтэй ба Текст шүүлтүүрийг суулгах нь хэсгээс харна уу. Мөн цаашлаад үнэн чанартаа бол гаралтын шүүлтүүрүүд нь байт хэлбэрээр урсаж байгаа хэвлэгдэх зүйлсээс онцгой тэмдэгтүүдийг ялгаж LPD-н нэрийн өмнөөс дохио илгээх маягаар ажилладаг нэлээн төвөгтэй систем юм. Хэрэв та толгой хуудаснуудыг хэвлэхийг хүсэж escape дарааллууд юм уу эсвэл эхлүүлэх мөрүүдийг илгээх хэрэгтэй бол гарах шүүлтүүр нь шаардлагатай юм. (Гэхдээ хэрэв та толгой хуудаснуудыг хүсэж байгаа хэрэглэгчийн бүртгэлээс төлбөр авах хүсэлтэй байгаа бол энэ нь дэмий зүйл юм. Учир нь LPD нь гаралтын шүүлтүүрт ямар ч хэрэглэгч юм уу эсвэл хостын мэдээллийг өгдөггүй юм.) Нэг хэвлэгч дээр LPD нь гаралтын шүүлтүүр болон текст эсвэл бусад шүүлтүүрүүдийг зөвшөөрдөг. Ийм тохиолдолд LPD нь зөвхөн толгой хуудсыг хэвлэхийн тулд гаралтын шүүлтүүрийг эхлүүлэх болно (Толгой хуудаснууд хэсгийг үзнэ үү). Тэгээд LPD нь хоёр байтыг шүүлтүүр рүү илгээж гаралтын шүүлтүүр нь өөрийгөө зогсооно гэж тооцдог: эдгээр хоёр байт нь ASCII 031 дараа нь ASCII 001 юм. Гаралтын шүүлтүүр нь эдгээр хоёр байтыг (031, 001) хараад өөртөө SIGSTOP илгээж зогсох ёстой. LPD бусад шүүлтүүрийг ажиллуулж дууссаны дараа гаралтын шүүлтүүрт SIGCONT илгээж түүнийг дахин эхлүүлэх болно. Хэрэв гаралтын шүүлтүүр байгаа боловч текст шүүлтүүр байхгүй бөгөөд LPD цэвэр текст ажил дээр ажиллаж байгаа бол LPD нь ажлыг хийхийн тулд гаралтын шүүлтүүрийг ашигладаг. Өмнө хэлсэнчлэн гаралтын шүүлтүүр нь ажлын файл бүрийг дарааллаар form feed-үүд эсвэл бусад цаасны дэвшилт зэрэг хөндлөнгийн оролцоогүйгээр хэвлэх бөгөөд энэ нь таны хүсэж байгаа зүйл биш байж болох юм. Бараг бүх тохиолдолд танд текст шүүлтүүр хэрэгтэй. lpf гэж танд урьд нь текст шүүлтүүр хэмээн танилцуулсан шүүлтүүр бас гаралтын шүүлтүүр болон ажилладаг. Хэрэв танд ямар нэгэн урсгалаас байт таньж код илгээх гаралтын шүүлтүүр бичилгүйгээр түргэн-боловч-бултар шүүлтүүр хэрэгтэй бол lpf-г хэрэглээрэй. Та мөн бүрхүүл дээр скрипт бичиж хэвлэгчид шаардлагатай анхдагч утгуудыг нь lpf-аар тохируулж бас болно. <command>lpf</command>: Текст шүүлтүүр FreeBSD хоёртын түгээлттэй цуг ирдэг /usr/libexec/lpr/lpf програм нь гаралтад (lpr -i тушаалаар илгээгдсэн ажил) догол гаргах, үсгэн тэмдэгтүүдийг дамжуулахыг зөвшөөрөх (lpr -l тушаалаар илгээгдсэн ажил), ажил дахь устгах тэмдэгтүүд болон tab-уудад зориулж хэвлэх байрлалыг тааруулах болон хэвлэсэн хуудаснуудыг бүртгэж чаддаг текст шүүлтүүр (оролтын шүүлтүүр) юм. Энэ нь бас гаралтын шүүлтүүр шиг ажиллаж чаддаг. lpf нь олон хэвлэх орчнуудад тохирдог. Хэдийгээр энэ нь хэвлэгч уруу эхлүүлэх дарааллуудыг илгээх боломжгүй боловч хэрэгтэй эхлүүлэлтийг хийж lpf-г ажиллуулах бүрхүүлийн скрипт бичихийг хялбар болгодог. хуудас бүртгэл бүртгэл хэвлэгч Хуудсын бүртгэлийг lpf-ээр зөв хийлгэхийн тулд /etc/printcap файл дахь pw болон pl боломжуудад зөв утгуудыг оруулах хэрэгтэй. Хуудсанд хичнээн текст багтах болон хэрэглэгчийн ажилд хичнээн хуудас байгааг тодорхойлохын тулд энэ нь эдгээр утгуудыг ашигладаг. Хэвлэгчийн бүртгэлийн тухай дэлгэрэнгүй мэдээллийг Хэвлэгчийн хэрэглээг бүртгэх нь хэсгээс үзнэ үү. Толгой хуудаснууд Хэрэв та маш их хэрэглэгчтэй бөгөөд бүгд төрөл бүрийн хэвлэгч ашиглаж байгаа бол та магадгүй толгой хуудаснуудыг ашиглахыг хүсэж болох юм. сурталчилгаа хуудаснууд толгой хуудаснууд толгой хуудаснууд Толгой хуудаснууд, бас сурталчилгаа эсвэл тэсрэх хуудаснууд гэгддэг хуудаснууд нь хуудсууд хэвлэгдсэний дараа ажлууд нь хэнд хамаарахыг тодорхойлдог. Тэдгээр нь ихэвчлэн том, тод үсгээр, магадгүй чимсэн хүрээнүүдтэйгээр хэвлэгддэг. Ингэснээр хэвлэсэн олон хуудаснууд дотроос хэрэглэгчдийн ажлуудыг багтаасан жинхэнэ баримт болон ялгардаг. Энэ нь хэрэглэгчдэд өөрсдийн ажлуудыг хурдан олох боломжийг олгодог. Толгой хуудасны илэрхий сул тал нь ажил болгоны хувьд илүү хуудас хэвлэгддэг явдал бөгөөд тэдний түр зуурын ашиг хэдхэн минут үргэлжилж тун удалгүй тэдгээрийг хогийн сав эсвэл хогийн овоон дотор орохыг харж болох юм. (Толгой хуудаснууд нь файл болгонтой биш, ажил болгонтой цуг явдгийг санаарай. Тэгэхээр цаас дэмий үрэх нь тийм ч их муу биш байж болох юм.) Хэрэв таны хэвлэгч цэвэр текстийг шууд хэвлэж чаддаг бол LPD систем нь таны хэвлэсэн зүйлүүдэд толгой хуудаснуудыг автоматаар өгч чаддаг. Хэрэв танд &postscript; хэвлэгч байгаа бол толгой хуудсыг үүсгэхийн тулд танд гадаад програм хэрэгтэй болох юм; &postscript; хэвлэгчид дээрх толгой хуудаснууд хэсгийг үзнэ үү. Толгой хуудаснуудыг идэвхжүүлэх нь Хэвлэгчийн энгийн тохиргоо хэсэгт бид /etc/printcap файлд sh-ийг (suppress header буюу толгойг дарах гэсэн утгатай) зааж өгөн толгой хуудаснуудыг болиулсан. Хэвлэгчийн хувьд толгой хуудаснуудыг идэвхжүүлэхийн тулд ердөө л sh боломжийг устгах хэрэгтэй. Хэтэрхий амархан санагдаж байна, тийм үү? Таны зөв. Та хэвлэгч уруу эхлүүлэх мөрүүдийг илгээхийн тулд гаралтын шүүлтүүрийг өгөх хэрэгтэй болж болох юм. Энд Hewlett Packard PCL-тэй нийцтэй хэвлэгчдэд зориулсан жишээ гаралтын шүүлтүүр байна: #!/bin/sh # # hpof - Output filter for Hewlett Packard PCL-compatible printers # Installed in /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf Гаралтын шүүлтүүрийн замыг of боломжид зааж өгөх хэрэгтэй. Дэлгэрэнгүй мэдээллийг Гаралтын шүүлтүүрүүд хэсгээс үзнэ үү. Бидний урьд нь танилцуулсан teak хэвлэгчид зориулсан жишээ /etc/printcap файл энд байна; бид толгой хуудаснуудыг идэвхжүүлж дээрх гаралтын шүүлтүүрийг нэмсэн: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:\ :of=/usr/local/libexec/hpof: Одоо хэрэглэгч teak уруу ажлуудаа хэвлэхэд ажил болгонтой толгой хуудас хүлээн авах болно. Хэрэв хэрэглэгчид өөрсдийн хэвлэсэн зүйлсээ хайхад цаг зарцуулахыг хүсэж байгаа бол толгой хуудаснуудыг дарж ажлаа lpr -h тушаалаар илгээж болно; &man.lpr.1;-ийн тохируулгуудын талаар дэлгэрэнгүйг Толгой хуудасны тохируулгууд хэсгээс үзнэ үү. LPD нь толгой хуудасны дараа form feed тэмдэгт хэвлэдэг. Хэрэв таны хэвлэгч хуудсаа гаргахын тулд өөр тэмдэгт юм уу эсвэл өөр тэмдэгтүүдийн дараалал ашигладаг бол тэдгээрийг /etc/printcap файлд ff боломжоор зааж өгөх хэрэгтэй. Толгой хуудаснуудыг хянах нь Толгой хуудаснуудыг идэвхжүүлснээр LPD нь хэрэглэгч, хост, болон ажлыг таниулах том үсгүүдтэй урт толгой бүхий хуудсыг үүсгэх болно. Энд жишээ байна (kelly нь outline гэсэн нэртэй ажлыг rose-с хэвлэжээ): k ll ll k l l k l l k k eeee l l y y k k e e l l y y k k eeeeee l l y y kk k e l l y y k k e e l l y yy k k eeee lll lll yyy y y y y yyyy ll t l i t l oooo u u ttttt l ii n nnn eeee o o u u t l i nn n e e o o u u t l i n n eeeeee o o u u t l i n n e o o u uu t t l i n n e e oooo uuu u tt lll iii n n eeee r rrr oooo ssss eeee rr r o o s s e e r o o ss eeeeee r o o ss e r o o s s e e r oooo ssss eeee Job: outline Date: Sun Sep 17 11:04:58 1995 LPD нь ажлыг шинэ хуудсан дээр эхлүүлэхийн тулд энэ текстийн дараа form feed-г нэмдэг (/etc/printcap дахь хүрэх хэвлэгчийн оруулгад sf (form feed-г дарах) байхгүй бол). Хэрэв та хүсэж байгаа бол LPD нь богино толгой хийж чаддаг; /etc/printcap файлд sb-г (short banner буюу богино сурталчилгаа) зааж өгөх хэрэгтэй. Толгой хуудас иймэрхүү харагдах болно: rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 Бас анхдагчаар LPD нь эхлээд толгой хуудсыг дараа нь ажлыг хэвлэдэг. Эсрэгээр болгохын тулд /etc/printcap файлд hl-г (header last буюу толгой сүүлд) зааж өгөх хэрэгтэй. Толгой хуудаснуудыг бүртгэх нь LPD-н өөрт нь суугдсан толгой хуудаснууд нь хэвлэлтэд бүртгэл тооцоо хийх шаардлагатай үед үнэгүй байх зарчмыг шаарддаг. Яагаад? Учир нь гаралтын шүүлтүүр бол толгой хуудас хэвлэгдэх үед ажилладаг тусдаа биеэ даасан гадаад програм бөгөөд бүртгэл хийж болох юм шиг боловч хэрэглэгч юм уу компьютерийн тухай ямар ч бүртгэлийн мэдээллээр хангагддаггүй учир хэн дээр ямар тооцоо бүртгэл хийхээ мэдэж чаддаггүй. Зөвхөн нэг хуудас текст шүүлтүүр рүү нэмснээр юм уу эсвэл хувиргах ямар нэгэн шүүлтүүрийг (хэрэглэгч юм уу компьютерийн мэдээлэлтэй) хэрэглэгч lpr -h гэсэн тушаалаар дарж болдог. Дарагдсан ч гэсэн тэдгээр толгой хуудаснууд бүртгэл тооцоо хийж байдаг. Үндсэндээ орчны хувьсагчдад дассан хэрэглэгчдэд lpr -h тушаал илүү аятайхан байж болох боловч шаардлагатай гэсэн үг биш билээ. Шүүлтүүр бүр өөрсдийн гэсэн толгой хуудас үүсгэх нь тийм хангалттай шийдэл бас биш (хэдийгээр тус бүрдээ төлбөр тооцоо хийж чадах байсан ч ). Хэрэв хэрэглэгч lpr -h тушаалаар толгой хуудсыг дарсан ч LPD нь шүүлтүүрүүд рүү гэсэн сонголтын талаар ямар ч мэдээлэл явуулдаггүй болохоор төлбөр тооцоо хийгдсээр байх болно. Тэгэхээр танд ямар сонголтууд байна вэ? Та дараах зүйлсийг хийх боломжтой: LPD-н зарчмыг хүлээн зөвшөөрч толгой хуудсанд төлбөр тооцохгүй болох. LPRng гэх мэтийн LPD-н ижил төрлийн түр хадгалагчдыг хэрэглэх. Түр хадгалагчидтай ижил төрлийн хадгалагчид хэсэгт LPD-г орлуулж болох түр хадгалагчдын талаар өгүүлсэн буй. Гайгүй сэргэлэн гаралтын шүүлтүүр бичих. Гаралтын шүүлтүүр гэдэг нь ердийн үед бол хэвлэгчийг тохируулах юм уу эсвэл энгийн тэмдэгт хувиргуур хийдэг програм юм. Ийм шүүлтүүр нь толгой хуудас болон энгийн текст зэрэгт тун таардаг ( хэрэв тэнд ямар ч текст (оролтын) шүүлтүүр байхгүй бол). Гэхдээ хэрэв тэнд энгийн текст хэвлэх текст шүүлтүүр байгаа бол LPD нь гаралтын шүүлтүүрийг зөвхөн толгой хуудсанд ажиллуулдаг. Тэгээд гаралтын шүүлтүүр нь толгой хуудаснаас LPD-н үүсгэсэн хэрэглэгч болон компьютерт тооцсон тооцоог салгаж авч чаддаг. Энэ арганд буй нэг хүндрэл бол гаралтын шүүлтүүр нь ямар бүртгэлийн файл хэрэглэхээ мэдэхгүйд байгаа юм (энэ файл нь af тохиргоогоор дамжигддаггүй). Гэвч хэрэв танд бэлэн бүртгэл файл байгаа бол тэдгээрийг гаралтын шүүлтүүр дотор бичиж өгч болно. Тооцоог салгаж авах хэсэгт нэмэр болгохын тулд sh (short header буюу богино толгой) тохиргоог /etc/printcap файл дотор оруулах нь зүйтэй. Тэгээд ч энэ бүхэн танд төвөгтэй санагдаж магадгүй бөгөөд хэрэглэгчид толгой хуудсанд төлбөр тооцдоггүй өгөөмөр сүлжээ зохицуулагчийг илүүд үзэж бас болох юм. &postscript; хэвлэгч дээрх толгой хуудаснууд Өмнө өгүүлснээр LPD нь маш олон хэвлэгчдэд зориулж энгийн текст толгой хуудас үүсгэж чаддаг. Мэдээж &postscript; нь энгийн текстийг шууд хэвлэж чаддаггүй болохоор LPD-н энэ шинж чанар бараг хэрэггүй билээ. Толгой хуудас байлгах нэг арга бол хувиргах шүүлтүүр болгон толгой хуудас үүсгэх юм. Ингэхийн тулд шүүлтүүрүүд нь хэрэглэгч болон компьютерийн мэдээллийг хүлээж аваад толгой хуудас үүсгэдэг байхаар зохицуулах хэрэгтэй. Энэ аргын нэг муу тал нь хэрэглэгчид lpr -h тушаал ашигласан ч толгой хуудастай хуудас хэвлээд байх болно. Энэ аргыг жаахан судалж үзэцгээе. Дараах скрипт гурван утга хүлээж аваад(хэрэглэгчийн нэвтрэх нэр, компьютерийн нэр, хэвлэгдэх ажлын нэр) &postscript; толгой хуудас үүсгэж байна: #!/bin/sh # # make-ps-header - make a PostScript header page on stdout # Installed in /usr/local/libexec/make-ps-header # # # These are PostScript units (72 to the inch). Modify for A4 or # whatever size paper you are using: # page_width=612 page_height=792 border=72 # # Check arguments # if [ $# -ne 3 ]; then echo "Usage: `basename $0` <user> <host> <job>" 1>&2 exit 1 fi # # Save these, mostly for readability in the PostScript, below. # user=$1 host=$2 job=$3 date=`date` # # Send the PostScript code to stdout. # exec cat <<EOF %!PS % % Make sure we do not interfere with user's job that will follow % save % % Make a thick, unpleasant border around the edge of the paper. % $border $border moveto $page_width $border 2 mul sub 0 rlineto 0 $page_height $border 2 mul sub rlineto currentscreen 3 -1 roll pop 100 3 1 roll setscreen $border 2 mul $page_width sub 0 rlineto closepath 0.8 setgray 10 setlinewidth stroke 0 setgray % % Display user's login name, nice and large and prominent % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Now show the boring particulars % /Helvetica findfont 14 scalefont setfont /y 200 def [ (Job:) (Host:) (Date:) ] { 200 y moveto show /y y 18 sub def } forall /Helvetica-Bold findfont 14 scalefont setfont /y 200 def [ ($job) ($host) ($date) ] { 270 y moveto show /y y 18 sub def } forall % % That is it % restore showpage EOF Одоо ямар ч хувиргах шүүлтүүр болон текст шүүлтүүрүүд нь энэ скриптийг дуудаж толгой хуудас үүсгэж хэвлэж болно. Энд одоо өмнө үзүүлж байсан DVI хувиргах шүүлтүүрийг жаахан өөрчилж толгой хуудас үүсгэхийг харуулав: #!/bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # orig_args="$@" fail() { echo "$@" 1>&2 exit 2 } while getopts "x:y:n:h:" option; do case $option in x|y) ;; # Ignore n) login=$OPTARG ;; h) host=$OPTARG ;; *) echo "LPD started `basename $0` wrong." 1>&2 exit 2 ;; esac done [ "$login" ] || fail "No login name" [ "$host" ] || fail "No host name" ( /usr/local/libexec/make-ps-header $login $host "DVI File" /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args Хэрэглэгчийн нэр болон компьютерийн нэрийг хэрхэн салгаж авч байгааг анхаарах хэрэгтэй. Бусад шүүлтүүр дээр ийм салгалт хийх нь ижилхэн. Текст шүүлтүүр нь хэрэглэгчийн нэр болон компьютерийн нэрийг арай өөр аргаар салгаж авдаг. (Шүүлтүүр хэрхэн ажилладаг вэ хэсгээс харна уу). Өмнө өгүүлсний дагуу дээр үзүүлсэн энэ загвар нь хэдийгээр тун энгийн бүтээгдсэн ч гэсэн suppress header page сонголтыг ( сонголт) lpr дээр хорьдог. Хэрэв хэрэглэгчид жаахан хэмнэхийг хүссэн ч (эсвэл толгой хуудасны төлбөрт өгөх хэдэн төгрөгөө) шүүлтүүр болгон толгой хуудас хэвлэдэг болохоор дээрх аргыг хэрэглээд үр дүн өгөхгүй. Хэвлэгдэх бүр толгой хуудсыг хорихын тулд Толгой хуудасны тооцоо бүртгэл хэсэгт үзүүлсэн дараах бяцхан аргыг хэрэглэнэ: гаралтын шүүлтүүр бичээд түүгээрээ LPD-н үүсгэсэн толгой хэсгийг салгаж аван &postscript; хувилбарыг нь үүсгэх. Хэрэв хэрэглэгч lpr -h тушаал хэрэглэвэл LPD толгой хэсэг үүсгэхгүй бөгөөд бас таны гаралтын шүүлтүүрийг ажиллуулахгүй. Бусад үед гаралтын шүүлтүүр нь LPD-с текстийг уншаад түүнд тохирсон &postscript; толгой хуудсыг хэвлэгчид өгдөг. Хэрэв танд цуваа холболттой &postscript; хэвлэгч байгаа бол lprps-г та хэрэглэж болох бөгөөд энэ нь дээр ярьсан зүйлийг гүйцэтгэж чаддаг psof нэртэй гаралтын шүүлтүүртэй хамт ирдэг. Тэмдэглэж хэлэхэд, psof нь толгой хуудсанд тооцоо боддоггүй. Сүлжээгээр хэвлэх хэвлэгчид сүлжээ сүлжээгээр хэвлэх FreeBSD нь хэвлэх ажлыг алсад буй компьютер руу илгээж сүлжээгээр хэвлэхийг бас дэмждэг. Сүлжээгээр хэвлэх нь хоёр зүйлийг хамарч байдаг. Алсад буй компьютерт залгагдсан хэвлэгч рүү хандах. Та нэг хэвлэгчийг нэг компьютер дээр тохирох цуваа юм уу зэрэгцээ холболтоор хэвлэгчийг залгана. Дараа нь та LPD-г суулгаж алсад буй компьютер уг хэвлэгч залгагдсан компьютер руу хандаж болохыг тохируулна. Алсад буй компьютерт залгагдсан хэвлэгч хэсэгт үүнийг хэрхэн хийх талаар зааварласан бий. Шууд сүлжээнд залгагдсан хэвлэгч рүү хандах. Ийм хэвлэгч нь ердийн цуваа юм уу эсвэл зэрэгцээ холболтын интерфэйсээс гадна (эсвэл оронд нь) сүлжээний залгууртай байдаг. Ийм хэвлэгч дараах маягаар ажилладаг: Хэвлэгч LPD-н дамжуулах протоколыг таньж ойлгох ба алсаас ирүүлсэн ажлуудад дараалал үүсгэж чаддаг. Ийм тохиолдолд уг хэвлэгч нь өөр дээрээ LPD суулгасан ердийн компьютер шиг ажиллах болно. Алсад буй компьютерт залгагдсан хэвлэгчид хэсэгт иймэрхүү хэвлэгчийг хэрхэн тохируулах талаар харна уу. Хэвлэгч нь сүлжээгээр өгөгдлийг урсгал мэт хүлээж авдаг тийм төрлийн холболт дэмждэг байж болох юм. Энэ тохиолдолд та нэг компьютерт уг хэвлэгчийг залгаад суулгасан компьютер нь ирж буй ажлуудыг түр хадгалах хариуцлагыг нь дааж хэвлэгч рүүгээ өгөгдлийг урсгаж байхаар тохируулах хэрэгтэй. Сүлжээний өгөгдлийн урсгал холболтын төхөөрөмжтэй хэвлэгчид хэсэгт ийм төрлийн хэвлэгчийг хэрхэн суулгах талаар зааварласан байгаа. Алсад буй компьютерт залгагдсан хэвлэгчид LPD-д өөрт нь өөр газар LPD (эсвэл LPD-тэй зохимжтой) ажиллаж байгаа машин руу хэвлэх ажлыг илгээж чаддаг ажиллагаа байдаг. Энэ шинж чанарыг ашиглаж та өөр компьютерт хэвлэгчээ залгаад түүнд өөр газраас хандаж болох боломж нээж өгч байна. Энэ арга нь мөн LPD дамжуулах протоколыг ойлгодог хэвлэгчид дээр бас ажиллана . Иймэрхүү алсаас хэвлэх ажиллагааг гүйцэтгэхийн тулд эхлээд хэвлэгчээ хэвлэгчийн эзэн болгож нэг машинд Хэвлэгч суулгах энгийн явц хэсэгт заасны дагуу залгах хэрэгтэй. Шаардлагатай бол Хэвлэгчийн нэмэлт тохиргоо хэсэгт заасан тохиргоог хийж болно. Хэвлэгчээ хэвлэж байгааг нь магадлаад LPD тохиргоог зөвшөөрсөн эсэхийг шалгах хэрэгтэй. Мөн remote host дотор local host нь LPD үйлчилгээг хэрэглэх эрхтэй эсэхийг шалгаарай (Алсад буй хэвлэгчид хэвлэх хязгаарлалт хийх хэсэгт харна уу). хэвлэгчид сүлжээ сүлжээгээр хэвлэх Хэрэв та сүлжээний карттай бөгөөд LPD протокол дэмждэг хэвлэгч хэрэглэж байгаа бол дээр өгүүлснээр хэвлэгчийн эзэн болон хэвлэгчийн нэр нь уг тохируулж буй хэвлэгчийн нэр байх ёстой. Хэвлэгчтэй хамт ирсэн үйлдвэрлэгчийнх нь гарын авлагаас хэвлэгчийнх нь тухай эсвэл сүлжээний төхөөрөмжийнх нь тухай мэдээллийг хараарай. Хэрэв та Hewlett Packard Laserjet хэвлэгч хэрэглэж байгаа бол text нэртэй хэвлэгч нь автоматаар LF-г CRLF руу хувиргадаг болохоор hpif скрипт хэрэглэх шаардлагагүй. Дараа нь хэвлэгч рүү хандах гэж буй нөгөө машины /etc/printcap файл дотор дараах зүйлсийг оруулж өгдөг: Хүссэн нэрээ оруулна. Алсад буй компьютерийн нэрэнд давхар нэр өгч оруулан амарчилж болох юм. lp тохиргоог хоосон орхино. (:lp=:). Түр хадгалах сан үүсгэж түүний байршлыг sd хэсэгт зааж өгдөг. LPD нь алсад буй хэвлэгч рүү ажлуудыг илгээхээсээ өмнө энэ санд хадгалдаг. Хэвлэгчийн эзний нэрийг rm хэсэгт бичиж өгнө. Хэвлэгчийн эзэнд холбогдсон хэвлэгчийн нэрийг rp хэсэгт оруулна. Ингээд болох нь тэр. Та хувиргах шүүлтүүр, цаасны хэмжээ гэх мэтийг /etc/printcap файл дотор оруулах шаардлагагүй. Энд нэг жишээ татъя. rose нэртэй машин bamboo болон rattan гэсэн хоёр хэвлэгчтэй. Бид одоо orchid машиныг уг хэвлэгчид рүү хандаж болдог болгож тохируулцгаая. Энд ( Толгой хуудсыг зөвшөөрөх хэсгээс дахин авав) orchid машины /etc/printcap файл хэрхэн харагдаж байгааг харуулав. Уг машинд өмнө нь teak нэртэй машин тохируулагдсан байгаа бөгөөд бид rose машины хоёр хэвлэгчийг нэмэх болно: # # /etc/printcap for host orchid - added (remote) printers on rose # # # teak is local; it is connected directly to orchid: # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: # # rattan is connected to rose; send jobs for rattan to rose: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # bamboo is connected to rose as well: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: Дараа нь бид orchid дээр түр хадгалах сан нэмэх хэрэгтэй: &prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo Одоо orchid дээрх хэрэглэгчид rattan болон bamboo хэвлэгчдийг хэрэглэж чадна. Жишээ нь orchid дээрх хэрэглэгч дараах тушаал өгвөл: &prompt.user; lpr -P bamboo -d sushi-review.dvi orchid дээрх LPD систем хэвлэх ажлуудыг /var/spool/lpd/bamboo гэсэн түр хадгалагч руу хуулна. Энэ хэвлэгдэх ажил нь DVI файл байсныг та анзаарна уу. rose машинд bamboo түр хадгалах сан үүсэнгүүт хоёр машины LPD-ууд хоорондоо уг файлыг rose машин уруу дамжуулдаг. Дараа нь уг файл rose-н дараалалд очиж зогсоод хэвлэгдэх хүртлээ хүлээгдэнэ. Энэ файл DVI-с &postscript; уруу (bamboo нь &postscript; хэвлэгч учир) rose дээр хувиргагдана. Сүлжээгээр өгөгдлийг урсгал хэлбэрээр дамжуулдаг холболттой хэвлэгчид Ихэнх тохиолдолд, хэвлэгчдэд зориулж сүлжээний төхөөрөмж авах үед танд хоёр сонголт бий: түр хадгалагчтай (илүү үнэтэй), эсвэл цуваа юм уу зэрэгцээ холболтоор холбогдсон мэт өгөгдлийг хэвлэгч рүү шууд илгээдэг (хямд үнэтэй). Энэ хэсэгт хямд үнэтэйг нь авч хэлэлцэнэ. Үнэтэйг нь Алсад буй компьютерт холбогдсон хэвлэгчид хэсгээс хараарай. /etc/printcap файлд ямар цуваа юм уу эсвэл ямар зэрэгцээ холболт хэрэглэхийг зааж өгдөг бөгөөд (хэрэв та цуваа холболтоор холбосон бол ) ямар давтамжаар илгээх, ямар урсгал хянагч ашиглах, илгээх завсарлагаа, шинэ мөр тэмдгийг хэрхэн хувиргах гэх мэтчилэн маш олон зүйлийг тохируулж болно. Хэрэв хэвлэгч TCP/IP порт юм уу эсвэл өөр сүлжээний порт чагнаж байгаа хэвлэгчийг энд зааж өгөх боломжгүй. Сүлжээнд холбогдсон хэвлэгч рүү илгээхийн тулд текст болон хувиргах шүүлтүүрээр дуудагдаж болдог холболтын програм та бичих хэрэгтэй. Энд нэг жишээ үзүүлье. netprint нэртэй скрипт нь бүх өгөгдлийг ердийн оролтоос аваад сүлжээнд холбогдсон хэвлэгч рүү илгээх болно. Хэвлэгч холбогдсон компьютерийн нэрийг нь эхний утгаар авах бөгөөд хоёр дахь утгаараа чагнаж буй портын дугаарыг netprint-д өгнө. Тэмдэглэж хэлэхэд, энэ нь зөвхөн нэг чиглэлтэй холболт (FreeBSD-с хэвлэгч рүү) бөгөөд ихэнх сүлжээний хэвлэгчид хоёр тийш чиглэсэн холболтыг дэмждэг болохоор тэр чанарыг нь та мөн ашиглаж болох юм (хэвлэгчийн төлөв байдлыг мэдэх, бүртгэл хийх гэх мэт). #!/usr/bin/perl # # netprint - Text filter for printer attached to network # Installed in /usr/local/libexec/netprint # $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; $printer_host = $ARGV[0]; $printer_port = $ARGV[1]; require 'sys/socket.ph'; ($ignore, $ignore, $protocol) = getprotobyname('tcp'); ($ignore, $ignore, $ignore, $ignore, $address) = gethostbyname($printer_host); $sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) || die "Can't create TCP/IP stream socket: $!"; connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; while (<STDIN>) { print PRINTER; } exit 0; Дараа нь бид энэ скриптийг янз бүрийн шүүлтүүртэй хамт хэрэглэж болно. Сүлжээнд Diablo 750-N туузан хэвлэгч холбогдсон байна гэж авч үзье. Хэвлэгч хэвлэгдэх өгөгдлийг 5100 гэсэн портын дугаар дээр хүлээж авна. Хэвлэгчийн холбогдсон компьютерийн нэр нь scrivener. Одоо энэ хэвлэгчид дараах текст шүүлтүүр хэрэглэе: #!/bin/sh # # diablo-if-net - Text filter for Diablo printer `scrivener' listening # on port 5100. Installed in /usr/local/libexec/diablo-if-net # exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 Хэвлэгч хэрэглэх хязгаарлалт хэвлэгчид хэрэглэх хязгаарлалт Энэ хэсэгт хэвлэгч хэрэглэлтийг хязгаарлах талаар өгүүлэх болно. LPD систем хэвлэгчийг гадаад сүлжээ юм уу дотоодоос хэн олон хувилах, хэр зэрэг том хэмжээний ажил хэвлэж болох, хэвлэгчийн дараалал хэр урт байх ёстой зэргийг зааж өгч болно. Олон хэвлэлтийг хязгаарлах LPD нь хэрэглэгчдэд нэг файлыг олон хэвлэхийг амарчилж өгдөг. Хэрэглэгч нар lpr -#5 (жишээ болгож) тушаалаар файлыг таван удаа хувилж чадна. Үүний сайн эсэх нь танаас хамаарна. Хэрэв ингэж олон хувилах нь цаг болон цаасны дайсан юм байна гэж үзэж байгаа бол сонголтыг &man.lpr.1; дээр хорьж болох бөгөөд ингэхийн тулд sc сонголтыг /etc/printcap файл дотор оруулж өгнө. Хэрэв хэрэглэгч сонголттой хэвлэх тушаал илгээвэл дараах мэдэгдлийг харах болно: lpr: multiple copies are not allowed Хэрэв та алсын хэвлэгч тохируулсан байвал (Алсын компьютерт холбогдсон хэвлэгчид хэсгээс харна уу) sc сонголтыг алсад буй компьютерийн /etc/printcap файл дотор хийж өгөхгүй бол хэрэглэгчид хүссэн тоогоороо хувилж чадсаар байх болно. Энд нэг жишээ авцгаая. Дараах файл бол алсад буй rose компьютерийн /etc/printcap файл. Хэвлэгч rattan нь нэлээн өгөөмөр бөгөөд хэн хүссэнд нь хувилж өгдөг байхад лазер хэвлэгч bamboo нь нэлээн харамч болохоор өөртөө sc тохиргоог агуулж байна: # # /etc/printcap for host rose - restrict multiple copies on bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Одоо sc тохиргоог мөн orchid компьютерийн /etc/printcap файл дотор оруулж өгөх хэрэгтэй (бид өөрсдөө энэ компьютер дээр байгаа болохоор teak хэвлэгч дээр олон хуулбар хийхийг хорих болно): # # /etc/printcap for host orchid - no multiple copies for local # printer teak or remote printer bamboo teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: sc тохиргоог хэрэглэснээр lpr -# тушаалын хэрэглээг хорих боловч &man.lpr.1; тушаалын олон удаагийн хэрэглээ юм уу эсвэл нэг удаагийн хэвлэгдэх ажилд нэг файлыг дараах маягаар олон илгээхийг хорих боломжгүй: &prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign Үүнийг хорих олон арга бий бөгөөд та чөлөөтэй оролдон үзэх хэрэгтэй (үл тоомсорлох аргыг оруулаад). Хэвлэгч рүү хандах хандалтыг хязгаарлах &unix;-н бүлэглэл болон /etc/printcap файлын rg тохиргоог ашигласнаар ямар хэвлэгч рүү хэн хандаж юм хэвлэж болохыг та тохируулж болдог. Нэг тодорхой бүлэгт хэрэглэгчдээ хамруулж оруулаад тэр бүлгийнхээ нэрийг rg тохиргоонд бичиж өгөөд л болох нь тэр. Хэрэв уг бүлэгт хамаараагүй хэрэглэгч (root-г оруулаад) тухайн хяналттай хэвлэгч рүү юм хэвлэхийг оролдох үед доорх мэдэгдлийг харуулах болно: lpr: Not a member of the restricted group sc (suppress multiple copies буюу олон хуулбарыг хорих) тохиргооны адилаар алсын компьютерууд таны хэвлэгч рүү хандахаар хэрэв та зөвшөөрсөн бол rg-г тохируулах хэрэгтэй болно. (Алсын компьютерт суугдсан хэвлэгчид хэсгээс харна уу) Жишээ нь, ямар ч хэрэглэгч rattan хэвлэгч рүү хандаж чадахаар, харин artists бүлгийн хэрэглэгчид зөвхөн bamboo хэвлэгчийг хэрэглэж болно гэж үзье. Энд бидний танил rose компьютерийн /etc/printcap файлыг харуулж байна: # # /etc/printcap for host rose - restricted group for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: /etc/printcap файлын ( orchid машины) тохиргоог орхие. Мэдээж orchid дээрх хэн гуай ч bamboo-г хэрэглэж чадахгүй. Магадгүй orchid дээрх онцгой хэрэглэгчдийг хэвлэгч рүү хандах эрх олгож болох юм. Үгүй ч байсан болох юм :) Хэвлэгч бүрд зөвхөн нэг л хязгаарлах бүлэг байж болно. Хэвлэгдэхээр илгээгдэх файлын хэмжээг хязгаарлах хэвлэх Хэрэв танд хэвлэгч хэрэглэх эрхтэй хэвлэгчид байгаа бол тэдгээрийн хэвлэх файлд нь хэмжээг нь хязгаарлах тохиргоо хийхийг хүсэж болох юм. Хэдийгээр файл систем дээрх хэвлэгчийн түр хадгалагчийн санд хангалттай зай байгаа ч гэсэн хэрэглэгч бүрд тохирсон тодорхой хэмжээг зааж өгөх шаардлага гарч магадгүй. ажлыг хэвлэх хянах LPD нь mx тохиргоонд зааж өгсөн байтын хэмжээгээр хэвлэгдэх ажлын хэмжээг хязгаарлах боломж өгдөг. Хэмжих нэгж нь BUFSIZ-д зааж өгсөн багцын хэмжээ байдаг ба нэг багц нь 1024 байт байдаг билээ. Хэрэв та энэ тохиргоонд тэгийн тоо бичих юм бол файлын хэмжээнд хязгаар тавихгүй болно. Гэхдээ та ямар ч mx тохиргоо зааж өгөөгүй бол анхдагч хязгаарлалт нь 1000 багц байдаг. Энэ хязгаарлалт нь хэвлэгдэх гэж буй файлд хамаатай болохоос хэвлэгдэх бүх ажлуудыг хязгаарлана гэсэн үг биш. LPD нь хэвлэгдэх файл нь хязгаарласан хэмжээнээс их файл ирвэл татгалздаггүй харин хязгаар хүртэлх хэмжээг нь хэвлэх дараалалд оруулж өгдөг бөгөөд тэр хэсэг нь хэвлэгддэг. Үлдсэн хэсэг нь цуцлагдах болно. Иймэрхүү хязгаарлалт нь зөв буруу эсэх нь таны шийдэл билээ. Бидний жишээ болсон rattan болон bamboo нар дээрээ хязгаарлалт хийж үзэцгээе. artists-н &postscript; файлууд их хэмжээтэй байх хандлагатай байдаг болохоор тэдгээрийг таван мегабайтаас хэтрэхгүй гэж хязгаарлая. Энгийн текст файлд харин ямар ч хязгаарлалт өгөхгүй байя: # # /etc/printcap for host rose # # # No limit on job size: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:mx#0:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: # # Limit of five megabytes: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Зөвхөн дотоод хэрэглэгчдэд ийм хязгаарлалт хэрэгжих болно гэдгийг дахин сануулъя. Хэрэв та алсад буй хэвлэгчид ийм хязгаарлалт хийвэл алсаас хандагдаж буй хэрэглэгчдэд энэ хязгаарлалт хүчингүй. Үүнийг биелүүлэхийн тулд алсад буй машины /etc/printcap файл дотор mx тохиргоог зааж өгөх ёстой. Алсад буй компьютер дээр холбогдсон хэвлэгчид хэсгээс алсын хэвлэлт хийх талаар уншаарай. Алсад буй хэвлэгчид хязгаарлалт тавих өөр нэг онцгой арга байдаг. Алсын хэвлэгч дээр хэвлэх үйлдлийг хязгаарлах хэсгээс дэлгэрэнгүй уншина уу. Алсаас хэвлэгч дээр хэвлэх үйлдлийг хязгаарлах LPD нь алсын компьютераас илгээгдсэн хэвлэх ажлыг бас хянаж болдог боломж олгодог: Компьютерээр нь хязгаарлах Дотоод LPD руу ямар компьютер хандаж болохыг /etc/hosts.equiv болон /etc/hosts.lpd файлд зааж өгснөөр хянаж болдог. LPD нь саяны хоёр файлын аль нэгэнд нь хэвлэлт хүссэн компьютерийн нэр байгаа эсэхийг шалгадаг. Хэрэв нэр нь байхгүй бол LPD уг хүсэлтээс татгалздаг. Уг файлын загвар бол тун энгийн. /etc/hosts.equiv файл нь мөн &man.ruserok.3; протоколд хэрэглэгддэг бөгөөд &man.rsh.1; болон &man.rcp.1; зэрэг програмд нөлөөлдөг болохоор тун болгоомжтой хэрэглэхийг сануулж байна. Жишээ нь, rose компьютер дээрх /etc/hosts.lpd файл: orchid violet madrigal.fishbaum.de Энэ нь тэгэхээр rose компьютер нь orchid, violet, болон madrigal.fishbaum.de зэрэг компьютераас хэвлэх хүсэлт хүлээж авч болно гэсэн үг. Хэрэв эдгээрээс өөр компьютерууд roseLPD руу хандахыг хүсвэл тэр хүсэлт нь татгалзагдах болно. Хэмжээгээр нь хязгаарлах Түр хадгалагч санд байрлаж болох файлуудын хэмжээ нь хэд хүртэл байж болохыг хянаж болдог. Дотоод хэвлэгчид зориулсан түр хадгалах сан дотор minfree нэртэй файл үүсгэх хэрэгтэй. Уг файл дотор алсаас ирсэн хэвлэгдэх ажлын хэмжээ нь хичнээн дискний багцаар (512 байт) байж болох дугаарыг бичиж өгдөг. Ингэснээр алсаас хэрэглэх хэрэглэгчид таны дискийг дүүргэхээс сэргийлнэ. Та энэ файлыг ашигласнаар бас тодорхой дотоод хэрэглэгчдэд давуу эрхийн дараалал тогтоож болдог ба minfree файлд зааж өгсөн хэмжээнээс хэтэрсэн хэмжээгээр нь дараалал тогтоодог. Жишээ болгож minfree файлыг bamboo хэвлэгчид зориулж нэмж үзье. Бид /etc/printcap файл дээр дадлага хийх бөгөөд хэвлэгчид зориулсан түр хадгалагч тохируулсан хэсгийг нь олж харцгаая. Ингээд bamboo-н оруулгыг харуулъя: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: Түр хадгалах санг sd тохиргооны хэсэгт зааж өгсөн байна. Одоо LPD-н алсаас илгээгдсэн хэвлэгдэх ажилд зориулж гурван мегабайт хэмжээг (6144 дискний багц) зааж өгцгөөе. : &prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree Хэрэглэгчээр нь хязгаарлах Та ямар хэрэглэгч алсаас хэвлэх хүсэлт тавьж болохыг /etc/printcap файл дотор rs тохиргооны хэсэгт зааж өгдөг. Хэрэв дотоод хэвлэгчийн оруулгын хэсэгт rs гэж харагдвал LPD нь алсаас хэвлэх хүсэлт илгээсэн компьютерийн хэрэглэгч хэрэв дотоод компьютер дээрх нэвтрэх эрхтэй ижилхэн нэртэй хэрэглэгч байвал зөвшөөрөл өгч хэвлүүлнэ. Бусад тохиолдолд LPD нь тухай ажлыг хэвлэхээс татгалзана. Энэ тохиргоо нь (жишээлбэл) нэг хэвлэгчийг хувааж хэрэглэдэг олон салбартай байгууллагад ашиглагдаж болох бөгөөд зарим хэрэглэгчид нь хэд хэдэн салбарт харьяалагддаг бол уг хэрэглэгчид эрх өгснөөр өөрийнхөө байгаа салбараас өөр салбарт буй хэвлэгчид хэвлэх ажил илгээх маягаар ашиглаж болох юм. Хэрэв та тэдгээр хэрэглэгчдийг зөвхөн таны хэвлэгчийг л хэрэглэх бөгөөд бусад зүйлсийг ашиглуулахгүй гэж бодож байгаа бол тэд нарт эхлэл сан байхгүй бөгөөд /usr/bin/false гэсэн хэрэглэгдэхгүй бүрхүүлтэй хязгаарлагдмал бүртгэл үүсгэх хэрэгтэй. Хэвлэгчийн хэрэглээнд бүртгэл тооцох бүртгэл хэвлэгч За тэгэхээр та хэвлэлт болгонд мөнгө тооцох шаардлага байг. Цаас болон хэвлэх хорнуудыг мөнгөөр авдаг болохоор яагаад болохгүй гэж? Мөн дээрээс нь хэвлэгчийн эд анги байнга хөдөлж эвдрэх магадлалтай байдаг болохоор хэвлэгчээ тордох нь бас үнэтэй билээ. Та хэвлэгчээ арчилж хуудас болгондоо (эсвэл хуудасны хэсэг бүрд, гарчиг бүрд, эсвэл юу ч байсан яахав) мөнгө тооцохыг хүсэв. Тэгэхээр та яаж хэвлэгдсэн хуудас болгонд мөнгө тооцож чадах вэ? Гэхдээ, жаахан таагүй мэдээ нь юу вэ гэхээр LPD түр хадгалагч гуай иймэрхүү талын үйлчилгээ хийхдээ тун тааруу юм. Иймэрхүү бүртгэл тооцоо нь хэвлэгчээ хэрхэн ашиглахаас их хамаардаг бөгөөд хэвлэгдэх загвар, мөн таны хэвлэгчээсээ мөнгө олборлох шаардлагаас их шалтгаална. Бүртгэл тооцоо хийхийн тулд та хэвлэгчийнхээ текст шүүлтүүрийг өөрчлөх хэрэгтэй (энгийн текст ажлаас мөнгө тооцохын тулд) бөгөөд мөн хувиргагч шүүлтүүрүүдийг бас (мөн бусад файл төрлүүдээс) өөрчлөх шаардлагатай. Энгийн шүүлтүүр ашиглаад та бүртгэл тооцоо хийж чадахгүй. Шүүлтүүр хэсгийг харна уу. Ерөнхийдөө бүртгэл тооцоо хийж болох хоёр арга бий: Үечлэн бүртгэл тооцох гэдэг бол тун амархан бөгөөд байнга хэрэглэгддэг арга. Хэн нэгэн хэвлэх үед хэрэглэгчийн нэр, компьютерийн нэр, мөн хэвлэсэн хуудасны дугаар зэргийг бүртгэл файлд хадгалдаг. Хэвлэгчдээ зориулсан нэгжийнх нь тооцоог та сараар, эсвэл жилээр, эсвэл өөрийнхөө заасан хугацаагаар хэрэглэгч бүрийн хувьд тохирсон жагсаалт авч болдог. Ингэж бүртгэл тооцоо хийгээд уг файлыг цэвэрлэж дараагийн үеэр нь мөн тооцоо хийхээр бэлтгэнэ. Цагаар бүртгэж тооцох гэдэг нь жаахан хэцүү болохоор нэлээн бага хэрэглэгддэг. Энэ арганд хэрэглэгчдийг хэвлэж эхлэнгүүт тооцоо хийдэг шүүлтүүр байдаг. Дискний хэмжээ хязгаарлагчтай ижилхэн энэ бүртгэл тооцоо нь харьцангуй шулуухан гүйцэтгэгддэг. Та хэрэглэгчдийн бүртгэлд заагдсан хэмжээ дуусах дөхөхөөр хэвлүүлэхгүй болгож болохоос гадна хэрэглэгчдэд өөрсдийн хэвлэх хувийг шалгаж тохируулах боломжийг олгон тохируулж болох юм. Гэвч энэ арга нь хэрэглэгчийн бүртгэл болон тэдгээрийн хязгаарласан хэмжээг мөрдөхийн тулд зарим өгөгдлийн бааз руу хандах шаардлагатай байдаг. Та шаардагдах шүүлтүүрүүдийг, мөн бүртгэж тооцоо хийх кодыг нь хангаж чадаж л байвал LPD түр хадгалагч систем нь өмнө тайлбарласан хоёр аргыг дэмждэг. Бүртгэж тооцох арганд бас онцгой тал байдаг. Жишээ нь та үечилж үү эсвэл цагаар тооцох уу гэдгээ сонгож болно. Та ямар мэдээллийг бүртгэж бичихээ сонгоно: хэрэглэгчийн нэр, компьютерийн нэр, хэвлэсэн төрөл, хэвлэгдсэн хуудасны тоо, загвар, хэр удаан хэрэглэсэн гэх мэт. Та шүүлтүүрүүдийг өөрчилж эдгээр мэдээллийг хадгалдаг болгох хэрэгтэй. Хэвлэлтэд тооцоо хийх түргэн бөгөөд бохир арга FreeBSD нь бүртгэл тооцоо хийхэд хэрэглэгдэх хоёр үечлэн тооцоо хийдэг програмтай хамт ирдэг. Тэдгээр нь lpf текст шүүлтүүрүүд бөгөөд lpf: Текст шүүлтүүр хэсэгт тайлбарлагдсан байгаа. Нөгөөх нь &man.pac.8; бөгөөд энэ нь хэвлэлтийн бүртгэл тооцоо хийх файлд буй оруулгуудыг цуглуулдаг програм. Шүүлтүүрийн хэсэгт тайлбарласны дагуу (Шүүлтүүрүүд), LPD нь текст болон хувиргагч шүүлтүүрийг бүртгэл файлтай нь хамт шүүлтүүрийн тушаалын мөрнөөс эхлүүлдэг. Шүүлтүүр нь ингэж тушаалын мөрнөөс авсан утгаар хаана бүртгэл файлд оруулах вэ гэдгээ мэддэг. Энэ файлын нэр нь /etc/printcap файл доторх af тохиргоонд заагдсан байдаг ба хэрэв файлынх нь зам нь яг нарийвчилж заагдаагүй байгаа бол түр хадгалагчийн сангийн байрлалтай харьцангуй хэлбэрээр мөн зааж өгч болно. LPD нь lpf-г хуудасны өргөн болон өндрийн утгатай нь (pw болон pl тохиргуулаас авч) эхлүүлдэг. lpf нь эдгээр утгыг ашиглаж хичнээн хуудас хэвлэгдэх вэ гэдгийг тодорхойлдог. Файлыг хэвлэгч рүү илгээсний дараа бүртгэл тооцооны файлд тооцоо хийх утга нь оруулагддаг. Энэ оруулга нь дараах маягтай байдаг: 2.00 rose:andy 3.00 rose:kelly 3.00 orchid:mary 5.00 orchid:mary 2.00 orchid:zhang Та болж өгвөл хэвлэгч болгонд тус тусад нь бүртгэл тооцооны файл хөтлөх хэрэгтэй. Учир нь lpf-д ямар ч түгжиж зохицуулдаг шинж чанар байхгүй болохоор хоёр lpf-ууд нэг файлд хандах тохиолдолд мөргөлдөөн үүсэж болзошгүй. Тус тусад нь бүртгэл тооцооны файл хөтлөх амар арга бол /etc/printcap дотор af=acct гэсэн тохиргоог оруулах хэрэгтэй. Дараа нь хэвлэгчид зориулсан түр хадгалах сан бүрд acct гэсэн файл хөтлөгдөх болно. Хэрэглэгчдээс хэвлэлтийн төлбөрийг шаардах үедээ &man.pac.8; програмыг ажиллуулах хэрэгтэй. Тооцоо хийх хэвлэгчийнхээ түр хадгалах санд оронгуутаа pac гэсэн тушаал ажиллуулахад болно. Дараа нь доллараар тооцсон дараах маягийн үр дүнг харах болно: Login pages/feet runs price orchid:kelly 5.00 1 $ 0.10 orchid:mary 31.00 3 $ 0.62 orchid:zhang 9.00 1 $ 0.18 rose:andy 2.00 1 $ 0.04 rose:kelly 177.00 104 $ 3.54 rose:mary 87.00 32 $ 1.74 rose:root 26.00 12 $ 0.52 total 337.00 154 $ 6.74 &man.pac.8;-тай хамт хавсруулж хэрэглэдэг сонголтуудыг жагсааж харуулъя: Энэ нь тооцоо бодох хэвлэгчийг зааж өгнө. /etc/printcap файл доторх af сонголтод яг нарийвчилсан файлын зам зааж өгсөн үед л энэ нь хэрэгждэг. Хэрэглэгчдийн нэрээр биш үнээр нь эрэмбэлж харуулдаг. Тооцоо хийх файлаас компьютерийн нэрийг алгасаж харуулдаг. Ийм үед alpha компьютер дээрх smith нэртэй хэрэглэгч gamma компьютер дээрх smith нэртэй хэрэглэгчээс ялгардаггүй. /etc/printcap файлд буй pc тохируулгад зааж өгсөн үнийн оронд нэгж хуудас болгоныг үнэээр үнэлж доллараар тооцдог бөгөөд эсвэл хоёр центээр ( анхдагч хэмжээ нь) тооцно. Та энэ үнэ-г бутархай тоон хэлбэрээр бас бичиж болно. Эрэмбэлэх дарааллыг эсрэгээр үйлдэнэ. Төлбөр тооцооны дүгнэсэн хуудас үүсгэж бүртгэл тооцооны файлыг богиносгодог. хэрэглэгч Зөвхөн зааж өгсөн хэрэглэгчийн бүртгэл тооцоог харуулна. &man.pac.8; боловсруулсан анхдагч тооцоонд янз бүрийн компьютераас хэвлэсэн хэрэглэгч бүрд хуудасных нь дугаарыг харуулдаг. Хэрэв танд компьютерийн нэр харуулах шаардлага байхгүй (хэрэглэгч янз бүрийн машинаас хэвлэсэн байж болно) гэж үзвэл pac -m гэсэн тушаалаар доорх маягаар үр дүнг харах болно: Login pages/feet runs price andy 2.00 1 $ 0.04 kelly 182.00 105 $ 3.64 mary 118.00 35 $ 2.36 root 26.00 12 $ 0.52 zhang 9.00 1 $ 0.18 total 337.00 154 $ 6.74 Долларын хэмжээг тооцохын тулд &man.pac.8; нь /etc/printcap доторх pc тохиргооны утгыг ашигладаг (анхдагч утга нь хуудас болгонд 200, эсвэл 2 цент гэж байдаг). Энэ тохируулгад хуудас бүрд юм уу эсвэл алхам бүрд тооцох центүүдийг зааж өгдөг. Та энэ утгыг &man.pac.8;-г ажиллуулахдаа гэсэн хавсралт сонголтоор дарж хэрэглэж болдог. сонголтод хэрэглэх утга нь центээр биш доллараар байх ёстой. Жишээ нь, &prompt.root; pac -p1.50 гэснээр хуудас бүр нэг доллар тавин цент болж байна. Та энэ тохиргоог ашиглаж үнэхээр ашиг олж болох юм шүү. Эцэст нь pac -s гэж тушааснаар дүгнэсэн тооцоог дүнгийн бүртгэл файл уруу хадгалах бөгөөд энэ файл нь хэвлэгчийн тооцооны файлын нэрийн ард нь _sum гэж залгагдсан нэртэй файл болж хадгалагдана. Дараа нь бүртгэлийн файлыг богиносгодог. Хэрэв та &man.pac.8;-г дахин ажиллуулбал энэ нь дүгнэлт файлаас нийт утгыг уншиж аваад ердийн тооцооны файлаас авсан утган дээр нэмээд ерөнхий нийт нийлбэрийг харуулах болно. Хэвлэгдсэн хуудасны тоог яаж тооцох вэ? Бүр алсаас бүртгэл хийлтийг зөв хийж гүйцэтгэхийн тулд ажил хэр их цаас ашигладгийг та тодорхойлж чаддаг байх хэрэгтэй. Энэ нь хэвлэгчийн бүртгэл хийлтийн үндсэн асуудал юм. Цэвэр текст ажлуудын хувьд энэ асуудлыг шийдэх нь тийм ч хэцүү биш юм: та ажилд хичнээн мөр байгааг тоолж тэр тоогоо таны хэвлэгч нэг хуудсандаа хичнээн мөрийг дэмждэгтэй харьцуулах хэрэгтэй. Мөрүүдийг давхар хэвлэдэг файл дахь устгах тэмдэгтүүд эсвэл нэг буюу хэд хэдэн нэмэлт мөрүүд болдог урт логик мөрүүдийг бодолцохоо мартуузай. Текст шүүлтүүр lpf (lpf: Текст шүүлтүүр хэсэгт танилцуулагдсан) нь бүртгэл хийхдээ эдгээр зүйлсийг бодолцдог. Бүртгэл хийх хэрэгтэй текст шүүлтүүр та бичиж байгаа бол lpf-ийн эх кодыг та магадгүй үзэхийг хүсэж болох юм. Тэгэхээр та бусад файлын хэлбэршилтүүдтэй хэрхэн ажиллах вэ? DVI-аас-LaserJet эсвэл DVI-аас-&postscript; руу хийх хөрвүүлэлтийн хувьд dvilj эсвэл dvips тушаалаас гарах оношлогооны гаралтыг та өөрийн шүүлтүүрээр оруулж хичнээн хуудаснууд хөрвүүлэгдсэнийг хайж олж болох юм. Бусад файлын хэлбэршилтүүд болон хөрвүүлэх програмуудын хувьд та эдгээртэй төстэй зүйлсийг хийж чадах ёстой. Гэхдээ хэвлэгч нь тэдгээр бүх хуудаснуудыг жинхэнэдээ хэвлэхгүй байж болох сул тал энэ аргуудад ажиглагддаг. Жишээ нь цаас гацах, хор дуусах, эсвэл дэлбэрсэн хэр нь хэрэглэгчид төлбөр ноогдуулсан хэвээр байж болох зэргийг дурдаж болох юм. Тэгэхээр та юу хийж чадах вэ? Зөв бүртгэл хийх цорын ганц найдвартай арга байдаг. Хичнээн цаас ашигладаг болохоо хэлж чаддаг хэвлэгч аваад цуваа шугамаар юм уу эсвэл сүлжээгээр залгах хэрэгтэй. Бараг бүх &postscript; хэвлэгчүүд үүнийг дэмждэг. Бусад загварууд бас ингэж чаддаг (жишээ нь сүлжээнд холбогдсон Imagen laser хэвлэгчүүд). Хэвлэгчүүдийг ажил бүрийг хэвлэснийхээ дараа хуудасныхаа хэрэглээг авч зөвхөн тэр утга дээрээ үндэслэн бүртгэлийн мэдээллээ бүртгүүлдэг болгохын тулд эдгээр хэвлэгчүүдийн хувьд шүүлтүүрүүдийг өөрчлөх хэрэгтэй. Мөр тоолох эсвэл алдаагүй файл шалгалт шаардлагагүй юм. Мэдээж та үргэлж өгөөмөр байж бүх хэвлэлтийг үнэгүй болгож болох юм. Хэвлэгчдийг ашиглах нь хэвлэгчид хэрэглээ Энэ хэсэгт таны FreeBSD дээр тохируулсан хэвлэгчийг хэрхэн хэрэглэх талаар өгүүлэх болно. Хэрэглэгчийн ашиглаж болох тушаалууд нь: &man.lpr.1; Хэвлэх үйлдлийг гүйцэтгэдэг &man.lpq.1; Хэвлэгчийн хэвлэх дарааллыг шалгадаг &man.lprm.1; Хэвлэгчийн хэвлэх дарааллаас устгадаг Энд мөн удирдаж зохицуулах тушаалууд байдаг. Тэр нь Хэвлэгчдийг зохицуулах хэсэгт өгүүлсэн &man.lpc.8; тушаал юм. &man.lpr.1;, &man.lprm.1;, мөн &man.lpq.1; гэсэн эдгээр тушаалууд нь бүгдээрээ гэсэн сонголт авдаг бөгөөд үүгээрээ /etc/printcap файлд буй хэвлэгч/дараалалтай ажилладаг. Энэ нь хэвлэгчийн ажлыг нэмэх, устгах эсвэл хэвлэгдэж байгаа ажлыг шалгах зэрэгт хэрэглэгддэг. Хэрэв та сонголт хэрэглэдэггүй бол PRINTER гэсэн орчны хувьсагчийн утгыг энэ тушаал хэрэглэдэг. Эцэст нь хэрэв танд PRINTER орчны хувьсагч зарлагдаагүй бол lp нэртэй хэвлэгчийг анхдагч хэвлэгч гэж ханддаг. Энд анхдагч хэвлэгч гэдэг нь PRINTER орчны хувьсагч дотор буй хэвлэгч юм уу эсвэл уг орчны хувьсагчид хэвлэгч заагдаагүй байвал lp гэсэн нэртэй хэвлэгч байна гэж авч үзэхийг хэлж байгаа юм. Хэвлэх ажиллагаа Файлыг хэвлэхийн тулд: &prompt.user; lpr файлын-нэр ... хэвлэх нь Энэ нь жагсааж өгсөн файлуудыг анхдагч хэвлэгч рүү илгээж хэвлэдэг. Хэрэв та ямар ч файл зааж өгөөгүй бол &man.lpr.1; нь гарнаас оруулах утгуудыг хэвлэгч рүү илгээдэг. Жишээ нь дараах тушаал нь системийн чухал файлуудыг хэвлэнэ: &prompt.user; lpr /etc/host.conf /etc/hosts.equiv Хэвлэгчийг онцгойлж сонгохыг хүсвэл : &prompt.user; lpr -P хэвлэгчийн-нэр файлын-нэр ... Дараах жишээн дээр тухайн байгаа сангийн файлуудыг жагсааж rattan нэртэй хэвлэгч рүү илгээхийх харуулах болно: &prompt.user; ls -l | lpr -P rattan Ямар ч файлын жагсаалт өгөөгүй болохоор &man.lpr.1; тушаал нь ls -l тушаалын гаралтыг өөрийнхөө оруулга гэж авч үзсэн байна. &man.lpr.1; тушаал нь файл хувиргалт хийх, олон хуулбарлаж хэвлэх гэх мэтчилэн маш олон төрлийн сонголт хүлээн авч хэвлэх үйлдлийнхээ загварыг өөрчилж чаддаг. Хэвлэх сонголтууд хэсгээс нэмэлт мэдээллүүдийг уншина уу. Хэвлэж буй ажлыг шалгах хэвлэх ажиллагаа &man.lpr.1; тушаалаар хэвлэгдэх зүйлс LPD түр хадгалагч дээр очдог бөгөөд тэдгээрийг ерөнхийд нь хэвлэгдэх ажил гэж нэрлэдэг. Хэвлэгч болгонд хэвлэгдэх ёстой ажлууд жагсаагдсан байдаг бөгөөд таны хэвлэхийг хүссэн юм тань бусад хэрэглэгчидтэй адилхан хэвлэгдэх дараалалд ээлжээ хүлээгээд зогсож байдаг. Хэвлэгч нь ирсэн зүйлсийг хэн-түрүүлж-ирнэ түүнийг-түрүүлж-хэвлэнэ гэсэн зарчим баримталж хэвлэдэг. Анхдагч хэвлэгчийн дарааллыг харуулахын тулд &man.lpq.1; тушаалыг бичдэг. Хэрэв хэвлэгчээр нь сонгож харахыг хүсвэл сонголт хэрэглэдэг. Жишээлбэл &prompt.user; lpq -P bamboo гэсэн тушаал нь bamboo нэртэй хэвлэгч дээр байгаа хэвлэх дарааллыг хардаг. Доорх хэсэгт lpq тушаалын гаралтыг харуулав: bamboo is ready and printing Rank Owner Job Files Total Size active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes 2nd kelly 10 (standard input) 1635 bytes 3rd mary 11 ... 78519 bytes Энэ нь bamboo хэвлэгчид гурван файл жагсаагдан ээлжээ хүлээж байгааг харуулсан байна. Эхний ээлжит ажлыг kelly хэрэглэгч илгээсэн бөгөөд хэвлэх дугаар нь 9 байна. Хэвлэх ажил болгон давтагдаагүй өөрийн гэсэн дугаар авдаг. Та хэвлэх дарааллын энэ дугаарыг хэрэгсэхгүй байж болох ч гэсэн хэрэв хэвлэх ажлыг цуцлах хэрэг гарвал уг дугаарыг мэдэж байх нь танд хэрэгтэй билээ. Энэ талаар Хэвлэх ажлыг устгах хэсгээс харна уу. Ес гэсэн дугаартай хэвлэх ажил нь хоёр ширхэг файлаас бүтсэн байна. &man.lpr.1; тушаалд хэрэв олон файл өгсөн бол тэдгээрийг нэг ажилд тооцдог. Энэ ажил нь одоогийн идэвхитэй ажил (Rank нэртэй баганад active гэж бичсэн байгааг анхаарна уу) бөгөөд хэвлэгч яг одоо түүнийг хэвлэж байна гэсэн үг. Хоёр дахь ажил нь стандарт оруулгаас &man.lpr.1; тушаал уруу илгээгдсэн ажил байна. Гурав дахь ажил нь mary хэрэглэгчээс илгээгдсэн бөгөөд нэлээн их хэмжээнийх юм байна. Файлын нэрийн урт нь их байгаа учраас &man.lpq.1; нь түүнийг гурван цэгээр товчилж харуулсан байна. &man.lpq.1; тушаалын гаралтын хамгийн эхний мөр бас чухал утга илэрхийлдэг нь: хэвлэгч яг одоо юу хийж байгааг (ядаж хэвлэгчийн юу хийж байгааг LPD нөхөр бодож байгааг) харуулдаг. &man.lpq.1; тушаал нь мөн сонголтыг дэмждэг бөгөөд энэ нь уртасгасан жагсаалтыг харуулдаг юм. Доор lpq -l тушаалын гаралтыг харуулав: waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host.conf 73 bytes /etc/hosts.equiv 15 bytes kelly: 2nd [job 010rose] (standard input) 1635 bytes mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes Хэвлэх ажлыг устгах Хэрэв та хэвлэе гэсэн бодлоо өөрчилбөл &man.lprm.1; тушаалаар хэвлэгдэх ажлыг устгаж болно. Мөн та &man.lprm.1; тушаалаар хэвлэгдэж байгаа ажлыг бас устгаж болдог боловч зарим хэсэг нь хэвлэгдэж магадгүй юм. Анхдагч хэвлэгчээс ажил устгахын тулд эхлээд &man.lpq.1; тушаал хэрэглэж дарааллынх нь дугаарыг нь мэддэг. Тэгээд дараа нь: &prompt.user; lprm дарааллын-дугаар Хэвлэгдэх ажлыг хэвлэгчийн нэрийг нь онцгойлж хандан устгахын хүсвэл сонголт хэрэглэнэ. Дараах тушаал нь bamboo нэртэй хэвлэгчээс 10 дугаартай ажлыг устгана: &prompt.user; lprm -P bamboo 10 &man.lprm.1; тушаалын хэд хэдэн товчлол бий: lprm - Танд хамаатай бүх хэвлэгдэх ажлыг устгадаг (анхдагч хэвлэгчээс). lprm хэрэглэгч Хэрэглэгч-д хамаатай бүх ажлыг устгана (анхдагч хэвлэгчээс). Супер хэрэглэгч мэдээж бүх хэрэглэгчдийн ажлыг устгаж болох бөгөөд хэрэв та биш бол зөвхөн өөрийнхөө л ажлыг устгана. lprm Ямар ч дарааллын дугаар, хэрэглэгчийн нэр, эсвэл сонголт зэргийг оруулаагүй бол танд хамаатай яг одоо хэвлэгч дээр идэвхитэй байгаа ажлыг &man.lprm.1; устгадаг. Супер хэрэглэгч бол яг одоо идэвхитэй байгаа хэний ч дараалал байсан гэсэн устгана. Дээрх товчлолуудыг сонголт ашиглан хэвлэгчийн нэр зааж өгөн ямар нэгэн хэвлэгч рүү онцгойлон хандаж болдог. Жишээлбэл дараах тушаал нь rattan хэвлэгчээс тухайн хэрэглэгчийн бүх дарааллыг устгана: &prompt.user; lprm -P rattan - Хэрэв та сүлжээний орчинд ажиллаж байгаа бол &man.lprm.1; тушаал нь өөр ижил нэртэй хэвлэгч өөр машинд залгаатай байсан ч зөвхөн илгээсэн компьютерийн л дарааллыг устгахад зөвшөөрдөг. Доорх жишээнд үүнийг тодруулав: &prompt.user; lpr -P rattan myfile &prompt.user; rlogin orchid &prompt.user; lpq -P rattan Rank Owner Job Files Total Size active seeyan 12 ... 49123 bytes 2nd kelly 13 myfile 12 bytes &prompt.user; lprm -P rattan 13 rose: Permission denied &prompt.user; logout &prompt.user; lprm -P rattan 13 dfA013rose dequeued cfA013rose dequeued Энгийн текстээс өөр зүйлс хэвлэх нь: Хэвлэх сонголтууд &man.lpr.1; тушаал нь текст загварчлах, зураг файлыг өөр хэлбэрт хувиргах, олон хуулбар хийх, хэвлэгдэж байгаа файлууд уруу хандах гэх мэтчилэн маш олон сонголттой. Энэ хэсэгт тэр тухай зааварлах болно. Хэлбэршүүлэх болон хувиргах сонголтууд Дараах &man.lpr.1;-н сонголтууд нь хэвлэгдэх ажлын хэлбэршүүлэлтийг хянадаг. Эдгээр сонголтуудыг хэрэв таны хэвлэх зүйлс тань энгийн текст хэлбэртэй биш юм уу эсвэл текстээ &man.pr.1; хэрэгсэл ашиглан өөрчилж хэвлэх үед хэрэглэнэ. &tex; Жишээлбэл дараах тушаал нь fish-report.dvi нэртэй DVI төрлийн файлыг (&tex; төрлийн бичилтийн системийн) bamboo хэвлэгч рүү явуулна: &prompt.user; lpr -P bamboo -d fish-report.dvi Энэ сонголт нь хэвлэгдэх гэж буй бүх файлд хэрэгждэг болохоор жишээ нь та DVI болон ditroff файлуудыг хамт хэвлэгч рүү илгээж болохгүй. Түүний оронд файлуудыг тусад нь тусдаа сонголттой илгээх хэрэгтэй. болон сонголтуудаас бусад бүх сонголтуудад хэвлэгч дээр суугдсан хөрвүүлж хувиргадаг шүүгч ажиллагаа шаардагддаг. Жишээ нь сонголт DVI хөрвүүлж хувиргадаг шүүлт шаарддаг. Хувиргагч шүүлтүүрүүд хэсэгт тодорхой өгүүлсэн буй. cifplot файлуудыг хэвлэнэ. DVI файлуудыг хэвлэнэ. FORTRAN текст файлуудыг хэвлэнэ. plot төрлийн зураг график файлуудыг хэвлэнэ. Гаралтыг тоогоор зай авч хэвлэнэ. Хэрэв та тоо оруулахгүй тушаавал 8 гэсэн зайгаар хэвлэнэ. Энэ сонголт зөвхөн тодорхой хэдэн шүүлтүүртэй л ажилладаг. сонголт болон тоо хоёрын завсар ямар ч зай байж болохгүй. Текст файлд буй зарим хянагч тэмдэгтүүдтэй нь шууд үсэгчлэн хэвлэнэ. ditroff (төхөөрөмж болгоноос хамааралгүй troff) өгөгдлийг хэвлэнэ. -p Хэвлэхээсээ өмнө энгийн текстийг &man.pr.1; хэрэгслээр хэлбэршүүлдэг. Нэмэлт мэдээллийг &man.pr.1; гарын авлагаас харна уу. &man.pr.1; хуудасны толгой хэсэгт файлын нэрийг байрлуулахын оронд зааж өгсөн Гарчиг-г хэвлэдэг. Энэ сонголт нь гэхдээ зөвхөн сонголт хэрэглэсэн үед л хэрэгждэг. troff өгөгдлийг хэвлэнэ. raster өгөгдлийг хэвлэнэ. Жишээ: Дараах тушаал нь &man.ls.1;-н гарын авлагыг аятайхан загварчлаад анхдагч хэвлэгчээр хэвлэнэ: &prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t &man.zcat.1; тушаал нь &man.ls.1; гарын авлагын эх шахсан файлыг нь задлаад GNU troff хэлбэрт оруулдаг &man.troff.1; тушаал уруу дамжуулна. Уг хэлбэрт оруулсны дараа &man.lpr.1; руу дамжигдах бөгөөд энэ нь хэвлэх ажлыг LPD түр хадгалагч уруу илгээдэг. Бид сонголт &man.lpr.1; дээр хэрэглэсэн болохоор түр хадгалагч хэвлэгдэх үед GNU troff гаралтыг хэвлэгчийн ойлгох хэлбэрт хувиргаж хэвлэнэ. Хэвлэлтэд хандах сонголтууд &man.lpr.1; тушаалд өгсөн дараах сонголтууд LPD дээрх хэвлэгдэх ажлуудад онцгойлж ханддаг: -# хуулбарлах-тоо Зөвхөн нэг удаа хэвлэгдэх ажлуудыг хуулбарлах-тоогоор хувилдаг. Систем хянаж зохицуулагч албатай хүн магадгүй хэвлэгчийн ингэж ахин дахин хуулбарлаж хэвлэхийн оронд хувилах фото хуулбар үүсгээд түүнийгээ шууд буулгах сонголт санал танд тавьж болох юм. Олон хуулбарлалтыг хязгаарлах хэсэгт тодорхой заасан байгаа. Доорх жишээн дээр parser.c файлыг гурав, parser.h файлыг мөн гурав хувилж анхдагч хэвлэгч рүү хэвлэж байна: &prompt.user; lpr -#3 parser.c parser.h -m Хэвлэх ажил дууссаны дараа захиа илгээнэ. Хэвлэгдэх ажил дууссаны дараа LPD систем таны бүртгэл рүү захиа явуулдаг. Захиан дотроо таны хэвлэх ажиллагаа амжилттай болсон эсвэл алдаа гарсан тухай мэдэгддэг бөгөөд алдаа гарсан байвал (голдуу) ямар алдаа гарсныг нь бичсэн байдаг. -s Түр хадгалагч сан уруу хуулахгүйгээр уг файлуудад тэмдэгт холбоос үүсгэдэг. Хэрэв та том хэмжээний файл хэвлэх гэж байгаа бол энэ сонголт танд тун хэрэг болно. Ингэснээр түр хадгалагчид буй дискний хэмжээг хэмнэдэг ( таны том хэмжээний файл түр хадгалагчийн хэмжээнээс хэтэрч түүнтэй зэрэгцээ орших зай уруу илүүдэж гарах аюултай). LPD мөн хэвлэх файлыг хуулах гэж цаг зарцуулахгүй түргэн байх болно. Нэг сул тал бий: LPD нь хэвлэгдэх файл уруу шууд хандаж байгаа болохоор хэвлэгдэж дуусахаас нааш та уг файлыг засварлаж чадахгүй байх болно. Хэрэв та сүлжээгээр өөр хэвлэгч рүү хэвлэж байгаа бол LPD нь уг компьютераас алсад буй хэвлэгч рүү файлыг хуулдаг болохоор сонголт нь дотоод зайгаа хэмнэхээс биш алсад буй компьютерийн дискний зайг хэмнэдэггүй. Гэвч ийм байсан ч хэрэгтэй сонголт билээ. -r Түр хадгалагч уруу хуулсны дараа юм уу эсвэл сонголт хэрэглэж хэвлэсний дараа уг файлыг утсгана. Энэ сонголтыг тун болгоомжтой хэрэглэнэ үү! Хуудасны толгой хэсгийг загварчлах сонголтууд &man.lpr.1; тушаалд хэрэглэсэн эдгээр сонголтууд нь хуудасны толгой хэсэгт хэвлэгддэг текстийг зааж өгөхөд хэрэглэгддэг. Хэрэв хуудасны толгой хэсгийг өөр програм өөрчилнө гэж заасан байвал энэ сонголт хүчингүй болдог. Хуудасны толгой хэсэг хэсэгт энэ талаар тодорхой өгүүлсэн байгаа. -C текст Толгой хэсэгт байдаг компьютерийн нэрийг зааж өгсөн текстээр орлуулдаг. Ердийн үед бол уг хэвлэх ажлыг илгээсэн компьютерийн нэр байдаг. -J текст Толгой хэсэгт байдаг хэвлэх ажлын нэрийг зааж өгсөн текстээр орлуулдаг. Ердийн үед ажлын нэр нь хэвлэх файлын нэр байдаг ба хэрэв та консолийн стандарт оруулга хэрэглэсэн бол stdin гэж байдаг. -h Толгой хэсэггүй хэвлэнэ. Хэрэв өөр програмаар толгой хэсэг нь бэлтгэгдсэн бол энэ сонголт зарим тохиолдолд хүчингүй болдог. Хуудасны толгой хэсэг хуудсанд энэ тухай тайлбарласан буй Хэвлэгчдийг зохицуулах Хэвлэгчдийг зохицуулагчийн зүгээс тэдгээрийг суулгаж шалгахад үүрэгтэй байдаг. &man.lpc.8; тушаал ашиглан хэвлэгчтэйгээ та олон аргаар харилцаж чадна. &man.lpc.8; тушаал ашиглан Хэвлэгчийг эхлүүлэх болон зогсоох Хэвлэгдэх дарааллыг хорих болон зөвшөөрөх Дараалалд буй хэвлэгдэх ажлын ээлж дарааг өөрчлөх Эхлээд жаахан тодруулцгаая: Хэрэв хэвлэгч зогссон бол дараалалд буй ямар ч ажлыг хэвлэхгүй. Хэрэглэгчид хэвлэх ажил илгээж болох бөгөөд тийм ажлууд бүгд дараалалд нэмэгдэж хэвлэгчийг эхлэх хүртэл юм уу эсвэл дарааллыг цэвэрлэх хүртэл тэнд хадгалагдана. Хэрэв дараалал хоригдсон бол ямар ч хэрэглэгч (root хэрэглэгчээс бусад) хэвлэгч рүү юм илгээж чадахгүй. Дараалал зөвшөөрөгдсөн үед л хэвлэх ажил хүлээж авдаг. Хэвлэгч эхлэх үедээ мөн хоригдсон дарааллыг хоосортол нь хэвлэнэ. &man.lpc.8; тушаалыг хэрэглэхийн тулд та root эрхтэй байх хэрэгтэй байдаг. Энгийн хэрэглэгчид бол &man.lpc.8; тушаалыг хэвлэгчийн төлөв байдал юм уу эсвэл гацсан хэвлэгчийг эхлүүлэхэд хэрэглэнэ. Энд &man.lpc.8; тушаалын нэгтгэсэн жагсаалтыг харуулав. Ихэнх тушаалуудад онцгойлон хэвлэгч рүү хандахын тулд хэвлэгчийн-нэр нэмж өгдөг. Хэрэв та all гэж хэвлэгчийн-нэр-н оронд өгвөл /etc/printcap файл жагсаалттай буй бүх хэвлэгчийг илэрхийлэх болно. abort хэвлэгчийн-нэр Одоогийн хэвлэж байгаа ажлыг цуцлаад хэвлэгчийг зогсооно. Хэрэв дараалал хоригдоогүй бол хэрэглэгчид хэвлэх зүйлс илгээж байж болно. clean хэвлэгчийн-нэр Хэвлэгчийн түр хадгалагчид буй хуучин файлуудыг устгана. LPD уг файлыг ямар нэгэн шалтгааны улмаас устгаагүй байж болох юм. Энэ нь хэвлэх үед алдаа гарах, эсвэл зохион байгуулах зарим үйлдэл хийгдэх гэх мэт янз бүрийн шалтгаан байж болно. Энэ тушаал түр хадгалагч санд хамаарахгүй файлуудыг шалгаж олоод устгадаг. disable хэвлэгчийн-нэр Шинээр ирэх ажлуудад дарааллыг хорьно. Хэрэв хэвлэгч тухайн үед хэвлэж байвал дараалалд үлдсэн байгаа зүйлсүүдийг хэвлэдэг. Супер хэрэглэгч (root) дараалал хоригдсон байсан ч хэвлэх зүйл илгээдэг. Энэ тушаал шинэ хэвлэгчийн суулгац юм уу шүүлтийг шалгахад их хэрэгтэй. Жишээ нь хэвлэх дарааллыг хориод root эрхээр хэвлэж туршиж болно. Бусад хэрэглэгчид дарааллыг идэвхжих хүртэл дараалал уруу ажил илгээж чадахгүй. down хэвлэгчийн-нэр мэдээлэл Хэвлэгчийг унтраана. disable тушаалыг stop-тай хамт хэрэглэсэнтэй ижил. Хэрэв хэрэглэгч хэвлэгчийн &man.lpq.1; юм уу эсвэл lpc status тушаал хэрэглэн төлөв байдлыг мэдье гэсэн үед уг зааж өгсөн мэдээлэл харуулагддаг. enable хэвлэгчийн-нэр Хэвлэгчийн дарааллыг зөвшөөрдөг. Хэрэглэгч хэвлэгч рүү юм илгээж болох боловч хэвлэгч эхлэхээс нааш хэвлэгдэхгүй. help тушаал тушаалын хэрэглэх тусламжийг харуулдаг. Хэрэв тушаал бичилгүйгээр тушаавал боломжтой бүх тушаалын ерөнхий мэдээллийг харуулна. restart хэвлэгчийн-нэр Хэвлэгчийг эхлүүлдэг. Ердийн хэрэглэгчид энэ тушаалыг хэрэв ямар нэгэн тохиолдлоор LPD гацсан үед хэвлэгчийг эхлүүлэхэд хэрэглэж болдог боловч stop юм уу down тушаал хэрэглэн ажиллаж байгаа хэвлэгчийг зогсоож чаддаггүй. restart тушаал нь abort тушаалыг start тушаалтай хэрэглэсэнтэй ижилхэн. start хэвлэгчийн-нэр Хэвлэгчийг эхлүүлнэ. Хэвлэгч дараалалд байгаа ажлуудыг хэвлэж эхэлдэг. stop хэвлэгчийн-нэр Хэвлэгчийг зогсооно. Хэвлэгч яг хэвлэж байсан ажлаа дуусгаад дараалалд байгаа ажлуудыг хэвлэлгүйгээр зогсоно. Хэвлэгч зогссон байсан ч хэрэглэгчид хэвлүүлэх ажлаа дараалалд илгээж болно. topq хэвлэгчийн-нэр ажил-эсвэл-хэрэглэгчийн-нэр хэвлэгчийн-нэр нэртэй хэвлэгчийн дараалалд байгаа ажлуудын хамгийн дээд хэсэгт нь зааж өгсөн хэрэглэгчийн-нэр хэрэглэгчийн ажлыг оруулдаг. Энэ тушаалыг all гэж хэвлэгчийн-нэр-н оронд хэрэглэх боломжгүй. up хэвлэгчийн-нэр down тушаалын эсрэгээр уг хэвлэгчийг шинээр эхлүүлдэг. start тушаалыг enable-тай хэрэглэсэнтэй ижилхэн. &man.lpc.8; нь дээрх тушаалуудыг тушаал бичих мөрнөөс хүлээж авдаг. Хэрэв та ямар ч тушаал оруулаагүй бол &man.lpc.8; нь exit юм уу quit, эсвэл end-of-file тэмдэгт илгээх хүртэл гарнаас тушаал оруулж ажиллах харилцах горимд шилждэг. Хэвлэгчийн стандарт түр хадгалагчидтай ижил хадгалагчид Хэрэв та энэ гарын авлагыг эхнээс нь уншиж байгаа бол FreeBSD-тэй цуг ирдэг түр хадгалах систем болох LPD-ийн талаар бүх л мэдэж болох зүйлсийг одоо сурсан байх ёстой. Та үүний олонхи дутагдалтай талуудыг үнэлж чадах байх. Энэ нь дараах асуултанд хүргэдэг: Өөр ямар (FreeBSD-тэй ажилладаг) түр хадгалах системүүд байдаг вэ? LPRng LPRng LPRng буюу LPR: the Next Generation гэгддэг дараа үеийн систем нь PLP-ийг дахин бичсэн хувилбар юм. Патрик Пауэл болон Жастин Мэйсон (PLP-ийн гол арчлагч) нар нийлэн LPRng-г хийсэн юм. LPRng-ийн гол сайт бол юм. CUPS CUPS CUPS буюу Common UNIX Printing System нь &unix; дээр тулгуурласан үйлдлийн системүүдэд зориулсан зөөгдөж болох хэвлэх давхаргын боломжийг олгодог. Энэ нь бүх &unix; үйлдвэрлэгчид болон хэрэглэгчдэд зориулж стандарт хэвлэх шийдлийг дэмжихийн тулд Easy Software Products-аас хөгжүүлэгдсэн юм. CUPS нь Internet Printing Protocol (IPP) буюу Интернэтийн Хэвлэх Протоколыг ашиглаж хэвлэх ажлууд болон дарааллуудыг удирдах үндсээ болгодог. Line Printer Daemon (LPD) буюу Шугамын Хэвлэгчийн Дэмон, Server Message Block (SMB) буюу Серверийн Мэдэгдлийн Блок, болон AppSocket (JetDirect гэгддэг) протоколууд нь багасгасан ажиллагаатайгаар бас дэмжигдсэн байдаг. CUPS нь амьдралд байх &unix; дээрх хэвлэлтийг дэмжихийн тулд сүлжээний хэвлэгч олох (browsing) болон PostScript Printer Description (PPD) буюу PostScript Хэвлэгчийн Тайлбар дээр суурилсан хэвлэх тохируулгуудыг нэмдэг. CUPS-ийн гол сайт нь юм. Алдааг олж засварлах &man.lptest.1; програмын тусламжтайгаар энгийн шалгах үйлдэл хийж дуусахад та зөв хэвлэгдсэн хүссэн үр дүнд биш харин дараах алдаануудтай тулгарч болзошгүй юм: Хэвлэж болж байна, гэхдээ хэсэг хугацааны дараа юм уу эсвэл анхнаасаа хуудасны тал хэсгийг хэвлээд зогсох. Хэвлэгч дээд хэсгийг нь хэвлээд хэсэг хугацааны дараа юу ч хийхгүй болох. Ийм үед та хэвлэгч дээрх PRINT REMAINING эсвэл FORM FEED товч дарж үлдсэн хэсгийг нь хэвлэх эсэхийг харах хэрэгтэй. Хэрэв хэвлэгч өөр хэвлэх юм байгаа эсэхийг хүлээгээд байгаа тийм нөхцөлд орвол хэвлэгч рүү FORM FEED тэмдгийг илгээснээр (эсвэл ямар нэгэн юм) уг асуудал шийдэгдэж болох юм. Өөрийнхөө түр хадгалагч дээр орж ирсэн өгөгдлийг шууд хэвлэдэг хэвлэгчдэд иймэрхүү арга хэрэглэхэд хангалттай билээ. Хэрэв өмнөх хуудас нь хуудасны тал хүртэл байгаад дараагийн хуудас нь шинээр хуудаснаас эхлэх байсан болоод дууссан хуудасны тал хэсгээс хэвлэхгүй байгаад байх нөхцөл үүссэн байж болзошгүйг шалгахад мөн илүүдэхгүй. /usr/local/libexec/if-simple бүрхүүлийн скриптэд оруулсан дараах оруулга нь хэвлэх үйлдлийн дараа хэвлэгч рүү хуудас дууссан тэмдэгт илгээнэ: #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. # Writes a form feed character (\f) after printing job. /bin/cat && printf "\f" && exit 0 exit 2 Гэхдээ энэ нь хачирхалтай нөлөө үүсгэж болох юм. Та дараах зүйлсийг хуудсан дээрээ харах болно: !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 MS-DOS OS/2 ASCII Энэ нь таныг шинэ мөр илэрхийлдэг тэмдэгт хөрвүүлэгдээгүй улмаас өнөөх хачирхалтай нөлөөний хохирогч нь болсон байна гэдгийг илэрхийлж байна. &unix; төрлийн үйлдлийн системүүд мөр дууссаныг илэрхийлэхийн тулд ASCII-н 10 гэсэн дугаарыг буюу line feed (LF) гэсэн нэг л тэмдэгт хэрэглэдэг. Харин &ms-dos;, &os2;, болон бусад үйлдлийн системүүд ASCII-н 10 ба ASCII-н 13 (CR буюу шинэ мөр эхлэх) гэсэн хоёр тэмдгийг хамтад нь хэрэглэдэг. Ихэнх хэвлэгч нар шинэ мөрийг илэрхийлэхдээ &ms-dos;-н шийдлийг хэрэглэдэг. Хэрэв та FreeBSD-с хэвлэхээр бол таны текстүүд зөвхөн мөр дууссан тэмдэгт л агуулсан байгаа. Мөр дууссан тэмдэгтийг хэвлэгч хүлээж авангуутаа хуудсаа нэг мөрөөр дээшлүүлсэн мөртлөө яг тухайн байрлалдаа дараагийн тэмдэгт ирэхийг хүлээж зогсдог. Энэ үед л шинэ мөр гэсэн тэмдэгт ирж байж хэвлэгчийн толгой зүүн хэсэг рүүгээ гүйдэг билээ. FreeBSD дараах маягаар хэвлэх хэрэгтэй байдаг: Хэвлэгч CR тэмдэг хүлээж авлаа Хэвлэгч CR гэж хэвлэв Хэвлэгч LF тэмдэгт хүлээж авлаа Хэвлэгч CR + LF гэж хэвлэх Үүнийг залруулах хэдэн арга бий: Хэвлэгчийнхээ тохируулгын цонхыг ашиглан эдгээр тэмдэгтийг өөрөөр хөрвүүлж ойлгохоор тохируулах. Иймэрхүү тохиргоо байдаг эсэхийг хэвлэгчийнхээ гарын авлагад харах хэрэгтэй. Хэрэв та системээ шинээр ачаалахдаа давхар суусан өөр үйлдлийн систем рүү орвол тухайн үйлдлийн системдээ тохируулж CR болон LF тэмдэгтийн хөрвүүлэх тохиргоог дахин хийх хэрэг гарч магадгүй юм. FreeBSD-н цуваа холболтын таниулагч програм нь автоматаар LF тэмдэгтийг CR+LF тэмдэгт рүү хувиргадаг. Мэдээж энэ нь зөвхөн цуваа холболтоор холбогдсон хэвлэгч дээр ажиллана. Энэ шинж чанарыг идэвхжүүлэхийн тулд ms# хэрэгслийг ашиглан onlcr горимыг хэвлэгчийн /etc/printcap файл дотор оруулж өгөх хэрэгтэй. Хэвлэгчийн алгасаж болдог escape code тэмдэгт илгээж хэвлэгчийг LF тэмдэгт илгээгдсэн гэж ойлгуулж болох юм. Хэвлэгчийн гарын авлагаас ийм тэмдэгт дэмждэг эсэхийг харах хэрэгтэй. Хэрэв та тохирох тийм тэмдэгт олсон бол текст шүүгч програмыг өөрчилж эхлээд тэр тэмдэгтийг илгээгээд дараа нь хэвлэх зүйлсийг илгээхээр засах хэрэгтэй. PCL Энд Hewlett-Packard PCL хэвлэгчийн ойлгодог алгасаж болдог тэмдэгтийн текст шүүгч жишээг татаж үзүүлэв. Энэ шүүгч нь LF тэмдэгтийг LF ба CR гэж хөрвүүлээд хэвлэгч рүү хэвлэх ажлыг илгээж дараа нь мөр дууссан тэмдэгтийг илгээж хэвлэх ажил дууссаныг мэдэгддэг. Энэ нь бараг бүх Hewlett Packard хэвлэгчдэд тохирдог. #!/bin/sh # # hpif - Simple text input filter for lpd for HP-PCL based printers # Installed in /usr/local/libexec/hpif # # Simply copies stdin to stdout. Ignores all filter arguments. # Tells printer to treat LF as CR+LF. Ejects the page when done. printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 exit 2 Энд orchid нэртэй компьютерийн /etc/printcap файлын жишээг харуулж байна. Энд teak нэртэй Hewlett Packard LaserJet 3Si хэвлэгчийг зэрэгцээ холболтоор холбосон байгаа. Энд өмнө үзүүлсэн скриптийг текст шүүгчээ болгож хэрэглэсэн байгаа: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif: Энэ нь мөрүүдийг давхарлан хэвлэж байх. Хэвлэгч мөрөө дээшлүүлсэнгүй. Бүх мөрүүд дээд мөрөнд давхарлагдаж хэвлэгдэв. Энэ хүндрэл нь өнөөх хачирхалтай нөлөөний эсрэг нөлөөлөл бөгөөд арай бага тохиолддог. FreeBSD-н мөрийн төгсгөл илэрхийлсэн LF тэмдэгт нь CR тэмдэгтээр солигдоод мөрөө шинээр ахиулалгүй хуудасны эхэнд очиж дахин хэвлэчихсэн байна. Хэвлэгчийн тохируулгын цонх ашиглан LF болон CR тэмдэгтүүдийг дараах маягаар хөрвүүлэхээр тохируулах хэрэгтэй: Хэвлэгчийн хүлээж авалт Хэвлэгчийн хэвлэлт CR CR LF CR + LF Хэвлэгч тэмдэгт гээх үзэгдэл. Хэвлэгч хэвлэх үедээ мөрөнд зарим тэмдэгтүүдийг хэвлэхгүй болдог. Энэ хүндрэл нь хэвлэгч ажиллахгүй болох эсвэл маш их тэмдэгт гээж эхлэх зэргээс илүү дор үзэгдэл юм. Хүндрэлийн шалтгаан нь цуваа холболтоор компьютерийн илгээсэн хурдтай хэвлэгчийн хэвлэх хурд таарахгүй байгаагаас үүсдэг (ийм хүндрэл зэрэгцээ холбосон хэвлэгчдэд тулгардаггүй). Энэ хүндрэлийг давах хоёр арга бий: Хэрэв хэвлэгч нь XON/XOFF гэсэн урсгал зохицуулагчийг дэмждэг бол ms# шинж чанарыг ашиглан ixon горимыг FreeBSD дээр хэрэглэхээр тааруулах хэрэгтэй. Хэрэв хэвлэгч нь carrier урсгал зохицуулагч дэмждэг бол ms# шинж чанарыг ашиглан crtscts горимыг ашиглах хэрэгтэй. Ийм урсгал зохицуулагчид тааруулж цуваа холболтоо зөв холбосон эсэхээ магадлах хэрэгтэй. Хог хэвлэх үзэгдэл. Хэвлэгч хүссэн текстийг хэвлэхийн оронд хог хэвлээд эхлэв. Энэ нь цуваа холболт буруу холбогдсоноос үүсдэг үзэгдэл. Дамжуулах хурдны давтамжийн br шинж чанарыг шалгаад ms# шинж чанараар өгөгдөл тэгшилж илгээнэ гэх зэрэг /etc/printcap файлд байгаа тохиргоотой тохирч буй эсэхийг шалгах хэрэгтэй. Юу ч болохгүй байх. Хэрэв юу ч болохгүй байвал хүндрэл нь хэвлэгчид биш FreeBSD-д байж болох юм. /etc/printcap файлд бүртгэл файл хэрэглэнэ гэсэн (lf) шинж чанарыг нэмэх хэрэгтэй. Жишээ нь энд rattan оруулганд lf шинж чанар нэмж байна: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/rattan.log Тэгээд дахиад хэвлэх гээд оролдоод үз. Гарч болзошгүй алдааны мэдэгдэл байгаа эсэхийг бүртгэлийн файлаас (бидний жишээн дээр /var/log/rattan.log) шалгах хэрэгтэй. Мэдэгдлүүдээс хамаарч асуудлыг засахыг оролдох хэрэгтэй. Хэрэв та lf шинж чанар зааж өгөөгүй бол, LPD нь /dev/console файлыг анхдагч гэж авч үзнэ. diff --git a/mn_MN.UTF-8/books/handbook/security/chapter.sgml b/mn_MN.UTF-8/books/handbook/security/chapter.sgml index 63471da190..2552ee9e9c 100644 --- a/mn_MN.UTF-8/books/handbook/security/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/security/chapter.sgml @@ -1,4770 +1,4274 @@ Мэтью Диллон Энэ бүлгийн ихэнх хэсгийг 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 санг ердөө л зөвхөн уншихаар холбох явдал юм. Хамгаалах зүйлдээ хэт ширүүн байх нь булаан эзлэлтийн бүх чухал илрүүлэлтийг бас болиулж болохыг санахад илүүдэхгүй. Файлын бүрэн бүтэн байдлыг шалгах нь: Хоёртын файлууд, Тохиргооны файлууд, гэх мэт. Тэр мөч ирэхэд, та зөвхөн системийн гол тохиргоо болон хяналтын файлуудаа ая тухын хүчин зүйл урьтахаас хамаагүй өмнө хамгаалж чадна. Жишээ нь 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; k5destroy Серверийг <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-ийг тохируулах процессийг тайлбарлаж FreeBSD болон µsoft.windows; 2000/XP машинуудаас тогтох орчинд түүнийг ашиглан тэдгээрийг өөр хоорондоо аюулгүйгээр холбогдох нөхцөлийг бүрдүүлэх талаар зааварлах болно. IPsec-ийг тохируулахын тулд та өөрчлөн тохируулсан цөм бүтээх ухагдахууныг мэдсэн байх шаардлагатай (-г үзнэ үү). IPsec нь Интернэт Протокол (IP) давхаргын дээр суудаг протокол юм. Энэ нь хоёр буюу хэд хэдэн хостуудыг аюулгүй байдлаар (нэрээс нь харах юм бол) холбох боломжийг олгодог. FreeBSD IPsec сүлжээний стек нь IPv4 болон IPv6 протоколуудыг хоёуланг дэмждэг KAME шийдэл дээр үндэслэсэн. - - FreeBSD нь OpenBSD-ээс авсан Fast IPsec буюу - Хурдан IPsec гэгддэг тоног төхөөрөмжөөр хурдасгасан - IPsec стектэй. Энэ нь IPsec-ийн ажиллагааг оновчтой болгохын тулд &man.crypto.4; - дэд системийн тусламжтайгаар криптограф тоног төхөөрөмжийг (аль болох бүх газар) - хэрэглэдэг. Энэ нь шинэ дэд систем бөгөөд IPsec-ийн KAME хувилбарт байдаг - бүх боломжуудыг дэмждэггүй. Гэхдээ тоног төхөөрөмжөөр хурдасгасан IPsec-ийг - идэвхжүүлэхийн тулд өөрийн цөмийн тохиргооны файлдаа дараах цөмийн тохируулгыг - нэмэх хэрэгтэй: - - - цөмийн тохируулгууд - FAST_IPSEC - - - -options FAST_IPSEC # new IPsec (cannot define w/ IPSEC) - - - IPsec-ийн KAME шийдлийн оронд Fast IPsec - дэд системийг ашиглах боломж одоогоор байхгүйг тэмдэглэе. Дэлгэрэнгүй - мэдээллийг &man.fast.ipsec.4; гарын авлагын хуудаснаас - лавлана уу. - - - - Галт хануудад &man.gif.4; туннелийн төлөвийг бас зөв дагаж - мөрдөх боломжийг олгохын тулд та өөрийн цөмийн тохиргооны файлдаа - тохируулгыг идэвхжүүлэх - хэрэгтэй: - - -options IPSEC_FILTERGIF #filter ipsec packets from a tunnel - - - IPsec ESP IPsec AH IPsec нь хоёр дэд протоколоос тогтоно: Encapsulated Security Payload (ESP) буюу Хайрцаглагдсан Аюулгүй байдлын ачаа нь гуравдагчийн нөлөөллөөс тэгш хэмт криптограф алгоритмийг (Blowfish, 3DES-тэй адил) ашиглан агуулгыг нь шифрлэж IP пакетийн өгөгдлийг хамгаалдаг. Authentication Header (AH) буюу Нэвтрэлт Танилтын Толгой нь аюулгүй хэш хийх функцаар IP пакетийн толгойн талбаруудыг хэш хийн криптограф хянах нийлбэрийг тооцоолон гуравдагч этгээдийн нөлөөлөл болон хууран мэхлэлтээс IP пакетийн толгойг хамгаалдаг. Үүний дараа пакет дахь мэдээллийг таниулахыг зөвшөөрөх хэшийг агуулсан нэмэлт толгой байдаг. ESP болон AH нь орчноосоо хамаараад хоёулаа цуг эсвэл тусдаа ашиглагдаж болно. VPN виртуал хувийн сүлжээ VPN IPsec нь хоёр хостын хоорондох урсгалыг шууд шифрлэх (Transport Mode буюу Тээвэрлэх Горим гэгддэг) буюу эсвэл хоёр корпорацийн сүлжээний хооронд аюулгүй холбоонд ашиглагдаж болох виртуал туннелиуд (Tunnel Mode буюу Туннелийн Горим гэгддэг) бүтээхэд хэрэглэгдэж болох юм. Сүүлийнх нь ерөнхийдөө Виртуал Хувийн Сүлжээ (VPN) гэгддэг. FreeBSD-ийн IPsec дэд системийн талаар дэлгэрэнгүй мэдээллийг &man.ipsec.4; гарын авлагын хуудаснаас лавлах хэрэгтэй. Өөрийн цөмдөө IPsec дэмжлэгийг нэмэхийн тулд та дараах тохируулгуудыг цөмийн тохиргоондоо нэмээрэй: цөмийн тохируулгууд IPSEC цөмийн тохируулгууд IPSEC_ESP options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) цөмийн тохируулгууд IPSEC_DEBUG Хэрэв IPsec дибаг хийх дэмжлэг заавал хэрэгтэй бол дараах цөмийн тохируулга бас нэмэгдсэн байх шаардлагатай: options IPSEC_DEBUG #debug for IP security
Асуудал VPN-ийг байгуулахад ямар нэг стандарт байхгүй. VPN-үүд нь өөр өөрийн давуу болон сул талуудтай төрөл бүрийн технологиудыг ашиглан хийгдэж болно. Энэ хэсэг нь нэг тохиолдлын загвар үзүүлэх бөгөөд энэ тохиолдол дахь VPN-ийг хийхэд хэрэглэгдэх стратегиудыг харуулах болно. - Тохиолдол: Интернэтэд холбогдсон, нэг юм шиг ажиллах хоёр сүлжээ + Тохиолдол: Хоёр сүлжээ, нэг нь гэрийн нэг нь ажлын. Хоюулаа + Интернэтэд холбогдсон бөгөөд энэ <acronym>VPN</acronym>-ээр нэг юм шиг + ажиллах сүлжээ. VPN үүсгэх Угтвар нөхцөл дараах маягийн байна: Та хамгийн багадаа хоёр сайттай байна Хоёр сайт хоёулаа IP-г дотооддоо ашигладаг FreeBSD дээр нь ажилладаг гарц компьютераар хоёр сайт хоёулаа Интернэтэд холбогдсон. Хоёр сүлжээний гарц компьютер бүр хамгийн багаар бодоход нэг нийтийн IP хаягтай. Хоёр сүлжээний дотоод хаягууд нь нийтийн эсвэл хувийн IP хаягууд байж - болох юм, энэ нь хамаагүй. Та гарц машин дээр хэрэв шаардлагатай бол - NAT ажиллуулсан байж болох юм. - - - Хоёр сүлжээний дотоод IP хаягууд мөргөлдөхгүй. - Үүнийг ажиллуулахын тулд VPN технологи болон NAT-ийн хослолыг ашиглах нь - онолын хувьд боломжтой боловч би үүнийг хар дарсан зүүд шигээр тохиргоо их төвөгтэй - байх болов уу гэж бодож байна. + болох юм, энэ нь хамаагүй. Тэдгээр нь давхцахгүй байх ёстой, өөрөөр + хэлбэл хоюулаа 192.168.1.x-г ашиглаж + болохгүй юм. + - Хоёр сүлжээ дотооддоо хоёулаа адилхан хувийн IP хаягийн хүрээ (өөрөөр хэлбэл - хоёулаа 192.168.1.x) ашиглаж байгаа хоёр - сүлжээг холбохыг оролдож байгаагаа хэрэв та мэдэх юм бол аль нэг сүлжээний IP-г дахин - дугаарлах шаардлагатай болно. - - Сүлжээний бүтэц иймэрхүү харагдаж болох юм: - - - - - - - -Сүлжээ #1 [ Дотоод хостууд ] Хувийн Сүлжээ, 192.168.1.2-254 - [ Win9x/NT/2K ] - [ UNIX ] - | - | - .---[fxp1]---. Хувийн IP, 192.168.1.1 - | FreeBSD | - `---[fxp0]---' Нийтийн IP, A.B.C.D - | - | - -=-=- Интернэт -=-=- - | - | - .---[fxp0]---. Нийтийн IP, W.X.Y.Z - | FreeBSD | - `---[fxp1]---' Хувийн IP, 192.168.2.1 - | - | -Сүлжээ #2 [ Internal Hosts ] - [ Win9x/NT/2K ] Хувийн Сүлжээ, 192.168.2.2-254 - [ UNIX ] - - - - Хоёр нийтийн IP хаяг байгааг анзаарна уу. Нийтлэлийн туршид би эдгээрийг үсгээр - орлуулан ашиглах болно. Энэ нийтлэлийн туршид тохиолдох эдгээр үсэгнүүдийн оронд өөрийн - нийтийн хаягаар орлуулж тавиарай. Мөн дотроо хоёр гарц машин маань .1 IP хаягтай - бөгөөд хоёр сүлжээ маань өөр өөр хувийн IP хаягийн хүрээтэйг (192.168.1.x болон 192.168.2.x) анхаарна уу. Хувийн сүлжээнүүд дэх бүх - машинууд өөрсдийн анхдагч гарцдаа .1 - машиныг ашиглахаар тохируулсан байгаа болно. - - Гол зорилго нь сүлжээ талаасаа авч үзэх юм бол сүлжээ болгон нөгөө сүлжээнийхээ машинуудыг - яг л нэг чиглүүлэгчид холбоотой юм шиг харж чадан ажиллаж байх ёстой -- гэвч энэ чиглүүлэгч нь - хааяа пакетуудыг гээдэг илүү удаан чиглүүлэгч байх юм. - - Энэ нь (жишээ нь) 192.168.1.20 машин - дараах тушаалыг ажиллуулж - - ping 192.168.2.34 - - нэвт ажиллаж чадах ёстой гэсэн үг юм. &windows; машинууд - өөр сүлжээн дээр байх машинуудыг харж файлын хуваалцал санг үзэх зэргийг хийж - локал сүлжээн дээр байгаа машинуудыг харж үзэж чаддаг шигээр ажиллаж чадаж байх - ёстой. - - Тэгээд бүх юм аюулгүй байх хэрэгтэй. Энэ нь хоёр сүлжээний хоорондох - урсгал шифрлэгдэх ёстой гэсэн үг юм. - - Эдгээр хоёр сүлжээний хооронд VPN үүсгэх нь олон алхамтай - процесс юм. Эдгээр нь: - - - - Интернэтийн дагуу хоёр сүлжээний хооронд виртуал - сүлжээний холболт үүсгэнэ. Ажиллаж байгааг нь шалгаж &man.ping.8; зэрэг - багажуудыг ашиглаж тест хийгээрэй. - - - - Хоёр сүлжээний хоорондох урсгал харагдахгүйгээр шифрлэгдэж - шаардлагатай бол буцаан шифрлэгдэх тэр боломжийг бүрдүүлэх - аюулгүй байдлын бодлогуудыг зааж өгөөрэй. Урсгал шифрлэгдэж - байгааг эсэхийг шалгаж &man.tcpdump.1; зэрэг багажууд ашиглан - тест хийгээрэй. - - - - VPN-ийн дагуу &windows; машинууд нэг нь нөгөөгөө харж байхыг - зөвшөөрөх нэмэлт програм хангамжийг FreeBSD гарц машинууд дээр - тохируулаарай. - - - - - Алхам 1: <quote>виртуал</quote> сүлжээний холболт үүсгэн тест хийх - - Сүлжээ #1 дээрх гарц машин (A.B.C.D - нийтийн IP хаягтай, 192.168.1.1 хувийн - IP хаягтай) уруу та нэвтрэн орсон бөгөөд W.X.Y.Z - IP хаягтай машины хувийн хаяг уруу нь ping 192.168.2.1 - гэж тушаал ажиллуулъя гэж бодъё. Ингэж ажиллахын тулд юу болох ёстой вэ? - - - - Гарц машин 192.168.2.1 уруу - яаж хүрэхээ мэдэх ёстой. Өөрөөр хэлбэл энэ нь 192.168.2.1 уруу хийгдсэн чиглүүлэлттэй - байх хэрэгтэй. - - - 192.168.x зэрэг хувийн - IP хаягууд Интернэт дээр бараг үзэгдэх ёсгүй. Харин - 192.168.2.1 уруу таны илгээсэн - пакет бүр өөр пакет дотор орсон байх ёстой. Энэ пакет нь - A.B.C.D машинаас ирсэн маягаар - байх ёстой бөгөөд W.X.Y.Z уруу - илгээгдэх ёстой. Энэ процессийг encapsulation - буюу хайрцаглалт гэж нэрлэдэг. - - - Энэ пакет нь W.X.Y.Z дээр ирээд - unencapsulated буюу буцааж ялгагдан - 192.168.2.1 уруу хүргэгдэх - хэрэгтэй. - - - - Та үүнийг хоёр сүлжээний хоорондох туннель - гэж ойлгож болно. Туннелийн хоёр амсар нь - A.B.C.D болон W.X.Y.Z IP хаягууд бөгөөд туннельд - түүгээр дамжин өнгөрөх хувийн IP хаягуудыг мэдэгдсэн байх шаардлагатай. - Туннель нь нийтийн Интернэтээр хувийн IP хаягтай урсгалыг дамжуулахад - хэрэглэгдэнэ. - - Энэ туннель нь ерөнхий интерфэйс эсвэл FreeBSD дээрх gif - төхөөрөмж ашиглан үүсгэгддэг. Таны бодсоноор гарц машин бүр дээрх - gif интерфэйс нь дөрвөн IP хаягтай - байхаар тохируулагдсан байх шаардлагатай; хоёр нь нийтийн IP хаяг, - хоёр нь хувийн IP хаяг. - - Хоёр машины хувьд gif төхөөрөмжийн дэмжлэг &os;-ийн цөмд эмхэтгэгдсэн - байх шаардлагатай. Та дараах мөрийг: - - device gif - - хоёр машины цөмийн тохиргооны файлд хийн дараа нь эмхэтгэн суулгаж дахин - ачаалснаар үүнийг хийж болно. - - Туннелийг тохируулах нь хоёр алхамтай процесс юм. Эхлээд туннельд ямар гадаад - (эсвэл нийтийн) IP хаягууд байгааг &man.ifconfig.8; ашиглан мэдэгдэх - ёстой. Тэгээд дараа нь хувийн IP хаягуудыг &man.ifconfig.8; тушаал ашиглан - тохируулах ёстой. - - Сүлжээ #1 дэх гарц машин дээр туннелийг тохируулахын тулд та дараах тушаалуудыг - ашиглах болно. - - &prompt.root; ifconfig gif0 create -&prompt.root; ifconfig gif0 tunnel A.B.C.D W.X.Y.Z -&prompt.root; ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff - - - Нөгөө нэг гарц машин дээр та адил тушаалуудыг гэхдээ IP хаягуудын дарааллыг - эсрэгээр тавин ажиллуулна. - - &prompt.root; ifconfig gif0 create -&prompt.root; ifconfig gif0 tunnel W.X.Y.Z A.B.C.D -&prompt.root; ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff - - - Та дараа нь: - - ifconfig gif0 - - ажиллуулж тохиргоог харж болно. Жишээ нь сүлжээ #1 дээрх гарц машин - дээр та үүнийг харах болно: - - &prompt.root; ifconfig gif0 -gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 - tunnel inet A.B.C.D --> W.X.Y.Z - inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff - - - Эндээс харахад A.B.C.D болон - W.X.Y.Z физик хаягуудын хооронд туннель - үүссэн бөгөөд туннелээр зөвшөөрөгдөх урсгал нь 192.168.1.1 болон 192.168.2.1-ийн хооронд байна. - - Энэ нь бас хоёр машин дээрх чиглүүлэлтийн хүснэгтэд бас оруулга нэмсэн байх - бөгөөд та үүнийг netstat -rn тушаал ашиглан шалгаж - болно. Доорх гаралт нь сүлжээ #1 дэх гарц машиных юм. - - &prompt.root; netstat -rn -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -... -192.168.2.1 192.168.1.1 UH 0 0 gif0 -... - - - Flags утгын харуулж байгаагаар энэ нь хостын чиглүүлэлт - бөгөөд энэ нь гарц бүр нөгөө гарц уруу хэрхэн хүрэхээ мэдэх боловч тэд харин - өөрсдийнхөө харгалзах сүлжээнүүд уруу хэрхэн хүрэхээ мэдэхгүй гэсэн үг юм. - Энэ асуудлыг удахгүй засварлах болно. - - Энэ нь хоёр машин дээр хоёулан дээр нь галт хана ажиллаж гэсэн үг юм. - Таны VPN урсгалын хувьд үүнийг тойрон гарах шаардлагатай. Та хоёр сүлжээний - хоорондох бүх урсгалыг зөвшөөрөх юм уу эсвэл VPN-ий хоёр төгсгөлийг нэгээс нөгөөг - хамгаалах галт ханын дүрмүүдийг оруулж болох юм. - - Хэрэв VPN-ээр өнгөрөх бүх урсгалыг зөвшөөрөхөөр галт ханыг тохируулах - юм бол энэ нь тест хийхийг ихээхэн амарчлах болно. Та дараа нь хэзээ ч галт ханаа - илүү чангаруулж болно. Хэрэв та &man.ipfw.8; тушаалыг гарц машинууд дээр - ашиглаж байгаа бол дараах - - ipfw add 1 allow ip from any to any via gif0 - - тушаал нь хоёр төгсгөлийн цэгийн хоорондох бүх урсгалыг таны галт ханын - бусад дүрмүүдийг хөндөлгүйгээр зөвшөөрөх болно. Мэдээж та энэ тушаалыг хоёр - гарц хост дээр хоёулан дээр ажиллуулах хэрэгтэй болно. - - Нэг гарц машинаас нөгөө уруугаа ping хийхийг зөвшөөрөхөд хангалттай. - 192.168.1.1 дээр та дараах - - - ping 192.168.2.1 - - тушаалыг ажиллуулж хариу хүлээж авахаас гадна мөн нөгөө гарц машин - дээрээс бас ингэж хийж чадаж байх ёстой. - - Гэхдээ та хоёр сүлжээний дотоод машинууд уруу арай хүрч чадахгүй байх - ёстой. Энэ нь чиглүүлэлтээс болж байгаа юм -- гарц машинууд бие бие уруугаа - хэрхэн хүрэхээ мэдэж байгаа боловч нэг нэгнийнхээ цаана байгаа сүлжээнд хэрхэн - хүрэхийг мэдэхгүй. - - Энэ асуудлыг шийдэхийн тулд та гарц машин бүр дээр статик чиглүүлэлт нэмэх - хэрэгтэй. Эхний гарц дээр хийх тушаал нь: - - route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 - - - Энэ нь 192.168.2.0 сүлжээний - хостуудад хүрэхийн тулд пакетуудыг 192.168.2.1 - хост уруу илгээ гэж байна. Та үүнтэй адил тушаалыг нөгөө гарц дээр бас - ажиллуулах хэрэгтэй бөгөөд гэхдээ 192.168.1.x - хаягуудыг ашиглах ёстой. - - Одоо нэг сүлжээн дэх хостуудын IP урсгал нөгөө сүлжээний хостуудад хүрэх боломжтой - болно. - - Энэ нь одоо хоёр сүлжээний хооронд VPN-ий гуравны хоёрыг үүсгэж байгаа бөгөөд - аль болох виртуалаар үүсгэгдсэн сүлжээ юм. - Энэ нь одоохондоо хувийн биш байгаа. Та үүнийг &man.ping.8; болон &man.tcpdump.1; - ашиглан тест хийж болно. Гарц хост уруу нэвтрэн орж дараах тушаалыг ажиллуулна - - tcpdump dst host 192.168.2.1 - - Тэр хост дээрээ өөр сессээр дараах тушаалыг ажиллуулна - - ping 192.168.2.1 - - Та иймэрхүү гаралтыг харах болно: - - -16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request -16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply -16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request -16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply -16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request -16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply - - - Эндээс харахад ICMP мэдэгдлүүд нааш цааш шифрлэгдэлгүй явж байна. - Хэрэв та пакетуудаас өгөгдлийн байтуудыг илүүтэйгээр авахын тулд &man.tcpdump.1; - уруу параметрийг өгч ашигласан бол илүү мэдээлэл - та харж болох юм. - - Энэ нь мэдээж хүлээн авах боломжгүй зүйл юм. Дараагийн хэсэгт - хоёр сүлжээний хоорондох холболтыг бүх урсгал нь автоматаар шифрлэгдэхээр - аюулгүй болгох талаар хэлэлцэх болно. - - - Дүгнэн хэлэхэд: - - Хоёр цөмийг device gif мөртэйгөөр тохируулна. - - - Гарц хост #1 дээрх /etc/rc.conf файлд засвар хийн - дараах мөрүүдийг нэмнэ (шаардлагатай тохиолдолд IP хаягуудыг сольно). - gif_interfaces="gif0" -gifconfig_gif0="A.B.C.D W.X.Y.Z" -ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff" -static_routes="vpn" -route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00" - - + + + + + Том + Рөүдс + +
trhodes@FreeBSD.org
+
+ Бичсэн +
+
+
- - Хоёр хост дээрх гарц скриптийг (/etc/rc.firewall, - эсвэл үүнтэй адил) засварлаж доор дурдсаныг нэмнэ. + IPsec-ийг &os; дээр тохируулах нь - ipfw add 1 allow ip from any to any via gif0 - - - IP хаягуудын дарааллыг эсрэгээр болгон гарц хост #2 дээрх - /etc/rc.conf файлд адил өөрчлөлтийг - хийнэ. - -
-
+ Эхлээд security/ipsec-tools + портын цуглуулгаас суусан байх шаардлагатай. Энэ гуравдагч талын програм + хангамжийн багц нь тохиргоог дэмжихэд туслах хэд хэдэн програмуудыг + агуулдаг. - - Алхам 2: Холболтыг аюулгүй болгох - - Холболтыг аюулгүй болгохын тулд бид IPsec-ийг ашиглах болно. IPsec нь - хоёр хостыг шифрлэлтийн түлхүүр дээр зөвшилцүүлж дараа нь уг хоёр хостын хооронд - өгөгдлийг шифрлэхийн тулд энэ түлхүүрийг ашиглах арга замыг өгдөг. - - Энд тохиргооны хоёр талбарыг бодолцох хэрэгтэй. - - - - Ашиглах шифрлэлтийн арга зам дээр хоёр хост зөвшилцөх тийм арга зам - байх ёстой. Хоёр хост энэ арга зам дээр зөвшилцсөний дараа тэдгээрийн - хооронд аюулгүй байдлын нэгдэл байна гэж - үздэг. - - - Аль урсгалыг шифрлэх ёстойг заах арга зам байх ёстой. Мэдээж та өөрийн бүх - гарч байгаа урсгалаа шифрлэхийг хүсэхгүй байх -- та зөвхөн VPN-ий хэсэг - болсон урсгалыг шифрлэхийг хүснэ. Аль урсгалыг шифрлэхийг тодорхойлохын - тулд хийгдэх дүрмүүд нь security policies буюу - аюулгүй байдлын бодлогууд гэгдэнэ. - - - - Аюулгүй байдлын нэгдлүүд болон аюулгүй байдлын бодлогуудын ажиллагааг - цөм хангаж байдаг бөгөөд хэрэглэгчдийн талбарын програмуудаар засварлагдаж - болно. Гэхдээ үүнийг хийхийн өмнө IPsec болон Encapsulated - Security Payload (ESP) буюу Хайрцаглагдсан Аюулгүй байдлын Ачаа - протоколыг цөм дэмжихээр та тохируулах хэрэгтэй. Цөмийг: - - - цөмийн тохируулгууд - IPSEC - - - options IPSEC -options IPSEC_ESP - - - тохируулгатай тохируулан дахин эмхэтгэж суулгаад ачаалан үүнийг хийнэ. - Урьдын адил та хоёр гарц машин дээрх цөмийн хувьд үүнийг хийх ёстой. - - - IKE - - - Аюулгүй байдлын нэгдлүүдийг тохируулах үед танд хоёр сонголт байна. - Шифрлэлтийн алгоритм, шифрлэлтийн түлхүүрүүд гэх зэргүүдийг сонгож - тэдгээр нэгдлүүдийг хоёр хостын хооронд гараараа тохируулж болох бөгөөд - эсвэл эдгээрийг хийх Internet Key Exchange protocol (IKE) буюу - Интернэтийн Түлхүүр Солилцох протоколыг шийддэг дэмонуудыг та ашиглаж - болно. - - Би сүүлийнхийг зөвлөж байна. Өөр бусдыг тооцохгүй юм бол үүнийг - тохируулах нь амархан. - - - IPsec - аюулгүй байдлын бодлогууд - - - - setkey - - - Аюулгүй байдлын бодлогуудыг засварлах болон үзүүлэхдээ &man.setkey.8;-г - ашиглан хийдэг. Адилтгах юм бол setkey нь цөмийн - аюулгүй байдлын бодлогын хүснэгтүүдэд &man.route.8; цөмийн чиглүүлэлтийн - хүснэгтүүдэд зориулагдсан шиг зориулагдсан байна. setkey - нь бас одоогийн аюулгүй байдлын нэгдлүүдийг үзүүлж чадах бөгөөд адилтган - цааш үргэлжлүүлбэл энэ нь бас netstat -r тушаалын - нэгэн адил болох юм. - - FreeBSD-ээр аюулгүй байдлын нэгдлүүдийг удирдах дэмонуудын хувьд хэд хэдэн - сонголт байдаг. Энэ нийтлэл нь эдгээрийн нэг &os;-ийн Портуудын цуглуулгын - security/ipsec-tools-д байдаг - racoon-ийг хэрхэн ашиглах талаар тайлбарлах болно. - - - racoon - - - racoon програм хангамж хоёр гарц машин - дээр хоёулан дээр нь ажиллах ёстой. Энэ нь хост бүр дээр VPN-ий нөгөө төгсгөлийн IP хаяг болон - нууц түлхүүртэйгээр (таны сонгох түлхүүр байх бөгөөд хоёр гарц машин дээр ижил байх ёстой) - тохируулагддаг. - - Дараа нь хоёр дэмон нэг нэгэндээ хандаж тэдгээр нь өөрсдөө хэн хэн гэж хэлснээ - (таны тохируулсан нууц түлхүүрийг ашиглан) баталгаажуулдаг. Дэмонууд дараа нь - шинэ нууц түлхүүрийг үүсгэж түүнийг ашиглан VPN-ээр урсгалыг шифрлэдэг. - Тэд энэ нууцаа үе үе өөрчилдөг бөгөөд халдагч түлхүүрүүдийн аль нэгийг эвдсэн ч (цагаа - тулахаар энэ нь онолын хувьд бараг боломжгүй зүйл) гэсэн энэ нь халдагчид муу юм - хийх боломж олгодоггүй -- түлхүүрийг эвдэх тэр үед хоёр дэмон өөр түлхүүрийг сонгосон байна. - - racoon-ий тохиргооны файл ${PREFIX}/etc/racoon-д - байрлана. Та энд тохиргооны файлыг олох ёстой бөгөөд түүнд нэг их өөрчлөлт хийгдэх ёсгүй. - Таны өөрчлөх шаардлагатай racoon-ий тохиргооны файлын өөр нэг бүрэлдэхүүн хэсэг нь - pre-shared key буюу урьдчилан хуваалцсан түлхүүр юм. - - racoon-ий анхдагч тохиргоо үүнийг ${PREFIX}/etc/racoon/psk.txt-д - байгаа гэж боддог. Урьдчилан хуваалцсан түлхүүр нь таны урсгалыг VPN-ийн дагуу шифрлэх - түлхүүр биш бөгөөд харин энэ нь ердөө л түлхүүр удирдах дэмонуудыг нэг нь - нөгөөдөө итгэхийг зөвшөөрөх токен гэдгийг тэмдэглэж хэлэх нь зүйтэй юм. - - psk.txt нь таны ажиллаж байгаа алсын сайт бүрийн - мөрийг агуулсан байна. Хоёр сайт бүхий энэ жишээн дээр psk.txt - файл бүр нэг мөрийг агуулсан байна (VPN-ий төгсгөлүүд бүр зөвхөн нөгөө төгсгөлтэйгээ - ажилладаг). - - Гарц хост #1 дээр энэ мөр иймэрхүү харагдах ёстой: - - W.X.Y.Z secret - - Энэ нь алсын төгсгөлийн нийтийн IP хаяг, хоосон зай, - тэгээд нууц үгийг илэрхийлэх текст мэдээлэл байна. Мэдээж та өөрийн түлхүүртээ - secret гэдгийг ашиглах ёсгүй -- нууц үгийг сонгох энгийн дүрэм энд - үйлчилнэ. - - Гарц хост #2 дээр энэ мөр иймэрхүү харагдах ёстой - - A.B.C.D secret - - Энэ нь алсын төгсгөлийн IP хаяг болон адилхан нууц түлхүүр байна. - psk.txt нь racoon ажиллахаас өмнө - 0600 (өөрөөр хэлбэл root-д - зөвхөн унших/бичих) горимд байна. - - Та racoon-ийг хоёр гарц машин дээр ажиллуулах ёстой. Та бас - UDP-ээр ISAKMP (Internet Security Association - Key Management Protocol буюу Интернэтийн Аюулгүй байдлын Нэгдлийн Түлхүүр - Удирдах Протокол) порт уруу зөөгдөх IKE урсгалыг зөвшөөрөх галт ханын зарим - дүрмүүдийг нэмэх хэрэгтэй. Дахин хэлэхэд энэ нь таны галт ханын дүрмийн олонлогт - нэлээн эрт байх шаардлагатай. - - ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp -ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp - - - racoon ажилласны дараа та нэг гарц хостоос нөгөө гарц хост уруу ping хийж - үзэж болно. Холболт нь шифрлэгдээгүй байх боловч racoon дараа нь аюулгүй байдлын - нэгдлүүдийг хоёр хостын хооронд тохируулна -- энэ нь хором болж өнгөрч болох бөгөөд - ping тушаал хариу өгч эхлэх хүртэл богино саатал маягаар танд харагдаж болох юм. - - Аюулгүй байдлын нэгдэл тохируулагдсаны дараа та үүнийг &man.setkey.8; ашиглан - үзэж болно. - - setkey -D - - тушаалыг аль нэг хост дээр ажиллуулж аюулгүй байдлын нэгдлийн мэдээллийг харна. - - Энэ нь асуудлын нэг хагас нь юм. Нөгөө нэг хагас нь өөрийн аюулгүй байдлын - бодлогуудыг тохируулах явдал юм. - - Ухаалаг аюулгүй байдлын бодлогыг үүсгэхийн тулд энэ хүртэл юуг хийснээ эргэн - харцгаая. Энэ хэлэлцээ нь холболтын төгсгөлийн хоёулангийнх нь хувьд авч - үзнэ. - - Таны гадагш илгээх IP пакет бүр пакетийн тухай өгөгдлийг агуулах толгойтой - байдаг. Толгой нь эхлэл болон төгсгөлийн IP хаягуудыг агуулдаг. Бидний мэдэж - байгаагаар 192.168.x.y зэрэг - хувийн IP хаягууд нийтийн Интернэт дээр ил гарах ёсгүй. Харин тэд эхлээд өөр - пакет дотор хайрцаглагдах ёстой. Энэ пакет нь хувийн хаягуудын оронд солигдсон - нийтийн эхлэл болон төгсгөл IP хаягуудтай байх ёстой. - - Тэгэхээр хэрэв таны гарч байгаа пакет иймэрхүү харагдаж эхэлбэл: - - - - - - - - - .----------------------. - | Src: 192.168.1.1 | - | Dst: 192.168.2.1 | - | <other header info> | - +----------------------+ - | <packet data> | - `----------------------' - - - - Дараа нь өөр нэг пакетийн дотор энэ нь хайрцаглагдан иймэрхүү харагдах болно: - - - - - - - - - .--------------------------. - | Src: A.B.C.D | - | Dst: W.X.Y.Z | - | <other header info> | - +--------------------------+ - | .----------------------. | - | | Src: 192.168.1.1 | | - | | Dst: 192.168.2.1 | | - | | <other header info> | | - | +----------------------+ | - | | <packet data> | | - | `----------------------' | - `--------------------------' - - - - Энэ хайрцаглалт нь gif төхөөрөмжөөр - хийгдэнэ. Пакет нь гадна талдаа жинхэнэ IP хаягуудтай байх бөгөөд - бидний эхний пакет Интернэт уруу гарах пакет дотор орсон байгааг харж болно. - - Мэдээж бид VPN-үүдийн хоорондох бүх урсгалыг шифрлэхийг хүснэ. - Та үүнийг иймэрхүүгээр үгчлэн хэлж болно: + Дараагийн шаардлага нь пакетуудыг тунель хийх болон хоёр + сүлжээг зөв холбогдоход ашиглагдах хоёр &man.gif.4; псевдо + төхөөрөмжийг үүсгэх явдал юм. root хэрэглэгчээр + internal болон + external гэсэн утгуудыг жинхэнэ + дотоод болон гадаад гарцуудаар өөрчлөн дараах тушаалыг + ажиллуулна: - Хэрэв пакет A.B.C.D-с гарч W.X.Y.Z уруу чиглэсэн бол шаардлагатай аюулгүй - байдлын нэгдлүүдийг ашиглан шифрлэнэ. - - Хэрэв пакет нь W.X.Y.Z-с ирж A.B.C.D уруу чиглэсэн бол шаардлагатай аюулгүй - байдлын нэгдлүүдийг ашиглан буцааж шифрлэнэ. - - Ингэж хэлэхэд ер нь бараг л зөв, ойрхон байна, гэхдээ бас тийм ч зөв биш юм. Хэрэв та - үүнийг хийсэн бол W.X.Y.Z-с гарсан болон - түүн уруу чиглэсэн, бүр VPN-ий хэсэг ч биш бүх урсгал шифрлэгдэх болно. Та яг үүнийг - хүсээгүй байх. Зөв бодлого нь дараах маягаар байна - - Хэрэв пакет A.B.C.D-с гарч тэр пакет нь өөр пакет дотор орон - хайрцаглагдан W.X.Y.Z уруу чиглэсэн бол шаардлагатай аюулгүй - байдлын нэгдлүүдийг ашиглан шифрлэнэ. - - Хэрэв пакет нь W.X.Y.Z-с ирж тэр пакет нь өөр пакет дотор орон - хайрцаглагдан A.B.C.D уруу чиглэсэн бол шаардлагатай аюулгүй - байдлын нэгдлүүдийг ашиглан буцааж шифрлэнэ. - - Нарийн өөрчлөлт, гэхдээ хэрэгтэй нэгэн. - - Аюулгүй байдлын бодлогууд нь бас &man.setkey.8; ашиглагдан заагдана. - &man.setkey.8; нь бодлого тодорхойлох тохиргооны хэлтэй байна. Та - тохиргооны заавруудыг stdin-ээс оруулж болох бөгөөд эсвэл тохиргооны заавруудыг агуулах - файлын нэрийг зааж өгөх тохируулгыг ашиглаж болно. - - Гарц хост #1-ийн (A.B.C.D гэсэн нийтийн - IP хаягтай) тохиргоо W.X.Y.Z уруу чиглэсэн - бүх гарах урсгалыг хүчээр шифрлэхийн тулд: - - -spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; - - - Эдгээр тушаалуудыг файлд (өөрөөр хэлбэл - /etc/ipsec.conf) хийгээд ажиллуулаарай + &prompt.root; 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 гэж + хадгалах ёстой. + +#!/bin/sh +/usr/local/sbin/setkey -FP +/usr/local/sbin/setkey -F +# To the home network +/usr/local/sbin/setkey -c 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; +/usr/local/sbin/setkey -c 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 usp from any 500 to any - &prompt.root; setkey -f /etc/ipsec.conf - - нь бид аюулгүй бодлогын мэдээллийн санд - дүрэм нэмэхийг хүсэж байгааг &man.setkey.8;-д хэлж өгч байна. Энэ мөрийн бусад нь - энэ бодлогод аль пакет таарахыг заана. A.B.C.D/32 ба W.X.Y.Z/32 нь энэ бодлого хамаарах - сүлжээ болон хостуудыг таних IP хаягууд болон сүлжээний багууд юм. Энэ - тохиолдолд эдгээр хоёр хостуудын хоорондох урсгалд үүнийг хамааруулахыг - бид хүсэж байна. нь энэ бодлого зөвхөн - бусад пакетуудыг хайрцаглах пакетуудад хамаатай гэдгийг цөмд хэлнэ. - тохируулга нь энэ бодлого гарах пакетуудад - хамаатайг хэлэх бөгөөд тохируулга нь пакет - нууцлагдахыг хэлж байна. - - Хоёр дахь мөр нь энэ пакет хэрхэн шифрлэгдэхийг заана. - нь ашиглагдах протокол байхад - нь пакетийг цаашаагаа IPsec пакет дотор орж хайрцаглалт хийгдэхийг заана. - A.B.C.D болон W.X.Y.Z-ийн давхардсан хэрэглээ нь - ашиглах аюулгүй байдлын нэгдлийг сонгоход хэрэглэгдэх бөгөөд төгсгөлийн - тохируулга энэ дүрмэнд таарсан пакетуудыг - шифрлэх ёстойг зааж байна. - - Энэ дүрэм нь зөвхөн гарч байгаа пакетуудтай таарна. Ирж байгаа пакетийн - хувьд танд үүнтэй адил дүрэм хэрэгтэй. - - spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; - - Энэ тохиолдолд -ийн оронд - тохируулгыг ашиглаж шаардлагын дагуу IP хаягуудыг эсрэгээр болгосныг хараарай. - - Нөгөө нэг гарц хостод (W.X.Y.Z - нийтийн IP хаягтай) үүнтэй адил дүрмүүд хэрэгтэй. - - spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; -spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; - - Төгсгөлд нь та ESP болон IPENCAP пакетуудыг нааш цааш зөвшөөрөх - галт ханын дүрмүүдийг нэмэх хэрэгтэй. Эдгээр дүрмүүдийг хост бүр дээр - нэмэх шаардлагатай. - - ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z -ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D -ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z -ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D - - - Дүрмүүд нь тэгш хэмт учир адилхан дүрмүүдийг та гарц хост бүр дээр ашиглаж - болно. - - Одоо гарч байгаа пакетууд үүнтэй адил харагдах болно: - - - - - - - - - .------------------------------. --------------------------. - | Src: A.B.C.D | | - | Dst: W.X.Y.Z | | - | <other header info> | | Encrypted - +------------------------------+ | packet. - | .--------------------------. | -------------. | contents - | | Src: A.B.C.D | | | | are - | | Dst: W.X.Y.Z | | | | completely - | | <other header info> | | | |- secure - | +--------------------------+ | | Encap'd | from third - | | .----------------------. | | -. | packet | party - | | | Src: 192.168.1.1 | | | | Original |- with real | snooping - | | | Dst: 192.168.2.1 | | | | packet, | IP addr | - | | | <other header info> | | | |- private | | - | | +----------------------+ | | | IP addr | | - | | | <packet data> | | | | | | - | | `----------------------' | | -' | | - | `--------------------------' | -------------' | - `------------------------------' --------------------------' - - - - - Тэдгээрийг VPN-ий хамгийн төгсгөлд хүлээн авах үед тэдгээр нь эхлээд - буцаан шифрлэгдэнэ (racoon-аар тохиролцсон аюулгүй байдлын нэгдлүүдийг - ашиглан). Тэдгээр нь үүний дараа хоёр дахь давхаргыг гаргах - gif интерфэйс уруу орж хамгийн дотор байрлах - пакеттай үлдэх хүртэл боловсруулагдаад дотоод сүлжээ руу аялах болно. - - Өмнө дурдсаны адил та &man.ping.8; тестийг ашиглан аюулгүй байдлыг - шалгаж болно. Эхлээд A.B.C.D гарц - машин уруу нэвтрэн орж дараах тушаалыг ажиллуулна: - - tcpdump dst host 192.168.2.1 - - Тэр хост дээрээ өөр сессээр дараах тушаалыг ажиллуулна - - ping 192.168.2.1 - - Энэ удаад та доор дурдсантай адил гаралтыг харах ёстой: - - XXX tcpdump output - - Одоо эндээс харах юм бол &man.tcpdump.1; нь ESP пакетуудыг үзүүлж - байна. Хэрэв та тэдгээрийг тохируулгатай шалгахыг оролдвол - шифрлэлтээс болоод (мэдээж) нууцлаг харагдах болно. - - Баяр хүргэе. Та дөнгөж сая алсын хоёр сайтын хооронд VPN - тохирууллаа. - - - Дүгнэн хэлэхэд - - Хоёр цөмийг хоёуланг нь дараах тохируулгатай тохируулна: - - options IPSEC -options IPSEC_ESP - - - - security/ipsec-tools суулгана. Алсын хостын - IP хаяг болон тэдгээрийн мэддэг нууц түлхүүрийн оруулгыг нэмж - ${PREFIX}/etc/racoon/psk.txt - файлыг хоёр гарц хост дээр хоёулан дээр засварлана. Энэ файлын горим - 0600 байгааг шалгаарай. - - - Хост бүр дээрх /etc/rc.conf файлд дараах - мөрүүдийг нэмээрэй: - - ipsec_enable="YES" -ipsec_file="/etc/ipsec.conf" - - - - Хост бүр дээр шаардлагатай spadd мөрүүдийг агуулсан - /etc/ipsec.conf файл үүсгэна. 1-р гарц - хост дээр энэ нь ийм байна: - - -spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec - esp/tunnel/A.B.C.D-W.X.Y.Z/require; -spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec - esp/tunnel/W.X.Y.Z-A.B.C.D/require; - - - 2-р гарц хост дээр энэ нь ийм байна: - - -spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec - esp/tunnel/W.X.Y.Z-A.B.C.D/require; -spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec - esp/tunnel/A.B.C.D-W.X.Y.Z/require; - - - - Хост бүр дээр IKE, ESP, болон IPENCAP урсгалыг зөвшөөрөх - галт ханын дүрмүүд нэмээрэй: - - -ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp -ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp -ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z -ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D -ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z -ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D - - - + + Дүрмийн дугааруудыг тухайн хостын тохиргооноос + хамаарч өөрчлөх шаардлагатай байж болох юм. + - Өмнөх хоёр алхам VPN-ийг эхлүүлэн ажиллуулахад хангалттай байх - ёстой. Сүлжээ бүрийн машинууд өөр хоорондоо IP хаягуудаараа - хандах боломжтой болох бөгөөд холболтын дагуух бүх урсгал автоматаар - аюулгүй шифрлэгдэх болно. - + &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_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
Шерн Ли Хувь нэмэр болгон оруулсан 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; гарын авлагын хуудаснуудад тайлбарласан байдаг.
diff --git a/mn_MN.UTF-8/share/sgml/mailing-lists.ent b/mn_MN.UTF-8/share/sgml/mailing-lists.ent index 8edcb15e04..b95f985d29 100644 --- a/mn_MN.UTF-8/share/sgml/mailing-lists.ent +++ b/mn_MN.UTF-8/share/sgml/mailing-lists.ent @@ -1,452 +1,456 @@ FreeBSD жагсаалтын сервер"> &a.mailman.listinfo;"> FreeBSD ACPI захидлын жагсаалт"> freebsd-acpi"> FreeBSD advocacy захидлын жагсаалт"> freebsd-advocacy"> FreeBSD AFS порт хийх захидлын жагсаалт"> freebsd-afs"> FreeBSD Adaptec AIC7xxx хэлэлцүүлгүүдийн захидлын жагсаалт"> freebsd-aic7xxx"> FreeBSD Alpha порт хийх захидлын жагсаалт"> freebsd-alpha"> FreeBSD-г AMD64 системүүд уруу порт хийх"> freebsd-amd64"> FreeBSD зарлалын захидлын жагсаалт"> freebsd-announce"> FreeBSD Apache захидлын жагсаалт"> freebsd-apache"> FreeBSD архитектур ба дизайны захидлын жагсаалт"> freebsd-arch"> FreeBSD ARM порт хийх захидлын жагсаалт"> freebsd-arm"> FreeBSD ATM сүлжээний захидлын жагсаалт"> freebsd-atm"> FreeBSD эх код аудитийн захидлын жагсаалт"> freebsd-audit"> FreeBSD хоёртын шинэчлэлтийн системийн захидлын жагсаалт"> freebsd-binup"> FreeBSD Bluetooth захидлын жагсаалт"> freebsd-bluetooth"> FreeBSD bugbusters захидлын жагсаалт"> freebsd-bugbusters"> FreeBSD асуудлын тайлангуудын захидлын жагсаалт"> freebsd-bugs"> FreeBSD chat захидлын жагсаалт"> freebsd-chat"> FreeBSD кластерийн захидлын жагсаалт"> freebsd-cluster"> &os.current; захидлын жагсаалт"> freebsd-current"> CTM зарлалууд"> ctm-announce"> CVS файлуудын CTM түгээлт"> ctm-cvs-cur"> CTM 4-STABLE src салбар түгээлтийн захидлын жагсаалт"> ctm-src-4"> CTM -CURRENT src салбар түгээлтийн захидлын жагсаалт"> ctm-src-cur"> CTM хэрэглэгчийн хэлэлцүүлэг захидлын жагсаалт"> ctm-users"> FreeBSD CVS-ийн нийлүүлсэн мэдэгдлийн захидлын жагсаалт"> cvs-all"> FreeBSD CVS doc нийлүүлэх жагсаалт"> cvs-doc"> FreeBSD CVS ports нийлүүлэх жагсаалт"> cvs-ports"> FreeBSD CVS projects нийлүүлэх жагсаалт"> cvs-projects"> FreeBSD CVS src нийлүүлэх жагсаалт"> cvs-src"> FreeBSD CVSweb арчилгааны захидлын жагсаалт"> freebsd-cvsweb"> FreeBSD дээр суурилсан мэдээллийн баазууд захидлын жагсаалт"> freebsd-database"> FreeBSD баримтжуулах төслийн захидлын жагсаалт"> freebsd-doc"> FreeBSD-д зориулж төхөөрөмжийн драйвер бичих нь"> freebsd-drivers"> Eclipse IDE, хэрэгслүүд, баян клиент програмууд болон портуудын FreeBSD хэрэглэгчид"> freebsd-eclipse"> FreeBSD-embedded захидлын жагсаалт"> freebsd-embedded"> FreeBSD-emulation захидлын жагсаалт"> freebsd-emulation"> FreeBSD-eol захидлын жагсаалт"> freebsd-eol"> FreeBSD FireWire (IEEE 1394) хэлэлцүүлгийн захидлын жагсаалт"> freebsd-firewire"> FreeBSD файлын системийн төслийн захидлын жагсаалт"> freebsd-fs"> FreeBSD GEOM захидлын жагсаалт"> freebsd-geom"> FreeBSD GNOME болон GNOME програмуудын захидлын жагсаалт"> freebsd-gnome"> FreeBSD техникийн хэлэлцүүлгүүдийн захидлын жагсаалт"> freebsd-hackers"> FreeBSD техник хангамж ба тоног төхөөрөмжийн захидлын жагсаалт"> freebsd-hardware"> FreeBSD толин тусгал сайтуудын захидлын жагсаалт"> freebsd-hubs"> FreeBSD интернационалчлалын захидлын жагсаалт"> freebsd-i18n"> FreeBSD i386-тай холбоотой асуудлуудын захидлын жагсаалт"> freebsd-i386"> FreeBSD IA32 порт хийх захидлын жагсаалт"> freebsd-ia32"> FreeBSD IA64 порт хийх захидлын жагсаалт"> freebsd-ia64"> FreeBSD IPFW кодын захидлын жагсаалт"> freebsd-ipfw"> FreeBSD ISDN захидлын жагсаалт"> freebsd-isdn"> FreeBSD Интернетийн үйлчилгээ үзүүлэгчийн захидлын жагсаалт"> freebsd-isp"> FreeBSD шоронгийн захидлын жагсаалт"> freebsd-jail"> FreeBSD Java хэлний захидлын жагсаалт"> freebsd-java"> FreeBSD-тэй холбоотой ажлын захидлын жагсаалт"> freebsd-jobs"> FreeBSD KDE/Qt ба KDE програмуудын захидлын жагсаалт"> freebsd-kde"> FreeBSD LFS порт хийх захидлын жагсаалт"> freebsd-lfs"> FreeBSD libh суулгалт ба багцлах системийн захидлын жагсаалт"> freebsd-libh"> FreeBSD MIPS порт хийх захидлын жагсаалт"> freebsd-mips"> FreeBSD толин тусгал сайтын администраторууд"> mirror-announce"> FreeBSD зөөврийн компьютерийн захидлын жагсаалт"> freebsd-mobile"> Mozilla хөтлөгчийн FreeBSD портын захидлын жагсаалт"> freebsd-mozilla"> FreeBSD мультимедиа захидлын жагсаалт"> freebsd-multimedia"> FreeBSD сүлжээний захидлын жагсаалт"> freebsd-net"> FreeBSD шинэ хэрэглэгчдийн захидлын жагсаалт"> freebsd-newbies"> FreeBSD new-bus захидлын жагсаалт"> freebsd-new-bus"> FreeBSD OpenOffice захидлын жагсаалт"> freebsd-openoffice"> FreeBSD ажиллагааны захидлын жагсаалт"> freebsd-performance"> FreeBSD Perl захидлын жагсаалт"> freebsd-perl"> FreeBSD пакет шүүгчийн захидлын жагсаалт"> freebsd-pf"> FreeBSD Интел бус тавцангууд уруу порт хийх захидлын жагсаалт"> freebsd-platforms"> FreeBSD гол багийн бодлогын шийдвэрүүдийн захидлын жагсаалт"> freebsd-policy"> FreeBSD портын захидлын жагсаалт"> freebsd-ports"> FreeBSD портын алдааны захидлын жагсаалт"> freebsd-ports-bugs"> FreeBSD PowerPC порт хийх захидлын жагсаалт"> freebsd-ppc"> HP Proliant сервер тавцангууд дээрх FreeBSD-ийн техникийн хэлэлцүүлэг"> freebsd-proliant"> FreeBSD Python захидлын жагсаалт"> freebsd-python"> FreeBSD Чанарын Батламжийн захидлын жагсаалт"> freebsd-qa"> FreeBSD ерөнхий асуултууд захидлын жагсаалт"> freebsd-questions"> FreeBSD ачаалах скрипт системийн захидлын жагсаалт"> freebsd-rc"> FreeBSD realtime өргөтгөлүүд захидлын жагсаалт"> freebsd-realtime"> FreeBSD Ruby захидлын жагсаалт"> freebsd-ruby"> FreeBSD SCSI дэд системийн захидлын жагсаалт"> freebsd-scsi"> FreeBSD аюулгүй байдлын захидлын жагсаалт"> freebsd-security"> FreeBSD аюулгүй байдлын мэдэгдлүүд захидлын жагсаалт"> freebsd-security-notifications"> FreeBSD-small захидлын жагсаалт"> freebsd-small"> FreeBSD тэгш хэмт олон боловсруулалт захидлын жагсаалт"> freebsd-smp"> FreeBSD SPARC порт хийх захидлын жагсаалт"> freebsd-sparc64"> &os.stable; захидлын жагсаалт"> freebsd-stable"> FreeBSD C99 болон POSIX-той нийцтэй байдлын захидлын жагсаалт"> freebsd-standards"> FreeBSD sun4v порт хийх захидлын жагсаалт"> freebsd-sun4v"> FreeBSD тест захидлын жагсаалт"> freebsd-test"> FreeBSD ажиллагаа ба тогтвортой байдлыг тест хийх захидлын жагсаалт"> freebsd-testing"> FreeBSD урсгалуудын захидлын жагсаалт"> freebsd-threads"> FreeBSD tokenring захидлын жагсаалт"> freebsd-tokenring"> FreeBSD USB захидлын жагсаалт"> freebsd-usb"> FreeBSD хэрэглэгчийн бүлгийн зохицуулалт захидлын жагсаалт"> freebsd-user-groups"> FreeBSD үйлдвэрлэгчдийн урьдчилсан хувилбар зохицуулалт захидлын жагсаалт"> freebsd-vendors"> FreeBSD-ийн дэмждэг төрөл бүрийн виртуалчлалын техникүүдийн талаарх хэлэлцүүлэг"> freebsd-virtualization"> VuXML дэд бүтцийн тухай хэлэлцүүлэг "> freebsd-vuxml"> + +FreeBSD Work-In-Progress Status"> +freebsd-wip-status"> + FreeBSD вэб мастер захидлын жагсаалт"> freebsd-www"> FreeBSD X11 захидлын жагсаалт"> freebsd-x11"> bug-followup@FreeBSD.org"> majordomo@FreeBSD.org">