diff --git a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
index c941665af3..9b64b9df47 100644
--- a/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/ports/chapter.sgml
@@ -1,1467 +1,1466 @@
Шагдарын
Нацагдорж
Орчуулсан
Програм суулгах: Багцууд болон портууд
Ерөнхий агуулга
портууд
багцууд
Маш олон системийн хэрэгслүүд FreeBSD-н үндсэн системтэй нь хамт суугддаг. Гэхдээ зарим хүмүүст ажлаа гүйцээхийн тулд маш олон гуравдагчдын бэлтгэсэн програмыг суулгах шаардлага гардаг билээ. Таны систем дээр гуравдагчийн бүтээсэн програмуудыг суулгах хоёр үндсэн маш сайн аргыг FreeBSD хангаж өгдөг нь: FreeBSD-н портын цуглуулга (эх бичлэгээс нь суулгахад зориулагдсан), ба багцууд (урьдчилан хөрвүүлсэн хоёртын хэлбэрийн файлаас суулгахад зориулагдсан) юм.
Энэ хоёр арга нь хоёулаа таны суулгахыг хүссэн програмын хамгийн сүүлийн хувилбарыг сүлжээ юм уу дотоод төхөөрөмжөөс суулгахад хэрэглэгдэнэ.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Гуравдагчдын бүтээсэн програмын багцыг хэрхэн суулгах.
Портын цуглуулга ашиглаж гуравдагчдын програмыг эх бичлэгээс нь хэрхэн бүтээх.
Өмнө суугдсан багц юм уу эсвэл портуудыг хэрхэн устгах.
Портын цуглуулгын хэрэглэдэг анхдагч утгуудыг хэрхэн дарж бичих.
Шаардлагатай програмын багцаа хэрхэн хайж олох.
Програмаа хэрхэн шинэчилсэн түвшинд авчрах.
Програм суулгацын ерөнхий ойлголт
Хэрэв та урьд нь &unix; системийг хэрэглэж байсан бол, гуравдагчдын бүтээсэн програмыг суулгах явц дараах маягаар явагддаг билээ:
Програмыг татаж авах. Энэ нь голдуу эх бичлэг хэлбэрээрээ юм уу эсвэл хөрвүүлэгдсэн хоёрт файлын хэлбэрээр байдаг.
Авсан програмаа задлах
(ихэнх нь &man.compress.1;,
&man.gzip.1;, эсвэл &man.bzip2.1; нараар шахагдсан байдаг).
Бичиг баримт нь хаана байгааг олоод (голдуу
INSTALL юм уу README
файлууд байдаг ба, эсвэл doc/
гэсэн дэд санд буй бичиг баримтууд) хэрхэн суулгах зааврыг нь унших.
Хэрэв програм нь эх бичлэг хэлбэрээрээ байгаа бол, түүнийг хөрвүүлэх.
Ингэхийн тулд магадгүй
Makefile файлыг засварлах, эсвэл
configure скриптийг ажиллуулах зэрэг ажлууд байдаг.
Програмыг шалгаад, дараа нь суулгах.
Хэрэв бүх зүйл сайхан бүтсэн үед л ийм явц үйлдэгддэг. Хэрэв та тусад нь FreeBSD-д зориулж порт болгоогүй програмыг суулгахыг хүсвэл, магадгүй та уг програмыг ажиллуулахын тулд тухайн програмын эх кодыг засварлах хэрэг гарна.
Хэрэв та хүсэж байгаа бол, иймэрхүү
уламжлалт
аргаар програмыг FreeBSD дээр суулгаж болно. Гэхдээ FreeBSD дээр таны нөр их хөдөлмөрийг хөнгөлөх хоёр арга байдаг нь:
багцууд болон портууд юм. Энэ баримтжуулалтыг бэлтгэж байх үед &os.numports; гаран гуравдагчийн бэлтгэсэн програмууд ийм аргаар бэлэн болсон байгаа.
Ямар ч програм байсан, FreeBSD дээрх уг програмын багц гэж ердөө нэг л файлыг та татаж авах ёстой байдаг. Уг багц дотор тухайн програмын урьдчилан хөрвүүлсэн хувилбар, бичиг баримт болон тохируулга хийх скриптүүд зэрэг нь багтсан байгаа. Татаж авагдсан багц файлыг &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1; зэрэг FreeBSD-н багц зохицуулагч програмаар өөрчилж болдог. Шинэ програм суулгах явцыг нэг л тушаалаар гүйцэтгэхийг эрмэлзсэн байдаг билээ.
Програмуудын FreeBSD порт гэдэг нь, тухайн програмуудыг эх бичлэгээс хөрвүүлж автоматаар суулгах зориулалттай бүлэглэгдсэн файлуудыг хэлдэг.
Програмыг эх бичлэгээс нь хөрвүүлж суулгахад хэд хэдэн үйлдэл (татаж авах, задлах, нөхөх, хөрвүүлэх, суулгах) хийдгийг та санаж байгаа байх. Портын агуулж буй файлууд нь яг энэ явцыг танд зориулж автоматжуулахад зориулагдсан мэдээлэл агуулсан байдаг. Та энгийн хэдэн тушаалыг гарнаас оруулахад л, уг програм татагдаж авагдаад, задлагдан, нөхөгдөж, хөрвүүлэгдээд суугдах болно.
Яг үнэн хэрэгтээ, портлох арга нь тухайн програмыг дараа нь pkg_add болон бусад багц зохицуулагч програмуудад хэрэглэгдэж болохоор багц үүсгэж хэрэглэгдэж бас болдог.
Багц болон портлох энэ хоёр арга нь хоёулаа, тухайн програмын dependencies буюу хамаатан програмуудыг мэдэж байдаг. Та нэг програм суулгах шаардлагатай байгаа бөгөөд уг програм нь бас нэг програмын сан файлыг суугдсан байхыг шаарддаг байна хэмээн авч үзье. Уг хоёр програм хоёулаа
FreeBSD-н порт ба багц хэлбэрээр танд байгаа гэж бодъё. Хэрэв та
pkg_add тушаалыг хэрэглэх юм уу эсвэл портын аргыг хэрэглэж уг програмыг суулганэ гэвэл, энэ хоёр арга нь хоёулаа уг програмыг суулгахад шаардагдах сан файл суугдаагүй байвал суугдаагүй байна гэж мэдээлээд, тэр сан файлыг эхлээд суулгадаг.
Энэ хоёр аргыг харах юм бол хоорондоо тун ижилхэн үйлдэл хийдгийг та ажиглаж магадгүй юм. Тэгээд яагаад FreeBSD гуай энэ хоёр аргатай хоёулантай нь зууралдаад байгаа юм бол гэж гайхаж мададгүй. Багц болон порт хоёр нь таны суулгах нөхцлөөс шалтгаалан өөрсдийн гэсэн хүчирхэг давуу талтай.
Багцын давуу тал
Програмын шахсан багц файл нь уг програмын эх бичлэгийг агуулдаггүй болохоор хэмжээний хувьд бага байдаг.
Багцууд нэмэлт хөрвүүлэх үйлдэл шаарддаггүй.
Mozilla,
KDE, эсвэл
GNOME зэрэг том програмуудыг удаавтар систем дээр суулгахаар бол, энэ арга нь тун их давуу талтай юм.
Багцууд нь FreeBSD дээрх ямар нэгэн хөрвүүлэх явцын тухай мэдээлэл шаарддаггүй.
Портын давуу талууд
Багцыг аль болох олон систем дээр тохирогдон суулгах гэж хичээсэн болохоор, ийм багц нь маш өргөн дэлгэр сонголттойгоор хөрвүүлэгдэж бэлтгэгдсэн байдаг. Порт хэрэглэн програм суулгахаар бол, (жишээ нь) Pentium
4 эсвэл Athlon процессордоо зориулж програмын тохируулгыг өөрчилж болдог.
Зарим програмууд өөрийнхөө чадах болон чадахгүй зэрэг нөхцлөөсөө хамаараад хөрвүүлэгдэх явцад өөрчлөлт хийгдэх тохиолдлууд байдаг. Жишээ нь,
Apache програм нь маш олон төрлийн өөртөө агуулсан тохиргоотой ирдэг. Ийм програмыг та портоос бүтээх үедээ анхдагч тохиргоонуудыг нь өөрчилж өөртөө тохируулж болно.
Заримдаа, ижил төрлийн програмууд өөрсдийнхөө онцгой тохиргооноос хамаараад хэдэн хэдэн янзаар хөрвүүлэгдэж багцлагдсан байдаг. Жишээ нь, Х11 сервер суусан эсэхээс хамаараад
Ghostscript програм нь
ghostscript гэсэн нэртэй багцлагдсан байдаг ба бас
ghostscript-nox11 гэсэн нэрээр мөн багц хэлбэртэй байдаг. Багцлах аргад иймэрхүү явцуу тохируулгаас хамаарсан арга байдаг боловч, хэрэв хөрвүүлэх үеийн тохиргоо нь ихсэх болбол энэ арга нь тун явуургүй болдог билээ.
Зарим програмын лицензэнд, уг програмыг хөрвүүлэгдсэн хэлбэрээр түгээхийг хорьсон байдаг. Тийм програмуудыг эх бичлэг хэлбэрээр нь түгээх ёстой болдог билээ.
Зарим хүмүүс хөрвүүлэгдсэн хоёртын файлын түгээлтэнд дургүй байдаг. Ядаж эх бичлэг нь байвал, та (онолын хувьд) эх бичлэгийг уншиж болзошгүй аюулыг илрүүлж болох юм.
Хэрэв танд нөхөлт бичлэг (засвар) байгаа бол, та уг нөхөлтийг зөвхөн эх бичлэг дээр л хийж чадна.
Зарим хүмүүс эх бичлэгээр наадах дуртай байдаг. Тэд нар эх бичлэгийг уншаад залхуу нь хүрээд ирэхээрээ уг бичлэгийг өөрчилж эвдэх, эсвэл зээлдэж өөрчлөх ( мэдээж лицензийн дагуу ) гэх мэтээр оролддог.
Портын шинэчлэлийн тухай мэдээлэл авч байхыг хүсвэл
&a.ports; болон &a.ports-bugs; зэрэг захианы жагсаалтад бүртгүүлэх хэрэгтэй.
Ямар нэгэн програм суулгахаасаа өмнө -с програмын нууцлалын тухай мэдээллийг харах нь зүйтэй.
Та мөн ports-mgmt/portaudit-г суулгаж болох бөгөөд энэ нь, програмыг суулгахын өмнө уг програмын хуучралт болон аюулгүй байдалтай хамаатай шаардлагатай шалгалтуудыг хийж өгдөг. Иймэрхүү шалгалтыг зарим багц суулгасны дараа та portaudit
-F -a гэсэн тушаал хэрэглэн үйлдэж болно.
Энэ бүлгийн үлдсэн хэсэгт
FreeBSD дээр порт юм уу багц ашиглан хэрхэн програм суулгах талаар өгүүлэх болно.
Програмаа олох нь
Ямар нэгэн програм суулгахаасаа өмнө та ямар програм суулгахыг хүсэж
байгаа болон ямар нэртэй гэдгийг нь мэдсэн байх хэрэгтэй.
FreeBSD-н програмын жагсаалт нь цаг тутамд нэмэгдэж байдаг.
Аз болж таны хүссэн програмыг олох хэд хэдэн арга бий:
FreeBSD-н вэб хуудас нь http://www.FreeBSD.org/ports/ хаяг дээр бүх байгаа програмын шинэчлэгдсэн хувилбаруудыг нь хайж болох хэлбэрээр арчилж байдаг.
Портууд нь төрөлжиж хуваагдсан байдаг бөгөөд та хүссэн програмаа хайж олох
(хэрэв та нэрийг нь мэдэж байвал) эсвэл тухайн төрөлд байгаа бүх програмуудын нэрсийн жагсаалтыг харж болно.
FreshPorts буюу шинэхэн портууд
Dan Langille гэгч нь FreshPorts хуудсыг хаяг дээр арчлан эрхэлдэг. FreshPorts нь порт дээр гарсан өөрчлөлтүүдийг хянаж байдаг бөгөөд хэрэв таныг хүсвэл
таны сонгосон хэд хэдэн портуудыг ажиглаж
байгаад өөрчлөлт
гарангуут танд захиагаар мэдэгддэг.
FreshMeat
Хэрэв та програмынхаа нэрийг нь мэдэхгүй байгаа бол FreshMeat () хуудсан дээр хайж үзэх хэрэгтэй.
Хэрэв уг хуудсан дээр шинэ програм олдсон бол буцаад FreeBSD хуудсанд очиж
уг хуудсыг порт болсон эсэхийг магадлах нь зүйтэй.
Хэрэв та портынхоо нэрийг яг мэддэг боловч ямар төрөлд багтдагийг нь
мэдэх хэрэгтэй бол
&man.whereis.1; тушаалыг ашиглаарай.
Ердөө л whereis
файлын_нэр гэж бичих бөгөөд
файлын_нэр нь суулгахыг хүссэн програмын нэр билээ. Хэрэв уг програм нь олдвол, танд хаана байгааг нь дараах маягаар харуулна:
&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsof
Энэ нь бидэнд lsof (системийн нэгэн
хэрэгсэл) програмыг
/usr/ports/sysutils/lsof
санд буй гэж мэдэгдэж байна.
Мөн портын модонд тухайн порт хаана байгааг
олохын тулд ердийн &man.echo.1; тушаалыг ашиглаж
болно. Жишээ нь:
&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof
Энэ нь
/usr/ports/distfiles
сан уруу татаж авагдсан таарсан файлуудыг харуулах болно
гэдгийг анхаараарай.
Хүссэн портоо олох бас нэг арга бол портын цуглуулга дотор нь байдаг
өөрийнх нь хайгчийг нь ашиглах билээ. Уг хайгчийг нь хэрэглэхийн тулд
та /usr/ports сан дотор байх шаардлагатай. Уг сан
дотроос make search
name=програмын-нэр гэж бичих бөгөөд
програмын-нэр нь таны олохыг хүссэн програмын
нэр байх ёстой. Жишээлбэл
lsof програмыг олохын тулд:
&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:
Уг хайлтын үр дүнд та Path:
гэсэн мөрөнд
анхаарлаа хандуулах хэрэгтэй бөгөөд энэ нь хаана байгааг илэрхийлж байдаг.
Бусад харуулж байгаа мэдээллүүд нь програм суулгахад хэрэглэгддэггүй болохоор
энд дэлгэн ярихгүй.
Бүр нарийвчилан хайхыг хүсвэл make
search key=хайх-мөр гэх бөгөөд
хайх-мөр нь тухайн програмтай холбоотой мөр
байдаг.
Энэ нь портын нэр, тайлбар, тодорхойлолт болон хамааралтай програм зэргүүдэд
хайлт хийдэг болохоор тухайн програмынхаа талаар дэлгэрэнгүй мэдээлэл байхгүй
хүнд хайхад тун тохиромжтой.
Дээрх хоёр тохиолдолд хайх мөр тань жижиг болон том бичсэнээс хамаардаггүй. LSOF
гэж хайх нь
lsof
гэж хайсантай ижилхэн үр дүнд хүргэнэ.
Chern
Lee
Хамтран бичсэн
Багцалсан системийг хэрэглэх нь
FreeBSD дээр багцуудыг удирдах хэд хэдэн төрлийн хэрэгслүүд
байдаг:
Ажиллаж байгаа систем дээр боломжтой байгаа болон
суулгагдсан багцуудыг харах, устгах, суулгахын тулд
sysinstall-ийг ажиллуулж болно.
Дэлгэрэнгүй мэдээллийг Суулгацын дараах тохиргооноос
- үзнэ үү.
+ linkend="packages">-с үзнэ үү.
Багцын удирдлагын тушаалын мөрийн хэрэгслүүдийг энэ
хэсгийн үлдсэн хэсэгт хэлэлцэх болно.
Багц суулгах
багц
суулгах
pkg_add
Та &man.pkg.add.1; хэрэгслийг ашиглан өөртөө хадгалагдсан юм уу
эсвэл сүлжээнд буй серверээс
FreeBSD-н програмын багц суулгаж болдог.
Багц татаж аваад суулгах явц
&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
&prompt.root; pkg_add lsof-4.56.4.tgz
Хэрэв танд багц суулгах дотоод эх үүсвэр (
FreeBSD CD-ROM гэх мэт) байхгүй бол
&man.pkg.add.1; хэрэгслийг сонголттой хамт
хэрэглэх нь зүйтэй. Энэ нь тухайн програмыг төрөл болон хувилбар зэрэг
мэдээллийг нь автоматаар таньж мэдээд FTP хуудаснаас татан авч
суулгадаг.
pkg_add
&prompt.root; pkg_add -r lsof
Дээрх жишээн дээр уг хэрэгсэл нь хэрэглэгчийн оролцоогүйгээр
татаж аваад суулгаж буйг харуулж байна.
Хэрэв та татаж авах алс хаягийг нь адилхан толин тусгал болох өөр нэг
&os; багцын хаягаар солихыг хүсвэл
PACKAGESITE орчны хувьсагчийн утгад анхных нь утгыг нь дарж өөр хаяг өгөх хэрэгтэй.
&man.pkg.add.1; нь &man.fetch.3;-г ашиглаж файл татаж авдаг бөгөөд янз бүрийн орчны хувьсагчийн
утга хэрэглэдэг. Тэд нар нь
FTP_PASSIVE_MODE, FTP_PROXY, мөн
FTP_PASSWORD гэх мэт хувьсагчид байдаг.
Хэрэв та галт хананы цаана байгаа юм уу эсвэл
FTP/HTTP прокси хэрэглэж байгаа бол уг хувьсагчдыг өөрчлөх ёстой.
Хувьсагчдын бүрэн жагсаалтыг &man.fetch.3; хуудаснаас харна уу.
Дээрх жишээн дээр
lsof нь
lsof-4.56.4 оронд хэрэглэгдэв. Хэрэв та алсаас автоматаар
татаж авах үйлдэл хийж байгаа бол багцны хувилбарын дугаарыг оруулалгүй бичих
хэрэгтэй. &man.pkg.add.1; нь тухайн програмын сүүлийн хувилбарыг автоматаар
таньж суулгадаг.
Хэрэв та &os.current; эсвэл
&os.stable; хувилбарыг хэрэглэж байгаа бол &man.pkg.add.1; нь
програмын хамгийн сүүлийн хувилбарыг татаж авч суулгадаг. Хэрэв
та -RELEASE хувилбар хэрэглэж байгаа бол таны хэрэглэж байгаа
тухайн хувилбарт тохирсон хувилбарыг нь татаж авч суулгадаг. Гэхдээ
иймэрхүү үйлдлийг нь өөрчлөхийг хүсвэл PACKAGESITE-г өөрчлөөрэй.
Жишээлбэл та &os; 5.4-RELEASE
систем дээр &man.pkg.add.1; хэрэгслийг ажиллуулбал анхдагч хаяг нь
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/ байх болно.
Хэрэв та &man.pkg.add.1;-г
&os; 5-STABLE багц суулгахаар тохируулахыг хүсвэл PACKAGESITE
хувьсагчийг
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/ гэж зааж өгөх хэрэгтэй.
Багц файлууд нь .tgz
болон .tbz гэсэн хэлбэртэй байдаг.
Та тэдгээрийг
хаягнаас олж болох бөгөөд эсвэл FreeBSD CD-ROM дээр бас буй.
FreeBSD-н 4 ширхэг CD тус бүрийн /packages сан дотор
багц байрлаж байгаа. Багц байрлуулалт нь
/usr/ports-н загвартай ижил модлог байдаг.
Төрөл болгон өөрийн гэсэн сантай ба багц болгон бас
All буюу бүгд гэсэн сангаас олддог.
Багцны сангийн бүтэц нь портын бүтэцтэй таарч багц портын системийг
бүрэлдүүлдэг юм.
Багц зохицуулалт
багц
зохицуулах
&man.pkg.info.1; хэрэгсэл нь суугдсан багцтай холбоотой
мэдээллүүдийг харуулдаг.
pkg_info
&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...
&man.pkg.version.1; хэрэгсэл нь суугдсан бүх багцны ерөнхий мэдээллийг
харуулж байдаг. Энэ нь багцны хувилбарыг портын санд буй програмын хувилбартай
жишиж харьцуулдаг.
pkg_version
&prompt.root; pkg_version
cvsup =
docbook =
...
Хоёр дахь баганад буй тэмдэгт нь порт доторх програмын хувилбартай харьцуулсан харьцуулалт юм.
Тэмдэг
Утга
= Суугдсан багцны хувилбар нь портын хувилбартай
адилхан байна.
<
Суугдсан хувилбар нь портын хувилбараас хуучин байна.
>Суугдсан хувилбар нь портын хувилбараас
шинэ байна. (Дотоод порт тань хуучирсан байж болзошгүй)
?Суугдсан багц нь портын жагсаалтад
олдсонгүй. (Энэ тохиолдож болох юм. Жишээлбэл суугдсан порт нь устгагдах юм уу нэр нь өөрчлөгдсөн байж болзошгүй.)
*Багц олон хувилбартай байна.
!Суулгагдсан багц жагсаалтад байгаа боловч
ямар нэг шалтгааны улмаас pkg_version тушаал нь
суулгагдсан багцын хувилбарын дугаарыг жагсаалт дахь харгалзах оруулгатай
харьцуулж чадахгүй байна.
Багц устгах
pkg_delete
багц
устгах
Өмнө суугдсан байгаа багцыг устгахдаа
&man.pkg.delete.1; хэрэгслийг ашиглана.
&prompt.root; pkg_delete xchat-1.7.1
&man.pkg.delete.1; нь багцын бүрэн нэр болон дугаарыг шаарддагийг
тэмдэглэе; xchat-1.7.1-ийн
оронд xchat өгөгдсөн бол дээр дурдсан тушаал
ажиллахгүй. Гэхдээ суулгагдсан багцын хувилбарыг олохын тулд
&man.pkg.version.1;-ийг ашиглах хялбар байдаг. Ингэхийн оронд та
бүгдийг орлуулах тэмдэгт ашиглаж болох юм:
&prompt.root; pkg_delete xchat\*
Энэ тохиолдолд xchat-аар эхэлсэн нэртэй бүх
багцуудыг устгах болно.
Бусад мэдүүштэй зүйлс
Бүх багцтай холбоотой мэдээллүүд
/var/db/pkg сан дотор хадгалагдаж байдаг. Суугдсан багцны жагсаалт болон холбогдох тодорхойлолтууд нь уг санд буй файл дотроос уншигдах
боломжтой.
Портын цуглуулгыг хэрэглэх нь
Дараах хэсэгт системдээ портын цуглуулгыг ашиглан хэрхэн програм
суулгах болон устгах талаар өгүүлэх болно. make
хөрвүүлэгчийн байршил болон орчны хувьсагчийн тухай нэмэлт тодорхой мэдээллийг
&man.ports.7; хуудаснаас харна уу.
Портын цуглуулгыг суулгах нь
Порт суулгахаасаа өмнө нь /usr/ports сан
дотор Makefiles, patches буюу нөхөгч файл, мөн
тодорхойлолт файлуудыг агуулсан портын цуглуулгыг суулгах хэрэгтэй.
FreeBSD-г суулгах үед
sysinstall програм танаас портын цуглуулгыг
суулгах эсэхийг тань асуудаг. Хэрэв та тэр үед үгүй гэж хариулсан бол
энэ хэсэгт хэрхэн суулгах талаар тайлбарлана:
CVSup арга
Энэ арга нь CVSup протоколыг ашиглан
портын цуглуулгаа суулгаж мөн байнга шинэчилж болох хамгийн түргэн арга юм.
Хэрэв та CVSup-н талаар дэлгэрэнгүй мэдэхийг
хүсэж байвал CVSup-г хэрэглэх нь хэсгээс хараарай.
&os; системд орсон CVSup протоколын
шийдэл нь csup гэж нэрлэгддэг.
Энэ нь &os; 6.2-т анх удаа орсон. Хуучин &os; хувилбарын хэрэглэгчид
үүнийг net/csup порт/багцын
тусламжтайгаар суулгаж болно.
csup-г анх удаагаа ажиллуулахынхаа өмнө
/usr/ports санг хоосон байлгах хэрэгтэй.
Хэрэв уг сан дотор өөр эх сурвалжаас суулгасан портын цуглуулга байвал,
csup нь уг файлуудыг шинэчилж нөхдөггүй билээ.
csup тушаалыг ажиллуулна:
&prompt.root; csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
cvsup.FreeBSD.org гэдгийг
өөртэйгээ ойрхон орших
CVSup серверийн нэрээр
солих хэрэгтэй.
CVSup толин тусгалууд () хэсгээс толин тусгал хуудаснуудын бүрэн
жагсаалтыг хараарай.
Зарим нэг нь өөрийнхөө бэлтгэсэн
ports-supfile файлыг хэрэглэхийг хүсэж болох юм.
Ингэсэн үед тушаал бичих мөрөнд CVSup
серверийн нэрийг бичих шаардлага гардаггүй.
Ингэхийг хүссэн үед root эрхээр ороод
/usr/share/examples/cvsup/ports-supfile файлыг
шинэ сан уруу хуулах хэрэгтэй. Жишээлбэл
/root юм уу эсвэл өөрийнхөө эхлэл санд хуулж болно.
ports-supfile файлыг засварлана.
CHANGE_THIS.FreeBSD.org мөрийг
өөртэйгөө ойрхон буй CVSup серверийн нэрээр
сольно. CVSup
Толин тусгалууд () хэсэгт толин тусгалуудын бүрэн жагсаалтыг харж болно.
Одоо csup-г ажиллуулахын тулд дараах алхмыг хийх хэрэгтэй:
&prompt.root; csup -L 2 /root/ports-supfile
Дараа нь &man.csup.1; тушаалыг ажиллуулснаар тухайн үед хөрвүүлж байгаа
портуудыг эс оруулаад бүх портын цуглуулгыг татаж аван сүүлд орсон өөрчлөлтүүдийг мөн шинэчилдэг.
Portsnap арга
Portsnap нь портын цуглуулгыг шинэчлэх бас нэг арга
билээ. Portsnap-г хэрэглэх нь хэсгээс
Portsnap-тай холбоотой бүх мэдээллийг харна уу.
Шахсан хэлбэртэй портын цуглуулгыг
/var/db/portsnap сан дотор
татаж авах хэрэгтэй. Хэрэв та хүсвэл энэ алхмын дараа интернэтээс
салгаатай ажиллаж болдог.
&prompt.root; portsnap fetch
Хэрэв та Portsnap-г анх удаагаа
ажиллуулж байгаа бол шахагдсан уг цуглуулгыг /usr/ports сан дотор задална:
&prompt.root; portsnap extract
Хэрэв та өмнө нь /usr/ports сан дотор цуглуулгыг суулгасан бөгөөд
энэ үед зөвхөн шинэчлэхийг хүсэж байгаа бол дараах тушаалыг өгөх хэрэгтэй:
&prompt.root; portsnap update
Sysinstall арга
Энэ арга нь суулгацын төхөөрөмжөөс sysinstall-г
ашиглан портын цуглуулгыг суулгах арга юм. Гэхдээ тухайн төхөөрөмж дээр байгаа
цуглуулга нь тухайн хувилбарыг гаргасан өдрийн хувилбартай байдгийг анзаарах
хэрэгтэй. Хэрэв танд интернэт холболт байдаг бол дээр өгүүлсэн хоёр аргыг урьтал
болгох нь зүйтэй.
root эрхээр ороод
sysinstall гэсэн тушаал өгөх хэрэгтэй
(/stand/sysinstall гэж &os;
-н 5.2-с хуучин хувилбаруудад бичих ёстой):
&prompt.root; sysinstall
Configure гэдгийг сонгоод
Enter товч дарна.
Distributions цэсийг сонгоод
Enter дээр дарна.
ports гэж сонгон
Space товч дээр дарах хэрэгтэй.
Дээр буй Exit гэдгийг олж сонгон
Enter дээр дарна.
CDROM юм уу FTP гэх мэт суулгах төхөөрөмжөө сонгоно.
Дээр буй Exit цэсийг сонгоод
Enter дээр дарна.
X дээр дарж
sysinstall-с гарах болно.
Порт суулгах нь
портууд
суулгах
Портын цуглуулгын талаар яриа хийхийн өмнө портын
skeleton буюу араг яс
ны талаар ойлголт авах хэрэгтэй.
Хамгийн энгийн ойлголтоор бол энэ нь FreeBSD системд програмыг
цэвэрхэн хөрвүүлээд суулгахыг зааварласан товч заавар байдаг.
Порт болгоны араг яс дараах зүйлсийг агуулж байдаг:
Makefile.
Makefile нь янз бүрийн заавар бичлэгүүд
агуулж байдаг бөгөөд энэ нь програм хэрхэн хөрвүүлэгдэх,
бас хаана суугдах зэрэг үйлдлүүдийг тодорхойлсон байгаа.
distinfo файл. Энэ файл нь
хөрвүүлж бүтээгдэх ёстой
файлуудын татаж авалт болон тэдгээрийн алдаагүй
татагдсан эсэхийг (&man.md5.1; болон &man.sha256.1; хэрэгслүүдийг ашиглан) шалгах
зэрэг мэдээллүүдийг агуулж байдаг.
files нэртэй сан. Энэ санд таны
FreeBSD систем дээр суугдах програмуудын хөрвүүлэгдэхэд
хэрэглэгддэг patches буюу нөхөөс файлуудыг агуулна.
Нөхөөс файлууд нь жижигхэн хэмжээний файл бөгөөд тодорхой
зарим файлд гарсан өөрчлөлтүүдийг агуулдаг.
Нөхөөсүүд текст хэлбэрээр оршдог ба голдуу
10 дугаар мөрийг устга
эсвэл 26 дугаар
мөрийг үүгээр соль ...
гэсэн зааврууд байдаг.
Нөхөөсүүдийг мөн
diffs буюу ялгааны
төрлийн файл гэж ярьцгаадаг. Ийм
ялгааг нь илэрхийлсэн файлыг үүсгэхдээ
&man.diff.1; програмыг хэрэглэдэг юм.
Энэ санд портыг бүтээхэд шаардагдах өөр төрлийн файлууд бас байж
болох юм.
pkg-descr файл. Энэ файл дотор тухайн
програмын тухай нэлээн дэлгэрэнгүй тодорхойлолт агуулагдаж байдаг.
pkg-plist файл. Энэ файл дотор порт
суугдах явцад хуулагдаж суугдах файлуудын жагсаалт байдаг. Энэ нь
мөн портыг устгах үед портын системд мэдэгдэх файлуудын
жагсаалт билээ.
Зарим портууд
pkg-message гэх мэтийн өөр файлууд агуулж байдаг.
Портын систем нь онцгой тохиолдолд уг файлуудтай хандаж тухайн
портод харгалзах үйлдлүүдийг хийх болно. Хэрэв та ийм файлуудын
тухай дэлгэрэнгүй мэдээлэл мөн портын тухай үндсэн ойлголт
авахыг хүсвэл FreeBSD порт бүтээгчийн
гарын авлага хуудаснаас харна уу.
Порт дотор програмын эх бичлэгийг хэрхэн хөрвүүлж бүтээх
тухай заавар байдаг болохоос уг програмын эх бичлэг нь байдаггүй.
Та уг програмын эх бичлэгийг CD-ROM эсвэл интернэтээс
уг зохиогчийнх нь гаргасан хэлбэрээр татаж авч болно. Голдуу
эх бичлэгүүд нь tar болон gzip шахалтаар шахаж бэлдсэн байдаг боловч
заримдаа өөр төрлийн хэрэгсэл ашиглан шахсан тохиолдол тулгарч
магадгүй. Ямар ч хэлбэрээр програмын эх бичлэгийг авсан байг, түүнийг
distfile
гэж нэрийддэг. Доор &os; порт суулгах
хоёр аргыг танилцуулж байна.
Порт суулгахын тулд та root эрхэнд
сэлгэсэн байх ёстой.
Ямар нэгэн портыг суулгахаасаа өмнө портынхоо цуглуулгыг та
шинэчилсэн байх хэрэгтэй бөгөөд хуудсанд тухайн
порттой холбоотой аюул нууцлалын тухай сэдэв хөндөгдсөн эсэхийг
шалгах хэрэгтэй.
Ямар ч порт суулгахаасаа өмнө аюулгүйн нууцлалын хувьд
сул тал буй эсэхийг portaudit-р
автоматаар шалгаж болно. Энэ хэрэгслийг портын цуглуулга дотор
олох боломжтой (ports-mgmt/portaudit). Шинэ портыг суулгахаасаа
өмнө portaudit -F гэж ажиллуулснаар
аюулгүйн нууцлалд гарсан сул тал нүхнүүдийн тухай мэдээллийн
өгөгдлийн баазаас мэдээллүүдийг авч нөхөлт хийдэг. Аюулгүйн нууцлалын
мэдээллийн өгөгдлийн баазын шинэчлэх явц өдөр болгон давтагдаж хийгдэх
болно. Нэмэлт дэлгэрэнгүй мэдээллийг &man.portaudit.1; болон
&man.periodic.8; хуудаснаас харна уу.
Портын цуглуулга таныг интернэт холболттой гэж авч үздэг.
Хэрэв танд интернэт холболт байхгүй бол
distfile файлуудыг /usr/ports/distfiles
санд хуулах хэрэгтэй.
Эхлэхийн өмнө суулгах гэж буй портын санд орох хэрэгтэй:
&prompt.root; cd /usr/ports/sysutils/lsof
Тэгээд lsof санд орсон хойноо уг сан дотор
та тухайн портын араг ясыг харах болно. Дараагийн алхам бол
портыг хөрвүүлэх буюу
бүтээх
билээ. Ингэхийн тулд тушаал бичих мөрөнд
make гэж бичнэ. Ингэж гүйцэтгэсний дараа
дараах маягийн явцын мэдээллийг та харах болно:
&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;
Хөрвүүлэлт дуусаад та буцаад тушаал бичих мөрөнд ирэнгүүт
хийх ёстой дараагийн алхам бол портыг суулгах билээ. Ингэхийн тулд
таны хийх ёстой зүйл бол make тушаалыг
өөр нэг үгтэй хамт бичих ёстой бөгөөд тэр үг нь
install юм:
&prompt.root; make install
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;
Ингээд тушаал бичих мөр боломжтой болонгуут суулгасан портоо
ажиллуулах боломжтой болдог. Бид нарын жишээ авч суулгасан
lsof програм нь нууцлалын давуу эрх
шаарддаг болохоор аюулгүйн нууцлалын анхааруулга харуулагддаг.
Порт суулгах үед хэрэв анхааруулга харуулагдваас түүнийг тун
анхааралтай уншиж ойлгох хэрэгтэй.
Програмыг хөрвүүлж бүтээхэд хэрэглэгдсэн түр файлуудыг
хадгалсан дэд сангуудыг устгах нь зүйтэй. Энэ нь дискний зайг
хэмнэхээс гадна тухайн портыг шинэчлэх үед алдаа гаргуулахгүй
маш сайн зуршил юм.
&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;
Та make,
make install мөн
make clean гэсэн дамжлагуудыг
make install clean гэж товчилж бичиж болно.
Зарим shells буюу бүрхүүлийн орчнууд нь PATH
орчны хувьсагч дотор буй сангууд доторх ачаалагдаж болдог
програмуудын тушаалын хайлтыг түргэвчлэх зорилгоор түр хадгалагчид
хадгалсан байдаг. Та хэрэв ийм төрлийн бүрхүүлийн орчин
ашиглаж байгаа бол порт суулгасны дараа rehash
тушаалыг хэрэглэн портын ачаалагдах файлыг бүрхүүлийн таних
сан дотор нэмдэг. Энэ тушаал нь
tcsh маягийн бүрхүүлд ажилладаг.
sh төрлийн бүрхүүлд hash -r
гэж ашигладаг. Тухайн бүрхүүлд хамаатай нэмэлт мэдээллийг нь харна уу.
FreeBSD
Mall зэрэг зарим гуравдагчдын гаргасан DVD-ROM дээр distfiles
файлууд агуулагдсан байдаг. Тэдгээрийг портын цуглуулганд хэрэглэж
болно. DVD-ROM-г /cdrom санд таниулж холбоно.
Хэрэв та өөр санд холбосон бол уг сангийн нэрийг
CD_MOUNTPTS орчны хувьсагчид зааж өгөөрэй.
Шаардлагатай distfiles файлууд нь дискнээс автоматаар хэрэглэгддэг.
Зарим нэг цөөн тооны портуудын лицензийг нь анхаарах
хэрэгтэй. Ийм төрлийн портуудын эх бичлэг нь CD-ROM дээр
байдаггүй. Тэдгээрийг татаж авах юм уу цааш нь
түгээхийн тулд ямар нэгэн гэрээ бөглөх илгээх ёстой болдог.
Хэрэв таны суулгах порт CD-ROM дээр байхгүй байгаа бол интернэт рүү
орон хэлсний дагуу гүйцэтгэх хэрэгтэй.
Портын систем нь &man.fetch.1; хэрэгслийг ашиглан файлуудыг
татаж авдаг. Уг хэрэгсэл нь
FTP_PASSIVE_MODE, FTP_PROXY,
мөн FTP_PASSWORD гэх мэтчилэн төрөл бүрийн орчны
хувьсагчдыг ашиглаж ажилладаг. Хэрэв та галт хана юм уу
FTP/HTTP прокси хэрэглэдэг бол эдгээр хувьсагчдад тохирох утгыг нь
зааж өгөх хэрэгтэй. &man.fetch.3; хуудаснаас хувьсагчдын бүрэн жагсаалтыг
харна уу.
Интернэтэд байнга холбогддоггүй хэрэглэгчдэд зориулж
make fetch тушаал
байдаг. Уг тушаалыг портын дээд сан
(/usr/ports) дотор гүйцэтгэхэд шаардагдах
бүх файлуудыг татаж авдаг. Уг тушаалыг мөн
/usr/ports/net гэх зэргийн дэд сан дотор гүйцэтгэж
болно.
Хэрэв тухайн порт өөр сан юм уу портоос хамаардаг бол fetch гүйцэтгэл
нь тэдгээр хамаарлыг нь
нөхөж татдаггүйг анхаараарай.
Харин fetch гэдгийг
fetch-recursive гэж орлуулснаар
тухайн портын хамааралтай порт болон сангуудыг давхар татаж авдаг.
Та бүх портуудыг хөрвүүлж бүтээнэ гэвэл make
тушаалыг make
fetch тушаалыг тайлбарласан шиг дээд санд
гүйцэтгэж болдог. Гэвч зарим порт байхгүй тохиолдолд ийм үйлдэл бол аюултай. Мөн зарим портууд хоёр өөр файлыг нэг нэрээр суулгах хүндрэл гаргаж болзошгүй.
Мөш цөөхөн тохиолдолд хэрэглэгчид
MASTER_SITES (татаж авах файлуудын байршил) хаягнаас
өөр байршил ашиглан эх файлуудыг татаж авах шаардлага гарч болох юм.
Ийм үед
MASTER_SITES хувьсагчийн утгыг дараах тушаалаар
өөрчилдөг:
&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
Энэ жишээн дээр бид
MASTER_SITES-н утгыг ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
гэж өөрчиллөө.
Зарим порт нь өөрийнхөө зарим хэсгийг
шаардлагагүй гэж үзэх тохиолдолд, эсвэл аюулгүйн нууцлалын
шалтгаанаар ч юм уу өөрчлөлт хийх боломж (эсвэл шаарддаг)
өгдөг.
www/mozilla, security/gpgme, мөн mail/sylpheed-claws зэргүүдийг жишээ
болгож болох юм. Иймэрхүү мэдэгдлүүд байвал тухайн үед танд
харуулагдах болно.
Портын анхдагч санг дарж бичих
Заримдаа портыг хөрвүүлэх болон суулгах өөр санг хэрэглэх
нь хэрэгтэй (онц шаардлагатай) байдаг.
WRKDIRPREFIX болон PREFIX
хувьсагчдын утгыг өөрчилж анхдагч сангийн байршлыг сольдог.
Жишээ нь:
&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install
гэсэн тушаал нь портыг
/usr/home/example/ports сан дотор хөрвүүлээд
хөрвүүлэгдэж бүтээгдсэн файлуудыг /usr/local
санд суулгадаг.
&prompt.root; make PREFIX=/usr/home/example/local install
гэсэн тушаал нь портыг /usr/ports санд хөрвүүлж
бэлдээд /usr/home/example/local санд суулгана.
Мэдээж
&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install
гэж хоёр хувьсагчийг хослуулан хэрэглэж бас болно
(танд зөвхөн ерөнхий ойлголт өгөх зорилгоор урт мөрийг товчилж харуулсан
билээ).
Мөн та уг хувьсагчдыг өөрийнхөө орчны хувьсагч болгож
зарлаж болно. Тухайн бүрхүүлийнхээ орчны тухай зааврыг эхлээд
уншиж танилцах нь зүйтэй.
imake-г хэрэглэх
Зарим порт imake-г хэрэглэдэг ( X
цонхот системийн хэсэг) бөгөөд
PREFIX хувьсагч ашиглалгүй
/usr/X11R6 санд суулгадаг. Үүнтэй ижил
зарим Perl портууд PREFIX хувьсагч хэрэглэлгүй
Perl-н санд суулгадаг. Эдгээр портуудыг
PREFIX хувьсагчтай хамтран ажиллуулж
энэ хувьсагчийг ойлгож хүндэтгэдэг болгоно гэдэг бол тун хэцүү бөгөөд
бараг боломжгүй ажил юм.
Портуудыг дахин тохируулах нь
Тухайн портуудыг бүтээж байхад чинь танд бүтээх тохируулгуудаас
сонгож болох ncurses дээр тулгуурласан цэс харуулагддаг.
Портыг нэгэнт бүтээсний дараа тэдгээр тохируулгуудыг нэмэх, хасах, эсвэл
өөрчлөхийн тулд энэ цэсэнд дахин орохыг хүсэх нь хэрэглэгчдийн
хувьд тийм ч нийтлэг биш юм. Үүнийг хийх олон аргууд байдаг.
Нэг арга нь портыг агуулж байгаа сан уруу ороод урьдын адил тохируулгуудыг
сонгосон хэвээр байгаа цэсийг дахин харуулах make
config гэж тушаалыг ажиллуулах явдал юм.
Өөр нэг арга нь портын хувьд бүх тохиргооны сонголтуудыг харуулах
make showconfig тушаалыг
ашиглах явдал юм. Бас нэг өөр арга нь бүх сонгогдсон тохируулгуудыг
арилгаад танд дахин эхлэх боломж олгох make
rmconfig тушаалыг ажиллуулах явдал юм.
Эдгээр бүх аргууд болон бусдын талаар &man.ports.7; гарын авлагын
хуудсанд илүү дэлгэрэнгүй тайлбарласан байгаа.
Суугдсан портыг устгах нь
портууд
устгах
Та одоо портыг хэрхэн суулгах талаар мэдсэн юм чинь
хэрэв буруу портоо суулгасан бол түүнийг
хэрхэн утсгадаг талаар мэдэхийг хүсэж байгаа байх.
Өмнөх жишээнд суулгасан портоо бид устгацгаая (анхааралгүй
уншсан нэгэнд нь lsof програм гэж сануулъя).
Портууд багцтай ижилхэн
&man.pkg.delete.1; тушаалаар устгагдаж болно (
Багц сонголт хэсэгт тайлбарласан буй):
&prompt.root; pkg_delete lsof-4.57
Порт шинэчлэх
порт
шинэчлэх
Хамгийн түрүүнд &man.pkg.version.1; тушаал ашиглан
портын цуглуулгаас шинэ хувилбар агуулсан портуудыг жагсаах хэрэгтэй:
&prompt.root; pkg_version -v
/usr/ports/UPDATING
Портыг шинэчлэхээсээ өмнө портын цуглуулгаа шинэчлээд
/usr/ports/UPDATING файлыг шалгана.
Энэ файл дотор портыг шинэчлэхэд шаардагдах үйлдлүүд болох
өөрчлөгдсөн төрөл, тохируулгын өөрчлөлт, эсвэл өмнөх хувилбартайгаа
зөрчилдөх хэсгүүд гэх мэтийн чухал мэдээллүүд агуулагдаж байдаг.
Хэрэв UPDATING файлд саяны таны уншсан
зүйлүүдээс өөр юм агуулагдаж байвал уг файлд буй зааврыг дагах нь
зүйтэй.
Portupgrade ашиглан порт шинэчлэх нь
portupgrade
portupgrade хэрэгсэл нь портыг
амархан шинэчлэхэд зориулагдсан. Үүнийг ports-mgmt/portupgrade портоос суулгаж болно.
Бусад портын нэгэн адил порт суулгадаг журмаар make install
clean гэсэн тушаалаар суулгадаг:
&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install clean
Суугдсан портын жагсаалтыг pkgdb
-F тушаал ашиглан шалгаад үр дүнгийн мэдээлэлд байгаа
зөрчлүүдийг нь залруулж засах хэрэгтэй. Шинэчлэл хийхээсээ өмнө ингэж
зөрчлүүдийг арилгах нь тун сайн санаа билээ.
Хэрэв та portupgrade -a гэж ажиллуулбал
таны системд суугдсан бүх хуучирсан портуудыг
portupgrade шинэчилж эхэлдэг.
Хэрэв та суугдах шинэчлэл болгонд лавлаж асуух үйлдэл хийлгэхийг хүсвэл
сонголт нэмээрэй.
&prompt.root; portupgrade -ai
Хэрэв та бүх шинэчлэгдэх порт биш харин зөвхөн тодорхой нэгэн
портыг шинэчлэх хүсэлтэй бол portupgrade
багцны-нэр гэж бичнэ.
сонголт нэмснээр тухайн програмд шаардагдах
портуудыг portupgrade эхлээд нь шинэчлэдэг.
&prompt.root; portupgrade -R firefox
Портын оронд багц хэрэглэж суулгахыг хүсвэл
сонголт хэрэглэнэ. Энэ сонголттой үед
portupgrade нь
PKG_PATH хувьсагчид зааж өгсөн жагсаалтад буй сан дотроос
багцуудыг хайх ба хэрэв уг санд байхгүй байгаа бол сүлжээнээс татаж нөхдөг.
Хэрэв дотоод сан болон сүлжээнээс багц олдоогүй тохиолдолд
portupgrade нь портоор суулгахыг оролдох болно.
Порт хэлбэрээр суулгах үйлдлийг зогсоохын тулд
сонголтыг нэмж өгдөг.
&prompt.root; portupgrade -PP gnome2
Хэрэв хөрвүүлж суулгалгүйгээр зөвхөн distfiles файлыг татаж авах (хэрэв
сонголттой бол багц файлыг ) шаардлагатай бол
сонголтыг ашиглаарай.
Дэлгэрэнгүй мэдээллийг &man.portupgrade.1; хэсэгт харна уу.
Portmanager ашиглан портыг шинэчлэх нь
portmanager
Portmanager бол портыг суулгаж
шинэчлэхийг амарчилсан өөр нэг хэрэгсэл билээ. Үүнийг
ports-mgmt/portmanager портноос
суулгаж болно:
&prompt.root; cd /usr/ports/ports-mgmt/portmanager
&prompt.root; make install clean
Бүх суугдсан портууд дараах энгийн тушаалаар шинэчлэгдэж болдог:
&prompt.root; portmanager -u
Та мөн сонголт нэмснээр
Portmanager-н гүйцэтгэх алхам бүрийг лавлах асуух хэлбэрт оруулан хянаж болдог.
Portmanager-г ашиглан системд шинэ портыг суулгаж болно.
make install clean гэсэн ердийн тушаалаас ялгаатай нь
тухайн сонгосон портыг суулгахаасаа өмнө түүнд хамааралтай бүх портуудыг
шинэчлэдэг.
&prompt.root; portmanager x11/gnome2
Хэрэв сонгосон портын хамааралтай портод ямар нэгэн
хүндрэл гарвал Portmanager-г тэр хүндрэл
гарсан портоос эхлэн дахин шинээр хөрвүүлж бэлд гэж зааж өгч болдог.
Ингэсэн үед хүндрэл гаргасан портыг эхлэж хөрвүүлээд дараа нь
портоо шинэчлэх явцаа цааш нь үргэлжлүүлдэг.
&prompt.root; portmanager graphics/gimp -f
Дэлгэрэнгүй мэдээллийг
&man.portmanager.1;-с харна уу.
Portmaster ашиглан портыг шинэчлэх нь
portmaster
Portmaster нь үндсэн
системд байдаг (бусад портуудаас хамаардаггүй) хэрэгслүүдийг ашиглахаар
хийгдсэн бөгөөд аль портыг шинэчлэхээ тогтоохын тулд
/var/db/pkg/ сан доторхийг
ашигладаг. Тэрээр ports-mgmt/portmaster
порт хэлбэрээр байдаг:
&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install clean
Portmaster нь портуудыг дөрвөн
төрөлд бүлэглэдэг:
Root буюу язгуур портууд (хамаарсан портууд байхгүй, бусдаас хамаардаггүй)
Trunk буюу гол портууд (хамаарсан портууд байхгүй, бусдууд хамаардаг)
Салбар портууд (хамаарсан портуудтай, бусдууд хамаардаг)
Навч портууд (хамаарсан портуудтай, бусдаас хамаардаггүй)
Та суулгагдсан бүх портуудыг жагсааж болох бөгөөд
тохируулга ашиглан шинэчлэлт байгаа
эсэхийг хайж болно:
&prompt.root; portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions available
Бүх суулгагдсан портуудыг энэ хялбар тушаал ашиглан
шинэчилж болно:
&prompt.root; portmaster -a
Анхдагчаар Portmaster нь
байгаа портыг устгахаасаа өмнө нөөц багц үүсгэдэг. Хэрэв шинэ
хувилбар суулгалт амжилттай болсон бол Portmaster
нөөц багцыг устгана. сонголтыг ашиглаж
Portmaster-т нөөцийг автоматаар
устгахгүй байхыг тушаана. сонголтыг ашигласнаар
порт бүрийг шинэчлэхээс өмнө асууж лавлан
Portmaster-ийг интерактив горимд
эхлүүлнэ.
Хэрэв шинэчлэх процессийн явцад алдаа гарвал та бүх портыг шинэчлэх
буюу дахин бүтээхийн тулд -г ашиглаж болно:
&prompt.root; portmaster -af
Шинэ порт бүтээж суулгахаасаа өмнө бүх хамааралтай портуудыг шинэчилж
Portmaster-ийг системд шинэ порт суулгахдаа
та бас ашиглаж болно:
&prompt.root; portmaster shells/bash
Дэлгэрэнгүй мэдээллийг &man.portmaster.8;-с үзнэ үү.
Порт ба дискний хэмжээ
порт
дискний хэмжээ
Портын цуглуулга нь дискний хэмжээг байнга идэж байдаг. Портоос
програмыг хөрвүүлж суулгасны дараа бэлдэж байсан
work санг
make clean тушаалаар цэвэрлэхээ үргэлж санах
хэрэгтэй. Та портын цуглуулгыг бүхлээр нь дараах тушаалаар цэвэрлэж болно:
&prompt.root; portsclean -C
Маш олон эх файлууд
distfiles санд явцын үр дүнд
хадгалагдаж байдаг. Та тэдгээрийг гар аргаар устгаж болох ба дараах
тушаал хэрэглэн ямар нэгэн порттой холбоогүй болсон бүх distfiles
устгаж болно:
&prompt.root; portsclean -D
Эсвэл таны системд одоо суугдсан байгаа порттой хамаагүй
бүх distfiles-уудыг дараах тушаалаар устгана:
&prompt.root; portsclean -DD
portsclean хэрэгсэл нь
portupgrade програмын нэг бүрдэл хэсэг.
Суулгасан портоо хэрэглэхгүй болсон үедээ устгахаа мартаж болохгүй.
Иймэрхүү автоматжуулалтыг гүйцэтгэдэг эвтэйхэн програм бол
ports-mgmt/pkg_cutleaves порт билээ.
Порт суулгасны дараах үйлдлүүд
Ердийн програмыг суулгасны дараа тухайн програмтай холбоотой
бичиг баримтыг унших, ямар нэгэн тохиргооны файл засварлах, эсвэл
уг програм компьютер ачаалагдах үед эхлэх (хэрэв энэ нь далд чөтгөр бол)
эсэхийг нь шалгах шаардлага гарч болзошгүй.
Суулгасан програм болгоныг тохируулах зарчим өөр өөр. Гэхдээ
та шинэ програм суулгачихаад Одоо яах вэ?
гэсэн асуулттай тулгарах үед дараах зүйлс тусалж магадгүй:
&man.pkg.info.1; тушаалыг ашиглан ямар файл хаана яаж суугдсаныг
харна. Жишээ нь та саяхан FooPackage version 1.0.0, програмыг суулгасан
бол
&prompt.root; pkg_info -L foopackage-1.0.0 | less
гэсэн тушаал нь уг програмыг суулгах явцад хуулсан бүх файлуудыг
харуулдаг. man/ санд хуулсан файл байвал тун
анхааралтай харах хэрэгтэй. Энэ нь гарын авлага файлууд байдаг.
Мөн etc/ санд хуулсан файлууд нь тохируулгын
файлууд байдаг бөгөөд doc/ санд бол дэлгэрэнгүй
бичиг баримтуудыг хадгалсан байдаг.
Хэрэв та програмынхаа хувилбарын талаар сайн мэдэхгүй байгаа бол
&prompt.root; pkg_info | grep -i foopackage
гэсэн тушаал нь бүх суугдсан програм дотор
foopackage гэсэн нэртэй програм байвал
харуулдаг. foopackage-н оронд хүссэн програмынхаа нэрийг бичээрэй.
Програмын гарын авлага хаана суугдсаныг мэдсэн үедээ
&man.man.1;-г ашиглан харах хэрэгтэй. Мөн түүнчлэн ийм аргаар
тохируулга болон нэмэлт мэдээллийн файлуудыг нь тухай бүрд
нь харах хэрэгтэй.
Хэрэв уг програм өөрийн гэсэн вэб хуудастай бол түүнд нь зорчин
нэмэлт мэдээлэл авах, байнгын асуулт хариултыг нь үзэх гэх мэтчилэн
оролдоорой. Уг програмын вэб хуудасны хаяг нь
&prompt.root; pkg_info foopackage-1.0.0
тушаалын гаралт дээр WWW: гэсэн хэсэгт
байдаг.
Эхлэн ачаалагдах үед эхлэх ёстой портууд (Интернэт сервер гэх мэт)
голдуу
/usr/local/etc/rc.d сан дотор эхлүүлэх
файлаа хуулдаг. Та уг файлыг шаардлагатай бол засварлах юм уу өөрчилж болно.
Үйлчилгээг эхлүүлэх хэсгээс дэлгэрэнгүй мэдэээллийг харна уу.
Эвдрэлтэй портыг засах нь
Хэрэв та портыг ажиллуулж чадаагүй тохиолдолд хийж болох
хэд хэдэн алхам бий:
Problem Report
database хуудсанд уг портын засварлах заавар бий эсэхийг
шалгах. Хэрэв байвал уг зааврын дагуу засварлах хэрэгтэй.
Уг портыг арчилж сайжруулдаг хүнээс тусламж авах.
make maintainer тушаал ашиглаад юм уу эсвэл
Makefile файл дотроос тухайн
арчлагчийн захианы хаягийг нь олох хэрэгтэй. Захиандаа
портынхоо нэр болон хувилбарыг оруулан
(Makefile файлд буй
$FreeBSD:
мөрийг илгээх хэрэгтэй ) хэрэв боломжтой бол алдаа заасан
явцын мэдээллүүдийг явуулах хэрэгтэй.
Зарим порт нь хувь хүнээр биш харин захианы
жагсаалтаар арчлагдаж байдаг. Энэ жагсаалтад бүгд биш ч гэсэн ихэнх хүмүүс нь
freebsd-listname@FreeBSD.org маягийн
захианы хаягтай байдаг. Ийм хүмүүс рүү захиагаа явуулах хэрэгтэй.
Голдуу
ports@FreeBSD.org-р арчлагдаж
байгаа гэсэн портууд нэг тодорхой хүнээр арчлагдаагүй байдаг.
Завсарлалт болон тусламж зэргүүд нь ихэнхдээ захианы жагсаалтад буй
хүмүүсээс ирдэг. Туслан дэмжих хүмүүс бидэнд үргэлж хэрэгтэй байгаа!
Хэрэв та ямар нэгэн хариулт аваагүй бол
&man.send-pr.1;-г ашиглан алдааны мэдэгдэл (
FreeBSD-н алдааг мэдээлэх хэсгийг харна уу) хийж болно.
Өөрөө засаад үз! Порт хийгчдийн гарын авлага дотор
портын
ажиллах зарчим болон бүтэц заавар, засах дараалал, тэр байтугай өөрөө порт зохиох талаар дурдсан байгаа!
Ойрхон байгаа FTP хуудаснаас багцыг татаж авах хэрэгтэй.
Үндсэн
багцны цуглуулга ftp.FreeBSD.org хуудасны багцны санд байдаг бөгөөд орон нутгийн толин тусгалуудыг эхлээд турш! Ингэсэн нь эх бичлэгийг хөрвүүлэхээс
түргэн бэлэн болсон багцыг татаж аван цаг хэмнэж байдаг. &man.pkg.add.1; програмыг ашиглан өөртөө хадгалсан багцаа систем дээрээ суулгана.
diff --git a/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml b/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml
index 82f194e239..2b80a51e18 100644
--- a/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/ppp-and-slip/chapter.sgml
@@ -1,3034 +1,3034 @@
Жим
Мок
Бүтцийг дахин өөрчлөн зохион байгуулж шинэчилсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
PPP болон SLIP
Ерөнхий агуулга
PPP
SLIP
FreeBSD нь нэг компьютерийг нөгөөтэй холбох хэд хэдэн аргуудтай байдаг.
Dial-up модемоор сүлжээнд эсвэл Интернэтэд холболт хийх юм уу эсвэл
бусдыг өөрөөр чинь дамжихыг зөвшөөрөхийн тулд PPP эсвэл SLIP-г
хэрэглэхийг шаарддаг. Энэ бүлэг эдгээр модем дээр тулгуурласан холбооны
үйлчилгээнүүдийг тохируулах талаар дэлгэрэнгүй тайлбарлах болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Хэрэглэгчийн PPP-г хэрхэн тохируулах талаар.
Цөмийн PPP-г хэрхэн тохируулах талаар.
PPPoE-г (PPP over Ethernet
буюу Ethernet дээгүүрх PPP) хэрхэн тохируулах талаар.
PPPoA-г (PPP over ATM
буюу ATM дээгүүрх PPP) хэрхэн тохируулах талаар.
SLIP клиент болон серверийг хэрхэн тохируулж суулгах талаар.
PPP
хэрэглэгчийн PPP
PPP
цөмийн PPP
PPP
Ethernet дээгүүрх
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
Сүлжээний үндсэн ухагдахуунуудыг мэддэг байх.
Гадагш залгах (dialup) холболт болон PPP ба/эсвэл SLIP-ийн үндэс
болон зорилгыг ойлгосон байх.
Та хэрэглэгчийн PPP болон цөмийн PPP хоёрын хоорондох гол ялгаа нь юу юм
бол гэж гайхаж байж магадгүй юм. Хариулт нь хялбархан: хэрэглэгчийн PPP
нь ирж байгаа болон гарч байгаа өгөгдлийг цөмийн талбарт биш хэрэглэгчийн
талбарт процесс хийдэг. Энэ нь өгөгдлийг цөм болон хэрэглэгчийн талбар
хоёрын хооронд хуулдгаараа зардалтай боловч хамаагүй илүү боломжуудаар
баялаг PPP шийдлийг зөвшөөрдөг. Хэрэглэгчийн PPP нь гаднах ертөнцтэй
холбогдохдоо tun төхөөрөмжийг ашигладаг
бол цөмийн PPP ppp төхөөрөмжийг
ашигладаг.
Энэ бүлэгт хэрэглэгчийн PPP-г pppd зэрэг өөр бусад PPP програм хангамжаас
ялгах шаардлага гарахгүй тохиолдолд ердөө л ppp
гэх болно. Тусгайлан тайлбарлаагүй л бол энэ бүлэгт тайлбарласан бүх тушаалууд нь
root эрхээр ажиллуулагдах ёстой.
Том
Рөүдс
Шинэчилж өргөжүүлсэн
Брайн
Сомерс
Анхлан хувь нэмэр болгон оруулсан
Ник
Клэйтон
Зарим хэсгийг нэмсэн
Дирк
Фромберг
Питер
Чайлдс
Хэрэглэгчийн PPP ашиглах
Хэрэглэгчийн PPP
Таамаглалууд
Энэ баримт нь таныг дараах шаардлагуудыг хангасан гэж тооцдог:
ISP
PPP
PPP ашиглан таны холбогдох Интернэтийн үйлчилгээ үзүүлэгчээс (ISP)
өгсөн бүртгэл.
Танд модем эсвэл өөр төхөөрөмж таны системд холбогдсон байгаа
бөгөөд тэр нь танд өөрийн ISP-тай холбогдохыг зөвшөөрөхөөр зөв
тохируулагдсан байгаа.
Таны ISP-ийн хандах dial-up дугаар(ууд).
PAP
CHAP
UNIX
нэвтрэх нэр
нууц үг
Таны нэвтрэх нэр болон нууц үг. (ердийн &unix; загварын нэвтрэлт
болон нууц үгийн хослол юм уу эсвэл PAP эсвэл CHAP нэвтрэлт болон
нууц үгийн хослол).
нэрийн сервер
Нэг буюу хэд хэдэн нэрийн серверүүдийн IP хаяг. Хэвийн үед
үүнд зориулан ашиглахаар хоёр IP хаягийг таны ISP танд өгдөг. Хэрэв тэд
танд ядаж ганцыг өгөөгүй бол та enable dns
тушаалыг ppp.conf файлд ашиглавал
ppp нэрийн серверүүдийг танд
тохируулж өгөх болно. Энэ боломж нь DNS-тай тохиролцоог дэмждэг
таны ISP-ийн PPP шийдлээс хамаарах юм.
Дараах мэдээллийг таны ISP өгсөн байж болох боловч энэ нь заавал шаардлагагүй
юм:
Таны ISP-ийн гарцын IP хаяг. Гарц нь таны холбогдох машин бөгөөд
таны анхдагч чиглүүлэлт гэж тохируулагдах
болно. Хэрэв танд энэ мэдээлэл байхгүй бол бид нэгийг орлуулж болох
бөгөөд таны ISP-ийн PPP сервер биднийг холбогдох үед зөв утгыг хэлж
өгөх болно.
Энэ IP дугаар нь ppp-ээр
HISADDR гэгдэнэ.
Таны ашиглах ёстой сүлжээний баг. Хэрэв таны ISP үүнийг өгөөгүй
бол та аюулгүйгээр 255.255.255.255
гэж ашиглаж болно.
статик IP хаяг
Хэрэв таны ISP танд статик IP хаяг болон хостын нэр өгсөн бол та
тэдгээрийг оруулж болно. Үгүй бол бид нөгөө талын өгөх тохирох IP хаягийг
ердөө л зөвшөөрөх болно.
Хэрэв танд шаардлагатай мэдээллийн аль нь ч байхгүй бол өөрийн ISP уруугаа
хандана уу.
Энэ хэсэгт жишээнүүдийн олонхийн үзүүлж байгаа тохиргооны файлуудын
агуулгуудад байгаа мөр бүр дугаарлагдсан байгаа болно. Эдгээр дугаарууд нь
танилцуулга болон хэлэлцүүлэгт туслах зорилгоор зөвхөн ашиглагддаг бөгөөд
яг үнэндээ жинхэнэ файл дээрээ тавигдах ёстой гэсэн үг биш юм.
Tab ашиглан зөв догол хийх болон зайн тэмдэгтүүд нь бас чухал юм.
Автомат PPP тохиргоо
PPPтохиргоо
ppp болон pppd нь
- (PPP-ийн цөмийн түвшний шийдэл) /etc/ppp сан
+ (PPP-ийн цөмийн түвшний шийдэл) /etc/ppp сан
дахь тохиргооны файлуудыг ашигладаг. Хэрэглэгчийн ppp-д зориулсан жишээнүүдийг
- /usr/share/examples/ppp/ сангаас олж болно.
+ /usr/share/examples/ppp/ сангаас олж болно.
ppp-г тохируулах нь таны өөрийн шаардлагуудаас
хамаарч хэд хэдэн файлуудыг засварлахыг танаас шаарддаг. Тэдгээрт юу оруулах нь
таны ISP IP хаягуудыг статикаар өгдөг үү (өөрөөр хэлбэл танд нэг IP хаяг өгөх
бөгөөд зөвхөн тэрийг дандаа ашиглана) эсвэл динамикаар (өөрөөр хэлбэл таны IP хаяг
таныг ISP-даа холбогдох бүрт өөрчлөгддөг) өгдөг үү гэдгээс зарим талаараа
хамаардаг.
PPP болон статик IP хаягууд
PPPстатик IP хаягуудтай цуг
Та /etc/ppp/ppp.conf тохиргооны
файлыг засварлах хэрэгтэй. Энэ нь доорх жишээтэй төстэй харагдах
ёстой.
:-ээр төгссөн мөрүүд эхний баганаас эхэлнэ
(мөрийн эхлэл)— бусад бүх мөрүүдэд доор үзүүлсэн шиг зай эсвэл
tab-аар догол гаргасан байх ёстой.
1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuad0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDR
Мөр 1:
Анхдагч оруулгыг тэмдэглэдэг. Энэ оруулга дахь тушаалууд нь
ppp ажиллах үед автоматаар ажилладаг.
Мөр 2:
Параметрүүдийг бүртгэл хийхийг идэвхжүүлнэ. Тохиргоо
хангалттайгаар ажиллаж байгаа үед бүртгэлийн файлын их хэмжээнээс
сэргийлэхийн тулд энэ мөрийг:
set log phase tun
гэж болгох ёстой.
Мөр 3:
PPP-д нөгөө талдаа өөрийгөө хэрхэн таниулахыг хэлж өгдөг.
PPP нь тохиролцож холбоосыг үүсгэх үедээ ямар нэгэн асуудалтай байгаа
эсэхээ таниулсан мэдээллээр нөгөө талаа хангадаг бөгөөд нөгөө талын
администратор иймэрхүү асуудлуудыг судалж байгаа үед энэ нь ашигтай
байж болох юм.
Мөр 4:
Модемийн холбогдсон төхөөрөмжийг тодорхойлдог.
COM1 нь
- /dev/cuad0
+ /dev/cuad0
бөгөөд
COM2 нь
- /dev/cuad1 юм.
+ /dev/cuad1 юм.
Мөр 5:
Таны холбогдох хурдыг заадаг. Хэрэв 115200 ажиллахгүй
бол (ямар ч шинэ модемтой энэ нь болох ёстой)
38400-гаар оролдож үзээрэй.
Мөр 6 & 7:
PPPхэрэглэгчийн PPP
Залгах мөр. Хэрэглэгчийн PPP нь &man.chat.8; програмын
адил хүлээгээд илгээх зарчмыг ашигладаг. Энэ хэлний боломжуудын тухай
мэдээллийг гарын авлагын хуудаснаас лавлана уу.
Энэ тушаал нь уншигдахад хялбар байх зорилгоор дараагийн
мөрөнд үргэлжилж байгааг анзаараарай. Хэрэв мөрийн сүүлийн
тэмдэгт \ байвал ppp.conf
файл дахь ямар ч тушаал ийм байж болох юм.
Мөр 8:
Энэ холбоосонд зориулж сул зогсох хугацааг тохируулна. 180
секунд нь анхдагч байна, тэгэхээр энэ мөр нь цэвэр гоо сайхны зүйл юм.
Мөр 9:
Локал танигчийн тохиргоог бататгахын тулд нөгөө талаасаа асуухыг
PPP-д хэлнэ. Хэрэв та локал нэрийн серверийг ажиллуулах бол энэ
мөрийг тайлбар болгох юм уу эсвэл арилгах ёстой.
Мөр 10:
Уншихад хялбар байх зорилгоор хоосон мөр байна. PPP нь
хоосон мөрүүдийг орхидог.
Мөр 11:
provider
гэж нэрлэгдсэн үзүүлэгчид
зориулсан оруулгыг тодорхойлдог. Үүнийг өөрийн ISP-ийн
нэрээр сольж болох юм. Ингэсний дараа та холболтыг эхлүүлэхийн
тулд гэж ашиглаж болох юм.
Мөр 12:
Энэ үзүүлэгчийн хувьд утасны дугаарыг тохируулдаг. Олон утасны
дугаарыг тодорхойлох хоёр цэг (:) юм уу эсвэл
хоолой тэмдэгтийг (|) тусгаарлагч болгон ашиглан
зааж өгч болно. Хоёр тусгаарлагчийн ялгаа &man.ppp.8;-д тайлбарлагдсан
байдаг. Дүгнэж хэлэхэд хэрэв та дугааруудыг ээлжлэн ашиглах бол тодорхойлох
цэгийг ашиглана. Хэрэв та эхний дугаар уруу эхлээд үргэлж залгахыг хүсэж
байгаа бөгөөд зөвхөн эхний дугаар нь амжилтгүй болсон тохиолдолд бусад дугааруудыг
ашиглахыг хүсэж байгаа бол хоолой тэмдэгтийг ашиглаарай. Утасны дугааруудыг
тэр чигээр нь үзүүлсэн шиг үргэлж хаалтанд хийх хэрэгтэй.
Хэрэв та утасны дугаар дээр зай ашиглахаар бол утасны дугаарыг хаалтанд
(") хийх ёстой. Ингэхгүй бол энэ нь энгийн боловч баригдашгүй
алдаанд хүргэж болох юм.
Мөр 13 & 14:
Хэрэглэгчийн нэр болон нууц үгийг тодорхойлно. &unix;
загварын нэвтрэлт хүлээх мөрийг ашиглан холбогдох үед эдгээр
утгууд нь set login тушаалаар
\U болон \P хувьсагчуудыг ашиглан хийгддэг. PAP эсвэл CHAP
ашиглан холбогдож байгаа үед эдгээр утгууд нь нэвтрэлт танилт
хийгдэхэд хэрэглэгддэг.
Мөр 15:
PAP
CHAP
Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол нэвтрэлт энэ
үед байхгүй байх бөгөөд энэ мөр нь тайлбар болгогдох юм уу эсвэл
арилгагдсан байх ёстой. Илүү дэлгэрэнгүй мэдээллийг
PAP болон CHAP
нэвтрэлт танилт холбоосоос үзнэ үү.
Нэвтрэлтийн мөр нь залгах мөр шиг чалчихтай төсөөтэй зарчимтай
байдаг. Энэ жишээн дээр нэвтрэх сесс нь доор дурдсантай адил үйлчилгээний
хувьд уг мөр ажиллаж байна:
J. Random Provider
login: foo
password: bar
protocol: ppp
Та энэ скриптийг өөрийн хэрэгцээндээ тааруулан өөрчлөх
хэрэгтэй болно. Энэ скриптийг эхний удаа бичиж байхдаа та
яриа хүссэнээр үргэлжилж байгаа эсэхийг тодорхойлж чадахаар
байхын тулд chat
буюу чалчих бүртгэлийг
идэвхжүүлсэн эсэхээ баталгаажуулах хэрэгтэй.
Мөр 16:
timeout
Анхдагч сул зогсох хугацааг (секундээр) холболтод зориулж
тохируулдаг. Энд холболт нь 300 секундын хугацаанд идэвхгүй байвал
автоматаар хаагдах болно. Хэрэв та хугацааны хувьд хэзээ ч дуусахгүй
байхыг хүсвэл энэ утгыг тэг болгох юм уу эсвэл
тушаалын мөрийн тохируулгыг ашиглах хэрэгтэй.
Мөр 17:
ISP
Интерфэйсийн хаягуудыг тохируулна. x.x.x.x
мөрийг таны интернэтийн үйлчилгээ үзүүлэгчийн танд хуваарилсан
IP хаягаар солих шаардлагатай. y.y.y.y
мөрийг таны ISP өөрийн гарцыг (таны холбогдох машин) заасан тэр IP
хаягаар солих шаардлагатай. Хэрэв таны ISP гарцын хаягийг
танд өгөөгүй бол 10.0.0.2/0
гэж ашиглаарай. Хэрэв та таасан
хаягийг
ашиглах хэрэгтэй бол PPP болон динамик IP
хаягууд хэсэгт зориулсан заавруудын дагуу
/etc/ppp/ppp.linkup файлдаа
оруулга үүсгэсэн эсэхээ шалгаарай. Хэрэв энэ мөрийг орхивол
ppp нь
горимд ажиллаж чадахгүй.
Мөр 18:
Өөрийн ISP-ийн гарц уруу анхдагч чиглүүлэлтийг нэмнэ.
HISADDR тусгай үгийг мөр 17 дээр
заасан гарцын хаягаар сольдог. Энэ мөр нь 17-р мөрийн дараа байх
нь чухал бөгөөд тэгэхгүй бол HISADDR нь
эхлэн тохируулагдаж амжихгүй байх юм.
Хэрэв та ppp-г горимд
ажиллуулахыг хүсэхгүй бол энэ мөрийг ppp.linkup
файлд шилжүүлэх ёстой.
Та статик IP хаягтай бөгөөд ppp-г
горимоор ажиллуулж байгаа бол ppp.linkup файлд
оруулга нэмэх шаардлагагүй бөгөөд учир нь таныг холбогдохоос өмнө таны чиглүүлэлтийн
хүснэгтийн оруулгууд нь аль хэдийн зөв байх учраас тэр юм. Гэхдээ та
холболтын дараа програмуудыг ажиллуулах оруулга үүсгэхийг хүсэж болох
юм. Энэ нь sendmail-ийн жишээн дээр сүүлд тайлбарлагдах болно.
- Жишээ тохиргооны файлууд нь /usr/share/examples/ppp/
+ Жишээ тохиргооны файлууд нь /usr/share/examples/ppp/
санд байрлана.
PPP болон динамик IP хаягууд
PPPдинамик IP хаягуудтай цуг
IPCP
Хэрэв таны үйлчилгээ үзүүлэгч статик IP хаягуудыг олгодоггүй бол
локал болон алсын хаягууд дээр тохирдог байхаар ppp нь
тохируулагдаж болно. IP хаягийг таах
болон холболтын дараа IP Configuration Protocol (IPCP)
буюу IP тохиргооны протокол ашиглан зөвөөр тохируулахыг
ppp-д зөвшөөрөх замаар үүнийг хийнэ.
ppp.conf тохиргоо нь
дараах өөрчлөлтийн хамтаар
PPP болон статик IP
хаягууд хэсэгтэй адил байна:
17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
Дахин хэлэхэд мөрийн дугаарыг битгий оруулаарай, энэ нь зөвхөн
лавлагааны зорилгоор байгаа юм. Ядаж нэг хоосон зайгаар
догол гаргах шаардлагатай.
Мөр 17:
/ тэмдэгтийн дараах дугаар нь
ppp-ийн шаардах хаягийн битийн тоо юм. Та өөрийн нөхцөлдөө
тохируулан IP дугааруудыг ашиглахыг хүсэж болох юм, гэхдээ
дээрх жишээнүүд нь үргэлж ажиллах болно.
Сүүлийн нэмэлт өгөгдөл (0.0.0.0)
нь PPP-д 10.0.0.1-ийн оронд 0.0.0.0 хаяг ашиглан
тохиролцоог эхлүүлэхийг хэлж байгаа бөгөөд зарим нэгэн ISP-уудын
хувьд энэ нь шаардлагатай байдаг. Эхний чиглүүлэлтийг
горимд тохируулахад PPP-д
саад болдог учраас set ifaddr
тушаалд 0.0.0.0-г эхний нэмэлт өгөгдөл
болгон битгий ашиглаарай.
Хэрэв та горимд ажиллахгүй байгаа бол
/etc/ppp/ppp.linkup файлд оруулга
үүсгэх хэрэгтэй болно. ppp.linkup нь
холболт тогтсоны дараа ашиглагддаг. Энэ үед ppp
нь интерфэйсийн хаягуудыг олгосон байх бөгөөд одоо чиглүүлэлтийн хүснэгтийн
оруулгуудыг нэмэх боломжтой болсон байх болно:
1 provider:
2 add default HISADDR
Мөр 1:
Холболт тогтоохдоо ppp нь
дараах дүрмүүдийн дагуу ppp.linkup файлд
оруулгыг хайх болно: Эхлээд бидний ppp.conf
файлд ашигласантай адил хаяг/шошготой таарахыг оролдоно.
Хэрэв амжилтгүй болвол бидний гарцын IP хаягийн оруулгыг хайна.
Энэ оруулга нь дөрвөн ширхэг найман битээс тогтох IP загварын
хаяг/шошго юм. Хэрэв бид тэгсэн ч гэсэн оруулга олоогүй байгаа
бол MYADDR оруулгыг хайна.
Мөр 2:
Энэ мөр нь HISADDR уруу заасан
анхдагч чиглүүлэлт нэмэхийг ppp-д хэлж
байна. HISADDR нь IPCP-ээр
тохиролцсоны дагуу гарцын IP хаягаар солигдох болно.
Нарийвчилсан жишээний хувьд
/usr/share/examples/ppp/ppp.conf.sample
болон
/usr/share/examples/ppp/ppp.linkup.sample
файлууд дахь pmdemand оруулгыг харна уу.
Ирж байгаа дуудлагуудыг хүлээн авах
PPPирж байгаа дуудлагуудыг
хүлээн авах
LAN-д холбогдсон машин дээр ирж байгаа дуудлагуудыг хүлээн авахаар
болгож ppp-г тохируулахдаа LAN уруу
пакетуудыг дамжуулахыг хүсэж байгаа эсэхээсээ хамаарч үүнийг шийдэх
ёстой. Хэрэв та ингэхийг хүсэж байгаа бол өөрийн LAN-ий дэд сүлжээнээс
IP хаягийг нөгөө талдаа хуваарилж өгөх хэрэгтэй бөгөөд өөрийн
/etc/ppp/ppp.conf файлд
enable proxy тушаалыг ашиглах хэрэгтэй.
/etc/rc.conf файл доор дурдсаныг агуулж
байгаа эсэхийг бас баталгаажуулах хэрэгтэй:
gateway_enable="YES"
Аль getty?
&man.getty.8; ашиглан dial-up буюу гадагш залгах үйлчилгээнүүдийг
идэвхжүүлэх тухай сайн тайлбарыг Dial-up буюу гадагш
залгах үйлчилгээнүүдэд зориулж FreeBSD-г тохируулах хэсэг өгдөг.
getty-тэй төстэй програм нь
dial-up шугамуудыг бодолцож хийсэн getty-ийн
илүү ухаалаг хувилбар болох mgetty
юм.
mgetty-г ашиглахын давуу тал нь
тэрээр модемуудтай идэвхтэйгээр ярилцдаг
явдал бөгөөд энэ нь юу гэсэн үг вэ гэхээр хэрэв таны порт хаагдсан
бол модем чинь утсанд хариулахгүй гэсэн үг юм.
mgetty-ийн сүүлийн хувилбарууд нь
(0.99beta-аас эхлэн) таны клиентүүдэд скриптгүйгээр таны серверт
хандах хандалтыг зөвшөөрч PPP урсгалуудын автомат илрүүлэлтийг
бас дэмждэг.
mgetty-ийн тухай дэлгэрэнгүй мэдээллийг
Mgetty ба AutoPPP
хаягаас лавлана уу.
PPP зөвшөөрлүүд
ppp тушаалыг
root хэрэглэгчээр хэвийн үед
ажиллуулах ёстой. Гэхдээ хэрэв та ppp-г
доор тайлбарласны адилаар энгийн хэрэглэгчээр серверийн
горимд ажиллуулах боломжтой болгохыг хүсэж байгаа бол
хэрэглэгчийг ppp ажиллуулах зөвшөөрөлтэй
болгож тэдгээрийг /etc/group файлд
network бүлэгт нэмэх ёстой.
Та allow тушаалыг ашиглан тохиргооны файлын
нэг буюу хэд хэдэн хэсгүүдэд хандах боломжийг бас өгөх шаардлагатай
болно:
allow users fred mary
Хэрэв энэ тушаал нь default хэсэгт
хэрэглэгдсэн бол заасан хэрэглэгчдэд бүх зүйл уруу хандах боломжийг
олгоно.
Динамик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд
PPP бүрхүүлүүд
доор дурдсаныг агуулсан /etc/ppp/ppp-shell
гэгдэх файлыг үүсгэнэ:
#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENT
Энэ скрипт нь ажиллахаар болсон байх ёстой. Одоо энэ скрипт уруу
ppp-dialup гэгдсэн симболын холбоосыг
дараах тушаалуудыг ашиглан үүсгэх хэрэгтэй:
&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialup
Та энэ скриптийг өөрийн бүх dialup хэрэглэгчдийн хувьд
бүрхүүл маягаар ашиглах ёстой.
Энэ нь pchilds гэсэн хэрэглэгчийн
нэртэй dialup PPP хэрэглэгчид зориулсан /etc/passwd
файлд байгаа жишээ юм (нууц үгийн файлыг шууд битгий засаарай, &man.vipw.8;-г
ашиглаарай).
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
Дараах 0 байт файлуудыг агуулсан бүгд бичих боломжтой
- /home/ppp санг үүсгэнэ:
+ /home/ppp санг үүсгэнэ:
-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts
Энэ нь /etc/motd файлыг үзүүлэхээс
сэргийлдэг.
Статик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд
PPP бүрхүүлүүд
Дээр дурдсаны адил ppp-shell файл үүсгээд
статикаар өгөгдсөн IP-тай бүртгэл бүрийн хувьд ppp-shell
уруу симболын холбоос үүсгэнэ.
Жишээ нь хэрэв та fred, sam, болон
mary гэсэн гурван dialup хэрэглэгчтэй бөгөөд
тэдгээрт зориулж /24 CIDR сүлжээнүүдийг чиглүүлж байгаа бол дараах
тушаалыг ажиллуулж болох юм:
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary
Эдгээр хэрэглэгчдийн dialup бүртгэл бүр өөрсдийн бүрхүүлийг
дээр үүсгэсэн симболын холбоос уруу заасан байх ёстой (жишээ нь
mary-ийн бүрхүүл /etc/ppp/ppp-mary
байх ёстой).
Динамик IP-тай хэрэглэгчдэд зориулж ppp.conf-г тохируулах
/etc/ppp/ppp.conf файл доор дурдсантай төстэй
мөрүүдээс тогтох ёстой:
default:
set debug phase lcp chat
set timeout 0
ttyd0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyd1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxy
Догол үүсгэх нь чухал юм.
default: хэсэг нь хэсэг бүрийн хувьд
дуудагддаг. /etc/ttys файлд
идэвхжүүлсэн dialup мөр бүрийн хувьд дээрх ttyd0:-д
зориулсантай төстэй оруулга үүсгэнэ. Динамик хэрэглэгчдэд зориулсан
IP хаягийн цөөрмөөс мөр болгон өөр өөр IP хаяг авах ёстой.
Статик IP-тай хэрэглэгчдэд зориулж ppp.conf-г тохируулах
Дээрх жишээ /usr/share/examples/ppp/ppp.conf
файлын агуулгатай цуг статикаар өгөгдсөн dialup хэрэглэгч
бүрийн хувьд зохих хэсэг нэмэх шаардлагатай. Бид өөрсдийн
fred, sam,
болон mary хэрэглэгчидтэй жишээгээ үргэлжлүүлэх
болно.
fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
/etc/ppp/ppp.linkup файл хэрэв
шаардлагатай бол статик IP-тай хэрэглэгч бүрийн хувьд чиглүүлэлтийн
мэдээллийг бас агуулсан байх ёстой. Доорх мөр нь клиентийн ppp
холбоосоор 203.14.101.0/24
сүлжээнд зориулж чиглүүлэлт нэмэх болно.
fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDR
mgetty болон AutoPPP
mgetty
AutoPPP
LCP
mgetty-г AUTO_PPP
тохируулга идэвхжүүлсэн байдлаар тохируулж эмхэтгэх нь
mgetty-д PPP холболтуудын LCP шатыг
илрүүлж автоматаар ppp бүрхүүл ажиллуулах боломжийг олгодог.
Гэхдээ анхдагч нэвтрэлт/нууц үгийн дараалал болдоггүй болохоор
PAP аль эсвэл CHAP ашиглан хэрэглэгчдийн нэвтрэлтийг
таних шаардлагатай юм.
Энэ хэсэг нь хэрэглэгч AUTO_PPP
тохируулгатайгаар mgetty-ийн хувилбарыг
(v0.99beta эсвэл хойшх) амжилттайгаар тохируулж эмхэтгэн
суулгасан гэж үздэг.
Таны /usr/local/etc/mgetty+sendfax/login.config
файл доор дурдсаныг агуулсан эсэхийг шалгаарай:
/AutoPPP/ - - /etc/ppp/ppp-pap-dialup
Энэ нь илрүүлсэн PPP холболтууддаа
ppp-pap-dialup скриптийг
ажиллуулахыг mgetty-д хэлнэ.
доор дурдсаныг агуулсан
/etc/ppp/ppp-pap-dialup файлыг
үүсгэнэ (файл ажиллах боломжтой байх ёстой):
#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT
/etc/ttys-д идэвхжүүлсэн
dialup мөр бүрийн хувьд тохирох оруулгыг
/etc/ppp/ppp.conf файлд
үүсгэнэ. Энэ нь бидний үүсгэсэн тодорхойлолтуудтай аз жаргалтайгаар
цуг байх болно.
pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxy
Энэ аргаар нэвтэрч байгаа хэрэглэгч бүр
/etc/ppp/ppp.secret файлд
хэрэглэгчийн нэр/нууц үгтэй байх шаардлагатай, эсвэл өөр нэг
арга нь /etc/passwd файлаас хэрэглэгчдийг
PAP-аар таньж нэвтрүүлэхийн тулд дараах тохируулгыг хийх явдал
юм.
enable passwdauth
Хэрэв та зарим хэрэглэгчдэд статик IP хаяг өгөхийг хүсвэл
та хаягийг /etc/ppp/ppp.secret
файлд гурав дахь нэмэлт өгөгдөл болгон зааж өгч болно. Жишээнүүдийг
/usr/share/examples/ppp/ppp.secret.sample-с
үзнэ үү.
MS өргөтгөлүүд
DNS
NetBIOS
PPPMicrosoft өргөтгөлүүд
DNS болон NetBIOS нэрийн серверийн хаягуудыг шаардлагын дагуу
хангахаар PPP-г тохируулах боломжтой байдаг.
PPP хувилбар 1.x дээр эдгээр өргөтгөлүүдийг идэвхжүүлэхийн
тулд дараах мөрүүдийг /etc/ppp/ppp.conf
файлын тохирох хэсэгт нэмэх ёстой.
enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
PPP хувилбар 2 болон түүнээс хойно гарсан хувилбарын хувьд:
accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
Энэ нь анхдагч болон хоёрдох нэрийн серверийн
хаягууд болон NetBIOS нэрийн серверийн хостыг клиентүүдэд хэлнэ.
Хувилбар 2 болон түүнээс дээшхид set dns
мөрийг орхигдуулсан бол PPP нь /etc/resolv.conf
файлд байгаа утгуудыг ашиглах болно.
PAP болон CHAP нэвтрэлт шалгалт
PAP
CHAP
Таны холболтын нэвтрэлт танилтын хэсгийг PAP юм уу эсвэл CHAP нэвтрэлт
танилтын аргуудыг ашиглан хийдэг байхаар зарим ISP-ууд өөрсдийн
системийг тохируулдаг. Хэрэв ийм бол таны ISP нь login:
хүлээх мөрийг таныг холбогдох үед харуулдаггүй бөгөөд PPP нэн даруй
ярьж эхлэх болно.
PAP нь CHAP-аас аюулгүй байдлын хувьд дутуу байдаг бөгөөд
нууц үг нь PAP-аар цэвэр текст маягаар илгээгддэг боловч цуваа шугамаар зөвхөн
дамжуулагддаг болохоор аюулгүй байдал нь нууц үгүүдэд байдаг асуудал шиг биш
байдаг. Эвдлэгчдэд зориулсан сэм чагнах
зай
бараг байдаггүй гэсэн үг юм.
PPP
болон статик IP хаягууд эсвэл PPP болон динамик IP хаягууд хэсгүүдийн
хувьд дараах өөрчлөлтүүдийг хийх ёстой:
13 set authname MyUserName
14 set authkey MyPassword
15 set login
Мөр 13:
Энэ мөр нь таны PAP/CHAP хэрэглэгчийн нэрийг заана.
Та MyUserName-д
зөв утгыг оруулах хэрэгтэй болно.
Мөр 14:
нууц үг
Энэ мөр нь таны PAP/CHAP нууц үгийг заана. Та
MyPassword-д
зөв утгыг оруулах хэрэгтэй болно. Та дараах шиг нэмэлт мөр
нэмэхийг хүсэх юм уу:
16 accept PAP
эсвэл
16 accept CHAP
гэж болно. Ингэснээр үүнийг зориуд тодорхой болгох
юм, гэхдээ PAP болон CHAP-ийг хоюуланг анхдагчаар хүлээн авдаг.
Мөр 15:
Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол таны ISP
хэвийн үед сервер уруу нэвтрэн орохыг шаарддаггүй. Тийм болохоор та өөрийн
set login
мөрийг хаах ёстой.
Өөрийн ppp тохиргоог явцын дунд шууд өөрчлөх нь
ppp-г ар талд далд ажиллаж байхад түүнтэй
зөвхөн тохирох оношлогооны порт тохируулагдсан тохиолдолд харилцаж болдог.
Үүнийг хийхийн тулд өөрийн тохиргоондоо дараах мөрийг нэмнэ:
set server /var/run/ppp-tun%d DiagnosticPassword 0177
Энэ нь клиентүүдийн хандалтыг зөвшөөрөхийн өмнө тэднээс нууц үгийг
асууж заасан &unix; домэйн сокет дээр сонсохыг PPP-д хэлнэ.
Нэрэн дэх %d нь ашиглагдаж байгаа
tun төхөөрөмжийн дугаараар
солигдоно.
Сокет тохируулагдсаны дараа &man.pppctl.8; програм нь
ажиллаж байгаа програмыг удирдахыг хүсэж байгаа скриптүүдэд
ашиглагдаж болно.
PPP-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт боломжийг ашиглах нь
PPPNAT
PPP нь цөмийн divert буюу өөрчлөн дамжуулах боломжуудыг ашиглалгүйгээр
дотоод NAT-ийг ашиглах чадвартай байдаг. /etc/ppp/ppp.conf
файл дахь дараах мөрөөр энэ боломжийг идэвхжүүлж болно:
nat enable yes
Өөрөөр, PPP NAT-ийг тушаалын мөрийн -nat
тохируулгаар идэвхжүүлж болох юм. Мөн /etc/rc.conf
файлын хувьсагч ppp_nat гэж байх бөгөөд энэ нь
анхдагчаар идэвхжүүлэгдсэн байна.
Хэрэв та энэ боломжийг ашиглаж байгаа бол ирж байгаа холболтуудын
цааш дамжуулалтыг идэвхжүүлэх дараах /etc/ppp/ppp.conf
файлын тохируулгуудын ашигтайг харж болох юм:
nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http
эсвэл гадна талд ерөөсөө битгий итгээрэй
nat deny_incoming yes
Системийн сүүлийн тохиргоо
PPPтохиргоо
Та одоо ppp-г тохируулчихлаа, гэхдээ
яг ажиллахад бэлэн болохын өмнө хийх цөөн хэдэн зүйлс бий. Тэдгээр нь
бүгд /etc/rc.conf файлыг засварлуулах
болно.
Энэ файлтай дээрээс доош ажиллахдаа hostname=
мөр тохируулагдсан эсэхийг шалгаарай, өөрөөр хэлбэл:
hostname="foo.example.com"
Хэрэв таны ISP танд статик IP хаяг болон нэр өгсөн бол та энэ нэрийг
хостын нэрэндээ ашиглах нь магадгүй зүйтэй юм.
network_interfaces хувьсагчийг хайгаарай.
Хэрэв та өөрийн системийг ISP уруугаа шаардлага хүсэлтээр залгахаар тохируулахыг
хүсвэл tun0 төхөөрөмжийг жагсаалтад нэмсэн
эсэхээ баталгаажуулаарай, хэрэв тэгж хүсээгүй бол түүнийг устгаарай.
network_interfaces="lo0 tun0"
ifconfig_tun0=
ifconfig_tun0 хувьсагч хоосон байх ёстой
бөгөөд /etc/start_if.tun0 гэж
нэрлэгдсэн файлыг үүсгэх ёстой. Энэ файл нь дараах мөрийг
агуулсан байх ёстой:
ppp -auto mysystem
Энэ скрипт нь сүлжээ тохируулах үед таны ppp дэмонг автомат горимд
эхлүүлэн ажилладаг. Хэрэв та энэ машин гарц болж байгаа LAN-тай бол
сонголтыг ашиглахыг хүсэж болох юм.
Илүү дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас
лавлана уу.
Таны /etc/rc.conf файлд чиглүүлэлтийн
програм NO гэж дараах мөрөөр хийгдсэн эсэхийг
шалгаарай:
router_enable="NO"
routed
routed дэмон нь эхлэхгүй байх нь чухал юм.
Учир нь routed нь ppp-ийн
үүсгэсэн анхдагч чиглүүлэлтийн хүснэгтийн оруулгуудыг устгадаг юм.
sendmail_flags мөр
тохируулгыг агуулаагүй эсэхийг шалгах нь магадгүй зүйтэй юм. Тэгэхгүй бол
sendmail нь таны машиныг гадагш залгуулан үргэлж
сүлжээний хайлт хийхийг оролдох болно. Та доор дурдсаныг тохируулж болох юм:
sendmail_flags="-bd"
sendmail
Үүний сул тал нь ppp холбоос тогтсон үед та доор дурдсаныг бичиж
sendmail-ээр захидлын дарааллыг дахин шалгуулж
байх явдал юм:
&prompt.root; /usr/sbin/sendmail -q
Та үүнийг хийхийн тулд ppp.linkup файлд
!bg тушаалыг ашиглахыг хүсэж болох юм:
1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30m
SMTP
Хэрэв танд энэ таалагдахгүй байгаа бол SMTP урсгалыг хаахын тулд
dfilter
-г тохируулах боломжтой байдаг. Илүү дэлгэрэнгүй
мэдээллийг жишээ файлуудаас лавлана уу.
Одоо машиныг дахин ачаалах л үлдлээ. Дахин ачаалсны дараа та
доор дурдсаныг бичиж:
&prompt.root; ppp
дараа нь PPP сессийг эхлүүлэхийн тулд dial provider
тушаалыг ажиллуулах юм уу эсвэл гадагшаа урсгал байгаа (бөгөөд та
start_if.tun0 скрипт үүсгээгүй) бол сессүүдийг
автоматаар тогтоодгоор ppp-г байлгахыг хүсэж байгаа бол
доор дурдсаныг бичээрэй:
&prompt.root; ppp -auto provider
Дүгнэлт
Дүгнэхэд ppp-г эхний удаа тохируулахад дараах алхмууд шаардлагатай:
Клиент тал:
Таны цөмд tun төхөөрөмж бүтээгдсэн
эсэхийг шалгана.
- /dev санд
- tunN
+ /dev санд
+ tunN
төхөөрөмжийн файл байгаа эсэхийг шалгана.
/etc/ppp/ppp.conf файлд
оруулга үүсгэнэ. pmdemand жишээ нь
ихэнх ISP-уудын хувьд хангалттай байх ёстой.
Хэрэв та динамик IP хаягтай бол /etc/ppp/ppp.linkup
файлд оруулга үүсгээрэй.
Өөрийн /etc/rc.conf файлыг
шинэчилнэ.
Хэрэв танд хэрэгцээгээр залгах шаардлага байгаа бол
start_if.tun0 скрипт үүсгээрэй.
Сервер тал:
Таны цөмд tun төхөөрөмж бүтээгдсэн
эсэхийг шалгана.
- /dev санд
- tunN
+ /dev санд
+ tunN
төхөөрөмжийн файл байгаа эсэхийг шалгана.
/etc/passwd файлд (&man.vipw.8; програмыг ашиглан)
оруулга үүсгэнэ.
Энэ хэрэглэгчдийн гэрийн санд ppp -direct direct-server
юм уу эсвэл үүнтэй адилыг ажиллуулах хувийн тохиргоог (profile)
үүсгэнэ.
/etc/ppp/ppp.conf файлд оруулга үүсгэнэ.
direct-server жишээ хангалттай байх
ёстой.
/etc/ppp/ppp.linkup файлд оруулга үүсгэнэ.
Өөрийн /etc/rc.conf файлыг шинэчилнэ.
Геннадий Б.
Сорокопуд
Хэсгүүдийг анхлан хувь нэмэр болгон оруулсан
Роберт
Хафф
Цөмийн PPP-г ашиглах
Цөмийн PPP тохируулах
PPPцөмийн PPP
Та өөрийн машин дээр PPP-г тохируулж эхлэхээсээ өмнө
pppd нь
- /usr/sbin санд байгаа болон
- /etc/ppp сан байгаа эсэхийг шалгаарай.
+ /usr/sbin санд байгаа болон
+ /etc/ppp сан байгаа эсэхийг шалгаарай.
pppd нь хоёр горимд ажиллах чаддаг:
Клиент
маягаар — та өөрийн машиныг
гаднах ертөнц уруу PPP цуваа холболтоор эсвэл модемийн шугамаар
холбохыг хүсдэг.
PPPсервер
Сервер
маягаар — Таны машин сүлжээн
дээр байгаа бөгөөд бусад компьютеруудыг PPP ашиглан холбоход
хэрэглэгдэнэ.
Аль ч тохиолдол байлаа гэсэн та тохируулгуудын файлыг
(/etc/ppp/options эсвэл
хэрэв та PPP ашиглаж байгаа өөрийн машин дээрээ нэгээс илүү олон хэрэглэгчидтэй бол
~/.ppprc) тохируулах хэрэгтэй
болно.
Та залгаж алсын хосттой холболт тогтоохын тулд
танд бас зарим модем/цуваа програм хангамж
(comms/kermit-г аль болох эрхэмлэх)
хэрэгтэй болно.
Трев
Ройдхауз
Based on information provided by
pppd-г клиент маягаар ашиглах
PPPклиент
Cisco
Дараах /etc/ppp/options файл нь
Cisco терминал серверийн PPP шугам уруу холбогдоход хэрэглэгдэж болох юм.
crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address
# if the remote host does not send your IP during IPCP
# negotiation, remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:remote_ip # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip
defaultroute # put this if you want that PPP server will be your
# default router
Холбогдохын тулд:
Kermit
модем
Алсын хост уруу Kermit
(эсвэл өөр бусад модемийн програм) ашиглан залгаж өөрийн хэрэглэгчийн нэр болон нууц үгийг
(эсвэл алсын хост дээр PPP-г идэвхжүүлэхэд шаардлагатай
тэр зүйлийг) оруулна.
Kermit-с гарна (шугамыг таслалгүйгээр).
Доор дурдсаныг оруулна:
&prompt.root; /usr/sbin/pppd /dev/tty01 19200
Тохирох хурд болон төхөөрөмжийн нэрийг ашиглахаа мартуузай.
Одоо таны компьютер PPP-тэй холбогдлоо. Хэрэв холболт амжилтгүй
болбол та /etc/ppp/options файлд
тохируулгыг нэмж асуудлыг олохын тулд
консолын мэдэгдлүүдийг шалгана.
Дараах /etc/ppp/pppup скрипт нь
бүх 3 алхмыг автомат болгоно:
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200
Kermit
/etc/ppp/kermit.dial нь Kermit
скрипт бөгөөд гадагш залгаж бүх шаардлагатай нэвтрэлт таниулалтыг алсын хост дээр
хийдэг (энэ баримтын төгсгөлд ийм скриптийн жишээ хавсаргагдсан болно).
Дараах /etc/ppp/pppdown скриптийг ашиглаж
PPP шугамыг салгаж болно:
#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptest
pppd ажиллаж байгаа эсэхийг шалгахын тулд
/usr/etc/ppp/ppptest-г ажиллуулна. Энэ нь
иймэрхүү харагдах ёстой:
#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0
Модемийг салгаж буцааж залгахын тулд
/etc/ppp/kermit.hup-г ажиллуулна. Энэ нь
доор дурдсаныг агуулах ёстой:
set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exit
Энд kermit тушаалын оронд
chat тушаал хэрэглэх өөр арга байна:
Дараах хоёр мөр нь pppd холболтыг
хийхэд хангалттай байдаг.
/etc/ppp/options:
/dev/cuad1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain your.domain # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to local_ip:remote_ip
defaultroute # put this if you want that PPP server will be
# your default router
/etc/ppp/login.chat.script:
Дараах нь нэг мөрөнд байх ёстой.
ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
TIMEOUT 5 sword: password
Эдгээр нь суулгагдаж зөв болж өөрчлөгдсөний дараа таны хийх ганц зүйл бол
pppd-г иймэрхүү маягаар ажиллуулах явдал юм:
&prompt.root; pppd
pppd-г сервер маягаар ашиглах
/etc/ppp/options файл нь доор дурдсантай төстэйг
агуулах ёстой:
crtscts # Hardware flow control
netmask 255.255.255.0 # netmask (not required)
192.114.208.20:192.114.208.165 # IP's of local and remote hosts
# local ip must be different from one
# you assigned to the Ethernet (or other)
# interface on your machine.
# remote IP is IP address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem line
Дараах /etc/ppp/pppserv скрипт нь
pppd-г сервер маягаар ажиллахыг
заах болно:
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200
Серверийг зогсоохын тулд энэ /etc/ppp/pppservdown
скриптийг ашиглана:
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noans
Дараах Kermit скрипт нь
(/etc/ppp/kermit.ans) таны модем дээр автомат
хариулагчийг нээх/хаах болно. Энэ нь иймэрхүү харагдах ёстой:
set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mode
inp 5 OK
echo \13
exit
/etc/ppp/kermit.dial гэсэн нэртэй скрипт
нь гадагш залгаж алсын хост дээр нэвтрэлт таниулахад хэрэглэгддэг. Та үүнийг
өөрийн хэрэгцээнд зориулан өөрчлөх хэрэгтэй болно. Өөрийн нэвтрэх нэр
болон нууц үгийг энэ скриптэд оруулах хэрэгтэй; та бас оролтын илэрхийллийг
таны модем болон алсын хостоос ирэх хариунуудаас хамааран өөрчлөх хэрэгтэй болно.
;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:
Том
Рөүдс
Хувь нэмэр болгон оруулсан
PPP холболтуудын алдааг олж засварлах
PPPалдааг олж засварлах
Энэ хэсэг нь PPP-г модемийн холболтоор ашиглах үед гарч болох
цөөн асуудлуудыг хамрах болно. Жишээ нь магадгүй танд
залгаж холбогдох гэж байгаа систем чинь яг ямар хүлээх мөрүүдийг үзүүлэхийг
мэдэх шаардлагатай байж болох юм. Зарим ISP-ууд
ssword хүлээх мөрийг үзүүлдэг бол зарим нь
password гэж үзүүлэх болно; хэрэв
ppp скрипт нь түүний дагуу бичигдээгүй бол
нэвтрэх оролдлого амжилтгүй болох болно. ppp
холболтуудыг дибаг хийх хамгийн түгээмэл арга бол гараар холбогдох
явдал юм. Дараах мэдээлэл нь алхам алхмаар гар холболтыг танд тайлбарлах
болно.
Төхөөрөмжийн цэгүүдийг шалгана
Хэрэв та өөрийн цөмийг дахин тохируулсан бол
sio төхөөрөмжийг санах хэрэгтэй.
Хэрэв та өөрийн цөмийг тохируулаагүй бол санаа зовох хэрэггүй.
Модем төхөөрөмжийн хувьд dmesg
гаралтыг шалгаарай:
&prompt.root; dmesg | grep sio
Та sio төхөөрөмжүүдийн
талаар тохирох мэдээллүүдийг авах ёстой. Эдгээр нь бидэнд
хэрэгтэй COM портууд юм. Хэрэв таны модем стандарт цуваа
порт шиг ажиллаж байвал та түүнийг sio1,
эсвэл COM2 дээр жагсаагдсан
байхыг харах ёстой. Хэрэв тийм бол та цөмийг дахин бүтээх шаардлагагүй
юм. sio модем sio1 дээр
эсвэл хэрэв та DOS дээр байгаа бол COM2 дээр
таарч байвал таны модемийн төхөөрөмж
- /dev/cuad1 байх болно.
+ /dev/cuad1 байх болно.
Гараар холбогдох нь
Гараар ppp-г хянаж Интернэтэд холбогдох нь
холболтыг дибаг хийх юм уу эсвэл ердөө л таны
ISP чинь ppp
клиент холболтуудад хэрхэн ханддаг талаар мэдээлэл авахад
хурдан, хялбар, агуу арга байдаг. Тушаалын мөрөөс PPP-г
эхлүүлье. Бидний бүх жишээнүүд дээр бид PPP
ажиллуулж байгаа машины хостын нэрийг example
гэж авч ашиглах болно. Та ppp-г
ppp гэж бичин эхлүүлнэ:
&prompt.root; ppp
Бид одоо ppp-г эхлүүллээ.
- ppp ON example> set device /dev/cuad1
+ ppp ON example> set device /dev/cuad1
Бид өөрсдийн модемний төхөөрөмжийг тохируулна. Энэ тохиолдолд
cuad1 болно.
ppp ON example> set speed 115200
Холболтын хурдыг тохируулна. Энэ тохиолдолд бид
115,200 kbps-г ашиглаж байна.
ppp ON example> enable dns
Бидний нэр танигчийг тохируулж /etc/resolv.conf
файлд нэрийн серверүүдийн мөрүүдийг нэмэхийг ppp-д
хэлнэ. ppp бидний хостын нэрийг тодорхойлж
чадахгүй байгаа бол бид дараа нь гараараа тохируулж өгч болно.
ppp ON example> term
Модемийг гараар хянаж чадаж байхын тулд Терминал
горимд шилжих хэрэгтэй.
- deflink: Entering terminal mode on /dev/cuad1
+ deflink: Entering terminal mode on /dev/cuad1
type '~h' for help
at
OK
atdt123456789
Модемийг эхлүүлэхийн тулд at-г ашиглаж
дараа нь atdt дээр өөрийн ISP-ийн
дугаараа нэмээд залгах процессоо эхлэх хэрэгтэй.
CONNECT
Холболтын баталгаа гарах ёстой, хэрэв бид тоног төхөөрөмжтэй холбоогүй ямар нэг холболтын
асуудлуудтай байх бол энд бид тэдгээрийг шийдэхийг оролдох болно.
ISP Login:myusername
Энд танаас хэрэглэгчийн нэрийг асуух болно, ISP-ээс
өгсөн хэрэглэгчийн нэрийг оруулаад буцахыг дарна.
ISP Pass:mypassword
Энэ удаад нууц үгийг асуух болно, ISP-ээс
өгсөн нууц үгээр хариулах хэрэгтэй. Яг л &os; уруу нэвтрэн ордог
шиг нууц үг нь буцаж дэлгэцэд харагдахгүй.
Shell or PPP:ppp
Таны ISP-ээс хамаараад энэ хүлээх
мөр нь хэзээ ч гарахгүй байж болох юм. Энд биднээс үйлчилгээ үзүүлэгч
дээр бүрхүүл ашиглах эсэх эсвэл ppp
эхлүүлэх эсэхийг асуудаг. Энэ жишээн дээр бид Интернэт холболтыг
хүсэж байгаа болохоор ppp-г ашиглахаар
сонгосон.
Ppp ON example>
Энэ жишээн дээр эхний тохируулга
томоор бичигдсэнийг хараарай. Энэ нь бид ISP-д
амжилттайгаар холбогдсоныг харуулж байна.
PPp ON example>
Бид ISP-д амжилттайгаар
өөрсдийгөө таниулан нэвтэрч заагдсан IP
хаягийг хүлээж байна.
PPP ON example>
Бид IP хаяг дээрээ зөвшилцөж холболтоо
амжилттайгаар хийж дуусгалаа.
PPP ON example>add default HISADDR
Энд бид өөрсдийн анхдагч чиглүүлэлтээ нэмж байна. Бид үүнийг
гаднах ертөнцтэй ярьж эхлэхээсээ өмнө хийх ёстой бөгөөд одоогоор
зөвхөн хийгдсэн холболт нь нөгөө талтайгаа хийгдсэн холболт байгаа
болно. Хэрэв энэ нь байгаа чиглүүлэлтүүдээсээ болоод амжилтгүй
болбол та тохируулгын өмнө
анхаарлын тэмдэг ! тавьж болно.
Өөрөөр та үүнийг жинхэнэ холболт хийхээсээ өмнө тохируулж болох
бөгөөд энэ нь шинэ чиглүүлэлтийг зохих ёсоор тохиролцоно.
Хэрэв бүх зүйл сайн болж өнгөрсөн бол бид одоо идэвхтэй Интернэтийн
холболттой болсон байх бөгөөд үүнийг ар талд CTRL
z хослолоор оруулж болох юм.
Хэрэв та PPP-г ppp
болохыг анзаарах юм бол бид өөрсдийн холболтоо алдсан гэсэн үг юм.
Энэ нь бидний холболтын төлөвийг үзүүлдэг болохоор мэдэхэд илүүдэхгүй
юм. Том P үсэгнүүд нь бид ISP уруу холболттой
байгааг үзүүлэх бөгөөд жижиг p үсэгнүүд нь холболт ямар нэг шалтгаанаар
тасарсныг харуулна. ppp нь зөвхөн эдгээр хоёр
төлөвтэй байдаг.
Дибаг хийх нь
Хэрэв та шууд шугамтай бөгөөд холболт хийж чадахгүй байгаа юм
шиг санагдвал CTS/RTS тоног төхөөрөмжийн урсгалыг
болгон хаах хэрэгтэй.
Энэ нь ялангуяа та PPP хийж чаддаг
терминал серверт холбогдох тохиолдол юм. Энэ тохиолдолд
PPP нь таны холбооны шугам дээр
өгөгдлийг бичихээр оролдох үед өлгөгдөж хэзээ ч ирэхгүй байж болох
CTS юм уу эсвэл Clear To Send буюу Илгээхэд
Цэвэр дохиог хүлээж байж болох юм. Хэрэв та энэ тохируулгыг ашиглах
юм бол тохируулгыг бас хэрэглэх
шаардлагатай. Энэ тохируулга нь зарим нэг параметрүүдийг, ихэнх тохиолдолд
XON/XOFF-г төгсгөлөөс төгсгөлд дамжуулахад тоног төхөөрөмжийн хувьд
хамааралтай байдлыг үгүй хийхийн тулд шаардлагатай байж болох юм.
Энэ тохируулгын талаар дэлгэрэнгүй мэдээллийг болон хэрхэн ашиглагддаг талаар
&man.ppp.8; гарын авлагын хуудаснаас үзнэ үү.
Хэрэв та хуучин модемтой бол
тохируулгыг ашиглах хэрэгтэй болж болох юм. Parity нь анхдагчаар
none буюу байхгүй гэж тохируулагдсан байдаг боловч хуучин модемууд
болон ISP-уудад (урсгалын хувьд их хэмжээгээр ихсэхэд)
алдаа шалгахад хэрэглэгддэг. Compuserve ISP-ийн
хувьд танд энэ тохируулга хэрэгтэй байж болох юм.
PPP нь тушаалын горимд буцахгүй
байж болох юм. Энэ нь ихэвчлэн ISP нь танаас харилцан
тохиролцохыг эхлүүлэхийг хүлээх тохиролцооны алдаа байдаг. Энэ үед
~p тушаалыг ашиглах нь ppp-г тохиргооны мэдээллээ
илгээж эхлэхэд хүргэх болно.
Хэрэв та нэвтрэлт хүлээх мөрийг хэзээ ч авахгүй байгаа бол та магадгүй
дээрх жишээн дээрх &unix; загварын нэвтрэлт танилтын оронд PAP
юм уу эсвэл CHAP нэвтрэлт танилтыг ашиглах
хэрэгтэй байж болох юм. PAP эсвэл CHAP-г
ашиглахын тулд ердөө л дараах тохируулгуудыг PPP-д
терминал горим уруу орохоос өмнө нэмэх хэрэгтэй:
ppp ON example> set authname myusername
Дээр байгаа myusername-г
ISP-с өгөгдсөн хэрэглэгчийн нэрээр солих
шаардлагатай.
ppp ON example> set authkey mypassword
Дээр байгаа mypassword-г
ISP-с өгөгдсөн нууц үгээр солих
шаардлагатай.
Хэрэв та зүгээр холбогдсон мөртлөө ямар ч домэйн нэр
олохгүй байгаа юм шиг байвал &man.ping.8; тушаалыг
IP хаягтай ашиглаж ямар нэг мэдээлэл буцаж
ирж байгаа эсэхийг шалгах хэрэгтэй. Хэрэв та 100 хувийн (100%)
пакетийн алдагдалд орж байвал танд бараг л анхдагч чиглүүлэлт заагдаагүй
байгаа гэсэн үг юм. Холболтын үеэр
тохируулга тохируулагдсан
эсэхийг давхар шалгаарай. Хэрэв та алсын IP
хаяг уруу холбогдож чадаж байвал нэр танигчийн хаяг /etc/resolv.conf
файлд нэмэгдээгүй байх магадлалтай юм. Энэ файл нь иймэрхүү
харагдах ёстой:
domain example.com
nameserver x.x.x.x
nameserver y.y.y.y
Дээр байгаа x.x.x.x болон
y.y.y.y нь таны
ISP-ийн DNS серверүүдийн
IP хаягаар солигдох ёстой. Таныг үйлчилгээнд
эхэлж бүртгүүлэхэд энэ мэдээлэл өгөгдсөн юм уу эсвэл өгөгдөөгүй байж болох
бөгөөд өөрийн ISP уруугаа хурдхан утасдаж
энэ мэдээллийг мэдэж болох юм.
Та өөрийн PPP холболтондоо
зориулж &man.syslog.3;-г бүртгэл бичихээр болгож болно.
Дараах:
!ppp
*.* /var/log/ppp.log
мөрийг /etc/syslog.conf файлд нэмнэ.
Ихэнх тохиолдолд энэ боломж аль хэдийн орсон байдаг.
Жим
Мок
Хувь нэмэр болгон (http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html хаягаас) оруулсан
Ethernet дээгүүр PPP ашиглах нь (PPPoE)
PPPEthernet дээгүүр
PPPoE
PPP, Ethernet дээгүүр
Энэ хэсэг нь Ethernet дээгүүр PPP (PPPoE)
хэрхэн тохируулах талаар тайлбарлах болно.
Цөмийг тохируулах нь
Одоо PPPoE-д зориулсан цөмийн тохиргоо шаардлагатай байхаа больжээ.
Хэрэв шаардлагатай netgraph-ийн дэмжлэг цөмд бүтээгдээгүй бол энэ нь
динамикаар ppp-ээр дуудагдах болно.
ppp.conf файлыг тохируулах
Энд ажилладаг ppp.conf
файлын жишээ байна:
default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your Ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDR
ppp-г ажиллуулах
root хэрэглэгчээр та доор дурдсаныг ажиллуулж болно:
&prompt.root; ppp -ddial name_of_service_provider
ppp-г ачаалах үед эхлүүлэх
доор дурдсаныг өөрийн /etc/rc.conf файлд нэмнэ:
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"
PPPoE үйлчилгээний хаягийг ашиглах
Заримдаа өөрийн холболтыг хийхийн тулд үйлчилгээний хаягийг ашиглах
шаардлагатай болж болох юм. Үйлчилгээний хаягууд нь өгөгдсөн сүлжээнд
залгагдсан өөр өөр PPPoE серверүүдийг ялгахын тулд хэрэглэгддэг.
Таны ISP-ээс өгсөн баримтад шаардлагатай үйлчилгээний хаягийн мэдээлэл
байх ёстой. Хэрэв та ийм мэдээлэл олоогүй бол өөрийн ISP-ийн техникийн
дэмжлэг үзүүлэгч ажилтнаас асуугаарай.
Хамгийн сүүлд та Портын цуглуулгад
байх Архирах Оцон шувуу
PPPoE хаягт санал болгосон аргыг туршиж болох юм. Гэхдээ
энэ нь таны модемийг буцаан програмчилж ажиллагаагүй болгож магадгүй
болохоор үүнийг хийхээсээ өмнө дахин бодоорой. Таны үйлчилгээ үзүүлэгчийн
модемтой цуг ирсэн програмыг ердөө л суулгаарай. Дараа нь програмаас
System цэсд хандаарай. Таны тохиргооны нэр
тэнд жагсаагдсан байх ёстой. Энэ нь ихэвчлэн ISP
гэж байдаг.
Тохиргооны нэр (үйлчилгээний хаяг) нь ppp.conf
файл дахь PPPoE тохиргооны оруулгад set device
тушаалын үйлчилгээ үзүүлэгч хэсэг болон ашиглагдах болно (бүрэн мэдээллийг
&man.ppp.8; гарын авлагын хуудаснаас үзнэ үү). Энэ нь иймэрхүү
харагдах ёстой:
set device PPPoE:xl1:ISP
xl1-г өөрийн Ethernet картны
зөв төхөөрөмжөөр солихоо мартуузай.
ISP гэснийг дээрх дөнгөж
олсон тохиргоогоор солихоо мартуузай.
Нэмэлт мэдээллийг доорх хаягуудаас үзнэ үү:
Рено Валдурагийн DSL дээр
FreeBSD-ээр арай хямд өргөн зурвас ашиглах (Cheaper
Broadband with FreeBSD on DSL).
Удо Эрделхоффийн
Nutzung von T-DSL und T-Online mit FreeBSD
(Герман хэл дээр).
&tm.3com; HomeConnect ADSL Хос Холбоос Модемтой PPPoE
Энэ модем нь RFC 2516
(Л. Мамакос, К. Лидл, Ж. Эвартс,
Д. Каррел, Д. Симоне, болон Р. Вийлэр нарын бичсэн
PPP-г Ethernet дээгүүр (PPPoE) дамжуулах арга
) стандартыг дагадаггүй. Харин Ethernet хүрээнүүдийн
хувьд пакетийн төрлийн өөр кодуудыг ашигладаг. Хэрэв та үүнийг
PPPoE-ийн тодорхойлолтыг мөрдөх ёстой гэж бодож байгаа бол
3Com уруу
гомдоллоно уу.
Энэ төхөөрөмжтэй FreeBSD-г холбогдох боломжтой болгохын тулд
sysctl тохируулагдах ёстой. /etc/sysctl.conf
файлыг шинэчилж ачаалалтын үед энэ нь автоматаар хийгдэж болно:
net.graph.nonstandard_pppoe=1
эсвэл дараах тушаалаар нэн даруй хийгдэж болно:
&prompt.root; sysctl net.graph.nonstandard_pppoe=1
Харамсалтай нь энэ нь системийн дагуух тохиргоо болохоор
хэвийн PPPoE клиент эсвэл сервер болон
&tm.3com; HomeConnect ADSL
модемтой нэгэн зэрэг холбогдох боломжгүй болох юм.
ATM дээгүүр PPP (PPPoA) ашиглах
PPPATM дээгүүр
PPPoA
PPP, ATM дээгүүр
Дараах нь ATM дээгүүр PPP-г (PPPoA) хэрхэн тохируулах талаар тайлбарлана.
PPPoA нь Европийн DSL үзүүлэгчдийн дунд алдартай сонголт болдог.
Alcatel &speedtouch; USB-тэй PPPoA-г ашиглах нь
Энэ төхөөрөмжийн PPPoA дэмжлэг нь FreeBSD-д порт хэлбэрээр
байдаг. Учир нь үүний firmware Alcatel-ийн лицензийн
гэрээгээр түгээгддэг бөгөөд FreeBSD-ийн үндсэн системтэй цуг
чөлөөтэй түгээгдэж болдоггүй.
Програм хангамжийг суулгахын тулд ердөө л Портуудын цуглуулгыг ашиглана.
net/pppoa портыг суулгаад
түүнтэй хамт ирсэн заавруудыг дагаарай.
Олон USB төхөөрөмжүүдийн адил Alcatel-ийн &speedtouch; USB нь
зөв ажиллахын тулд хост компьютераас firmware татах хэрэгтэй болдог.
&os; дээр энэ дамжуулалт нь төхөөрөмж USB порт уруу холбогдсон үед хийгдэхээр
болгож энэ процессийг автоматчилах боломжтой. Энэ автомат firmware дамжуулалтыг
идэвхжүүлэхийн тулд дараах мэдээллийг /etc/usbd.conf
файлд нэмж болох юм. Энэ файлыг root
хэрэглэгчээр засварлах шаардлагатай.
device "Alcatel SpeedTouch USB"
devname "ugen[0-9]+"
vendor 0x06b9
product 0x4061
attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"
usbd USB дэмонг идэвхжүүлэхийн тулд
дараах мөрийг /etc/rc.conf файлд
нэмнэ:
usbd_enable="YES"
Эхлүүлэхэд залгадаг байхаар ppp-г
тохируулах боломжтой байдаг. Үүнийг хийхийн тулд дараах мөрүүдийг
/etc/rc.conf файлд нэмнэ.
Ахин хэлэхэд энэ процедурын хувьд та root
хэрэглэгчээр нэвтрэн орох хэрэгтэй болно.
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"
Үүнийг зөв ажиллуулахын тулд та net/pppoa
порттой цуг ирсэн ppp.conf файлыг ашиглах
хэрэгтэй болно.
mpd ашиглах нь
Та төрөл бүрийн үйлчилгээнүүдэд ялангуяа PPTP үйлчилгээнүүдэд
холбогдохын тулд mpd-г ашиглаж болно.
Та mpd-г Портуудын цуглуулга
net/mpd сангаас
олж болно. Олон ADSL модемууд нь модем болон компьютерийн
хооронд PPTP хоолой үүсгэгдсэн байхыг шаарддаг бөгөөд тийм модемийн
нэг нь Alcatel &speedtouch; Home юм.
Та эхлээд портоо суулгах ёстой бөгөөд дараа нь өөрийн шаардлага болон
үйлчилгээ үзүүлэгчийн тохиргоонуудад тааруулан mpd-г
тохируулж болно. Порт нь жишээ тохиргооны файлуудыг байрлуулдаг бөгөөд
- эдгээр нь PREFIX/etc/mpd/-д
+ эдгээр нь PREFIX/etc/mpd/-д
сайн баримтжуулагдсан байдаг. Энд нэг юмыг тэмдэглэх хэрэгтэй.
PREFIX гэдэг нь таны портууд
- суулгагдсан сан бөгөөд анхдагчаар /usr/local/
+ суулгагдсан сан бөгөөд анхдагчаар /usr/local/
байдаг. mpd-г тохируулах бүрэн заавар
порт суулгагдсаны дараа HTML хэлбэрээр орсон байдаг. Энэ нь
- PREFIX/share/doc/mpd/
+ PREFIX/share/doc/mpd/
санд байрладаг. Энд mpd-ээр ADSL
үйлчилгээнд холбогдох жишээ тохиргоо байна. Тохиргоо нь хоёр файлаас
тогтох бөгөөд эхний mpd.conf нь ийм байна:
default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname username
set bundle password password
set bundle disable multilink
set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
open
Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх хэрэглэгчийн нэр.
Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх нууц үг.
mpd.links файл нь таны хийхийг хүссэн холбоос эсвэл
холбоосуудын тухай мэдээллийг агуулдаг. Дээрх жишээнд тохирох харгалзах жишээ
mpd.links файлыг доор үзүүлэв:
adsl:
set link type pptp
set pptp mode active
set pptp enable originate outcall
set pptp self 10.0.0.1
set pptp peer 10.0.0.138
Таны mpd ашиглах
&os; компьютерийн IP хаяг.
Таны ADSL модемийн IP хаяг. Alcatel
&speedtouch; Home-ийн хувьд энэ хаяг нь анхдагчаар 10.0.0.138 байна.
Дараах тушаалыг root-ээр ажиллуулж
холболтыг хялбараар эхлүүлэх боломжтой байдаг:
&prompt.root; mpd -b adsl
Та холболтын төлөвийг дараах тушаалаар харж болно:
&prompt.user; ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff
&os; дээр ADSL үйлчилгээнд холбогдохын тулд mpd-г
ашиглахыг зөвлөдөг юм.
pptpclient ашиглах нь
Мөн бусад PPPoA үйлчилгээнүүдэд FreeBSD-ээр холбогдохын тулд
net/pptpclient
ашиглах боломжтой байдаг.
net/pptpclient-г ашиглан
DSL үйлчилгээнд холбогдохын тулд порт болон багцыг суулгаад өөрийн
/etc/ppp/ppp.conf файлыг засварлана.
Эдгээр үйлдлүүдийг хийж гүйцэтгэхийн тулд та root
болсон байх ёстой. ppp.conf файлын
жишээ хэсгийг доор үзүүлэв. ppp.conf-ийн
тохируулгуудын тухай илүү мэдээллийг ppp
гарын авлагын хуудас &man.ppp.8;-с лавлана уу.
adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname username
set authkey password
set ifaddr 0 0
add default HISADDR
DSL үйлчилгээ үзүүлэгчтэй холбогдох таны бүртгэлийн
хэрэглэгчийн нэр.
Таны бүртгэлийн нууц үг.
Та өөрийн бүртгэлийн нууц үгийг ppp.conf
файлд цэвэр текст хэлбэрээр тавих ёстой болохоор энэ файлын агуулгыг
хэн ч уншиж чадахгүй болгосон эсэхээ шалгах хэрэгтэй. Дараах сери
тушаалууд нь энэ файлыг зөвхөн root
бүртгэлээр уншигдахаар болгох юм. Дэлгэрэнгүй мэдээллийг
&man.chmod.1; болон &man.chown.8; гарын авлагын хуудаснуудаас
лавлана уу.
&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.conf
Энэ нь PPP сессэд зориулан таны DSL чиглүүлэгч уруу хоолой нээх болно.
Ethernet DSL модемууд нь LAN IP хаягаар урьдчилан тохируулагдсан байдаг
бөгөөд та түүн уруу холбогдоно. Alcatel &speedtouch; Home-ийн
хувьд энэ хаяг нь 10.0.0.138 байна.
Таны чиглүүлэгчийн баримтад төхөөрөмж ямар хаяг ашиглаж байгааг хэлсэн
байх ёстой. Хоолой нээж PPP сесс эхлүүлэхийн тулд дараах тушаалыг
ажиллуулна:
&prompt.root; pptp address adsl
Та өмнөх тушаалын төгсгөлд &
тэмдгийг
нэмэхийг хүсэж болох юм. Ингэхгүй бол pptp нь
танд тушаал хүлээх мөрийг буцаадаггүй.
tun виртуал хоолой төхөөрөмж нь
pptp болон ppp
процессуудын хоорондох харилцаанд зориулан үүсгэгдэх болно. Тушаал хүлээх
мөрөнд буцаж ирснийхээ дараа юм уу эсвэл pptp нь
холболтыг баталгаажуулсны дараа та хоолойг ингэж шалгаж болно:
&prompt.user; ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918
Хэрэв та холбогдож чадахгүй байгаа бол өөрийн чиглүүлэгчийн тохиргоог
шалгаарай. Энэ нь ихэвчлэн telnet
юм уу эсвэл вэб хөтчөөр хандах боломжтой байдаг. Хэрэв та холбогдож
чадахгүй хэвээр байвал pptp тушаалын
гаралт болон ppp бүртгэлийн
файл /var/log/ppp.log-оос ямар нэг
сэжүүр байгаа эсэхийг шалгах хэрэгтэй.
Сатоши
Асами
Анхлан хувь нэмэр болгон оруулсан
Гай
Хэлмер
Зарим хэсгийг оруулсан
Пьеро
Серини
SLIP ашиглах
SLIP
SLIP клиент тохируулах
SLIPклиент
Дараах нь FreeBSD машиныг SLIP-д зориулан статик хост сүлжээн дээр тохируулах
нэг арга юм. Динамикаар хостын нэрийг өгөхийн тулд (таныг залгаж холбогдох болгонд
таны хаяг өөрчлөгддөг) танд илүү төвөгтэй тохируулга хэрэгтэй болох байх.
Эхлээд таны модем аль цуваа портод холбогдсоныг тодорхойлно. Олон хүн
- /dev/modem гэх зэргээр жинхэнэ төхөөрөмжийн нэр
- /dev/cuadN
+ /dev/modem гэх зэргээр жинхэнэ төхөөрөмжийн нэр
+ /dev/cuadN
уруугаа заасан симболын холбоосыг тохируулдаг. Энэ нь модемийг өөр порт уруу
шилжүүлэх шаардлагатай болсон тохиолдолд жинхэнэ төхөөрөмжийн нэрийг хийсвэрлэх
- боломжийг танд олгож байгаа юм. Бүх системийн дагуу /etc
+ боломжийг танд олгож байгаа юм. Бүх системийн дагуу /etc
дэх олон файлууд болон .kermrc файлуудыг засварлах
шаардлагатай болох үед энэ нь нэлээн ярвигтай болж ирдэг!
- /dev/cuad0 нь
- COM1, cuad1 нь
+ /dev/cuad0 нь
+ COM1, /dev/cuad1 нь
COM2, гэх мэт.
Өөрийн цөмийн тохиргооны файлд дараах нь байгаа эсэхийг шалгаарай:
device sl
Энэ нь GENERIC цөмд орсон байдаг бөгөөд
та түүнийг устгаагүй л бол энэ нь асуудал биш юм.
Зөвхөн нэг удаа хийх зүйлс
Өөрийн гэр машин, гарц болон нэрийн серверүүдийг өөрийн
/etc/hosts файлд нэмнэ. Биднийх
иймэрхүү харагдах болно:
127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2
Өөрийн /etc/nsswitch.conf файлын
hosts: хэсэгт files
мөр нь dns мөрөөс өмнө байгаа эсэхийг шалгаарай.
Эдгээр параметрүүдгүй бол сонин зүйлс болж магадгүй юм.
/etc/rc.conf файлыг засна.
Дараах мөрийг засварлаж өөрийн хостын нэрийг тохируулна:
hostname="myname.my.domain"
Таны машины Интернэтийн бүрэн хостын нэрийг энд тавих ёстой.
анхдагч чиглүүлэлт
Дараах мөрийг өөрчилж анхдагч чиглүүлэлт:
defaultrouter="NO"
гэдгийг:
defaultrouter="slip-gateway"
болгоно.
доор дурдсаныг агуулсан /etc/resolv.conf файл
үүсгэнэ:
domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12
нэрийн сервер
домэйн нэр
Таны харж байгаагаар эдгээр нь нэрийн серверийн хостуудыг
тохируулж байна. Мэдээж жинхэнэ домэйн нэрс болон хаягууд нь
таны орчноос хамаарна.
root болон
toor (нууц үггүй бусад бүртгэлүүдийн) нууц үгийг
тохируулна.
Өөрийн машиныг дахин ачаалж зөв хостын нэртэйгээр ачаалсан
эсэхийг нь шалгаарай.
SLIP холболт хийх нь
SLIPхолболт хийх нь
Залгаад хүлээх мөрөн дээр slip гэж
бичээд өөрийн машины нэр болон нууц үгийг оруулна. Юу оруулах
шаардлагатай нь таны орчноос хамаарна. Хэрэв та Kermit
ашиглаж байгаа бол та иймэрхүү скриптийг ажиллуулахаар оролдож
болно:
# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0a
Мэдээж өөртөө тааруулаад өөрийн хэрэглэгчийн нэр болон
нууц үгийг солих хэрэгтэй. Ингэснийхээ дараа та
Kermit-ийн хүлээх мөрөөс
холбогдохын тулд slip гэж бичих
хэрэгтэй.
Файлын системд хаа нэгтээ өөрийн нууц үгийг цэвэр текстээр
үлдээх нь ерөнхийдөө буруу юм.
Үүнийг хийх нь аз туршсан явдал юм.
Kermit-г тэнд нь үлдээж (та үүнийг
Ctrl
z
хослолоор зогсоож болно) root-ээр
дараах тушаалыг бичнэ:
&prompt.root; slattach -h -c -s 115200 /dev/modem
Хэрэв та чиглүүлэгчийн нөгөө талд байгаа хостууд уруу
ping хийж чадаж байвал та холбогдсон байна!
Хэрэв энэ нь ажиллахгүй байгаа бол slattach
тушаалд нэмэлт өгөгдлийн оронд
-г тавьж оролдоод үзээрэй.
Холболтыг хэрхэн зогсоох вэ
доор дурдсаныг хийж:
&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`
slattach-г зогсооно. Дээр дурдсаныг хийхийн тулд
root байх шаардлагатайг санаарай. Дараа нь
kermit уруугаа (хэрэв та түр зогсоосон бол fg тушаалыг
ажиллуулан) буцаж түүнээс гарна (q).
&man.slattach.8; гарын авлагын хуудсанд
интерфэйсийг зогссон гэж тэмдэглэхийн тулд ifconfig sl0 down
тушаалыг ашиглах ёстой гэсэн байдаг боловч энэ нь
ямар ч өөрчлөлт хийдэггүй юм шиг санагддаг.
(ifconfig sl0 тушаал нь бас үүнтэй
адилыг гаргадаг.)
Заримдаа таны модем зөөгчийг унагахаасаа татгалзаж болох юм. Тийм тохиолдолд
ердөө л дахин kermit-г ажиллуулаад тэгээд түүнээс гарах
хэрэгтэй. Энэ нь ихэвчлэн хоёр дахь оролдлогод болдог.
Алдааг олж засварлах
Хэрэв энэ нь ажиллахгүй байгаа бол &a.net.name; захидлын жагсаалтаас чөлөөтэй
асуугаарай. Одоогоор хүмүүсийн аялж мэдсэн зүйлс гэх юм бол:
slattach тушаалд
эсвэл тохируулгуудыг
ашиглахгүй байх (энэ нь мөхлийн байх ёсгүй, гэхдээ энэ нь зарим хэрэглэгчдийн
асуудлуудыг шийддэг гэж бичсэн байдаг.)
-ийн оронд
тохируулгыг ашиглах (зарим фонтууд дээр ялгааг нь олж харах
хэцүү байж болох юм).
Өөрийн интерфэйсийн төлөвийг харахын тулд ifconfig sl0
тушаалыг ажиллуулж үзээрэй. Жишээ нь та иймэрхүү дүн харж болох юм:
&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00
Хэрэв та &man.ping.8; тушаалаас no route to host
мэдэгдлүүдийг авах юм бол таны чиглүүлэлтийн хүснэгтэд асуудал байж
болзошгүй юм. Тухайн үед байгаа чиглүүлэлтүүдийг үзүүлэхийн тулд
netstat -r тушаалыг ашиглаж болно :
&prompt.root; netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)
Өмнөх жишээнүүд нь харьцангуй завгүй байгаа системүүдийнх юм.
Таны систем дээрх тоонууд нь сүлжээний ачааллаас хамаарч өөр
өөр байх болно.
SLIP сервер тохируулах нь
SLIPсервер
Энэхүү баримт нь FreeBSD систем дээр SLIP серверийн үйлчилгээнүүдийг
тохируулахад зориулсан зөвлөгөөнүүдийг санал болгодог. Энэ нь юу гэсэн үг вэ
гэхээр алсын SLIP клиентүүдийн нэвтрэлтийн үед холболтуудыг автоматаар эхлүүлэхээр
болгож таны системийг тохируулна гэсэн үг юм.
Шаардлагатай зүйлс
TCP/IP сүлжээ
Энэ баримт нь өөрийн үндсэн чанарын хувьд хэт техникийн учраас тодорхой
мэдлэг шаардах болно. Энэ нь таныг TCP/IP сүлжээний протоколыг тодорхой
хэмжээгээр мэддэг бөгөөд ялангуяа сүлжээ болон цэгийн хаяглалт,
сүлжээний хаягийн багууд, дэд сүлжээ үүсгэх, чиглүүлэлт болон RIP зэрэг чиглүүлэлтийн
протоколуудыг мэддэг гэж тооцдог. SLIP үйлчилгээнүүдийг dial-up сервер дээр
тохируулах нь эдгээр ухагдахуунуудын тухай мэдлэгийг шаарддаг бөгөөд хэрэв та
эдгээрийг мэдэхгүй бол O'Reilly & Associates, Inc-ийн хэвлэсэн
Крэг Хантын TCP/IP Network Administration
буюу TCP/IP сүлжээний удирдлага номыг юм уу эсвэл TCP/IP протоколуудын
тухай Даглас Комерийн номнуудыг уншина уу.
модем
Мөн таныг модемоо суулгаж өөрийн модемоор дамжин нэвтрэх боломжуудыг
зөвшөөрөхөөр тохируулсан байгаа гэж үздэг. Хэрэв та үүнд зориулж өөрийн
системийг бэлдэж амжаагүй байгаа бол dialup үйлчилгээнүүдийн тохиргооны тухай
мэдээллийг хэсгээс үзнэ үү.
Та бас цуваа портын төхөөрөмжийн драйверийн тухай мэдээлэл болон модемууд дээр
нэвтрэлтүүдийг хүлээн авахаар болгож системийг тохируулах тухай мэдээллийг
&man.sio.4; болон &man.ttys.5;, &man.gettytab.5;,
&man.getty.8;, & &man.init.8; гарын авлагын хуудаснуудаас шалгахыг
хүсэж болох юм. Цуваа портын параметрүүдийг
(шууд холбогдсон цуваа интерфэйсүүдийн хувьд clocal зэрэг)
тохируулах тухай мэдээллийг &man.stty.1; гарын авлагын хуудаснаас үзнэ үү.
Түргэн дүгнэлт
FreeBSD-г SLIP сервер болгон ашиглах ердийн тохиргоонд дараах маягаар
ажилладаг: SLIP сервер нь таны FreeBSD SLIP сервер системийг гадагш залгуулдаг
бөгөөд /usr/sbin/sliplogin-ийг тусгай хэрэглэгчийн
бүрхүүл болгон ашигладаг тусгай SLIP нэвтрэх ID-аар нэвтэрдэг.
sliplogin програм нь тусгай хэрэглэгчийн хувьд таарах
мөрийг олохын тулд /etc/sliphome/slip.hosts файлыг
гүйлгэн үздэг бөгөөд хэрэв олсон бол цуваа шугамыг байгаа SLIP
интерфэйс уруу холбож дараа нь SLIP интерфэйсийг тохируулахын тулд
/etc/sliphome/slip.login бүрхүүлийн скриптийг
ажиллуулдаг.
SLIP серверийн нэвтрэлтийн жишээ
Жишээ нь хэрэв SLIP хэрэглэгчийн ID нь Shelmerg
байсан бол /etc/master.passwd файл дахь
Shelmerg-ийн оруулга иймэрхүү байж болох
юм:
Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin
Shelmerg нэвтрэх үед
sliplogin нь таарах хэрэглэгчийн ID-тай
мөрийг /etc/sliphome/slip.hosts
файлаас хайх болно, жишээ нь /etc/sliphome/slip.hosts
файлд дараах мөр байж болох юм:
Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
sliplogin тушаал нь тэр таарах мөрийг
олох бөгөөд цуваа шугамыг дараачийн байгаа SLIP интерфэйс уруу
залгаж дараа нь /etc/sliphome/slip.login-ийг
иймэрхүүгээр ажиллуулна:
/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
Хэрэв бүгд зүгээр болж өнгөрвөл /etc/sliphome/slip.login
нь өөрийгөө залгасан (дээрх жишээн дээр slip.login уруу
өгөгдсөн жагсаалтан дахь эхний параметр болох SLIP интерфэйс 0)
SLIP интерфэйсийн хувьд ifconfig
тушаалыг ажиллуулж локал IP хаяг (dc-slip),
алсын IP хаяг (sl-helmer), SLIP интерфэйсийн
сүлжээний баг (0xfffffc00) болон
бусад нэмэлт тугнуудыг (autocomp) тохируулдаг.
Хэрэв ямар нэг зүйл буруу болвол sliplogin нь
ихэвчлэн /var/log/messages уруу бүртгэх
syslogd дэмон боломжоор дамжуулан
боломжийн мэдээллийн чанартай мэдэгдлүүдийг ихэвчлэн бүртгэдэг.
(&man.syslogd.8; болон &man.syslog.conf.5;-ийн гарын авлагын
хуудаснуудыг үзнэ үү. /etc/syslog.conf-ийг шалгаж
syslogd-ийн юу бүртгэдэг болон хаана
бүртгэдгийг харна уу).
Цөмийн тохиргоо
цөмтохиргоо
SLIP
&os;-ийн анхдагч цөм (GENERIC) нь
SLIP (&man.sl.4;) дэмжлэгтэй цуг ирдэг; тухайлан өөрчилсөн цөмийн
хувьд бол та өөрийн цөмийн тохиргооны файлдаа дараах мөрийг нэмэх
хэрэгтэй:
device sl
Анхдагчаар таны &os; машин пакетуудыг урагш дамжуулахгүй байх болно.
Хэрэв та өөрийн SLIP серверийг чиглүүлэгч маягаар ашиглахыг хүсвэл
/etc/rc.conf файлыг засварлах хэрэгтэй болох
бөгөөд gateway_enable хувьсагчийн тохиргоог
болгож өөрчлөх хэрэгтэй. Ингэж зааж өгснөөр
чиглүүлэлтийн тохиргоог дахин ачаалсны дараа ч тогтмол байлгадаг.
Тохиргоог даруй идэвхтэй болгохын тулд та
root хэрэглэгчээр дараах тушаалыг ажиллуулж болно:
&prompt.root; /etc/rc.d/routing start
FreeBSD-ийн цөмийг тохируулах талаар бичсэн -с
өөрийн цөмийг дахин тохируулах талаар лавлана уу.
Sliplogin тохиргоо
Урьд нь дурдаж байсны дагуу /usr/sbin/sliplogin файлын
- тохиргооны хэсэг болох гурван файл /etc/sliphome санд
+ тохиргооны хэсэг болох гурван файл /etc/sliphome санд
байдаг (sliplogin-ий талаар мэдээллийг
&man.sliplogin.8; гарын авлагын хуудаснаас үзнэ үү). Эдгээрт
SLIP хэрэглэгчид болон тэдгээрийн холбоотой IP хаягуудыг тодорхойлдог
slip.hosts файл, SLIP интерфэйсийг ихэвчлэн тохируулдаг
slip.login файл, болон (нэмэлт)
цуваа холболт төгссөн үед slip.login-ий
нөлөөллүүдийг буцаадаг slip.logout
файл ордог.
slip.hosts тохиргоо
/etc/sliphome/slip.hosts нь
өөр хоорондоо зайгаар тусгаарлагдсан хамгийн багаар бодоход
дөрвөн хэсгээс тогтох мөрүүдээс тогддог:
SLIP хэрэглэгчийн нэвтрэх ID
SLIP холбоосын локал хаяг (SLIP серверийн хувьд локал)
SLIP холбоосын алсын хаяг
Сүлжээний баг
Локал болон алсын хаягууд нь хостын нэрс (
/etc/nsswitch.conf файлд заасан
таны тодорхойлолтуудаас хамаарч /etc/hosts
файлаар юм уу эсвэл домэйн нэрний үйлчилгээгээр IP болон
танигддаг) байж болох бөгөөд сүлжээний баг нь
/etc/networks-аас хийгдэх хайлтаар
танигдах нэр байж болно. Жишээ систем дээр
/etc/sliphome/slip.hosts нь
иймэрхүү харагдана:
#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp
Мөрийн төгсгөлд нэг буюу хэд хэд тохируулгууд байна:
— толгойн шахалт байхгүй
— толгойнуудыг шахна
— алсын тал толгойнуудыг шахахыг зөвшөөрөх
бол хийнэ
— ICMP пакетуудыг хаана
(таны урсгалыг дүүргэхийн оронд ping
пакетууд
хаягдах болно)
SLIP
TCP/IP сүлжээ
Таны SLIP холбоосуудын локал болон алсын хаягуудын сонголт
та TCP/IP дэд сүлжээг тусгайлан зориулах уу эсвэл өөрийн SLIP
сервер дээрээ proxy ARP
-г
(энэ нь жинхэнэ
proxy ARP биш боловч үүнийг
тайлбарлахын тулд энэ хэсэгт энэ ухагдахуун ашиглагдах болно)
ашиглах уу гэдгээс хамаарна. Хэрэв та аль аргыг сонгохдоо
эсвэл IP хаягуудыг хэрхэн зааж өгөхдөө эргэлзэж байгаа бол
SLIP-ийн шаардлагатай зүйлс ()
хэсэгт дурдсан TCP/IP-ийн номнууд ба/эсвэл өөрийн
IP сүлжээний удирдагчаас лавлана уу.
Та өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглах бол
та өөрийн өгөгдсөн IP сүлжээний дугаараас дэд сүлжээний дугаарыг
хуваарилж өөрийн SLIP клиент бүрийн IP дугааруудыг тэр дэд сүлжээнээс
зааж өгөх хэрэгтэй болно. Дараа нь өөрийн хамгийн ойрын чиглүүлэгч
дээр SLIP серверээрээ дамжуулан SLIP дэд сүлжээ уруу
статик чиглүүлэлт тохируулах хэрэгтэй болох болов уу.
Ethernet
Өөрөөр, хэрэв та proxy ARP
аргыг ашиглах бол
та өөрийн SLIP клиентийн IP хаягуудыг өөрийн SLIP серверийн
Ethernet дэд сүлжээнээс олгох хэрэгтэй болох бөгөөд та бас
SLIP серверийн ARP хүснэгт дэх proxy ARP
оруулгуудыг удирдахын
тулд &man.arp.8;-г ашиглахаар болгож өөрийн
/etc/sliphome/slip.login болон
/etc/sliphome/slip.logout скриптүүдийг
тохируулах хэрэгтэй болно.
slip.login тохиргоо
Ердийн /etc/sliphome/slip.login файл
иймэрхүү харагдана:
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
Энэ slip.login файл нь ердөө л
тохирох SLIP интерфэйсийн хувьд ifconfig-г
локал ба алсын хаягууд болон SLIP интерфэйсийн сүлжээний багтайгаар
ажиллуулдаг.
Хэрэв та proxy ARP
аргыг ашиглахаар шийдсэн бол
(өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглахын оронд)
таны /etc/sliphome/slip.login файл
иймэрхүү харагдах ёстой:
#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub
Энэ slip.login файл дахь
arp -s $5 00:11:22:33:44:55 pub тушаал нь
SLIP серверийн ARP хүснэгтэд ARP оруулгыг үүсгэдэг.
Ethernet дэх өөр IP цэг SLIP клиентийн IP хаягтай ярилцахыг
хүсэх үед энэ ARP оруулга нь SLIP серверийг SLIP серверийн Ethernet
MAC хаягаар хариулахад хүргэдэг.
EthernetMAC хаяг
Дээрх жишээг ашиглаж байхдаа Ethernet MAC хаягийг (00:11:22:33:44:55) өөрийн системийн
Ethernet картын MAC хаягаар солисон эсэхээ шалгаарай. Тэгэхгүй бол
таны proxy ARP
чинь мэдээж ажиллахгүй!
Та өөрийн SLIP серверийн Ethernet MAC хаягийг
netstat -i тушаалыг ажиллуулан
гарсан үр дүнгээс нь харан олж болох юм; гарсан үр дүнгийн
хоёр дахь мөр иймэрхүү харагдах ёстой:
ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116
Энэ нь системийн Ethernet MAC хаяг нь
00:02:c1:28:5f:4a гэдгийг
үзүүлж байгаа юм — netstat -i
тушаалаар өгөгдсөн Ethernet MAC хаяг дахь цэгүүд нь
тодорхойлох хоёр цэгээр солигдох ёстой бөгөөд &man.arp.8;-ийн
хүсдэг хэлбэр уруу хаягийг хөрвүүлэхийн тулд ганц оронтой
16-тын тоо бүрийн өмнө тэг нэмэх ёстой. Ашиглалтын тухай
бүрэн мэдээллийг &man.arp.8; гарын авлагын хуудаснаас
үзнэ үү.
/etc/sliphome/slip.login болон
/etc/sliphome/slip.logout файлыг үүсгэж
байхдаа execute
буюу ажиллуулах битийг (өөрөөр хэлбэл chmod 755
/etc/sliphome/slip.login /etc/sliphome/slip.logout)
тавих ёстой, тэгэхгүй бол sliplogin тушаал түүнийг
ажиллуулж чадахгүй байх болно.
slip.logout тохиргоо
/etc/sliphome/slip.logout нь
заавал хатуу чангаар хэрэгтэй биш (та proxy ARP
хийгээгүй л бол) боловч та үүнийг үүсгэхийг хүсвэл энд үндсэн
slip.logout
скриптийн жишээ байна:
#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
Хэрэв та proxy ARP
ашиглаж байгаа бол
SLIP клиентийн хувьд ARP оруулгыг устгах
/etc/sliphome/slip.logout файлтай
байхыг хүсэж болох юм:
#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5
arp -d $5 тушаал нь ARP оруулгыг
устгаж SLIP клиент нэвтрэх үед proxy ARP
slip.login нэмэгддэг.
/etc/sliphome/slip.logout файлыг
үүсгэснийхээ дараа ажиллуулах битийг тавьсан эсэхээ шалгаарай
(өөрөөр хэлбэл chmod 755
/etc/sliphome/slip.logout).
Чиглүүлэлтийн эргэцүүллүүд
SLIP
чиглүүлэлт
Хэрэв та өөрийн SLIP клиентүүд болон таны бусад сүлжээний хоорондох
(болон магадгүй Интернэт хоорондох) чиглүүлэлтийн пакетуудын хувьд
proxy ARP
аргыг ашиглахгүй байгаа бол өөрийн SLIP
клиентүүдийн дэд сүлжээг өөрийн SLIP серверээр дамжуулан чиглүүлэхийн
тулд өөрийн хамгийн ойрын анхдагч чиглүүлэгчид(үүдэд) статик чиглүүлэлтүүдийг
нэмэх хэрэгтэй болж болох юм.
Статик чиглүүлэлтүүд
статик чиглүүлэлтүүд
Өөрийн хамгийн ойрын чиглүүлэгчүүдэд статик чиглүүлэлтүүдийг
нэмэх нь яршигтай байж болох юм (эсвэл хэрэв та тэгж хийх зөвшөөрөлгүй бол
боломжгүй байх юм...). Та өөрийн байгууллагадаа олон
чиглүүлэгчтэй бол Cisco болон Proteon-ий хийсэн зарим чиглүүлэгчүүд нь
зөвхөн SLIP дэд сүлжээ уруу статик чиглүүлэлттэй байхаар тохируулагдсан
байх шаардлагагүй байж болох бөгөөд бас аль статик чиглүүлэлтүүд нь
бусад чиглүүлэгчүүдэд хэлж байгааг хэлж өгөх хэрэгтэй болох юм.
Тийм болохоор статик чиглүүлэлт дээр тулгуурласан чиглүүлэлтийг
ажиллуулахад зарим нэг чадамж болон алдаа олж засварлах/тааруулах
чадвар хэрэгтэй болж болох юм.
diff --git a/mn_MN.UTF-8/books/handbook/security/chapter.sgml b/mn_MN.UTF-8/books/handbook/security/chapter.sgml
index ae4641160d..a6976157e1 100644
--- a/mn_MN.UTF-8/books/handbook/security/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/security/chapter.sgml
@@ -1,4268 +1,4312 @@
Мэтью
Диллон
Энэ бүлгийн ихэнх хэсгийг security(7) гарын авлагын хуудаснаас авсан бөгөөд
security(7) гарын авлагын хуудсыг бичсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
Аюулгүй байдал
аюулгүй байдал
Ерөнхий агуулга
Энэ бүлэг нь системийн аюулгүй байдлын ухагдахуунуудын үндэс, зарим нэг нийтлэг
практикийн сайн аргууд болон &os; дэх зарим нэг дэвшилттэй сэдвүүдийг
танилцуулах болно. Энд дурдагдсан олон сэдвүүдийг бас системийн болон Интернэтийн
аюулгүй байдалд хэрэглэж болох юм. Интернэт нь хүн бүр таны найрсаг хөрш байхыг
хүсдэг найзархаг
газар байхаа аль хэдийн больсон.
Өөрийн системийг аюулгүй болгох нь таны өгөгдөл, оюуны өмч, цаг хугацаа зэрэг
олон зүйлсийг хакерууд зэргийн савраас хамгаалахад хойшлуулашгүй чухал юм.
&os; нь таны систем болон сүлжээний аюулгүй байдал болон бүрэн бүтэн байдлыг
хангаж байдаг хэрэгслүүд болон арга замуудын цуглуулгыг агуулдаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
&os;-ийн хувьд системийн аюулгүй байдлын үндсэн ухагдахуунууд.
&os;-д байдаг DES болон MD5
зэрэг төрөл бүрийн нууцлах арга замуудын талаар.
Нэг удаагийн нууц үгийн нэвтрэлтийг хэрхэн тохируулах талаар.
TCP Wrappers буюу
TCP Гүйцэтгэлийг хялбаршуулагчдыг inetd-д ашиглан
хэрхэн тохируулах талаар.
&os;-ийн 5.0-с өмнөх хувилбарууд дээр KerberosIV-г
хэрхэн тохируулах талаар.
&os; дээр Kerberos5-г хэрхэн тохируулах талаар.
IPsec-г хэрхэн тохируулж &os;/&windows; машинуудын хооронд
VPN үүсгэх талаар.
&os;-ийн SSH шийдэл болох OpenSSH-г
хэрхэн тохируулж ашиглах талаар.
Файлын системийн ACL-үүд гэж юу болох, тэдгээрийг
хэрхэн ашиглах талаар.
Portaudit хэрэгслийг хэрхэн ашиглаж
Портын цуглуулгаас суулгагдсан гуравдагч програм хангамжийн багцуудыг аудит хийх талаар.
&os;-ийн аюулгүй байдлын зөвлөмжүүдийн сонордуулгуудыг хэрхэн хэрэглэх талаар.
Процессийн Бүртгэл хөтлөх гэж юу болох талаар ойлголттой болж
түүнийг &os; дээр хэрхэн идэвхжүүлэх талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
&os; болон Интернэтийн үндсэн ухагдахуунуудыг ойлгох.
Энэ номонд нийтдээ аюулгүй байдлын нэмэлт сэдвүүд хамрагдсан болно.
Жишээ нь Mandatory Access Control буюу
Шаардлагатай Хандалтын Хяналт -д,
Интернэт галт ханануудын талаар -д
хэлэлцэгдсэн байгаа.
Танилцуулга
Аюулгүй байдал нь системийн администратораас эхэлж түүнтэй дуусдаг
үйл ажиллагаа юм. BSD &unix; олон хэрэглэгчийн системүүд нь угаасаа
зарим нэг аюулгүй байдлыг хангаж байдаг боловч тэдгээр хэрэглэгчдийг
үнэнч
байлгахыг эрмэлздэг аюулгүй байдлын нэмэлт
арга замуудыг бүтээж түүний ажиллагааг хангах ажил нь сисадмины магадгүй
ганц, хамгийн том үүргүүдийн нэг юм. Таныг аюулгүй болгосон зөвхөн тэр
хэмжээгээр машинууд нь аюулгүй байдаг бөгөөд аюулгүй байдлын санаа зовнилууд
нь хүний ая тухтай хялбар байлгах гэсэн хэрэгцээтэй үргэлж тэмцэлдэж байдаг. Ерөнхийдөө
&unix; системүүд нь асар олон тооны зэрэгцээ процессуудыг ажиллуулах
чадвартай бөгөөд эдгээр процессуудын ихэнх нь серверүүд болон ажилладаг
— энэ нь гаднын зүйлс тэдэнтэй холбогдож ярилцах боломжтой
гэсэн үг юм. Өчигдрийн миникомпьютерууд, мэйнфрэймүүдээс өнөөгийн
ширээний компьютерууд болж компьютерууд нь сүлжээнд холбогдож
сүлжээнүүд нь хоорондоо холбогдох тусам аюулгүй байдал нь улам илүү том
асуудал болсоор байна.
Системийн аюулгүй байдал нь сүйрүүлэхийг оролдсон эсвэл системийг
ашиглагдахааргүй болгох гэсэн, гэхдээ root
бүртгэлийг буулган авах (root-г эвдэх
) оролдлого
хийдэггүй, халдлагууд зэрэг төрөл бүрийн халдлагуудыг зогсоохтой бас
хамааралтай юм. Аюулгүй байдлын санаа зовнилуудыг хэд хэдэн зэрэглэлд
хувааж болно:
Үйлчилгээг зогсоох халдлагууд.
Хэрэглэгчийн бүртгэл буулган авалтууд.
Хандаж болох серверүүдээр дамжин root-г буулган авах.
Хэрэглэгчийн бүртгэлүүдээс дамжин root-г буулган авах.
Арын хаалга үүсгэлт.
DoS халдлагууд
Үйлчилгээг Зогсоох (DoS)
аюулгүй байдал
DoS халдлагууд
Үйлчилгээг Зогсоох (DoS)
Үйлчилгээг Зогсоох (DoS)
Үйлчилгээг зогсоох халдлага нь машиныг хэрэгцээтэй эх үүсвэрээс нь салгах
үйлдэл юм. Ихэвчлэн DoS халдлагууд нь сүйрүүлэхийг оролдсон эсвэл
машиныг түүн дээрх серверүүд болон сүлжээний стекийг эзэмдэн ашиглах
боломжгүй болгодог балмадаар хүчлэх арга замууд юм. Зарим DoS халдлагууд
нь сүлжээний стек дэх алдаануудыг ашиглан ганц пакетаар машиныг сүйрүүлэхийг
оролддог. Үүнийг зөвхөн алдааны засварыг цөмд хийснээр засах боломжтой.
Систем дээрх хөнөөлтэй нөхцөлд байх тэр серверийн дуудлагыг хязгаарладаг
тохируулгуудыг зөв зааж серверүүд уруу хийсэн халдлагуудыг ихэвчлэн засаж болдог.
Сүлжээний балмадаар хүчлэх халдлагуудын эсрэг арга хэмжээ авахад илүү
төвөгтэй байдаг. Жишээ нь хууран мэхэлсэн пакетийн халдлагыг зогсоох
бараг л боломжгүй, таны системийг Интернэтээс салгахад хүргэж болох юм.
Энэ нь таны машиныг зогсоож чадахгүй байж болох боловч таны Интернэтийн
холболтыг дүүргэж болно.
аюулгүй байдал
бүртгэл буулган авалтууд
Хэрэглэгчийн бүртгэлийг буулган авах халдлага нь DoS халдлагаас илүү их
тохиолддог. Одоо болтол олон сисадминууд стандарт telnetd,
rlogind, rshd,
болон ftpd серверүүдийг өөрсдийн машинууд
дээр ажиллуулсаар байна. Анхдагчаар серверүүд нь шифрлэсэн холболт дээр
ажилладаггүй. Ийм холболт дээр хэрэв та багагүй хэмжээний хэрэглэгчидтэй
бөгөөд тэдгээр хэрэглэгчдээс нэг болон хэд хэд нь алсаас (энэ нь систем уруу нэвтрэн
орох хамгийн нийтлэг тав тухтай арга юм) таны систем уруу нэвтрэн
орж байгаа бол тэдгээр хэрэглэгчийн нууц үг дундаасаа сүлжээгээр шиншлэгдэн алдагдах
боломжтой байдаг. Анхааралтай системийн админ тэр хэрэглэгчийн
алсаас хандсан бүртгэлүүд дээрээс бүр амжилттай болсон нэвтрэлтүүдэд хүртэл сэжигтэй
эхлэл хаягууд байгаа эсэхийг хайн шинжилдэг.
Халдагч хэрэглэгчийн бүртгэлд хандаж чадсаны дараа root-г
бас эвдэж чадна гэдгийг үргэлж бодож байх хэрэгтэй. Гэхдээ жинхэнэ амьдрал дээр бол
сайн аюулгүй байдлыг хангаж нууцлаг болгосон байнга ажиллагааг нь хянаж байдаг систем дээр
хэрэглэгчийн бүртгэлд хандах нь халдагч заавал ч үгүй root
эрхэд хандаж чадна гэсэн үг биш юм. Энэ ялгааг зөв салгаж ойлгох хэрэгтэй. Учир нь
root уруу хандах боломжгүй халдагч ерөнхийдөө өөрийн
мөрийг баллаж нууж чаддаггүй бөгөөд тухайн хэрэглэгчийн файлуудыг замбараагүйтүүлэх
эсвэл машиныг сүйрүүлэхээс илүүтэйг хийж чаддаггүй. Хэрэглэгчид нь сисадминууд шиг
аюулгүй байдлын арга хэмжээг тэр болгон авдаггүй болохоор хэрэглэгчийн бүртгэлийн
буулган авалт нь маш элбэг байдаг юм.
аюулгүй байдал
арын хаалганууд
Машин дээрх root бүртгэлийг эвдэх боломжит олон
аргууд байдгийг системийн администраторууд санаж байх хэрэгтэй. Халдагч нь
root-н нууц үгийг мэдэж болно. Эсвэл халдагч root
эрхээр ажилладаг серверт алдаа олж сүлжээгээр тэр сервер уруу дамжин орж
root-г эвдэж болно. Эсвэл халдагч нь suid-root
програмд алдаа байгааг мэдэж хэрэглэгчийн бүртгэлийг эвдэн орсныхоо дараа
тэр алдаагаар дамжин root-г эвдэн орж болох юм.
Хэрэв халдагч машин дээрх root-г эвдэх аргаа
олсон бол заавал арын хаалга суулгах шаардлагагүй болж болох юм.
root-н цоорхойнуудын олонхийг тухайн үед аль хэдийн
олоод хаачихсан байдаг бөгөөд энэ үед халдагчид өөрийн мөрөө цэвэрлэхэд ихээхэн
ажиллагаа шаарддаг болохоор ихэнх халдагчид арын хаалга суулгадаг.
Арын хаалга нь систем уруу хандах root хандалтыг
халдагчид амархнаар дахин олж авах боломжийг олгодог боловч энэ нь ухаалаг системийн
администраторт халдлагыг амархнаар илрүүлэх боломжийг бас олгодог юм.
Халдагчийн хамгийн эхлээд эвдэн орсон цоорхойг хааж чаддаггүй болохоор арын хаалга
суулгахыг боломжгүй болгох нь магадгүй таны аюулгүй байдалд ашиггүй байж болох юм.
Аюулгүй байдлын засварууд нь олон давхраатай сонгины хальс
хандлагаар үргэлж шийдэгдэж байх шаардлагатай бөгөөд тэдгээрийг дараах маягаар
зэрэглэж болно:
root болон staff бүртгэлүүдийг нууцлаг/аюулгүй болгох.
root–ажилладаг серверүүд
болон suid/sgid хоёртын файлуудыг аюулгүй болгох.
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох.
Нууц үгийн файлыг аюулгүй болгох.
Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон
файлын системүүдийг аюулгүй болгох.
Системд хийгдсэн зохисгүй өөрчлөлтүүдийг түргэн илрүүлэх.
Параной буюу хэт зовнил.
Энэ бүлгийн дараагийн хэсэг нь дээр дурдсан зүйлсүүдийг илүү гүнзгийгээр
авч үзэх болно.
&os;-н аюулгүй байдлыг хангах нь
аюулгүй байдал
&os;-н аюулгүй байдлыг хангах нь
Тушаалыг Протоколтой харьцуулахад (Command vs. Protocol)
Энэ баримтын туршид бид тод текстээр
програмыг monospaced фонтоор тусгай тушаалуудыг
тэмдэглэх болно. Протоколууд ердийн фонт ашиглах болно. Тэмдэглэгээний энэ
ялгаа нь ssh зэргийн хувьд ашигтай, учир нь энэ ssh нь протоколоос гадна
бас тушаал юм.
Үүнээс хойшх хэсгүүд нь түрүүчийн бүлгийн
сүүлийн хэсэгт дурдсан таны &os; системийг аюулгүй болгох аргуудыг
авч үзнэ.
root бүртгэл болон staff бүртгэлүүдийг
аюулгүй болгох
su
Эхлээд хэрэв та root бүртгэлийг аюулгүй болгоогүй
бол staff бүртгэлүүдийг аюулгүй болгоход санаа зовсны хэрэггүй. Ихэнх системүүд
root бүртгэлд нууц үг өгсөн байдаг. Таны эхний хийх
зүйл бол нууц үг үргэлж эвдэгдэж болно гэдгийг
бодох хэрэгтэй. Энэ нь та нууц үгээ устгах хэрэгтэй гэсэн үг биш юм. Нууц үг нь
машин уруу консол хандалт хийхэд үргэлж хэрэгтэй байдаг. Энэ нь юу гэсэн үг вэ
гэхээр та нууц үгийг консолоос гадна эсвэл болж өгвөл бүр &man.su.1; тушаалтай
ашиглаж болохоор хийх ёсгүй гэсэн үг юм. Жишээ нь
telnet эсвэл rlogin-р хийгдэх
шууд root нэвтрэлтүүдийг хаах pty-уудын тохиргоог insecure
буюу аюултай гэж /etc/ttys файлд заасан эсэхийг шалгаарай.
Хэрэв бусад нэвтрэх үйлчилгээнүүд болох sshd
зэргийг ашиглаж байгаа бол шууд root нэвтрэлтүүдийг
бас хаасан эсэхийг шалгаарай. Та үүнийг /etc/ssh/sshd_config
файлыг засварлан PermitRootLogin тохируулгыг
NO болгон зааж өгөөрэй. Хандах арга бүр —
FTP зэрэг үйлчилгээнүүдээр ихэвчлэн эвдлэн ордог болохыг бодолцох хэрэгтэй.
Шууд root нэвтрэлтүүд зөвхөн системийн консолоор хийгдэхэд
зөвшөөрөгдөх ёстой.
wheel
Мэдээж систем админы хувьд та root
уруу орж чадаж байх ёстой болохоор бид хэдэн цоорхой үлдээдэг.
Гэхдээ эдгээр цоорхойнууд нь нэмэлт нууц үг шалгаж ажилладаг байхаар
бид хийдэг. root-г хандах боломжтой
байлгах нэг арга нь тохирох staff бүртгэлүүдийг wheel
бүлэгт (/etc/group файлд) нэмэх явдал юм.
wheel бүлэгт оруулсан staff-ийн гишүүдэд
root уруу su хийхийг
зөвшөөрдөг. Та staff-ийн гишүүдийг тэдгээрийн нууц үгийн оруулгад
wheel бүлэгт оруулан байрлуулж анхнаас нь
wheel хандалт өгч хэзээ ч болохгүй.
Staff бүртгэлүүдийг staff бүлэгт
оруулах ёстой бөгөөд тэгээд дараа нь /etc/group
файлын wheel бүлэгт нэмэх ёстой.
Зөвхөн root хандалт заавал шаардлагатай
тийм staff-ийн гишүүдийг wheel бүлэгт
оруулах ёстой. Kerberos зэрэг жинхэнээ шалгуулж нэвтрэх аргыг ашиглаж
байх тохиолдолд заавал wheel бүлэгт оруулалгүйгээр
root бүртгэл дэх Kerberos-ийн
.k5login файлыг ашиглаж
root уруу &man.ksu.1; хийхийг зөвшөөрөх
бас боломжтой байдаг. Энэ нь магадгүй давуу шийдэл байж болох юм.
Учир нь хэрэв халдагч таны нууц үгийн файлыг олж аван staff бүртгэлийг
эвдлэн орж чадах бол wheel арга нь
халдагчид root-г эвдэх боломжийг олгосон хэвээр
байдаг юм. wheel аргатай байх нь огт аргагүй
байхаас илүү боловч энэ нь заавал ч үгүй хамгийн аюулгүй сонголт бас биш
юм.
Бүртгэлийг бүрэн түгжихийн тулд &man.pw.8; тушаалыг ашиглах
хэрэгтэй:
&prompt.root;pw lock staff
Энэ нь &man.ssh.1;-ийг оролцуулаад хэрэглэгчийг ямар ч
арга ашиглан нэвтрэн орохыг хориглоно.
Бүртгэлүүдэд хандахыг хориглох өөр нэг арга бол
нууцлагдсан нууц үгийг ганц *
тэмдэгтээр солих явдал юм. Энэ тэмдэгт нь нууцлагдсан
нууц үгтэй хэзээ ч таарахгүй бөгөөд хэрэглэгчийн
хандалтыг хаах болно. Жишээ нь доор дурдсан staff бүртгэлийг:
foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh
Ийм болгон өөрчлөх хэрэгтэй:
foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh
Энэ нь foobar хэрэглэгчийг ердийн
аргууд ашиглан нэвтрэн орох боломжийг хаадаг. Энэ хандалт
хязгаарлах арга нь Kerberos ашиглаж
байгаа сайтууд эсвэл хэрэглэгч &man.ssh.1; ашиглан түлхүүрүүд
тохируулсан тохиолдлууд зэрэгт ажилладаггүй.
Эдгээр аюулгүй байдлын арга замууд нь бас таныг илүү хязгаарласан
серверээс арай бага хязгаарласан машин уруу нэвтрэн орж байна гэж тооцдог.
Жишээ нь хэрэв таны гол хайрцаг чинь бүх л төрлийн серверүүд ажиллуулж байвал
таны ажлын компьютер чинь ямрыг ч ажиллуулах ёсгүй. Өөрийн компьютерийг
боломжийн аюулгүй болгохын тулд та ерөөсөө сервергүй болтол аль болох цөөн
сервер ажиллуулах хэрэгтэй бөгөөд та нууц үгээр хамгаалагдсан дэлгэц хоослогч
ажиллуулах хэрэгтэй. Мэдээж ажлын компьютер уруу физик хандалт өгвөл
халдагч ямар ч төрлийн аюулгүй байдлыг та хангасан байлаа гэсэн эвдэж
чадна. Энэ нь таны бодох ёстой асуудлын нэг юм. Гэхдээ эвдлэн оролтуудын
олонхи нь алсаас сүлжээгээр дамжин таны ажлын компьютер эсвэл серверүүдэд
физик хандалт байхгүй хүмүүсээс ирдэг гэдгийг та бас л бодолцох хэрэгтэй юм.
KerberosIV
Kereberos мэтийг ашиглах нь танд staff бүртгэлийн нууц үгийг нэг газар
өөрчлөх эсвэл хаах боломжийг олгох бөгөөд staff-ийн гишүүдийн бүртгэл байж болох
бүх машинууд дээр нэн даруй бас үйлчилдэг. Хэрэв staff-ийн гишүүний бүртгэл
эвдэгдсэн бол түүний нууц үгийг бүх машинууд дээр нэн даруй өөрчлөх тэр боломжийг
дутуу үнэлэх ёсгүй юм. Тусдаа байгаа нууц үгүүдийг N машинууд дээр өөрчлөх нь
зовлонтой байдаг. Мөн та Kerberos-д нууц үг дахин өгөлтийг ноогдуулж болох
бөгөөд Kerberos тасалбарыг хэсэг хугацааны дараа дуусдагаар хийж болохоос
гадна Kerberos систем нь тодорхой хугацааны (жишээ нь сар бүр) дараа
хэрэглэгчийг шинэ нууц үг сонгохыг шаарддагаар бас тохируулж болдог.
root-ажилладаг серверүүд болон suid/sgid хоёртын файлуудыг аюулгүй болгох
ntalk
comsat
finger
sandboxes
sshd
telnetd
rshd
rlogind
Хянамгай сисадмин илүү ч үгүй дутуу ч үгүй зөвхөн өөрийн хэрэгтэй серверүүдийг
ажиллуулдаг. Гуравдагч талын серверүүд ихэвчлэн хамгийн алдаатай байх
хандлагатай гэдгийг санаж байх хэрэгтэй. Жишээ нь
imapd эсвэл
popper серверийн хуучин хувилбарыг
ажиллуулна гэдэг нь универсал root тасалбарыг
бүх дэлхийд өгч байна гэсэн үг юм. Та няхуур шалгаагүй сервер битгий ажиллуул.
Олон серверүүд заавал root эрхээр ажиллах
шаардлагагүй байдаг. Жишээ нь ntalk,
comsat, болон
finger дэмонуудыг тусгай хэрэглэгчийн
sandboxes буюу хамгаалагдсан хязгаарлагдмал орчинд
ажиллуулах боломжтой байдаг. Хамгаалагдсан хязгаарлагдмал орчин нь
асар их төвгүүдийг давж хийгээгүй л бол төгс биш бөгөөд өмнө дурдсан сонгины
хандлагаар аюулгүй байдалд хандах нь хэвээр байна: хэрэв хэн нэгэн нь
хамгаалагдсан хязгаарлагдмал орчинд ажиллаж байгаа серверт эвдэн орж
чадсан ч гэсэн тэд хамгаалагдсан хязгаарлагдмал орчныг бас эвдэн гарах хэрэг
болно. Аль болох олон давхаргыг халдагч эвдлэх ёстой болох тусам тэдгээрийн
амжилттай болох нь улам багасах болно. Урьд нь root цоорхойнууд нь
системийн үндсэн серверүүдээс авахуулаад бараг л бүх
root ажилладаг сервер дээр олдож байсан.
Хэрэв таны ажиллуулдаг машин уруу хүмүүс зөвхөн sshd
ашиглан нэвтэрдэг бөгөөд telnetd,
rshd эсвэл
rlogind хэзээ ч ашиглан нэвтэрдэггүй
бол эдгээр үйлчилгээнүүдийг хаагаарай!
Одоо &os; нь ntalkd,
comsat, болон
finger үйлчилгээнүүдийг хамгаалагдсан
хязгаарлагдмал орчинд анхдагчаар ажиллуулдаг. Хамгаалагдсан хязгаарлагдмал
орчинд ажиллуулж болох өөр нэг програм нь &man.named.8; юм.
/etc/defaults/rc.conf нь
named-г хамгаалагдсан хязгаарлагдмал
орчинд ажиллуулахад шаардлагатай нэмэлт өгөгдлүүдийг тайлбар хэлбэрээр агуулсан
байдаг. Таны шинэ систем эсвэл байгаа системээ шинэчилж байгаагаас хамааран
тэдгээр хамгаалагдсан хязгаарлагдмал орчинд ашиглагдах тусгай хэрэглэгчийн
бүртгэлүүд суулгагдаагүй байж болох юм. Хянамгай сисадмин судалгаа хийж
серверүүдийг хамгаалагдсан хязгаарлагдмал орчинд аль болох
ажиллуулдаг.
sendmail
Хамгаалагдсан хязгаарлагдмал орчинд ерөнхийдөө ажилладаггүй хэд хэдэн
серверүүд байдаг: sendmail,
popper,
imapd, ftpd,
болон бусад. Эдгээрийн зарим шиг бас өөр серверүүд байдаг боловч
тэдгээрийг суулгах нь таны хүсэж байгаагаас илүү (амархан байх гэсэн асуудал
энд сөхөгдөж байна) их ажиллагаа шаардаж магадгүй юм. Та эдгээр серверүүдийг
магадгүй root эрхээр ажиллуулж тэдгээрт учирч болох
эвдрэн оролтуудыг илрүүлэх өөр арга замуудад найдах хэрэгтэй болж болох юм.
Системийн өөр нэг том боломжтой root цоорхойнууд
бол системд суусан suid-root болон sgid хоёртын файлууд юм.
rlogin зэрэг эдгээрийн ихэнх нь
/bin, /sbin,
/usr/bin, эсвэл /usr/sbin
сангуудад байрладаг. Юу ч 100% аюулгүй байдаггүй боловч системийн анхдагч
suid болон sgid хоёртын файлууд нь боломжийн хэрээр аюулгүй гэж тооцогддог.
Гэсэн хэдий ч эдгээр хоёртын файлуудад root цоорхойнууд
үе үе олддог. xterm-г (энэ нь ихэвчлэн suid
байдаг) эмзэг болгосон root цоорхойнууд 1998 онд
Xlib-д олджээ. Харамсахаасаа өмнө аюулгүй байж
байсан нь дээр учраас хянамгай сисадмин зөвхөн staff ажиллуулах ёстойгоор
staff зөвхөн хандаж чадах тусгай бүлэгт зөвшөөрч suid хоёртын файлуудыг
хязгаарладаг бөгөөд хэн ч ашигладаггүй suid хоёртын файлуудыг ажиллуулж болохгүй
болгодог (chmod 000). Дэлгэцгүй серверт ер нь
xterm хоёртын файл хэрэгцээгүй юм.
Sgid хоёртын файлууд нь бас л аюултай юм. Хэрэв халдагч sgid-kmem
хоёртын файлыг эвдэж чадвал тэр /dev/kmem-г
уншиж чадах бөгөөд ингэснээр нууц үгтэй дурын бүртгэлийг эвдэн орж
шифрлэсэн нууц үгийн файлыг уншихад хүргэдэг. Бас kmem
бүлгийг эвдсэн халдагч secure буюу аюулгүй аргаар дамжин нэвтрэн орсон хэрэглэгчдийн
ашиглаж байгаа pty-уудаар илгээгдсэн гарын товчнуудын даралтуудыг
хянаж чаддаг. tty бүлгийг эвдсэн халдагч
бараг дурын хэрэглэгчийн tty-д бичиж чадна. Хэрэв хэрэглэгч гар дуурайх боломж бүхий
терминал програм эсвэл эмулятор ажиллуулж байгаа бол хэрэглэгчийн терминалыг
тушаал буцаан харуулахаар болгодог өгөгдлийн урсгалыг халдагч үүсгэж дараа нь
тэр тушаалыг тэр хэрэглэгчийн эрхээр ажиллуулдаг.
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох
Хэрэглэгчийн бүртгэлүүдийг аюулгүй болгох нь ихэвчлэн хамгийн хэцүү
байдаг. Та өөрийн staff-д ширүүн хандалтын хязгаарлалтууд оногдуулж
тэдгээрийн нууц үгүүдийг од болгож
болох боловч
та ердийн хэрэглэгчийн бүртгэлүүдийг яг ингэж хязгаарлаж чадахгүй байж болох
юм. Хэрэв та хангалттай хяналттай байх юм бол таны аз болж хэрэглэгчийн
бүртгэлүүдийг зөвөөр аюулгүй болгож чадна. Хэрэв үгүй бол та тэдгээр
бүртгэлүүдийг хянахдаа ердөө л илүү сонор сэрэмжтэй байх хэрэгтэй.
ssh болон Kerberos-г хэрэглэгчийн бүртгэлүүдэд ашиглах нь
нэмэлт удирдлага болон техникийн дэмжлэг шаардлагатайгаас болоод
илүү асуудалтай байдаг боловч энэ нь шифрлэсэн нууц үгийн файлыг бодох юм
бол маш сайн шийдэл хэвээр байдаг.
Нууц үгийн файлыг аюулгүй болгох
Цорын ганц итгэлтэй арга бол аль болох олон нууц үгүүдийг од болгон
тэдгээр бүртгэлүүдэд хандахын тулд ssh эсвэл Kerberos ашигла.
Шифрлэгдсэн нууц үгийн файлыг (/etc/spwd.db)
зөвхөн root уншиж чаддаг боловч халдагч
root-бичих хандалт олж авч чадаагүй ч гэсэн тэр файлд унших эрх олж авах
боломжтой байж болох юм.
Таны аюулгүй байдлын скриптүүд нууц үгийн файлд хийгдсэн өөрчлөлтүүдийг
үргэлж шалгаж тайлагнах шаардлагатай (доорх Файлын бүрэн бүтэн байдлыг шалгах
хэсгийг үзнэ үү).
Цөмийн гол хэсэг, түүхий төхөөрөмжүүд болон файлын системүүдийг аюулгүй болгох
Хэрэв халдагч root-г эвдсэн бол тэр юуг ч хийж чадах
боловч зарим ашиг сонирхлууд байдаг. Жишээ нь орчин үеийн ихэнх цөмүүдэд
пакет шиншлэх төхөөрөмжийн драйвер бүтээгдсэн байдаг. &os;-д энэ нь
bpf төхөөрөмж гэж нэрлэгддэг. Халдагч
ердөө буулган авсан машин дээрээ пакет шиншлэгчийг ажиллуулахыг оролддог.
Та халдагчид энэ боломжийг өгөх хэрэггүй бөгөөд ихэнх системүүдэд
bpf төхөөрөмжийг эмхэтгэн оруулах
шаардлагагүй юм.
sysctl
Гэхдээ bpf төхөөрөмжийг хаасан ч гэсэн
та /dev/mem болон /dev/kmem
файлуудад бас санаа тавих хэрэгтэй. Энэнээс болоод халдагч түүхий (raw)
төхөөрөмжүүдэд бичиж чадсан хэвээр байна. Мөн цөмийн бас нэг боломж болох
модуль ачаалагч гэж нэрлэгддэг &man.kldload.8; байдаг. Самбаатай
халдагч KLD модуль ашиглаад өөрийн bpf
төхөөрөмж эсвэл бусад шиншлэх төхөөрөмжийг ажиллаж байгаа цөмд суулгадаг.
Эдгээр асуудлуудаас зайлсхийхийн тулд та цөмийг илүү өндөр аюулгүй байдлын
- түвшинд ядаж аюулгүйн түвшин 1-д ажиллуулах хэрэгтэй. Аюулгүй түвшин
- sysctl тушаалаар kern.securelevel
- хувьсагчийн тусламжтай тохируулагдаж болно. Аюулгүйн түвшинг 1 болгосны дараа
- түүхий төхөөрөмжүүдэд бичих хандалт хийхийг хориглох бөгөөд schg
- зэрэг chflags тугууд үйлчлэх болно. Мөн та
- чухал эхлүүлэх хоёртын файлууд, сангууд болон скрипт файлууд, ер нь аюулгүйн
- түвшин заагдах хүртэл ажиллаж байгаа бүгдэд schg туг
- байгаа эсэхийг шалгах хэрэгтэй. Энэ нь хэтэрхий болж болох бөгөөд
- таныг илүү өндөр аюулгүйн түвшинд ажиллаж байгаа үед системийг шинэчлэхийг
- бүр илүү төвөгтэй болгодог юм. Та буулт хийж системийн бүх файл болон санд
- schg тугийг зааж өгөлгүйгээр системийг өндөр аюулгүйн
- түвшинд ажиллуулж болох юм. Өөр нэг боломж нь /
- болон /usr санг ердөө л зөвхөн уншихаар холбох явдал
- юм. Хамгаалах зүйлдээ хэт ширүүн байх нь булаан эзлэлтийн бүх чухал илрүүлэлтийг
- бас болиулж болохыг санахад илүүдэхгүй.
+ түвшинд ядаж аюулгүйн түвшин 1-д ажиллуулах хэрэгтэй.
+
+ Цөмийн аюулгүй байдлын түвшинг янз бүрийн аргаар тохируулж болно.
+ Ажиллаж байгаа цөмийн аюулгүй байдлын түвшинг нэмэгдүүлэх хялбар алга бол
+ цөмийн kern.securelevel хувьсагчийг
+ sysctl ашиглан өөрчлөх явдал юм:
+
+ &prompt.root; sysctl kern.securelevel=1
+
+ Анхдагчаар &os; цөм аюулгүй байдлын -1 түвшинтэй ачаалдаг. Аюулгүй
+ байдлын түвшинг администратор эсвэл эхлүүлэх скриптүүд дэх тохиргооноос болоод
+ &man.init.8;-ээр өөрчлөөгүй л бол -1 хэвээр байх болно.
+ /etc/rc.conf файлд kern_securelevel_enable
+ хувьсагчийг YES ба kern_securelevel хувьсагчийн
+ утгыг аюулгүй байдлын хүссэн түвшин рүүгээ болгон тохируулж системийг эхлүүлэх
+ үед аюулгүй байдлын түвшинг нэмэгдүүлж болно.
+
+ Эхлүүлэх скриптүүд дөнгөж дуусаад байх үед &os; системийн аюулгүй
+ байдлын анхдагч түвшин -1 байдаг. Үүнийг insecure mode
+ буюу аюулгүй байдлыг хангаагүй горим
гэдэг бөгөөд учир нь
+ хувиршгүй байлын тугуудыг болиулах, бүх төхөөрөмжөөс уншиж эсвэл тэдгээр рүү
+ бичих гэх зэргийг хориогүй байдаг.
+
+ Аюулгүй байдлын түвшинг 1 эсвэл илүү өндөр утгаар тохируулсны дараа
+ зөвхөн нэмэх болон хувиршгүй файлууд идэвхжиж тэдгээрийг болиулах боломжгүй
+ болон түүхийн төхөөрөмжүүдэд хандахыг хориглодог. Илүү өндөр түвшингүүд
+ бүр илүү олон үйлдлүүдийг хязгаарладаг. Төрөл бүрийн аюулгүй байдлын түвшнүүдийн
+ үйлчилгээний талаарх дэлгэрэнгүй тайлбарыг &man.security.7; гарын авлагын
+ хуудсыг уншина уу (&os; 7.0-с хуучин хувилбаруудын хувьд &man.init.8; гарын
+ авлагын хуудсыг уншина уу).
+
+
+ Аюулгүйн түвшинг 1 эсвэл илүү өндөр түвшнээр дээшлүүлэх нь X11
+ (/dev/io руу хандах хандалт хаалттай байна) эсвэл
+ &os;-ийн бүтээлтийг эхээс суулгах (процессын installworld
+ хэсэг зарим файлуудын зөвхөн нэмэгдэх болон хувиршгүй тугуудыг түр зуур
+ өөрчлөхийг шаарддаг) болон бусад цөөн тохиолдлуудын хувьд асуудлууд гаргаж
+ болох юм. Заримдаа, жишээ нь X11-ийн хувьд ачаалах явцад &man.xdm.1;-ийг
+ нэлээн эрт аюулгүйн түвшин бага байгаа үед нь ажиллуулж энэ асуудлыг тойрон
+ гарах боломжтой байж болох юм. Үүнтэй адил тойрон гарах арга замууд нь бүх
+ аюулгүй байдлын түвшингүүд эсвэл тэдгээрийн мөрдөж шаарддаг боломжит бүх
+ хязгаарлалтуудын хувьд боломжтой биш байж болох юм. Урьдчилаад бага зэрэг
+ төлөвлөх нь зүйтэй байдаг. Аюулгүйн түвшин бүр системийн хэрэглээг нэлээн
+ багасгах боломжтой байдаг учир тэдгээртэй хамааралтай хязгаарлалтуудыг
+ ойлгох нь чухал юм. Энэ нь бас анхдагч тохиргоог сонгохыг илүү хялбар болгож
+ санамсаргүй явдлаас урьдчилан сэргийлэх болно.
+
+
+ Хэрэв цөмийн аюулгүйн түвшин 1 эсвэл түүнээс илүү утгаар дээшлүүлэгдсэн
+ бол schg тугийг чухал эхлүүлэх хоёртын файлууд, сангууд
+ болон скрипт файлууд (өөрөөр хэлбэл аюулгүйн түвшин тохируулагдах хүртэлх ажиллах
+ бүх файлууд) дээр тохируулах нь ашигтай байж болох юм. Энэ нь хэтэрхий хийгдэж
+ байж болох бөгөөд аюулгүйн өндөр түвшинд ажиллаж байхад системийг шинэчлэх үйл
+ явцыг илүү хэцүү болгодог. Арай бага хязгаарлалттай өөр нэг боломж нь
+ системийг илүү өндөр аюулгүйн түвшинд ажиллуулж гэхдээ schg
+ тугийг системийн файл болон сан бүр дээр тохируулахгүй байх явдал юм.
+ Өөр нэг боломж нь / болон /usr
+ санг зөвхөн уншигдахаар холбох явдал юм. Юу зөвшөөрөгдсөн байх дээр хэтэрхий
+ чанга байх нь халдлага илрүүлэлтийн бүх чухал зүйлсийг хязгаарлаж болох юм.
Файлын бүрэн бүтэн байдлыг шалгах нь: Хоёртын файлууд, Тохиргооны файлууд,
гэх мэт.
Тэр мөч ирэхэд, та зөвхөн системийн гол тохиргоо болон хяналтын файлуудаа
ая тухын хүчин зүйл урьтахаас хамаагүй өмнө хамгаалж чадна.
Жишээ нь chflags тушаал ашиглан
/ болон /usr
сангууд дахь ихэнх файлуудад schg битийг тохируулах нь
магадгүй үр ашиггүй байж болох бөгөөд учир нь ингэснээр файлуудыг хамгаалахын
хажуугаар бас илрүүлэх цонхыг хаадаг юм. Таны аюулгүй байдлын сонгины
сүүлийн давхарга нь илрүүлэлт бөгөөд энэ нь хамгийн чухал юм. Хэрэв та боломжит
халдагчдыг илрүүлж чадахгүй л бол аюулгүй байдлын бусад үлдсэн асуудлуудын талаар
бодоод ч бараг хэрэггүй юм (эсвэл бүр дэмий юм, аюулгүй байдлыг танд буруу ойлгуулахад
хүргэдэг). Сонгины ажлын хагас нь халдагчийг үйлдэл дээр нь
барихын тулд түүнийг зогсоохын оронд харин удаашруулах явдал юм.
Халдлагыг илрүүлэх хамгийн сайн арга бол өөрчлөгдсөн, алга болсон, эсвэл
гэнэтийн файлуудыг хайх явдал юм. Өөрчлөгдсөн файлуудыг хайх хамгийн сайн арга
бол тэдгээрийг өөр (ихэвчлэн төвлөрсөн) хязгаарлагдмал хандалттай системээс хайх
явдал юм. Өөрийн аюулгүй байдлын скриптийг нэмэлт аюулгүй байдал хангасан
хязгаарлагдмал хандалттай систем дээр бичих нь тэдгээрийг боломжит халдагчдад
бараг харагдуулдаггүй бөгөөд энэ нь чухал юм. Давуу талыг хамгийн ихээр авахын
тулд ерөнхийдөө хязгаарлагдмал хандалттай хайрцагт бусад машинуудад хандах
тэр ач холбогдолтой хандалтыг өгөх хэрэгтэй. Үүнийг ихэвчлэн бусад машинуудын зөвхөн
унших NFS экспортыг хязгаарлагдмал хандалттай хайрцагт өгөх эсвэл ssh түлхүүр
хослолыг тохируулж хязгаарлагдмал хандалттай хайрцгийг бусад машинууд уруу ssh
хийхийг зөвшөөрөх замаар хийдэг. Өөрийн сүлжээний урсгалыг тооцохгүй юм бол NFS нь
хамгийн харагддаггүй арга юм — энэ нь клиент хайрцаг бүр дэх файлын
системүүдийг монитор хийхийг танд зөвшөөрч бараг л илэрдэггүй. Хэрэв таны
хязгаарлагдмал хандалттай сервер нь клиент хайрцагнууд уруу hub буюу салаалагч эсвэл
чиглүүлэлтийн хэд хэдэн давхаргаар дамжин холбогдсон бол NFS арга нь хэтэрхий
аюултай (сүлжээний хувьд) байж болох бөгөөд ssh-ийг ашиглах нь түүний гаргадаг
аудит мөрийн замуудтай байсан ч гэсэн магадгүй илүү сонголт байж болох юм.
Монитор хийгдэх клиент систем уруу хандахад хамгийн багаар бодоход унших эрхийг
та хязгаарлагдмал хандалттай хайрцагт өгсний дараа яг мониторыг хийхдээ скрипт бичих
хэрэгтэй. Өгөгдсөн NFS холболтод &man.find.1; болон &man.md5.1; зэрэг
энгийн системийн хэрэгслүүд ашиглан та скриптүүд бичиж болно. Клиент хайрцгийн
файлуудад өдөрт нэг удаа физикээр md5 хийж /etc болон
/usr/local/etc сангууд дахь хяналтын файлуудыг
бүр илүү давтамжтайгаар шалгаж байх нь зүйтэй юм. Хязгаарлагдмал хандалттай
машины зөв гэж тооцсон md5 мэдээлэлтэй харьцуулахад тарахгүй файлууд олдвол
сисадминд үүнийг очиж шалгахыг хашгиран мэдээлэх ёстой. Аюулгүй байдлын сайн
скрипт нь тохирохгүй suid хоёртын файлууд болон / болон
/usr зэрэг системийн хуваалтууд дээрх шинээр үүссэн
эсвэл устгагдсан файлуудыг бас шалгадаг.
NFS биш ssh-ийг ашиглаж байх үед аюулгүй байдлыг скрипт бичих нь бүр илүү хэцүү
байдаг. Та скриптүүдийг харагдуулж ажиллуулахын тулд тэдгээрийг клиент хайрцаг уруу үндсэндээ
scp хийх хэрэгтэй бөгөөд аюулгүй байдлаа бодох юм бол
та тэдгээр скриптүүдийн ашигладаг хоёртын файлуудыг (find гэх зэрэг) бас
scp хийх хэрэгтэй юм.
Клиент хайрцаг дээрх ssh клиент аль хэдийн
эвдэгдсэн байж болох юм. Аюултай холболтоор ажиллаж байгаа бол ssh-г ашиглах нь
шаардлагатай байж болох боловч бас түүнтэй ажиллахад бүр илүү хэцүү байдаг юм.
Аюулгүй байдлын сайн скрипт нь
.rhosts, .shosts,
.ssh/authorized_keys гэх зэрэг
MD5 шалгалтын хүрээний гадуур байх хэрэглэгч болон
staff-ийн гишүүдийн хандалтын тохиргооны файлууд дахь өөрчлөлтүүдийг бас
шалгадаг.
Хэрэв та асар их хэрэглэгчийн дискний зайтай бол тэдгээр хуваалтууд
дээр байгаа файл бүр дээр ажиллахад хэт удаж болох юм. Энэ тохиолдолд suid
хоёртын файлуудыг хаах холболтын тугуудыг зааж өгөх нь зүйтэй юм.
nosuid нь таны хайж байгаа тэр тохируулга юм.
Энэ давхаргын зорилго нь эвдлэн оролтын оролдлогуудыг амжилттай эсвэл
амжилтгүй болсноос үл хамааран илрүүлэх явдал учраас ямар ч гэсэн ядаж
долоо хоногт нэг удаа та тэдгээр файлуудыг магадгүй шалгаж байх
хэрэгтэй юм.
Процессийн бүртгэл хийх нь (&man.accton.8;-г үзнэ үү) эвдлэн оролтын
дараах үнэлэх арга замууд болон тусалж болох харьцангуй бага ачаалал бүхий
үйлдлийн системийн боломж юм. Энэ нь эвдлэн орсны дараа файлыг хөндөөгүй хэвээр
гэж үзэн халдагч систем уруу хэрхэн эвдлэн орсныг мөрдөхөд ялангуяа ашигтай
байдаг.
Эцэст нь аюулгүй байдлын скриптүүд нь бүртгэлийн файлуудыг процесс хийх ёстой
бөгөөд бүртгэлүүд өөрсдөө аль болох аюулгүй байдлаар үүсгэгдэх ёстой бөгөөд
алсын syslog нь их ашигтай байж болох юм. Халдагч өөрийн мөрийг арилгахыг
оролдох бөгөөд эхний эвдлэн оролтын арга болон хугацааг мөрдөхөд сисадмины хувьд
бүртгэлийн файлууд нь маш чухал байдаг юм. Бүртгэлийн файлуудын байнгын бичлэгийг
хадгалах нэг арга нь системийн консолыг сериал порт уруу ажиллуулж консолуудыг
хянаж аюулгүй машин дээр мэдээллийг цуглуулах явдал юм.
Параной буюу хэт зовнил
Бага зэргийн хэт зовнил буруудахгүй. Дүрэм болгож тав тухтай байдлыг
алдагдуулдаггүй дурын тооны аюулгүй байдлын боломжуудыг сисадмин нэмж болох бөгөөд
зарим анхаарлыг бодолцон тав тухтай байдалд нөлөөлөх
аюулгүй байдлын боломжуудыг бас нэмж болох юм. Бүр илүү чухал нь аюулгүй
байдлын администратор үүнийг бага зэрэг хольж хэрэглэж болно — хэрэв та энэ
баримтад дурдсан заавруудыг үгчлэн ашиглавал энэ баримтыг уншсан ирээдүйн халдагчид
та өөрийн арга замуудыг заан өгч байна гэсэн үг юм.
Үйлчилгээг Зогсоох Халдлагууд
Үйлчилгээг Зогсоох (DoS)
Энэ хэсэг нь Үйлчилгээг Зогсоох халдлагуудыг хамарна. DoS халдлага нь
ихэвчлэн пакетийн халдлага байдаг. Таны сүлжээг дүүргэж байгаа орчин үеийн
хууран мэхэлсэн пакетийн халдлагуудын эсрэг нэг их юм хийж чадахгүй ч гэсэн
халдлагууд таны серверүүдийг унагахгүйн тулд та ерөнхийдөө хохирлыг
хязгаарлаж болно:
Серверийн fork хийлтийг хязгаарлах.
Springboard буюу бусад халдлагуудыг хязгаарлах (ICMP хариу халдлагууд, ping
цацалт, гэх мэт.).
Цөмийн чиглүүлэлтийн кэшийг хэт ачаалах.
Нийтлэг DoS халдлагын дүр зураг бол fork хийгдэж байгаа серверт
халдаж түүнээр асар их хүүхэд процесс үүсгүүлж эцсийн эцэст хост системийн
хувьд санах ой, файлын тодорхойлогчууд гэх мэтүүд дуусч зогсоход
хүргэдэг. inetd (&man.inetd.8;-г
үзнэ үү) нь энэ төрлийн халдлагыг хязгаарлах хэд хэдэн тохируулгатай.
Машиныг зогсоохоос хамгаалах боломжтой боловч ерөнхийдөө үйлчилгээг
халдлагад өртүүлэхгүй байх боломжгүйг энд тэмдэглэх нь зүйтэй юм.
inetd гарын авлагын хуудсыг
анхааралтай уншиж , ,
болон тохируулгуудад ялангуяа анхаарлаа
хандуулаарай. Хууран мэхэлсэн IP халдлагууд нь
inetd дахь
тохируулгыг хуурах учраас ихэвчлэн тохируулгуудын
хослолыг ашиглах шаардлагатай. Зарим дан серверүүд өөрийн
fork хийгдэхийг хязгаарлах параметрүүдтэй байдаг.
Sendmail нь
тохируулгатай байдаг бөгөөд
энэ нь Sendmail-ийг ачаалал хязгаарлах тохируулгатай ажиллуулж ачааллын
хоцрогдол үүсгэснээс хавьгүй илүүтэйгээр ажилладаг. Та
Sendmail-г ажиллуулахдаа
хүссэн ачааллыг даахаар гэхдээ компьютерийг унагахаар их хэмжээний тоогоор
Sendmail-үүдийг ажиллуулах биш түүнээс
багаар MaxDaemonChildren параметрийг
хангалттай өндрөөр тавьж өгөх хэрэгтэй. Мөн sendmail-ийг дарааллын
горимоор () ажиллуулах
болон дэмонг (sendmail -bd) дараалалтай
(sendmail -q15m) ажиллуулдгаас тусад нь ажиллуулах нь
чухал юм. Хэрэв та шууд илгээх горимыг хүсэж байгаа бол та дарааллыг
зэргээр бүр бага интервалаар ажиллуулах боломжтой
боловч MaxDaemonChildren тохируулгыг боломжийн
утгаар хоорондоо холбоотой амжилтгүйтлүүдээс sendmail-ийг хамгаалахын
тулд зааж өгсөн эсэхээ шалгаарай.
Syslogd-д шууд халдаж болох учраас аль болох
тохируулгыг эсвэл тохируулгыг ашиглахыг
танд зөвлөдөг.
Шууд халдлага хийгдэж болох TCP Wrapper-ийн
буцах identd зэрэг буцан холбогддог үйлчилгээнүүдийн хувьд та маш хянамгай байх
хэрэгтэй. Ийм учраас та TCP Wrapper-ийн
буцах identd боломжийг ерөнхийдөө ашиглах хэрэггүй юм.
Та өөрийн захын чиглүүлэгчүүд дээрээ дотоод үйлчилгээнүүд уруугаа
гаднаас хандуулахгүй болгож галт ханаар хамгаалах нь зүйтэй юм.
Үүний цаадах санаа нь гаднаас ирж болзошгүй сүлжээ дүүргэх халдлагаас өөрийн LAN-г
хамгаалах явдал бөгөөд сүлжээн дээр тулгуурласан root
эрхийг буулгахаас дотоод үйлчилгээнүүдийг хамгаалах зүйлс тийм их биш юм.
exclusive буюу хамааруулаагүй галт ханыг үргэлж тохируулах хэрэгтэй, өөрөөр хэлбэл
A, B, C, D болон M-Z портуудаас бусад
бүгдийг галт ханаар хамгаалах хэрэгтэй
. Ингэснээр та
named (хэрэв та бүсийн хувьд анхдагч бол),
ntalkd,
sendmail болон бусад Интернэтээс хандах
үйлчилгээнүүд зэрэг зарим нэг тусгай үйлчилгээнүүдийн портуудаас бусад бүх бага
дугаарын портуудыг галт ханаар хамгаалж чадах юм. Хэрэв та галт ханыг өөр
аргаар — inclusive буюу хамааруулсан эсвэл зөвшөөрсөн галт хана маягаар
тохируулахыг оролдвол хэд хэдэн үйлчилгээнүүдийг хаахаа
мартаж магадгүй юм, эсвэл та шинэ дотоод үйлчилгээ нэмээд галт ханаа шинэчлэхээ
мартаж болох юм. Та галт хана дээр зөвшөөрсөнтэй адил үйлдлийг нэвтрүүлэхийн
тулд бага дугаарын портуудыг нээлгүйгээр өндөр дугаарын портуудыг онгойлгож
болох юм. Мөн &os; нь динамик холболтод хэрэглэгддэг портуудыг
sysctl-ийн төрөл бүрийн
net.inet.ip.portrange хувьсагчуудаар
(sysctl -a | fgrep portrange)
хянах боломжийг танд олгодгийг бас тэмдэглэх нь зүйтэй юм. Энэ нь бас таны
галт ханын тохиргооны төвөгтэй байдлыг амарчилдаг юм. Жишээ нь
та ердийн 4000-аас 5000 хүртэлх портууд болон 49152-оос 65535 хүртэлх
өндөр дугаарын портуудыг ашигладаг бол 4000-аас бага бүгдийг
өөрийн галт хана дээр хаах хэрэгтэй (мэдээж Интернэтээс ханддаг хэдэн тусгай портуудаас
бусад).
Өөр нийтлэг DoS халдлагуудын нэг нь springboard халдлага юм
— сервер, дотоод сүлжээ эсвэл бусад машиныг хариу үйлдэл хийхийг нь
ихэсгэж хэт ачаалахад хүргэдэг халдлага юм. Ийм маягийн хамгийн нийтлэг
халдлага нь ICMP ping broadcast буюу цацалт
юм. Халдагч таны LAN-ий цацах хаяг уруу илгээсэн ping пакетийнхаа
эхлэл IP хаягийг халдахыг хүсэж байгаа машиныхаа IP хаягаар сольж хуурдаг.
Хэрэв таны захын чиглүүлэгчүүд цацах хаяг уруу илгээх ping пакетуудыг
зогсоохоор тохируулагдаагүй бол таны LAN хангалттай хариу үүсгэн хууран мэхэлсэн
эхлэл хаяг уруу илгээж, ялангуяа халдагч хэдэн арван цацах хаягууд уруу өөр өөр
хэдэн арван сүлжээнүүдээр дамжин энэ башир аргаа ашигласан үед, хохирогчийг
дүүргэдэг. 120 мегабайтаас илүү хэмжээний цацах халдлага одоогоор
хэмжигдээд байна. Энэ төрлийн хоёр дахь нийтлэг халдлага нь ICMP-ийн алдаа
тайлагнах системийн эсрэг халдлага юм. ICMP алдааны мэдэгдэл үүсгэдэг
пакетуудыг бүтээж халдагч серверийн орж ирж байгаа сүлжээг дүүргэж ингэснээр
серверийг өөрийн гарах сүлжээг ICMP хариунуудаар дүүргэхэд хүргэдэг.
Энэ төрлийн халдлага нь ялангуяа хэрэв сервер үүсгэж байгаа ICMP хариунуудаа
хангалттай хурднаар шавхан гаргаж чадахгүй байгаа бол серверийг санах ойгүй болгож
сүйрүүлж бас болох юм. sysctl-ийн
net.inet.icmp.icmplim хувьсагчийг ашиглан
эдгээр халдлагуудыг хязгаарлах хэрэгтэй. Springboard төрлийн халдлагуудын
сүүлийн гол ангилал нь udp цуурай үйлчилгээ зэрэг зарим дотоод
inetd үйлчилгээнүүдтэй холбоотой юм.
Халдагч UDP пакетийг хууран мэхэлж A болон B сервер нь хоёулаа таны LAN-д байгаа
тийм A серверийн цуурай порт дээрх эхлэл хаягаар болон төгсгөл хаягийг B серверийн
цуурай порт дээрх хаягаар сольдог. Уг хоёр сервер дараа нь энэ ганц пакетийг
хоорондоо шидэлцдэг. Эдгээр серверүүд болон тэдгээрийн LAN-г энэ маягаар
халдагч хэдхэн пакетуудыг хатган оруулан хэт ачаалж чаддаг.
Үүнтэй адил асуудлууд дотоод chargen портод
бас байдаг. Чадварлаг сисадмин эдгээр бүх дотоод inetd тест үйлчилгээнүүдийг
хаадаг.
Хууран мэхэлсэн пакетийн халдлагуудыг цөмийн чиглүүлэлтийн кэшийг хэт ачаалахад
хэрэглэж болдог. net.inet.ip.rtexpire,
rtminexpire, болон rtmaxcache
sysctl параметрүүдийг үзнэ үү. Дурын эхлэл
IP хаягийг ашигласан хууран мэхэлсэн пакетийн халдлага нь чиглүүлэлтийн хүснэгтэд түр зуур
кэш хийгдсэн чиглүүлэлтийг цөмөөр үүсгүүлэхэд хүргэдэг бөгөөд энэ нь
netstat -rna | fgrep W3 тушаалаар харагддаг.
Эдгээр чиглүүлэлтүүд нь ихэвчлэн 1600 секунд орчим хугацааны дотор дуусдаг.
Хэрэв цөм кэш хийгдсэн чиглүүлэлтийн хүснэгт хэтэрхий том болсныг илрүүлэх юм бол
rtexpire динамикаар багасгадаг боловч
rtminexpire-с бага болтол хэзээ ч багасгадаггүй.
Хоёр асуудал байдаг:
Бага ачаалагдсан сервер гэнэт халдлагад өртөхөд цөм хангалттай хурдан
хариу үйлдэл хийдэггүй.
rtminexpire хувьсагч нь
үргэлжилсэн халдлагыг цөм дааж чадахаар хангалттай бага байдаггүй.
Хэрэв таны серверүүд Интернэтэд T3 эсвэл илүү хурдаар холбогдсон бол
&man.sysctl.8;-оор
rtexpire болон rtminexpire
хувьсагчуудыг хоёуланг гараар дарж бичихдээ хянамгай байх хэрэгтэй.
Аль ч параметрийг (машиныг сүйрүүлэхийг та хүсээгүй л бол) хэзээ ч битгий
0 болгоорой. Эдгээр параметрүүдийг хоёуланг нь 2 секунд болгох нь
чиглүүлэлтийн хүснэгтийг халдлагаас хамгаалахад хангалттай байх ёстой.
Kerberos болон SSH-тэй холбоотой хандалтын асуудлууд
ssh
KerberosIV
Хэрэв та Kerberos болон ssh-г хоёуланг ашиглахаар бол цөөн хэдэн асуудлуудыг
дурдах хэрэгтэй. Kerberos 5 нь жинхэнийг шалгах маш сайн нэвтрэлтийн протокол
боловч түүнийг ашигласан telnet болон
rlogin-д байдаг алдаанууд нь энэ хоёр програмыг
хоёртын урсгалтай ажиллахад тохиромжгүй болгодог. Мөн
тохируулгыг ашиглахгүй л бол анхдагчаар Kerberos нь сессийг шифрлэдэггүй.
ssh нь бүгдийг шифрлэдэг.
Ssh нь анхдагчаар шифрлэсэн түлхүүрүүдээ дамжуулдгаас бусад бүх л талаараа зэгсэн
сайн ажилладаг. Энэ нь юу гэсэн үг вэ гэхээр та хэрэв системийн бусад хэсэгт хандах боломж
олгодог түлхүүрүүд бүхий аюулгүй ажлын компьютертай бөгөөд та аюултай машин уруу ssh
хийвэл таны түлхүүрүүд ашиглагдах боломжтой гэсэн үг юм. Яг түлхүүрүүд нь өөрсдөө
ил гардаггүй боловч ssh нь таны нэвтэрсэн хугацааны туршид зориулж дамжуулах порт
суулгадаг бөгөөд хэрэв халдагч аюулгүй машин дээрх root-г
эвдсэн бол тэрхүү портыг таны түлхүүрүүдийг ашиглахын тулд хэрэглэн таны түлхүүрээр
тайлагдах өөр бусад машинуудад хандах боломжийг олж авах боломжтой юм.
Бид staff нэвтрэлтүүдийн хувьд аль болох ssh-г Kerberos-той цуг ашиглахыг
зөвлөдөг. Ssh нь Kerberos-ийн дэмжлэгтэй
эмхэтгэгдэж болдог. Энэ нь ил гарсан байж болзошгүй ssh түлхүүрүүдэд
найдах таны найдварыг багасгахын хамт нууц үгүүдийг Kerberos-оор хамгаалдаг.
Ssh түлхүүрүүд нь аюулгүй машинуудын автоматчилагдсан ажлуудад (Kerberos-оор
хийхэд таарахгүй) зөвхөн хэрэглэгдэх ёстой. Мөн бид таныг ssh-ийн тохиргоондоо
key-forwarding буюу түлхүүр дамжуулалтыг болиулах эсвэл ssh-ийн
authorized_keys файлдаа зөвхөн тусгайлсан
машинуудаас нэвтрэхэд түлхүүрийг ашиглаж болохоор болгож зөвшөөрдөг
from=IP/DOMAIN тохируулгыг ашиглахыг зөвлөдөг.
Билл
Свингл
Хэсгүүдийг дахин бичиж шинэчилсэн
DES, MD5, болон Crypt
аюулгүй байдал
crypt
crypt
Blowfish
DES
MD5
&unix; систем дээрх хэрэглэгч бүрийн хувьд нууц үг бүртгэлтэй нь холбоотой
байдаг. Мэдээж эдгээр нууц үгүүд нь зөвхөн хэрэглэгч ба үйлдлийн системд
мэдэгдэж байх ёстой. Эдгээр нууц үгүүдийг нууцлаг байлгахын тулд тэдгээрийг
one-way hash буюу үл буцах хэш
гэгддэг шифрлэхэд амархан
боловч буцааж болдоггүй аргаар шифрлэдэг. Өөрөөр хэлбэл хормын өмнө
мэдээж гэж хэлсэн бидний хэлсэн үг яг жинхэнэдээ үнэн биш юм: үйлдлийн систем
өөрөө нууц үгийг жинхэнэдээ мэддэггүй.
Энэ нь зөвхөн нууц үгийн шифрлэсэн хэлбэрийг
мэддэг. plain-text буюу ердийн уншигдах текст
хэлбэрийн нууц үгийг авах цорын ганц арга нь боломжит нууц үгүүдийн орон зайгаас
балмадаар хүчлэн хайх явдал юм.
Харамсалтай нь &unix; бий болсон тэр үед нууц үгийг аюулгүй аргаар
шифрлэх цорын ганц арга нь DES, Data Encryption Standard буюу
Өгөгдөл Шифрлэх Стандарт дээр үндэслэсэн байлаа. Энэ нь АНУ-д оршин
сууж байсан хэрэглэгчдийн хувьд тийм ч асуудалтай биш байсан юм, гэхдээ
DES-ийн эх код АНУ-аас гадагшаа экспорт хийгдэж болохгүй байсан
учир &os; нь АНУ-ын хуулийг дагахын хажуугаар DES-ийг ашигласан хэвээр
байсан бусад бүх &unix; төрлүүдтэй нийцтэй байх арга замыг хайж олоход
хүрсэн юм.
Үүний шийдэл нь АНУ-ын хэрэглэгчид DES сангуудыг суулгаж ашиглах боломжтой
мөртлөө олон улсын хэрэглэгчид гадагш экспорт хийгдэж болох шифрлэх аргатай бас
байхаар шифрийн сангуудыг хуваасан явдал байлаа. Ингэж &os; нь
MD5-ийг өөрийн анхдагч шифрлэх аргаа болгон ашиглах болсон юм. MD5 нь
DES-ээс илүү аюулгүй нууцлаг гэгддэг бөгөөд DES-ийг суулгах нь үндсэндээ
нийцтэй байх шалтгаануудын улмаас зориулагдсан юм.
Өөрийн Crypt арга замыг таних нь
Одоогоор шифрийн сан DES, MD5 болон Blowfish хэш функцуудыг дэмждэг.
Анхдагчаар &os; нь MD5 ашиглан нууц үгүүдийг шифрлэдэг.
&os; аль шифрлэх аргыг тохируулж ашиглаж байгааг мэдэх хялбар байдаг.
/etc/master.passwd файл дахь шифрлэсэн
нууц үгийг шалгах нь нэг арга юм. MD5 хэшээр шифрлэгдсэн нууц үгүүд нь
DES-р шифрлэгдсэнийгээ бодох юм бол урт бөгөөд $1$
тэмдэгтээр бас эхэлдэг. $2a$
тэмдэгтээр эхэлсэн нууц үгүүд Blowfish хэш функцаар шифрлэгдсэн байдаг.
DES мөр нь ямар нэг тусгайлан таньж болох шинж тэмдэггүй байдаг боловч
тэд MD5 нууц үгүүдээс богино бөгөөд $
тэмдэгт ордоггүй 64 тэмдэгттэй цагаан толгойгоор кодчилогддог, тиймээс
долларын тэмдэгтээр эхлээгүй харьцангуй богино мөр ихэвчлэн DES нууц үг
байдаг.
Шинэ нууц үгүүдэд ашиглагдах нууц үгийн хэлбэр нь нэвтрэлтийн
passwd_format боломжийн тусламжтай
/etc/login.conf файлд хянагддаг бөгөөд
энэ хувьсагч нь des, md5
эсвэл blf утгуудыг авдаг. Нэвтрэлтийн
боломжуудын талаар дэлгэрэнгүй мэдээллийг &man.login.conf.5;
гарын авлагын хуудаснаас үзнэ үү.
Нэг удаагийн нууц үгүүд
нэг удаагийн нууц үгүүд
аюулгүй байдал
нэг удаагийн нууц үгүүд
Анхдагчаар &os; OPIE (One-time Passwords
In Everything буюу Бүхэнд зориулсан нэг удаагийн нууц үгүүд) дэмжлэгтэй
байдаг бөгөөд энэ нь MD5 хэшийг анхдагчаар ашигладаг.
Бид гурван өөр төрлийн нууц үгийг доор хэлэлцэх болно. Эхнийх нь таны ердийн
&unix; загварын эсвэл Kerberos нууц үг юм; бид үүнийг &unix; нууц үг
гэж нэрлэх болно. Хоёр дахь төрөл нь OPIE &man.opiekey.1; програмаар
үүсгэгдэж &man.opiepasswd.1; програм болон нэвтрэлт хүлээх мөр хүлээн авах
нэг удаагийн нууц үг юм; бид үүнийг нэг удаагийн нууц үг
гэх болно.
Сүүлийн төрөл нууц үг бол opiekey програмд
(заримдаа opiepasswd програмууд) өгдөг
нууцлаг нууц үг бөгөөд үүнийг ашиглан дээрх програмууд нэг удаагийн нууц үг
үүсгэдэг; бид үүнийг нууцлаг нууц үг
гэх буюу эсвэл
зүгээр л шалгагдаагүй нууц үг
гэх болно.
Нууцлаг нууц үг нь таны &unix; нууц үгтэй ямар ч холбоогүй юм; тэдгээр нь
адил байж болох боловч ингэхийг зөвлөдөггүй. OPIE нууцлаг нууц үгүүд нь
хуучин &unix; нууц үгүүд шиг 8 тэмдэгтэд хязгаарлагддаггүй
&os; дээр стандарт нэвтрэх нууц үг уртаараа 128 тэмдэгт
хүртэл байж болдог. бөгөөд таны хүссэн хэмжээний
урттай байж болдог. Зургаа эсвэл долоон үг бүхий өгүүлбэрээс тогтох нууц үгүүд
нэлээн элбэг байдаг. Ихэнх хэсгийн хувьд OPIE систем &unix;-ийн нууц үгийн
системээс бүр мөсөн ангид ажилладаг.
Нууц үгээс гадна OPIE-д чухал өгөгдлийн өөр хоёр хэсэг байдаг. Нэг нь
seed буюу үр
эсвэл key буюу түлхүүр
гэгддэг
бөгөөд 2 үсэг болон таван тооноос тогтдог. Нөгөөдөх нь давталтын тоо
буюу 1-ээс 100 хүртэлх тоо юм. OPIE нэг удаагийн нууц үгийг үр болон нууцлаг
нууц үгийг нийлүүлэн MD5 хэшийг давталтын тоогоор ашиглан үүсгэж үр дүнг нь
зургаан богино Англи үг болгодог. Эдгээр зургаан Англи үг нь таны нэг удаагийн нууц
үг юм. Нэвтрэлт шалгах систем (үндсэндээ PAM) ашигласан хамгийн сүүлийн нэг удаагийн
нууц үгийг хадгалж байдаг бөгөөд хэрэглэгчийн өгсөн нууц үгийн хэш өмнөх нууц үгтэй таарч
байвал хэрэглэгчийг нэвтрүүлдэг. Үл буцах хэш ашиглагддаг болохоор хэрэв
амжилттайгаар ашиглагдсан нууц үгийг олж авсан бол дараа дараагийн нэг удаагийн
нууц үгүүдийг үүсгэх боломжгүй байдаг; хэрэглэгч болон нэвтрэлтийн програмыг хамгийн
сүүлийн хэлбэрт адилхан байлгаж байхын тулд давталтын тоо амжилттай нэвтрэлт хийгдэх бүрийн
дараа багасаж байдаг. Давталтын тоо 1 хүрэх үед OPIE дахин хийгдэх
хэрэгтэй болно.
Систем болгоны хувьд хэдэн програмууд байдаг бөгөөд тэдгээрийг бид энд
хэлэлцэх болно. opiekey програм давталтын
тоо, үр болон нууцлаг нууц үгийг хүлээн авч нэг удаагийн нууц үг эсвэл
нэг удаагийн нууц үгүүдийн үргэлжилсэн жагсаалтыг үүсгэдэг.
opiepasswd програмыг OPIE-г эхлүүлэх болон
нууц үг, давталтын тоо эсвэл үр өөрчлөхөд ашигладаг; энэ нь
нууцлаг нэвтрэх үгс аль эсвэл давталтын тоо, үр болон нэг удаагийн нууц үгийг
авдаг. opieinfo програм тохирох итгэмжлэлүүдийн
файлуудыг (/etc/opiekeys) шалгаж
ажиллуулсан хэрэглэгчийн одоогийн давталтын тоо болон үрийг дэлгэцэд
гаргадаг.
Бид дөрвөн өөр төрлийн үйлдлийн талаар хэлэлцэх болно. Эхнийх нь аюулгүй
холболтоор opiepasswd ашиглаж нэг удаагийн нууц үгүүдийг
эхний удаа тохируулах эсвэл өөрийн нууц үг эсвэл үрийг өөрчлөх үйлдэл юм.
Хоёр дахь үйлдэл нь opiepasswd-г аюултай холболтоор,
opiekey тушаалыг аюулгүй холболтоор ашиглаж
адил үйлдлийг хийх явдал юм. Гурав дахь нь opiekey-г
аюултай холболтоор ашиглан нэвтрэн орох үйлдэл юм. Дөрөв дэх нь
opiekey-г ашиглан хэд хэдэн түлхүүрүүд үүсгэх үйлдэл
бөгөөд гадагшаа аюулгүй холболтуудгүй газрууд уруу явахдаа тэдгээр түлхүүрүүдийг бичин авч
эсвэл хэвлэн аваад өөртөө авч явж болох юм.
Аюулгүй холболт эхлүүлэх
OPIE-г эхний удаа эхлүүлэхдээ opiepasswd
тушаалыг ажиллуул:
&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
Enter new secret pass phrase: эсвэл
Enter secret password: мөрүүд дээр та
нууц үг эсвэл өгүүлбэр оруулах ёстой. Энэ нь таны нэвтрэхдээ ашиглах
нууц үг биш гэдгийг санах хэрэгтэй, үүнийг ашиглаж таны нэг удаагийн
нэвтрэх түлхүүрийг үүсгэдэг. ID
мөр таны
тухайн үеийн параметрүүд болох таны нэвтрэх нэр, давталтын тоо болон
үрийг өгдөг. Нэвтрэн орох үед систем эдгээр параметрүүдийг санаж
танд тэдгээрийг санах шаардлагагүйгээр буцаан үзүүлдэг. Сүүлийн мөр нь
тэдгээр параметрүүд болон таны нууцлаг нууц үгт харгалзах нэг удаагийн
нууц үгийг өгдөг; хэрэв та нэн даруй дахин нэвтэрвэл энэ нэг удаагийн нууц үг
нь таны ашиглах тэр нууц үг юм.
Аюултай холболт эхлүүлэх
Өөрийн нууцлаг нууц үгийг аюултай холболтоор эхэлж өгөхдөө эсвэл
өөрчлөхдөө opiekey ажиллуулж болох тийм газар уруу
аюулгүй холболттой байж байх шаардлагатай; энэ нь таны итгэж байгаа машин
дээр бүрхүүлийн тушаал хүлээх мөр хэлбэрээр байж болно. Та бас давталтын тоог
(100 боломжийн утга байж болох юм) бодож өгөх хэрэгтэй бөгөөд та өөрөө үр
бодож олох эсвэл дурын үүсгэснийг ашиглах хэрэгтэй. Аюултай холболтоор
(таны эхлүүлж байгаа машин уруу) opiepasswd
тушаалыг ашигла:
&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Анхдагч үрийг хүлээж авах бол Return дар.
Дараа нь хандах нууц үгийг оруулахын өмнө аюулгүй холболт уруугаа
орж адил параметрүүдийг өгөөрэй:
&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Одоо аюултай холболт уруугаа шилжиж үүсгэсэн нэг удаагийн нууц үгээ
тохирох програм уруу хуулаарай.
Нэг удаагийн нууц үг ганцыг үүсгэх нь
OPIE-г эхлүүлэн тохируулж нэвтэрсний дараа танд иймэрхүү тушаал
хүлээх мөр харуулагдана:
&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password:
Энэ дашрамд тэмдэглэн хэлэхэд OPIE тушаал хүлээх мөрүүд ашигтай боломжтой
байдаг: хэрэв та нууц үг хүлээх мөр дээр Return
дарвал хүлээх мөр цуурайг идэвхжүүлж таны юу бичиж байгааг танд харуулдаг.
Та хэвлэсэн зүйлээсээ харж магадгүй нууц үгийг гараараа бичиж оруулахыг
оролдож байгаа бол энэ маш ашигтай байж болох юм.
MS-DOS
Windows
MacOS
Энэ үед нэвтрэлт хүлээх мөрөнд хариулахын тулд та өөрийн нэг удаагийн нууц үгийг
үүсгэх хэрэгтэй болно. Үүнийг opiekey тушаал итгэн ажиллуулж
чадах тийм систем дээрээ хийх хэрэгтэй. (DOS, &windows; болон &macos;-д
зориулсан эдгээрийн хувилбарууд байдаг) Эдгээрт давталтын тоо болон үр тушаалын
мөрийн тохируулга хэлбэрээр хэрэгтэй байдаг. Та нэвтрэн орж байгаа машиныхаа
нэвтрэлт хүлээх мөрөөс эдгээрийг шууд хуулан тавьж болох юм.
Итгэсэн систем дээрээ:
&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Одоо та өөрийн нэг удаагийн нууц үгтэй болсон болохоор нэвтрэлтээ
үргэлжлүүлж болно.
Нэг удаагийн нууц үг олныг үүсгэх нь
Заримдаа та итгэсэн машин эсвэл аюулгүй холболт уруу хандах боломжгүй
тийм газар очих хэрэгтэй болдог. Энэ тохиолдолд opiekey
тушаал ашиглаж хэд хэдэн нэг удаагийн нууц үгүүдийг урьдчилан үүсгэж хэвлэн
биедээ авч явах боломжтой юм. Жишээ нь:
&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <secret password>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHI
нь дараалсан таван түлхүүрийг үүсгэхийг,
нь сүүлийн давталтын тоог хэд байх ёстойг зааж өгч
байгаа юм. Эдгээр нь ашиглах бололцоотойг урвуу
дарааллаар дэлгэцэнд харуулдгийг тэмдэглэх нь зүйтэй. Хэрэв та хэт санаа
зовниж байгаа бол та үр дүнг гараар бичиж авахыг хүсэж болох юм;
эсвэл lpr уруу хуулан авч тавьж болох юм. Мөр бүр
давталтын тоо болон нэг удаагийн нууц үгийг харуулж байгааг анхаараарай;
та нууц үгүүдийг хэрэглэх бүртээ тэдгээрийг арилгаж энэ хэвлэсэн арга тань ашигтай
хэвээр болохыг мэдэж болох юм.
&unix; нууц үгүүдийг ашиглахыг хязгаарлах нь
OPIE нь &unix; нууц үгүүдийн ашиглалтыг нэвтрэлтийн сессийн IP хаяг дээр тулгуурлан
хязгаарлаж чаддаг. Тохирох файл нь /etc/opieaccess
бөгөөд энэ файл нь анхдагчаар байдаг. Энэ файлын талаар болон
үүнийг ашигласнаар та аюулгүй байдлын ямар зүйлсүүдийг бодолцож анхаарах ёстой талаар
дэлгэрэнгүй мэдээллийг &man.opieaccess.5;-с шалгана уу.
Энд жишээ opieaccess файл байна:
permit 192.168.0.0 255.255.0.0
Энэ мөр нь &unix; нууц үгүүдийг ямар ч үед ашиглахын тулд эхлэл IP хаягийг
(хууран мэхлэхэд хүрч болох тийм эмзэг) заагдсан утга болон багтай тааруулах
боломжийг хэрэглэгчдэд олгодог.
opieaccess дахь аль ч дүрэм таарахгүй байгаа
бол анхдагчаар OPIE биш нэвтрэлтүүдийг хааж үгүйсгэдэг.
Том
Рөүдс
Бичсэн
TCP Гүйцэтгэлийг хялбаршуулагчид
TCP Гүйцэтгэлийг хялбаршуулагчид
&man.inetd.8;-г мэддэг хэн бүхэн TCP Гүйцэтгэлийг хялбаршуулагчдын
талаар заримдаа сонссон байх. Гэхдээ цөөн хүмүүс энэ боломжийн
сүлжээний орчин дахь ашигтай талыг бүрэн ойлгодог юм шиг санагддаг.
Хүн бүхэн сүлжээний холболтууд зохицуулах галт хана суулгахыг хүсдэг
юм шиг санагддаг. Галт хана олон төрлийн хэрэглээтэй боловч
холболт үүсгэгч уруу текст илгээх зэрэг зарим зүйлсийг галт хана хийж
чаддаггүй. Энд дурдсан TCP Гүйцэтгэлийг хялбаршуулагчид энэ мэтийг болон
үүнээс илүүг хийдэг. Дараагийн хэдэн хэсэгт TCP Гүйцэтгэлийг хялбаршуулагчдын
олон боломжуудыг хэлэлцэх бөгөөд боломжтой үед нь жишээ тохиргооны
мөрийг үзүүлэх болно.
TCP Гүйцэтгэлийг хялбаршуулагчид програм хангамж нь
inetd-ийн чадваруудыг сервер бүрийн
хувьд түүний доор хянагдаж болохоор дэмжин өргөтгөдөг. Энэ аргыг ашиглан
бүртгэл хөтлөх дэмжлэг нэмэх, холболтууд уруу мэдэгдэл буцаах, дэмонд
зөвхөн дотоод холболтуудыг хүлээн авахыг зөвшөөрөх гэх мэт үйлдлүүдийг
хийх боломжтой. Эдгээр боломжуудын заримыг галт хана суулган тохируулж хийж
болох боловч энэ нь зөвхөн хамгаалалтын нэмэлт давхарга болохоос гадна
галт ханын үзүүлж чаддагаас илүү хяналтыг олгодог юм.
TCP Гүйцэтгэлийг хялбаршуулагчдын ийнхүү нэмэгдсэн
ажиллагаа нь сайн галт ханыг солихоор зүйл гэж ойлгогдох ёсгүй юм.
TCP Гүйцэтгэлийг хялбаршуулагчид нь галт хана
эсвэл өөр бусад аюулгүй байдлыг нэмэгдүүлэгч програмуудын хамтаар
ашиглагдаж системийн хувьд хамгаалалтын нэмэлт давхарга болон аятайхан
үйлчлэх боломжтой юм.
Энэ нь inetd-ийн тохиргооны өргөтгөл болохоор
энэхүү баримтыг уншигч таныг inetd тохиргоо
хэсгийг уншсан гэдэгт найдаж байна.
&man.inetd.8;-ээр ажиллуулагдсан програмууд яг жинхэнээрээ
дэмонууд
биш боловч тэдгээрийг уламжлалаар дэмонууд гэдэг.
Энэ ухагдахууныг бид энэ хэсэгт бас ашиглах болно.
Эхний тохиргоо
TCP Гүйцэтгэлийг хялбаршуулагчдыг &os;-д
ашиглахад байх цорын ганц шаардлага нь inetd серверийг
rc.conf файлаас
тохируулгатай ажиллуулсан эсэхийг шалгах явдал юм; энэ нь анхдагч тохиргоо
юм. Мэдээж /etc/hosts.allow файлын
зөв тохиргоо бас байгааг хүлээж байдаг боловч эдгээр тохиолдлуудад
&man.syslogd.8; системийн бүртгэлүүдэд мэдэгдлүүд шиддэг.
Бусад TCP Гүйцэтгэлийг хялбаршуулагчдын
шийдлүүдтэй харьцуулах юм бол hosts.deny
файлыг хэрэглэхээ больсон. Тохиргооны бүх сонголтууд
/etc/hosts.allow файлд байх шаардлагатай.
Хамгийн амархан тохиргоогоороо бол дэмоны холболтын бодлогууд
зөвшөөрөгдсөн эсвэл хаагдсаны аль нэгээр /etc/hosts.allow
файл дахь тохируулгуудаас хамааран тохируулагддаг. &os; дээрх анхдагч
тохиргоо нь inetd-ээр эхэлсэн дэмон бүр уруу хийгдэх
холболтыг зөвшөөрдөг. Үүнийг өөрчлөх талаар зөвхөн үндсэн тохиргооны тухай
дурдсаны дараа хэлэлцэх болно.
Үндсэн тохиргоо ихэвчлэн дэмон : хаяг : үйлдэл
хэлбэрийг авдаг. Энд байгаа дэмон нь
inetd-ийн эхлүүлсэн дэмоны нэр юм.
Хаяг нь зөв хостын нэр, address
хаяг эсвэл дөрвөлжин хаалтан ([ ]) доторх IPv6 хаяг байж болно.
action буюу үйлдлийн талбар нь allow буюу зөвшөөрөх
эсвэл deny буюу эрхийг хориглох эсвэл хандалтыг хаахын аль нэг байна.
Тохиргоо эхний тохирсон дүрэм журмын дагуу ажилладаг гэдгийг
санах хэрэгтэй, энэ нь тохирох дүрмийг тохиргооны файлаас өсөх дарааллаар
хайна гэсэн үг юм. Тохирох дүрэм олдвол тэр дүрэм ашиглагдаж хайх
процесс зогсоно.
Бусад хэд хэдэн тохируулгууд байдаг боловч тэдгээрийг энэ хэсгийн сүүлд
тайлбарлах болно. Хялбар тохиргооны мөр ганцхан тэр мэдээллийн дагуу амархнаар
хийгдэж болно. Жишээ нь
mail/qpopper дэмоноор дамжин
хийгдэж болох POP3 холболтуудыг зөвшөөрөхийн тулд
дараах мөрүүд hosts.allow файлд нэмж хийгдэх
хэрэгтэй:
# This line is required for POP3 connections:
qpopper : ALL : allow
Энэ мөрийг нэмснийхээ дараа inetd-г дахин эхлүүлэх
хэрэгтэй. Үүнийг &man.kill.1; тушаал эсвэл /etc/rc.d/inetd-г
restart параметртай ашиглан хийж болно.
Дэвшилтэт тохиргоо
TCP Гүйцэтгэлийг хялбаршуулагчид нь бас дэвшилтэт
тохируулгуудтай байдаг; тэдгээр нь холболтуудтай хэрхэн ажиллахыг илүүтэйгээр
хянах боломжийг олгодог. Зарим тохиолдолд тодорхой хостууд эсвэл дэмон
холболтууд уруу тайлбар буцаах нь зүйтэй санаа байж болох юм. Бусад
тохиолдолд магадгүй бүртгэлийн файл бичигдэх ёстой эсвэл цахим захидал
администратор уруу илгээгдэж болох юм. Бусад тохиолдлууд үйлчилгээг зөвхөн
дотоод холболтууддаа ашиглахыг шаардаж болох юм. Эдгээр нь бүгдээрээ
орлуулагддаг тэмдэгтүүд, өргөтгөх тэмдэгтүүд болон
гадаад тушаалыг ажиллуулах зэрэг тохиргооны сонголтуудын тусламжтай хийгдэх
боломжтой юм. Дараагийн хоёр хэсэгт эдгээр тохиолдлуудын талаар бичсэн
байгаа.
Гадаад тушаалууд
Холболтыг хааж түүнийг тогтоохыг оролдсон хүн уруу шалтгааныг нь
илгээх тохиолдол гарчээ гэж бодъё. Үүнийг яаж хийх вэ? Энэ үйлдлийг
тохируулга ашиглан хийх боломжтой.
Холболт тогтоохоор оролдоход тохируулга
бүрхүүлийн тушаал эсвэл скрипт ажилуулахаар дуудагддаг.
hosts.allow файлд үүний жишээ аль хэдийн
орсон байдаг:
# The rest of the daemons are protected.
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."
Энэ жишээ нь You are not allowed to use daemon
from hostname.
буюу
Та дэмоныг hostname-с
ашиглах зөвшөөрөлгүй.
гэсэн мэдэгдлийг хандалтын файлд урьдаар
тохируулагдаагүй дэмон бүрийн хувьд буцаадаг. Энэ нь тогтоогдсон холболт дөнгөж
салсны дараа холболтыг эхлүүлэгч уруу хариултыг буцааж илгээхэд маш их ашигтай
байдаг. Буцсан мэдэгдэл бүр " тэмдэгтүүд дотор
заавал байх шаардлагатай; энэ дүрмэнд ямар нэг
жич зөвшөөрөл байхгүй.
Хэрэв халдагч эсвэл бүлэг халдагчид эдгээр дэмонуудыг холболт хийх
хүсэлтээр цутгаж чадах юм бол серверийн эсрэг үйлчилгээг зогсоох халдлага явуулах
боломжтой байж болох юм.
Өөр нэг боломж нь эдгээр тохиолдлуудад
тохируулгыг ашиглах явдал юм. тохируулгын
нэгэн адил тохируулга нь холболтуудыг сохроор
хааж гадаад бүрхүүлийн тушаалууд эсвэл скриптүүдийг ажиллуулахад ашиглагдаж
болно. тохируулгаас ялгаатай тал нь
нь холболт тогтоосон хүн уруу хариулт буцааж
илгээдэггүй. Жишээ нь дараах тохиргооны мөр байжээ гэж бодъё:
# We do not allow connections from example.com:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: deny
Энэ нь *.example.com домэйноос
ирсэн бүх холболтын оролдлогуудаас татгалзахын зэрэгцээ хостын нэр, IP
хаяг болон тэдний хандалт хийхийг оролдсон дэмонг /var/log/connections.log
файл уруу бүртгэнэ.
Дээр тайлбарласан орлуулах тэмдэгтүүдээс гадна, өөрөөр хэлбэл
%a тэмдэгтээс гадна бусад цөөн хэдэн тэмдэгтүүд бас байдаг. Бүрэн жагсаалтыг
&man.hosts.access.5; гарын авлагын хуудаснаас үзнэ үү.
Орлуулагддаг тэмдэгтүүдийн тохиргоонууд
Энэ хүртэл ALL тохируулга бүх л жишээнүүдэд
ашиглагдлаа. Ажиллагааг арай цаашлуулж өргөтгөх бусад тохируулгууд
байдаг. Жишээ нь ALL нь дэмон, домэйн эсвэл
IP хаягийн аль нэгтэй тааруулах зорилгоор
ашиглагдаж болох юм. Өөр нэг орлуулагддаг тэмдэгт нь
IP хаягаа өөрчлөн хуурсан байж болох дурын хостыг
тааруулах PARANOID тохируулга юм. Өөрөөр хэлбэл
PARANOID буюу хэт зовнил нь
өөрийн хостын нэрээс өөр IP хаягтай машинаас
холболт хийгдэх бүр түүнд тохирох үйлдлийг тодорхойлоход ашиглагдаж
болох юм. Дараах жишээ энэ хэлэлцүүлэгт арай илүү ойлголт өгч магадгүй
юм:
# Block possibly spoofed requests to sendmail:
sendmail : PARANOID : deny
Энэ жишээн дээр sendmail уруу хийгдэж байгаа
өөрийнхөө хостын нэрээс өөр IP хаягтай холболтын бүх
хүсэлтүүдээс татгалзан хааж байна.
Хэрэв клиент эсвэл сервер эвдэрхий DNS
суулгацтай бол PARANOID орлуулагддаг тэмдэгтийг ашиглах нь серверүүдийг
ноцтойгоор зэрэмдэг болгож болох юм. Иймд администраторын зохион байгуулалт
болон хуваарилалт хийхийг зөвлөж байна.
Орлуулагддаг тэмдэгтүүдийн талаар болон тэдэнтэй холбоотой ажиллагааны
талаар дэлгэрэнгүйг &man.hosts.access.5; гарын авлагын хуудаснаас
үзээрэй.
Тусгай тохиргооны аль ч мөрүүдийн өмнө дээрх нь ажиллана, эхний тохиргооны
мөр hosts.allow файлд тайлбар болгон хаагдах
шаардлагатай. Үүнийг энэ хэсгийн эхэнд тэмдэглэж хэлсэн байгаа.
Марк
Мюррей
Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан
Марк
Дэйпоз
Хувь нэмэр болгон оруулсан
KerberosIV
Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн
тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм.
Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон
бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж
болохоор болсон.
Дараах заавруудыг &os;-тэй цуг түгээгддэг Kerberos-ийг хэрхэн тохируулах гарын авлага
болгон хэрэглэж болох юм. Гэхдээ та бүрэн тайлбарын талаар харгалзах гарын авлагын
хуудаснуудад хандаж үзэх шаардлагатай.
KerberosIV суулгах нь
MIT
KerberosIV
суулгах нь
Kerberos нь &os;-ийн нэмэлт бүрэлдэхүүн хэсэг юм. Энэ програм хангамжийг
суулгах хамгийн амархан арга нь &os; эхэлж суулгах үед sysinstall-д
krb4 эсвэл krb5 түгээлтийг сонгон
суулгах явдал юм. Энэ нь Kerberos-ийн eBones
(KerberosIV)
эсвэл Heimdal
(Kerberos5) шийдлүүдийг суулгах болно.
Эдгээр нь АНУ/Канадаас гадна хөгжүүлэгдсэн учраас АНУ-ын криптограф
код дээрх экспортын хязгаарлагдмал хяналтын үед бусад улсуудын системийн эзэмшигчдэд
ашиглагдах боломжтой болсон юм. Иймээс эдгээр шийдлүүд нь орсон байдаг.
Үүнээс гадна Kerberos-ийн MIT шийдэл портуудын цуглуулгын
security/krb5 санд байдаг.
Эхний мэдээллийн бааз үүсгэх
Энэ нь Kerberos сервер дээр зөвхөн хийгддэг. Эхлээд хуучин Kerberos мэдээллийн
баазууд байгаа эсэхийг шалгаарай. Та /etc/kerberosIV сан
уруу орж зөвхөн дараах файлууд байгааг шалгаарай:
&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realms
Хэрэв аль нэг нэмэлт файлууд (principal.*
эсвэл master_key зэрэг) байвал
kdb_destroy тушаал ашиглаж хуучин Kerberos мэдээллийн
баазыг устгах эсвэл хэрэв Kerberos ажиллахгүй байгаа бол ердөө л нэмэлт файлуудыг
устгах хэрэгтэй.
Та одоо өөрийн Kerberos хүрээг (realm) зааж өгөхдөө krb.conf
болон krb.realms файлуудыг засварлах шаардлагатай.
Энэ тохиолдолд хүрээ нь EXAMPLE.COM болох бөгөөд
сервер нь grunt.example.com болох юм.
Бид krb.conf файлыг засварлаж эсвэл
үүсгэнэ:
&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.gov
Энэ тохиолдолд бусад хүрээнүүд тэнд байх хэрэггүй. Тэдгээр нь энд машиныг хэрхэн
олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод
та тэдгээрийг оруулахгүйг хүсэж болох юм.
Эхний мөр нь систем ажиллах хүрээг нэрлэж байна. Бусад мөрүүд нь хүрээ/хост
оруулгуудыг агуулна. Мөр дэх эхнийх нь хүрээ бөгөөд хоёр дахь нь
түлхүүр түгээх төв
болж байгаа хүрээн дэх хост юм.
Хостын нэрийн дараах admin server нь хост бас
удирдах мэдээллийн баазаар хангаж байна гэсэн үг юм. Эдгээр ухагдахуунуудын
тайлбаруудын талаар Kerberos-ийн гарын авлагын хуудаснуудаас зөвлөгөө
авна уу.
Одоо бид grunt.example.com-г
EXAMPLE.COM хүрээ уруу нэмэх ёстой бөгөөд
бас EXAMPLE.COM хүрээний
.example.com домэйн дэх бүх
хостуудыг оруулан нэмж өгөх хэрэгтэй. krb.realms
файл дараах байдлаар шинэчлэгдэх болно:
&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDU
Дахин хэлэхэд бусад хүрээнүүд тэнд байх шаардлагагүй. Тэдгээр нь энд машиныг хэрхэн
олон хүрээнүүдийг мэдэхээр хийгдэх жишээ маягаар байгаа болно. Хялбараа бодоод
та тэдгээрийг оруулахгүйг хүсэж болох юм.
Эхний мөр нь тусгай системийг нэрлэгдсэн
хүрээ уруу оруулж байна. Бусад мөрүүд нэрлэгдсэн хүрээнд тухайн дэд домэйны
системүүдийг хэрхэн анхдагчаар болгож байгааг харуулна.
Одоо бид мэдээллийн сан үүсгэхэд бэлэн боллоо. Энэ нь зөвхөн
Kerberos сервер (эсвэл Түлхүүр Түгээх Төв) дээр ажиллах ёстой.
kdb_init тушаал ажиллуулж үүнийг хийнэ:
&prompt.root; kdb_init
Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:
Одоо бид локал машин дээрх серверүүд авч болгохоор болгохын тулд түлхүүрийг
хадгалах хэрэгтэй. kstash тушаал ашиглаж үүнийг
хийнэ:
&prompt.root; kstash
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Энэ нь шифрлэгдсэн мастер нууц үгийг
/etc/kerberosIV/master_key-д хадгална.
Бүгдийг ажиллахаар болгох
KerberosIV
эхний эхлүүлэлт
Kerberos-оор аюулгүй болгогдох систем бүрийн
хувьд хоёр удирдагч мэдээллийн баазад нэмэгдэх шаардлагатай. Тэдгээрийн нэрс нь
kpasswd болон rcmd байна.
Эдгээр хоёр удирдагч нь систем бүрийн хувьд хувь системийн нэртэй тохиолдлуудын
хамтаар хийгдэнэ.
Эдгээр kpasswd болон
rcmd дэмонууд нь бусад системүүдэд
Kerberos нууц үгнүүдийг өөрчилж &man.rcp.1;,
&man.rlogin.1; болон &man.rsh.1; зэрэг тушаалуудыг ажиллуулахыг
зөвшөөрдөг.
Одоо эдгээр оруулгуудыг нэмэцгээе:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: passwd
Instance: grunt
<Not found>, Create [y] ? y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ? y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: rcmd
Instance: grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Серверийн файлыг үүсгэх
Одоо бид машин бүр дээр үйлчилгээнүүдийг тодорхойлдог бүх тохиолдлуудыг
гаргаж авах хэрэгтэй. Энэ зорилгоор бид ext_srvtab
тушаалыг ашиглана. Энэ нь файл үүсгэх бөгөөд түүнийг Kerberos-ийн
клиент бүрийн /etc сан уруу
аюулгүйн үүднээс хуулах эсвэл шилжүүлэх хэрэгтэй.
Энэ файл нь сервер болон клиент бүр дээр байх хэрэгтэй бөгөөд Kerberos-ийн
ажиллагаанд шийдвэрлэх зүйл болдог.
&prompt.root; ext_srvtab grunt
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....
Одоо, энэ тушаал зөвхөн түр зуурын файл үүсгэдэг бөгөөд тэр файлын нэрийг
бүх серверүүд авч чадахаар srvtab болгон нэрлэх
шаардлагатай. &man.mv.1; тушаал ашиглаж эх систем дээрх байрлал уруу
шилжүүл:
&prompt.root; mv grunt-new-srvtab srvtab
Хэрэв файл нь клиент системд зориулагдсан бөгөөд сүлжээ нь аюулгүй биш
гэж бодогдвол client-new-srvtab
файлыг шилжүүлж болох зөөвөрлөгч уруу хуулж физик аюулгүйн үүднээс тээвэрлэж
болно. Үүнийг клиентийн /etc сан дотор
srvtab болгон нэрлэж 600 горимд байгаа эсэхийг
шалгаарай:
&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtab
Мэдээллийн санг нутагшуулах
Бид одоо зарим хэрэглэгчийг мэдээллийн баазад оруулах хэрэгтэй. Эхлээд
jane хэрэглэгчид зориулсан оруулгыг үүсгэе.
Үүнийг kdb_edit тушаал ашиглаж хийнэ:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: jane
Instance:
<Not found>, Create [y] ? y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- enter a secure password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ?
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Бүгдийг тест хийх
Эхлээд бид Kerberos дэмонууд ажиллуулах шаардлагатай. Хэрэв та
өөрийн /etc/rc.conf файлыг зөв засварласан
бол дахин ачаалахад энэ нь автоматаар хийгдэх ёстойг санаарай.
Энэ нь зөвхөн Kerberos сервер дээр шаардлагатай. kerberos-ийн
клиентүүд хэрэгтэй зүйлээ автоматаар /etc/kerberosIV
сангаас авах болно.
&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Одоо бид kinit тушаал ашиглаж
бидний дээр үүсгэсэн jane ID-д зориулсан тасалбарыг авахыг
оролдож болно:
&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:
Токенууд бидэнд үнэхээр байгаа эсэхийг klist ашиглан
үзэхийг оролдоорой:
&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM
Одоо kpasswd дэмон
Kerberos-ийн мэдээллийн баазад нэвтрэлтийн зөвшөөрөл авч чадах эсэхийг шалгахын
тулд нууц үгийг &man.passwd.1; ашиглан өөрчлөхийг оролдоорой:
&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:
New Password for jane:
Verifying password
New Password for jane:
Password changed.
su зөвшөөрлүүдийг нэмэх
Kerberos нь root зөвшөөрлүүд
хэрэгтэй хэрэглэгч бүрд өөрсдийнх нь
тусдаа &man.su.1; нууц үгийг өгөхийг
бидэнд зөвшөөрдөг. Одоо бид &man.su.1;-аар танигдан зөвшөөрөгдсөн
ID-г root уруу нэмж болно. Үүнийг
root-г удирдагчтай холбосон тохиолдолтой
байснаар хянаж болно. kdb_edit ашиглан
Kerberos-ийн мэдээллийн баазад jane.root
оруулгыг бид үүсгэж болно:
&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name: jane
Instance: root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- enter a SECURE password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?
Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exit
Одоо үүнийг ажиллаж байгааг шалгаж токенуудыг авахыг оролдоорой:
&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:
Одоо бид хэрэглэгчийг root-ийн
.klogin файлд нэмэх хэрэгтэй:
&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COM
Одоо &man.su.1; хийхийг оролдоод үз:
&prompt.user; su
Password:
тэгээд ямар токенууд бидэнд байгааг хараарай:
&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM
Бусад тушаалуудыг ашиглах
Өмнөх жишээн дээр бид jane гэж нэрлэгдсэн
удирдагчийг root тохиолдолтой үүсгэсэн.
Энэ нь удирдагчтай адил нэртэй хэрэглэгч дээр үндэслэсэн бөгөөд энэ нь
Kerberos-ийн анхдагч юм; root-ийн гэр сан дахь
.klogin файлд шаардлагатай оруулгууд байвал
<username>.root
хэлбэрийн <principal>.<instance> нь
тэр <username>-г root
уруу &man.su.1; хийхийг зөвшөөрдөг:
&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COM
хэрэв хэрэглэгч үүнтэй адил хэлбэрийн өөрийн гэр сангийн мөрүүдтэй бол:
&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COM
Энэ нь өөрсдийгөө
jane эсвэл jack гэж
таниулсан (kinit-ийн тусламжтай, дээр дурдсаныг үз)
EXAMPLE.COM хүрээний хэнд ч
&man.rlogin.1;, &man.rsh.1; эсвэл &man.rcp.1; ашиглан энэ систем
(grunt) дээрх jane-ий бүртгэл
эсвэл файлуудад хандахыг зөвшөөрдөг.
Жишээ нь jane одоо өөр систем уруу Kerberos
ашиглан нэвтрэн орж байна:
&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995
Эсвэл jack яг тэр машин дээрх jane бүртгэл
уруу нэвтрэн орж байна (jane дээрхтэй адил .klogin-ийг
тохируулсан бөгөөд Kerberos хариуцсан хүн удирдагч jack-ийг хоосон
тохиолдолтой тохируулсан):
&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995
Тиллмэн
Хоожсон
Хойно дурдсан хүний бичсэн дээр тулгуурлан хувь нэмэр болгон оруулсан
Марк
Мюррей
Хувь нэмэр болгон оруулсан
Kerberos5
&os;-5.1-ээс хойшх &os;-ийн хувилбар бүр зөвхөн
Kerberos5-д зориулсан дэмжлэгийг
оруулсан байдаг. Kerberos5 нь
орсон цорын ганц хувилбар болохоор түүний тохиргоо олон талаараа
KerberosIV-д байдагтай адил
байдаг. Дараах мэдээлэл &os;-5.0-с хойшх хувилбар дахь
Kerberos5-тай хамаатай.
KerberosIV багцыг ашиглахыг
хүсэж байгаа хэрэглэгчид security/krb4
портыг суулгаж болно.
Kerberos нь хэрэглэгчид өөрсдийгөө нууцлаг серверийн үйлчилгээнүүдийн
тусламжтайгаар таниулан нэвтрэх боломжийг олгодог сүлжээний нэмэлт систем/протокол юм.
Алсын нэвтрэлт, алсын хуулбар, нууцлаг систем хоорондох файл хуулбарлалт болон
бусад аюул ихтэй үйлдлүүд зэрэг үйлчилгээнүүд харьцангуй аюулгүй хийгдэж илүү хяналт хийж
болохоор болсон.
Kerberos нь хэн бэ гэдгийг шалгах прокси систем
юм. Энэ нь бас итгэгдсэн гуравдагч нэвтрэлт таних систем гэж тайлбарлагдаж
болно. Kerberos нь зөвхөн нэг функцыг
хангадаг — сүлжээн дээр хэрэглэгчдэд өөрсдийгөө аюулгүйгээр таниулах
боломжийг хангаж өгдөг. Энэ нь шалгаж таних функцууд (хэрэглэгчдийн
хийхийг зөвшөөрдөг) эсвэл аудит функцуудын (тэдгээр хэрэглэгчид юу хийснийг)
үүргийг гүйцэтгэдэггүй. Клиент болон сервер өөрийгөө таниулж батлахаар
Kerberos-г ашигласны дараа тэд бизнесээ бодож
өөрсдийн бүх холболтуудаа шифрлэж нууцлал болон бүрэн бүтэн байдлаа хадгалан
баталгаажуулж болно.
Иймээс Kerberos-ийг нэвтрэлт танилт болон
аудит үйлчилгээнүүдийг хангадаг бусад аюулгүй байдлын аргуудтай цуг ашиглахыг
маш ихээр зөвлөдөг.
Дараах заавруудыг &os;-д зориулан түгээгдсэн Kerberos-ийг
хэрхэн тохируулах гарын авлага болгон ашиглаж болно. Гэхдээ та тохирох гарын авлагын
хуудаснуудаас бүрэн тайлбарын талаар лавлах хэрэгтэй.
Kerberos-ийн суулгацыг үзүүлэх зорилгоор
төрөл бүрийн нэрийн талбарууд дараах байдлаар зохицуулагдана:
DNS домэйн (бүс
)
нь example.org байна.
Kerberos хүрээ нь
EXAMPLE.ORG байна.
Хэрэв та дотооддоо ажиллуулах бодолтой байсан ч гэсэн Kerberos-ийг
суулгаж тохируулахдаа жинхэнэ домэйны нэрүүдийг ашиглана уу. Энэ нь
DNS-ийн асуудлуудыг тойрон гарч
бусад Kerberos хүрээнүүдтэй хийх
хоорондын үйлдлийг баталгаажуулдаг.
Түүх
Kerberos5
түүх
Kerberos-ийг MIT
анх сүлжээний аюулгүй байдлын асуудлуудын шийдэл болгож хийсэн.
Kerberos протокол нь хүчирхэг криптографыг
ашигладаг бөгөөд клиент нь аюултай сүлжээний холболтоор өөрийгөө хэн бэ гэдгийг
серверт (болон эсрэгээр) баталж чадах боломжийг олгодог.
Kerberos нь сүлжээний танин шалгах
протоколын нэрээс гадна програмыг (жишээ нь Kerberos
телнет) шийдвэрлэж байгаа програмуудыг тайлбарласан тайлбар бас болдог.
Протоколын одоогийн хувилбар нь 5 бөгөөд RFC 1510-д
тайлбарласан байдаг.
Өргөн хүрээний үйлдлийн системүүдийг хамарсан энэ протоколын хэд хэдэн чөлөөтэй
шийдлүүд байдаг. Kerberos анх хөгжүүлэгдсэн
Массачусетсийн Технологийн Институт (MIT) нь
өөрийн Kerberos багцыг хөгжүүлсээр байна.
Энэ багц нь US-д криптограф бүтээгдэхүүн болж нийтлэг
хэрэглэгддэг бөгөөд энэ нь түүхээс авч үзэхэд US-ын
экспортын дүрэм журмуудаас болсон юм. MIT
Kerberos нь порт
(security/krb5) хэлбэрээр байдаг.
Heimdal Kerberos нь өөр шийдлийн 5-р
хувилбар бөгөөд экспортын дүрэм журмуудыг тойрон гарах зорилгоор
US-ээс гадна хамааралгүйгээр хөгжүүлэгдсэн (
бөгөөд ихэвчлэн арилжааны бус &unix; төрлүүдэд орсон байдаг) юм.
Heimdal Kerberos түгээлт нь
порт (security/heimdal)
хэлбэрээр байдаг бөгөөд үүний хамгийн бага суулгац үндсэн &os; суулгацад
орсон байдаг.
Аль болох олон үзэгчдийг хамрахын тулд эдгээр зааврууд нь &os;-д орсон
Heimdal түгээлтийг ашиглаж байна гэж тооцдог.
Heimdal KDC суулгаж тохируулах
Kerberos5
Түлхүүр Түгээх Төв
Түлхүүр Түгээх Төв (KDC) нь
Kerberos-ийн хангадаг төвлөрсөн нэвтрэлт таних
үйлчилгээ юм — энэ нь Kerberos
тасалбарууд өгдөг компьютер юм. KDC нь
Kerberos хүрээний бусад бүх компьютеруудад
итгэгдсэн
гэж тооцогддог бөгөөд аюулгүй байдлын санаа зовнилыг
дээшлүүлдэг.
Kerberos серверийг ажиллуулж байхад маш цөөн тооцооллын
эх үүсвэрийг шаарддаг боловч аюулгүй байдлын шалтгаанаас болоод зөвхөн
KDC болон ажиллах тусдаа зориулагдсан машинтай байхыг
зөвлөдгийг санаарай.
KDC-г тохируулж эхлэхдээ таны
/etc/rc.conf файлд KDC
болж ажиллах зөв тохиргоо хийгдсэн эсэхийг шалгаарай (өөрийн системийн хувьд
та замуудыг өөрчлөх хэрэгтэй байж болох юм):
kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
Дараа нь бид таны Kerberos тохиргооны
файл /etc/krb5.conf-г тохируулна:
[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORG
Энэ /etc/krb5.conf файл нь
таны KDC нь бүрэн баталгаажсан хостын нэр
kerberos.example.org-тэй байна
гэж үзэж байгааг санаарай. Хэрэв таны KDC өөр
хостын нэртэй бол та өөрийн бүсийн файлдаа CNAME (alias)-ийг нэмэх
хэрэгтэй.
Зөв тохируулсан BIND DNS
сервер бүхий том сүлжээнүүдэд өмнөх жишээ нь:
[libdefaults]
default_realm = EXAMPLE.ORG
болж дараах мөрүүдийг example.org
бүсийн файлд нэмж цэгцэлж болно:
_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORG
Kerberos үйлчилгээнүүдийг хэрэглэгчдэд
хүртээмжтэй болгохын тулд та эсвэл бүрэн тохируулсан /etc/krb5.conf
файлтай эсвэл хамгийн багаар тохируулсан /etc/krb5.conf
файл болон зөв тохируулсан DNS сервертэй байх
ёстой.
Дараа нь бид Kerberos мэдээллийн бааз
үүсгэнэ. Энэ мэдээллийн бааз нь мастер нууц үгээр шифрлэсэн бүх удирдагчдын
түлхүүрүүдийг агуулдаг. Та энэ нууц үгийг тогтоох шаардлагагүй, энэ нь
файлд (/var/heimdal/m-key) хадгалагдах болно.
Мастер түлхүүр үүсгэхийн тулд kstash тушаалыг
ажиллуулж нууц үгээ оруулаарай.
Мастер түлхүүр үүсгэгдсэний дараа та мэдээллийн баазыг
kadmin програмыг -l
тохируулгатай (локал
гэсэн утгатай) ашиглан эхлүүлж болно.
Энэ тохируулга нь kadmin-д мэдээллийн баазын
файлыг kadmind сүлжээний үйлчилгээгээр
дамжилгүйгээр шууд өөрчлөхийг заадаг. Энэ нь мэдээллийн бааз үүсэхээс
өмнө түүн уруу хандахыг оролдох асуудлыг (яг л өндөг, тахианы аль нь түрүүлж гарсан
гэж маргадаг тэр асуудлын адил) зохицуулдаг. kadmin
хүлээх мөртэй болсныхоо дараа та өөрийн хүрээнүүдийн эхний мэдээллийн санг
init тушаал ашиглан үүсгээрэй.
Эцэст нь kadmin-ы горимд байхдаа өөрийн
эхний удирдагчийг add тушаал ашиглан үүсгээрэй.
Одоохондоо удирдагчийн хувьд анхдагч тохируулгуудыг сонгоорой, та
тэдгээрийг сүүлд нь modify тушаал ашиглан
өөрчилж чадна. Та аль ч тушаал хүлээх мөрөнд ?
тушаал ашиглаж байгаа боломжит тохируулгуудыг харж болохыг
санаарай.
Мэдээллийн сан үүсгэлтийн жишээ сесс доор байна:
&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxx
Одоо KDC үйлчилгээнүүдийг эхлүүлэх цаг болжээ.
Үйлчилгээнүүдийг эхлүүлэхдээ /etc/rc.d/kerberos start болон
/etc/rc.d/kadmind start тушаалуудыг
ажиллуулна. Энэ үед танд ямар ч kerberos хийгдсэн дэмон байхгүйг санаарай,
гэхдээ та KDC-ийн өөрийнх нь тушаалын мөрөөс үүсгэсэн удирдагчид
(хэрэглэгч) зориулсан тасалбарыг авч жагсаан KDC-г ажиллаж байгаа
гэдгийг та баталж чадаж байх ёстой:
&prompt.user; kinit tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; klist
Credentials cache: FILE:/tmp/krb5cc_500
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
Та дууссаныхаа дараа тасалбарыг буцааж болно:
&prompt.user; kdestroy
Серверийг Kerberos хийн Heimdal үйлчилгээнүүдтэй
идэвхжүүлэх
Kerberos5
үйлчилгээнүүдийг идэвхжүүлэх
Эхлээд бидэнд Kerberos-ийн тохиргооны
файл /etc/krb5.conf-ийн хуулбар хэрэг болно.
Ингэхийн тулд KDC-ээс түүнийг аюулгүй аргаар
(&man.scp.1; зэрэг сүлжээний хэрэгслүүд эсвэл физикээр уян диск ашиглан)
клиент компьютер уруу ердөө л хуулах хэрэгтэй.
Дараа нь танд /etc/krb5.keytab файл
хэрэгтэй. Энэ нь Kerberos хийгдсэн
дэмонууд бүхий сервер болон ажлын станц хоёрын гол ялгаа юм —
сервер нь keytab файлтай байх шаардлагатай.
Энэ файл нь өөрийг нь зөвшөөрдөг серверийн хост түлхүүр болон өөрсдийнхөө
нэрийг (identity) шалгах KDC-г агуулдаг.
Хэрэв түлхүүр нь нийтэд мэдэгдвэл серверийн аюулгүй байдал эвдэрч болох учир
энэ нь сервер уруу аюулгүйн үүднээс дамжуулагдах ёстой. Энэ нь шууд утгаараа
FTP зэрэг цэвэр текст сувгаар дамжуулах нь маш буруу
гэсэн үг юм.
Ихэвчлэн сервер уруу keytab файлыг
kadmin тушаал ашиглан дамжуулдаг.
Энэ нь тохиромжтой байдаг бөгөөд учир нь та бас хостын удирдагчийг
(krb5.keytab файлын KDC
төгсгөл) kadmin тушаал ашиглан үүсгэх хэрэгтэй
болдог.
Та тасалбарыг аль хэдийн авсан байх ёстой бөгөөд энэ тасалбар нь
kadmind.acl файлын kadmin
интерфэйсийг ашиглаж болохоор зөвшөөрөгдсөн байх ёстойг санаарай.
Heimdal-ийн мэдээллийн хуудаснуудын (info heimdal)
Алсын удирдлага
гэсэн гарчигтай хэсгээс хандалт хянах жагсаалтуудыг
дизайн хийх талаар дэлгэрэнгүйг үзнэ үү. Хэрэв та алсын kadmin
хандалтыг идэвхжүүлэхийг хүсэхгүй байгаа бол та KDC уруу
ердөө л аюулгүйгээр холбогдож (локал консолоор, &man.ssh.1; эсвэл
Kerberos &man.telnet.1;) удирдлагыг локалаар
өөр дээрээсээ kadmin -l тушаал ашиглан хийж болно.
/etc/krb5.conf файлыг суулгасны дараа та
Kerberos серверээс kadmin
тушаалыг ашиглаж болно. add --random-key тушаал нь
серверийн хост удирдагчийг нэмэх боломжийг танд олгох бөгөөд ext
тушаал нь серверийн хост удирдагчийг өөрийн keytab уруу задлах боломжийг танд олгоно.
Жишээ нь:
&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
kadmin> ext host/myserver.example.org
kadmin> exit
ext тушаал нь (extract
гэдгийг
богиноор илэрхийлнэ) задалсан түлхүүрийг анхдагчаар /etc/krb5.keytab
файлд хадгалдаг.
Хэрэв таны хувьд KDC дээр kadmind
ажиллахгүй байгаа бөгөөд (магадгүй аюулгүй байдлын шалтгаануудаас болоод)
тэгээд kadmin уруу алсаас хандах боломжгүй бол та
хост удирдагчийг (host/myserver.EXAMPLE.ORG)
шууд KDC дээр нэмж дараа нь доор дурдсантай адилаар түүнийг түр
зуурын файл уруу (KDC дээрх
/etc/krb5.keytab файлыг дарж бичихээс сэргийлж)
задалж болно:
&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exit
Та дараа нь keytab-ийг аюулгүйгээр (жишээ нь scp эсвэл
уян диск ашиглан) сервер компьютер уруу хуулж болно. KDC
дээрх keytab-ийг дарж бичихээс сэргийлж keytab нэрийг анхдагч бишээр зааж өгсөн
эсэхээ шалгаарай.
Энэ мөчид хүрэх үед таны сервер KDC-тэй
(krb5.conf файлтай учраас) холбогдож чадах бөгөөд
(krb5.keytab файлтай учраас) өөрийгөө таниулан баталж
чадна. Одоо та зарим нэг Kerberos үйлчилгээнүүдийг
идэвхжүүлэхэд бэлэн болжээ. Энэ жишээн дээр бид telnet
үйлчилгээг /etc/inetd.conf файлд доор дурдсантай төстэй
мөрийг оруулан идэвхжүүлж дараа нь &man.inetd.8; үйлчилгээг
/etc/rc.d/inetd restart тушаалын тусламжтай
дахин ачаалах болно:
telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user
Хамгийн чухал нь -a төрөл (нэвтрэлт танихад)
хэрэглэгчид тохируулагдсан. Илүү дэлгэрэнгүйг &man.telnetd.8; гарын
авлагын хуудаснаас лавлана уу.
Клиентийг Kerberos хийн Heimdal үйлчилгээтэйгээр идэвхжүүлэх
Kerberos5
клиентүүдийг тохируулах
Клиент компьютерийг тохируулах нь маш амархан.
Kerberos тохиргоо хийгдсэний дараа танд зөвхөн
/etc/krb5.conf-д байрлах
Kerberos тохиргооны файл хэрэгтэй.
Үүнийг ердөө л аюулгүйгээр клиент компьютер уруу KDC-ээс
хуулна.
Клиентээсээ kinit, klist, болон
kdestroy тушаалуудыг үүсгэсэн удирдагчийнхаа хувьд
тасалбар олж авах, үзүүлэх, болон дараа нь устгахад ашиглахыг оролдон клиент
компьютераа тест хийгээрэй. Та Kerberos
програмуудыг ашиглан Kerberos хийгдсэн
серверүүд уруу холбогдож чадах ёстой бөгөөд хэрэв ингэж ажиллаж болохгүй байгаа
бөгөөд тасалбар олж авах нь асуудалтай байгаа бол энэ нь клиент эсвэл
KDC-тэй холбоотой биш сервертэй холбоотой
асуудал юм.
telnet зэрэг програмыг тест хийж байх үед
таны нууц үг цэвэр текстээр бишээр илгээгдэж байгааг шалгахын тулд пакет
шиншлэгч (&man.tcpdump.1; зэрэг) ашиглаад үзээрэй.
telnet-ийг бүх өгөгдлийн урсгалыг шифрлэдэг
(ssh-тэй адил) -x тохируулгатай
ашиглахыг оролдоорой.
Төрөл бүрийн гол биш Kerberos клиент
програмууд нь бас анхдагчаар суудаг. Энэ нь үндсэн Heimdal суулгацын
хамгийн бага
мөн чанар юм: telnet
нь цорын ганц Kerberos хийгдсэн үйлчилгээ
юм.
Heimdal порт нь зарим нэг дутуу програмуудыг нэмдэг:
ftp, rsh,
rcp, rlogin болон
бусад цөөн хэдэн нийтлэг биш програмуудын Kerberos
хийгдсэн хувилбаруудыг нэмдэг. MIT порт нь бас
Kerberos клиент програмуудын бүрэн цуглуулгыг
агуулдаг.
Хэрэглэгчийн тохиргооны файлууд: .k5login болон .k5users
.k5login
.k5users
Хүрээн дэх хэрэглэгчийн хувьд ихэнхдээ өөрсдийнх нь Kerberos
удирдагчийг (tillman@EXAMPLE.ORG зэрэг)
локал хэрэглэгчийн бүртгэлд (tillman зэрэг локал бүртгэл)
харгалзуулж өгсөн байдаг. telnet зэрэг клиент
програмууд ихэвчлэн хэрэглэгчийн нэр эсвэл удирдагчийг шаарддаггүй.
Гэхдээ хааяа нэг та харгалзах Kerberos
удирдагчгүй хэн нэгэнд зориулж локал хэрэглэгчийн бүртгэлд хандах хандалтыг
өгөхийг хүсэж болох юм. Жишээ нь tillman@EXAMPLE.ORG
магадгүй локал хэрэглэгчийн бүртгэл webdevelopers-д
хандах хандалт хэрэгтэй байж болох юм. Бусад удирдагчид бас энэ локал бүртгэлд хандах
хэрэгтэй байж болох юм.
.k5login болон .k5users
файлууд нь хэрэглэгчдийн гэрийн сангуудад байрладаг бөгөөд
.hosts болон .rhosts
файлуудын хүчирхэг хослолын нэгэн адилаар энэ асуудлыг шийдэн ашиглагдаж болох юм.
Жишээ нь хэрэв .k5login нь дараах агуулгатайгаар:
tillman@example.org
jdoe@example.org
локал хэрэглэгч webdevelopers-ийн гэр санд
байрлаж байвал энд жагсаагдсан хоёр удирдагч хоёулаа хуваалцсан нууц үгийн шаардлагагүйгээр
тэр бүртгэл уруу хандах хандалттай болох юм.
Эдгээр тушаалуудын гарын авлагын хуудаснуудыг уншихыг зөвлөж байна.
ksu гарын авлагын хуудас .k5users
файлын тухай тайлбарладгийг тэмдэглэх нь зүйтэй юм.
Kerberos-той холбоотой арга, зальнууд болон алдааг олж засварлах
Kerberos5
алдааг олж засварлах
Heimdal эсвэл MIT
Kerberos портууд ашиглах үед
таны PATH орчны хувьсагч
клиентийн програмуудын Kerberos
хувилбаруудыг системийн хувилбаруудаас өмнө жагсаасан байхыг
шаарддаг.
Таны хүрээний бүх компьютерууд цагийн тохиргоонуудаа адилаар
тохируулсан уу? Хэрэв үгүй бол нэвтрэлт танилт амжилтгүй болж
болох юм. нь
NTP ашиглан цагийг хамгийн сүүлийн
хэлбэрт аваачиж адил болгож тохируулах талаар тайлбарладаг.
MIT болон Heimdal нь хоорондоо сайн
ажилладаг. kadmin-аас бусад талаараа
сайн ажилладаг, учир нь энэ програмын протокол стандартчилагдаагүй.
Та хэрэв өөрийн хостын нэрийг өөрчилбөл бас өөрийн host/
удирдагчийг өөрчилж өөрийн keytab-ийг шинэчлэх хэрэгтэй. Энэ нь бас
Апачигийн www/mod_auth_kerb-д
хэрэглэгддэг www/ удирдагч зэрэг тусгай keytab
оруулгуудад хамаатай юм.
Таны хүрээний бүх хостууд DNS-д (эсвэл
хамгийн багадаа /etc/hosts-ийн хувьд) танигдаж
(урагш болон эсрэгээр танигдаж) байх ёстой. CNAME-үүд ажиллах боловч A болон PTR
бичлэгүүд зөв бөгөөд байрандаа байж байх ёстой. Алдааны мэдэгдэл нь
тийм ч ойлгогдохоор байдаггүй, жишээ нь: Kerberos5
refuses authentication because Read req
failed: Key table entry not found буюу орчуулбал
Унших Req амжилтгүй болсон болохоор Kerberos5 нь нэвтрэлт танилтаас
татгалзаж байна.
Таны KDC-ийн хувьд магадгүй клиент маягаар
харьцаж байгаа зарим үйлдлийн системүүд setuid
root болохын тулд ksu
тушаалд зөвшөөрлүүдийг тохируулдаггүй. Энэ нь ksu
ажиллахгүй гэсэн үг бөгөөд аюулгүй байдлын хувьд сайн боловч залхаамаар
байдаг. Энэ нь KDC-ийн алдаа биш юм.
MIT
Kerberos-той байхад хэрэв та
анхдагч 10 цагаас арай урт амьдрах хугацаа бүхий тасалбартай удирдагчийг
зөвшөөрөхийг хүсвэл kadmin дээр
modify_principal тушаал ашиглан
өөрчлөхийг хүссэн удирдагч болон krbtgt
удирдагчийн maxlife-ийг өөрчлөх шаардлагатай. Дараа нь
удирдагч -l тохируулгыг
kinit-тай ашиглаж илүү урт амьдрах хугацаатай
тасалбарыг авах хүсэлт илгээж болох юм.
Хэрэв та өөрийн KDC дээр
алдааг олж засварлахын тулд пакет шиншлэгч ажиллуулж дараа нь
ажлын станцаасаа kinit-ийг ажиллуулахад
kinit-ийг ажилласан даруй
таны TGT илгээгдэхийг
— таныг бүр нууц үгээ бичихээс өмнө та харах болно!
Үүний тайлбар нь Kerberos
сервер чөлөөтэйгээр TGT-ийг (Ticket Granting
Ticket буюу Тасалбар Баталгаажуулах Тасалбар) ямар ч танигдаагүй
хүсэлтэд дамжуулдаг; гэхдээ TGT бүр
хэрэглэгчийн нууц үгээс гарсан түлхүүр болон шифрлэгдсэн байдаг.
Тийм болохоор хэрэглэгч өөрсдийн нууц үгийг бичихэд
тэр нь KDC уруу илгээгддэггүй бөгөөд
харин kinit-ийн аль хэдийн олж авсан
TGT-г буцааж шифрлэхэд (decrypt)
ашиглагддаг. Хэрэв буцааж шифрлэх процесс хүчинтэй хугацаа бүхий
хүчинтэй тасалбарыг гаргаж авбал хэрэглэгч хүчинтэй
Kerberos итгэмжлэлүүдтэй
байна. Эдгээр итгэмжлэлүүд нь ирээдүйд
Kerberos сервертэй аюулгүй холболтууд
хийхэд зориулагдсан сессийн түлхүүр болон бас Kerberos
серверийн өөрийнх нь түлхүүрээр шифрлэгдсэн тасалбар-баталгаажуулах
тасалбарыг агуулдаг. Шифрлэлтийн хоёр дахь давхарга нь хэрэглэгчид
мэдэгддэггүй, гэхдээ энэ нь TGT бүрийн
жинхэнийг шалгахыг Kerberos
серверт зөвшөөрч байгаа тэр зүйл юм.
Хэрэв та урт амьдрах хугацаатай (жишээ нь долоо хоног) тасалбар ашиглахыг
хүсэж байгаа бөгөөд та тасалбар хадгалагдаж байгаа машин уруу
OpenSSH ашиглан холбогдож байгаа бол
Kerberos
тохируулга no
гэж sshd_config тохиргооны файлд байгаа эсэхийг
шалгаарай, тэгэхгүй бол таны тасалбарууд таныг гарах үед устгагдах
болно.
Хостын удирдагчид илүү урт амьдрах хугацаатай тасалбартай бас байж болно
гэдгийг санаарай. Хэрэв таны хэрэглэгчийн удирдагч долоо хоног амьдрах хугацаатай
бөгөөд гэхдээ таны холбогдож байгаа хост 9 цаг амьдрах хугацаатай бол
та кэшдээ хугацаа нь дууссан хостын удирдагчтай болж тасалбарын кэш
хүссэнээр ажиллахгүй болох болно.
Тусгайлсан муу нууц үгүүдийг ашиглуулахгүйн тулд (kadmind
тушаалын гарын авлагын хуудас үүнийг товчхон тайлбарладаг)
krb5.dict файлыг тохируулахдаа
нууц үгийн бодлого тавигдсан удирдагчдад энэ нь зөвхөн хамаатайг санах
хэрэгтэй. krb5.dict файлуудын хэлбэр
хялбар байдаг: нэг мөрт нэг үг (string) байна. /usr/share/dict/words
симболын холбоос үүсгэх нь ашигтай байж болох юм.
MIT портоос ялгаатай талууд
MIT болон Heimdal суулгацуудын гол ялгаа нь
өөр (гэхдээ орлуулж болох) тушаалууд болон өөр протоколууд ашигладаг
kadmin програмтай холбоотой юм.
Хэрэв таны KDC нь MIT бол
та Heimdal kadmin програмыг ашиглаж өөрийн
KDC-г алсаас (эсвэл эсрэг чиглэлд энэ
зорилгоор) удирдаж чадахгүй болдог учир энэ нь их хамаатай юм.
Клиент програмууд нь бас шал өөр өөр тушаалын мөрийн тохируулгууд авч
адил үүргийг гүйцэтгэж болох юм. MIT
Kerberos вэб сайт
() дээрх заавруудыг
дагахыг зөвлөж байна. Замын асуудлуудаас болгоомжлоорой:
MIT порт нь анхдагчаар /usr/local/
уруу суудаг бөгөөд хэрэв таны PATH орчны хувьсагч системийн
сангуудыг эхлээд жагсаадаг бол жирийн
системийн програмууд
MIT-ийн оронд ажиллаж болохыг санаарай.
telnetd болон klogind-ээр
нэвтрэх нэвтрэлтүүд нэг л хачин байдаг тэр шалтгааныг ойлгохыг хүсвэл &os;-ийн хангадаг
MIT security/krb5 портын
суулгасан /usr/local/share/doc/krb5/README.FreeBSD
файлыг унших хэрэгтэй. Хамгийн чухал нь
кэш файл дахь буруу зөвшөөрлүүд
ийг зөв болгох нь
дамжуулагдсан итгэмжлүүдийн эзэмшилтийг зөвөөр солих login.krb5
хоёртын файлыг нэвтрэлт танилтад ашиглахыг шаарддаг.
rc.conf файл дараах тохиргоог агуулж засварлагдсан
байх бас шаардлагатай:
kerberos5_server="/usr/local/sbin/krb5kdc"
kadmind5_server="/usr/local/sbin/kadmind"
kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
MIT керберосд зориулсан програмууд
/usr/local санд хоёртын файлуудыг
суулгадаг болохоор ингэж хийгддэг.
Kerberos дахь хязгааруудыг багасгах
Kerberos5
хязгаарууд болон дутагдлууд
Kerberos нь бүгдийг эсвэл юуг ч биш гэсэн арга юм
Сүлжээнд идэвхжүүлэгдсэн үйлчилгээ бүр Kerberos-тэй
ажиллахаар засварлагдсан (эсвэл сүлжээний халдлагуудын эсрэг аюулгүй
байдлыг хангасан) байх шаардлагатай, тэгэхгүй бол хэрэглэгчдийн
итгэмжлэлүүд хулгайлагдаж дахин ашиглагдаж болох юм. Үүний нэг жишээ нь
бүх алсын бүрхүүлүүдийг (жишээ нь rsh болон
telnet) Kerberos хийн
идэвхжүүлсэн мөртлөө нууц үгүүдийг цэвэр текстээр илгээдэг POP3
захидлын серверийг тэгж хувиргахгүй байх явдал юм.
Kerberos нь ганц хэрэглэгчийн ажлын станцуудад зориулагдсан
Олон хэрэглэгчийн орчинд Kerberos нь
тийм ч аюулгүй биш юм. Энэ нь тасалбаруудыг бүх хэрэглэгчийн хувьд уншигдаж
болох /tmp санд хадгалдаг учраас тэр юм.
Хэрэв хэрэглэгч компьютераа хэд хэдэн бусад хүмүүстэй зэрэг харилцан хуваалцаж
байвал (өөрөө хэлбэл олон-хэрэглэгч) хэрэглэгчийн тасалбаруудыг өөр хэрэглэгч
хулгайлах (хуулан авах) боломжтой юм.
Үүнийг -c файлын нэрийн тушаалын мөрийн тохируулгатай
эсвэл (илүү зохимжтой) KRB5CCNAME орчны хувьсагчтайгаар
даван гарч болох юм, гэхдээ ингэх нь их ховор байдаг. Зарчмын хувьд
тасалбарыг хэрэглэгчдийн гэр санд хадгалж хялбар файлын зөвшөөрлүүдийг ашиглах нь
энэ асуудлыг багасгадаг.
KDC нь бүтэлгүйтлийн ганц цэг
Дизайнаараа бол KDC нь мастер нууц үгийн
мэдээллийн баазаас тогтох бөгөөд түүний нэгэн адил аюулгүй байх ёстой.
KDC нь үүн дээр өөр ямар ч үйлчилгээнүүд
ажиллуулсан байх ёсгүй бөгөөд физикээр аюулгүй байдлыг нь
хангасан байх шаардлагатай. Kerberos
нь ижил түлхүүрээр (мастер
түлхүүр) шифрлэгдсэн бүх
нууц үгүүдийг хадгалдаг бөгөөд тэр ижил түлхүүр нь эргээд
KDC дээр файл маягаар хадгалагддаг учраас
аюул өндөртэй байдаг.
Тэмдэглэн хэлэхэд булаан эзлэгдсэн мастер түлхүүр нь хэн нэг нь айхаар
тийм ч муу биш юм. Түлхүүр үг нь зөвхөн Kerberos
мэдээллийн баазыг шифрлэхэд болон санамсаргүй тоо үүсгэгчийн үр болон
хэрэглэгддэг. Таны KDC уруу хандахад аюулгүй л
байж байвал халдагч мастер түлхүүрээр их юм хийж чадахгүй.
Мөн нэмж хэлэхэд хэрэв KDC нь боломжгүй байвал
(магадгүй үйлчилгээ зогсоох халдлага эсвэл сүлжээний асуудлуудаас болоод)
сүлжээний үйлчилгээнүүд нь нэвтрэлт танилтыг хийж болохгүй болохоор
хэрэглэгдэх боломжгүй болох бөгөөд нэг ёсны үйлчилгээ зогсоох халдлагын рецепт
болох юм. Үүнийг олон KDC-тэй (нэг мастер болон
нэг буюу хэд хэдэн боолууд) болон хоёрдогч эсвэл нэмэлт, эцсийн нэвтрэлт таних
(PAM нь энэнд маш сайн) болгоомжтой шийдлийн
тусламжтайгаар даван гарч болох юм.
Kerberos-ийн дутагдлууд
Kerberos нь хэрэглэгчид, хостууд болон
үйлчилгээнүүдэд өөр хоорондоо бие биенээ таниулах боломжийг олгодог. Гэхдээ энэ нь
KDC-г хэрэглэгчид, хостууд эсвэл үйлчилгээнүүдэд
таниулах аргагүй юм. Энэ нь троян хийгдсэн kinit (жишээ нь)
тушаал бүх хэрэглэгчийн нэрс болон нууц үгүүдийг бүртгэн бичиж авч болно гэсэн
үг юм. security/tripwire
ч юм уу эсвэл өөр бусад файлын системийн бүрэн бүтэн байдлыг шалгах хэрэгслүүд
үүнийг арилгаж чадна.
Эх сурвалжууд болон нэмэлт мэдээллүүд
Kerberos5
гадаад эх сурвалжууд
Kerberos-ийн FAQ
Танин шалгах системийг дизайн хийх нь: Дөрвөн үзэгдэл дэх харилцан яриа (диалог)
RFC 1510,
Kerberos Сүлжээний Танин Шалгах Үйлчилгээ
(V5)
MIT
Kerberos-ийн гэр хуудас
Heimdal
Kerberos-ийн гэр хуудас
Том
Рөүдс
Бичсэн
OpenSSL
аюулгүй байдал
OpenSSL
Олон хэрэглэгчдийн хайдаг нэг боломж нь &os;-д байдаг
OpenSSL багаж юм.
OpenSSL нь ердийн холбооны давхарга
дээр шифрлэлт дамжуулах давхаргыг хангаж өгдөг; ингэснээр түүнийг сүлжээний
програмууд болон үйлчилгээнүүдтэй холбож өгөх боломжийг олгодог.
OpenSSL-ийн зарим нэг хэрэглээнд
захидлын клиентүүдийн шифрлэсэн нэвтрэлт, кредит картаар хийх төлбөрүүд гэх мэт
вэб дээр тулгуурласан шилжүүлгүүд зэрэг олныг дурдаж болно.
www/apache13-ssl болон
mail/sylpheed-claws зэрэг
олон портууд нь OpenSSL-тэй бүтээх
эмхэтгэлийн дэмжлэгийг санал болгодог.
Ихэнх тохиолдолд Портуудын Цуглуулга нь make хувьсагч
WITH_OPENSSL_BASE-ийг yes
гэж заагаагүй тохиолдолд
security/openssl портыг
бүтээхийг оролддог.
&os;-д орсон OpenSSL-ийн хувилбар нь
Secure Sockets Layer v2/v3 (SSLv2/SSLv3) буюу Аюулгүй Сокетуудын
Давхаргын v2/v3 хувилбарууд, Transport Layer Security v1 (TLSv1) буюу
Тээврийн Давхаргын Аюулгүй байдлын v1 хувилбарын сүлжээний аюулгүй байдлын
протоколуудыг дэмждэг бөгөөд ерөнхий криптограф сан болон ашиглагдаж
болох юм.
OpenSSL нь
IDEA алгоритмийг дэмждэг боловч Нэгдсэн Улсын
патентуудаас болоод анхдагчаар хаалттай байдаг. Үүнийг ашиглахын тулд
лицензийг шалгасан байх ёстой бөгөөд хэрэв хязгаарлалтуудыг хүлээн
авах боломжтой бол MAKE_IDEA хувьсагчийг
make.conf файлд заагж өгөх ёстой байдаг.
OpenSSL-ийн хамгийн түгээмэл хэрэглээний
нэг бол програм хангамжуудад зориулан ашиглах сертификатуудыг бэлдэх явдал
юм. Эдгээр сертификатууд нь компани болон хувь хүмүүсийн итгэмжлэлүүдийг
хүчинтэй бөгөөд луйврын биш гэдгийг баталгаажуулдаг. Хэрэв асуудалтай сертификат
хэд хэдэн Certificate Authorities
эсвэл CA-ууд буюу
Сертификатын Эрх мэдэлтнүүдээр шалгагдаагүй бол ихэвчлэн анхааруулга үзүүлдэг.
Сертификатын Эрх мэдэлтэн нь VeriSign зэрэг
компани байдаг бөгөөд компаниуд эсвэл хувь хүмүүсийн итгэмжлэлүүдийг хүчин төгөлдөр болгохын
тулд сертификатуудыг баталгаажуулж өгдөг. Энэ процесс нь өртөгтэй бөгөөд
сертификатууд ашиглахад заавал ч үгүй шаардлага болдоггүй; гэхдээ энэ нь
паранойд буюу хэт зовнисон хэрэглэгчдийн заримын санааг тайвшруулж болох юм.
Сертификатуудыг үүсгэх нь
OpenSSL
сертификат үүсгэлт
Сертификат үүсгэхийн тулд дараах тушаал байдаг:
&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another Name
Common Name
хүлээх мөрийн дараах хариу домэйны
нэрийг харуулж байгааг анзаараарай. Энэ мөр нь шалгалт хийх зорилгоор
серверийн нэрийг оруулахыг шаарддаг; домэйн нэрээс бусдыг байрлуулах нь
ашиггүй сертификат үүсэхэд хүргэдэг. Бусал тохируулгууд, жишээ нь
дуусах хугацаа, өөр шифрлэх алгоритмууд гэх мэт тохируулгууд байдаг.
Бүрэн гүйцэд жагсаалтыг &man.openssl.1; гарын авлагын хуудсыг үзэн
авч болно.
Дээрх тушаалын ажилласан санд хоёр файл одоо байж байх ёстой.
Сертификатын хүсэлт req.pem нь таны оруулсан итгэмжлэлүүдийг
хүчин төгөлдөр болгож хүсэлтийг баталгаажуулан сертификатыг танд буцаах сертификатын
эрх мэдэлтэн уруу илгээгдэж болно. Үүсгэгдсэн хоёр дахь файл нь
cert.pem гэж нэрлэгдэн сертификатын хувийн түлхүүр
болох бөгөөд ямар ч байсан гэсэн хамгаалагдсан байх ёстой; хэрэв энэ нь
бусдын гарт орох юм бол таны (эсвэл таны серверийн) дүрд тоглон ашиглагдаж болох
юм.
CA-с гарын үсэг шаарддаггүй тохиолдолд
өөрөө зурсан сертификатыг үүсгэж болно. Эхлээд RSA
түрхүүр үүсгэх хэрэгтэй:
&prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024
Дараа нь CA түлхүүр үүсгэ:
&prompt.root; openssl gendsa -des3 -out myca.key myRSA.key
Сертификат үүсгэхийн тулд энэ түлхүүрийг ашигла :
&prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt
Санд хоёр шинэ файл үүсэх ёстой: сертификатын эрх мэдэлтний гарын
үсгийн файл myca.key болон сертификат өөрөө
new.crt байна. Эдгээрийг
зөвхөн root унших эрхтэй
/etc санд байрлуулах
шаардлагатай. Үүнд 0700 зөвшөөрөл байж болох бөгөөд түүнийг
chmod хэрэгсэл ашиглан тохируулж болно.
Сертификатуудыг ашиглах нь, жишээ
Тэгэхээр эдгээр файлууд нь юу хийж чадах вэ? Сайн хэрэглээ болох нэг
жишээ нь Sendmail
MTA уруу хийгдэх холболтуудыг шифрлэх байж болно.
Энэ нь локал MTA ашиглан захидал илгээх
хэрэглэгчдийн цэвэр текст нэвтрэлтийн хэрэглээг болиулах юм.
Зарим MUA-ууд нь хэрэв хэрэглэгчид дотроо
сертификат суулгаагүй бол тэдэнд алдааг харуулдаг болохоор энэ нь
ертөнц дээрх хамгийн шилдэг хэрэглээ биш юм.
Сертификат суулгах тухай илүү мэдээллийг програм хангамжтай цуг ирсэн
баримтаас үзэх хэрэгтэй.
Дотоод .mc файл дотор дараах мөрүүдийг
байрлуулах хэрэгтэй:
dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl
Дээрх /etc/certs/ нь
сертификат болон түлхүүр файлуудыг дотооддоо хадгалах сан юм.
Сүүлийн хэдэн шаардлагууд нь дотоод .cf файлын
дахин бүтээлт юм. Үүнийг /etc/mail сан
дотроос make install тушаал
бичин хийж болно. Ингэсний дараа make
restart тушаалыг ажиллуулаарай, энэ нь
Sendmail дэмонг эхлүүлэх ёстой.
Хэрэв бүгд зүгээр болж өнгөрвөл /var/log/maillog
файлд ямар ч алдаа бичигдэхгүй бөгөөд Sendmail
процессийн жагсаалтад харуулагдана.
Хялбар тест хийхийн тулд &man.telnet.1; хэрэгсэл ашиглан
захидлын серверт холбогдох хэрэгтэй:
&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.
Хэрэв STARTTLS
мөр гарч ирвэл бүгд зөв ажиллаж
байна.
Ник
Клэйтон
nik@FreeBSD.org
Бичсэн
IPsec
IPsec дээгүүр VPN хийх
FreeBSD гарц машинуудыг ашиглан Интернэтээр тусгаарлагдсан хоёр сүлжээний
хооронд VPN үүсгэх.
Хитэн М.
Пандиа
hmp@FreeBSD.org
Бичсэн
IPsec-ийг ойлгох нь
Энэ хэсэг нь IPsec-ийг тохируулах процессийг тайлбарлах
болно. IPsec-ийг тохируулахын тулд та өөрчлөн тохируулсан
цөм бүтээх ухагдахууныг мэдсэн байх шаардлагатай
(-г үзнэ үү).
IPsec нь Интернэт Протокол (IP) давхаргын
дээр суудаг протокол юм. Энэ нь хоёр буюу хэд хэдэн хостуудыг аюулгүй байдлаар
(нэрээс нь харах юм бол) холбох боломжийг олгодог. FreeBSD IPsec
сүлжээний стек
нь IPv4 болон IPv6 протоколуудыг хоёуланг
дэмждэг KAME шийдэл дээр
үндэслэсэн.
IPsec
ESP
IPsec
AH
IPsec нь хоёр дэд протоколоос тогтоно:
Encapsulated Security Payload
(ESP) буюу Хайрцаглагдсан Аюулгүй байдлын ачаа нь
гуравдагчийн нөлөөллөөс тэгш хэмт криптограф алгоритмийг
(Blowfish, 3DES-тэй адил) ашиглан агуулгыг нь шифрлэж
IP пакетийн өгөгдлийг хамгаалдаг.
Authentication Header (AH) буюу Нэвтрэлт Танилтын
Толгой нь аюулгүй хэш хийх функцаар IP пакетийн толгойн
талбаруудыг хэш хийн криптограф хянах нийлбэрийг тооцоолон гуравдагч
этгээдийн нөлөөлөл болон хууран мэхлэлтээс IP пакетийн толгойг
хамгаалдаг. Үүний дараа пакет дахь мэдээллийг таниулахыг зөвшөөрөх
хэшийг агуулсан нэмэлт толгой байдаг.
ESP болон AH нь
орчноосоо хамаараад хоёулаа цуг эсвэл тусдаа ашиглагдаж болно.
VPN
виртуал хувийн сүлжээ
VPN
IPsec нь хоёр хостын хоорондох урсгалыг шууд шифрлэх (Transport
Mode буюу Тээвэрлэх Горим гэгддэг) буюу эсвэл
хоёр корпорацийн сүлжээний хооронд аюулгүй холбоонд ашиглагдаж болох
виртуал туннелиуд
(Tunnel Mode буюу Туннелийн
Горим гэгддэг) бүтээхэд хэрэглэгдэж болох юм. Сүүлийнх нь ерөнхийдөө
Виртуал Хувийн Сүлжээ (VPN) гэгддэг.
FreeBSD-ийн IPsec дэд системийн талаар дэлгэрэнгүй мэдээллийг
&man.ipsec.4; гарын авлагын хуудаснаас лавлах хэрэгтэй.
Өөрийн цөмдөө IPsec дэмжлэгийг нэмэхийн тулд та дараах тохируулгуудыг
цөмийн тохиргоондоо нэмээрэй:
цөмийн тохируулгууд
IPSEC
options IPSEC #IP security
device crypto
цөмийн тохируулгууд
IPSEC_DEBUG
Хэрэв IPsec дибаг хийх дэмжлэг заавал хэрэгтэй бол дараах цөмийн тохируулга
бас нэмэгдсэн байх шаардлагатай:
options IPSEC_DEBUG #debug for IP security
Асуудал
VPN-ийг байгуулахад ямар нэг стандарт байхгүй. VPN-үүд нь өөр өөрийн давуу болон сул
талуудтай төрөл бүрийн технологиудыг ашиглан хийгдэж болно. Энэ хэсэг нь
нэг тохиолдлын загвар үзүүлэх бөгөөд энэ тохиолдол дахь VPN-ийг хийхэд
хэрэглэгдэх стратегиудыг харуулах болно.
Тохиолдол: Хоёр сүлжээ, нэг нь гэрийн нэг нь ажлын. Хоюулаа
Интернэтэд холбогдсон бөгөөд энэ VPN-ээр нэг юм шиг
ажиллах сүлжээ.
VPN
үүсгэх
Угтвар нөхцөл дараах маягийн байна:
Та хамгийн багадаа хоёр сайттай байна
Хоёр сайт хоёулаа IP-г дотооддоо ашигладаг
FreeBSD дээр нь ажилладаг гарц компьютераар хоёр сайт хоёулаа
Интернэтэд холбогдсон.
Хоёр сүлжээний гарц компьютер бүр хамгийн багаар бодоход нэг нийтийн IP
хаягтай.
Хоёр сүлжээний дотоод хаягууд нь нийтийн эсвэл хувийн IP хаягууд байж
болох юм, энэ нь хамаагүй. Тэдгээр нь давхцахгүй байх ёстой, өөрөөр
хэлбэл хоюулаа 192.168.1.x-г ашиглаж
болохгүй юм.
Том
Рөүдс
trhodes@FreeBSD.org
Бичсэн
IPsec-ийг &os; дээр тохируулах нь
Эхлээд security/ipsec-tools
портын цуглуулгаас суусан байх шаардлагатай. Энэ гуравдагч талын програм
хангамжийн багц нь тохиргоог дэмжихэд туслах хэд хэдэн програмуудыг
агуулдаг.
Дараагийн шаардлага нь пакетуудыг тунель хийх болон хоёр
сүлжээг зөв холбогдоход ашиглагдах хоёр &man.gif.4; псевдо
төхөөрөмжийг үүсгэх явдал юм. root хэрэглэгчээр
internal болон
external гэсэн утгуудыг жинхэнэ
дотоод болон гадаад гарцуудаар өөрчлөн дараах тушаалыг
ажиллуулна:
&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0 internal1 internal2
&prompt.root; ifconfig gif0 tunnel external1 external2
Жишээ нь ажлын LAN-ий нийтийн
IP нь
172.16.5.4 бөгөөд
хувийн IP нь
10.246.38.1 байна.
Гэрийн LAN-ий нийтийн IP нь
192.168.1.12 бөгөөд
дотоод хувийн IP нь
10.0.0.5 байна.
Энэ нь толгой эргэмээр санагдаж болох бөгөөд
&man.ifconfig.8; тушаалын дараах жишээ үр дүнгээс харна уу:
Gateway 1:
gif0: flags=8051 mtu 1280
tunnel inet 172.16.5.4 --> 192.168.1.12
inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6
inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00
Gateway 2:
gif0: flags=8051 mtu 1280
tunnel inet 192.168.1.12 --> 172.16.5.4
inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00
inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4
Хийгдэж дууссаны дараа хоёр хувийн IP-д
&man.ping.8; тушаал ашиглан дараах үр дүнд харуулсан шиг
хүрэх боломжтой байх ёстой:
priv-net# ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5): 56 data bytes
64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms
64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms
64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms
64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms
--- 10.0.0.5 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms
corp-net# ping 10.246.38.1
PING 10.246.38.1 (10.246.38.1): 56 data bytes
64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms
64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms
64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms
64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms
64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms
--- 10.246.38.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms
Хүсэн хүлээж байсны дагуу хоёр тал хоюулаа
хувийн тохируулсан хаягаасаа ICMP
пакетуудыг илгээх болон хүлээн авах боломжтой байна. Дараа нь
аль аль сүлжээнээс урсгалыг зөв илгээдэг байхын тулд хоёр гарцад
хоюуланд нь пакетуудыг хэрхэн яаж чиглүүлэхийг зааж өгөх ёстой.
Энэ зорилгод дараах тушаал хүрнэ:
&prompt.root; corp-net# route add 10.0.0.0 10.0.0.5 255.255.255.0
&prompt.root; corp-net# route add net 10.0.0.0: gateway 10.0.0.5
&prompt.root; priv-net# route add 10.246.38.0 10.246.38.1 255.255.255.0
&prompt.root; priv-net# route add host 10.246.38.0: gateway 10.246.38.1
Энэ үе хүрэхэд дотоод машинууд нь аль аль гарц болон гарцын цаана
байгаа машинуудаас хүрэх боломжтой байх ёстой. Үүнийг хялбараар
дараах жишээнээс тодорхойлж болно:
corp-net# ping 10.0.0.8
PING 10.0.0.8 (10.0.0.8): 56 data bytes
64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms
64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms
64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms
64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms
64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms
--- 10.0.0.8 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms
priv-net# ping 10.246.38.107
PING 10.246.38.1 (10.246.38.107): 56 data bytes
64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms
64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms
64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms
64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms
64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms
--- 10.246.38.107 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms
Тунелиуд үүсгэж тохируулах нь хялбар хэсэг юм. Аюулгүй
холбоосыг тохируулах нь илүү гүнзгий процесс юм. Дараах
тохиргоо нь урьдчилан хуваалцсан (PSK)
RSA түлхүүрүүдийг ашиглаж байна.
IP хаягаас гадна хоёр
/usr/local/etc/racoon/racoon.conf файл
хоюулаа адил бөгөөд доорхтой төстэй байна.
path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete
padding # options are not to be changed
{
maximum_length 20;
randomize off;
strict_check off;
exclusive_tail off;
}
timer # timing options. change as needed
{
counter 5;
interval 20 sec;
persend 1;
# natt_keepalive 15 sec;
phase1 30 sec;
phase2 15 sec;
}
listen # address [port] that racoon will listening on
{
isakmp 172.16.5.4 [500];
isakmp_natt 172.16.5.4 [4500];
}
remote 192.168.1.12 [500]
{
exchange_mode main,aggressive;
doi ipsec_doi;
situation identity_only;
my_identifier address 172.16.5.4;
peers_identifier address 192.168.1.12;
lifetime time 8 hour;
passive off;
proposal_check obey;
# nat_traversal off;
generate_policy off;
proposal {
encryption_algorithm blowfish;
hash_algorithm md5;
authentication_method pre_shared_key;
lifetime time 30 sec;
dh_group 1;
}
}
sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp)
{ # $network must be the two internal networks you are joining.
pfs_group 1;
lifetime time 36000 sec;
encryption_algorithm blowfish,3des,des;
authentication_algorithm hmac_md5,hmac_sha1;
compression_algorithm deflate;
}
Тохируулга бүрийг энэ жишээн дээр жагсаагдсантай нь
тайлбарлах нь энэ баримтын хүрээнээс гадуур юм.
racoon-ий тохиргооны гарын
авлагын хуудсанд холбогдох мэдээлэл олон бий.
&os; болон racoon нь
хостуудын хооронд сүлжээний урсгалыг нууцлах болон буцааж
задалж чаддаг байхын тулд SPD
бодлогуудыг тохируулсан байх ёстой.
Энэ үйлдлийг дараах ажлын гарц дээрх шиг энгийн бүрхүүлийн
скриптээр шийдэж болно. Энэ файлыг системийг эхлүүлэх үед
ашиглах бөгөөд
/usr/local/etc/racoon/setkey.conf гэж
хадгалах ёстой.
flush;
spdflush;
# To the home network
spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use;
spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;
Ингэсний дараа racoon-г
хоёр гарц дээр дараах тушаал ашиглан эхлүүлнэ:
&prompt.root; /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log
Гарах үр дүнд нь доорхтой төстэй байна:
corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf
Foreground mode.
2006-01-30 01:35:47: INFO: begin Identity Protection mode.
2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon
2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon
2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a
2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=28496098(0x1b2d0e2)
2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47784998(0x2d92426)
2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=124397467(0x76a279b)
2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=175852902(0xa7b4d66)
Тунель зөв ажиллаж байгааг шалгахын тулд нөгөө
консол руу шилжиж сүлжээний урсгалыг харахын тулд
&man.tcpdump.1; ашиглан дараах тушаалыг хэрэглэнэ.
em0-ийг сүлжээний интерфэйс картаараа
шаардлагатай бол солиорой.
&prompt.root; tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12
Доорхтой төстэй өгөгдөл консол дээр гарах ёстой.
Хэрэв үгүй бол асуудалтай гэсэн үг бөгөөд буцаасан
өгөгдлийг дибаг хийх шаардлагатай.
01:47:32.021683 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa)
01:47:33.022442 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb)
01:47:34.024218 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc)
Энд хүрэхэд хоёр сүлжээ хүрэх боломжтой байх бөгөөд
нэг сүлжээний хэсэг юм шиг харагдах болно. Хоёр сүлжээ нь
аль аль нь галт ханаар хамгаалагдсан байж болох бөгөөд
ингэх ч ёстой юм. Тэдгээрийн хооронд урсгалыг зөвшөөрөхийн
тулд пакетуудыг нааш цааш дамжуулах дүрмүүдийг нэмэх
шаардлагатай. &man.ipfw.8; галт ханын хувьд галт ханын
тохиргооны файлдаа дараах дүрмүүдийг нэмээрэй:
ipfw add 00201 allow log esp from any to any
ipfw add 00202 allow log ah from any to any
ipfw add 00203 allow log ipencap from any to any
ipfw add 00204 allow log udp from any 500 to any
Дүрмийн дугааруудыг тухайн хостын тохиргооноос
хамаарч өөрчлөх шаардлагатай байж болох юм.
&man.pf.4; эсвэл &man.ipf.8;,-ийн хэрэглэгчдийн хувьд
дараах дүрмүүд үүнийг хийх болно:
pass in quick proto esp from any to any
pass in quick proto ah from any to any
pass in quick proto ipencap from any to any
pass in quick proto udp from any port = 500 to any port = 500
pass in quick on gif0 from any to any
pass out quick proto esp from any to any
pass out quick proto ah from any to any
pass out quick proto ipencap from any to any
pass out quick proto udp from any port = 500 to any port = 500
pass out quick on gif0 from any to any
Төгсгөлд нь системийг эхлүүлэх явцад
VPN-ийг
машин дэмжин ажиллаж эхэлдэг байлгахын тулд дараах мөрүүдийг
/etc/rc.conf файлд нэмэх хэрэгтэй:
ipsec_enable="YES"
ipsec_program="/usr/local/sbin/setkey"
ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
racoon_enable="yes"
Шерн
Ли
Хувь нэмэр болгон оруулсан
OpenSSH
OpenSSH
аюулгүй байдал
OpenSSH
OpenSSH нь алсын машинуудад аюулгүйгээр хандах
сүлжээний холболтын хэрэгслүүдийн олонлог юм. rlogin,
rsh, rcp, болон
telnet-ийг энэ програмаар шууд орлуулан ашиглаж болно.
Мөн TCP/IP холболтууд аюулгүйгээр SSH-ээр туннель хийгдэж/дамжуулагдаж
болдог. OpenSSH нь сэм чагналт, холболт булаан авалт, болон
бусад сүлжээний түвшний халдлагуудыг үр дүнтэйгээр устгаж бүх трафикийг шифрлэдэг.
OpenSSH-г OpenBSD төсөл дэмжиж байдаг бөгөөд
бүх сүүлийн үеийн алдааны засварууд болон шинэчлэлтүүд бүхий SSH v1.2.12 дээр
тулгуурласан байдаг. Энэ програм нь SSH протокол 1 болон 2-той хоёулантай нь
нийцтэй.
OpenSSH-ийг ашиглах давуу тал
&man.telnet.1; эсвэл &man.rlogin.1; ашиглаж байх үед сүлжээгээр
илгээгдэж байгаа өгөгдөл цэвэр, шифрлэгдээгүй хэлбэрээр байдаг.
Сүлжээний шиншлэгчид клиент болон серверийн хооронд хаана ч байсан гэсэн
таны хэрэглэгч/нууц үгийн мэдээлэл эсвэл таны сессээр дамжсан өгөгдлийг
хулгайлж чадна. OpenSSH нь ийм асуудлаас
хамгаалж төрөл бүрийн нэвтрэлт таних болон шифрлэх аргуудыг санал болгодог.
sshd-г идэвхжүүлэх
OpenSSH
идэвхжүүлэх
sshd нь стандарт &os; суулгацын явцад
харуулагдах тохируулга юм. sshd идэвхжсэн
эсэхийг харахдаа rc.conf файлаас дараах мөрийг
шалгаарай:
sshd_enable="YES"
Энэ нь дараагийн удаа таны систем эхлэхэд OpenSSH-д
зориулсан &man.sshd.8; дэмон програмыг дуудна. Мөн /etc/rc.d/sshd
&man.rc.8; скрипт ашиглан OpenSSH-г эхлүүлэх
боломжтой байдаг:
/etc/rc.d/sshd start
SSH клиент
OpenSSH
клиент
&man.ssh.1; хэрэгсэл &man.rlogin.1;-тэй адил
ажилладаг.
&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******
Нэвтрэлт нь rlogin эсвэл
telnet ашиглан үүсгэгдсэн сесс шиг үргэлжлэх болно.
SSH нь хэрэглэгч холбогдоход серверийн жинхэнэ эсэхийг шалгахын тулд
түлхүүр хээ шалгах системийг хэрэглэдэг. Хэрэглэгч зөвхөн эхний удаа холбогдоход
yes гэж оруулахыг шаардана. Дараа дараагийн
нэвтрэлт оролдлогууд бүгд хадгалсан хээ шалгах түлхүүртэй харьцуулагдан
шалгагддаг. Хэрэв хадгалсан хээ нь дараа дараагийн нэвтрэлтийн оролдлогуудаас
хүлээн авсан хээнээс өөр бол SSH клиент нь танд түгшүүр өгнө. Хээнүүд
~/.ssh/known_hosts файлд эсвэл SSH v2-ийн хээнүүд
~/.ssh/known_hosts2 файлд
хадгалагдана.
Анхдагчаар OpenSSH серверүүдийн
сүүлийн үеийн хувилбарууд зөвхөн SSH v2 холболтуудыг хүлээн авдаг.
Клиент нь хэрэв боломжтой бол 2-р хувилбарыг ашиглах бөгөөд боломжгүй бол
1-р хувилбарыг ашигладаг. эсвэл
тохируулгуудыг 1-р эсвэл 2-р хувилбаруудад зориулан
дамжуулан клиентэд зөвхөн аль нэгийг ашиглахыг хүчилж болно. 1-р хувилбарын
нийцтэй байдал нь клиентэд хуучин хувилбаруудтай нийцтэй байх зорилгоор дэмжигдсэн
байдаг.
Аюулгүй хуулбарлалт
OpenSSH
аюулгүй хуулбарлалт
scp
&man.scp.1; тушаал &man.rcp.1;-тэй адил ажилладаг; энэ нь файлыг алсын
машинаас эсвэл машин уруу, ялгаатай нь аюулгүйгээр хуулдаг.
&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password: *******
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;
Өмнөх жишээн дээр энэ хостын хувьд хээ нь аль хэдийн хадгалагдсан болохоор
&man.scp.1;-ийг энд ашиглах үед шалгагддаг.
&man.scp.1;-ээр дамжуулсан нэмэлт өгөгдлүүд нь &man.cp.1;-тэй адил бөгөөд
эхний нэмэлт өгөгдөлд файл эсвэл файлууд, хоёр дахь дээр очих файлыг
зааж өгдөг. Файл нь сүлжээгээр SSH-ээр татагддаг болохоор файлын нэг эсвэл хэд хэдэн
нэмэлт өгөгдлүүд
хэлбэрийг авдаг.
Тохиргоо
OpenSSH
тохиргоо
OpenSSH дэмон болон клиентийн
системийн дагуух тохиргооны файлууд /etc/ssh
санд байрладаг.
ssh_config клиентийн тохируулгуудыг
тохируулдаг бөгөөд sshd_config нь
дэмонг тохируулдаг.
Мөн
(анхдагчаар /usr/sbin/sshd) болон
rc.conf
тохируулгууд тохиргооны түвшнүүдийг илүүтэйгээр хангадаг.
ssh-keygen
Нууц үгүүдийг ашиглахын оронд &man.ssh-keygen.1; нь
хэрэглэгчийг шалгаж танихад DSA эсвэл RSA түлхүүрүүдийг үүсгэхэд
хэрэглэгдэж болно:
&prompt.user; ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com
&man.ssh-keygen.1; нь шалгаж танихад хэрэглэгдэх нийтийн болон хувийн
түлхүүр хослолыг үүсгэнэ. Хувийн түлхүүр ~/.ssh/id_dsa эсвэл
~/.ssh/id_rsa-д хадгалагдах бөгөөд харин нийтийн түлхүүр
нь ~/.ssh/id_dsa.pub эсвэл
~/.ssh/id_rsa.pub-д DSA болон RSA түлхүүрийн төрлүүдэд
зориулагдан хадгалагддаг. Тохируулга нь ажиллахын тулд нийтийн түлхүүр нь алсын машины
~/.ssh/authorized_keys файлд DSA болон RSA түлхүүрүүдийн
хоёулангийнх нь хувьд хийгдэх ёстой байдаг.
Үүнтэй адилаар нийтийн түлхүүрүүдийн RSA хувилбар нь
~/.ssh/authorized_keys файлд бас хийгдэх ёстой.
Энэ нь нууц үгүүдийн оронд SSH түлхүүрүүдийг ашиглан алсын машин уруу
холбогдохыг зөвшөөрөх болно.
Хэрэв нэвтрэх үгнүүд &man.ssh-keygen.1;-д ашиглагдаж байгаа бол
хувийн түлхүүрийг хэрэглэхийн тулд хэрэглэгчээс нууц үгийг нэвтрэх болгонд
асуудаг. &man.ssh-agent.1; нь урт нэвтрэх үгнүүдийг дахин дахин оруулах
тэр зовлонг зөөллөж чадах бөгөөд
хэсэгт тайлбарлагдсан байгаа болно.
Төрөл бүрийн тохируулгууд болон файлууд нь
таны систем дээр байгаа OpenSSH-ийн
хувилбаруудаас шалтгаалан өөр өөр байдаг; асуудалтай учрахгүйн тулд
та &man.ssh-keygen.1; гарын авлагын хуудаснаас лавлах
хэрэгтэй.
ssh-agent болон ssh-add
&man.ssh-agent.1; болон &man.ssh-add.1; хэрэгслүүд нь
нэвтрэх үгнүүдийг дахин дахин бичүүлэлгүйгээр SSH
түлхүүрүүдийг санах ойд дуудан ашиглаж болох аргуудаар хангадаг.
&man.ssh-agent.1; хэрэгсэл нь түүн уруу дуудагдсан хувийн түлхүүр(үүд)
ашиглан жинхэнэ эсэхийг шалгах танилтыг зохицуулна. &man.ssh-agent.1; нь өөр програмыг
ачаалахад хэрэглэгдэх ёстой. Хамгийн хялбартаа энэ нь бүрхүүл
эсвэл илүү дэвшилттэйгээр ашиглавал цонхны удирдагч ажиллуулж болох
юм.
&man.ssh-agent.1;-ийг бүрхүүлд ашиглахын тулд үүнийг эхлээд
бүрхүүлтэй цуг нэмэлт өгөгдөл маягаар ажиллуулах шаардлагатай. Хоёрдугаарт
хэн бэ гэдэг мэдээллийг (identity) &man.ssh-add.1;-г ажиллуулан нэмэх хэрэгтэй бөгөөд
түүнд хувийн түлхүүрийн нэвтрэх үгнүүдийг өгөх хэрэгтэй. Эдгээр алхмууд
хийгдсэний дараа хэрэглэгч харгалзах нийтийн түлхүүр суулгагдсан
дурын хост уруу &man.ssh.1; хийж чадах болно.
Жишээ нь:
&prompt.user; ssh-agent csh
&prompt.user; ssh-add
Enter passphrase for /home/user/.ssh/id_dsa:
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
&prompt.user;
X11 дээр &man.ssh-agent.1; хэрэглэхийн тулд &man.ssh-agent.1;-ийн
дуудлага ~/.xinitrc-д байх шаардлагатай.
Ингэснээр X11-д ачаалагдсан бүх програмуудад &man.ssh-agent.1;-ийн
үйлчилгээнүүдийг үзүүлэх болно. Жишээ ~/.xinitrc
файл иймэрхүү харагдах болно:
exec ssh-agent startxfce4
Энэ нь &man.ssh-agent.1;-ийг ажиллуулах бөгөөд тэр нь эргээд
X11 эхлэх бүрт XFCE-ийг ажиллуулна.
Ингэж хийгдсэний дараа өөрчлөлтүүд нь үйлчлэхийн тулд X11 дахин эхэлсний хойно
өөрийн SSH түлхүүрүүдийг бүгдийг ачаалахын тулд ердөө л &man.ssh-add.1;-ийг
ажиллуулаарай.
SSH туннель хийх
OpenSSH
туннель хийх
OpenSSH нь шифрлэгдсэн сессийн үед өөр протоколыг
хайрцаглах туннель үүсгэх чадвартай байдаг.
Дараах тушаал telnet-д зориулж туннель үүсгэхийг
&man.ssh.1;-д хэлж өгнө:
&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;
ssh тушаал дараах тохируулгуудтай
хэрэглэгдэнэ:
ssh-ийг протоколын 2-р хувилбарыг
ашиглахыг зааж өгнө. (хэрэв та хуучин SSH серверүүдтэй ажиллаж
байгаа бол үүнийг битгий ашиглаарай)
Тушаал байхгүй эсвэл зөвхөн туннель гэдгийг заана. Хэрэв үүнийг
орхивол ssh ердийн сесс эхлүүлнэ.
ssh-ийг ард, далд ажиллуулахыг
заана.
Локал туннелийг localport:remotehost:remoteport
загвараар зааж өгнө.
Алсын SSH сервер.
SSH туннель нь сонсох сокетийг localhost-ийн
заагдсан порт дээр үүсгэн ажилладаг. Дараа нь локал хост/порт дээр хүлээн
авсан дурын холболтыг SSH-ээр дамжуулан заасан алсын хост болон порт уруу
илгээдэг.
Жишээн дээр localhost дээрх 5023
порт нь алсын машины localhost дээрх 23
порт уруу дамжуулагдаж байна. 23 нь
telnet учир энэ нь SSH туннелээр аюулгүй
telnet сесс үүсгэнэ.
SMTP, POP3, FTP гэх зэрэг ямар ч аюултай TCP протоколуудын
гүйцэтгэлийг хялбаршуулахад үүнийг ашиглаж болно.
SMTP-д зориулан SSH ашиглан аюулгүй туннель үүсгэх
&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP
Үүнийг &man.ssh-keygen.1; болон нэмэлт хэрэглэгчийн бүртгэлүүдтэй
цуг илүү үл үзэгдэх/төвөггүй SSH туннель хийх орчин үүсгэхэд ашиглаж болно.
Түлхүүрүүд нь нууц үг бичихийн оронд ашиглагдаж болох бөгөөд туннелиуд
нь тусдаа хэрэглэгч маягаар ажиллаж чадна.
SSH туннелийн практик жишээнүүд
POP3 сервер уруу аюулгүй хандах
Ажил дээр чинь гаднаас холболтууд хүлээн авах SSH сервер байна.
Бас тэр оффисийн сүлжээнд POP3 сервер ажиллуулж байгаа
захидлын сервер байна. Таны гэр болон оффисийн хоорондын
сүлжээ болон сүлжээний зам итгэж болохоор эсвэл итгэж болохооргүй
байж магадгүй юм. Ийм учраас та өөрийн захидлыг аюулгүй аргаар
шалгах хэрэгтэй юм. Үүний шийдэл нь өөрийн оффисийн SSH сервер
уруу SSH холболт үүсгэж захидлын сервер уруу туннель хийх явдал
юм.
&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******
Туннель эхлэн ажилласны дараа та өөрийн захидлын клиентийнхээ
POP3 хүсэлтүүдийг localhost-ийн 2110 порт уруу
илгээхээр зааж өгч болно. Эндэх холболт туннелээр аюулгүйгээр дамжин
mail.example.com уруу илгээгдэнэ.
Хэцүү галт ханыг тойрон гарах
Зарим сүлжээний администраторууд хэтэрхий чанга галт ханын дүрэм ашиглан
зөвхөн ирж байгаа холболтууд төдийгүй гарч байгаа холболтуудыг ч бас
шүүдэг. Танд алсын машинуудад зөвхөн SSH болон вэбээр аялах 22 болон
80-р портуудад хандах боломжийг өгсөн байж болох юм.
Та хөгжим цацдаг Ogg Vorbis сервер зэрэг өөр (магадгүй ажилдаа холбоогүй)
үйлчилгээ уруу хандахыг магадгүй хүсэж болох юм. Хэрэв энэ Ogg Vorbis
сервер нь 22 эсвэл 80-аас бусад өөр порт дээр цацаж байгаа бол
та түүнд хандаж чадахгүй юм.
Үүний шийдэл нь таны сүлжээний галт ханаас гаднах машин уруу SSH холболт үүсгэж
үүнийг Ogg Vorbis сервер уруу туннель хийхэд ашиглах явдал юм.
&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******
Таны урсгал хүлээн авах клиент одоо localhost-ийн
8888 порт уруу заагдах бөгөөд тэр цаашаагаа галт ханыг амжилттайгаар
гэтлэн music.example.com уруу дамжуулагдана.
AllowUsers хэрэглэгчийн тохируулга
Ямар хэрэглэгчид хаанаас орохыг хязгаарлаж өгөх нь зүйтэй юм.
AllowUsers тохируулга нь үүнд хүрэх сайн арга
юм. Жишээ нь root хэрэглэгчийг зөвхөн
192.168.1.32-оос орохыг
зөвшөөрөхийн тулд доор дурдсантай адил тохируулгыг /etc/ssh/sshd_config
файлд хийх нь зүйтэй юм:
AllowUsers root@192.168.1.32
admin хэрэглэгчийг хаанаас ч орохыг зөвшөөрөхийн
тулд ердөө л хэрэглэгчийн нэрийг өөрийг нь жагсааж өгнө:
AllowUsers admin
Олон хэрэглэгчид нэг мөрөнд жагсаагдах шаардлагатай:
AllowUsers root@192.168.1.32 admin
Та энэ машин уруу нэвтрэх хэрэгцээтэй хэрэглэгч бүрийг жагсааж өгөх нь чухал юм,
тэгэхгүй бол тэдгээр нь орж чадахгүй болно.
/etc/ssh/sshd_config-д өөрчлөлтүүд хийснийхээ
дараа &man.sshd.8;-д өөрийн тохиргооны файлуудыг дахин дуудахыг дараах тушаалыг
ажиллуулж та хэлж өгөх ёстой:
&prompt.root; /etc/rc.d/sshd reload
Нэмэлт унших материалууд
OpenSSH
&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;
&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;
Том
Рөүдс
Хавь нэмэр болгон оруулсан
ACL
Файлын системийн хандалт хянах жагсаалтууд
Хормын хувилбарууд зэрэг файлын системийн өргөжүүлэлтүүдийн хамтаар FreeBSD 5.0
болон сүүлийн хувилбарууд Файлын системийн хандалт хянах жагсаалтуудын
(ACL-ууд) аюулгүй байдлыг санал болгодог.
Хандалт Хянах Жагсаалтууд нь стандарт &unix; зөвшөөрлийн загварыг
маш нийцтэй (&posix;.1e) аргаар өргөтгөдөг. Энэ боломж нь администраторт
илүү төвөгтэй аюулгүй байдлын загвар болон түүний давуу талыг ашиглахыг
зөвшөөрдөг.
UFS файлын системүүдэд ACL
дэмжлэгийг идэвхжүүлэхийн тулд дараах:
options UFS_ACL
тохируулгыг цөмд эмхэтгэх шаардлагатай. Хэрэв энэ тохируулга эмхэтгэгдээгүй бол
ACL-ууд дэмжих файлын системийг холбохыг оролдоход
анхааруулах мэдэгдэл дэлгэцэд гардаг. Энэ тохируулга GENERIC
цөмд орсон байдаг. ACL-ууд нь файлын систем дээр өргөтгөсөн шинж
чанаруудыг идэвхжүүлсэн дээр тулгуурладаг. Өргөтгөсөн шинж чанарууд нь
дараа үеийн &unix; файлын систем UFS2-д төрөлхийн
дэмжигдсэн байдаг.
UFS1 дээр өргөтгөсөн шинж чанаруудыг тохируулахад
UFS2 дээр тохируулахтай харьцуулбал илүү удирдлагын
зардал шаардлагатай байдаг. UFS2 дээрх өргөтгөсөн
шинж чанаруудын ажиллагаа нь бас бодитойгоор илүү байдаг. Иймээс
UFS2-г UFS1-ийн оронд
хандалт хянах жагсаалтуудад ашиглахыг ерөнхийдөө зөвлөдөг.
ACL-ууд нь /etc/fstab файлд
нэмэгдэж өгч болох холбох үеийн удирдлагын тугаар
идэвхтэй болдог. Файлын системийн толгой дахь супер блокийн ACL-ууд тугийг
өөрчлөхийн тулд &man.tunefs.8;-ийг ашиглан шургуу замаар холбох үеийн тугийг автоматаар
зааж өгч болно. Ерөнхийдөө хэд хэдэн шалтгааны улмаас супер блокийн тугийг ашиглах нь
дээр байдаг:
Холбх үеийн ACL-ууд туг дахин холболтоор өөрчлөгддөггүй
(&man.mount.8; ), зөвхөн бүрэн гүйцэд
&man.umount.8; хийгдэж шинэ &man.mount.8; хийгдсэний дараа болно.
Энэ нь бас файлын системийг ашиглаж байх үед дарааллыг нь өөрчилж болохгүй гэсэн үг
юм.
fstab-д мөр байхгүй байсан ч гэсэн эсвэл төхөөрөмжүүдийн
дараалал өөрчлөгдсөн ч гэсэн супер блокийн тугийг тохируулах нь файлын системийг үргэлж
ACL-уудыг идэвхтэйгээр холбоход хүргэдэг. Энэ нь файлын системийг
ACL-уудыг идэвхжүүлэлгүйгээр санамсаргүйгээр холбохоос хамгаалдаг бөгөөд
ингэж санамсаргүй холбох нь ACL-уудыг буруугаар албадаж
тэгснээр аюулгүй байдлын асуудлуудад хүргэж болох юм.
Бид шинэ &man.mount.8; хийлгүйгээр туг идэвхжүүлдгийг зөвшөөрөхөөр
ACL-уудын ажиллагааг өөрчилж болох юм, гэхдээ бид
ACL-уудыг идэвхжүүлэлгүй санамсаргүйгээр холболт хийхийг
болиулахыг хүсдэг бөгөөд учир нь хэрэв та ACL-уудыг идэвхжүүлээд
дараа нь болиулаад өргөтгөсөн шинж чанаруудыг устгалгүйгээр дахин идэвхжүүлбэл та
өөртөө нэлээн хэцүү асуудал учруулах зүйлийг хийх болно. Ерөнхийдөө та файлын систем
дээр ACL-уудыг идэвхжүүлсний дараа файлын хамгаалалтууд нь
системийн хэрэглэгчдэд зориулагдсан файлуудтай нийцгүй болж болох учир тэдгээрийг
болиулж болохгүй бөгөөд ACL-уудыг дахин идэвхжүүлэх нь
зөвшөөрлүүд нь өөрчлөгдсөн байж болох файлуудад өмнөх ACL-уудыг
магадгүй дахин холбож өөр тааварлаж болшгүй ажиллагаанд хүргэж болох юм.
ACL-ууд идэвхжүүлсэн файлын системүүд өөрсдийн зөвшөөрлийн
тохируулгууд дээрээ + (нэмэх) тэмдэг үзэх үед харуулдаг.
Жишээ нь:
drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html
Энд бид directory1,
directory2, болон directory3
сангууд бүгд ACL-ууд-ийн давуу талыг авч байгааг харж байна.
public_html сан тэгэхгүй байна.
ACL-уудыг ашиглах нь
Файлын системийн ACL-уудыг &man.getfacl.1;
хэрэгслээр харж болно. Жишээ нь test файл дээрх
ACL тохируулгуудыг харахын тулд дараах тушаалыг
ажиллуулах хэрэгтэй:
&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--
Энэ файлын ACL тохируулгуудыг өөрчлөхийн тулд
&man.setfacl.1; хэрэгслийг ажиллуул. Ажиглаарай:
&prompt.user; setfacl -k test
туг нь тухайн үед тодорхойлогдсон бүх
ACL-уудыг файл эсвэл файлын системээс
арилгана. Илүү дээр арга бол ACL-уудыг
ажиллуулахад шаардлагатай үндсэн талбаруудыг орхидог
тугийг ашиглах явдал юм.
&prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test
Дээр дурдсан тушаал дээр тохируулга анхдагч
ACL оруулгуудыг өөрчлөхөд хэрэглэгдсэн.
Өмнөх тушаалаар устгагдсан болохоор урьдчилан тодорхойлсон оруулгууд
байхгүй учир энэ нь анхдагч тохируулгуудыг сэргээж жагсаасан тохируулгуудаас
зааж өгдөг. Хэрэв та систем дээр байхгүй хэрэглэгч эсвэл бүлэг нэмэх бол
Invalid argument буюу Буруу нэмэлт өгөгдөл
гэсэн алдаа stdout уруу хэвлэгдэнэ гэдгийг
санаж байх хэрэгтэй.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Portaudit
Гуравдагч талын аюулгүй байдлын асуудлуудыг монитор хийх нь
Сүүлийн жилүүдэд эмзэг асуудлын үнэлгээ хэрхэн зохицуулагдаж байгаа тал дээр
аюулгүй байдлын ертөнц олон сайжруулалт хийсэн. Одоогийн байгаа бүх л үйлдлийн
системүүд дээр гуравдагч талын хэрэгслүүд суулгаж тохируулдгаас болж системийн
халдлагын заналхийлэл ихэсдэг.
Эмзэг асуудлын үнэлгээ нь аюулгүй байдлын түлхүүр хүчин зүйл бөгөөд
&os; нь үндсэн системд зориулан зөвлөгөөнүүдийг гаргадаг боловч
гуравдагч талын хэрэгслүүд бүрийн хувьд хийх нь &os; төслийн боломжоос
гадуур юм. Мэдэгдэж байгаа асуудлуудыг администраторуудад анхааруулж
гуравдагч талын эмзэг асуудлуудыг зөөлрүүлэх арга байдаг. &os;-д нэмэлтээр
Portaudit гэгддэг хэрэгсэл зөвхөн энэ
зорилгоор байдаг.
ports-mgmt/portaudit порт нь
&os;-ийн аюулгүй байдлын баг болон портуудын хөгжүүлэгчдийн шинэчилж
ажиллагааг нь хангаж байдаг мэдээллийн баазаас мэдэгдэж байгаа аюулгүй байдлын
асуудлуудыг шалгадаг.
Portaudit-г ашиглаж эхлэхийн тулд
Портуудын цуглуулгаас түүнийг суулгах хэрэгтэй:
&prompt.root; cd /usr/ports/ports-mgmt/portaudit && make install clean
Суулгах процессийн явцад өдөр бүрийн аюулгүй байдлыг шалгах ажиллагаанд
Portaudit-н гаралтыг зөвшөөрч
&man.periodic.8;-д зориулсан тохиргооны файлуудыг шинэчилдэг.
Өдөр тутмын аюулгүй байдлыг шалгах ажиллагаа root-ийн
захидлын бүртгэл уруу цахим захидал явуулж түүнийг уг хэрэглэгч уншсан эсэхийг
баталгаажуулах хэрэгтэй. Өөр ямар ч илүү тохиргоо энд хэрэггүй.
Суулгасны дараа администратор мэдээллийн баазыг шинэчлэх болон суулгасан
багцуудад мэдэгдэж байгаа эмзэг асуудлуудыг үзэхдээ дараах тушаалыг
ажиллуулна:
&prompt.root; portaudit -Fda
Мэдээллийн бааз &man.periodic.8; ажиллах үед автоматаар шинэчлэгддэг;
иймээс дээрх тушаал заавал шаардлагагүй юм. Энэ нь зөвхөн дараах жишээнүүдэд
шаардлагатай.
Портуудын цуглуулгын хэсэг болгон суулгагдсан гуравдагч талын хэрэгслүүдийг
ямар ч үед аудит хийхдээ администратор зөвхөн дараах тушаалыг ажиллуулах
хэрэгтэй:
&prompt.root; portaudit -a
Portaudit эмзэг асуудалтай багцын хувьд
доор дурдсантай адилыг гаргана:
Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>
1 problem(s) in your installed packages found.
You are advised to update or deinstall the affected package(s) immediately.
Үзүүлсэн URL уруу вэб хөтчийг чиглүүлж администратор
асуудалтай байгаа эмзэг асуудлын талаар дэлгэрэнгүй мэдээллийг олж авч
болно. Ийм мэдээлэл нь нөлөөлөх хувилбарууд болон &os;-ийн портын хувилбар,
аюулгүй байдлын зөвлөгөөнүүд байж болох өөр бусад вэб сайтуудыг агуулж болох
юм.
Товчхондоо Portaudit нь хүчирхэг
хэрэгсэл бөгөөд Portupgrade порттой цуг
хэрэглэхэд маш ашигтай байдаг.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
FreeBSD-ийн аюулгүй байдлын зөвлөгөөнүүд
&os;-ийн аюулгүй байдлын зөвлөгөөнүүд
Үйлдвэрлэлийн чанарыг хангасан үйлдлийн системүүдийн нэгэн адил &os;
Аюулгүй байдлын зөвлөгөөнүүд
гаргадаг. Эдгээр
зөвлөгөөнүүд нь ихэвчлэн аюулгүй байдлын жагсаалтууд уруу илгээгддэг
бөгөөд зөвхөн тохирох хувилбаруудад засвар хийгдсэний дараа Errata буюу
алдааны хуудсанд тэмдэглэгддэг. Энэ хэсэгт зөвлөгөө гэж юу болох, түүнийг
хэрхэн ойлгох болон системд засвар хийхдээ ямар арга хэмжээнүүдийг
авах талаар тайлбарлах болно.
Зөвлөгөө ямархуу харагдах вэ?
&os;-ийн аюулгүй байдлын зөвлөгөөнүүд
&a.security-notifications.name; захидлын жагсаалтаас авсан доорх
зөвлөгөөтэй адил харагдах болно.
=============================================================================
&os;-SA-XX:XX.UTIL Security Advisory
The &os; Project
Topic: denial of service due to some problem
Category: core
Module: sys
Announced: 2003-09-23
Credits: Person@EMAIL-ADDRESS
Affects: All releases of &os;
&os; 4-STABLE prior to the correction date
Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)
CVE Name: CVE-XXXX-XXXX
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. References
Topic буюу сэдэв талбар асуудал юу болохыг яг заасан
байдаг. Энэ нь үндсэндээ тухайн үеийн аюулгүй байдлын зөвлөгөөний
танилцуулга бөгөөд эмзэг асуудалтай цуг хэрэгслийг тэмдэглэдэг.
The Category буюу зэрэглэл талбар нь хамаарч байгаа
системийн хэсгийг хэлдэг бөгөөд core,
contrib, эсвэл ports-ийн
аль нэг байж болно. core зэрэглэл нь эмзэг
асуудал &os; үйлдлийн системийн гол хэсэгт нөлөөлнө гэсэн үг юм.
contrib зэрэглэл нь эмзэг асуудал
sendmail зэрэг &os; төсөлд
хувь нэмэр болгон оруулсан програм хангамжуудад нөлөөлнө гэсэн үг юм.
Эцэст нь ports зэрэглэл нь эмзэг асуудал
портуудын цуглуулганд ордог нэмэлт програм хангамжуудад нөлөөлөхийг
харуулдаг.
Module талбар нь бүрэлдэхүүн хэсгийн байрлалыг
жишээ нь sys гэх зэргээр илэрхийлдэг. Энэ жишээн дээр
sys модуль өртөхийг бид харж байгаа бөгөөд ийм учраас энэ
эмзэг асуудал нь цөм дотор ашиглагдсан бүрэлдэхүүн хэсэгт нөлөөлөх юм.
Announced буюу зарласан талбар нь аюулгүй байдлын
зөвлөгөө хэвлэгдсэн эсвэл ертөнцөд зарлагдсан огноог заадаг. Энэ нь
аюулгүй байдлын баг асуудал байгааг шалгаж үүний засвар
&os;-ийн эх модны архивт итгэмжлэн оруулсныг тогтоосон гэсэн үг юм.
Credits буюу талархал талбар нь эмзэг асуудлыг
мэдэж тайлагнасан хувь хүн болон байгууллагыг зааж талархдаг.
Affects буюу нөлөөлөх хувилбарын талбар нь
энэ эмзэг асуудал нөлөөлөх &os;-ийн хувилбаруудыг тайлбарладаг.
Цөмийн хувьд уг нөлөөлсөн файлууд дээр ажиллуулсан
ident тушаалын үр дүнг зэрвэс харж
хувилбарыг тодорхойлж болно. Портуудын хувьд
/var/db/pkg санд портын нэрийн дараа
хувилбарын дугаар байдаг. Хэрэв систем нь &os;-ийн CVS
архивтай адил хамгийн сүүлийн хэлбэрт орж өдөр тутам дахин бүтээгдээгүй
бол энэ нь нөлөөлөлд орсон хэвээр байх магадлалтай юм.
Corrected буюу засварласан талбар нь
огноо, цаг, цагийн бүс болон засварласан хувилбаруудыг
заадаг.
Common Vulnerabilities Database system буюу Нийтлэг Эмзэг асуудлуудын
Мэдээллийн Баазын системээс эмзэг асуудлуудыг хайхад хэрэглэгдэх
магадлалын мэдээлэлд нөөцлөгддөг.
Background талбар нь нөлөөлөлд яг ямар хэрэгсэл
орсон талаар мэдээлэл өгдөг. Ихэнхдээ энэ нь &os;-д яагаад тухайн хэрэгсэл
байдаг, юунд хэрэглэгддэг болон хэрэгсэл хэрхэн бий болсон талаар байдаг.
Problem Description буюу асуудлын тайлбар талбар нь
аюулгүй байдлын цоорхойг гүнзгий тайлбарладаг. Энэ нь гажигтай кодын мэдээлэл
эсвэл бүр хэрэгслийг хэрхэн хорлонтойгоор ашиглаж аюулгүй байдлын цоорхой
нээдэг тухай мэдээллийг агуулдаг.
Impact буюу үйлчлэл талбар нь асуудал системд
ямар төрлийн үйлчлэл үзүүлдгийг тайлбарладаг. Жишээ нь энэ нь
үйлчилгээг зогсоох халдлагаас авахуулаад хэрэглэгчдэд өгч болох нэмэлт
зөвшөөрлүүд эсвэл халдагчид супер хэрэглэгчийн хандалт өгөх зэрэг
юу ч байж болно.
Workaround буюу тойрон гарах талбар нь
боломжит тойрон гарах арга замыг системийг шинэчилж чадахгүй байж болох
системийн администраторуудад олгодог. Энэ нь хугацааны шаардлагууд,
сүлжээний боломж эсвэл өөр бусад олон шалтгаанаас болдог байж болох
юм. Ямар ч байсан гэсэн аюулгүй байдлыг хөнгөнөөр авч үзэж болохгүй
бөгөөд нөлөөлөлд орсон систем эсвэл засвар нөхөөс хийгдэх аль эсвэл
аюулгүй байдлын цоорхойг тойрон гарах шийдэл хийгдэх
шаардлагатай.
Solution буюу шийдэл талбар нь нөлөөлөлд орсон
системийг засварлах заавруудыг санал болгодог. Энэ нь системд засвар
нөхөөс хийн аюулгүй ажиллуулах алхам алхмаар тест хийгдэж шалгагдсан арга
юм.
Correction Details буюу засварын нарийн
учир талбар нь CVS салбар эсвэл хувилбарын
нэрийн цэгүүдийг доогуур зураас тэмдэгтээр өөрчилж үзүүлдэг. Мөн энэ нь
салбар болгон дахь нөлөөлөлд орсон файлуудын хувилбарын дугаарыг бас
харуулдаг.
References буюу лавлагаа талбар нь ихэвчлэн
бусад мэдээллийн эхүүдийг өгдөг. Энэ нь вэбийн URL-ууд,
номнууд, захидлын жагсаалтууд болон мэдээний бүлгүүдийг агуулж болно.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Процессийн бүртгэл хөтлөх
Процессийн бүртгэл хөтлөх
Процессийн бүртгэл хөтлөх аюулгүй байдлын аргыг ашиглаж
администраторууд системийн эх үүсвэрүүдийг ашигласан байдал болон тэдгээрийг
хэрэглэгчдэд хэрхэн хуваарилсныг мэдэж болох бөгөөд энэ нь системийг монитор
хийх боломжийг олгодог. Мөн энэ арга нь хэрэглэгчдийн тушаалуудыг туйлын
багаар мөшгих боломжийг администраторуудад олгодог.
Энэ нь үнэн хэрэгтээ өөрийн эерэг болон сөрөг талуудтай. Эерэг талуудын нэг нь
халдлагыг орсон цэг хүртэл нарийсган олох боломж юм. Сөрөг тал нь процессийн
бүртгэл хөтлөлтөөр үүссэн бүртгэлүүд бөгөөд тэдгээр нь дискний зай шаардаж
болох юм. Энэ хэсэг процессийн бүртгэл хөтлөлтийн үндсүүдийг администраторуудад
таниулах болно.
Процессийн бүртгэл хөтлөлтийг идэвхжүүлж хэрэглэх нь
Процессийн бүртгэл хөтлөлтийг ашиглаж эхлэхээсээ өмнө үүнийг идэвхжүүлэх
хэрэгтэй. Үүнийг хийхийн тулд дараах тушаалуудыг ажиллуул:
&prompt.root; touch /var/account/acct
&prompt.root; accton /var/account/acct
&prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf
Идэвхтэй болгосны дараа бүртгэл хөтлөлт CPU
статистикууд, тушаалууд гэх мэтийг даган мөшгиж эхэлнэ. Бүртгэлийн
бүх бичлэгүүд уншиж болохооргүй хэлбэрээр байдаг бөгөөд тэдгээрийг
&man.sa.8; хэрэгсэл ашиглан үзэж болдог. Ямар нэг тохируулгагүйгээр
ажиллуулбал sa тушаал нь хэрэглэгч болгоны
дуудлагуудын тоо, нийт зарцуулсан хугацааг минутаар, нийт CPU
болон хэрэглэгчийн хугацааг минутаар, дундаж I/O үйлдлүүдийн тоо
гэх мэттэй холбоотой мэдээллийг дэлгэцэнд хэвлэн үзүүлдэг.
Тушаалуудыг ашигласан тухай мэдээллийг харахын тулд &man.lastcomm.1;
хэрэгслийг ашиглах хэрэгтэй. lastcomm тушаал нь
тухайн &man.ttys.5; дээр хэрэглэгчдийн ажиллуулсан тушаалуудыг
үзүүлэхэд хэрэглэгдэж болно, жишээ нь:
&prompt.root; lastcomm ls
trhodes ttyp1
Дээрх тушаал нь ttyp1 терминал дээр trhodes
хэрэглэгчийн ls тушаал ашигласан мэдэгдэж байгаа
бүгдийг дэлгэцэд харуулах болно.
Өөр олон ашигтай тохируулгууд байдаг бөгөөд &man.lastcomm.1;,
&man.acct.5; болон &man.sa.8; гарын авлагын хуудаснуудад тайлбарласан
байдаг.