เมื่อ Cluster = เครื่องที่บ้าน + เครื่องบนคลาวด์

เรื่องมีอยู่ว่า แต่ไหนแต่ไรผมให้บริการหน้าเว็บต่างๆ ผ่านทางเน็ตบ้านกับ Raspberry Pi มาตลอด และเพราะเป็นเน็ตบ้านและอยู่ที่บ้าน มันก็จะได้รับผลกระทบจากปัญหาจำพวกไฟดับ/เน็ตหลุด/ฯลฯ อยู่เรื่อยๆ ดังนั้น ในเดือนพฤษจิกายนปีที่แล้ว ผมจึงตัดสินใจเช่าเครื่อง VPS จาก DigitalOcean เพื่อช่วยให้บริการหน้าเว็บในเวลาที่เครื่องที่บ้านมีปัญหา แต่ถ้าผมจะย้ายทุกอย่างมาที่ VPS เครื่องนี้ แล้วผมจะมี Raspberry Pi ไปเพื่อ????? Continue reading เมื่อ Cluster = เครื่องที่บ้าน + เครื่องบนคลาวด์

พูดได้อย่างกับ “พ่อเป็นฝรั่ง”

เผอิญว่า เมื่อไม่กี่วันก่อน เพื่อนผมแชร์เพลงประกอบภาพยนตร์ I fine, thank you, love you? ซึ่งเรื่องนี่เป็นหนังปีที่แล้ว แล้วผมก็นึกถึงภาพนี้:

Continue reading พูดได้อย่างกับ “พ่อเป็นฝรั่ง”

The passing of the greatest king in Thai’s history.

kingbhumibolgrayscale

PS. This post is written in English to avoid Thai’s royal word and, more importantly, to prevent some of my personal opinions to make me in trouble.

Today, 13 October 2016, after 70 years of never-ending care in Thai people, King Bhumibol passed away. I think this is pretty big lost to Thai people because he is respected by virtually everyone in the country. At this time, all TV channels are broadcasting how great is him. Continue reading The passing of the greatest king in Thai’s history.

360 ล้านเหตุผลว่าทำไมเราควรทำลายรหัสผ่านทั้งหมดซะ!

บทความนี้เป็นการนำบทความ “360 million reasons to destroy all passwords” โดย Quincy Larson เจ้าของ Free Code Camp มาเล่าใหม่ อ่านต้นฉบับได้ที่นี่ครับ

https://medium.freecodecamp.com/360-million-reasons-to-destroy-all-passwords-9a100b2b5001

มีอะไรกับรหัสผ่าน?

เรื่องมีอยู่ว่า LinkedIn Tumblr และ Myspace เพิ่งโดนแฮกและปล่อยรหัสผ่านออกมา (ใครใช้บริการพวกนี้อยู่รีบไปเปลี่ยนรหัสเลยนะครับ) คุณ Quincy ก็เลยคิดว่ารหัสผ่านมันมีความปลอดภัยแค่ไหนกัน Continue reading 360 ล้านเหตุผลว่าทำไมเราควรทำลายรหัสผ่านทั้งหมดซะ!

รัน Cisco ASAv บน Virtualbox

วันดีคืนดีผมอยากจะลองรัน Cisco ASA บนคอมขึ้นมา ก็เลยลองหาข้อมูลดู พบว่าวิธีที่จะทำได้คือใช้ ASAv ซึ่งเป็น VM ซึ่งออกแบบให้ทำงานบน VMWare หรือ QEMU แน่นอนว่าผมไม่มี VMWare ผมก็ต้องใช้รุ่น QEMU

ค้นในกูเกิล เค้าบอกว่าให้ไปหาไฟล์ asav932-200.qcow2 มาลองดู ก็ไปค้นมา จนเจอ ก็ลองรันดู

qemu-system-x86_64 -m 2048M -boot c -hda ./asav932-200.qcow2 -enable-kvm

ปัญหาคือ ต่อให้เปิด KVM แล้ว มันก็ยังช้าอยู่ ผมก็เลยลองเอาไปรันบน Virtualbox ดู ตอนแรกก็ทำไม่ได้ แครชทันที ลองดูในคอนโซล

info: running in virtualbox virtual environment.

อืม… มันรู้ด้วยว่าเราใช้ Virtualbox แฮะ หรือว่ามันจะล็อคไว้? อย่างนี้ต้องลอง spoof ว่าเป็น QEMU ดู

#!/bin/sh
MACHINE_NAME="ASAv"

VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" SeaBIOS
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVersion" "Ubuntu-1.8.2-1ubuntu1"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSReleaseDate" "04/01/2014"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "QEMU"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "Standard PC (i4400FX + PIIX, 1996)"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "pc-i440fx-vivid"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor" "QEMU"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisType" 0
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVersion" "pc-i440fx-vivid"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiProcVersion" "pc-i440fx-vivid"
VBoxManage setextradata "$MACHINE_NAME" "VBoxInternal/Devices/pcbios/0/Config/DmiProcManufacturer" "QEMU"

ลองรันดูอีกที ได้เว่ยเฮ้ย! สรุปคือโค้ดของเค้าจะตรวจสอบว่าตัวเองกำลังรันอยู่บนอะไร และถ้ามันไม่รู้จักมันก็จะไม่ยอมให้รัน

สรุปว่า จะรัน ASAv บน Virtualbox ได้ มีขั้นตอนดังนี้

  1. สร้าง VM ขึ้นมาใน Virtualbox ตั้ง OS เป็น Linux 2.6 / 3.x / 4.x ตั้งแรมเป็น 2048 MB ขึ้นไป (น้อยกว่านี้ บน QEMU ก็รันไม่ได้ครับ) ไม่ต้องสร้างฮาร์ดดิสก์ (เราจะจัดการอีกที)
  2. แก้การตั้งค่านิดหน่อย
    • System -> Motherboard -> Boot order เอาอย่างอื่นนอกจาก Hard Disk ออก
    • Audio -> Enable Audio ติ๊กออกเลย ไม่ได้ใช้
    • Network -> Adapter 1-4 ติ๊ก Enable ให้หมดเลย (ผมไม่แน่ใจว่าเพิ่มทีหลังได้มั้ย เลยก็เพิ่มเสียตอนนี้เลย)
    • Serial Ports -> Port 1 ติ๊ก Enable ไว้ก็ดีนะ
  3. แปลงไฟล์กันนิดหน่อย เปิด Terminal ขึ้นมา รันคำสั่ง
    qemu-img -O vdi /path/to/asav932-200.qcow2 ~/VirtualBox\ VMs/(VM Name)/asav932-200.vdi

    (ถ้ามันบอกว่า “command not found” ให้ลงแพกเกจ qemu-utils นะครับ)

  4. จากนั้น เอาสคริปต์ข้างบนไปใส่ในเท็กซ์ไฟล์ (สมมุติว่าชื่อ spoof.sh) แก้ชื่อ VM ให้เหมือนกับที่ตั้งไปเมื่อครู่ แล้วรัน
    sh ./spoof.sh

    สคริปต์จะตั้งค่าชื่อของระบบให้เหมือนกับ QEMU ซะ ASAv จะได้เชื่อว่าเรารันอยู่บน QEMU

  5. แก้การตั้งค่าของ VM อีกรอบ ไปที่ Storage -> Controller: SATA เพิ่มฮาร์ดดิสก์ที่เพิ่งแปลงไปเมื่อ 2 ข้อที่แล้ว
  6. คราวนี้ ลองรันดูได้เลย ถ้าในคอนโซลมีคำว่า
    info: running in kvm virtual environment.

    แปลว่าระบบหลงกลเราแล้วครับ เราสามารถใช้ ASAv ได้เลย

อย่างไรก็ตาม หากไม่มีไลเซนส์ของ ASAv ระบบจะจำกัดทราฟฟิกให้ไม่เกิน 100 Kbps เท่านั้นนะครับ ซึ่งก็น่าจะพอสำหรับการทดสอบทั่วไป ซึ่งถ้าจะจำลองอะไรที่ซับซ้อนหน่อย ผมแนะนำให้ใช้โปรแกรม GNS3 ซึ่งสามารถจำลองเราเตอร์ของ Cisco หรือจำลองฮับ จำลองสวิตช์ ได้หลายอย่าง ซึ่งเราสามารถเชื่อมต่อ VM ใน Virtualbox ได้เลย

เร่งความเร็วให้ WordPress บน Raspberry Pi (และบน Server ทุกแบบ)

จากความเดิมตอนที่แล้ว ผมใช้แพกเกจของ Debian ในการติดตั้ง WordPress บน Raspberry Pi ซึ่งถ้าผมไม่ทำการเร่งความเร็วเนี่ย เวลาจะดูบล็อกครั้งนึงจะต้องใช้เวลา 2-3 วินาทีในการโหลดหน้าเว็บ ซึ่งผมเห็นว่ามากเกินไป ผมจึงใช้ปลั๊กอินตัวนึงของ WordPress ที่มีชื่อว่า W3 Total cache

วิธีการเซ็ตก็ไม่ยุ่งยาก เริมจาก: Continue reading เร่งความเร็วให้ WordPress บน Raspberry Pi (และบน Server ทุกแบบ)

การติดตั้ง WordPress บน Debian โดยใช้แพกเกจของ Debian (+PHP-FPM บน Apache แบบง่ายที่สุด)

บล็อกนี้รันอยู่บน Raspberry Pi Model B ซึ่งรัน Raspbian (Debian สำหรับ ARMv6) ตอนติดตั้งผมจึงคิดที่จะใช้แพกเกจของ Debian ในการติดตั้ง ซึ่งก็ต้องทำอะไรหลายอย่างเหมือนกัน เริ่มจาก

Hello world!

และแล้วก็ได้ติดตั้ง WordPress ซักที หลังจากที่ผัดผ่อนมานาน นี่เป็นโพสแรกสำหรับบล็อกนี้ ต่อไปจะมีโพสต์เกี่ยวกับ Linux, Android, Ubuntu touch, Network และ อื่นๆ แต่ช่วงนี้ใกล้สอบแล้วก็คงยังไม่ได้อัพเร็วๆ นี้นะ 🙂

ปล. บล็อกนี้รันบน Raspberry Pi Model B ฉะนั้น ถ้าช้าอย่าว่ากันนะ หาทางปรับปรุงอยู่เหมือนกัน