2007-06-21

Линуксын талаарх бодрол

Миний хувьд Линукс гэж үйлдлийн системийг сонирхох болсоноор багагүй хугацаа өнгөрчээ. Саяхан нэгэн найз маань энэ Линукс гэдэг чинь Виндоуз шиг үйлдлийн систем юм уу гэж асуусан юм. Хариу болгож өөрийнхөө мэдэж байгаа болон хэрэглэснээс хойшхи үлдсэн бодол сэтгэгдэлээ бичие гэж бодлоо. Анх Линукс Торвалдс гэдэг оюутан залуу тухайн үед Миникс гэж Юникс суурьтай үйлдлийн систем байсаныг эх кодонд нь засвар хийж түүнийгээ Линукс хэмээн нэрийдэж кодыг нь нээлттэй тавьсанаар дэлхий даяар байгаа олон мянган кодерууд түүнийг өөр өөрийнхөөрөө хөгжүүлж түүнд байгаа алдаа дутагдал болон цоорхойг олж түүнийг хэрхэн засварлсан талаарх мэдээллээ солилцон өнөөдрийн хүртэл хөгжүүлж байна. Тийм ч учраас өнөөдөр Линуксийн маш олон хувилбарууд оршин байж тэдгээрийг маш олон сайн дурын кодерууд хөгжүүлж байна. Үүнд та ч бас оролцож түүнийг ашиглаж туршиж үзээд ямар нэгэн цоорхой илрэх юм бол түүнийгээ дэлхий даяар байгаа Линуксын сонирхогч нартай хуваалцвал та түүний хөгжилд өөрийн гэсэн хувь нэмэрээ оруулж байна хэмээн ойлгож болох юм. Мэдээж хүн л хийж байгаа юм чинь алдаа байж таараа түүнийг нь илэрүүлж засахад таны оролцоо хэрэгтэй юм. Гэхдээ энэ бол Майкрософт-н Виндоуз үйлдпийн системтэй харьцуулвал тийм ч том зүйл биш юм. Та интернэттэй бол анзаарсан байх Виндоуз чинь байнга сайжруулалт хий гээл байдаг гэтэл та Виндоуз-г худалдаж аваагүй бол мөнгөө нэхээл хамгаалалт энэ тэр найдах юм байхгүй болж байгаа биз. Тэгвэл Линукс дээр тийм хэрэг гарвал та интернэтрүү ороол өөрт тулгараад байгаа асуудлаа бусад хүмүүст дуулгахад таниас юу ч шаардахгүйгээр хэлээд яаж хэрхэн шийдвэрлэх арга замыг заагаад өгнө. Энэ бол нотлох албагүй ҮНЭН . Магадгүй та илүү их сонирхож байвал түүнийг өөрийн дураараа өөрчлөн эх кодонд нь өөрчлөлт хийснээр өөрийн гэсэн Линукс үйлдлийн системтэй болох боломжтой юм. Энэ бол та бидэнд олдож байгаа асар том боломж бололцоо гэж би бодож байна. Гэтэл бидний ихэнхийн маань өдөр тутмын хэрэглцээ болсон Виндоуз-н хувьд энэ маань боломжгүй зүйл юм. Яагаад гэж та бодож байж болох юм. Нэгэн жишээ авъя: энэ хоёр үйлдлийн системийг талхтай зүйрлэх юм бол Виндоуз маань нэгэнт идэхэд бэлэн болсон барьсан талх гэж болно. Түүнийг хийхэд тухайн Майкрософт компанид ажиллаж байгаа ажилчид бүх орц найрлага жорыг нь тааруулж удаан хугацаанд хийгээд болгоод бэлэн болсон талх буюу бүтээгдэхүүнийг таньд өгч байгаа юм. Тэгвэл Линукс таны гар дээр түүхий гурил чигээрээ очдог гэж бодвол ямар байна. Та түүгээр бөөрөнхий, гурвалжин гэх мэт хүссэн хэлбэрийн талхыг өөрийн дураараа барих боломжтой. Мэдээж ийм байлаа гээд таньд ажиллахгүй алдаагаар дүүрэн хэцүүхэн үйлдлийн систем очиж байна гэж бодож болохгүй шүү. Яагаад гэвэл энэ маань эх код нь нээлттэй үйлдлийн системтэйгээ хамт түгээгддэг онцлогтой. Түүнийг хэрэглэснээс гарсан алдаа дутагдалыг хэн нэгэн хүлээдэггүй тэгэх ч боломжгүй юм. Учир юу хэмээвээс Линуксийг хэрэглэхийг хэн нэгэн таньд тулгахгүй бөгөөд та зөвхөн өөрийнхөө хүслээр хэрэглэдэг болно. Үйлдлийн системтэй хамт яригддаг нэг зайлшгүй зүйл бол түүн дээр ажилладаг хэрэглэгчийн программ хангамж байдаг. Найзын маань асуусан шиг Виндоуз дээр ашигладаг Microsoft office, Photoshop, Yahoo messenger гэх мэт түүнд зориулсан программууд нь Линукс дээр ажиллах боломжгүй юм. Шалтгаан нь энгийн бөгөөд энэ хоёр системийн маань цөм нь өөр өөр байдагт оршино. Түрүүчийн талхаар зүйрлэх юм бол түүнийг барьсан технологи болон хөөлгөгч нь өөр гэж болох юм. Харин Виндоуз дээр ажилладаг программуудтай ижилхэн ашиглагддаг программууд байдаг. Жишээ нь: дээрх гурван программтай адилхан Линукс дээр хэрэглэгддэг программ бол OpenOffice, GIMP, Gaim messenger за мөн график зурагтай ажилладаг Виндоуз-н VISIO шиг Линукс дээр DIA гэж программ байдаг гэх мэтчилэн маш олоныг дурьдаад байж болох юм. Хамгийн гол хэрэглэгчдэд хэрэгтэй тал гэвэл энэхүү ЛИНУКС гэдэг үйлдлийг систем нь ҮНЭГҮЙ тараагддаг бөгөөд дагалдах хэрэглээний программууд нь бас ҮНЭГҮЙ түгээгддэг болно. Магадгүй та ҮНЭГҮЙ юм чинь муу гэж бодож байж болох юм. Таньд тийм биш, энэ бол зүгээр төөрөгдөл гэж хэлмээр байна бас хэрэглэж үзээд өөрийн дүгнэлтээ дараа нь хийгээрэй гэж хэлмээр байна. Таньд ИНТЕРНЭТ байхад та ЛИНУКС-г олж болно. Мөн Линуксын дагалдах программ хангамжуудыг та татаж аваад интернэт байхгүй тохиолдолд хэрэглэж болох юм. Нэг жишээ дурьдахад Линуксын нэг хувилбар болох ГНЮ/Линукс Дебиан гэж байдаг би өөрөө ашигладаг. Үүний сүүлийн хувилбар нь гэхэд 22 CD байх бөгөөд дотроо суулгаж ашиглаж болох 24000 орчим программуудыг агуулсан байдаг ба та тэдгээрээс өөрийн хүссэн программаа суулган ашиглаж болох юм. Мөн түүний талаарх заавар зөвөлгөө болон санал бодлоо www.debian.mn сайтаар зочилоод мэдэж үлдээж болох юм. Бас яагаад олон хувилбар гараад ирвээ гэж бодож болох юм. Виндоуз маань мөн Windows2000, WindowsXP гэх мэт олон хувилбар байдаг шүүдээ түүнтэй адилаар Линукс маань Дебиан, Өбөнтө,Федора гэх мэт хэд хэдэн хувилбар байдаг. Мөн Линукс төрлийн үйлдлийн систем хэрэглэснээр та бид өдөр тутмын асуудал болсон ВИРУС-с санаа зовохгүй байж болох юм. Энэ үйлдлийн систем маань ВИРУС-тэх МАГАДЛАЛ нь ТЭГ ХУВЬ-тай гэж үзэгддэг. Энэ бол маш том давуу тал биш гэж үү? Өнөөдөр та бидний өдөр тутамдаа хэрэглэдэг ИНТЕРНЭТЛИНУКС байхгүйгээр төсөөлөх аргагүй юм. Маш өндөр системийн хамгаалалт, хурдан шуурхай ажиллагаа, маш бага үзүүлэлт шаардах техникийн шаардлага нь түүнийг гол үйлчилгээ үзүүлэгч СЕРВЕР болгон ашиглах нэгээхэн шалтгаан болж байна гэж би боддог. Анх энэ үйлдлийн систем нь график хэсэггүй байсан нь зөвхөн өндөр түвшиний мэргэжилийн хүмүүс хэрэглэдэг байсаных юм. Энэ нь энгийн хэрэглэгчид хэрэглэглэхэд хүндрэлтэй байдгыг харгалзан график хэсэг нэмж суулгасанаар хэрэглэхэд хялбар болсон. Мөн та энэхүү системийг тэкст болон график орчины аль алинд нь ашиглах боломжтой. Энэхүү зүйлийг бичихдээ аль нэг үйлдлийн системийг муулаж нөгөөг нь сайшаах гэж бичсэнгүй зүгээр л өөрийн бодож явдаг бодлоо чадан яадан эвлүүлэн үсэг холболоо. Гэхдээ эцэст нь нэг зүйл хэлэхэд бид яагаад заавал өндөр үнэтэй систем хэрэглэж мөнгөө гарздах хэрэгтэй гэж БИДЭНД ӨӨР СОНГОЛТ БАЙНА!!! гэж хэлмээр байна. Цаг заваа гарздан энэхүү бодролыг маань уншсан таньд баярлалаа. Мөн өөрийн үзэл бодлоо хуваалцаж санаа оноогоо хэлнэ гэдэгт найдаж байна.

Цааш унших...

2007-06-18

Сүлжээний талаарх бодол

Өнөөдөрийг хүртэл гурван жилийн турш сүлжээний инженер гэдэг мэргэжлээр сурж байна. Гэвч яг мэргэжлийн хичээлүүдээ энэ жилээс л үзэж эхлэж байна. Бас өөртөө, үзэл бодлоо илэрхийлэх индэр болгох гэж нэгэн блог нээгээд хоёр сар гаран болж байна энэ хугацаа богинохон биш ч өөрийнхөө мэргэжилтэй холбоотой юм бичсэн нь цөөхөн байх юм. Ингээд энэ бодлынхоо үүднээс ер нь сүлжээтэй болон комьпютертэй холбоотой хүн болгоны бараг өдөр тутамдаа сонсож мэдэж байх хэрэг гардаг порт болон протокол гэж юу байдаг талаар уншиж сонирхож байсан юмаа чадан ядан бичье. Магад алдаа мадаг байхыг үгүйсгэхгүй тул уучлах буйза.

Бид өөрсдийнхөө өдөр тутмын амьдралыг комьпютер болон интернэтгүйгээр төсөөлөхөд бэрх болжээ. Тэгэхээр интернэт сүлжээ гэж ярихад магадгүй бидний зарим нэгний маань мэддэггүй эсвэл сонирхон үзэж байгаагүй тийм одоо арын албанд зогсдог төхөөрөмжүүд байдаг. Сүлжээний үндсэн төхөөрөмжүүд бол PC, HUB, SWITCH, ROUTER, REPEATER, CABEL за одоо үед кабель ашиглахгүйгээр утасгүй сүлжээ буюу WIRELESS NETWORK бас өргөнөөр ашиглах болсон байна. За тэгээд сүлжээг том жижгээс нь хамаараад LAN (байгууллагын сүлжээ) , MAN (хотын сүлжээ), WAN (дэлхийн сүлжээ) хэмээн ангилж үздэг. Сүлжээг зохион байгуулж байгаа хэлбэр буюу геометр зураглалаар нь гэх юмуудаа топологоор BUS, STAR, RING , HIERARCHIC гэж ангилдаг. За эдгээр хэлбэрүүдийг бас хооронд нь нийлүүлсэнээр бас илүү ашигтай сүлжээний хувилбарыг гарган авч болдог.

BUS топологи -бүх PC-нүүд нэг ерөнхий шугаманд холбогдсон сүлжээ ингэснээр сүлжээний бүх PC-нүүд хоорондоо шууд холбогдож болно.

RING топологи -PC бүр нь дараалан холбогдох бөгөөд энгийнээр бол тойрог байдлаар холбогдоно. Ингэснээр PC бүр нь тухайн сүлжээндээ зэргэлдээ хоёр PC-тэй л холбогдох бөгөөд бусадтайгаа тэдгээрээр дамжиж холбогддог.

STAR топологи -Нэг PC нь бусад бүх PC-үүдтэйгээ холбогдсон байдаг.

HIERARCHIC топологи -Энэ бол мэдээж нэг нь нөгөөгөөсөө удамшсан буюу шаталсан хэлбэртэй байдаг.

Өнөөдөр өгөгдлийн холбоонд TCP/IP загварыг өргөн ашиглаж байна. Энэ нь маш олон тооны протоколуудын цуглуулга юм. Анх энэ загвар маань 1970-аад оноос DoD (Departmentnof Defense) гэсэн нэртэй төсөл хэрэгжсэнээр үүссэн түүхтэй. TCP/IP протокол нь дөрвөн түвшинтэй байдаг. Ер нь сүлжээний протоколыг түвшингүүдэд хувааж хөгжүүлсэнээр протоколуудыг тус тусад нь хөгжүүлэх боломж олгодог.

1. Application буюу Хэрэглээний түвшин

Төгсгөлийн хэрэглэгчид мэдээллийг үзүүлэх болон доод түвшинд өгөгдлийн дамжуулдаг. Үндсэндээ мэдээллийг харуулах, кодлолийг тайлах, харилцааг хянах болон хэрэглээг зохицуулдаг.

2. Trancport буюу Дамжуулалын түвшин

Сүлжээний тогтвортой байдлыг хангах болон сегментийг шууд тогтсон холболтон дээгүүр дамжуулдаг. Үүрэг нь алдааг илрүүлэх , хянах болон өгөгдлийг сегментэд хуваах болон нийлүүлэх болно.

3. Internet буюу Харилцан холболт

Дээд түвшинээс ирсэн сегментийг пакеть болгон дамжуулдаг. IP хаяг ашиглан замчилдаг бөгөөд энэ нь тогтвортой бус буюу найдвар муутай холболт юм.

4. Network Access буюу Сүлжээнд хандах

Физик түвшинд битүүдийг дамжуулдаг бөгөөд сүлжээний хост бүрийн MAC хаягаар нь өгөгдлийг дамжуулдаг.

Эдгээр түвшингүүд нь өөр өөрийн тогтсон хэлэлцээр буюу протоколууд ашигладаг. Үүнд: Application layer: -File Transfer Protocol (FTP) -Hypertext Transfer Protocol(HTTP) -Simple Mail Transfer Protocol(smtp) –Domain Name Service(DNS) –Trivial File Transfer Protocol(TFTP)

Transport layer: -Transport Control Protocol(TCP) -Uder Datagram Protocol(UDP)

Interner layer: -Internet Protocol(IP)

Network layer: -Ethernet протокол бүр нь өөр өөрийн портыг чагнаж түүгээр өгөгдлийг дамжуулдаг.

Портууд

TCP болон UDP нь портуудын тусламжтайгаар мэдээллийг солилцдог. Хэдийгээр бид тухайн өгөгдлийг дамжуулахдаа IP хаягыг ашигладаг боловч ямар портоор уг өгөгдөл очихыг мэдэхгүй бол мэдээлэл дамжихгүй. Жишээ нь бидний сайн мэдэх вэб сервер 80-р порт дээр ажилладаг билээ. Нэг PC-нээс гарсан өгөгдөл нөгөө PC-д очихдоо тухайн өгөгдөл анх гарахад нь тодорхойлж өгсөн портоор л дамжигддаг. Дамжуулалд 2-н 16 зэрэг буюу нийт 65535 порт ашиглагддаг бөгөөд тэдгээрийн 0-1024 хүртэлх портуудыг администраторын буюу үндсэн хэрэглээнд стандарт болгон ашигладаг. Үлдсэн портуудыг хэрэглэгчид хуваан хэрэглэдэг. За ингээд зарим өргөн хэрэглэгддэг портуудын жагсаалтыг харуулъя.

Цааш унших...

2007-06-13

Basic commands in Linux and Windows

За сайн байцгаана уу? Өнөөдөр бидний мэдэх болсоор удаж байгаа Windows OS болон Linux OS хоёрт хэрэгдэгддэг ижил үүрэг ба хоорондоо төстэй эдгээрт өргөн ашиглагддаг командуудын талаар бичихээр шийдлээ. Үүнийг бичих болсон шалтгаан юу байв гэхээр бид хэдийгээр комьпютерийг график орчинд ашигладаг боловч заримдаа зайлшгүй команд ашиглах шаардлага гардаг билээ. Миний хувьд комьпютертэй найзлах болсоор бараг 3 жил гаран болох гэж байна. Анх юу ч мэдэхгүй эвдлээл шууд PC land процессороо тэврээл гүйдэг байлаа. Тэгээл хүн болгоноос янз бүрийн юм асуугаал шалгааж гарна. Хаана юу байдаг үйлдлийн систем гэж юу болох талаар ямар ч ойлголт байхгүй гайхаал ухаж байгаал эвдэлж орхино. Уйлах ч биш инээх ч биш үнэн хэцүү байдалтай байсхийгээл учирна за тэгээд анх Windows XP суулгаж байснаа яривал бөөн инээдэм аан. За тэгээд байж байтал Linux гэж нэг үйлдлийн систем хичээлээр үздэг юмдаа. Бүр юу ч ойлгохгүй баахан командан дунд төөрч орхивоо. Одоо ч бас сайн сураагүй л байна бага багаар урагшилж л байнее. Саяхан хэд хоног найзынхаа комьпютерийн BOOT-тэй жаал зууралдлаа янзалж чадсангүй. Уг нь өөрийгөө ер нь ямар нэгэн байдлаар яаж ийж байгаад комьпютерийг ажилуулаад засаад байж чадна гэдэгтээ итгэлтэй байсан маань худлаа болох шиг санагдлаа. Ер нь хүмүүсийн блог уншаад байхад голдуу өөрсдийн санаа бодолоо бичсэн байх юм. Би ч бас уг санаа нь тэгэж нээсэн боловч хэнд ч хэрэгтэй нь мэдэгдэхгүй юм бичээд байгаа ч юм шиг санагдах юм хэ аа харах юмдаа. Дараах зүйлсийг хакерийн их сургууль гэсэн нэгэн материалаас орчууллаа. Өөрт маань хэрэг болох юмдаа.

Windows болон Linux хоёрт хэрэглэгддэг сүлжээний үндсэн командууд нь:

Эдгээр юм байна.

Энэхүү командууд нь - Windows 98/Me/2000/NT/XP/2003

- LinuxSuse/Debian/Knoppix-т таарах юм байна.

Windows-н командууд:

Ø date системийн он сар өдрийг тохируулна

Ø time системийн цагыг тохируулна

Ø ver MS-DOS-н ямар хувилбарыг ашиглаж байгааг харуулна

Ø dir хавтасуудыг тэдэнд агуулагдаж байгаа дэд хавтсууд болон файлуудын жагсаалтыг харуулна

Ø cls ажлын талбарыг цэвэрлэнэ

Ø mkdir, md directory хавтсуудыг янзлах боломж олгоно

Ø chdir, cd directory идэвхтэй болон хавтсуудын харагдах нэрийг тохируулах

Ø rmdir, rd directory сонгосон хавтсыг устгана

Ø tree directory хавтсуудын бүтцийг тэкст хэлбэрээр харуулна

Ø chkdsk дискийг шалгах болон мэдээллийг харуулдаг

Ø mem системийн санах ойн ашиглалтыг харуулна

Ø rename, ren sourse dest файлын нэрийг тохируулна

Ø copy Файлыг хуулна

Ø move файлын хавтасын замыг өөрчлөнө

Ø type файлын төрөл харна

Ø more мэдээллийг хэсэг хэсгээр нь харуулна

Ø delete del file устгана

Tools буюу хэрэгсэлүүд

Ø ping host -host-г холбоотэй байгаа эсэхийг нь шалагана. ICMP ашиглаж бусад host-той пакет дамжуулдаг ба сүлжээ хүрэх алдаатүй замыг тодорхойдог.

-n,N явуулсан пакетийн тоо
-t
тусгай хүсэлтээр унатарсан болон бүх host-г хянана
ping 192.168.20.2
-
ping /h яаж хэрэглэх заавар харж болно

Øtracert host -пакетуудын машин хүрэх замыг харуулна

энэ команд нь замчлалыг хураангуйлан харуулдаг ба пакетийн эх болон очих хаягыг харж болно. Гэхдээ энэ хамгийн эхдээ 30 алхамыг хянаж чадна.

Tracert 192.168.2.3

-h N тусгайлан тэмдэглэх бол N ба хамгийн их алхам буюу үсрэлтийн заанж өгч болно.

-d харах гэж буй машины нэрийг харахгүй тохиолдолд хэрэглэнэ.

Ø Ipconfig -идэвхтэй байгаа интерфэйсийн мэдээллийг харуулна.( ethernet, ppp, etc, …)

-/all бүх мэдээллийг харуулна

-/renew name машин хаягаа DHCP сервэрээс шинээр авсаны дараах өөрчлөлтийг харж болно

-/release name DHCP-с хаяг авсан бүх машинуудыг харуулна.

Яаж хэрэглэх талаарх тусламжыг ipconfig /? Харж болно.

Ø route print -замчлалын хүснэгт харуулна

-үүгээр тогтмол замчлал, устгасан эсвэл дан ганц замчлалын мэдээллийг харж болно.

-print замчлалын хүснэгт харуулна

-delete замчлалыг устгана

-add шинээр замчлал оруулна

Яаж хэрэглэх талаарх тусламжыг route /? Харж болно.

Ø netstat -сүлжээний байдал болон алсын тогтвортой холбоотой байгаа машинуудын мэдээллийг харуулна

-a бүх холболт болон портуудыг сонсоно

-n хаяг болон портын дугаарын хэлбэрийг харуулна

-e Ethernet-н мэдээлэл харуулна

netstat – an

-Яаж хэрэглэх талаарх тусламжыг netstat /? Харж болно

Ер нь MS-DOS-н орчинд командын яаж хэрэглэх зааврыг гурван янзаар харж болно. Үүнд: 1. command /?

2. command /h

3. help command

Linux-н командууд

Ø pwd идэвхтэй хэрэглэгдэж байгаа директорийн нэрийг харуулна

Ø hostname машины хэрэглэж байгаа локал нэрийг харуулна

Ø finger user хэрэглэгчийн талаарх мэдээлэл

Ø ls директор доторх зүйлсийг харуулна

Ø cd directory идэвхтэй директорийг солино

cd /home/bataa

за тэгээд Линуксын хувьд маш олон командууд байдаг. Тэдгээрийг харж ашиглах бол www.debian.mn сайтаас ороод хичээл гэсэн хэсгээс үзэх боломжтой юм.

Командуудын хэрхэн ашиглах зааврыг хоёр янзаар мөн харж болно. Үүнд:

1. ls --help

2. man ls

Сүлжээний орчинд хэрэглэгддэг хэрэглүүр буюу tools

Ø ping host -машины холболт тогтсон эсэх ping www.yahoo.com

Ø traceroute host -пакетийн хэрхэн ямар замаар дамжиж байгааг харуулна

Ø ifconfig -идэвхтэй байгаа интерфэйсийн мэдээллийг харуулна.( ethernet, ppp, etc, …)

Ø route -замчлалын хүснэгт харуулна

Ø netstat -сүлжээний байдал болон алсын тогтвортой холбоотой байгаа машинуудын мэдээллийг харуулна

Linux болон Windows-н үндсэн командын харьцуулалт

Дараах командуудыг Linux-н shell буюу бүрхүүл мөн Windows-н MS-DOS цонхонд туршиж үзэж болно.

Дараах хүснэгтэнд Linux болон Windows-т хэрэглэгддэг командуудын адилхан хэрэглээтэйг нэг мөрөнд бичсэн байна.

Цааш унших...

2007-06-11

Secure Shell Protocol-гэн үү?

Би ягаад энэ талаар бичих болсон бэ? гэхээр өнөөдөр сүлжээгээр дамжуулан мэдээлэл солилцоход уг дамжуулж байгаа мэдээлэл маань ямар нэг алдаагүй очих газраа очих ёстой байдаг.Тэгэхээр үүнд ямар нэгэн зүйл туслах нь зайлшгүй хэрэг юм. Миний энэхүү тавиж байгаа мэдээлэл маань SSH-н талаар бөгөөд үүнийг Лхагваа гэдэг найз маань орчуулсан юмлдаа. Өөрийнх нь зөвшөөрсөний дагуу хэн нэгэнд нь хэрэг болох болов гэсэн үүднээс тавьлаа. Алдаа мадаг байвал уучилж бас хэлэх юм байвал зөвлөнө гэж найдаж байна.

Secure Shell Protocol or SSH

Тооцоолох машинд, алсын болон дотоод компьютерийн хооронд хамгаалалтын шугамын гол үндэс нь network protocol-той хамтаран ажиллдаг ssh (secure shell protocol) юм. Жинхэнэ хэрэглэгч нь алсын компюьтераа сонгон өөрөө л мэдэх нууц кодыг ашигладаг. SSH протокол нь мэдээлэлийн үнэмлэх код (message authentication codes-MACs) ба хоёр компьютерийн хоорондох шифр буюу нууцлал ба өгөглийн бүрэн бүтэн байдлыг хангадаг. SSH нь ердийн үедээ алсын компьютеруудын командуудыг шалгаж байдаг, гэвч бас хонгилыг(tunnel) дэмжиж байдаг ба TCP порт ба Х11 холболтуудаар илгээдэг. Файлуудыг дамжуулахдаа SFTP эсвэл SCP протоколуудтай хамтран ажиллдаг. SSH сервер нь ажиллаагүй байхдаа TCP 22-р портыг чагнаж байдаг. SSH – н хэрэглээний програм нь ердийн үедээ алсын холболтуудыг элсүүлэн өөртөө нэгтгэж байдаг.
Ерөнхийдөө одоо үед Unix-н тархац системүүдэд, SSH-н орчин үеийн unix-н системүүдэд маш сайн хэрэгжинэ хөгжиж байна. Үүнд: Sun OS, Mac OS, Linux-based түгээлтүүд, Microsoft Windows, BSD operating systems (including Mac OS X), and OpenVMS. үнэтэй, үнэгүй хувилбаруудын зарим нэг түвшингүүдэд бүрэн дүүрэн хэрэгжиж байна.

SSH-н түүх

1995 онд Тату Юлонэн, Финланд-н “Helsinki” технологийн их сургуулийн судлаач протоколийн анхны хувилбарийг загварчилж(одоо дуудагдаж байгаа SSH-1) өөрийн сургуулийн сүлжээний пасспортыг шинжлэхийг хатгаж сүлжээрүү довтолсон.Өөр хостоос тухайн сүлжээрүү нэвртэх нь түүний зорилго байсан ба TELNET ба rsh протоколууд нь гадны халдлагаас урьдаас баталгаа өгч хамгаалж чадахгүй байлаа. Юлонэн өөрийн хамгаалалтаа үнэгүй суулгаж, түүний үнэгүй хамгаалалтын биелэлт нь 1995 оны 7 сард гэхэд түүний багаж маш түргэн хурдтай нэрд гарч байв. 1995 оны эцэст гэхэд SSH хэрэглэгч нар 50 оронд 20000-р өсчээ.
1995-12 сард Юлонэн “SSH харилцаа холбооны нууцлалын” зах зээл ба SSH хөгжүүлэлтийн үндэсийг тавьсан. SSH-н програмын оргинал хувилбар нь free software-д ашиглагдаж, GNU libgmp, гэвч дараагийн хувилбарууд нь лиценцтэй болсон нь SSH харилцаа холбооны нууцлал нь хөгжил нь улам бүр өмчтөний програмруу талруу орсон. SSH харилцаа холбооны нууцлал нь дараа дараагийнх нь лиценц-г SSH F-secure-д(formerly known as Data Fellows), WRQ-д зарсан нь түүний зах зээл дээрх нэрэнд хар толбо үлдээсэн юм. SSH харилцаа холбооны нуудлалд Америкийн Калифорн-н Пауло Алто тусламж үзүүлсэн.
1996 онд тухайн протоколд засвар хийж
SSH-2-г загварчилсан. SSH-1 SSH-2 хоорондоо нийцдэггүй. SSH-2 нь ирээдүйн харилцаан холбооны нууцлалыг сайжруулах ба SSH-1 төгсгөл ирсэн. Илүү хамгаалалт, дээр жишээ, Diffie-Hellman кодыг өөрчилсөн ба бүхэл бүтэн МАСs-г шалгадаг болсон нь хүчилхэгжүүлсэн. SSH-2-н шинэ ирээдүй нь бүрхүүлийн ангийн тоонуудыг ажиллуулах чадвартай болсон ба энэ нь ганцаараа шууд холбогддог болсон.
1999 он, хөгжүүлэгчдийн хүсэж байсан зүйл нь хүчинтэй байгаа Free software 1,2,12-г лиценцлэх явдал байсан, дараа нь open source-д лиценцэлсэн юм. Björn Grönvall's нь дараа дараагийн хөгжүүлэлтийн кодыг үндэслэгч. Цөөн үгээр хэлхэд түүнээс хойш, OPENBSD хөгжүүлүэгчид хуваагдсан, Björn's code ба OPENBSD гэж. Björn's code нь OPENSSH-г хийсэн ба энэ нь OPENBSD 2,6-с эхлэн 2 хуваагдан хөгжсөн. Энэ хувилбар нь авсаархан салбарлсан ба OPENSHH ба бусад үйлчилгээний системүүд.
2000 он гэхэд ойролцоогоор 2,000,000 SSH хэрэглэгчидтэй болсон.
2005 он гэхэд OpenSSh маш алдаршсан ба хэрэглэгчид нь маш том тоогоор хэмжэгдэх болсон. 2006 онд
SSH-2 нь Internet standart-д орсон.

SSH-г ашиглах

SSH-тай хэрэглэгч нь төгсгөлийн протоколыг дэмжин ажилдаг, SSH-тай компьютертай алсын админ нь төгсглөийн via-р удирдан (өөр толгойгүй серверийг ашигладаг).
SFTP хослолоор, нууцлалын FTP-г сонгон суулгана, public key дэд бүтэц болон X.509 certificates-гүйгээр өшөө амархан ашиглана.
Нөөц rsync-тай хослол, хуулах ба толин файл үүсгэх болон хамгаалалттай.
SCP-тай хослол, хамгаалалтын rcp файлыг сонгон дамжуулах- энэ нь маш их UNIX-д ашиглагддаг.

Портоор дамжуулах эсвэл туннелээр, дахин дахин VPN сонгон бэлэн болдог. Энэ төрлийг ашиглахдаа (хамгаалалтгүй), SSH (хэрэглэгч эсвэл сервер) програм TCP/IP холболтын гадаад хавтасруу дахин чиглүүлж өгнө. SSH-н бусад бүлгийг дамжуулна(хэрэглэгч эсвэл сервер), дараа нь дараалалаараа хүссэн тодорхойлогдсон хоструугаа илгээгдэнэ. Илгээгдэх үед зөвхөн SSH хэрэглэгч болон серверийн хооронд нууцлалтай болон хамгаалалтай зам үүснэ. SSH дамжуулалтын портыг ашиглах үед database servers, email servers, securing X11, Windows Remote Desktop and VNC хандалтын холболтууд багтсан байдаг ба эсвэл энэтэй тэнцхүүц Windows file shares ашиглан дамжуулдаг. Энэ нь гол ашиглалт нь firewall-тай үед туннелэн холболт хийж холбогдоход хэрэглэгддэг ба нууцлалтай протоколд зориулагдсан байдаг ба энэ нь ердийн нууцлалтай биш байдаг. (VNC г.м)

SSH ба rdesktop. 3-н компьютер байх ба SSH ба rdesktop ажиллаж байна. 1 компьютер алсын сүлжээг хандалт хийж олж авахад ашиглагдах ба сүүлд нь чиний хүссэн rdesktop-г дэлгэцэнд гаргана. "ssh -L3389:<компьютерийн нэрийг> :3389 <компьютерийн алсын сүлжээндэх хандалтыг>". Дундах компьютер юу ч хийхгүй хэвийн байдалд байна. Эхний компьютер SSH-г ажиллуулан өөр нэг бүрхүүлийг нээх ба rdesktop төрөл нь дотоод сүлжээнийх байна.

Заримдаа чиний дотоод сүлжээрүү ямар нэгэн машин холбогддог, дараа нь өөр нэгэн машин хобогддог, ба Х маягтийг ажилуулж(xterm, matlab гэх мэт),

, тэдгээр нь чиний сүлжээнээс ажиллуулдаг. Энэ нь ялангуяа ямар нэгэн хэрэглэгчийн хостоос Х маягтийг ажиллуулан ашигладаг. Гэвч өөр сүлжээнээс холбогдохын тулд галт ханыг ssh –р нэвтлэн орох хэрэгтэй. Гол нь, чи ямар нэгэн сүлжээрүү цуваа зам үүсгэхийг хүсч байвал Х- цонхыг суулгах хэрэгтэй. Хамгийн сайн замыг үүсгэн ашиглахын тулд ssh-н ирээдүйн дамжуулалт Х11 юм. UNIX/Linux-д зориулсан, Х11 дамжуулалтад Х-option хэрэг болдог. ssh -X host.com

Х11 дамжуулалт нь олон тооны хостоор дамжигддаг ssh--X hostA.com --> ssh -X hostB.com --> ssh -X hostC.com туннелийг үүсгэдэг ба энэ нь алхам бүрдээ хэрэгждэг ВàC гэх мэтээр. Энэ нь гүйцэтгэхэд хангалтгүй бол Y-ч хэрэг болж магадгүй. ssh -X -Y hostA.com --> ssh -X -Y hostB.com --> ssh -X -Y hostC.com

SSH –тэй хэрэглэгч нь динамикийг дэмжин портоор дамжуулалт хийж ажилдаг(бусад програмууд SOCKS or HTTP –р proxy interface-тэй холбогдон дамжуулдаг ). SSH нь ерөнхийдөө proxy-д холбогдон web-ээ нууцлан ажиллдаг ба SSh нь proxy server-г ашигладаг.

SSH-тэй хэрэглэгч нь SSH-н хүсэлтийг харгалздаг(бусад програмуудыг гуйн ажиллдаг, жиш: network monitoring програм), network monitoring-н тусламжтайгаар автоматаар алсын серверийг удирдан хяндаг.

SSH-н зохион байгуулалт

Ssh-2-н дотоод зохион байгуулалт нь тусдаа түвшингүүдээс тогтдог. Эдгээр нь:

The transport layer (RFC 4253). Энэ түвшин нь гар удирдлаган дотоод түлхүүрийг солидог ба server –н нууцлалыг бас нууцлалыг суулгадаг, энэ нь өгөгдлийг шахах ба цэвэр байдлыг хангах баталгаа болж өгдөг. Нууц задлах дээд түвшиний интерфэйсд зориулан явуулах ба хүлээн авах нууц бичгэн пакетууд нь тус бүрдээ 32,768 byte-с тогтдог. Транспорт түвшин нь өгөгдлийг нууцлахад бэлтгэдэг ба өгөгдлийг голдуу 1 GB дамжуулсаны дараа юм уу 1 цагийн дараа түлхүүр-г солидог.

The user authentication layer (RFC 4252).Энэ түвшин нь хэрэглэгчийн(зохиогч) эрхийг удирддаг ба эрхийн функцийг хангах тоонуудыг агуулдаг. Жинхэнэ хэрэглэгч бол удирдах ба факт баримт нь ерөнхийдөө хэрэглэгчдийн буруу ойлголт: пасспортоо задлахад, энэ магадгүй SSH хэрэглэгчийн нууц задардаг, серверийнх ердөө ч биш. Сервер нь зөвхөн эх хэрэглэгчийн хүсэлтийг буцаана. Маш олон хэрэглэгчид дараах функцийг агуулгыг дагдаг.

Пасспорт: функц нь эх хэрэглэгчийн пасс-д зориулагдан агуулдаг ба пасс-г өөрчилдөг. Энэ функц нь бүх програмдуудад гүйцэтгэгдэхгүй.

publickey: функц нь эх хэрэглэгчид үндэслэгдсэн publickey-д зориулагдсан, голдуу DSA эсвэл RSA хосолсон түлхүүрүүдийн жагсаалтыг дэмждэг ба бусадтай нь ч хамтардаг ба Х,509 сертифкатыг дэмждэг.

keyboard-interactive (RFC 4256): олон талын серверын хаанаас нэг эсвэл олон мэдээлэл илгээдэг ба хэрэглэгчийн дэлгэц дээр илгээгдэх түлхүүр үгийг шаарддаг. Эх хэрэглэгчидэд (зохоигч нь) нэг хэсэг хугацааны пасспортоор хангаж өгдөг ба энэ нь дараах 2 юм. S/Key or SecurID.

Зарим Open SSh нь янз бүрийн хэлбэр дүрстэй пасспортоор хэрэглэгчийг хангадаг(жиш: PAM – энэ нь доогуураа зураастай эффиктэй пасспорт). Заримдаа удирдлагын болгоомжгүй байдлаас болж амархан хялбархан пасспортоор эх хэрэглэгчийн функцийг хангаж өгдөг.

GSSAPI эх хэрэглэгчийн функц нь нээлттэй төлөвлөгөөг дэмждэг, энэ нь SSH эх хэрэглэгч нь гадаад механизимуудыг ашигладаг. Эдгээр нь Kerberos 5 or NTLM, SSH –н хурал чуулганаар ганцаарчилсан гарын үсэг зурахыг дэмждэг. Энэ функц нь голдуу худалдааны байгууллагуудад ашиглагддаг. Хэдий тиймч Open Ssh нь GSSAPI-р гүйцэтгэгддэг.

The connection layer (RFC 4254). Энэ түвшин нь ерөнхий сувгуудыг тодорхойлдог. SSH сервисүүд сувгыг гуйх ба global гуйн ашигладаг. Ганц SSH-тэй холбогдоход олон тооны хэрэглэгч зэрэгцээ сувгуудаар холбогдож болно. Тус тусдаа өгөгдлийг удирдан дамжуулж болно. Онцгой өгөгдлийг өөр өөр сувгаар дамжуулдаг. Хэмжээг өөрчилхөд terminal window эсвэл гарах кодыг сервер талын процессороор ашиглан өөр өөр сувгаар дамжуулна. SSH хэрэглэгчийн хүсэлт нь хэрэглэгчийн сервер талын портоор дамжин global-д хүсэлт тавидаг. Стандарт суваг нь дараах төрлүүдтэй:

"shell" for terminal shells, SFTP and exec requests (including SCP transfers)

"direct-tcpip" for client-to-server forwarded connections

"forwarded-tcpip" for server-to-client forwarded connections

This open architecture provides considerable flexibility, allowing SSH to be used for a variety of purposes beyond secure shell. The functionality of the transport layer alone is comparable to TLS; the user authentication layer is highly extensible with custom authentication methods; and the connection layer provides the ability to multiplex many secondary sessions into a single SSH connection, a feature comparable to BEEP and not available in TLS.

Шифрлэлт /Cryptography /

Хамгаалалтын сайн арга гэдэг бол бололцоотой газар бүрт шифрлэх хэрэгтэй болдог. Сайн хамгаалагдсан үйлдлийн системд нь хэрэглэгчээс мөн үүнийг мэдлэгтэй ашиглахыг шаарддаг. Иймээс шифрлэлтийн програмууд хэрэгцээтэй болдог. Openssh нь интернетээр дамжин нууцлалтайгаар холбогдох, файл солилцох боломж юм. Санамсаргүй дугаар үүсгэгч системд процессын дугаар олгохоос эхлээд нууц үг үүсгэхэд хүртэл олон процесст хэрэглэгддэг.

String hash буюу мөр хуваах хувиргалт нь MD5 төрлийн хуваалтууд, S/K нууц үг болон бусад хуваалтанд хэрэглэгддэг. Шифрлэлтийн системийн анхны DES схемийг хэрэглэгч болон системийн нууц үгийн илүү найдвартай хамгаалах Blowfish схемээр сольсон юм. OpenBSD олон төрлийн шифрлэлтийн тоног төхөөрөмжтэй ажиллаж чаддаг.

Одоо ингээд OpenSSH-н талаар мэдлэгтэй болсон бол хэрхэн ажилуулах талаар доор дурьдсан буй.

OpenSSH

Хувь нэмэр болгон оруулсан Шерн Ли.

OpenSSH нь алсын машинуудад аюулгүйгээр хандах сүлжээний холболтын хэрэгслүүдийн олонлог юм. rlogin, rsh, rcp, болон telnet-ийг энэ програмаар шууд орлуулан ашиглаж болно. Мөн TCP/IP холболтууд аюулгүйгээр SSH-ээр туннел хийгдэж/дамжуулагдаж болдог. OpenSSH нь сэм чагналт, холболт булаан авалт, болон бусад сүлжээний түвшний халдлагуудыг үр дүнтэйгээр устгаж бүх трафикийг шифрлэдэг.

OpenSSH-г OpenBSD төсөл дэмжиж байдаг бөгөөд бүх сүүлийн үеийн алдааны засварууд болон шинэчлэлтүүд бүхий SSH v1.2.12 дээр тулгуурласан байдаг. Энэ програм нь SSH протокол 1 болон 2-той хоюулантай нь нийцтэй.

OpenSSH-ийг ашиглах давуу тал

telnet(1) эсвэл rlogin(1) ашиглаж байх үед сүлжээгээр илгээгдэж байгаа өгөгдөл цэвэр, шифрлэгдээгүй хэлбэрээр байдаг. Сүлжээний шиншлэгчид клиент болон серверийн хооронд хаана ч байсан гэсэн таны хэрэглэгч/нууц үгийн мэдээлэл эсвэл таны сессээр дамжсан өгөгдлийг хулгайлж чадна. OpenSSH нь ийм асуудлаас хамгаалж төрөл бүрийн нэвтрэлт таних болон шифрлэх аргуудыг санал болгодог.

sshd-г идэвхжүүлэх

sshd нь стандарт FreeBSD суулгацын явцад харуулагдах тохируулга юм. sshd идэвхжсэн эсэхийг харахдаа rc.conf файлаас дараах мөрийг шалгаарай:

sshd_enable="YES"

Энэ нь дараагийн удаа таны систем эхлэхэд OpenSSH-д зориулсан sshd(8) демон програмыг дуудна. Мөн /etc/rc.d/sshd rc(8) скрипт ашиглан OpenSSH-г эхлүүлэх боломжтой байдаг:

/etc/rc.d/sshd start

SSH клиент

ssh(1) хэрэгсэл rlogin(1)-тэй адил ажилладаг.

# 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-р эсвэл 2-р хувилбаруудад зориулан дамжуулан клиентэд зөвхөн аль нэгийг ашиглахыг хүчилж болно. 1-р хувилбарын нийцтэй байдал нь клиентэд хуучин хувилбаруудтай нийцтэй байх зорилгоор дэмжигдсэн байдаг.

Аюулгүй хуулбарлалт

scp(1) тушаал rcp(1)-тэй адил ажилладаг; энэ нь файлыг алсын машинаас эсвэл машин уруу, ялгаатай нь аюулгүйгээр хуулдаг.

# scp user@example.com:/COPYRIGHT COPYRIGHT

user@example.com's password: *******

COPYRIGHT 100% |*****************************| 4735

00:00

#

Өмнөх жишээн дээр энэ хостын хувьд хээ нь аль хэдийн хадгалагдсан болохоор scp(1)-ийг энд ашиглах үед шалгагддаг.

scp(1)-ээр дамжуулсан нэмэлт өгөгдлүүд нь cp(1)-тэй адил бөгөөд эхний нэмэлт өгөгдөлд файл эсвэл файлууд, хоёр дахь дээр очих файлыг зааж өгдөг. Файл нь сүлжээгээр SSH-ээр татагддаг болохоор файлын нэг эсвэл хэд хэдэн нэмэлт өгөгдлүүд user@host: хэлбэрийг авдаг.

Тохиргоо

OpenSSH демон болон клиентийн системийн дагуух тохиргооны файлууд /etc/ssh санд байрладаг.

ssh_config клиентийн тохируулгуудыг тохируулдаг бөгөөд sshd_config нь демоныг тохируулдаг.

Мөн sshd_program (анхдагчаар /usr/sbin/sshd) болон sshd_flags rc.conf тохируулгууд тохиргооны түвшнүүдийг илүүтэйгээр хангадаг.

ssh-keygen

Нууц үгүүдийг ашиглахын оронд ssh-keygen(1) нь хэрэглэгчийг шалгаж танихад DSA эсвэл RSA түлхүүрүүдийг үүсгэхэд хэрэглэгдэж болно:

% 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

ssh-keygen(1) нь шалгаж танихад хэрэглэгдэх нийтийн болон хувийн түлхүүр хослолыг үүсгэнэ. Хувийн түлхүүр ~/.ssh/id_dsa эсвэл ~/.ssh/id_rsa-д хадгалагдах бөгөөд харин нийтийн түлхүүр нь ~/.ssh/id_dsa.pub эсвэл ~/.ssh/id_rsa.pub-д DSA болон RSA түлхүүрийн төрлүүдэд зориулагдан хадгалагддаг. Тохируулга нь ажиллахын тулд нийтийн түлхүүр нь алсын машины ~/.ssh/authorized_keys файлд хийгдэх ёстой байдаг. Үүнтэй адилаар нийтийн түлхүүрүүдийн RSA хувилбар нь ~/.ssh/authorized_keys файлд бас хийгдэх ёстой.

Энэ нь нууц үгүүдийн оронд SSH түлхүүрүүдийг ашиглан алсын машин уруу холбогдохыг зөвшөөрөх болно.

Хэрэв нэвтрэх үгнүүд ssh-keygen(1)-д ашиглагдаж байгаа бол хувийн түлхүүрийг хэрэглэхийн тулд хэрэглэгчээс нууц үгийг нэвтрэх болгонд асуудаг. ssh-agent(1) нь урт нэвтрэх үгнүүдийг дахин дахин оруулах тэр зовлонг зөөллөж чадах бөгөөд Хэсэг 14.11.7 хэсэгт тайлбарлагдсан байгаа болно.

Сануулга: Төрөл бүрийн тохируулгууд болон файлууд нь таны систем дээр байгаа OpenSSH-ийн хувилбаруудаас шалтгаалан өөр өөр байдаг; асуудалтай учрахгүйн тулд та ssh-keygen(1) гарын авлагын хуудаснаас лавлах хэрэгтэй.

ssh-agent болон ssh-add

ssh-agent(1) болон ssh-add(1) хэрэгслүүд нь нэвтрэх үгнүүдийг дахин дахин бичүүлэлгүйгээр SSH түлхүүрүүдийг санах ойд дуудан ашиглаж болох аргуудаар хангадаг.

ssh-agent(1) хэрэгсэл нь түүн уруу дуудагдсан хувийн түлхүүр(үүд) ашиглан жинхэн эсэхийг шалгах танилтыг зохицуулна. ssh-agent(1) нь өөр програмыг ачаалахад хэрэглэгдэх ёстой. Хамгийн хялбартаа энэ нь бүрхүүл эсвэл илүү дэвшилттэйгээр ашиглавал цонхны удирдагч ажиллуулж болох юм.

ssh-agent(1)-ийг бүрхүүлд ашиглахын тулд үүнийг эхлээд бүрхүүлтэй цуг нэмэлт өгөгдөл маягаар ажиллуулах шаардлагатай. Хоёрдугаарт хэн бэ гэдэг мэдээллийг (identity) ssh-add(1)-г ажиллуулан нэмэх хэрэгтэй бөгөөд түүнд хувийн түлхүүрийн нэвтрэх үгнүүдийг өгөх хэрэгтэй. Эдгээр алхмууд хийгдсэний дараа хэрэглэгч харгалзах нийтийн түлхүүр суулгагдсан дурын хост уруу ssh(1) хийж чадах болно. Жишээ нь:

% ssh-agent csh

% ssh-add

Enter passphrase for /home/user/.ssh/id_dsa:

Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)

%

X11 дээр ssh-agent(1) хэрэглэхийн тулд ssh-agent(1)-ийн дуудлага ~/.xinitrc-д байх шаардлагатай. Ингэснээр X11-д ачаалагдсан бүх програмуудад ssh-agent(1)-ийн үйлчилгээнүүдийг үзүүлэх болно. Жишээ ~/.xinitrc файл иймэрхүү харагдах болно:

exec ssh-agent startxfce4

Энэ нь ssh-agent(1)-ийг ажиллуулах бөгөөд тэр нь эргээд X11 эхлэх бүрт XFCE-ийг ажиллуулна. Ингэж хийгдсэний дараа өөрчлөлтүүд нь үйлчлэхийн тулд X11 дахин эхэлсэний хойно өөрийн SSH түлхүүрүүдийг бүгдийг ачаалахын тулд ердөө л ssh-add(1)-ийг ажиллуулаарай.

SSH туннел хийх

OpenSSH нь шифрлэгдсэн сессийн үед өөр протоколыг хайрцаглах туннел үүсгэх чадвартай байдаг.

Дараах тушаал telnet-д зориулж туннел үүсгэхийг ssh(1)-д хэлж өгнө:

% ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com

%

ssh тушаал дараах тохируулгуудтай хэрэглэгдэнэ:

-2

ssh-ийг протоколын 2-р хувилбарыг ашиглахыг зааж өгнө. (хэрэв та хуучин SSH серверүүдтэй ажиллаж байгаа бол үүнийг битгий ашиглаарай)

-N

Тушаал байхгүй эсвэл зөвхөн туннел гэдгийг заана. Хэрэв үүнийг орхивол ssh ердийн сесс эхлүүлнэ.

-f

ssh-ийг ард, далд ажиллуулахыг заана.

-L

Локал туннелийг localport:remotehost:remoteport загвараар зааж өгнө.

user@foo.example.com

Алсын SSH сервер.

SSH туннел нь сонсох сокетийг localhost-ийн заагдсан порт дээр үүсгэн ажилладаг. Дараа нь локал хост/порт дээр хүлээн авсан дурын холболтыг SSH-ээр дамжуулан заасан алсын хост болон порт уруу илгээдэг.

Жишээн дээр localhost дээрх 5023 порт нь алсын машины localhost дээрх 23 порт уруу дамжуулагдаж байна. 23 нь telnet учир энэ нь SSH туннелээр аюулгүй telnet сесс үүсгэнэ.

SMTP, POP3, FTP гэх зэрэг ямар ч аюултай TCP протоколуудын гүйцэтгэлийг хялбаршуулахад үүнийг ашиглаж болно.

Жишээ 14-1. SMTP-д зориулан SSH ашиглан аюулгүй туннел үүсгэх

% ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com

user@mailserver.example.com's password: *****

% telnet localhost 5025

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mailserver.example.com ESMTP

Үүнийг ssh-keygen(1) болон нэмэлт хэрэглэгчийн бүртгэлүүдтэй цуг илүү үл үзэгдэх/төвөггүй SSH туннел хийх орчин үүсгэхэд ашиглаж болно. Түлхүүрүүд нь нууц үг бичихийн оронд ашиглагдаж болох бөгөөд туннелууд нь тусдаа хэрэглэгч маягаар ажиллаж чадна.

SSH туннелийн практик жишээнүүд

POP3 сервер уруу аюулгүй хандах

Ажил дээр чинь гаднаас холболтууд хүлээн авах SSH сервер байна. Бас тэр оффисийн сүлжээнд POP3 сервер ажиллуулж байгаа захидлын сервер байна. Таны гэр болон оффисийн хоорондын сүлжээ болон сүлжээний зам итгэж болохоор эсвэл итгэж болохооргүй байж магадгүй юм. Ийм учраас та өөрийн захидлыг аюулгүй аргаар шалгах хэрэгтэй юм. Үүний шийдэл нь өөрийн оффисийн SSH сервер уруу SSH холболт үүсгэж захидлын сервер уруу туннел хийх явдал юм.

% 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 сервер уруу туннел хийхэд ашиглах явдал юм.

% 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-д өөрчлөлтүүд хийснийхээ дараа sshd(8)-д өөрийн тохиргооны файлуудыг дахин дуудахыг дараах тушаалыг ажиллуулж та хэлж өгөх ёстой:

# /etc/rc.d/sshd reload

Нэмэлт унших материалууд

OpenSSH

ssh(1) scp(1) ssh-keygen(1) ssh-agent(1) ssh-add(1) ssh_config(5)

sshd(8) sftp-server(8) sshd_config(5)

IANA is responsible for assigning TCP and UDP port numbers to specific uses. The port numbers are divided into three ranges: the Well Known Ports, the Registered Ports, and the Dynamic and/or Private Ports.

The Well Known Ports are those in the range 0–1023. On Unix-like operating systems, opening a port in this range to receive incoming connections requires administrative privileges, although this all might change.[1]

The Registered Ports are those in the range 1024–49151.

The Dynamic and/or Private Ports are those in the range 49152–65535. These ports are not used by any defined application.

Contents [hide]

1 (Common) Ports 0 to 1023

2 (Registered) Ports 1024 to 49151 (Abbreviated)

3 (Dynamic/Private) Ports 49152 to 65535

4 References

5 External links

Цааш унших...