บันทึกการสร้าง LVM Partition

เนื่องจากมี disk ขนาดแค่ 560 GB หลายลูก แต่ต้องการเอามารวมกันให้เป็น Volume ใหญ่ๆ และไม่ใช้ RAID เขียนเป็นบันทึกเก็บไว้ จึงอยากเอามานำเสนอ เผื่อเป็นประโยชน์ 1. มี /dev/sdb , /dev/sdc , /dev/sdd ก้อนละ 560 GB อยู่ ต้องทำ LVM เป้าหมายคือ ต้องการได้ Device สำหรับการ mount ชื่อ /dev/virtual1/logical1 reference: http://www.howtoforge.com/linux_lvm http://www.linuxquestions.org/questions/linux-hardware-18/lvcreate-with-max-size-available-749253/ 2. ติดตั้ง lvm software ด้วยคำสั่ง apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs 3. สร้าง partition ใน physical disk ให้เป็นของ LVM Partition sudo su fdisk /dev/sdb Command (m for help): n Partition type: p Partition number (1-4, default 1): 1 First sector (2048-1073741823, default 2048): Last sector, +sectors or +size{K,M,G} (2048-1073741823, default 1073741823): Command (m for help): t Hex code (type L to list codes): 8e Command (m for help): w ทำเช่นเดียวกับกับทั้ง /dev/sdc, /dev/sdd 4. ต่อไป สร้าง Physical Volume ของ LVM pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 pvdisplay 5. ต่อไป สร้าง Group Volume ของ LVM vgcreate virtual1 /dev/sdb1 /dev/sdc1 /dev/sdd1 vgdisplay vgscan 6. ต่อไป สร้าง Logical Volume ของ LVM (เต็มพื้นที่ที่มี) lvcreate –name logical1 -l 100%Free virtual1 lvdisplay lvscan 7. ต่อไป สร้าง Filesystem แบบ ext4 mkfs.ext4 /dev/virtual1/logical1 8. แก้ fstab แล้ว mount vi /etc/fstab /dev/virtual1/logical1 /var/spool/mailbackup ext4 rw,noatime 0 0 mount -a

Read More »

elvisnox: text is invisible in black background xterm

*Ubuntu 13.04 แก้ปัญหานี้แล้วครับ หลังจากเข้าร่วม ติว “VirtualBox Networking + vi + Shell Scripts” ก็ติดใจใช้แต่ elvis (elvis เป็น vi editor ชนิดหนึ่ง http://fivedots.coe.psu.ac.th/~cj/LUG/vi.pdf สามารถติดตั้งเพิ่มโดยใช้คำสั่ง $sudo apt-get install elvis ซึ่งเมื่อติดตั้งแล้ว elvis จะกลายเป็น default editor ทันที ดูได้จากคำสั่ง $sudo update-alternative –config editor ดังรูป ) มาโดยตลอด ติดอยู่อย่างเดียวคือ เมื่อติดตั้งแล้ว เมื่อเปิด vi ขึ้นมาพบว่าหน้าจอเป็นสีดำทั้งหมด ก็ต้องมาเปลี่ยนสีของ terminal เพื่อให้อ่านออกเป็นแบบนี้ อีกวิธีไม่ต้องแก้สีของโปรไฟล์ คือ แก้ค่าในแฟ้ม /etc/elvis/elvis.clr $sudo vi /etc/elvis/elvis.clr ให้มองหาข้อความ case termcap { แล้วแก้ตรงบรรทัดที่เขียนว่า color normal yellow or black เป็น color normal yellow on black เซฟแล้วลองเรียก vi ใหม่ได้ผลดังนี้ สงสัยจะใส่ค่า config ผิดตั้งแต่ตัวติดตั้ง ขอให้สนุกครับ ที่มา http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474202

Read More »

Recovering Files From ecryptfs Encrypted Home

ผมเจอปัญหาว่ามีเครื่องเสีย ผมต้องเข้าไปช่วยกู้ข้อมูลในดิสก์ที่เสีย แต่ก็พบว่า home directory ได้ทำ encrypt ไว้ในตอนติดตั้ง ubuntu 10.04 desktop ผมจึงค้นหาดูพบหลายบทความ แต่มาลงตัวที่บทความนี้ http://www.kaijanmaki.net/2009/10/26/recovering-files-from-ecryptfs-encrypted-home/ เป็นจุดเริ่มต้นให้ลองทำตามดู ผมทำ Virtual Machine เป็น guest ใน Oracle VM VirtualBox โดยติดตั้ง ubuntu 10.04 desktop (จะลองกับ 12.04 หรืออื่นๆก็คงได้) แล้วลองสร้างไฟล์ test.txt, test2.txt จากนั้น shutdown เครื่อง guest แล้วบูตอีกทีด้วยไฟล์ ubuntu-10.04.4-desktop-i386.iso แล้วเลือก Try ubuntu เมื่อเข้าถึงหน้ากราฟิกแล้ว คลิกเมนู places, เลือก disk ที่ต้องการ จากนั้นเปิด terminal เพื่อออกไปทำงานในโหมด command line ใช้คำสั่ง df ดูจะเห็นว่าดิสก์ถูก mount เป็นชื่อ ดังนี้ /dev/sda1 /media/c460e698-ae7a-478e-a9fa-7ea4beb4f7c6 ให้เข้าทำงานเป็น root ubuntu@ubuntu:~$ sudo su ลองตรวจสอบดูว่ามีอะไรอยู่ข้างในบ้างด้วยคำสั่งข้างล่างนี้ root@ubuntu:~# ls -l /media/c460e698-ae7a-478e-a9fa-7ea4beb4f7c6/home/mama/ total 0 lrwxrwxrwx 1 1000 1000 56 2013-04-10 08:52 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop lrwxrwxrwx 1 1000 1000 52 2013-04-10 08:52 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt ตรวจสอบดูว่าไฟล์ต่างๆ น่าจะซ่อนอยู่ที่ไหนก็พบว่าอยู่ที่นี่ root@ubuntu:~# ls -l /media/c460e698-ae7a-478e-a9fa-7ea4beb4f7c6/home/.ecryptfs/mama/.Private/ total 276 -rw-r–r– 1 1000 1000 12288 2013-04-10 09:10 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC1PAe3rM36mt8nRtyRWtxlE– drwxr-xr-x 4 1000 1000  4096 2013-04-10 09:06 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC2Yj-dqfvpHuYFJe32oPmP— drwx—— 4 1000 1000  4096 2013-04-10 09:05 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC3kM22hNF7litgpIAwtmwtU– drwx—— 2 1000 1000  4096 2013-04-10 09:11 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC7W8YJQSLe20t0XJHf6xjB— -rw-r–r– 1 1000 1000 12288 2013-04-10 08:52 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC9cPIgv52y7AFWY.H1WCtTE– -rw——- 1 1000 1000 12288 2013-04-10 09:05 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC9dcmZbWv.pjpzikXKTE2xU– lrwxrwxrwx 1 1000 1000   104 2013-04-10 08:52 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmC9u1V-uJOrNxm7ZdoXYvX5E– -> ECRYPTFS_FNEK_ENCRYPTED.FXaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCGOuByR46pE4zxC1IyPOC1XMuz8uG9d.Y91Nys0NXy1o- drwx—— 2 1000 1000  4096 2013-04-10 09:06 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCBinhrU4ijNIOXaDLIUmz6— drwxr-xr-x 6 1000 1000  4096 2013-04-10 09:08 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCbQymH7oV5njbGxrao6qK.E– drwx—— 2 1000 1000  4096 2013-04-10 09:11 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCcib.jfkdAKRfPUX3SRC3PE– drwx—— 2 1000 1000  4096 2013-04-10 09:05 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCd8fDbrGkyQn76SLx7OFbWk– drwxr-xr-x 2 1000 1000  4096 2013-04-10 09:05 ECRYPTFS_FNEK_ENCRYPTED.FWaiRtz3Ag4mTURWaW1nT.6mYpw-PkyvsXmCf9KXChgI4vRxtQINyM5f2U–

Read More »

แนวทางการ Backup บน Ubuntu Server (กรณีระบบ PSU EMail)

เนื่องจากจะจัดทำระบบ Backup and Recovery ระบบ Mail ซึ่งทำงานอยู่บน Ubuntu จึงทำการรบรวมข้อมูล และหาแนวทางที่เหมาะสม   ก่อนจะตัดสินใจเลือก แผนการ Backup ที่เหมาะสม ก็ควรพิจารณาเรื่องต่อไปนี้ด้วย [1] 1. WHY: จุดประสงค์การ Backup/Restore, ถ้าข้อมูลสูญหายจริงๆจะเกิดความเสียหายขนาดไหน ? 2. WHAT: สิ่งที่จะทำการ Backup, ทั้ง Hard Drive? หรือเป็นข้อมูลบางส่วน? 3. WHEN: เวลาที่ดีที่สุดที่จะ Backup, บ่อยขนาดไหน, จะทำการ Full/Incremental Backup เมื่อใดบ้าง ? 4. WHERE: เก็บ Backup ไว้ที่ใด, ในเครื่องนั้นๆ, เก็บไว้ภายนอก หรือใช้บริการ Cloud Storage 5. MEDIUM: สื่อที่ใช้จัดเก็บ, USB Stick, External HDD, Tape หรือ Backup Server   ประเภทของการ Backup [1] 1. Full: สำรองทุกสิ่งอย่าง 2. Incremental: สำรองเฉพาะสิ่งที่เพิ่มขึ้นมา นับจากการสำรองครั้งล่าสุด 3. Differential:  เหมือนกับ Incremental แต่เก็บเฉพาะไฟล์ที่ยังไม่ปรับค่า Archive bit (ในกรณี Windows Filesystem)   วิธีการ Backup : จากการสำรวจ พบว่าบน Ubuntu มีเครื่องมือ และวิธีการให้ใช้มากมาย เช่น SimpleBackupSuite, grsync, pybackpack หรือที่ติดมาพร้อมกับ Ubuntu Desktop อย่าง Déjà Dup [1] แต่เครื่องมือเหล่านี้เหมาะสำหรับการใช้งานแบบ Desktop Computer มากกว่า แต่ในระบบ Mail Server ซึ่งมีปริมาณข้อมูลจำนวนมาก และเป็นของผู้ใช้จำนวนมาก (ในระบบมีผู้ใช้รวม 6000 คน) จึงควรต้องมีการทำงานที่ยืดหยุ่นกว่า และสามารถปรับแต่งตามต้องการได้ จึงพิจารณาใช้ tar เพื่อทำการ Full [2] และ Incremental Backup [3] แล้วจึงใช้ rsync ส่งไฟล์ไปเก็บไว้ที่ Backup Server ต่อไป   ในกรณี PSU Email มีลักษณะดังนี้ 1. เก็บ email แต่ละฉบับเป็นแบบไฟล์ ไฟล์ขนาดเล็กๆ 2. ไม่มีการเขียนทับไฟล์เดิม (เว้นแต่ Index ของ Mailbox ซึ่งไม่จำเป็นนัก เพราะ ต้อง rebuild ใหม่เมื่อทำการ restore) 3. เมื่อมี email ใหม่เข้ามา จะทำการสร้างไฟล์ใหม่ โดยแต่ละไฟล์จะเป็นตัวเลข เพิ่มขึ้นเรื่อยๆ ไม่ซ้ำเดิมแน่นอน 4. เมื่อผู้ใช้สามารถ สร้าง และ rename ชื่อ directory ได้ พิจารณาคำถามข้างต้น แล้วให้ตำตอบ WHY: เพื่อสำรอง email ไว้ให้ ในกรณีฉุกเฉินที่ผู้ใช้ลบ email ไปโดยไม่ตั้งใจ WHAT: email อยู่บน disk แยกออกไป, ทำการสำรองเฉพาะไฟล์ใน directory จัดเก็บ ซึ่งใช้เนื้อที่รวม 600 GB ซึ่งเป็นของผู้ใช้ในระบบ 6,000 คน, ข้อมูลมีลักษณะเป็นไฟล์ขนาดเล็กจำนวนมาก และมีการเพิ่มและลดจำนวน แต่ไม่มีการแก้ไขไฟล์, มีการเพิ่ม/ลบ/เปลี่ยนชื่อ directory WHEN: จากสถิติการใช้งาน พบว่า ผู้ใช้ใช้งานน้อยที่สุดหลังเวลา 03:00 ของทุกวัน

Read More »

วิธีตรวจสอบเว็บไซต์ที่โดน Hack #1

จากการเข้าแก้ไขเว็บไซต์ต่างๆที่โดน Hack ในช่วง 2 ปีที่ผ่าน พบว่า จะมีรูปแบบเดิมๆคือ 1. มีการเปิด Permission ของ directory เป็นแบบ 777 หรือ world writable หรือแม้แต่เปิดสิทธิ์ให้ web user เช่น apache/httpd/www-data สามารถเขียนได้ 2. เมื่อมีพื้นที่ให้ web user เขียนได้ แล้ว Web Application นั้นๆ มีช่องโหว่ หรือไม่ก็มีการทำงานปรกติที่เปิดให้ Web User เขียนไฟล์ได้ตามปรกติ ก็เป็นช่องให้เกิดการ “วางไฟล์” ซึ่ง Hacker จะเข้ามาเรียกไฟล์ดังกล่าว ซึ่งจะได้สิทธิเป็น Web User ทำการแก้ไขไฟล์, นำไฟล์ .c มาวางแล้ว compile ต่อไป ซึ่งอาจจะทำให้เกิด Buffer Overflow จนกระทั่งสามารถครอง Server ได้เลย วิธีการที่แนะนำสำหรับการทำ Website ให้ปลอดภัย 1. ในเครื่องที่เป็น Production Server ต้องไม่มี Compiler, Development Tools เช่น gcc อยู่เลย 2. หากใช้ CMS ต่างๆ เช่น Joomla การปรับปรุงหลักๆเช่นการเปลี่ยน Template, เพิ่ม Component หรือ อะไรที่มีการเปลี่ยนแปลงระดับไฟล์ (ไม่รวมการเขียนพวก Article หรือบทความ เพราะเป็นการเขียนไปยัง Database ไม่ใช่ระดับไฟล์) ก็ควร ยกเลิกการทำงานทาง Backend ผ่าน Web แต่ให้ใช้วิธี สร้างหรือปรับเปลี่ยนจากเครื่องทดสอบ แล้วใช้วิธี FTP ขึ้นไป บน Production Server แทน แล้วปรับให้ Owner เป็นอะไรที่ไม่ใช่ Web User หรือ ต้องไม่ให้ Web User เขียนได้ วิธีนี้ อาจจะไม่สะดวก แต่ แลกกับความปลอดภัย เป็นวิธีที่จำเป็น ลองสังเกตว่า ทำไม Joomla รุ่นใหม่ๆ จึงเปิดให้มีการ Update ผ่านทาง FTP ด้วย 3. ถ้า Website มีความจำเป็นต้องให้ผู้ใช้ทั่วไปสามารถ Upload ไฟล์ได้ ต้องเปลี่ยนสิทธิ์ Permission ใน directory ที่เอาไฟล์ขึ้นไปวางนั้น ต้องไม่สามารถ Execute ได้, ลองพิจารณาการใช้ .htaccess ร่วมด้วย 4. ในกรณี CMS ถ้ามีการใช้ Component หรือ Module อะไร ก็ต้องติดตามดูเรื่อง ช่องโหว่ต่างๆ และทำการปรับปรุงรุ่นสม่ำเสมอ ล่าสุด น่าเป็นห่วงกลุ่มที่ใช้ JCE (รุ่นยังไม่แน่ชัด) กับ Phoca Gallery เพราะมีความสามารถในการ Upload ไฟล์และเป็นที่นิยม ทั้งของกลุ่มผู้ใช้และ Hacker อาจจะทำให้ใช้งานยากขึ้น แต่ ถ้าต้องการความปลอดภัย เรื่องเหล่านี้จำเป็นมาก ต่อไป เมื่อพบว่าโดน Hacker เข้ามาเยี่ยมแล้ว … จะมีอาการอย่างไรบ้าง … ล่าสุด พบ Website ที่ใช้ Joomla โดน Hack, โดยเมื่อเปิดไปยัง URL หลัก จะพบว่ามีการ Redirect ไปยัง Website อื่นๆ และเปลี่ยนไปเรื่อย เมื่อลองดู Source โดยการ View Source พบว่ามีการแทรกบรรทัดสุดท้ายไว้ว่า

Read More »