Planet TLWG

Syndicate content
Planet TLWG - http://linux.thai.net/planet
Updated: 32 min 8 sec ago

Kitt: Coffee

19 October, 2014 - 01:02
เมื่อวานขณะขับรถผ่านร้านกาแฟ เกิดระลึกชาติได้ว่า ดื่มกาแฟมาตั้งแต่ มัธยมสอง แทบไม่หยุดเลย .. คำนวณหยาบๆ ก็ไม่น้อยกว่า ยี่สิบห้าปี หลังๆ ทำไมคิดอะไรเป็นเลขปีมันเยอะจัง วันก่อนนับว่าใช้ลินุกซ์นานขนาดไหนก็ร่วมยี่สิบปี นับเฉพาะเดสก์ท็อปก็สิบห้าปีแล้ว สงสัยจะเข้าสู่วิกฤติ จิบกาแฟดีกว่า :P

Kitt: KAIST/IPFGRU 2012

17 October, 2014 - 23:54
Oct. last year I’ve attends KAIST/IPFGRU 2012, held in Seoul and also visited friends in Busan. Here are some photo. :)

Kitt: A minute, an hour, a day, and a lifetime.

17 October, 2014 - 23:18
첫눈에 반하는것 … 일분 걸린다 누군가를 좋아하게 되는건 … 한시간 누군가를 사랑하게 되는 시간 … 하루 누군가를 잊는건 … 평생 걸린다 —  진주 목걸이 Love at first sight … a minute Liking someone … an hour Loving someone … a day Forgetting someone … a lifetime — Pearl Necklace

Kitt: ม.๗

17 October, 2014 - 23:18
ม.๗ มันคือ default ที่วางท้ายสุดใน switch หรือ else สุดท้าย ใน else-if construct command ใน default / else ต้องหยิบเอา functions ที่เคย define มาแล้ว ใช้กันมานานมาใช้ โดย pass parameter ของกรณีนี้ไปเป็น input ถ้าจำเป็น จะ wrapper / template / polymorphism อะไรก็ว่ากันไป .. #ห๊ะ

Kitt: Migrate to MariaDB

17 October, 2014 - 23:17
Just drop a note that I’ve just migrated from Percona to Maria DB. See if it goes well ..

Kitt: The 10-Books Quest

17 October, 2014 - 23:17
พี่ Theppitak Karoonboonyanan กับ Kamthorn Krairaksa แท็ก quest หนังสือสิบเล่ม ส่งงานครับ 1. วงกลมกลับหัว (อาจารย์เซน กิลเบิร์ต) + การ์ตูนเซ็น (various) อ่านช่วงที่ตามหาคำตอบบางอย่างในชีวิต เปิดหูเปิดตามากๆ 2. Foundation Series (Isaac Asimov) อ่านครบทุกภาค แต่นับแล้วก็ยังประทับใจเฉพาะภาคที่ Asimov เขียน ลึกซึ้งมาก 3. Robot Series (Isaac Asimov) I, Robot + Elijah Baley ไม่แน่ใจว่ายังเหลือภาษาไทยอีกไหม 4. Michael Bolitar Series (Harlan Coben) 5. Harry Bosch Series (Michael Connelly) 6. Kosuke Kindaichi […]

Kitt: มหกรรมหนังสือระดับชาติครั้งที่ 19

17 October, 2014 - 23:14
เข้า กทม. ไปบรรยายเรื่อง Cloud บ่ายแก่ๆ ว่างมาเดินงานหนังสือ มาไวไปไว คินดะอิจิยอดนักสืบ ตอนที่ 27 เสือดำจากรัตติกาล คินดะอิจิยอดนักสืบ ตอนที่ 28 โรงละครผีสิง คินดะอิจิยอดนักสืบ ตอนที่ 29 หน้ากากมรณะ คินดะอิจิยอดนักสืบ ตอนที่ 30 ปฏิทินแม่มด มิเกะเนะโกะโฮล์มส์ แมวสามสียอดนักสืบ ตอนที่ 21 สนามสอบมหาภัย มิเกะเนะโกะโฮล์มส์ แมวสามสียอดนักสืบ ตอนที่ 22 ปริศนาโฮล์มส์หนีออกจากบ้าน เอส คำสาปกลายพันธุ์ พุ่มรัก พานสิงห์ ชุด 5 คดีล่าคนเจ้าชู้ พุ่มรัก พานสิงห์ ชุด 6 คดีศพล่องหน หมดไป 1,627 บาท สบายใจละ

LookHin: เพิ่มความปลอดภัยให้ระบบล็อกอินบนเว็บด้วยการทำ 2 Step Verification

16 October, 2014 - 12:37

บทความนี้จะเป็นการแนะนำการใช้งาน Google Authenticator และทดสอบการทำ 2 Step Verification แบบ TOTP (Time-based One-time Password) เพื่อเป็นแนวทางในการทำระบบล็อกอินในหน้าเว็บไซต์ให้มีความปลอดภัยมากขึ้น โค้ดที่ใช้ทดสอบในบทความนี้จะเป็น PHP ที่สามารถโหลดได้ฟรีจาก Github หรือหากต้องการใช้ไลบรารีในภาษาอื่นเช่น Python, .NET หรือ HTML5 ให้ลองดูจากข้อมูลอ่างอิงจาก Wikipedia ในท้ายบทความนะครับ

อย่างแรกสุดให้ทำการติดตั้ง Google Authenticator กันก่อนครับ ถ้าใครใช้ Android หรือ iOS ก็โหลดกันจากสโตร์ของแต่ละค่ายได้เลย โดยค้นหาคำว่า Google Authenticator และทำการติดตั้งให้เรียบร้อย เมื่อติดตั้งแล้วจะได้หน้าตาประมาณนี้

Google Play
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2

App Store
https://itunes.apple.com/en/app/google-authenticator/id388497605?mt=8

จากนั้นทำการโหลดไลบรารีจาก https://github.com/chregu/GoogleAuthenticator.php ทำการ unzip ให้เรียบร้อย เดียวเราจะใช้เฉพาะไฟล์ที่อยู่ในโฟลเดอร์ /lib

เขียนโปรแกรมเพื่อสร้าง Security Key ซึ่ง Key ที่ได้จะเป็นตัวอักษรภาษาอังกฤษกับตัวเลขรวมกัน 16 ตัว จากชุดตัวอักษรต่อไปนี้ “ABCDEFGHIJKLMNOPQRSTUVWXYZ234567″ เราอาจจะสุ่มออกมา 16 ตัวเองก็ได้นะครับ

1 2 3 4 5 6 7 8 9 <?php include_once("lib/GoogleAuthenticator.php");   $g = new GoogleAuthenticator(); $secret = $g->generateSecret();   echo $secret;   ?>

นำค่า Security Key ที่ได้ไปสร้าง QR Code อันนี้ใครจะทำโปรแกรมสร้าง QR Code เองก็ได้ ซึ่งผมแนะนำให้สร้างเองดีกว่าอย่างน้อย Security Key ก็จะได้ไม่หลุดออกไปที่อื่น แต่ในบทความนี้จะใช้ทดสอบการทำงานเท่านั้น ฉะนั้นผมจะสร้างจากเว็บที่ให้สร้าง QR Code แบบออนไลน์เลยนะครับ ในทีนี้ผมจะใช้ http://qrcode.kaywa.com/

โดยให้ใช้สตริงต่อไปนี้ในการสร้าง QR Code

1 otpauth://totp/LABEL?secret=SECURITY_KEY&issuer=ISSUER_NAME

LABEL = ข้อมูลที่จะแสดงในโปรแกรม Google Authenticator ว่ารหัสนี้จะใช้กับอะไร
SECURITY_KEY = Security Key ที่เราสร้างจากขั้นตอนที่แล้ว
ISSUER_NAME = ชื่อหน่วยงานของเรา

จริงๆ ทั้ง LABEL และ ISSUER_NAME เราสามารถตั้งเป็นอะไรก็ได้นะครับ

จากตัวอย่างสตริงที่จะใช้สร้าง QR Code ของผมก็จะเป็น

1 otpauth://totp/www.unzeen.com?secret=DG4WCXVUVYENHLLS&issuer=2-Step-Login

เมื่อสร้างแล้วจะได้ QR Code ออกมาประมาณนี้

ทำการสแกน QR Code ที่ได้ เพื่อทำการเพิ่มข้อมูลลงในโปรแกรม Google Authenticator เมื่อเสร็จแล้วจะเห็นว่ามีรหัสของเราขึ้นมาแสดงที่หน้าของโปรแกรม Google Authenticator อย่างในรูป

ขั้นตอนสุดท้าย เขียนโปรแกรมเพื่อทำการตรวจสอบว่ารหัสที่ป้อนเข้ามาถูกต้องหรือไม่

1 2 3 4 5 6 7 8 9 10 11 12 <?php include_once("lib/GoogleAuthenticator.php");   $g = new GoogleAuthenticator();   if ($g->checkCode("DG4WCXVUVYENHLLS",$_GET['code'])) { print "YES \n"; } else { print "NO \n"; }   ?>

อ้างอิง:
http://en.wikipedia.org/wiki/Google_Authenticator
https://github.com/chregu/GoogleAuthenticator.php
https://support.google.com/accounts/answer/1066447?hl=en

LookHin: การตั้งเวลาของเครื่องเซิร์ฟเวอร์ CentOS 6.5

14 October, 2014 - 12:20

พอดีว่าผมกำลังจะทำระบบล๊อกอินในหน้าเว็บไซต์ให้เป็น 2 Step Verification แบบ Time-based One-time Password เลยต้องทำการกำหนดค่าเวลาบนเซิร์ฟเวอร์ให้ตรงกับ NTP Server เลยถือโอกาสเอามาเขียนเก็บไว้หน่อยเป็นบันทึกช่วยจำ โดยจะลองเปลี่ยนทั้งค่า Time Zone ลองตั้งค่าเวลาเอง และกำหนดให้เซิร์ฟเวอร์ใช้ค่าเวลาจาก NTP Server ส่วนเรื่องการทำ Time-based One-time Password ไว้คราวหน้าจะเขียนอีกรอบหนึ่ง

อย่างแรกทำการตรวจสอบก่อนว่าระบบของเราตั้ง Time Zone เป็นประเทศไทยแล้วหรือยัง ด้วยคำสั่ง

1 cat /etc/sysconfig/clock

จะเห็นว่า Time Zone ปัจจุบันของเราเป็น America/New_York ซึ่งจะทำให้เวลาไม่ตรงกับเวลาในประเทศไทย

ถ้าหากยังไม่ใช่ Time Zone ของประเทศไทย ให้ทำการเปลี่ยนด้วยการแก้ไข /etc/sysconfig/clock ให้เป็น ZONE=”Asia/Bangkok”

1 nano /etc/sysconfig/clock

จากนั้นทำการอัพเดท Time Zone ด้วยคำสั่ง

1 tzdata-update

และทำการตรวจสอบเวลาปัจจุบัน

1 date

หากต้องการตั้งเวลาใหม่ ให้ใช้คำสั่ง

1 date MMDDhhmmCCYY.ss

โดยความหมายของตัวอักษรแต่ละตัวดังนี้ครับ MM = month, DD = day, hh = hour, mm = minute, CCYY = 4 digit year, ss = seconds

ตัวอย่าง หากเราต้องการแก้ไขวันเวลาให้เป็นวันที่ 11 October 2014 เวลา 10.10 ก็จะสามารถสั่งได้ดังนี้

1 date 101110102014.00

หรือจะใส่แบบนี้ก็ได้เช่นกัน

1 date -s "10:10:00 October 11, 2014"

จากนั้นเรามาลองทำการตั้งเวลาของเครื่องโดยใช้ Network Time Protocol (NTP) กันต่อเลยครับ เริ่มจากติดตั้ง package ntp กันก่อน

1 yum install ntp

จากนั้นสั่งสตาร์เซอร์วิสและกำหนดให้ ntpd ทำงานทุกครั้งที่เปิดเครื่อง

1 2 service ntpd start chkconfig ntpd on

เรียบร้อยครับ เท่านี้เครื่องของเราก็จะมีเวลาที่ตรงกับ NTP Server แล้วครับ