Category Archives: Blog

เครดิตมรณะ

เสะคิเนะ โชโกะ หายตัวไปอย่างไร้ร่องรอย คู่หมั้นหมาดๆ ของเธอขอให้ ฮมมะ ชุนสึเกะ ซึ่งเป็นญาติห่างๆ ช่วยตามหา ฮมมะเป็นตำรวจกองปราบ ถึงแม้ตอนนี้จะอยู่ระหว่างพักฟื้นจากการถูกยิงขณะจับกุมคนร้าย แต่ก็ยากที่เขาจะปฏิเสธ โชโกะหายตัวไปหลังจากคู่หมั้นของเธอพบว่าเธอเป็นบุคคลล้มละลาย หลักฐานเบื้องต้นเพียงอย่างเดียวที่มีอยู่คือจดหมายจากสำนักงานทนายความแจ้งเจ้าหนี้ของโชโกะว่าเธอเป็นบุคคลล้มละลาย .. เป็นเพราะคู่หมั้นเธอรู้ว่าเธอล้มละลายงั้นหรือที่ทำให้เธอหายตัวไป ? เธอหายไปไหน ทำไมแทบไม่มีใครรู้ข้อมูลส่วนตัวของเธอเลย ฮมมะพบว่าการหาข้อมูลของโชโกะนั้นยากเย็นเสียเหลือเกิน จริงๆ แล้วเธอเป็นใครกันแน่ ?

‘เครดิตมรณะ’ แปลมาจากเรื่อง Ka Sha (火車 – 火 = ไฟ, 車 = รถ พาหนะ ล้อ) ของมิยาเบะ มิยูกิ เป็นหนังสือของ Nation Books ออกวางขายก่อน ‘เหตุที่ฆ่า’ เล็กน้อย มีคุณ ฤทัยวรรณ เกษสกุล เป็นผู้แปล สองเรื่องนี้มีอะไรบางอย่างคล้ายคลึงกันอยู่ เหมือนจะย้ำคำถามที่ว่าจริงๆ แล้ว ‘อดีต’ หรือ ‘ตัวตน’ ของคนๆ หนึ่งนั้นคืออะไร ?

เล่มนี้อ่านจบต่อจาก เหตุที่ฆ่า ช่วงไป สิกขิม ภูฏาน .. เช่นเคย มิยาเบะ มิยูกิ ยังคงเสนองานในแบบฉบับของเธออันเป็นเอกลักษณ์เฉพาะตัว สำหรับเรื่องนี้ใช้โครงของการสืบหาตัวละครที่สาบสูญ และอาศัยข้อมูลในการสืบหาในการเผยตัวตนของโชโกะทีละน้อยๆ ชวนให้พลิกหน้าติดตามไปจนจบเล่มนั่นแหละถึงจะวางได้ :)

Ayuthaya + Bangkok

ไปเที่ยวอยุธยาช่วงวันหยุดต้นเดือน เอารูปลงห้องภาพตั้งนานแล้วล่ะ แต่ไม่ได้ blog ไว้ ..

[nggallery id=10]
สองวันต่อมา เที่ยวกรุงเทพฯ .. เกาะรัตนโกสินทร์

[nggallery id=60]
ไปแล้วก็อยากไปอีก .. :D

Scanning AP and Orinoco-based WIFI

WiFi ที่ใช้ชิป Orinoco/Hermes หลังจาก monitor mode ได้ ก็ทำ scanning หา access point ได้พักนึงแล้ว (น่าจะราวๆ kernel >= 2.6.14 หรือ 2.6.15) โดยใช้คำสั่ง

# iwlist eth1 scanning
eth1      Scan completed :
          Cell 01 - Address: 00:80:C8:AD:1A:8D
                    ESSID:"CoE_Office"
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Signal level:-36 dBm  Noise level:-92 dBm
                    Encryption key:off
          Cell 02 - Address: 00:0B:0E:1D:82:00
                    ESSID:"kku-wifi"
                    Mode:Master
                    Frequency:2.462 GHz (Channel 11)
                    Signal level:-63 dBm  Noise level:-85 dBm
                    Encryption key:off
          Cell 03 - Address: 00:0B:0E:1D:82:02
                    ESSID:"kku-wifi-s"
                    Mode:Master
                    Frequency:2.462 GHz (Channel 11)
                    Signal level:-63 dBm  Noise level:-85 dBm
                    Encryption key:on
...

ก่อนจะ scan อาจจะต้อง

# iwconfig eth1 essid off

ซะก่อน .. ไม่งั้นอาจจะ scan ไม่เจอ หรือเจอแค่ตัวที่ associate อยู่ตัวเดียว

QEMU Virtualization

Full virtualization

ในที่สุด QEMU ก็ทำ full virtualization เสียที เร็วขึ้นเป็นกองเลย .. โหลด โหลด qemu >= 0.8.1 + kqemu >= 1.3.0pre7 มาก่อน จากนั้นก็มา build กัน สำหรับบน debian/ubuntu ลง build-essential + gcc 3.x + libsdl-dev ไว้ก่อน ขาดเหลืออะไรก็หามาใส่ให้ครบๆ ละกัน จากนั้นก็

tar -xzf  qemu-0.8.1.tar.gz
cd qemu-0.8.1
./configure --cc=gcc-3.4
make
sudo make install

ใส่ออปชันนิดหน่อย ให้ใช้ gcc 3.x คอมไพล์ เพราะ QEMU คอมไพล์กับ gcc 4 แล้วมีปัญหา (QEMU จะเตือนถ้าพยายามใช้ gcc 4.x)

เสร็จเรียบร้อย ทีนี้ก็เป็นคิวของ kqemu .. อ่อมันเป็นเคอร์เนลมอดูล อาจจะต้องลง kernel-header ด้วยนะ

tar -xzf kqemu-1.3.0pre7.tar.gz
cd kqemu-1.3.0pre7
./configure
make
sudo make install

อ่อ ไม่ต้องแปลกใจว่าทำไมไม่ใช้ --cc=gcc-3.x เพราะ keqmu จะคอมไพล์เป็นเคอร์เนลมอดูล เวลาจะคอมไพล์ควรจะใช้ gcc ตัวเดียวกับเคอร์เนล ไม่ใช่ตัวเดียวกับ qemu .. ทีนี้ก็

$ sudo modprobe kqemu major=0

อาจจะต้อง chmod เล็กน้อย

$ sudo chmod 666 /dev/kqemu

ทีนี้ก็ใช้ virtualization ได้แล้ว โดยใส่ -kernel-kqemu

$ qemu -kernel-kqemu -hda winxp.img

แน่นอนพอเป็น virtualization host OS กับ guest OS จะต้องรันบนแพล็ตฟอร์มเดียวกัน และตอนนี้ QEMU virtualization ไม่ได้สนับสนุน OS ทุกตัว โดยเฉพาะตัวเก่าๆ .. ที่ลองใช้งานผ่าน virtualization ได้ก็มี Windows 2000/XP, Ubuntu 5.10, Fedora Core 2, FreeBSD 4.11 OS ที่ใหม่กว่านี้น่าจะใช้ virtualization ได้ทุกตัว

ทดสอบหยาบๆ บูต OS หลายๆ ตัวบน peorth (Pentium III Mobile 1 GHz) เทียบระหว่างใช้ kqemu เฉยๆ (native memory management) กับ virtualization ก็ได้ผลตามตาราง (หน่วยเป็นวินาที)

Guest OS kqemu virtualization
Windows 2000 63 39
Windows XP 100+ 40
Ubuntu 5.10 204 80
FreeBSD 4.11 10 8

มีข้อสังเกตว่าเวลารัน qemu ปกติจะเห็น CPUID เป็น Pentium II ส่วน virtualization จะเห็น CPUID เป็น CPU ของเครื่องเลย .. ที่พบอีกอย่างคือผลของการปรับ real-time clock frequency .. qemu แนะนำว่าให้ใช้เคอร์เนล 2.6 หรือตั้ง max-user-freq = 1024 พอลองตั้งดูปรากฏว่าลินุกซ์กับบีเอสดีทำงานเร็วขึ้น ในขณะที่ Windows ช้าลงไปมาก โดยเฉพาะ Windows 2000 นั่นแทบบูตไม่ขึ้น และในทางตรงข้าม ถ้าใช้ max-user-freq เป็นค่า default (64) ลินุกซ์ช้าลงเล็กน้อย ส่วน Windows ทำงานเร็วกว่าเดิมเยอะจนเห็นได้ชัด … YMMV

Overlay Image

QEMU ทำ overlay image ได้ด้วยนะ .. หมายความว่าใช้ image ตัวนึงเป็น base ขณะทำงานถ้ามีการบันทึกข้อมูลที่ต่างไปจาก base จะบันทึกเก็บลง overlay image แทน เหมาะมากสำหรับใครที่ต้องการทดลองอะไรแผลงๆ (e.g. penetration test, virus/malware test) เพราะ base image จะคงเดิมไปตลอด ถ้าใช้จนระบบเละเทะก็ลบ overlay image ทิ้งแล้วสร้างใหม่ก็จะได้ระบบเฟรชๆ กลับมาโดยไม่ต้องติดตั้งกันใหม่ หรือจะทำ overlay image หลายๆ สำเนาจะได้จำลองเครื่องหลายๆ เครื่องพร้อมกันโดยไม่ต้องใช้ image โตๆ ก็ได้ .. แจ่มแมวมั่กๆ :D … วิธีสร้าง overlay image ก็ไม่มีอะไรยาก

$ qemu-img create -b winxp.img -f qcow winxp.ovl

ทีนี้เวลาทำงานก็โหลด overlay image แทน

$ qemu -kernel-kqemu -hda winxp.ovl

Networking

เมื่อเทียบกับเวอร์ชัน 0.7 กว่าๆ แล้ว QEMU รุ่นปัจจุบันจัดการระบบเครือข่ายได้ง่ายขึ้นและหลากหลายขึ้นเยอะ .. โดยปริยาย QEMU จะจำลอง DHCP, DNS, SMB server ให้ในตัวพร้อมกับ Firewall/NAT ให้เรียบร้อย guest OS บูตมาก็ใช้งานอินเทอร์เน็ตได้เลย โดย QEMU กำหนดให้ Firewall/NAT/DHCP ใช้ไอพีแอดเดรส 10.0.2.2 ส่วน DNS กับ SMB ใช้ไอพีแอดเดรส 10.0.2.3 และ 10.0.2.4 ตามลำดับ

กรณีที่ต้องการให้ host OS สามารถสื่อสารกับ guest OS ก็มี TAP interface เชื่อมได้

$ sudo modprobe tun
$ sudo chmod 666 /dev/net/tun
$ qemu -kernel-kqemu -net nic -net tap -hda freebsd6.ovl

บรรทัดแรกโหลดเคอร์เนลมอดูล tun สำหรับอินเทอร์เฟซ TUN/TAP จากนั้นก็ตั้ง permission เพื่อให้ user ใช้งาน TUN/TAP ได้ สุดท้าย เรียก qemu โดยใช้ -net nic (emulate NIC) และ -net tap .. อินเทอร์เฟซ tap0 บน host OS จะเชื่อมอยู่บน VLAN เดียวกันกับ emulated NIC ใน guest OS ตั้ง IP ให้อยู่ในเครือข่ายเดียวกันก็ติดต่อกันได้ .. QEMU ใช้สคริปต์ /etc/qemu-ifup คอนฟิก tap0 โหลดสคริปต์ได้จาก linux-test-x.x.x.tar.gz ถ้าไม่อยากโหลดไฟล์ใหญ่ๆ จะเขียนสคริปต์เองก็ได้

#!/bin/sh
sudo /sbin/ifconfig $1 192.168.0.1

สคริปต์นี้จะสร้างอินเทอร์เฟซ tapN และกำหนดไอพีแอดเดรส เป็น 192.168.0.1/24 ส่วนใน guest OS ตั้งไอพีแอดเดรสเป็น 192.168.0.x/24 ไอพีแอดเดรส 192.168.0.1 และ .2 ก็จะรับส่งข้อมูลหากันได้ .. เรื่อง network ของ QEMU ค่อนข้างยาว ถ้ามีโอกาสไว้ค่อยลงรายละเอียดกัน

ทิปเล็กน้อย

เวลาติดตั้ง Windows 2000 บน qemu ต้องใส่ออปชัน -win2k-hack ไปด้วย และถ้าจะติดตั้ง Windows 2000 หรือ XP ห้ามใช้ -kernel-kqemu ตอนที่ติดตั้งเพราะมันจะ BSOD (ติดตั้งให้เสร็จแล้วค่อยใช้ได้) ทั้ง Windows 2000 และ XP ขณะติดตั้งให้ขยับเมาส์ไปๆ มาๆ เรื่อยๆ หรือถ้ามีหน้าต่างแสดงผลก็ให้ลาก ไปๆ มาๆ ไม่งั้นเวลาติดตั้งไปเรื่อยๆ สักพักมันจะนิ่งไปเลย ไม่แฮงค์ ไม่แครช ไม่กินซีพียู หน้าจออัปเดตเรื่อยๆ แต่ไม่ติดตั้งต่อซะงั้น (ประหลาด :P) ..

ถ้าขี้เกียจ chmod 666 /dev/kqemu ทุกครั้ง เดิมใน Ubuntu จะเพิ่ม rule ใน /etc/udev/permission.d/ ตอนนี้มันไม่มีแล้ว ให้สร้างไฟล์ /etc/udev/rules.d/50-kqemu.rules แทน ตามนี้

# kqemu
KERNEL="kqemu", NAME="%k", MODE="0666"

ทีนี้เวลา modprobe kqemu udev จะตั้ง permission เป็น 666 ให้อัตโนมัติ ไม่ต้อง chmod เอง

QEMU เฉพาะเวอร์ชัน 0.8.1 ที่ทดสอบก็เร็วกว่า 0.7 ที่เคยใช้พอสมควรแล้ว พอทำ full virtualization เข้าไปอีกก็ทำงานได้เร็วใกล้ native มากขึ้นไปอีก น่าใช้ขึ้นอีกเยอะ :)

ผีหลอก!

แก๊งค์แมวๆ โดนผี(เสื้อ)หลอกไปถ่ายรูป ที่ สวนผีเสื้อ-สวนรถไฟ เมื่อปลายเดือนที่แล้ว เป็นที่สนุกสนาน :D

[nggallery id=59]

/me .. รูปลงไว้นานแล้วแหละแต่เพิ่งจะมา blog .. :P

V-Gear TalkCam

ที่บ้านมี v-gear talkcam อยู่ตัวนึง เลยเอามาลองใช้กับลินุกซ์ซักหน่อย .. เสียบสาย USB ปุ๊บ .. เงียบ .. สงสัยต้องออกแรงสักหน่อย เริ่มจาก lsusb ก็เห็นว่า

Bus 001 Device 003: ID 0ac8:0302 Z-Star Microelectronics Corp. ...

เอา ID ไปกูเกิ้ล ตามด้วยคำว่า linux .. เจอแวบๆ ว่าใช้ spca5xx ได้ อะฮ้า โหลดเลยครับ.. spca5xx คอมไพล์เป็นเคอร์เนลมอดูลได้เลย ลง kernel-header น่าจะพอ ไม่ต้องลงเคอร์เนลซอร์สมาแพตช์

เอาล่ะ ลงมือได้

$ tar -xzf spca5xx-20060501.tar.gz
$ make
$ sudo make install

เรียบร้อยแล้วก็ทดลองใช้งานกัน

$ sudo modprobe spca5xx

ไฟ V-Gear TalkCam ติดแล้ว … เปิด ekiga คลิกที่กล้อง ภาพก็ปรากฏ :D .. ใครจะซื้อกล้องรุ่นนี้มาใช้ก็อุ่นใจได้ละ :)

Good Bye Apache !

อัปเดตพอร์ตบน FreeBSD วันนี้ ปรากฏว่า mod_php4/5 มันหายไปแล้ว .. เช็ค /usr/ports/UPDATING ก็พบว่า มันโดน remove ออกไปจากพอร์ตจริงๆ เพราะ maintainer ต้องการ unify php4/5 ที่แตกไปหลายแพ็คเกจให้เหลือ แค่ php4/5 เพื่อตัดปัญหาทางเทคนิคบางอย่าง และลดภาระการดูแล

เลยได้ pkg_delete mod_php5 และ php5-extensions อีกกระบุงใหญ่ออกไป แล้วค่อยไปติดตั้ง lang/php5 แทน .. จริงๆ ใน make config ของ php5 สามารถเลือกคอมไพล์ apache module ก็ได้ แต่เห็นค่าปริยายมี cli + cgi และสนับสนุน fast-cgi ก็น่าจะลองดูสักหน่อย .. หลังจากติดตั้ง php5 แล้วค่อยมาติดตั้ง lang/php5-extensions ตาม

มาคิดอีกที ถ้าใช้ fast-cgi ทำไมต้องใช้ apache ด้วยล่ะเนี่ยะ (- -)a .. โรคชอบ mini ก็กลับมาอีก เว็บเซิร์ฟเวอร์เบาๆ มีให้ใช้หลายตัว e.g. thttpd, boa, lighttpd .. เห็น lighttpd โฆษณาว่า เล็ก เร็ว ปลอดภัย ฟีเจอร์ก็พอดีๆ กับที่ต้องการใช้ (e.g. userdir, vhost, fast-cgi, IPv6) กูเกิ้ลดูแล้วเรื่อง troubleshoot ก็พอจะอุ่นใจได้ .. ตัดสินใจ portinstall lighttpd ซะ .. คอนฟิกไม่ค่อยคุ้นแต่ก็ไม่ยากอะไร เสร็จสรรพก็ pkd_delete apache ออก .. ช่วงนี้ก็ลองใช้ lighttpd ดูสักพัก อย่างน้อยเวลาอัปเกรดพอร์ตก็ไม่ต้องคอมไพล์ apache ใหม่ครั้งละนานๆ :P

SSH Brute-Force Attack Still

จริงๆ เหตุการณ์ SSH brute-force/password guessing/dictionary attack นี่เกิดมา 2 ปีเห็นจะได้แล้วล่ะ ทุกวันนี้ก็ยังไม่มีทีท่าว่าจะลดลง คาดว่าใครที่ดูแลระบบยูนิกซ์และลินุกซ์ที่ใช้ SSH คงเจอกันถ้วนหน้า .. จริงๆ แล้วคงมีโอกาสไม่มากเท่าไหร่ที่จะโดนแจ๊คพ็อตเดารหัสผ่านถูก แต่ประมาทไม่ได้เหมือนกัน เจอ failed password for root ซัก 1-2000 ครั้งในวันเดียวมันก็ไม่ค่อยสบายใจเท่าไหร่ จะว่าไปแล้ว ส่วนใหญ่จะประสาทกินไปกับรายงาน failed password นี่แหละ (- -‘) .. อย่างไรก็ตาม มันก็พอจะมีวิธีปิดช่องในการโจมตี หรือลดโอกาสในการโจมตีได้หลายแบบ

  • วิธีที่ใช้อยู่เวลานี้คือใส่ AllowUsers หรือ AllowGroups ใน /etc/ssh/sshd_config บังคับให้ login ได้เฉพาะ user ที่อนุญาต .. ก็โชคดีที่เครื่องที่ดูแลทั้งหมดมี user ไม่เยอะ เครื่องที่มีเยอะก็ group ไว้ค่อยข้างดี .. สบายไป
  • อีกวิธี คือ ยกเลิกการใช้ password และ challenge-response authentication หันไปใช้ public-key authentication แทน โดยแก้ที่ /etc/ssh/sshd_config เหมือนกัน .. วิธีนี้วางใจได้แน่นอน แต่ไม่ค่อยสะดวกสำหรับผู้ใช้เท่าไหร่
  • อีกวิธีที่นิยมใช้กันก็คือติดตั้ง DenyHost ซึ่งจะตรวจสอบ log ถ้ามี login failed จาก IP เดิมๆ มันจะเอา IP ไปใส่ใน host.deny อัตโนมัติ

ชอบแบบไหนก็เลือกเอาได้ .. ถ้าไม่ชอบซักวิธีก็กูเกิ้ลหาวิธีอื่นเอาละกัน :)

FreeBSD EoL

วันที่ 1 มิ.ย. นี้ FreeBSD 4.10 จะครบอายุขัย และจะไม่มี support จาก FreeBSD Security Team อีกต่อไป แนะนำว่าใครที่ใช้อยู่ให้ย้ายไป FreeBSD 5 หรือ 6 แทน .. FreeBSD 5.4 ทีแรกก็จะหมดอายุขัยในวันเดียวกัน แต่เห็นว่าจะขยายไปถึงเดือนตุลาคม 2006 .. เวอร์ชันอื่นๆ โดยสรุปแล้วก็จะเป็นตามตารางนี้

Branch Release Type Release Date End of Life
RELENG_4 n/a n/a n/a Jan. 31, 2007
RELENG_4_10 4.10-RELEASE Extended May 24, 2004 May 31, 2006
RELENG_4_11 4.11-RELEASE Extended Jan. 25, 2005 Jan. 31, 2007
RELENG_5 n/a n/a n/a May 31, 2008
RELENG_5_3 5.3-RELEASE Extended Nov. 6. 2004 Oct. 31, 2006
RELENG_5_4 5.4-RELEASE Normal May 9, 2005 Oct. 31, 2006
RELENG_5_5 5.5-RELEASE n/a n/a May 31, 2008
RELENG_6 n/a n/a n/a May 2008 or later
RELENG_6_0 6.0-RELEASE Normal Nov. 4, 2005 Nov. 30, 2006
RELENG_6_1 6.1-RELEASE Extended May 9, 2006 May 31, 2008

ที่มา: FreeBSD SA

mrxvt

หา X terminal emulator ที่ตรงใจมานานแล้ว ในที่สุดก็เจอเสียที – mrxvt มีอะไรเจ๋งๆ หลายอย่าง

small footprint .. ps aux ดู ..

Terminal Emulator VSS RSZ
gnome-terminal 31592 12836
xterm 9548 3484
mrxvt 5880 3220

แสดงผลเร็วมาก .. ลอง time ls -la /usr/bin ..

Terminal Emulator Real User Sys
gnome-terminal 0m1.016s 0m0.064s 0m0.068s
xterm 0m3.055s 0m0.084s 0m0.044s
mrxvt 0m0.297s 0m0.108s 0m0.040s
  • tabbed terminal เหมือนกับ gnome-terminal ใช้ ctrl+shift+t เปิดแท็บใหม่ ใช้ alt+1, 2, 3, … เลือกแท็บ หรือจะใช้คีย์อื่นก็คอนฟิกได้
  • option เหมือนกับ xterm เกือบจะเป๊ะ ปกติใช้ xterm -ls -fg gray -bg black ก็ยก args มาใช้กับ mrxvt ได้เลย :D
  • option เด็ดๆ อีกหลายอย่าง เช่น translucent (ใช้กับ Xorg 6.8) มี -thai ด้วย .. และถ้ายอมตัดฟีเจอร์บางอย่าง (e.g., mouse scrolling, translucent) mrxvt-mini จะมี footprint เล็กกว่า mrxvt ธรรมดาอีกราวๆ 2 MB แต่ขนาดตัดฟีเจอร์แล้วก็ยังเยอะกว่า xterm อยู่ดี

apt-get install mrxvt หรือ mrxvt-mini ได้เน้อะ :D