Author Archive

SSH โดยไม่ต้องใส่รหัสผ่าน

Posted by กวิน ชัยเลิศ on Friday, January 16th, 2009

สำหรับผู้ดูแลระบบที่มีความจำเป็นต้องใช้งาน Remote Login ผ่าน OpenSSH Client อยู่เป็นประจำไม่ว่าจะใช้งานบน Linux, *BSD, Mac OS X คงจะเกิดอาการเบื่อไม่น้อยที่ต้องพิมพ์ Password ทุกๆ ครั้งที่ต้องการจะ Login (ไม่นับ Password จำพวก 123456 นะครับ) ทางออกสำหรับผู้ที่ต้องการ Login โดยไม่ต้องพิมพ์ Password แถมยังคงความปลอดภัยตามแบบฉบับของ OpenSSH สามารถทำได้ตามวิธีดังต่อไปนี้ครับ

ระบบที่ทำการทดสอบ
- OpenSSH Client บน Mac OS X 10.5.6
- OpenSSH Server บน Ubuntu 8.04

ขั้นตอนแรก ทำการสร้าง keys สำหรับยืนยันตัวตนระหว่าง Client และ Server (ทำบนเครื่อง Client ในที่นี้คือ Mac OS X)

MacClient:~ UserA$ ssh-keygen -t rsa
MacClient:~ UserA$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/UserA/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/UserA/.ssh/id_rsa.
Your public key has been saved in /Users/UserA/.ssh/id_rsa.pub.
The key fingerprint is:
a4:74:0b:bc:2f:d1:f5:c7:4e:90:51:7f:f4:45:84:a0 UserA@MacClient

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

วิธีตรวจสอบ Linux / Unix distribution version

Posted by กวิน ชัยเลิศ on Friday, January 16th, 2009

กรณีที่ผู้ดูแลระบบได้รับมอบหมายให้ดูแล server ที่ตนเองไม่ได้ติดตั้ง คงจะอยากรู้ว่า Linux / Unix server ที่ใช้อยู่เป็น version อะไร …
สามารถตรวจสอบได้จากคำสั่งต่อไปนี้ครับ

cat /proc/version

ได้ Output ประมาณนี้ครับ

Linux version 2.6.27-9-generic (buildd@rothera) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Thu Nov 20 21:57:00 UTC 200

หรือดู version ในไฟล์ /etc/issue
(issue – pre-login message and identification file)

cat /etc/issue

ได้ Output ประมาณนี้ครับ

Ubuntu 8.10 \n \l

* ทดสอบบน Ubuntu 8.10

Mac OS X (แมค โอเอส เท็น)

Posted by กวิน ชัยเลิศ on Monday, December 8th, 2008

“Mac OS X” หลายๆ คนอาจเข้าใจผิดออกเสียงโอเอสตัวเก่งของ Apple ว่า “โอเอส เอ็ก” ซึ่งความจริงแล้วโอเอสที่ว่านี้ทาง Apple ตั้งใจให้ออกเสียงว่า “โอเอส เท็น” (ผมก็คนนึงละที่เคยเรียกมันว่า “โอเอส เอ็ก”)

ทำไมต้องออกเสียง X ว่า “เท็น” ?

ตัวอักษร “X” หมายถึงเลขสิบในระบบโรมัน และอ่านออกเสียงว่า “เท็น” (Ten, แปลว่า “สิบ” ในภาษาอังกฤษ) และยังแสดงถึงรุ่นที่ต่อมากจากแมคโอเอสตัวก่อนหน้านี้คือ แมคโอเอส 9 นอกจากนี้ตัวอักษร X ยังแสดงถึงความเป็นยูนิกซ์ (UNIX) ในตัวโอเอสด้วย ซึ่งแมคโอเอสเท็นได้ใช้ยูนิกซ์ที่เป็นโอเพนซอร์สที่ชื่อว่า Darwin เป็นแกนกลาง

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

วิธีติดตั้ง Reverse Proxy ด้วย Squid

Posted by กวิน ชัยเลิศ on Friday, July 11th, 2008

ในเบื่องต้นผมขอแนะนำให้รู้จัก Squid กันก่อนครับ

Squid เป็น Open Source Software ที่ให้บริการ Proxy caches ซึ่ง Squid สามารถติดตั้งให้ทำงานใน 3 รูปแบบหลักดังนี้

1. Standard Proxy Cache
ใช้สำหรับเก็บ cache ของ static web pages จำพวก html และรูปภาพ โดยทั่วไปมักจะถูกใช้งานใน network ภายในองค์กร โดยที่ web pages ต่างๆ ที่ถูกเรียกผ่าน local network เป็นครั้งที่สอง web browser จะแสดงผล web pages นั้นผ่าน proxy cache แทนที่ไปดึงข้อมูลจาก web server มาแสดงผล (ประหยัด bandwidth และเพิ่มความเร็วในการแสดงผล)

2. Transparent Cache
ความสามารถหลักๆ เหมือนกับการติดตั้งแบบ standard proxy cache จะแตกต่างกันที่การติดตั้งแบบ transparent cache ไม่จำเป็นต้องปรับแต่ง web browser ให้สามารถใช้งาน proxy cache โดยที่ transparent cache จะทำหน้าที่คอยกรอง HTTP traffic (on port 80) แล้วตรวจสอบว่า request นั้นมีอยู่ใน cahce หรือไม่ ถ้าไม่มีก็จะทำการส่งต่อไปยัง web server ของ web pages นั้น (สำหรับ Linux การใช้งาน transparent cache จะใช้ควบคู่ไปกับ iptables ในการกรอง HTTP traffic)

3. Reverse Proxy Cache
สำหรับ reverse proxy cache จะทำหน้าที่แตกต่างกับ standard และ transparent caches โดยที่ reverse proxy cache จะทำหน้าที่ลดภาระของ web server แทนที่การลด network bandwidth ของฝั่ง client กล่าวคือ reverse proxy cache ถูกติดตั้งอยู่หน้า web server (ระหว่าง internet และ web server) คอยจัดการ traffic ที่เกิดขึ้นทั้งหมดก่อนจะถึง web server ป้องกัน traffic ที่เพิ่มขึ้นโดยไม่พีงประสงค์ (ซึ่งอาจจะโดนโจมตีจาก hacker เป็นต้น) อีกทั้งยังลดภาระของ web server อีกทางนึง

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

แก้ปัญหาลืมรหัสผ่านของ FreeBSD

Posted by กวิน ชัยเลิศ on Tuesday, July 8th, 2008

แก้ปัญหาลืมรหัสผ่านของ root บน FreeBSD ง่ายๆ ตามนี้ครับ

1. Restart FreeBSD (Ctrl+Alt+Delete หรือ กดปุ่ม Reset T_T)
2. พิมพ์ boot -s ที่ Boot: prompt (เพื่อเข้า Single User Mode)
3. Enter (ตอนมีคำถามให้เลือก Shell)
4. ใช้คำสั่ง mount -urw / เพื่อให้สามารถอ่าน/เขียน ไฟล์ได้

mount -urw /

5. ใช้คำสั่ง mount -a (remount ระบบไฟล์ทั้งหมด)

mount -a

6. ใช้คำสั่ง passwd root เพื่อเปลี่ยนรหัสผ่านของ root

passwd root

เพียงเท่านี้ก็สามารถกลับมาใช้ root ได้ตามปกติครับ

ยกเลิก Blank Screen บน Linux Console

Posted by กวิน ชัยเลิศ on Thursday, July 3rd, 2008

ไม่ยากใช่ไหมครับหากต้องการยกเลิก screen saver บน X window แต่สำหรับ text mode (linux console) ผมคิดว่าหลายๆ คนยังไม่เคยยกเลิก blank screen หรือกำลังหาทางยกเลิกมันอยู่ สำหรับผมแล้วการยกเลิก blank screen บน linux console นั้นมีประโยชน์มากครับ ยกตัวอย่างเช่น เราสามารถทำงานไปพร้อมๆ กันกับการ monitor ดู error หรือ log จากอีกจอนึง (กรณีมีจอ monitor มากกว่าหนึ่งจอ) โดยที่ไม่ต้องคอยกดคีย์บอร์ดหรือเลื่อนเมาส์เพื่อให้ linux console แสดงผลอยู่ตลอดเวลา

สำหรับวิธีการนั้นก็ไม่ได้ยุ่งยากเลยครับ แค่ใช้คำสั่ง setterm เท่านั้น

setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1

หากต้องการยกเลิก blank screen ทุกครั้งหลังจาก start linux ให้ทำการเพิ่มคำสั่งดังกล่าวในไฟล์ /etc/rc.local เพียงเท่านี้ก็ไม่ต้องคอยกดคีย์บอร์ดหรือเลื่อนเมาส์ทุกๆ 5 นาทีแล้วครับ

inittab หายไปไหนใน ubuntu 8.04

Posted by กวิน ชัยเลิศ on Wednesday, July 2nd, 2008

หลายๆ คนอาจจะสงสัยว่าทำไมไม่มีไฟล์ /etc/inittab อยู่บน ubuntu 8.04 (ที่จริงมันหายไปตั้งแต่ ubuntu 6.10 แล้วละครับ) บางคนอาจจะคิดว่าติดตั้งผิดหรือเผลอลบไปตอนไหน อันที่จริงแล้ว /etc/inittab ไม่ได้หายไปหรอกครับเพียงแต่ ubuntu เปลี่ยนการใช้งาน /sbin/init daemon (System-V init) ไปเป็น Upstart แทน สำหรับผมแล้วรู่สึกว่าการใช้งาน System-V init มันง่ายกว่ากันเยอะเลย … ผมใช้งาน Upstart คล่องเมื่อไหร่จะมาเขียนให้เพื่อนๆ ได้อ่านกันอีกครั้ง

จัดเก็บ Logs ของ ADSL Router ด้วย syslog บน CentOS

Posted by กวิน ชัยเลิศ on Wednesday, June 25th, 2008

แค่ออกแรงปรับแต่ง ADSL Router (ZyXel P660HW-T1) กับ syslog บน CentOS เพิ่มเติมอีกนิดก็จะสามารถจัดเก็บ Logs ของ ADSL Router ได้แล้วครับ

ขั้นแรกทำการแก้ไข file “/etc/sysconfig/syslog” โดยเพิ่ม -r เข้าไปที่ SYSLOGD_OPTIONS ซึ่งเดิมๆ จะเป็นตามนี้ครับ

SYSLOGD_OPTIONS="-m 0"

หลังจากทำการแก้ไข

SYSLOGD_OPTIONS="-r -m 0"

เพิ่ม -r เข้าไปยัง SYSLOGD_OPTIONS เพื่อจะบอกให้ syslog daemon ยอมรับ logs จากเครื่องหรืออุปกรณ์อื่นๆ

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

เปลี่ยน default editor บน ubuntu

Posted by กวิน ชัยเลิศ on Tuesday, June 24th, 2008

จากประสบการณ์ที่ผ่านมา default editor บน linux และ *bsd มักจะเป็น vi ซึ่งตามปกติแล้ว system administrator (sysadmin) จำเป็นต้องใช้ default editor ของ os ในหลายๆ เหตุการณ์ เช่น ใช้ในคำสั่ง crontab เป็นต้น

หลังจากที่ติดตั้ง Ubuntu 8.04 hardy ก็พบว่า default editor ไม่ใช่ vi ที่ผมคุ้นเคย กลับกลายเป็น nano editor หน้าตาเหมือนกับ pineapple สมัยที่ linux ยังไม่เฟื่องฟู (pine e-mail client) ไม่รู้ว่าคนแก่แถวๆ นี้มีใครนิยมกิน pine บ้างครับ … เพื่อไม่ให้ยืดเยื้อไปกว่านี้ เรามาเปลี่ยน default editor บน ubuntu กันดีกว่าครับ

คลิกที่นี่เพื่อดูส่วนที่เหลือ »

ติดตั้ง Linux ผ่าน Network ด้วย PXE Server

Posted by กวิน ชัยเลิศ on Saturday, June 21st, 2008

มาทำความรู้รักกับ PXE กันก่อนครับ
PXE หรือ Preboot eXecution Environment เป็น Open Standard ที่พัฒนาขึ้นโดย Intel ซึ่ง PXE นี้จะยอมให้ Computer ต่างๆ (Server, PC, Laptop, Notebook ที่ BIOS ลองรับ PXE Booting) สามารถ boot ผ่าน network ได้ไม่ต้องง้อ floppy, cd หรือ dvd กันเลยทีเดียว (มันสุดยอดจริงๆ ครับ)

มาลุยกันเลยครับ
Server : CentOS 5.1 + dhcp + tftp-server + httpd + syslinux
Client : Ubuntu 8.04

เอาเป็นว่าทุกๆ ท่านติดตั้ง CentOS ไว้เป็นที่เรียบร้อย ทีนี้ก็เป็นขั้นตอนการติดตั้ง PXE Server ละครับ

แปลงร่างเป็น root

su -

ติดตั้ง dhcp, tftp-server, httpd และ syslinux

yum install dhcp tftp-server httpd syslinux

เตรียม install files (ผมเลือกติดตั้ง Ubuntu 8.04)
>>วิธี mount iso image บน linux

wget http://ftp.science.nus.edu.sg/linux/ubuntu-ISO/8.04/ubuntu-8.04-server-i386.iso
mkdir -p /var/www/html/mirror/ubuntu/8.04
mount -o loop ubuntu-8.04-server-i386.iso /var/www/html/mirror/ubuntu/8.04
cp -fr /var/www/html/mirror/ubuntu/8.04/install/netboot/* /tftpboot

คลิกที่นี่เพื่อดูส่วนที่เหลือ »