Sunday, March 04, 2007

InfoSec Mongolia - 2007


ISC уламжлалт конференсоо энэ оны 4-р сарийн 19-20-ны хооронд зохион байгуулах гэж байгаа юм байна. Сая Баярсайханы нийтлэл-с олж мэдлээ.

Microsoft-н сертификатны сургалтууд явуулдаг мөн олгодог, Kaspersky-н албан ёсны төлөөлөгч гэхээр манайхан ISC Mongolia компаныг андахгүй байх. Монголын мэдээлэл, харилцаа, технологын салбарт өөрийн гэсэн өнгө төрхтэй энэ компаны үйл ажиллагаа надад таалагдсан. Түрүү жилийн InfoSec-д суусанаа лав санаж байна. Khan Palace зочид буудлын 2 давхарт болж байсан. Гол танхимд илтгэлүүд явагдаж, ил танхимд компаниуд танилцуулгаа хийж байсан санагдаж байна. Гадаадаас гэвэл Kaspersky, Alvarion компаниудаас илтгэл тавьж байсан, мөн IT-н монгол компаниудын залуухан инженерүүд бас илтгэл тавьсан. InfoSec гэсэн нэрнээс нь ч харсан, ерөнхийдөө information security-рүү голлосон конференс байсан. Зохион байгуулалт үнэхээр сайн байсныг энд хэлэх хэрэгтэй байхаа.

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

За та бүхэнд ажлын амжилт хүсье.

Friday, March 02, 2007

Блог тойм

Японд ирснээс хойш өөрийн блог дээр нийтлэл бичих нь битгий хэл хүмүүсийн блогыг ч уншиж амжсангүйээ. Зээ сая уншсан блогуудаас сонирхолтой нийтлэлүүдийг тоймлон толилуулъеөө.

1. Энд Нагоя-д ажилладаг Болдоогийн "Криллээр шууд бичье!" хөрвүүлэгч веб програм их таалагдлаа. 10 жилийн өмнө мэйл бичиж байгаа юм шиг л санагдсан. Гол нь латинаар галиглаад "yaasan sonin yum be" гэж цохиход "яасан сонин юм бэ" гээд гараад ирж байгаам даа. Монгол гарын хөтөч байхгүй үед их хэрэгтэй эд байна, нэг сонирхоод үзээрэй.


2. "Монголын Developer-үүдийн цуглах газар" - гээд хөөрхөн сайт хийчиж, дөнгөж эхэлж байгаа хэдий ч нилээд далайцтай авах шинжтэй.

3. Homeland, Honor & Candor - USA-д мастер хийж ирээд эх орондоо уул уурхайн салбарт ажиллаж байгаа энэ залуугийн "Нутагтаа буцахын өмнөх бодол", "Нутагтаа очоод төрсөн сэтгэгдэлүүд", Оюутолгойн орд газрын талаарх мэргэжлийн хүний дүгнэлт болох "Таван жилийн өмнөхийг сөхвөл" зэрэг сонирхолтой нийтлэлүүд гарчээ.

Friday, February 23, 2007

EDU Relief - Mongolia

Монголын Боловсролыг Дэмжицгээе!
URL - http://www.youtube.com/watch?v=jPABWEYMBRM


Ишлэл: "... Монгол орон маань тээр тэнд хол байгаа болохоор бид нар эндээс юу ч хийж чадахгүй, хийсэн ч гэсэн ямар ч өөрчлөлт орохгүй гэж боддог байх... Би ч гэсэн, та ч гэсэн, хэн ч гэсэн бүх зүйлийг ганцаараа хийж чадахгүй. Харин бүх хүмүүс хувь хувьдаа ямарваа нэгэн зүйлийг хийж чадна. Тийм болохоор бүгдээрээ хамтдаа өөрсдийн эх орон Монгол улсынхаа боловсролын салбарт хувь нэмэрээ оруулцгаая. "

Wednesday, January 17, 2007

Шинэ .МN домэйн сервер нэмэгдлээ

МIX(Mongolian Internet Exchange) дээр гарсан гэмтлээс болж .MN домэйн нэрүүд олдохгүй болсон тухай 11 сарын нийтлэлдээ дурдаж байсан билээ. Харин энэ удаа Датакомын шинэ домэйн сервер ns3.magic.mn(202.131.224.80) нэртэйгээр МобиНет-н IP zone-д ажиллаж эхлээд байгаа тухай дуулгахад таатай байна. Асуудлыг нааштай хүлээн авч, түргэн шуурхай шийдвэрлэж өгсөн Датаком компанийн Техникийн албаны захирал Г.Энхболд-д болон инженерүүддээ талархал илэрхийлье.

MобиНетийн IP zone-д .МN домэйн сервер ажиллаж эхэлснээр, МобиНетээс интернетийн үйлчилгээ авч байгаа байгууллага, хэрэглэгчдийн хувьд MIX дээрх гэмтэлээс үл хамааран .МN домэйн нэрийн үйлчилгээг илүү найдвартай авах боломжоор хангагдах юм.

PS: Өмнө нь .МN домэйн нэрийн АНУ-д 6, Монголд 2 сервер ажиллаж байсан бол одоо Монголд байгаа сервер дээр 1 нэмэгдэж нийт 9 сервер ажиллаж байна.

Monday, December 25, 2006

Midas/Monita-гийн 2006 оны шилдэг сонголтууд

Дуугүй байя гэсэн ёстой хэл загатнаад байж болдоггүйээ... Уг нь хүмүүсийн хөдөлмөрийг доош нь хиймээргүй л байна, гэхдээ л энэ оны шилдэгүүдийг шалгаруулсан нь гэж IT-д зүтгэдэг хүмүүсийг дэндүү басамжилсан хэрэг болжээ... Номинацууд нь ч гэж үнэн шогийн, тоо нь гүйцэхгүй болохоор нь нэмээд байсан юмуу даа...

Номинацууд:
1. Интернетийн шилдэг үйлчилгээ
2. Холбооны багцийн шилдэг үйлчилгээ
3. МХХТ-н шилдэг сургалт
4. Шилдэг програм хангамж
5. Шилдэг веб
6. Борлуулалтын дараах шилдэг үйлчилгээ
7.
МХХТ-н зээлийн шилдэг үйлчилгээ
8. Шилдэг компьютер
9. Шилдэг хэвлэх төхөөрөмж
10. Шилдэг хувилах төхөөрөмж
11. Шилдэг гар утас
12. Хамгийн олон нэр төрлийн цахилгаан бараа борлуулагч
13. Хамгийн олон нэр төрлийн
МХХТ-н бүтээгдэхүүн борлуулагч
14. Дэвшилтэт технологийн бүтээгдэхүүнийг анхлан нэвтрүүлэгч
15. МХХТ-н шилдэг реклам

Зээ нэг иймэрхүү, хараад байхад бас ч гэж боломжийн ч юм шиг. Тэгсэн "MXXT-н зээлийн шилдэг үйлчилгээ" гэдгийг ёстой толгой хүлээж авахгүй байна. Зээлийн шилдэг үйлчилгээ нь IT-д одоо ямар хамаа байдын бол доо. Хараад байхад IT гэдгийг computer гэдэг төмөр хайрцагтай холбоотой гэж ойлгоод байх шиг байгаан. Тэрийг худалдаж авахад зээл олгохоор "IT-н шилдэг зээлийн үйлчилгээ" болчдийн байна. За тэгсэн "МХХТ-н шилдэг сургалт" гэдэгт нь "Best төв - компьютерийн анхан шатны сургалт" гэжийнэ. Анхан шатны сургалт гэдэг нь одоо Word, Excel заадаг санагдаад байхын, эсвэл 10 хуруугаар бичихийг ч заадаг билүү... Яадахад Datacom-c зохиосон APNIC-н сургалтыг оруулчихгүй яасан юм бол доо гээд энүүхэндээ ярилцаад амжтал, "өөрөө нэрээ дэмшүүлж тэрнийхээ хойноос гүйж байж шалгардаг" гэнэ гэж тайлбарлацгаах юм.

За тэгээд гадны баахан электрон барааг шалгаруулснаа ард нь компаны нэрийг нь бичиж, албан ёсны гэрээт борлуулагчийг нь хэлж байгаан байхаа. Юуг шалгаруулаад байгааг нь нэг их ойлгосонгүй... Өчигдөрхөн MCS шилдэг брэнд компьютерээр шалгаруулсан Athena-гаа рекламдаад л байна лээ... "MIDAS/Monita-г шалгаруулсан оны шилдэг компьютер" гээд л...

"Интернетийн шилдэг үйлчилгээ", "Холбооны багцийн шилдэг үйлчилгээ", "Шилдэг програм хангамж" гэдэг нь бол чихэнд арай чимэгтэй сонсогдож байна.

Энэ байгууллагаас шалгаруулсан энэ сонголтууд чинь үнэхээр ядмаг юм байна ш дээ. Бид нар үүнээс дээрхэн шалгаруулалт хийчиж чадахгүй гэжүү залуусаа...

RBL гэж юу вэ?

RBL-г тойрсон асуудлуудтай нилээд олон тулгарч байсан, мөн хүмүүс ч нилээд асуудаг тул энэ талаар ярилцъя.

RBL гэж юу вэ? хэрхэн ажиллах вэ?
RBL гэдэг нь Realtime Blackhole List гэсэн үгийн товчлол бөгөөд спам, вирус тарааж буй IP болон домэйн нэрүүдийг бүртгэж байдаг систем юм. Хамгаалалт муутай серверээр spam trap буюу занга тавьж, түүгээр дамжуулан спам, вирус явуулахыг оролдож байгаа IP/домэйнуудыг бүртгээд сууж байна гэсэн үг юм. Ийм төрлийн нийтэд зориулагдсан нилээд олон системүүд байх ба ихэнх нь судалгаа шинжилгээний ажилд зориулагдсан байдаг. Yahoo зэрэг өргөн цар хүрээтэй мэйл системтэй газар гадны зүйлд найдалгүйгээр өөрийн RBL-тэй байх нь бий.

Мэйл серверүүд гаднаас SMTP холболт үүсэх тоолонд RBL-үүдрүү асуулга явуулж шалгана гэсэн үг юм. Хэрэв энэ мэйл серверийн асуусан аль нэг RBL-д тухайн IP бүртгэгдсэн байвал, сервер холболт үүсгэхээс татгалзаж, энэ талаар товч тодорхой хариу өгнө. Аль RBL-үүдээс асуух вэ гэдгийг админ урьдчилж зааж өгсөн байх ба олон найдвартай RBL-с асууснаар спамтай тэмцэж чадна.

RBL-д орсон тохиолдолд ямар шинж тэмдэг илрэх вэ?
Мэдээж мэйл явахгүй буцаж ирэх асуудлууд гарна(яваад таг болно гэсэн үг биш шүү!). Хүлээн авч байгаа талын SMTP мэйл сервер холболт үүсгэхээс татгалзах тул та энэ талаар тодорхой дурдсан мэйлийг хүлээн авах болно.

Миний IP RBL-д орчихсон юм болвуу?
http://www.robtex.com/rbls.html энэ хаягаар орж шалгаж үзээрэй. Хоосон цонхонд IP хаягаа бичээд GO товчин дээр дарна. 100 орчим RBL-д хайлт хийн үр дүнг танд үзүүлэх болно. Улаан мөрүүд гарч ирвэл таны IP тухайн RBL-д бүртгэгдсэн гэсэн үг юм.

Яагаад RBL-д бүртгэгддэг вэ?
Шалтгаан нь: галтхана, router зэрэг сүлжээний төхөөрөмжийн хувьд түүний цаана байгаа NAT хийгдсэн дотоод сүлжээний Windows PC-нүүд вирүстсэний улмааc сүлжээний төхөөрөмжийн гадаад IP-г ашиглан спамдаж байна гэсэн үг юм. Мэйл серверийн хувьд харин та гадны спамыг өөрөөрөө дамжуулж байна гэсэн үг дээ. Энэ нь таны мэйл сервер openrelay маягаар ажиллаж байна(хаа хамаагүй газрын мэйлийг relay хийх буюу дамжуулж байна), эсвэл таны спам/вирус филтер муу байна гэсэн үг юм. Мөн зарим тохиолдолд мэйл серверийн Reverse DNS бичлэг байхгүй бол бусад серверүүд SMTP холболт үүсгэхээс татгалздаг тул Reverse DNS бичлэг хийлгэхээ мартуузай!

Миний галтхана, router, мэйл сервер RBL-д орчиж, одоо яах вэ?
Таны галтхана, эсвэл router-н IP RBL-д оржээ. Мэдээж бүртгэгдсэн RBL-үүдийн бүртгэлээс өөрийн IP-г хасуулах арга хэмжээ авна. Хасах процесс RBL-үүдээс шалтгаалан янз янз байна. Зарим нь онлайн форм бөглүүлээд хялбархан хасчихдаг байхад, зарим нь зохисгүй зүйл хийсэн түвшинээс шалтгаалан мөнгө төлөхийг шаардана. Мөнгө төлөх шаардлагагүй ч нилээд хүнд шаардлага тавьж байж бүртгэлээс хасдаг газрууд байна. Тавигдах шаардлагууд: тухайн галтханаар NAT хийгдэн гарч буй бүх PC-ны вирусыг цэвэрлэх, хэрэв мэйл сервер бол openrelay хийхгүй байх, спам болон вирус филтерээ сайжруулах гэх зэрэг... За би ингэж, тэгэж системээ сайжрууллаа гэж мэйл бичээд хариуг нь хүлээн авах хүртэл 7-10 хоног лав шаардана. Гэтэл мэйл ажиллахгүй доголдоод байдаг...

Яаралтай арга хэмжээ авах шаардлагатай бол галтхана, router-н хувьд IP-г нь солиод хэсэгхэн хугацаанд аргалж болох юм. Харин вирусээ цэвэрлэхгүй бол дахиад л BL-д орно. Хэрэв PC-г хэрэглэж байгаа хүмүүс энэ талаар ямар ч ойлголтгүй, байгууллагa дотроо чанга дүрэм мөрддөггүй бол вирусыг цэвэрлэж дуусна гэж байхгүй. Тиймээс галтханынхаа 25-р портыг хаан, зөвхөн зөвшөөрөгдсөн ганц мэйл серверээр(дээр нь спам/вирус филтер ажиллаж байгаа) мэйл трафикийг дамжуулах арга байж болно. Энэ нь ISP зэрэг үйлчилгээ үзүүлдэг газруудад илүү тохиромжтой.

Мэйл серверийн хувьд IP-г солино гэдэг хүндрэлтэй асуудал, DNS бичлэг шинэчлэгдэхэд дор хаяж нэг өдөр шаардагдах тул тэр хооронд мэйл хүлээн авах боломжгүй болно. Мэйл серверийнхээ спам/вирус филтерийг сайжруулахаас гадна, өөрийн болон гадны RBL-г ашиглах, relay хийх IP Zone, IP хаягуудыг нарийвчлан тогтоож шаардлагагүй бол relay хийхгүй байх нь хамгийн үр дүнтэй болохыг анхаараарай.


Friday, December 22, 2006

UBP 12 сар

Өчигдөр уламжлалт 12-р сарын Unix Beer Party болж өнгөрлөө. Байнга уулздаг газар болох "Их Монгол" шинэ жилийн тарифтаа шилжээд өөр болчиж, ойрхон Dublin гээд газар орцгоолоо. Байнга ирдэг хүмүүсээс Энхбаяр, Номин, Даваасүрэн ирсэн байсан. Шинэ хүмүүс гэвэл ЭМШУИС-с Баянмөнх, Ivanhoe Mines-c Баттөр гээд 2 залуу ирсэн байсан. Дөлөө, Нүүнээ хоёрын холын сониноос сонсохын дээр, шинэ хоёр залуу маань нилээд сонирхолтой яриа өрнүүллээ. Хол явсан хүнээс үг сонс гэдэг дээ, манай хоёр ч их юм сонсож мэдэж ирсэн байна. Явахаасаа өмнө LPI(Linux Professional Institue)-г Монголдоо байгуулна гэж ярьж байсан бол одоо тэр талаараа нилээд ажил хэрэгч төлөвлөгөөтэй байгаа бололтой. Бээжин дэхь LPI-н төвөөр зочилсон хийгээд сургалтынхаа талаар өөрсдөө блог дээрээ бичих байх, тэр үед нь та бүхэн сонсоно биз.

Орчуулгын талаар нилээд ярилцлаа... Мэдээллийн технологын нэр томъёог орчуулах хэрэг байна, байхгүй гэхчлэн нилээд маргалдлаа. FreeBSD Handbook-н орчуулагдсан бүлгүүдээс уншиж, ажилдаа нэмэр болж байгаа талаар Баянмөнх анд маань хэлж байсан нь нилээд урам нэмлээ.

Мөн "IT чиг хандлага" нэрийн дор болох лекцийн талаар, Их Дээд сургуулиудын мэргэжлийн ангийн хичээлийн хөтөлбөрт юникс төрлийн системийг заах талаар, за тэгээд дээрхэн ict.mn mailinglist-р тараагдсан Ерөнхийлөгчөөс эхлээд манай бүх Улсын Их Хурлын гишүүд, Яам Газрын дарга нарын мэйл хаягын жагсаалтын талаар ярилцаж баахан инээлдэв... Учир юув гэхээр миний санаж буйгаар boogii...@yahoo.com гэсэн мэйл хаягтай төрийн нарийн бичгийн дарга байвал яахуу?

Уржигдар болоод өнгөрсөн MIDAS/Monita-с зохион байгуулсан IT-н шинэ жилийн талаар нилээд шүүмжлэнгүй яриа сонслоо. "Электрон бараа шалгаруулдаг IT-н шинэ жил" гэсэн яриа гараад байгаа бололтой шүү хүмүүсээ.

За тэгээд миний хувьд хамгийн сүүлийн UBP-даа оролцоод сэтгэл өндөр байноо. Надад амжилт хүсэж, гаргаж өгсөн хүмүүстээ баярлалаа.



Thursday, December 21, 2006

Locking user accounts

Саяхан MUG-н хэлэлцүүлэг дээр нэг гишүүн хэрэглэгчийн эрхийг яаж түр хугацаанд хаах вэ? гэж асуусан байсан. Түүний хариултыг энд товчхон өгье.

Хэрэглэгчийн эрхийг идэвхгүй болгохын тулд 1-рт түүний нэвтрэх үгийг, 2-рт түүний ажиллах бүрхүүлийг идэвхгүй болгох хэрэгтэй.

Fedora болон Redhat дээр usermod тушаал дээрхийг хоёуланг давхар гүйцэтгэж чадна. Үүний тулд дараах тушаалыг өгнө:

# usermod -L -s /dev/null username

Энэ тушаалыг өгснөөр /etc/passwd файл доторх тухайн хэрэглэгчийн бүрхүүл /bin/bash эсвэл /bin/sh-с /dev/null болон өөрчлөгдөнө. Харин /etc/shadow файл доторх түүний кодлогдсон нэвтрэх үгийн урд "!" тэмдэг нэмэгдсэнээр энэ нэвтрэх үг хүчингүй болж, улмаар энэ хэрэглэгч системд нэвтрэх боломжгүй болно.

Solaris-н хувьд хэрэглэгчийн нэвтрэх үгийг идэвхгүй болгохын тулд:

# passwd -l username

бүрхүүлийг идэвхгүй болгохын тулд:

# passmgmt -m -s /dev/null username

тушаалыг өгнө. Администратор /dev/null-н оронд TITAN-ы noshell програмыг ашиглаж болох юм. noshell програм нь бүх амжилтгүй нэвтрэх оролдогыг syslog-руу бүртгэдэг онцлогтой.

Буцааж сэргээхдээ:

# usermod -U -s /bin/bash username

# passwd -u username
# passmgmt -m -s /bin/bash username

PS: /etc/passwd болон /etc/shadow файлуудыг гараар засаж болохгүй!

Monday, December 11, 2006

Мэдээллийн Технологын орчуулгын талаар ...

Ойрд орчуулгын ажилтай зууралдаад тэрүү энэ асуудлаар дотроо бодож явлаа. Дөлөө энэ талаар блог бичнэ гэж байсан, тэрийгээ бичжээ. Ерөнхий санааг нь гаргасан байна, дээр нь бага сага зүйл нэмье.

MUG-н зүгээс "FreeBSD Гарын Авлага"-г орчуулж эхлээд байгаа билээ. Би хувьдаа энэ орчуулгын ажилд оролцож, нэг бүлгийг нь орчуулж эхлээд байна. Зөвхөн номыг орчуулахаас гадна, Мэдээллийн Технологын нэр томъёог орчуулах ажил давхар явагдаж байгаа болохоор энэ ажил жаахан удаан явж байгаа талтай. Ер нь орчуулга хийнэ гэдэг санасан шиг амархан ажил биш юм байна гэдгийг нилээд ойлгож авсан. Хүмүүст ойлгомжтой байхын дээр, чанартай сайн орчуулга хийхийн тулд их хөдөлмөр шаардана.

Тухайн нэг өгүүлбэрийг орчуулахын тулд эхлээд англи хэлний эх өгүүлбэрийг өмнөх өгүүлбэр, бүлгийн утга санаатай авцалдуулан сайтар ойлгож авна. Өгүүлбэрийг ойлгохын тулд мэдээж мэргэжлийн дадлага туршлага их хэрэгтэй санагдсан. Хичнээн хэл мэддэг байгаад сайн орчуулга хийж чадахгүй... Нэгэнт ойлгож авсан тул монгол өгүүлбэр болгоод буулгачихна. Дараа нь нэр томъёо, үгийн сонголт гэж нилээд том асуудал тулгарнаа... Нэр томъёог орчуулахын тулд англи хэлний тайлбар толь болон тухайн нэр томъёоны мэргэжлийн тайлбарыг уншина. Жишээ нь: "stateful firewall" гэдгийг орчуулах гэж нилээд бодсон. Гаднаас үүссэн холболтууд "state" буюу ямар нэг "төлөв"-т байдаг талаар ойлголттой байсан тул "төлөвт галтхана" гэж орчуулахаар шийдсэн. Мөн "firewall" гэдгийг хоёр үг нийлж нэг шинэ үг үүсгэж байгаа тул "галт хана" биш, "галтхана" гэж бичих нь зүйтэй санагдсан тул нийлүүлж бичиж байгаа... Мөн "source IP address" гэдгийг "эхлэл IP хаяг" гээд эвтэйхэн хэлчихэж болж байхад "destination IP address" гэдгийн destination-д оноочих нэр үг олж чадалгүй "очих IP хаяг" гээд орчуулчихсан байдаг...

Зарим үг яг сайхан таарсан үг олдож байхад, заримыг үнэхээр чадахгүй тул хамгийн дөхөм үгийг сонгож тавих байдлаар одоогийн байдлаар орчуулгаа хийж байна даа. Яваандаа бүх бүлгүүдийг орчуулж дууссаны дараа нэр томъёогоо эргэж нэг харъя гэж g0mb0 ахтай ярилцсан байгаа.

Гэх мэтчилэн орчуулгын талаар нилээд олон асуултууд тулгарсан тул Галаарид гуайн блогоос "Залуу орчуулагчид өгөх зөвлөгөө-1,2"-г уншсаны дараа Мэдээллийн Технологын орчуулгын талаар зөвлөгөө өгөөч гэж гуйсан билээ. Бодвол түүний хариу байх Галаарид гуай шинэ нийлэлдээ IT-н орчуулгын талаар нилээд дурдсан байна лээ. Ер нь мэргэжлийн бус хүмүүс "үг болгоныг орчуулаад яах юм бэ? жишээ нь компьютер гэдгийг орчуулж яахийн, хүн болгон ойлгож байхад" гэсэн байр сууринаас ханддаг. Галаарид ах энэ талаар:

"Түгээмэл бөгөөд тогтвортой нэр томъёо, тухайлбал IT-гийн нэр томъёонуудыг орчуулалгүй хэрэглэх нь аль ч утгаараа зүйтэй байх. Мэргэжлийн нарийн нэр томъёонуудыг орчуулах гэж оролдон орчуулга биш, тайлбар хийчихсэн байх нь олон тохиолддог. Ингэхийн оронд тэр хэвээр нь, зарим тохиолдолд монгол дуудлагаар ашиглаж хэвших нь дээр ч юм шиг..."

гэжээ. Би хувьдаа эхний өгүүлбэртэй 100% санал нийлэхгүй байна. Би хувьдаа:

"...огт шинээр, зохиомлоор үүсгэсэн үгнээс бусдыг орчуулах боломжтой гэж боддог. Энэ салбарт ажилладаг болоод ч тэрүү, ер нь IT-н нэр томъёог орчуулах зайлшгүй шаардлагатай гэж боддог. Яахав орчуулга муу, эсвэл тухайн үг дэндүү тогтвортой байвал хүмүүс хэрэглэхгүй үлдэнэ л биз. Мөн орчуулга шаардаад байгаа үгсийг хүмүүс сайн дураараа янз янзаар орчуулж байгаагаас энэ талын хэлшил зүгширч өгөхгүй байх шиг санагддаг. Стандарт гаргаад хэвшчихвэл бүгд хэрэглээд эхлэнэ гэж боддог. Өөрөө орчуулга хийж байгаа болохоор тэр юмуу монгол үгээ хэрэглээд ирэхээр сэтгэлд ойрхон буугаад байх болсон."

Үнэхээр сүүлийн үед мэргэжлийнхээ нэр томъёог монголоороо хэрэглэх үнэхээр таалагдаад байгаа. Орчуулганд оролцож байгаа Нацаг, дээр чатлахдаа "install" гэдгийн оронд "суулгац" гэж хэрэглэсэн нь надад сайхан санагдсан... Мөн энд жишээ дурдахад "build" гэдгийг би "үүсгэх" гэж орчуулаад байсан бол g0mb0 ах "бүтээх" гэж орчуулсан байсан нь илүү оновчтой санагдаад зассан байгаа.

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

Wednesday, December 06, 2006

Centralized Logging буюу SyslogNG-н талаар товчхон

Central Logging Server буюу Төвлөрсөн Бүртгэлийн Серверийг SyslogNG буюу Syslog New Generation-ий тусламжтай хэрхэн зохион байгуулах талаар товчхон танилцуулъя.

Ач холбогдол: Хүмүүс ийм юм болохгүй байна, тэр нь сонин ажиллаад байна гэхэд миний хэлдэг ганц үг бол "Логоо шалга!". Системийнхээ логыг уншина гэдэг нь өвчтэй хүнээс таны юу өвдөж байна? гэж асуусантай яг адилхан санагддаг. Ихэнх тохиолдолд системийн яг юу нь болохгүй байгаа нь лог дээр дурайтал бичээтэй байдаг. Гэхдээ... лог уншина гэдэг цаг авсан ажил... хэрвээ олон сервертэй бол логыг уншаад дуусна гэж байхгүй юм болно. Тэгэхээр нэг арга зам бол бүх серверүүдийн логыг нэг сервер дээр цуглуулж, түүнийгээ өгөгдлийн баазруу хийгээд түүн дээрээ хайлт шүүлт хийх арга юм. Мэдээж веб интерфэйс байвал бүр сайн хэрэг... Тэгвэл энэ бүхнийг "SyslogNG + MySQL + php-syslog-ng"-н тусламжтай хийж болно.

Ажилллах зарчим: Тэгэхээр бүх логыг цуглуулж байх нэг сервер байна. Түүн дээр SyslogNG, MySQL суусан байх ба веб интерфэйс байдлаар php-syslog-ng ажиллана(мэдээж Apache+PHP суусан байх ёстой).
- Бусад серверүүд(client) логоо энэ серверрүү шиддэг байхаар тохируулагдсан байна.
- SyslogNG TCP/UDP 514-р портон дээр логуудыг хүлээн авч энгийн файлруу эсвэл pipe файлруу SQL Insert query байдлаар бичнэ.
- Бид энэ pipe файлыг аван цааш MySQL баазруу бичнэ.
- Хэрэглэгч php-syslog-ng веб интерфэйсээр бааз дээр хайлт шүүлт хийх боломжтой болох юм.

1. Client машиныг тохируулах
Ер нь бол бүх л сервер машин, сүлжээний төхөөрөмжүүд системийн логыг өөр дээрээ бүртгэж байдаг бөгөөд түүнийгээ syslog гэсэн програмын тусламжтай гүйцэлдүүлж байдаг. Client дээр зарчмын хувьд syslog болон syslog-ng аль нь ажиллаж болно. Гэхдээ syslog-ng-г шинээр суулгаж ажил удаж байснаас бэлэн суучихсан syslog-г ашиглах нь хялбар тул syslog-г хэрхэн тохируулах жишээг харуулав.

Жишээ нь: /etc/syslog.conf файл дотор байгаа:

*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* /var/log/maillog


гэсэн мөрүүдийг:

*.info;mail.none;authpriv.none;cron.none /var/log/messagesauthpriv
*.info;mail.none;authpriv.none;cron.none @xxx.xxx.xxx.xxx

.* /var/log/secure
.* @xxx.xxx.xxx.xxx
mail.* /var/log/maillog
mail.* @
xxx.xxx.xxx.xxx

PS: xxx.xxx.xxx.xxx
оронд лог цуглуулах серверийн хаягыг бичнэ.

болгон өөрчилнө. Syslog-н level, facility-н талаар болон хэрхэн тохируулах талаар дэлгэрэнгүй мэдээллийг интернетээс аваарай.

2. SyslogNG серверийг суулгах болон тохируулах
Интернетээс нэг аятайхан заавар олсон юм. Энэ нь "Implementation of Central Logging Server using syslog-ng" гээд Энэтхэгийн CERT-с гаргасан гарын авлага байгаан. Syslog-ng серверийг суулгах тохируулах талаар маш дэлгэрэнгүй ойлгомжтой бичсэн байгаа тул энд нуршаад хэрэггүй биз. Та бүхэн

6.1 Installation
6.2 Configuring Server
6.4 Filter syslog messages

хэсгүүдийг уншаарай. Суулгахад libol багцийг заавал суулгах хэрэгтэй болно. Тохируулга хийхийн тулд syslog-ng.conf файлыг шинээр үүсгэх хэрэгтэй байгаа. Мөн хэрэггүй логуудыг шүүж хадгалахын тулд filter{} директивийг ашиглах хэрэгтэй болно. За тэгээд жишээ тохиргооны файлыг харвал бүх юм ойлгогдох байх.

Pipe файлыг дараах байдалтай үүсгэнэ:

# mkfifo /tmp/mysql.pipe
# chmod 660 /tmp/mysql.pipe

Бүх тохиргоог зөв хийсэн бол та логуудыг Insert query байдлаа /tmp/mysql.pipe файд дотор харах болно. Мөн энэ файл томорсоор байх ёстой.

3. pipe файлыг MySQL баазруу бичих
Юуны түрүүнд MySQL сервер дээрээ logs нэртэй өгөгдлийн сан үүсгэх хэрэгтэй. Ямар талбартай үүсгэхийг "Implementation of Central Logging Server using syslog-ng" зааврын 11-р хуудаснаас үзнэ үү.

Үүний дараа дараах командыг өгч pipe файлыг өгөгдлийн санруу оруулах процессыг эхлүүлнэ:

# mysql syslog < /tmp/mysql.pipe &

4. php-syslog-ng ажиллуулах
php-syslog-ng нь энгийн php файлууд тул source tarball-г задлан веб серверийнхээ document root дотор байрлуулна. Үүний дараа эдгээр php скриптээс өгөгдлийн санруу хандах эрхтэй хэрэглэгчийн эрхийг MySQL сервер дээр үүсгэн, нууц үгийн хамт config/config.php файл дотор кодлож өгнө.

Одоо та вебээр хандан admin/admin гэсэн хэрэглэгчийн нэр нууц үгийг оруулан хайлт шүүлтийг хийх боломжтой болно. Бүх зүйл ажиллаж байвал таны лог дараах байдалтай харагдах болвуу.

Та анх удаа логин хийж орсны дараа нууц үгээ солихоо мартуузай. Мөн хязгаарлагдмал эрхтэй өөр хэрэглэгчдийн эрхийг нээж өгөх боломжтой санаарай.

NOTE: syslog-ng-н нэг давуу тал гэвэл UDP-с гадна(syslog зөвхөн UDP протоколыг дэмждэг) TCP протоколыг дэмждэг болсон явдал юм. Ингэснээр галтханын цаана наанаас SSH Tunneling ашиглан логыг аюулгүйгээр бүртгэх боломжтой болдог.

Monday, December 04, 2006

Ubuntu -i hack

Unix төрлийн системүүдийн хамгийн сонгодог хэлбэрийн хайк/hack-н нэг бол "shell escape" буюу бүрхүүлийн цоорхойг ашиглан бага эрхтэй хэрэглэгчээс root бүрхүүлрүү орох явдал юм. Олон арга хэлбэрээр "shell escape" хийж болно. Нэг жишээ бол бүрхүүлийг "-i" тохируулга/option-тайгаар дуудах юм. Өөрөөр хэлбэл "/bin/sh -i" командын тусламжтай "interactive shell"-рүү орох боломжтой. За тийм байдаг байж, тэгээд юу нь тийм сонин байна?... Тэгвэл root эрхтэй бүрхүүлрүү орчихвол асуудал их сонирхолтой болоод ирнэ.

Жишээ нь: test.pl гэсэн setIUD скрипт байлаа гэж бодъё.

% ln -s /home/baynaa/test.pl -i
% -i
#

Гэхдээ энэ hack бүр 1989 онд анх бүртгэгдсэн бөгөөд орчин үеийн Unix систем дээр ажиллахгүй! "-i: Command not found." гэх байх шүү, гэхдээ итгэхгүй байвал туршаад үзээрэй л дээ.

Гэтэл нэг сонин зүйл олж мэдсэн маань гэвэл Ubuntu сервер дээр sudo-тэй хамт "-i" тохируулга ажилладийн байна... ёстой гайхсан. "-i" тохируулгыг иймэрхүү hack-д хэрэглэхээ аль эрт болисон байх гэж бодож байсан. Ubuntu Server дээр:

% sudo -i
#

гэнгүүт шууд л root бүрхүүлрүү орчих юм(гэхдээ мэдээж sudoers дотор идэвхжүүлсэн хэрэглэгчийн хувьд). Redhat, FreeBSD хоёр дээр туршаад үзсэн чинь хоёулан дээр нь "sudo: Illegal option -i" гэж гарч ирж байна.

Friday, December 01, 2006

lsof командын талаар товчхон

lsof гэдэг нь "LiSt Open Files" гэдгийн товчлол юм. Тэгэхээр нээлттэй файлуудын жагсаалтыг харуулдаг байх нь. good!

Файл гэдэгт юу юу орох вэ? Unix систем дээр бараг бүх зүйлийг файл гэж үзэж болно. Файл бол файл, директор бас нэг төрлийн онцгой файл, төхөөрөмжүүд мөн файл, /proc файлсистемийг аваад үзэх юм бол санах ой, процесс, сүлжээний холболтыг бүгдийг файлаар илэрхийлж болно. Файлыг процессууд хэрэглэх ба ихэвчлэн "нээлттэй" эсвэл "хаалттай" гэсэн хоёрхон төлөвт байдаг. Ер нь бол санах ойд ачаалагдан ажиллаж байгаа ямар нэг процессын хувьд холбогдох хоёртын файл, өгөгдөл эсвэл тохиргооны файлууд, цаашилбал түүнийг ашиглаж буй hardware төхөөрөмж "нээлттэй" төлөвт байна.

lsof-н энэ чадварыг ашиглан системийн хаана ямар үйл явц болж байгааг илрүүлэхэд хялбар болдог. Тиймээс ч lsof-г гадны халдлагыг илрүүлэхэд хэрэглэдэг байна. lsof-н тусламжтай ажиллаж байгаа процессын жагсаалтыг харж болно, үүгээрээ ps-г орлож чадна. Мөн сүлжээний холболтуудыг харж болно, үүгээрээ netstat-г орлож чадна. Дээр нь бид эдгээр процесс болон сүлжээний холболтуудын хэрэглэж байгаа бүх "нээлттэй" файлуудыг харж чадна.

нээлттэй портууд болон үүссэн сесс/session-ууд
-i тугын тусламжтай интернет холболттой холбоотой бүх нээлттэй байгаа файлууд болон "хүлээж байгаа үйлчилгээ"/listening service-н жагсаалтыг харж болно.

[root@test]# /usr/sbin/lsof -i more

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
syslogd 639 root 7u IPv4 1115 UDP *:syslog
rpc.statd 680 rpcuser 4u IPv4 1205 UDP *:32771
rpc.statd 680 rpcuser 5u IPv4 1192 UDP *:856
rpc.statd 680 rpcuser 6u IPv4 1208 TCP *:32768 (LISTEN)
sshd 715 root 3u IPv4 1258 TCP *:ssh (LISTEN)
named 23808 named 20u IPv4 162255 UDP test.mn:domain
named 23808 named 21u IPv4 162256 TCP test.mn:domain (LISTEN)
named 23808 named 22u IPv4 162257 UDP test.mn:domain
named 23808 named 23u IPv4 162258 TCP test.mn:domain (LISTEN)
named 23808 named 24u IPv4 162259 UDP *:32773

lsof -i TCP - тухайн систем дээр байгаа TCP Socket-руу хандаж байгаа бүх процессыг харуулна.

lsof -i tcp:53 - 53-р портон дээр ажиллаж байгаа процессыг харуулна.

lsof -р 578 - 578-р процессын ашиглаж байгаа ресурсуудыг харуулна.

lsof -с named - Линукс дээр нэг процессын хэд хэдэн тохиолдол/instance ажиллаж байх нь бий. -с тугын тусламжтайгаар ийм төрлийн ижил процессуудын ашиглаж байгаа ресурсуудыг харуулна.

lsof -u root - тухайн хэрэглэгчийн ашиглаж байгаа ресурсуудыг харуулна.

lsof командын бусад тугуудын талаар http://dmiessler.com/study/nix/commands/lsof/ хаягаас уншаарай.


Ажиллаж байгаа процессын устгагдсан файл
Нээлттэй боловч холбогдоогүй/unlinked файл гэдэг нь директор бүтэц дотор нэр нь байхгүй боловч, түүнд олгогдсон диск блокыг ямар нэг процесс хэрэглэж байгаа файлыг хэлнэ. Ийм төрлийн файл ls команданд өртөхгүй боловч программ түүнийг ашиглаж чадна гэсэн үг юм. Ийм төрлийн файлыг

# lsof +L1
+L1 нь link count нэгээс бага өөрөөр хэлбэл 0-тэй тэнцүү байгаа файлуудыг харуулна.

командын тусламжтай илрүүлж болно. Дээрх командыг өгсний дараа та устгагдсан мөртлөө ямар нэг процесс ашигласаар байгаа файлын жагсаалтыг дараах байдалтай харах болно.

COMMAND PID USER FD TYPE DEVICE SIZE NLINK NODE NAME
less 25677 root 4r REG 3,8 103362 0 32868 /home/test/myfile (deleted)


Устгасан файлыг lsof-н тусламжтай хэрхэн сэргээх вэ?
Бид дээр жишээн дээрээс устгасан файлыг ашиглаж байгаа процессын PID болон энэ файлын FD(file descriptor) утгыг олж мэдсэн билээ. Одоо бид /proc файлсистемийн тусламжтай энэ файлыг хялбархан сэргээж болно.

/proc/PID/fd директор дотор энэ процессын ашиглаж байгаа файлууд тоогоор тэмдэглэгдсэн линк байдлаар байрласан байгаа.

# cd /proc/25677/fd # ls -la
total 0
dr-x------ 2 root root 0 Dec 1 18:14 ./
dr-xr-xr-x 3 root root 0 Dec 1 18:14 ../
lrwx------ 1 root root 64 Dec 1 18:17 0 -> /dev/pts/0
lrwx------ 1 root root 64 Dec 1 18:17 1 -> /dev/pts/0
lrwx------ 1 root root 64 Dec 1 18:17 2 -> /dev/pts/0
lr-x------ 1 root root 64 Dec 1 18:17 3 -> /dev/tty
lr-x------ 1 root root 64 Dec 1 18:17 4 -> /home/remote/myfile\ (deleted)
# cp 4 /home/test/myfile2

PS: Энэ жишээ зөвхөн устгасан файлыг ямар нэг процесс ашиглаж байгаа үед сэргээхийг харуулсан болно.

GIAC Certified UNIX Security Administrator (GCUX)

SANS-н GIAC Certified UNIX Security Administrator(GCUX) боллоо би. Урамтай сайхан байнаа. 2 удаагийн тестээр шалгалтаа өгсөн. Ихэнх асуултууд нь 7 сард суусан сургалтын агуулгаас ирсэн байсан. FreeBSD-с өөр UNIX систем дээр ажиллаж үзээгүй надад Solaris-н талаарх асуултууд их бүрхэг байсан. Solaris-н материалыг цээжилж орсон, зарим асуултанд яалт ч үгүй мэдэхгүй тул тэглэсэн...

Үнэндээ энэ шалгалтыг өгье гэж бодоогүй явтал, сургалтан дээр танилцсан Sailata гээд нэг энэтхэг бүсгүй "би хувьдаа өгнө, харин чи өгөөд үз л дээ" гэж ятгаснаас сүүлийн өдөр нь амжиж бүртгүүлсэн юм. Хүн үнэхээр хичээвэл чадахгүй юм гэж байдаггүй юм байна гэж хэлмээр байна даа.

За тэгээд мэдээж намайг мэргэжлээрээ өсөж дэвжихэд нэмэр болсон MobiNet-н хамт олондоо, мөн MUUG-н нөхөддөө баярлаж явдаг шүү гэж хэлье.

Хичээвэл чадна шүү! Та нар шүү!

Friday, November 24, 2006

Удирдлагын Академи дээрх сургалтууд

ЗГХЭГ(Засгийн Газрын Хэрэг Эрхлэх Газар)-аас нийт Яамд, Төрийн байгууллагуудын IT-гийн мэргэжилтнүүдийн дунд сургалт зохион байгуулдаг юм байна. Өнгөрсөн сард Яамны админуудад зориулж зохион байгуулсан сургалтанд "Mail System"-н талаар qmail server дээр тулгуурлаж нэг удаагийн хичээл заах боломж надад олдсон билээ.

Нилээд олон яамны IT Мэргэжилтнүүд ирсэн байлаа. Бүгдээрээ л сурч мэдье гэсэн залуу улсууд байсан. Харин "IT Мэргэжилтэн" нэрийн дор сүлжээгээ зохион байгуулдаг сүлжээний инженер, мэйл веб сервер ажиллуулдаг систем админ, үйлдлийн систем програм хангамжийг суулгадаг компьютерийн үйлчилгээ хариуцагч, компьютер эвдэрвэл засдаг засварчин... өөрсдийнх нь хэлснээр К үсгээр эхэлсэн бүх юмыг хариуцдаг ажил хийдэг гэлээ. :). Энэ нь IT-г хариуцсан ганц ганцхан хүн байдгаас болдог гэж ярьж байсан...

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

Ажил дээр сууж байхад "мэйл" гэдэг зүйл filesystem дээр байдаг нэг файл, terminal цонхон дээр урсаж байгаа нэг мөр бичлэг... л юм шиг санагддаг байлаа. Гэтэл мэйл бол бизнесийн үйл ажиллагаа явуулдаг газруудад амин чухал зүйлийн нэг. Ялангуяа цаг хугацаатай уралдаж байдаг газруудын хувьд... Нэг жишээ дурдахад: мэйлээ шалгаж болохгүй байна гэж нэг хэрэглэгч маань хэд хэдэн удаа утсаар ярилаа. Заавал хүн ирж үзүүлмээр байна гэж нилээд шалсан. Дуудлагын инженерүүд маань бүгд завгүй байсан тул өөрөө очиж үзлээ. Асуудал яахав амархан шийдэгдсэн л дээ. Тэднийх ачаа тээврийн зууч компани байлаа. Хаанаас ямар ачаа хэзээ гарсан, хэзээ хүрэх газраа очих гээд л бүх мэдээллээ мэйлээр солилцдог газар байлаа. Мэйлээ шалгаж болохгүй байгаа шалтгаанаар ажил нилээд цалгардсан, менежер нь бололтой хүн нилээд бухимдсан байдалтай байна. Тэгэхэд л ажлынхаа хариуцлагын талаар илүү ойлгох шиг болсон.

Тэгэхээр Төрийн ажил явуулж байгаа Яамдуудын хувьд мэйл гэдэг маань түрүүний ачаа тээврийн зууч компанийхаас дор байна гэж яав ч байхгүй. Сургалтанд суусан залуучуудын хэлснээр "IT-гийн алба нь IT ойлгодог даргатай болооосой", "IT-гийн мэргэжилтнийхээ тоог нэмээсэй", "өөрийн мэйл болон бусад серверүүд, мөн сүлжээнийхээ maintainance, аюулгүй байдалд илүү анхаараасай" гэж л хэлэх байна даа.

PS: Өнгөрсөн Даваа гарагт Мэйл Системийн талаар орох байсан хичээлийг орж чадаагүй тул хүлцэл өчье. Сургалтанд суусан админууд хичээлийн slide-г татаж авч болно.

Thursday, November 16, 2006

Datacom-н монгол дахь DNS серверvvд орж гараад байнуудаа гэж...

За ингээд хэлчихээр Датакомынхон болоод бусад хүмүүс сандралд орох вий дээ. Эхлээд энэ нийтлэлийг дуустал нь уншаарай.

Өнгөрсөн 10 сарын 03-ны өглөө 08:10-д манай оператороос манай DNS болохгүй байна, зарим домэйн олдоод зарим нь олдохгүй байна гэж дуудав. Би ч өөрийнхөө DNS серверийн логыг, дараа нь мэйл серверийнхээ логыг үзэв. Хараад байсан .mn домэйнууд олдохгүй байна. Манай DNS cache server-т л байна даа гэж бодсон. cache server-ээ үзээд байдаг үзээд байдаг... зүгээр л байх юм. Бусад газрууд яасийн бол гэж бодоод Magicnet-н админаас асуусан "Датакомоос асуухгүй юу, манайх лав зүгээр" гэнэ... танихгүй болоод ч тэр юмуу ёстой наашгүй хариу өглөө... хм... Дараа нь сая сургалтанд хамт сууснаараа Мicom-н Тэгшээгээс асууя гэж бодоод g0mb0 ахаас yahoo id-г авлаа. За нэг танилын нүүр халуун гэдэг шиг ёстой шалгааж авлаа. Танай DNS дээр ямар нэг сонин юм ажиглагдаагүй юу? гэлээ. Тэгшээ ч зүгээр л гээд байна... .mn домэйн болохгүй байгаа биз дээ, гэж нилээд шаллаа, тэгсэн харин сүүлд нь .mn домэйн харин өглөөнөөс болохгүй байх шиг байна гэлээ... ёстой нэг санаа амрах шиг болсон, хэхэ... За тэгээд удалгүй Датакомын нэг DNS дээр асуудал гарсан нь тодорхой болж удалгүй зүгээр болсон... 2 хоногын дараа mobicom.mn-г олохгүй хэдэн мэйл яваагүй харагдсан. Тэгэхээр нь Nagios дээрээ Datacom-н монголд байгаа 2 DNS сервер-г нэмээд байнга ажигладаг боллоо.

Уржигдар мөн MIX дээр асуудал гарснаас 07:56-10:48 хооронд Datacom DNS дээр critical alarm гарсан харагдана. Эдний сервер дээр аларм гарч харагддаг,харин манай DNS Cache дээр аларм гарахгүй болохоор ажиглаад л суугаад байсан. Сая нэг санаа авч Датакомын Мөнхдөлтэй ярилцлаа. Танайх орж гараад байна гээд... Тэгсэн тэдний сервертээ ч биш Magicnet-н холболтондоо байгаа бололтой... Гадаад гарц дүүрэх, эсвэл ачаалал ихтэй үед DNS хамгийн мэдрэмхий байдаг, DNS дээр хамгийн түрүүнд alarm гарч харагддаг л даа. Энэ нь bandwidth дүүрэх үед сүлжээний төхөөрөмжүүд prioroty багатай service-үүд (жишээлбэл DNS-г) хаадаг гэж ярьдаг юм байна лээ. Гэхдээ л бодох л асуудал... Датаком чинь үндэсний хэмжээний үйлчилгээ үзүүлдэг газар шүү дээ!

Тэгээд надад хэлэх гэсэн нэг л зүйл байна. Манай админууд яагаад хамтарч ажилладаггvй юм бэ? Надад тохиолдож байгаа асуудал бусад бүх ISP-н админуудад тохиолдож л байгаа. Datacom болохгүй байна, MIX дээр асуудал гарлаа гэхэд гэмтэлийн шинж тэмдэг, нөлөөлөх байдал, гэмтэл гарсан цаг, засагдсан цаг хугацааг мэдээлдэг самбар маягын юм байвал баахан бие биенээ гайхаж харж суухгүй байх. Бид бизнесээрээ өрсөлднүү гэхээс мэдлэгээ хуваалцаж, техникийн тал дээр хамтарч ажиллах учиртай шүү дээ.

Wednesday, November 15, 2006

Nagios + check_by_ssh + public key authentication

Серверрүү логин хийж ороод дотор нь ажиллаж байгаа процессуудыг хянадаг, эсвэл дискний зай дуусаж байгааг хэлдэг тийм хянагч/monitoring програм байдаг болоосой гэж админууд маань бодож явдаг байх, эсвэл өөрөө тийм скрипт бичихийг оролдож байсан ч байх. Тэгвэл та бүхэн Nagios-н "check_by_ssh plugin"-г "public key authentication"-ы хамт туршаад үзээрэй. Хянагч програмуудаас Nagios их зүгээр санагддаг. Тухайн хоструу 5 минутын зайтайгаар PING тест хийхээс гадна HTTP, MYSQL, DNS, POP, SMTP, FTP зэрэг гадаад портон дээр ажиллаж байгаа үйлчилгээнүүдийг хялбарханаар хянах боломжтой. Ямар нэг асуудал гарсан тохиолдолд мэйлээр Alarm message илгээх боломжтой. Админ мэйл хаягаа MailAlert-тай холбочихвол ч жинхэнэ real-time alert-г хүлээн авах боломжтой болно.


Ажиллах үндсэн зарчим - monitor ажиллах машин(A) дээр nagios-г plugin-уудын хамт суулгасан байна. Хяналт хийх гэж байгаа сервер(B) дээр гаднаас ssh-р "public key authentication" хийж орох эрхтэй user account-г үүсгэн, түүний home directory дотор В машины юуг хянах гэж байгаагаас шалтгаалан хэрэгтэй nagios plugin-г байрлуулсан байна. А машин дээрээс check_by_ssh-н тусламжтайгаар В машинруу логин хийж орон харгалзах plugin-г ажиллуулан үр дүнг "OK, Warming, Critical, Unknown" түвшинүүдээр харуулна.

B машин дээр ажиллах боломжтой nagios plugin-ууд:

check_users
check_load
check_disk
check_procs
...

1. Nagios болон plugin-г суулгах - Nagios-г хэрхэн суулгах талаар маш дэлгэрэнгүй танилцуулга http://www.nagios.org/docs/ байгаа тул энэ хэсгийг алгасав. Plugin-г source tarball-с эсвэл rpm-р суулгах аль аль нь амархан сууна.

RPM-р суулгавал:
/etc/rc.d/init.d/nagios - control script
/usr/bin/ - nagios, nagiostat хоёртын файлууд
/usr/include/nagios/ - үндсэн кодын сан/library
/usr/lib/nagios/cgi - cgi cкриптүүд
/usr/lib/nagios/plugins - nagios plugin-ууд
/etc/nagios - үндсэн тохиргооны файлууд

байрлана.

2. Public Key Authetication - Ийм төрлийн authentication-г ихэвчлэн автоматжсан програмаас серверрүү логин хийж ороход хэрэглэдэг. Учир нь автомажсан програмыг ажиллуулах үед "login prompt" дээр програмыг гацаахгүйн тулд нууц үгийн оронд "public key"(сервер дээр урьдчилж хуулж тавина) ашиглан authentication хийнэ.

2.1 шинэ хэрэглэгч нэмэх - В машин дээр шинэ хэрэглэгч үүсгэхдээ:

# useradd testuser

testuser хэрэглэгчийг үүсгэхдээ нууц үг оноохгүйг анхаарай. "public key" ашиглан логин хийх тул нууц үг оруулах шаардлагагүй. Мөн энэ хэрэглэгчийн хувьд "interactive shell" идэвхжсэн байх ёстойг анхаараарай.

2.2 SSH-н хувьд public key authentication-г идэвхжүүлэх - /etc/ssh/sshd_config дотор дараах тохиргоог хийнэ:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AllowUsers testuser xxx

xxx - оронд ssh-р хандах бусад хэрэглэгчдийн нэрсийг зай аван цуьуулж бичнэ.

2.3 Хос түлхүүрийг үүсгэх - хос түлхүүр үүсгэж нэгийг А машин дээр, нөгөөг В машин дээр байрлуулах ёстой. Хос түлхүүрийг дараах байдалтай үүсгэнэ.

# ssh-keygen -t rsa

PS: Энд RSA-н оронд DSA алгоритмаар кодлож болно.

Энэ командыг өгсний дараа passphrase асуух бөгөөд та passphrase оруулах шаардлагагүй.

PS: passphrase оруулж түлхүүр үүсгэж болно. Энэ тохиолдолд public key authentication хийхийн тулд ssh-agent ажиллуулах хэрэгтэй болно. Асуудал цааш хүндрэх тул энэ талаар сонирхож байгаа бол бусад гарын авлагыг ашиглана уу.


Үр дүнд нь id_rsa, id_rsa.pub гэсэн 2 файл үүснэ. id_rsa файлыг А машин дээр, nagios server-г ажиллуулж буй хэрэглэгчийн (ихэнх тохиолдолд nagios) home directory дотор хуулж тавина.

# cp id_rsa /home/nagios/.ssh/
# chmod 600 /home/nagios/.ssh/id_rsa
# chown root.root /home/nagios/.ssh/id_rsa

Харин id_rsa.pub файлыг В машин дээр testuser хэрэглэгчийн home directory /home/testuser/.ssh/ дотор authorized_keys нэртэйгээр байрлуулах хэрэгтэй.

# cp id_rsa.pub /home/testuser/.ssh/authorized_keys
# chmod 400 /home/testuser/.ssh/authorized_keys
# chown root.root /home/testuser/.ssh/authorized_keys

Аюулгүй байдлыг хангах үүднээс authorized_keys файл дотор, мөрийн эхэнд уг түлхүүр үгийг ашиглан хандах эрхтэй IP хаягуудыг жагсаан бичнэ:

from="10.1.5.23"


3. check_by_ssh plugin-г тохируулах
3.1
Эхлээд check_by_ssh plugin-г

ажиллуулах check_remote_procs нэртэй шинэ командыг үүсгэнэ. Үүний тулд "command definition"-г /etc/nagios/checkcommands.cfg дотор дараах байдалтай хийнэ.

define command {
command_name check_remote_procs
command_line $USER1$/check_by_ssh -S 6 -H $HOSTADDRESS$ -u testuser -C '/home/testuser/check_procs -w $ARG1$ -c $ARG2$ -$ARG3$ $ARG4$'
}

Улаанаар бичсэн мөрийг nagios ssh-р login хийж орсны дараа ажиллуулах бөгөөд жишээ болгож check_remote_procs командыг авлаа.

3.2 check_procs хоёртын файлыг В машины /home/testuser дотор хуулж тавих бөгөөд 744 permision тавина.

За ингээд бүх тохиргоог хийж дууслаа. Одоо check_remote_procs командыг ашиглан шинэ service үүсгэн туршиж үзье. Үүний тулд /etc/nagios/services.cfg дотор дараах мөрүүдийг нэмнэ:

define service{
use generic-service
host_name Web_Server_1
service_description ProFTP
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups linux-admins
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_remote_procs!1:1!1:1024!C!proftpd
}

Monday, October 30, 2006

Yahoo-гийн мэйл ойрд яагаад байнаа

Манай мэйлийн админууд анзаарсан боловуу. Ойрын нэг 7 хоног yahoo-гийн мэйл нэг л сонин байна. Шөнө болохоор явахгүй байгаа юмуу, mail queue дотор шөнө ирсэн мэйлүүд яваагүй харагдаад, тэгээд шалгахаар "Connected to ... but greeting failed. /Remote host said: 451 Message temporarily deferred - 4.16.50/" гэсэн алдаа өгсөн байна. Ажлын цагаар харин зүгээр яваад байх шиг...

Интернэтээс хайсан yahoo-гийнхан бүх IP-г greylist-д оруулсан гэнэ. Санаа нь smtp connection үүсгэхээс эхлээд татгалзах юм байна, дараагийн оролдлого дээр нь харин зөвшөөрөх юм байна. Энэ нь спамаас хамгаалж байгаа арга юм байнаа?! Өөрөөр хэлбэл спамерууд нэг мэйлээ дахин явуулахыг ихэнх тохиолдолд оролддоггүй юм байхаа... Бодвол тэр том компанийхан бодож төлөвлөж байж л ийм алхам хийсэн байх, гэхдээ л асуудлыг улам хүндрүүлээд байх шиг...

Одоо тэгээд яах вэ? Yahoo-гийн нэг ийм заавар байна.
http://help.yahoo.com/help/us/mail/defer/defer-01.html

Гэхдээ л асуудал тун бүрхэг байна. Yahoo-гийнхан явуулсан мэйлэнд хариу өгнө ч гэж байхгүй, урьд нь энгийн мэйлүүд Bulk-руу орчихоод байна гэж нилээд олон form бөглөж, мэйл явуулж байсан. Ганц л хариу байхгүй... Дахиад л баахан хайлаа, DomainKey-н сураг гарч байна. Domainkey-г хэрэгжүүлнэ гээд л яригдаад байсан, ганцхан өдөр ингээд л хэрэгжүүлчдэг юм боловуу.

Манай админуудад санаа оноо байнуу?


Friday, October 27, 2006

Oyunbodol blog

Оюунбодолын үлдээсэн линкээр орж түүний нийтлэлийг уншлаа. Түүний хэлсэн зарим нэг санаа үнэхээр дэмжүүштэй юмаа. Хараад байхад блог бичдэг хүмүүс зөндөө болж, хүн болгон мэдээж өөрийн сонирхдог зүйл, эсвэл хийдэг ажлынхаа талаар, зарим нь бодол эргэцүүллээ гээд л бичдэг. Мэдээж энэ бүгдийг ганцхан өөртөө зориулж бичнэ гэж байхгүй. Өөрийн хүсэл санаа нэгтэй хүмүүст хүрч тэдэнд бодол саналаа хүргэх гэж л бичдэг байж таараа. Миний хувьд ч ялгаагүй мэдэж чадаж байгаа юм байвал хүмүүст хэрэг болох байх гэсэн үүднээс л бичдэг. Тэгээд хүмүүсийн үлдээсэн comment-г уншаад урам авдаг. Блог бичих сайхан санагддаг, нэг бодлын өөрийн үүргээ гүйцэтгэж байна гэж боддог. Мэдээж одоогоор зөвхөн хийж байгаа ажлынхаа хүрээнд sysadmin-уудад зориулсан нийтлэл бичиж байна. Гэхдээ надад өөр зөндөө бодож санаж явдаг зүйл бий. Жишээ нь байгал орчноо хамгаалах талаар хүмүүстэй санал бодлоо солилцмоор санагддаг. Байгалаа хамгаалах талаар зарим хүмүүсийн блогыг уншаад таалагдсан.

Гэхдээ бидэнд нийтлэг нэг зүйл байгаа нь хийхээсээ их яридаг л асуудал байна даа. Ямар нэг зүйл хийж эхлүүлэхийн тулд эхлээд нэгдэх хэрэгтэй. Тийм болохоор нэгдэх боломжийг нь хамгийн түрүүнд бүрдүүлж өгөх хэрэгтэй байх шүү.

Сая л гэхэд надад Цэвэл гуайн толь бичгээс нэг үг харах хэрэг гарлаа. Тэгээд Хотын Нийтийн Номын Сангийн Бэгзээгээс электрон хэлбэрээр байдаг уу? гэж асуусан. Тэр хариуд нь "чи Цэвэлийн толийг асуусан 2 дахь хүн нь боллоо. Харамсалтай нь үгүй. Номын электронжуулах ажил удаашралтай байна" гэсэн. Тэр надад "онлайн номын сан гэвэл БСШУЯамны http://www.elibrary.mn/ байна" гэлээ. Зохиолчдийн намтар гэдэг дээр нь Цэвэл гуай ч алга. Уран зохиол, хүүхдийн номнууд хэд хэд орсон байна. Электрон номын сан гээд ч яригдаад л байдаг, төсөл хэрэгжүүлж байна гээд л байсан. Тэгсэн яг харахаар юу ч байдаггүй юм байна. Ямар сайндаа л "Тэр номнуудыг нь хэн оруулдаг юм бээ. Мөнгө санхүү нь хүрдэггүй юмуу, тийм бол тэрийг нь цуглуулаад өгье л дөө. Чи Цэвэлийн толийг оруулаад өгөөч" гэж байхав...

Цэвэлийн толь электрон хэлбэрээр байдаг болчвол гадаадад байгаа Монголчуудад маань их л хэрэгтэй байх сан. Бэгзээ надад ямар ч байсан нэг хариу хэлэх байх гэж хүлээж байна.

Security through Obscurity - II (Version hiding)

Энэ удаа "өнгөлөн далдлалт"-н нэг хэлбэр болох "version hiding" буюу серверийн хувилбарыг нуух аргын талаар товч дурдъя.

Ихэнх сервер софтверүүд өөрийн хувилбарын дугаарыг нийтэд зарлаж байдаг ба хялбархан scan хийснээр тухайн серверийн талаар бүх мэдээллийг олж болно. Хэрвээ Hacker хувилбарын дугаарыг мэдвэл... bug-р дамжин системд чинь нэвтрэх боломжтой болно. Энэ нь ямар нэг гадны автоматжсан скрипт/automated script-д өртөх магадлалыг бууруулж өгч байгаа хэдий ч, нууцлал хамгааллын шалгарсан арга биш гэдгийг манай админууд анхаарна бизээ.

Өөрийн веб серверийн хувилбарыг одоо шалгаад үзээрэй. Үүний тулд:

$ telnet IP 80

гарч ирсэн prompt дээр "HEAD / HTTP/1.0" гэж бичээд enter дарна. Ингэхэд таны серверээс ирсэн HTTP Header мэдээллийг танд харуулах болно. Санаснаас хавьгүй их мэдээллийг олж харвуу?...

1. Version hiding in Apache - httpd.conf дотор
ServerTokens directive-г ашиглан тохиргоог хийнэ.

ServerTokens Prod[uctOnly] -> Server: Apache
ServerTokens Major -> Server: Apache/2
ServerTokens Minor -> Server: Apache/2.0
ServerTokens Min[imal] -> Server: Apache/2.0.41
ServerTokens OS -> Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified) -> Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

"ServerTokens Prod" гэсэн тохиргоог хийхэд хамгийн бага мэдээлэл өгөх нь. Хэрвээ та Apache ажиллаж байгааг мэдэгдүүлмээргүй байгаа бол эх кодод засвар оруулж дахин compile-дах хэрэгтэй. Үүний тулд include/ap_release.h файлын

#define AP_SERVER_BASEPRODUCT "Apache"


гэсэн мөрийг засах хэрэгтэй.

2. Version hiding in BIND - BIND-н хувьд named.conf файлын options{} directive дотор дараах байдлаар тохиргоог хийнэ.


options {
...
version "D00d!";
... };

3. Version hiding in ProFTP - ProFTP-н хувьд proftpd.conf дотор ServerIdent directive-г ашиглан тохиргоо хийнэ. Default мэндчилгээ, хувилбарын оронд хүссэн мэндчилгээг оруулж болно.

ServerIdent on "MobiNet ISP"

Хэрэв юу ч хэвлэхийг хүсэхгүй бол

ServerIdent off

гэсэн байдлаар тохиргоог хийж болно. Энэ тохиолдолд серверийн домэйн нэрнээс өөр мэдээллийг харуулахгүй.


Obscurity is not security, but... obscurity is a layer of security!

Tuesday, October 17, 2006

Linux Firewalls

SysAdminSummit2006-д илтгэл тавих байсан боловч, монголд байж таараагүй болохоор оролцож чадаагүй билээ. "Unix&Linux Security" талаар сонссон мэдсэнээ хуваалцана гэсэн бодлоо блогоороо дамжуулан хүргэеээ. СисАдминаар ажиллаад 1 жил 6 сар болж байна, туршлага нимгэн болохоор хийж үзсэн гэхээсээ дуулсан, сонссон нь давах тул та бүхэн өршөөгөөрэй. Энэ удаад *nux Firewall-уудын талаар товчхон танилцуулъя.

TCP Wrapper, IPFilter, IPTables/IPChains, PortSentry... гээд Unix төрлийн систем дээр ажилладаг software firewall-уудыг та бүхэн мэдэх байх.

TCP Wrapper(IP-based filtering or access control)- хамгийн өргөн тархсан firewall, inetd-тэй хамт ажилладаг, inetd service-үүд бүгд tcpwrapper-р дамжин ажиллана гэсэн үг юм. Жишээ нь: гаднаас FTP connection үүсэхэд inetd ftpd daemon-г дуудаж ажиллуулахын оронд tcpwrapper-г дуудан түүнд бүх эрхийг шилжүүлнэ, tcpwrapper харин тухайн IP-наас FTP connection үүсэхийг зөвшөөрч байвал ftpd daemon-г дуудаж ажиллуулна.

hosts.allow
hosts.deny

гэсэн 2 файлаас access control rule-г авдаг. Дээр бичсэн дарааллаар эхлээд hosts.allow файлыг, дараа нь hosts.deny файлыг уншина. Эдгээр файлын синтаксийг болон rule яаж бичих талаар та бүхэн интернетээс олон материал олж болох тул энэ талаар энд нуршсангүй.

TCP Wrapper-г зөвхөн трафикийг ажиглахын тулд logging mode-нд ажиллуулах нь бас түгээмэл байдаг. Хэрэв та гаднаас зөвшөөрөгдөөгүй хандалтуудыг мэйлээр хүлээн авах хүсэлтэй бол hosts.allow дотор allow statement-үүдээ жагсаан бичээд hosts.deny файлыг дараах байдалтай үүсгэж болох юм.

ALL: ALL: /usr/bin/mailx -s '%s (%p): connection attempted from %n [%a]' admin@mydomain.com

%s - daemon@hostname
%p - process id
%a - IP address of the remote host
%n - hostname of the remote host, or unknown

Энд мэйл явуулахын оронд ямар ч shell code ажиллуулж болно.

advantage:
- маш энгийн, бас олон платформ дээр ажиллах чадвартай/portable.

disadvantage:
- яалт ч үгүй inetd-тэй ажиллахаар бүтээгдсэн. Apache, sendmail, ssh зэрэг stand-alone daemon-уудын хувьд tcpwrapper library-тай хамт compiled-дсанаар tcpwrapper access control-г ашиглах боломжтой болдог.
- UDP болон RPC дээр тулгуурласан service-үүдийн хувьд тохиромжгүй. TCPWrapper-н оронд host-based FW(Жишээ нь: IPFilter...) ашиглах нь дээр.

IPFilter - kernel-based/кернелийн төвшинд ажилладаг, IP болон Transport Layer Header-г хянах боломжтой.

IPFilter-н kernel module-уудаас гадна ipmon daemon хамт ажиллаж байдаг. Энэ daemon нь IPFilter-н үүсгэсэн device-уудыг байнга сонсож message-г ямар нэг лог файлруу эсвэл syslog-руу хөрвүүлж байдаг. Тийм учраас үйлдлийн систем ачаалахад ipmon daemon автоматаар ачаалагдаж байгаа эсэхийг анхаарах хэрэгтэй.

IPFilter нь:
1. packet filtering (/etc/ipf.rules)
2. NAT (/etc/ipf.nat)
гэсэн хоёр үүргийг гүйцэтгэж чадна.

Filtering rules - "last match and exit" гэсэн дүрмээр явагддаг. Cisco ACL дээр ажиллаад сурчихсан улсуудад энэ мэдээж ойлгомжгүй санагдах байх. Гэхдээ quick түлхүүр үгийн тусламжтайгаар "first match and exit" маягаар ажиллуулж болно.

Жишээ 1: Бүх трафикийг зөвшөөрч, логыг харах (/etc/ipf.rules)

pass in log from any to any
pass out log from any to any

Жишээ 2: Гаднаас зөвхөн SSH трафикийг зөвшөөрч, гадагшаа бүх tcp, udp, icmp трафикийг зөвшөөрөн бусад трафикийг хаах (/etc/ipf.rules)

# don't block loopback interface
pass in quick log lo0 all
pass out quick log lo0 all
# Incoming packets: allow ssh, block the rest
pass in log quick proto tcp from any to any port = 22
block in log quick
# Outgoing packets: all allowed
pass out log quick proto tcp all keep state
pass out log quick proto udp all keep state
pass out log quick proto icmp all keep state

keep state - хариуд нь буцаж ирэх packet-г зөьшөөрөх
note: FTP, rlogin, rsh, rcp зэрэг bi-directional socket ашигладаг програмууд дээр заасан ruleset-р ажиллахгүй, ийм төрлийн программыг ажиллуулахын тулд ipnat.rules файл дотор proxy тохиргоо хийж өгөх хэрэгтэй.

# /etc/ipnat.rules
map eth0 eth0/32 -> eth0/32 proxy port ftp ftp/tcp


disadvantage:
- олон платформ дээр ажиллах чадвартай.
- олон NIC-тэй машинийг сүлжээний FW болгон ашиглах боломжтой.

disadvantage:
- kernel module ачаалах хэрэгтэй болдог.
- rule бичиж сурах нь нилээд тэвчээр, туршлага шаарддаг.

Redhat - xinetd дотор IP-based access controlе-г дэмждэг тул тусад нь tcpwrapper суулгах шаардлагагүй.

Linux - Линуксийн хувьд ipfilter-н оронд бэлэн суучихсан ирдэг iptables/ipchains-г ашиглах нь илүү хялбар байдаг.

Solaris - Solaris8/9 хувьд SunScreen Lite, Solaris10 хувьд IPFilter хамт ирдэг болж байгаа.

NetBSD, FreeBSD - IPFilter суусан ирдэг.

OpenBSD - ipfilter-н дараагийн үе болох PF-г ашигладаг.

PortSentry - нь гадны сэжигтэй трафикийг илрүүлэхээс гадна түүний эсрэг арга хэмжээ авах чадвартай, iptables, ipfilter, tcpwrapper болон kernel routing table-д өөрчлөлт хийж сэжигтэй трафикийг хаах арга хэмжээ авч чадна. Хэн нэг хүн порт скан хийж байвал түүнийг exloit хийхээс өмнө өөрийн router-рүү логин хийж орон сүлжээний түвшинд уг трафикийг хаадаг байхаар тохируулж ч бас болох юм байна.