Tuesday, April 6, 2010

එන්න, නිදහස අත්විඳින්න මා සමඟ...

ආයුබෝ...! ආයෙමත්, ටික දවසකට පස්සේ ඔන්න ආවා බ්ලොග් එක පැත්තේ. මේ ලියමන තාක්ෂණය සම්බන්ධ එකක් වුණාට මේක කියවන්න ගීක්ලා වෙන්නම ඕනෙ නෑ. :-) මේ ලිපියේ කොටස් දෙකයි... පූර්වභාගය මගේ අත්දැකීම්... අපර භාගය සමාජයට පොඩි පණිවුඩයක්.

මම සම්පූර්ණයෙන්ම ලිනක්ස් වලට මාරු වෙලා දැන් මාස දහයකටත් කිට්ටුයි. මේ කාලය ඇතුළත මම අළුතෙන් බොහොමයක් දේවල් ඉගෙනගත්තා. “වෙනස් වීම” – බැරැක් ඔබාමා දිනවූ වචනය – ක්‍රියාවට නංවන එක අමාරු කාරියක්. නමුත් ස්වයංව වෙනසට ලක්වීමේදී තමයි අභියෝග වලට මුහුණදීම ගැන හොඳ ප්‍රායෝගික පුහුණුවක් ලැබෙන්නෙත්. මුළුමනින්ම ලිනක්ස් වලට මාරු වෙලා දෛනික පරිගණක කටයුතු කරගැනීම අමාරුයි නේද කියන එක බොහෝ දෙනා මගෙන් අසා තිබුණු ප්‍රශ්නයක්. මගේ උත්තරය, මුල් කාලේ නම් ටිකක් ඔව්, ඒත් දැන් නම් එහෙම නෑ කියන එක. සමස්තයක් වශයෙන්, ලිනක්ස් වල වැඩ කිරීම කොහොමටත් අමාරු කාරියක් නෙවෙයි. වෙනසට ලක් වීම අමාරුයි. ඒත් වෙනසට ලක් වුණාට පසුව අනුගමනය කළ යුතු සාමාන්‍ය පිළිවෙත් සහ රටාවන් (practices) වලට හුරු වුණාම, මුලින් හිටපු තත්වයට වඩා පහසු බවක් දැනෙන්නේ.

මම දෛනිකව පාවිච්චි කරන මෘදුකාංග ගැන සඳහනක් මීට කලකට ඉහතදි පළ කළා. ඇත්තෙන්ම මේ ලැයිස්තුව දැන් යල් පැනලා. වින්ඩෝස් මෙහෙයුම් පද්ධතියත් එක්ක මගේ තිබුණු බැමි කීපයක්ම දැන් බිඳිලා ගිහින්. ලිනක්ස් වලට මාරු වුණු මුල් කාලේ යම් යම් අවශ්‍යතා සඳහා ඉඳහිට වින්ඩෝස් පාවිච්චි කරන්න අවශ්‍ය වුණා. පරිගණකය ප්‍රතිපණගන්වන්න කම්මැලි නිසා මේකට පාව්චිචි කළේ Sun VirtualBox මත Windows XP. නමුත් පහුගිය කාලය ඇතුළත, වින්ඩෝස් නැතිවම බැරි වෙලා තිබුණු මේ සමහර අවශ්‍යතාවන් වලට සාර්ථක නිදහස් හා විවෘත ආදේශක විසඳුම් කීපයක්ම අන්තර්ජාලය ඔස්සේ සොයාගන්න මට හැකි වුණා. ඒ සියළුම මෘදුකාංග/ විසඳුම් සඳහා දායක වූවන්ට මගේ හෘදයාංගම ස්තුතිය හා ප්‍රණාමය පිරිනැමෙනවා.

දැන්, මගේ VirtualBox එක ඇතුලේ තියෙන්නෙ Windows 7. ඒත්... මට දැන් ඒක ක්‍රියාත්මක කරන්නත් කම්මැලියි. හිතාගන්න පුළුවන්ද ලිනක්ස් වල භාවිතයේ පහසුව හා ඇබ්බැහි වීම...? මම මේ මෑතකදි එකම එක වැඩකට මම Windows 7 පාවිච්චි කළා. ඒ OpenOffice.org වින්ඩෝස් සඳහා වන නිකුතුවේ සිංහල අතුරුමුහුණත පරීක්ෂා කරන්න. (ඒකට ඉතිං වින්ඩෝස් නැතුව වෙන මොකක් පාවිච්චි කරන්නද? :P )

මම සෙල්ලම් කර කර හිටපු කාලේ මාර්තු දෙවැනිදායින් අවසාන වුණු බව දන්නව ඇතිනේ... දැන් මම තොරතුරු තාක්ෂණ ක්ෂේත්‍රයේ ආධුනිකයෙක්... හඃ හඃ..! මට මේ දවස් වල පැවරිලා තියෙන වැඩ වල ටිකක් බැරෑරුම් වගකීමක් තියෙනවා. මාසයක් ඇතුළත මේ දක්වා ඒ වැඩ වලදි ඉතාම විශ්වාසනීයවත්, ආරක්ෂාකාරීවත් වැඩ කරන්න පුළුවන් බොහොම ස්ථායී පාදමක් සහ හොඳ තාක්ෂණික වටපිටාවක් ලිනක්ස් වලින් ලබා දී තිබෙන බව බය නැතුව අත්දැකීම් සහිතව කියන්න පුළුවන්. මෙපමණ කාලයක් සෙල්ලම් කළේ ලෝකල්හොස්ට් එකේ තියෙන සර්වර සහ පරීක්ෂණ දත්ත එක්ක... ඒත් දැන්.......................

---

පහුගිය කාලේ ඇතුළත මට හමුවුණු දේවල් කීපයක් මේ.

ලිනක්ස් වීඩියෝ සංස්කරණය කරන්න පාවිච්චි කරන මෘදුකාංග ගණනාවක්ම තිබෙනවා. ඒ එකකවත් පරිශීලක අතුරුමුහුණත තාම Adobe Premiere හෝ එවැනි මෘදුකාංගයක් තරම් පහසුවෙන් පාවිච්චි කළ හැකි තරමට දියුණු වෙලා නැති බව ඇත්ත. ඒත්, සමහර වැඩ වලදි අවශ්‍යතාවය අනුව චිත්‍රක අතුරුමුහුණතක් (GUI) නැති ffmpeg පවා සාර්ථකව පාවිච්චි කරන්න පුළුවන්. මෙතන ක්ලික් කළොත් ඒ ගැන යමක් බලාගන්න පුළුවන්. :-) LiVES, Cinelerra යනාදී වශයෙන් වීඩියෝ මෘදුකාංග ගොඩක් මට අන්තර්ජාලය ඔස්සේ සොයාගන්න හැකි වුණා. අවශ්‍යතාවයක් ඇති වුණොත් මම ඒවා පාවිච්චි කරන ක්‍රමය ඉගෙනගනිමින් අළුත් පරිසරයට හුරු වෙනවා. මම Adobe Premiere පාවිච්චි කරල නෑ. පාවිච්චි කරන්න දන්නෙත් නෑ. ඉතින් මට කෝකත් එකයි.

WinSCP මෘදුකාංගය ගැන දන්නව ඇතිනේ... SSH/ SFTP සඳහා වින්ඩෝස් මත භාවිත කළ හැකි client මෘදුකාංගයක්. Windows Explorer (explorer.exe) පාවිච්චි කරලා සාමාන්‍ය ගොනු හුවමාරු වැඩ කරගන්න පුළුවන් වුණාට SSH වගේ ආරක්ෂාකාරී විවෘත කේත පද්ධතිත් එක්ක වැඩ කිරීමේ හැකියාව එයට ලබා දී නැහැ. ඒ නිසයි WinSCP හෝ එවැනි තෙවන පාර්ශ්වයීය මෘදුකාංගයක් පාවිච්චි කරන්න සිද්ධ වෙන්නේ. නමුත් Ubuntu/ Kubuntu/ Fedora වගේ ලිනක්ස් පද්ධතියකදි තත්වය වෙනස්. File Manager එක විවෘත කරලා පෙත ලබා දෙන තැන ssh://username@serverhost:port යන රටාව අනුව පෙත සටහන් කරලා Enter කළ ගමන් වැඩේ ගොඩ! මේක කරන්න පුළුවන් වෙලා තියෙන්නෙ Ubuntu සමඟ පෙරනිමියෙන්ම GVFS සහය තියෙන නිසා. මේ තියෙන තිර රූපසටහන් දෙකත් බලන්න.

තෙවන පාර්ශ්වයීය ආදේශක අවශ්‍ය නෑ... :-) කාර්යාල වැඩ වලදි ත්‍රෛභාෂික (යුනිකෝඩ්) පෙළ අඩංගු ගොනුත් සමඟ වැඩ කරන්න සිද්ධ වෙන නිසා සාමාන්‍ය ලිනක්ස් ටර්මිනල් එකක වැඩ කරන්න අමාරුයි. අනිවාර්යයෙන්ම චිත්‍රක අතුරුමුහුණතකට යන්න සිද්ධ වෙනවා. ඒ නිසා මේ වැඩෙන් ගොඩක් කාලය ඉතිරි වුණා.


මේ 'සුඛෝපභෝගී' පහසුකම් පාවිච්චි කරන්න නම් ටිකක් වේගවත් ජාල සම්බන්ධතාවක් අවශ්‍යයි -- කාර්යාලයීය පරිගණක ජාලය (Office LAN) තුළ පාවිච්චිය ගැටළුවක් නැහැ 

ඊළඟ කාරණාව, EOT වැනි යල්පිනූ ක්‍රම පාවිච්චි කර සිංහල ලියන අන්තර්ජාල පුවත්පත් (උදා: ලක්බිම) කියවන එක. මේ පුවත්පත් කියවන්න පුළුවන් Windows Internet Explorer භාවිතයෙන්ම පමණයි. පත්තරේ බලන්න විතරක් වින්ඩෝස් බූට් කරන්න මට කම්මැලියි. ගැටළුවට නිවැරදිම විසඳුම ළඟපාත තිබිලත් මම දැනගෙන හිටියෙ නැහැ නොවැ. අපේ සහෝදර බ්ලොග්කරුවෙක් වන කෙහළිය බණ්ඩාර ගල්ලබ මීට සාර්ථක විසඳුමක් දීලා තියෙනවා. ගිහිල්ලම බලන්න...!

3GP මාදිලියේ වීඩියෝ ක්ලිප් නරඹන්න ලිනක්ස් මත වැඩ කරන මෘදුකාංගයක් හොයාගන්න බැරුව මම පහුගිය කාලෙ නහයෙන් අඬ අඬා හිටිය නෙව. මේකත් අර මුලින් කිව්ව වින්ඩෝස් එක්ක තිබුණු බැමි කීපයෙන් එකක්. පහුගිය සතියේ මම අහම්බෙන් දැක්කා SuperUbuntu මත පෙරනිමියෙන් එන RealPlayer 11 මෘදුකාංගයෙන් ඒ අවශ්‍යතාවයත් සාර්ථකව සපුරාගන්න පුළුවන් බව. ඉතින් මම මේ දවස් වල හොයනවා ඒක එහෙම වුණේ කොහොමද කියලා...

ඉතින් ඔය වගේ හැම බැම්මක්ම ක්‍රම ක්‍රමයෙන් බිඳිලා මම දැන් VirtualBox එක ඇතුලේ තියෙන Windows 7 ධාවනය කරවන්නෙත් ඉතාම කලාතුරකින්. පහුගිය මාසයටම දෙ වතාවයි.

ඉතිං.......... මට තව දුරටත් වින්ඩෝස් ඕනෙ වේවිද? ඔව්. මම මෘදුකාංග සංවර්ධනයේ (software development) නියැලෙන්නෙක්. තවමත් වැඩි දෙනා පාවිච්චි කරන්නෙ වින්ඩෝස් මෙහෙයුම් පද්ධතිය නිසා ඒ ආශ්‍රිතව මෘදුකාංග සඳහා තත්ත්ව පරීක්ෂණ කරන්න වින්ඩෝස් අවශ්‍ය වෙනවා. .NET ආශ්‍රිත මෘදුකාංග සංවර්ධනයටත් ඉදිරි කාලය තුළ ඉඳහිට මට වින්ඩෝස් අවශ්‍ය වෙන්න පුළුවන්. නමුත්, වින්ඩෝස් සඳහා වෙනම වෙන් කළ partition එකක් මගේ පරිගණකයෙ නෑ. ඉඳහිට අවශ්‍ය වූ වෙලාවක පාවිච්චි කරන්න ඒක VirtualBox එකේම තියේවි.



ඉතින්... මේ ලියවිල්ලෙන් මම දෙන පණිවුඩය...

සාමාන්‍ය පරිශීලකයෙකුට මුළුමනින්ම ලිනක්ස් වලට මාරු වෙන්න බෑ කියන එක බොරුවක්. පැහැදිලි දැක්මක් සහිතව ලිනක්ස් වලට මාරු වීමේ අවශ්‍යතාවය අවබෝධ කරගන්න පුළුවන් නම් ඒ ඇති. පහුගිය කාලය ඇතුළත සුළු මට්ටමේ චිත්‍රක සංස්කරණ කටයුතු කීපයකුත් මගේ කාර්යාල වැඩ වලදි කරන්න සිදු වුණා. කිසිදු අපහසුවකින් තොරව මම GIMP පාවිච්චි කරලා අදාළ අවශ්‍යතාව සපුරාගත්තා. අනෙක් වැඩ වලදිත් එහෙමයි... සොයන්නාට සම්භ වේ කියල කියමනක් එහෙමත් තියෙනවනෙ..! :-)

හැමදෙනාටම ලිනක්ස් වලට මාරු වෙන්න බෑ කියන කතන්දරේ ඇත්තකුත් නැතුවම නොවෙයි. සමහර අවශ්‍යතාවන් වලදි ලිනක්ස් පාරිසරිකය තුළ වැඩ කරන්න පුළුවන් වෘත්තීයමය මට්ටමේ මෘදුකාංග නැහැ. ඒකට තව ටික කලක් ගත වෙයි. උදාහරණයක් විධියට අපි GIMP ගත්තොත්, මුද්‍රණ ක්ෂේත්‍රයේ භාවිත වෙන CMYK වර්ණ මාදිලියට එය පෙරනිමියෙන් සහය දක්වන්නෙ නැහැ. නමුත්, ඒ සඳහා plugin එකක් අන්තර්ජාලය ඔස්සේ හොයාගන්න පුළුවන්.

ඊළඟ ගැටළුව මතු වෙන්නේ අන්තර්ජාලය ගැන. අන්තර්ජාලය නැතුව මෘදුකාංග ස්ථාපනය කරන්නත් බෑ. ඒ වගේම ප්‍රශ්නයක් ඇති වුණු වෙලාවක විසඳුම් හොයාගන්නත් බෑ. මමත් කාලයක් තිස්සේ මේ ගැටළුවත් සමඟ ඔට්ටු වෙමින් ලිනක්ස් සහ නිදහස් - විවෘත මෘදුකාංග පාවිච්චි කළ කෙනෙක්.

හිතල බලන්න මෙහෙම..... ලංකාවෙ අනවසරයෙන් වින්ඩෝස් භාවිතය ඉතාම ප්‍රචලිතයි. එක එක වැඩ වලට මෘදුකාංග අවශ්‍ය වෙනවා. ඒ නිසා වින්ඩෝස් හා ඒ මත ධාවනය වෙන මෘදුකාංග වලට අපේ රටේ හොඳ වෙළඳපොළක් ඇති වුණා. ඒ ඔස්සේ රට පුරා මෘදුකාංග අලෙවිසැල් බිහි වුණා. නීති විරෝධී වුණත්, වින්ඩෝස් එක්ක ඕනෙ වැඩක් කරගන්න අවශ්‍ය මෘදුකාංග මේ තැන් වලින් හොයාගන්න පුළුවන්.

නමුත්, අපි ඉදිරි කාලය තුළ අනවසර මෘදුකාංග පාවිච්චිය අතහැරලා නිදහස් මෙහෙයුම් පද්ධති හා නිදහස් මෘදුකාංග භාවිතයට පෙළඹුණොත්. මෘදුකාංග අවශ්‍ය වෙයි. ඒ මෘදුකාංග වලට හොඳ වෙළඳපොළකුත් ඇති වෙයි. මෘදුකාංග අලෙවිසැල් වලට ලිනක්ස් හා ඒ සමඟ වැඩ කරන්න පුළුවන් නිදහස් මෘදුකාංගත් එයි. අවසානයේ ලිනක්ස් එක්කත් ඕනෙ වැඩක් කරගන්න මෘදුකාංග අලෙවිසැල් වලින් හොයාගන්න පුළුවන් වෙයි. රිචඩ් ස්ටෝල්මන් විසින් අර්ථ දැක්වූ සිව් වැදෑරුම් නිදහසට අනුව බලාත්මක කරන ලද 'නිදහස්' මෘදුකාංග නැවත විකිණීම නීතියෙන් වරදක් නොවන නිසා කිසිදු අසාධාරණයක් මෙහි සිදු නොවෙන්නා සේම, පහසු මිළකට නීත්‍යානුකූල මෘදුකාංග ලබා ගන්නත් අපේ රටේ අන්තර්ජාල පහසුකම් නැති අයට හැකි වේවි.

මම දැනටත් දැකල තියෙනවා බම්බලපිටියේ මෘදුකාංග අලෙවිසැල් වල Ubuntu, Kubuntu සහ OpenOffice.org මිළදී ගන්න පුළුවන්. ඒ වගේම ස්වභාෂාවෙන් පළ වෙන තොරතුරු තාක්ෂණ සඟරා වලත් දැන් දැන් නිදහස් හා විවෘත මෘදුකාංග ගැන වැඩි වශයෙන් කතාබහට ලක් කෙරෙනවා. මේක ඉතා හොඳ ප්‍රවණතාවක්. මේ තත්වය ඉදිරි කාලය ඇතුළත තවදුරටත් දියුණු වේ යයි අපේක්ෂා කරන්න පුළුවන්.

මේ කතන්දරේ ලේසි වැඩක් නෙවෙයි. නමුත් නිදහස් හා විවෘත මෘදුකාංග ක්ෂේත්‍රය දියුණු වෙන්නේ ඒ වටා එක්ව සිටින ප්‍රජාවත් සමඟ. ඒ නිසා ප්‍රජා දායකත්වය අත්‍යාවශ්‍යයි. මේ වෙනස.... පෙරළිය අපි කළොත් දිනෙක ලංකාවේ අපට 'මෘදුකාංග හොරු' කියන ලේබලයෙන් මිදී දේශයක් විධියට ආඩම්බරයෙන් යුතුව නැගී සිටින්නට හැකි වේවි.

Thursday, March 18, 2010

නයිට් ක්ලබ් එකේ...

මට මෑතකදි පොඩි පහේ චාන්ස් එකක් සෙට් වුණා අපහු වතාවක් GTA Vice City සෙල්ලම් කරන්න. ඒ අතරෙදි මාර සිරා දෙයක් දකින්න ලැබුණා. ඉතිං ඒකත් ඔන්න ඔහෙ දානව බ්ලොග් එකේ................

මේ කියන නගරේ තියෙනවා Malibu Club කියලා මාර සිරා නයිට් ක්ලබ් එකක් නොහොත් රාත්තිරි සමාජ ශාලාවක්. හැබැයි මේකේ නං මහ ගිනි දවාලෙත් තැටිජොකී පාටි තියෙනවා... :D

ඉතිං පොඩි පහේ වැඩකට සෙට් වෙලා ඉන්න අතරෙ මේක ඇතුලටත් රිංගුවා මම. මෙන්න වැඩක්...! O_o පිංතූර වලින්ම බලන්ට මරු දෙයක්....... (පිංතූර පැහැදිලිව බලන්න පිංතූරෙ ක්ලික් කරන්න)

මේකෙ වමේ සිට දකුණට බැලුවොත් ඉන්නවා ගිනි නිවන භටයෙක්, කම්කරුවෙක්, මැරයෙක්, හමුදා භටයෙක්, පොලිස් නිලධාරියෙක්
ඒ දිහා බලාගෙන ඉන්නෙ අපේ starting character එක, Tommy Vercetti

මේ කට්ටිය එකට සෙට් වෙලා පණුගාය වන්නම නටනවා. :P

නිකමට මොනව වෙයිද කියල බලන්න ආසාවට Mr. Vercetti ලවා දෙන්නෙක්ව පරලෝ සැපත් කෙරෙව්වා. ඕක මහලොකු දෙයක් නෙමෙයිනේ.... මවුස් එක ගෙවෙනකං ඒකට අනින්නයි තියෙන්නේ.. :D

අනුමාන කළ පරිදිම එය සිදු විය! ඉතිරි තුන්දෙනා කිසිත් සිදු නොවූ පරිදි සිය කාර්යය කරගෙන යති!!


Vice City සෙල්ලම් කරල තියෙන අය දන්නව ඇතිනේ.... ඔය නගරේ කාකි ඇඳුමක් පේන තෙක් මානෙක ඉඳලා මේ වගේ ගේමක් දුන්නොත් සිද්ධ වෙන දේ.................. තරු එකායි දෙකායි ඊට පස්සේ මේලෝක සිහියක් නැතුව එළවනවා පස්සෙන්..... :S

මට නම් මේක දැකලා මාර හිනා (Vice City vs Sri Lanka කියලා පොඩි සංසන්දන පාරක් දැම්ම හිතින්).... ;-) මේ පාස්කු බිත්තරයක් නොහොත් ඊස්ටර් එගක් ද? නැත්තම් අහඹුවක්ද?

මේක ටිකක් වෙලා බලාගෙන හිටියා ක්ලබ් එකේ සිංදුවත් අහගෙනම. මගේ ලියමන එපා වෙන සයිස් එකේ වැඩකට නැති එකක් කියල හිතෙනවනම් Malibu Club එකේ නැටවෙන සිංදුව අහන්ටකෝ........


Old is gOld කියන්න වගේ මේක 1984 අවුරුද්දේ අතිශයින් ජනප්‍රිය වුණු ගීතයක්.

එහෙනම් අපි ගියා..... ගුඩු නයිට්.....! Ciao............!!!!!!!!!!!!!!

Monday, March 1, 2010

අනං මනං... 2010 ජනවාරි, පෙබරවාරි...

මගේ අහවල් කාව්‍යකරණය ගැන ලිව්වට පස්සෙ ගොඩක් දවසකින් මේ පැත්තෙ එන්න බැරි වුණා. මාර්තු අවසාන වෙන්න කලියෙන්වත් මොනව හරි නොලිව්වොත් සිංහල බ්ලොග් කියවනයෙන් මාත් විසික් වෙයි එළියට. කොත්තුවෙන් නම් තාම දොට්ට දාලා නෑ.. :)
(මාස තුනක් ඇතුළත නොලිව්වොත් සිංහල බ්ලොග් කියවනයෙන් එළියට... :| මාස දෙකක් ඇතුළත නොලිව්වොත් කොත්තුවෙන් එළියට.... :| )

මට මතකයි 2009 අවුරුද්දෙත් බ්ලොග් ලිවිල්ල පටන් ගත්තෙ ටික දවසක නිහැඬියාවකට පසුව. සුපුරුදු පරිදි තාක්ෂණික සටහනක් ලියන්න අවශ්‍ය කරන වස්තු බීජයක් ලැබුණෙත් නෑ. පහුගිය දවස් වල මට එක එක ජාතියේ වැඩ තිබුණ නෙව... විභාගයක් තිබුණා... ඉතිං මගේ පුරුදු වැඩ ටිකක් අතමක කරලා 'ගිරවාරූඪය' ට මාරු වුණා. විභාගේ ගැන නම් මතක් කොරනකොටත් බයයි වගේ... හාපෝයි...! විභාගේ 'to be continued' කියල ඒ අතර කාලේ ඡන්දෙකුත් තිබුණනේ.... ඔන්න ඉතිං ජනාධිපතිකමට සුදුසුයි කියල මට හිතුණු පුද්ගලයට මමත් අත පුරෝල පොඩි කතිරයක් ගහල ආවා. :)

දැන් ඉතිං කැම්පස් ජීවිතේ අන්තිම මාස හය... මේ කාලේ අපට තියෙනව ආධුනිකත්ව වැඩසහටනක්...හුරු පුරුදු විධියට කිව්වොත් අපේ internship programme එක. ඉතිං ජනවාරි 25 මමත් ජැන්ඩියට ඇඳලා ගියා ඉන්ටර්වීව්... මගේ ජීවිතේ පළවෙනිම ජොබ් ඉන්ටර්වීව් එක... මම ඒක සමත් වුණා! මාර්තු 02, ඒ කියන්නෙ හෙට උදේ ඉඳලා මට යන්න තියෙන්නෙ අළුත් ගමනක්... අළුත් පරිසරයක්... අළුත් මුහුණු... ලංකාවේ ලොකු ම තැනක පොඩි ම මනුස්සයෙක් විධියට මම හෙට ඉඳලා වැඩ! :)

ඊට පස්සේ ආයෙමත් විභාගේ... ඉතිරි ටිකත් ඩෙෆා රිපීට් කියලා දැනගෙනම නියම නෑමක් නෑවා... විභාගේ තමා අපේ අභාගේ. :( System and Network Administration නම් නාගන්නෙ නැතුව කරගත්තා... ලේසි පාසු එකකට තිබුණෙ ඒක විතරයි මම හිතන්නේ... :D (ලිනක්ස්ට ජය වේවා!)

විභාගේ අස්සේ තවත් වැඩකට ගියානේ... පෙබරවාරි 10 හවස දෙකට Human Resource Management ප්‍රශ්නපත්‍රයකුත් තියෙද්දි උදේ 9ත් 10ත් අතර සජීව ගුවන්විදුලි වැඩසටහනකටත් සහභාගි වුණා... O_o
ඉන්ටර්නෙට් සම්පත් භාවිතය -- මේ වැඩසටහන කොළඹ විශ්වවිද්‍යාලයීය පරිගණක අධ්‍යයනායතනයේ තවත් සද්කාර්යයක්... :) නිදහස් අධ්‍යාපනයෙන් අප ලබන ජවය මුදා හරින එක විධියක් තමයි ඒ... අප ලබන දැනුම සමාජය වෙතත් ලබා දීම... ශිෂ්‍ය සහභාගීත්වයෙන් හැම බදාදාවකම පෙරවරු 9.00 ට සජීව ව විකාශය කෙරෙන මේ වැඩසටහන් මාලාවේ පෙබරවාරි 10 බදාදා වැඩසටහන ගැන විශේෂයෙන් සඳහන් කළේ ඒකෙ තේමාව සිංහල බ්ලොග්කරණය නිසා... වැඩි විස්තර සිංහල බ්ලොග්කරුවන්ගේ ගුග්ල් සමූහයෙ ඇති වුණු මෙන්න මේ කතාබහෙන් දැනගන්න පුළුවන්. එදා වැඩසටහන මෙතනින් බාගන්නත් පුළුවන්. :)
එදා තවත් පාඩමක් ඉගෙනගත්තා... පූර්ණකාලීනව ලිනක්ස් වලට මාරු වීමේ ප්‍රතිපලයක් ලෙස මට වින්ඩෝස් සම්බන්ධ සමහර දේ අමතක වෙලා කියල දැනුණෙ අසන්නෙකුගෙන් ගැටළුවක් ඉදිරිපත් වුණාමයි... O_o අන්තර්ජාලය තිබුණු නිසා හිර නොවී යංතං ෂේප් කරගත්තා... :D



ඉතිං විභාගෙත් ඉවර වෙලා නිදහසේ ඉන්න කාලේ තව පොඩි පොඩි වැඩ ටිකකට අත ගැහුවා... අපේ ඇන්ත්‍රැක්ස් අයියගේ අළුත් ව්‍යාපෘතියක් තියෙනවා... පරිගණක ආරක්ෂාව ගැන දන්න සිංහලෙන් කතා කරන්න... සිංහල හැකර්ලාගේ තිප්පොල... ඉතිං ඒකටත් පොඩි සහයෝගයක් දෙනවා මේ දවස් වල... තාම සෑහීමකට පත් විය හැකි මට්ටමේ සහභාගීත්වයක් දෙන්න පුළුවන් වුණේ නෑ. :( ඉතිං... මෙන්න තියෙනවා අපි කතාබහ කරන තැන. දැන්ගන්න ඕනේ දෙයක් තමයි මේක සුදු තොප්පිකාරයින්ගෙ තැනක්... "යාළුවගෙ ඊමේල් ගිණුමට හොරෙන් පිවිසෙන්නෙ කොහොමද?" ඒ වගේ දේවල් ගැන කතා කරන්න වෙනින් තැනක් හොයාගන්න. "කොහොමද අපේ ඊමේල් ගිණුම ආරක්ෂා කරගන්නේ?" මෙන්න කතා කරන්න තැන...! තව,... පරිගණක වයිරස් ගැන... වින්ඩෝස් පාවිච්චි කරන අයට ලොකුම කරදරේ ඕකනේ... එන්න ඇවිත් සෙට් වෙන්න... අපි මේ දේවල් ගැන දන්න සිංහලෙන් කතා බහ කරමු... ඉගෙනගනිමු.... http://hacker.lk

පහුගිය දවස් වල මම වැඩියෙන්ම මහන්සි වුණේ මොකකටද කියන පුරස්නෙට නම් එක එක උත්තර තියෙනවා... වඩාත්ම හරි උත්තරය දන්න කස්ටිය සද්ද නැතුව ඉන්නවා හොඳයි... :P :D



පෙබරවාරි 13 නම් විශේෂයෙන් සඳහන් කරන්න ඕනෙ දවසක්. අපේ කැම්පස් එකේ සම්ප්‍රදායක් විධියට පළමු වසර විනෝද චාරිකාව යොදාගන්නෙ හන්තාන ආශ්‍රිතව. මේ දක්වා ඔය ගමන ගිහිපු අපේ කිසිම බැච් එකකට කිසිම උපද්‍රවයක් සිද්ධ වුණේ නෑ.... නමුත් මේ වතාවේ අපේ පළමු වසර පොඩ්ඩන්ට පේරාදෙණිය විශ්වවිද්‍යාලයේ 'මහා' ශිෂ්‍ය සංගමයෙන් බොහොම නින්දිත සහ දරුණු විධියට සලකලා තියෙනවා... වැඩි විස්තර මෙතනින් කියවන්න පුළුවන්. මේ සම්බන්ධයෙන් විරෝධතාව දක්වලා වෙනම බ්ලොග් සටහනක් ලියන්න මම අදහස් කළත් ඒකට වෙලාවක් ලැබුණෙ නැහැ.


මේ ගැන මගේ සගයින් එක්ක කතා බහ කරද්දි දැනගන්න ලැබුණා වෙනත් විශ්වවිද්‍යාල වල සිසුන්ටත් මේ කරදරයටම මුහුණදෙන්න සිද්ධ වුණු බව... අපි දේශපාලන පක්ෂ වලට කඩේ යන්නෙ නැති නිසා අපිව ඇලජික් වගේ ඇති...

මෙන්න මේකත් බලන්න... ත්‍රස්තවාදය පිළිබඳ විශේෂ උපාධියකුත් පේරාදෙණියෙ ඇති මං හිතන්නේ...
 

පේනව ඇතිනේ... පේරාදෙණියේ 'මහා' ශිෂ්‍ය සංගමයේ 'මහා ලොකු' අයියලා නිදහස් අධ්‍යාපනයෙන් ලද ජවය මුදා හැර තියෙන හැටි... ඉතින් මේ ගැන වැඩි commentary දෙන්න මම කාලය වැය කරන්නෙ නෑ.. කියවන ඇත්තෝම සිය නැණ පමණින් වටහා ගනිත්වා..!

එකක් ඉවර වෙනකොට තවත් එකක්... උතුරේ ත්‍රස්තවාදය නැත්තටම නැති කළා වගේම හන්තාන පැත්තේ ඉවර කරන්න තවත් ඒ වගේම මෙහෙයුමක් අතිගරු ජනාධිපතිතුමාට ඉතිරි වෙලා තියෙනවා.... මේකත් කියවලම බලන්න.

තවත් වැදගත් කාරණාවක්... පේරාදෙණියෙ ඔය 'මහා' ශිෂ්‍ය සංගමයත් එක්ක ඇයි හොඳයියක් නැති පිරිසකුත් ඉන්නවා... මම දන්න තරමින් ඒ අයට කියන්නෙ අලයො කියලා... අලයො අහිංසකයි... ඒ නිසා පේරාදෙණියෙ ඉන්න අල පිරිසට මේ සිද්ධිය සම්බන්ධයෙන් ගරහන්න එපා... උන් නිර්දෝෂයි. (මං වැරදි නම් පේරා අලයෙක්ම ඇවිල්ලා නිවැරදි කරන්ඩෝ.... :) )



පෙබරවාරි 13 Lirneasia AT Tester Soft Launch සඳහාත් සහභාගි වුණා. මට දැන් ඒ ගැන වෙනමම සටහනක් ලියන්න කාල වේලාව මදි... සවිස්තර සටහනක් ලෙස මාලින්ද ලියූ සටහනින් සෑහීමකට පත් වෙන්න පුළුවන්. :-)
වැදගත්ම කාරණාව තමයි ලංකාවේ broadband අන්තර්ජාල සබඳතා ලබා දීමේ ගුණාත්මක ප්‍රමිතියක් තවම නැහැ. එහෙමත් නැත්තම්, ගුණාත්මක සේවාවක් ලංකාවේ අන්තර්ජාල පාරිභෝගිකයන්ට ලැබෙන්නෙ නැහැ. මේ සම්බන්ධව පාරිභෝගිකයන් ලෙස හඬක් නගන්න අපට අවශ්‍ය කරුණු කාරණා, සාක්ෂි, සාධක පිළිබඳව අදාළ පර්යේෂණ පවත්වනවා Lirneasia ආයතනයෙන්. ඒක ඒ අය ලංකාවේ අන්තර්ජාල පාරිභෝගිකයා වෙත කරන ලොකු උදව්වක්. ඉතින්.. මේ පර්යේෂණ වලට සහය දීලා ලංකාවේ අන්තර්ජාල සේවා වල දියුණුව වෙනුවෙන් යමක් කිරීම තමයි අන්තර්ජාලය භාවිත කරන්නන් ලෙස අපෙන් සිදුවිය යුතු දේ. :)

පෙබරවාරි 14 වැනිදා ඔය AT Tester එකේ source code එකත් එක්ක ටිකක් ලව් කළා... මට හීනියට වගෙ අදහසක් ඇවිත් තියෙනවා ඒ code එක අධ්‍යයනය කරලා, ලිනක්ස් වල වැඩ කරන්න පුළුවන් AT Tester එක්ක හදන්න. බලමු... වෙලාව තිබුණොත් තමා....



ලිවිය යුතු වැදගත් දෙයක් තව ලැබුණෙ නෑ... ආ.... තංගල්ල පැත්තෙ පොඩි ටුවර් එකක් ගියා... දේශීය - විදේශීය හැමෝටම කියවන්න පුළුවන් වෙන්න ඒක ලිව්වෙ කඩ්ඩෙන්.... ගිහින් කියවලම බලන්න.... වැඩි හරියක්ම තියෙන්නෙ පිංතූර... :)

මගේ අද ලියමන මෙතනින් ඉවරයි... හෙට උදේ නවයෙන් මතු වැඩ කරන්න ලැබෙන කාර්යාල වටපිටාවත් එක්ක බ්ලොග් ලියන්න ඉස්පාසුවක් ලැබෙන එකක් නැති වෙයි... දන්නවනේ... රාජකාරිය = දේවකාරිය :D

ඉතිං... කස්ටිය  ඔය පහළින් තියෙන කොටුවේ ගල්-මුල්-මල්-එකඟතා-නොඑකඟතා මේ මොනව හරි ලියල යන්න..... ඔන්න මං කැපුනා... චෙරියෝ....! :D

Wednesday, December 30, 2009

ව්‍යාවසාදනය – bash කාව්‍යකරණයේ අත්ගුණය


කාව්‍යකරණයක් ගැන නොවැ මං කියල තියෙන්නේ... කලා රසයෙන් යුත් කවි දෙපදක් රස විඳින්න හිතාගෙන මේ පැත්තෙ ආපු අයගෙන් මුලින්ම මං සමාව අයදිනවා... නෝනාවරුනි, මහත්වරුනි.... ඔබේ බලාපොරොත්තු කඩවෙනවා. :-)

පරිගණක ක්‍රමලේඛණයට අධික ඇල්මක් දක්වන නිසා ඒක මට දැනෙන්නෙ කාව්‍ය රචනයක් වගේ.... මම දන්නෙ නෑ අනිත් අයටත් එහෙමද කියල. එදිනෙදා ඇති වෙන ලොකු - පොඩි ගැටළුවකදි ශිල්ප දාලා program කෑල්ලක් අටවගන්න එක පරිගණකත් එක්ක ගෙවෙන මගේ ජීවිතේ සාමාන්‍ය දෙයක් බවට පත් වෙලා. ඇත්තෙන්ම මම පරිගණක ක්‍රමලේඛණයේ අපූර්වත්වය විඳින්න පුරුදු වෙලා තියෙනව කිව්වොත් නිවැරදියි, programming is passion!

එතකොට ව්‍යාවසාදනයක් (disinfect) ගැන කියල තියෙන්නෙ මොකක්ද? මේ සටහන මගේ පසුගිය සටහනට සම්බන්ධයි. ඒකෙ ඉතිරි කොටස කියමුකෝ. මෙතනින් එහාට යන්න කලින්, මම මීට කලින් ලියූ බ්ලොග් සටහන වරක් කියවල මේ පැත්තෙ එන්න පුළුවන් නම් ඉතාම හොඳයි. මීළඟ අභියෝගය වුණේ malware හේතුවෙන් ආසාදිත වී තිබුණු ගොනු ටික හොයා ගන්න එකයි, වෙබ් අඩවිය සම්පූර්ණයෙන් ශුද්ධ කරන එකයි. (ආසාදිත ගොනු ටික කිව්වට පසුව සොයා බැලුවම 602ක්!)

මම කළ ප්‍රතිකර්මය කියන්න කලින් මම මේකෙ මුල් කොටසට ආපු ප්‍රතිචාර ගැන යමක් සඳහන් කරන්න හිතුවා. ලැබුණු ප්‍රතිචාර වලින් මම තෘප්තිමත්. එහෙම නොවුණනං දෙවෙනි කොටසක් ලියවෙන්නෙ නැහැනේ. :-)  හැබැයි, මේ වගේ තාක්ෂණික ලියවිලි වලදි මම ප්‍රතිචාර වලින් බලාපොරොත්තු වෙනවා තවත් යමක්. ඒ මගේ අඩු පාඩු. මම පොට වරද්දාගෙන තියෙන තැන්... නොමග ගිය තැන්... සටහන් අන්තර්ගතයෙ වැරදි... වගේ දේවල්. ඒ විතරක් නෙවෙයි සමහර අය වැරදි වැටහීමක් ඇති කරගෙන තිබුණා මේ ආසාදිත වෙබ් අඩවිය ශාකුන්තල.com කියලා. ඒක එහෙම නැහැ, ශාකුන්තල.com බොහොම සුවසේ තියෙනවා. ජනවාරි පළවෙනිදා ස්වයංක්‍රීවයම දියත් වෙන අළුත් නැවක් ඒක. ආසාදිත වෙබ් අඩවිය මට අයිති එකක් නෙවෙයි. ඒකෙ නම රහසක්. ;-)

ඉතින්... මම ලිව්ව එක ආපහු නිවී හැනහිල්ලෙ කියවනකොට මට දැනුණා අවුලක්. අන්තර්ගතය, නිගමන... ඒවයෙ අවුලක් පේන්න නෑ. අවුල තියෙන්නේ මම ගිය පාර.

අපේ පැත්තේ වලි වල සුලභ දෙයක් -- එකෙක් ගුටි කනවා තව එකෙක්ගෙන්... දැන් ගුටි කාපු එකාට ඕනේ පුළුවන් ඉක්මනින් ආපිටට නෙළන්න. සමහර විට ආපිටට නෙළන්න කල්ලි පිටින් යන්නෙ ගුටි කාපුවයෙ ඉදිමුම්වත් බහිනකම් ඉන්නෙ නැතුව. ඉතිං මේ වෙබ් අඩවි සංසිද්ධියෙදිත් මම කරල තිබුණේ එහෙම දෙයක්. අපේ වෙබ් අඩවියට වෙච්ච හානිය ගැන මුලින් තක්සේරුවක් කරනවා වෙනුවට මම කළේ වෙබ් අඩවියට ප්‍රහාරය එල්ල කළේ කවුද,.. කොහෙන්ද,... ආපිටට නෙළන්නෙ කොහොමද... ඔන්න ඔය වගේ විකාර හොයපු එක. මාර ඇඩ්මින් නේද? :P (හැබැයි ඒ සෙවිල්ල යම් තරමකින් හෝ වැඩක් ඇති දෙයක්)

හරි... දැන් ආපහු එමුකො මාතෘකාවට. හැම index ගොනුවක්ම සහ හැම javascript ගොනුවක්ම ආසාදනය වෙලා තියෙන බව සොයාගන්න පුළුවන් වුණු නිසා මුලින් මගේ අදහස වුණේ උපස්ථයකින් (backup) වෙබ් අඩවිය යළි පිහිටුවන්නයි. තිබුණු අළුත්ම උපස්ථයත් සෑහෙන පරණ ගතියක් දැනුණු නිසා මට backup වැඩේ හිතට හරි මදි. කොහොමටත් Backup & Restore මට එච්චර දිරවන මාතෘකාවක් නෙවෙයි.

ඒ නිසා මම කල්පනා කළා PHP වලින් සෙල්ලමක් දාලා ස්වයංක්‍රීයව ආසාදිත ගොනු ටික හොයාගෙන ඒවයෙ තියෙන ආගන්තුක කේත කොටස් ඉවත් කරන්න ක්‍රමයක් හදන්න. ආසාදනයේ ස්වභාවය අනුව මේක කරන්න පුළුවන් දෙයක්. නමුත්, PHP වලින් කරනවනම් ආරක්ෂාව ගැන තවදුරටත් හිතන්න වෙනවා. ඒකත් අමාරු දෙයක් නෙවෙයි.

Web hosting ආයතනය විසින් ssh ප්‍රවේශ පහසුකම් සලසා තිබුණු නිසා ssh හරහා වෙබ් අඩවියට පිවිසිලා මේ කාරණය ඉටු කරගන්න පුළුවන් බවත් මට වැටහුණා. මෙහෙයුම් පද්ධතිය විධියට ලිනක්ස් පාවිච්චි කරන මට bash එක්ක වැඩ කරනවා කියන්නේ අතිශයින්ම සාමාන්‍ය දෙයක්. ssh ප්‍රවේශ පහසුකමත් තියෙන නිසා, පරිගණකයත් එක්ක කතා බහ කරන්න මම නිතර පාවිච්චි කරන bash scripting මේ වැඩේට PHP වලට වඩා සුදුසු බව තේරුම් ගන්න මට වැඩි වෙලාවක් ගියේ නැහැ. අවසානයේ 'ඇන්ටිවයිරස්' එක bash පාවිච්චි කරලා linux shell script එකක් (මගේ වචන වලින් නම් bash කාව්‍යයක්) විධියට සකස් කරන්න තීරණය කළා.

අපි ලියන ක්‍රමලේඛයක අහම්බෙන් සිදු විය හැකි එක කුඩා විචල්‍යයක (variable) වරදක් නිසා සමහර විට පද්ධතියේ සියළු දත්ත ක්ෂණයකින් විනාශ වෙන්න පුළුවන්. ඒ වගේ අවදානමක් ගන්න ඕනේ නැති නිසා මම ලියන ක්‍රමලේඛය පරීක්ෂණ ධාවනයට (test run) ලක් කරන්න වෙබ් අඩවි ගොනු සියල්ල මගේ පරිගණකයට පිටපත් කරගත්තා.

$ ssh user@mysite.com

දැන් අපි සර්වර් එක ඇතුළේ...

$ tar cvfj mysite.tar.bz2 mysite/
$ exit

Compressed archive එකක් නිර්මාණය කළා. දැන් ඒක මගේ පරිගණයට ඩවුන්ලෝඩ් කරගන්න ඕනේ...

$ scp user@mysite.com:/home/user/mysite.tar.bz2 /home/shaakunthala/

දැන් පැක් එක ලිහන්න ඕනේ...

$ tar xvjf mysite.tar.bz

දැන් ලිහපු පැක් එක පැත්තක තියෙද්දි මගේ සුපුරුදු එඩිටරය වන vim පාවිච්චි කරලා shell script එක ලිවීම ආරම්භ කළා. ලියන්න කලින් අවශ්‍යතාව අවබෝධ කරගන්න ඕනේනේ... මෙන්න මෙහෙමයි ආසාදනයේ ස්වභාවය:
  • ආසාදිත ගොනු වල ආගන්තුක කේත කොටස තියෙන්නේ ගොනුවෙ අවසාන පේළිය ලෙස.
  • ආගන්තුක කේත කොටස තැනින් තැනට වෙනස්. නමුත් පොදු රටාවක් ලෙස එහි පහත දැක්වෙන පාඨ කොටස් හඳුනාගන්න පුළුවන්. ඒ නිසා සංකීර්ණ regexp ලිවීම අනවශ්‍යයි.
    • GNU GPL
    • window.onload
    • .replace
  • ආසාදනය වෙලා තිබුණෙ index ගොනු සහ javascript ගොනු පමණයි. (මෙය නිවැරදි තක්සේරුවක් කියා පිළිගන්න අපහසු දෙයක්. මේ නිසාත්, අපේ වෙබ් අඩවියෙ ශ්‍රව්‍ය-දෘෂ්‍ය වගේ විශාල ගොනු නොතිබුණු නිසාත් සියළුම ගොනු පරීක්ෂා කෙරෙන script එකක් ලිවීමෙන් වරදක් වෙන්නෙ නැහැ)
මේ කාරණා සැලකිල්ලට අරගෙන මුළු වෙබ් අඩවියම එකවර ශුද්ධ කරන script එකක් ලිවීම බොහොම පහසු කාරණයක් වුණා. bash functions සහ find -exec / xargs අතර පරහක් තියෙන නිසා මට script එක කොටස් දෙකකට වෙන් කරන්න සිදු වුණා.

sitefix.sh
#!/bin/bash
# Author: Sameera Shaakunthala

rm fixlog.txt
rootdir=`pwd`/mysite/
sup=`pwd`"/fixfile.sh"
find $rootdir -exec $sup {} \;
echo "JOB DONE!"

fixfile.sh
#!/bin/bash
# Author: Sameera Shaakunthala

echo "Processing file: "$1
code=`tail --lines=1 $1 | grep "GNU GPL" | grep window.onload | grep .replace`
l=`echo $code | wc -m | awk '{ print $1 }'`

if [ $l -ne 1 ]
then
 lc=`wc -l $1 | awk '{ print $1 }'`
 lc=`expr $lc - 1`
 head $1 -n $lc > tempfile.tmp
 mv tempfile.tmp $1
 echo "File "$1" has been fixed!" | tee -a fixlog.txt
fi

දැන් පරීක්ෂණ ධාවනය. මේක හරි ගියොත් වැඩේ තිතටම හරි.

$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

මේක අහවර කරලා fixlog.txt ගොනුව පරීක්ෂා කරල බැලුවා.... ආසාදිත ගොනු 602ක්! අහඹු ලෙස ගොනු කීපයක් පරීක්ෂා කරල බැලුවා. ඒ හැම එකක්ම සුද්ධයි. යංතං අටවගත්ත වයිරස් ස්කෑනරේ සාර්ථක වෙලා! දැන් තියෙන්නෙ සර්වර් එකට මගේ දෙකඩ script එක පටවලා (upload) ක්‍රියාත්මක කරන එක.

$ scp sitefix.sh fixfile.sh user@mysite.com:/home/user
$ ssh user@mysite.com
$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

අවසාන ප්‍රතිපලය වුණේ මිනිත්තු කිහිපයක් ඇතුළත අපේ වෙබ් අඩවිය සාර්ථක ලෙස ව්‍යාවසාදනය වීම. සියළුම malware කොටස් ඉවත් වී ඇති බව තහවුරු කර වුණේ antivirus මෘදුකාංග මගින් අපේ අඩවිය තවදුරටත් අවහිර නොකරන බව දැන ගත් විටයි. කොහොමද bash කාව්‍යකරණයේ අත්ගුණය? :-)

Hallelujah!

මේ සියල්ල සිද්ධ වුණේ දෙසැම්බර් 27 අළුයම් කාලයේ. මම ලියූ කේතය මගේ මිත්‍රයෙකුටත් ප්‍රයෝජනවත් වුණා. ඔහුගෙ වෙබ් අඩවියකුත් මේ ප්‍රහාරයටම ලක් වෙලා කියල ආරංචි වුණා. ඒක අපූරුවට වැඩ කළා ලු!

අද සටහන අවසාන කරන්නෙ බොහෝම නරක ආරංචියක් එක්කයි. මම භාෂා පරිවර්තකයෙක් නෙමෙයි... ඒ නිසා සිංහලෙන් ලියන්නෙ නෑ මේක >> ක්ලික් කරලම බලන්න...!


අවසානයේ කපිතන් ශාකුන්තල විසින් අනෙක් කපිතන්වරුන්ගේ හා නැවියන්ගේද උපකාර ඇතිව අහවල් නෞකාව බේරා ගන්නා ලදී. හිකිස්! :D

Thursday, December 24, 2009

Hacker ප්‍රහාරයක්...?


වෙබ් අඩවියක් පරිපාලනය කරනවා (website administration) කියන්නෙත් හරියට නැවක කපිතන් තනතුරේ ඉන්නව වගේ වැඩක්. හැම දෙයක් ගැන ම හැම ආකාරයකින් ම විමසිල්ලෙන් ඉන්න ඕනේ. ඇතුළතින් - පිටතින් දෙපැත්තෙන්ම එන සතුරු ප්‍රහාර වලට මුහුණදෙන්න ඕනේ... අන්තර්ගතය ගැන බලන්න ඕනේ... සෙවුම් යන්ත්‍රත් එක්ක තියෙන පළහිළව් විසඳන්නත් ඕනේ....
වෙබ් අඩවියෙ ප්‍රතිපත්තිත් (policies) එක්ක මේ වැඩ රාජකාරි ප්‍රමාණය  අඩු වැඩි වෙන්නත් පුළුවන්.

හරි.... එමුකො මාතෘකාවට. මගේ පරිපාලනය යටතෙ තියෙන එක වෙබ් අඩවියක් මෑතකදි හදිසියෙම අකර්මණ්‍ය වුණා. වෙබ් අඩවියට ගියාම සුදු පාට පිටුවක පෙන්නනවා දෝෂ පණිවුඩයක්... index.php ගොනුවෙ 38 වෙනි පේළිය... < ලකුණ තමයි අවුලට මුල කියල ඒ පිටුවෙ කියන්නේ. මේ අවුල දැක්ක සැණින් මට දැන්වූ බ්‍රයන් වෙත මගේ ස්තුතිය!

ඉතින් මමත් මේ ගැන සොයා බලන්න Filezilla මෘදුකාංගය පාවිච්චි කරලා FTP හරහා වෙබ් අඩවියෙ ගොනු තියෙන ඩිරෙක්ටරියට පිවිසුණා. මේ වෙබ් අඩවිය CMS එකක් භාවිතයෙන් නිර්මාණය කළ එකක්. index.php ගොනුව පිරික්සා බැලුවාම අමුතු දේවල් කීපයක්ම දකින්න ලැබුණා.

සාමාන්‍යයෙන් අපි PHP කේත ලිවීමේදී අපේ PHP කේත කොටස ලියන්නේ <?php හා ?> යන ටැග අතර. නමුත්, සුපුරුදු සම්මතයට පටහැනි වුණත්, අපේ php ගොනුවෙ තිබුණෙ ආරම්භක (<?php) ටැගය පමණයි.

PHP කේතයෙ අන්තිමේ HTML Script ටැගයක් තිබුණා. බොහොම භයංකර, බැලු බැල්මට hieroglyphs වගේ පේන අමුතු HTML/ Javascript කේත කෑල්ලක් ඒක.

එතකොට සම්පූර්ණ කේතය මෙන්න මේ වගේ:
<?php
/* වෙබ් අඩවියේ
PHP
කේත */

<script> // ආගන්තුක Javascript කේත කොටස </script>

හේතුනිර්ණය: දෝෂයට හේතු වුණේ PHP අස්සේ HTML තිබීම නිසා HTML කේත කොටසත් PHP කියල හිතාගෙන, අපේ සර්වර් එකේ PHP එන්ජිම මඤ්ඤං වීම.

---

ඉතින් මේක දැක්කාම මම කළ පළවෙනි දෙය මේ ගැන අනිත් පරිපාලකවරුන්ගෙන් (administrators) විමසීම. මේ කේතය ගැන ඒ කිසිවෙක් දැන සිටියෙ නැහැ.

එහෙනම්......
Hacker ප්‍රහාරයක් ද?

මගේ අනුමානය වුණේ මේ කවුරුහරි hacker කෙනෙකුගෙ වැරදුණු කුරුමානමක් කියලයි. මොකද අපේ වෙබ් අඩවිය අකර්මණ්‍ය කළා කියල කාටවත් අත්වෙන වාසියක් නැති නිසා. Phishing වගේ වැඩකට අපේ වෙබ් අඩවිය යොදා ගත්ත නම් ඒකෙන් ඔවුන්ට යම් වාසියක් ලබන්න අවස්ථාව තිබුණා.

කොහොම නමුත් අනිත් ඇඩිමින්ලා මේ ගැන නොදන්න නිසා (අනිත් අයගෙ දැනුවත් වීමකින්/ මැදිහත් වීමකින් තොරව සිද්ධ වුණු නිසා) මම ආගන්තුක HTML/ Javascript කේත කොටස විශ්ලේෂණය කිරීමේ අවශ්‍යතාව සඳහා මගේ පරිගණකයට පිටපත් කරගෙන, index.php ගොනුවෙන් ඉවත් කරලා ඒක save කළා. දැන් සයිට් එක බබා වගේ වැඩ.

හැබැයි.......... මගේ වැඩ එතනින් අහවර වෙන්නෙ නැහැ. මීළඟ පියවර සිද්ධියෙ අග මුල කොනක සිට සෙවීම. මෙන්න මෙහෙමයි අපේ වෙබ් අඩවියට ආසාදනය වෙලා තිබුණු විෂබීජය:



ඉතින්,... මේක එකපාර දැක්කාම මහ ලොකු පටළැවිල්ලක් වගේ.... බැලු බැල්මට ඇසෙම්බ්ලි වලින් ලිව්ව එකක් වගේ.... :P මේ කේතය පරීක්ෂා කරමින් ඉන්නකොට පැය විසි හතරක් ඇතුළත දෙවන වතාවටත් වෙබ් අඩවිය අකර්මණ්‍ය වුණ බව අහම්බෙන් දැනගන්න ලැබුණා.

සිද්ධ වෙලා තිබුණෙ කලින් සිද්ධියමයි. ඉතින් මම පෙර වතාවෙ කළ සැත්කම ම ආපහු කරලා මීට විසඳුමක් හොයන්න උත්සුක වුණා. කාලෙකට පස්සෙ පොඩි අභියෝගයක්! මේක කරදරයක් නෙමෙයි.... අභියෝගයක්....!! සතුටු විය යුතුයි ඒ ගැන.

---

දැනට සිද්ධ වුණු දේවල් ගැන පොඩි සාකච්ඡාවක් මෙතනම ඉදිරිපත් කරන්න හිතුණා. සාකච්ඡාවට සහභාගි වුණේ මගේ මස්තිෂ්ක අර්ධගෝල දෙක.... තනියට පාලුවට අනුමස්තිෂ්කයත් පිටුපස්සෙන් හිටියලු...... :D

මේ මගුල අටවපු කෙනා ඒක කරල තියෙන්නෙ වෙබ් පිටුවක මේ කේතය අඩංගු කරලා වෙබ් පිටුව පූරණය වෙන අවස්ථාවෙ ඒක පරිශීලකගෙ පැත්තෙන් ක්‍රියාත්මක කරවන්න. නමුත් අපේ php ගොනුවෙ අග වැසීමේ ටැග් එක (?>) නැති නිසා, සර්වරය පැත්තෙන් ආගන්තුක HTML කේත කොටසක් PHP කේතයක් ලෙසම සලකලා interpret කරන්න උත්සාහ කිරීමෙ අවසාන ප්‍රතිපලය වුණේ මුළු වෙබ් අඩවියම අකර්මණ්‍ය වීම.


එක්කෝ අපිත් එක්ක සෙල්ලම් කරන කෙනා/ bot එක ට index.php ගොනුවෙ සම්පූර්ණයෙන් කියවන්න හැකියාවක් නැහැ. එහෙම නැත්නම් කියවා අවබෝධ කර ගන්න හැකියාවක් නැහැ. කියවා අවබෝධ කරගැනීමේ හැකියාවක් තිබුණා නම් ඒකාන්තයෙන්ම මේ වැඩේ කරන්නෙ මනුස්සයෙක්. නමුත් මේ දෙ වතාවේදී ම php කේතයෙ ව්‍යූහය නොතකා එහි අගට අන්ධ ලෙස HTML කේත කොටසක් එක් කර තිබීම නිසා මගේ නිගමනය වුණේ මේකට වගකියන්න ඕනෙ bot එකක්ම විය යුතුයි කියන එක.

මම මෙතෙක් ලබලා තියෙන දැනුමේ හැටියටත්, අපේ වෙබ් අඩවියෙ ස්වභාවයත් අනුවත්, වෙබ් ගවේශකයක් හෝ වෙනත් උපක්‍රමයක් පාවිච්චි කරලා HTTP හරහා මේ ප්‍රහාරය ක්‍රියාත්මක කිරීම අතිශයින්ම අසීරු දෙයක්. (HTTP ගැන හොඳ අවබෝධයක් තියෙනව නම් Firefox පවා hacking tool එකක් කරගන්න බොහොම පහසුයි! -- ඒක වෙනම කතන්දරයක්)

මේ නිසා මගේ සැකය යොමු වුණේ වෙබ් අඩවිය ස්ථාපනය කරලා තියෙන සර්වරය වෙත. සර්වරය වෙත අනවසරයෙන් පිවිසෙන්න සමත් වුණු තක්කඩියෙකුගෙ වැඩක් වෙන්න ඇති! << හැබැයි මේ උපකල්පනයක් පමණයි.

---

අගමුල හෙවිල්ල පොඩ්ඩකට පැත්තක තියලා අර කේත කොටස මම ආපහු පරීක්ෂා කළා. බැලු බැලුමට ආධුනිකයෙකුගේ ධෛර්යය හීන කරවන විධියෙ සංකීර්ණ පෙනුමක් ඒකට තියෙන්නේ. නමුත් ඕනම සංකීර්ණ ගැටළුවක් සරල කොටස් වලට වෙන් කරගත්තාම පහසුවෙන් විසඳන්න පුළුවන්. අන්තිමේ බැලුවම ඒකත් බොහොම සරල දෙයක් නොවැ!

මුලින්ම කියවන්න පහසු ක්‍රමයකට කේතය පේළි කීපයකට වෙන් කරගත්තා,



මේ තියෙන්නෙ අමාරුකාර පේළිය,



ඒ පේළිය දිහා පරීක්ෂාකාරීව බලන්න... javascript පිළිබඳ එතරම් ම දැනුමක් අවශ්‍ය වෙන්නෙ නැහැ. :)



Javascript වල තියෙන replace නම් method එක තමයි මෙතන පාවිච්චි කරල තියෙන්නේ. (අහඹු ලෙස) විරාම ලක්ෂණ මුසු කිරීම මගින් සූක්ෂ්ම ආකාරයට සඟවන ලද පාඨ කොටසක්, ක්‍රමලේඛය ධාවනය වෙන අවස්ථාවේදී ඒ විරාම ලක්ෂණ ඉවත් කර නැවත ප්‍රයෝජනයට ගැනීමේ අපූරුව! හැබැයි ඉතිං මේක හරියට අගුළු දමාපු අල්මාරියක යතුර ඒකෙ යතුරුකටේම තියෙන්න අරිනව වගේ වැඩක්.

ඔය කේත කොටසෙ අවසාන ප්‍රතිපලය:



බැලු බැල්මටම පේනව නෙව මේක phishing වගේ වැඩකට පාවිචිචි කරන්න හදපු එකක් කියලා.... :)

මේ සම්පූර්ණ කේතය ධාවනය වෙද්දි වෙබ් ගවේශකය මත දිස් වන වෙබ් පිටුවේ තවත් javascript object එකක් නිර්මාණය වෙනවා. ඒ javascript කේතය තියෙන්නෙ/ තිබිය යුත්තෙ ඔය රතු පාටින් දීල තියෙන URL එකේ. නමුත් වෙබ් ගවේශකයෙන් මේ URL එක වෙත ගියාම දිස් වෙන්නෙ හිස් වෙබ් පිටුවක්. දෙවැනි ප්‍රහාරයෙදි මම පිටපත් කරගත් කේතයෙන් දැක්වුණේ මේ ව්‍යූහයම දරණ වෙනත් URL එකක්. පහත දැක්වෙන්නෙ attacks කීපයකින් පසුව මම එකතු කරගත් තවත් මෙවැනි URL දෙකක්.



---

මේ වෙබ් ලිපින මම පරීක්ෂා කර බැලුවා... මේ කේත කොටස shaakunthala.com හි මගේ වෙබ් අඩවියට දාලා ඇතැම් විට අවශ්‍ය පරිදි Wireshark පවා යොදාගෙන පරීක්ෂා කරල බැලුවා. ඒත් කොයි URL එකෙන් වුණත් ලබා දෙන්නෙ අපේක්ෂිත javascript කේතය නෙවෙයි, හිස් පිටුවක්.

ඒ හැම host එකකම port 80 හා 8080 හි වෙබ් සර්වර් ක්‍රියාත්මකව තිබෙනවා.

මේ port 80 හි ක්‍රියාත්මක වෙබ් සර්වර මත තියෙන අඩවි:




තිරපිටපත් මත ක්ලික් කරලා පැහැදිලිව බලන්න පුළුවන්

---

වෙබ් අඩවි ලඝු සටහන් (site logs) වලිනුත් කිසිම දෙයක් හොයාගන්න බැරි වුණා. ඒවයෙ මේ ගැන කිසි දෙයක් සටහන් වෙලා තිබුණෙ නැහැ. මේ කිව්වෙ server logs ගැන නෙවෙයි.

මේ ගැන කරන විමර්ශනය මම අතහැර දමා නැහැ. ඊට සමගාමීව මීළඟ පියවර අපට web hosting සේවාව සපයන ආයතනය සමඟ සාකච්ඡා කර විසඳුමක් සොයන එකත් කළ යුතුයි. තාවකාලික පැලැස්තර විසඳුමක් ලෙස index.php ගොනුවෙ අගට පහත දැක්වෙන කේත කොටස එකතු කළා. 

die();

මෙහෙම 'මැරියං!' කිව්වාම එතනින් එහාට කේතය interpret වෙන්නෙ නැහැ. ඒ නිසා අර කෙහෙල්මල් javascript එක interpret වෙන්නෙවත්,  වෙබ් ගවේශකය වෙත එන්නෙවත් නැහැ. වෙලාවෙ හැටියට මේ 'මැරියං!' එක පැලැස්තර විසඳුමක් හැටියට බොහොම ප්‍රයෝජනවත් වුණා.

---

අපේ වෙබ් අඩවිය දැන් කිසිම ගැටළුවකින් තොරව ක්‍රියාත්මකයි. හැබැයි නැවත නැවතත් ප්‍රහාරයට ලක් වෙමින් පවතිනවා. die() කියන PHP මෙතඩ් එක පළිහක් වගේ අපේ වෙබ් අඩවිය අකර්මණ්‍ය වෙන්න නොදී ආරක්ෂා කරනවා. බලමුකො ඒකෙත් අපූරුව!

හැබැයි, විමර්ශණ මෙතනින් නවතින්නෙ නෑ. index.php ගොනුවෙ permissions තිබුණෙ 664 (-rw-rw-r--) ලෙස. ඒක ටිකක් විතර අසාමාන්‍යයි වගේ (සාමාන්‍යයෙන් මේක 644 හෙවත් -rw-r--r--). මේ වෙබ් අඩවිය නිර්මාණය කළ අය වෙබ් අඩවිය සකස් කරන්න සහ host එකට upload කරන්න පාවිච්චි කරල තිබුණෙ වින්ඩෝස් මෙහෙයුම් පද්ධතිය හා ඒ පාදක කරගත් මෘදුකාංග. මේක වින්ඩෝස් වල තියෙන 'අල' permission system එක නිසා මෙතන එය 664 වුණා කියලයි මම හිතන්නේ.

මගේ ඊළඟ ඇටවුම වුණේ මේ permissions 600 (-rw-------) ආකාරයට සැකසීම. සරලව කිව්වොත්, දැන් index.php කියවන්න සහ සංස්කරණය කරන්න පුළුවන් සර්වරය පැත්තෙන් ඒ ගොනුවෙ අයිතිකරු ලෙස ඉන්න userට පමණයි. අනෙක් අයට කිසිම දෙයක් කරන්න බැහැ. කලින් තිබුණු ක්‍රමය අනුව අදාළ පරිශීලකටත්, කණ්ඩායමටත් මේ අවසර ලැබී තිබුණා. මේ නව permission සැකසීම මගින් මම සොයාගන්න අදහස් කළේ කලින් කිව්ව bot හෝ ස්වයංක්‍රීය උපක්‍රමය ධාවනය වෙන්නෙ අදාළ පරිශිලක යටතේම ද කියන එක.

මේ ආගන්තුක කේත කොටස javascript වීම නිසා ඇති වුණු සැකයක් ඔස්සේ  (මේ දැන් මොහොතකට පෙර) කළ සෙවීමකදී jQuery සහය සඳහා පාවිච්චි කරන jquery.js ගොනුවත් මෙලෙසම ආසාදනය වී ඇති බව දැනගන්න ලැබුණා. නමුත් එය Javascript ගොනුවක් නිසා කලින් වගේ ප්‍රතිපල බාහිරයට පෙනුනේ නැහැ. තවදුරටත් සොයා බැලීමේදී මුළු වෙබ් අඩවියෙම විවිධ තැන් වල තියෙන index.php ගොනු වලටත් javascript ගොනු වලටත් මෙය ආසාදනය වී ඇති බව සොයාගන්න හැකි වුණා. මට හීන්දාඩිය දාන්න ගත්තේ දැන්. තවදුරටත් සොයා බැලීමේදී මේ ගොනු බොහොමයක permissions තිබුණේ 644 (-rw-r--r--) ආකාරයෙන් බවත් නිරීක්ෂණය වුණා. මේ (permissions) නිරීක්ෂණයත් එක්කම මම කලින් ඡේදයෙ විස්තර කළ ඇටවුමේ ප්‍රතිපල ලැබෙන තෙක් බලා සිටීම අනවශ්‍ය කාරණයක් බවට පත් වෙනවා.

සියළුම නිරීක්ෂණ සලකා බලා මගේ අවසාන නිගමනය මෙය web hosting සේවාව සපයන ආයතනයේ වරදකින් සිදු වුණා කියන එක. වෙබ් අඩවි ලඝු සටහන් වලත් වැදගත් යමක් සටහන් නොවී තිබීම නිසා, මෙය HTTP හරහා වෙනත් පාර්ශවයක් අනවසර පිවිසීමක් ලබාගෙන සිදු කළ දෙයක් නොවෙයි කියන එක පැහැදිලියි.

---

අද සටහන අනවශ්‍ය පරිදි දීර්ඝයි කියා මට හිතෙන්නේ.... සුළුවෙන් හරි අපැහැදිලි තැනක් තියෙනවනම් comment එකක් දාන්න.... මම තවත් සරල කරලා විස්තර කරන්නම්.

ඒ වගේම මේ ක්ෂේත්‍රයේ අත්දැකීම් තියෙන අයගෙ උපදේශත් මේ ලිපියට ප්‍රතිචාර හෝ ඊමේල් ආකාරයෙන් බලාපොරොත්තු වෙනවා. (cyber forensics කියන්නෙ මේවද මන්දා.... :-/ )

විමර්ශණ කෙසේ වෙතත් නත්තලත් ළඟටම ඇවිත්.... ඉතින්... මගේ බ්ලොග් අඩවියට යන එන හැම දෙනාටම හැකර් ප්‍රහාර වලින් තොර සාමකාමී සුභ නත්තලක් වේවා කියල ඔන්න මගෙනුත් නත්තල් සුභපැතුම්! :-)





පසු සටහන (2009/12/25):
මේ සටහනේ අන්තර්ගතය ලෙස malicious source code කොටස් සඳහන් කිරීම නිසා විවිධ වයිරස් නාශක මගින් මගේ බ්ලොග් අඩවිය අවහිර කර ඇති බව දැනගන්න ලැබුණා. ඒවා කේත ලෙස නොව පාඨ ලෙස render වන නිසා හානි රහිතයි. මෙය වයිරස් නාශක මෘදුකාංග වල සිදුවූ වරදක් (False Positive).


Image credit: Ravin Perera

මෙය වළක්වන්න අදාළ source code සියල්ල පිළිබිඹු (images) ලෙස යොදන්න සිදු වුණා. නමුත් ඒ ඒ තැන් වලට අදාළ කේත කොටස් අවශ්‍ය නම් පහත දැක්වෙන සබැඳියෙන් බාගත කරගත හැකියි.

  http://www.4shared.com/file/180832826/c4c709df/altcodetxt.html
Password: malcode

(ඔබ වින්ඩෝස් මෙහෙයුම් පද්ධතිය පාවිච්චි කරනවා නම් මේ ගොනුව විවෘත කරන්න wordpad මෘදුකාංගය යොදාගන්න -- notepad පාවිච්චි කරන්න එපා)

යොමු:
http://forum.avast.com/index.php?topic=52588
http://groups.google.com/group/techkatha/browse_thread/thread/ab92437e0054fcec

මේ වින්නැහිය ගැන මට දැන්වූ සියළුම දෙනාට මගේ හෘදයාංගම ස්තුතිය පිරිනමනවා! :)

Merry X'mas to you all again!!