เรียนรู้ด้วยตนเอง Linux System Administration I และ II

ขอแนะนำแหล่งความรู้สำหรับทุกท่านที่ต้องการเรียนรู้ Linux ซึ่งผมและอาจารย์ฉัตรชัย จันทร์พริ้ม ได้รวบรวมเขียนไว้และจัดอบรมไปแล้ว 1 รุ่น ใน Workshop I สอนด้วย Ubuntu 12.04 และใน Workshop II Ubuntu 14.04 ออกมาพอทันให้ได้ใช้กันครับ Workshop Linux System Administration I (http://opensource.cc.psu.ac.th/WS-LSA1) เนื้อหา เป็นการให้ความรู้ในการทำหน้าที่ system administrator เพื่อดูแลระบบปฏิบัติการ Linux โดยจะใช้ Ubuntu ซึ่งปัจจุบันมีผู้ใช้งานกันมาก โดยจัดเนื้อหาเป็น 2 ตอน ในตอนแรกนี้จะเป็นความรู้จำเป็นที่จะเป็นพื้นฐานไปสู่การเป็นมืออาชีพที่สามารถดูแล server ด้วยตนเองต่อไปได้อย่างมั่นใจ โดยใช้เวลา 2 วัน Workshop Linux System Administration II (http://opensource.cc.psu.ac.th/WS-LSA2) เนื้อหา เป็นการให้ความรู้ในการทำหน้าที่ system administrator เพื่อดูแลระบบปฏิบัติการ Linux โดยจะใช้ Ubuntu ในตอนที่ 2 นี้จะเป็นความรู้ในการติดตั้ง server การดูแล server การป้องกันและตรวจสอบความปลอดภัย server และ web application ที่ติดตั้งในเครื่อง โดยใช้เวลา 2 วัน วิธีการเรียนใน workshop ผู้เรียนจะได้ฝึกปฏิบัติด้วย Ubuntu server ที่ติดตั้งใน Oracle VM Virtualbox ซึ่งเป็นโปรแกรมในการจำลองเครื่องเสมือนจริง สำหรับเพื่อนๆที่ไม่ได้เข้า workshop ลองเข้าไปอ่านกันได้นะครับ และเพื่อนๆที่เข้า workshop ก็ทบทวนได้เมื่อต้องการเรียนรู้ด้วยตนเองเกี่ยวกับ Linux System Administration I และ II

Read More »

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

บทความนี้ จะกล่าวถึง วิธีการปิดช่องโหว่ของ Apache ที่ให้บริการ Web Hosting เลย เผื่อมีผู้ใช้ ติดตั้ง Joomla และมี JCE รุ่นที่มีช่องโหว่ จะได้ไม่สร้างปัญหา และ แนะนำวิธีสำหรับผู้พัฒนาเวปไซต์เองด้วย ที่เปิดให้มีการ Upload ไฟล์โดยผู้ใช้ผ่านทาง Web ด้วย … เพราะหน้าที่นี้ ควรเป็นของ Web Server Administrator ไม่ใช่ของ Web Master หรือ Web Author ครับ จากปัญหาช่องโหว่ของ JCE Exploited ของ Joomla ที่อธิบายไว้ใน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #3 ที่อธิบายขั้นตอนการเจาะช่องโหว่, วิธีตรวจสอบเว็บไซต์ที่โดน Hack #4 ซึ่งเป็นวิธีการตรวจสอบค้นหา และทำลาย Backdoor และ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #11  วิธีการ Incremental Backup ซึ่งสามารถช่วยกู้ไฟล์ได้และรู้ว่า มีไฟล์แปลกปลอมอะไรเกิดบ้าง ซึ่งเป็นการแก้ปัญหาปลายเหตุทั้งสิ้น ส่วน วิธีตรวจสอบเว็บไซต์ที่โดน Hack #5 กล่าวถึงการตรวจสอบว่า Software ที่ใช้งานอยู่มีช่องโหว่อะไรบ้าง ด้วยการตรวจสอบ CVE เป็นต้น สำหรับ JCE Exploited จะพบว่า การวางไฟล์ Backdoor จะเริ่มวางไว้ที่ไดเรคทอรี่ images/stories ที่ แกล้งเป็นไฟล์ .gif แล้วเอาโค๊ด PHP เข้ามาใส่ แล้วเปลี่ยนนามสกุลเป็น .php ภายหลัง ดังนั้น หาก Apache Web Server สามารถ ปิดกั้นตั้งแต่จุดนี้ได้ กล่าวคือ ต่อให้เอาไฟล์มาวางได้ แต่สั่งให้ทำงานไม่ได้ ก็น่าจะปลอดภัย และ หากพัฒนาเวปไซต์เอง หรือ ผู้ใช้ของระบบต้องการให้ Upload ไฟล์ไว้ในไดเรคทอรี่ใดได้ ก็ต้องแจ้งให้ Web Server Administrator รับทราบ และเพิ่มเติมให้ น่าจะทำให้ปลอดภัยมากขึ้นได้ สมมุติฐานคือ ติดตั้ง OS และ Apache Web Server ใหม่ ติดตั้ง Joomla ใหม่ หรือ เอา Web Application ที่ปลอดช่องโหว่อื่นๆ/Backdoor มาลง โดย Joomla ที่มีที่วางไฟล์ภาพไว้ที่ images/stories ส่วน Web Application อื่นๆ ขอสมมุติว่าตั้งชื่อไดเรคทอรี่ว่า uploads สำหรับ Apache2 บน Ubuntu Apache 2.2 นั้น มีโครงสร้างไดเรคทอรี่ดังนี้ /etc/apache2/ |– apache2.conf |       `–  ports.conf |– mods-enabled |       |– *.load |       `– *.conf |– conf.d |       `– * |– sites-enabled         `– * เมื่อ Apache เริ่ม (Start) ก็จะไปอ่าน /etc/apache2/apache2.conf ในนั้น จะกำหนดภาพรวมของระบบ ได้แก่ ใครเป็นคน Start (APACHE_RUN_USER/APACHE_RUN_GROUP), การกำหนดชื่อไฟล์ .htaccess ที่เปิดให้ผู้ใช้ปรับแต่ง Apache ที่แต่ละไดเรคทอรี่ของตนได้, กำหนดว่า จะเรียกใช้ Module อะไรบ้าง โดยการ Include *.load, *.conf

Read More »

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

วันนี้ได้รับรายงาน ร้องเรียนจากองค์กรภายนอก ว่ามีเครื่องคอมพิวเตอร์จาก Domain ของ PSU ส่งข้อมูลจำนวนมาก ไปโจมตี ระบบเครือข่ายที่ต่างประเทศ จึงทำการสืบสวน เบื้องต้น พบว่า มาจากเครื่อง Web Server ของคณะหนึ่ง ซึ่งเพิ่งย้ายจากเครื่องเดิมซึ่งโดน Hack มาก่อน หวังขึ้นเครื่องใหม่ แล้วทุกอย่างคงจะดีขึ้น … แต่ก็ยังไม่ใช่ จึงขออนุญาต ผู้ดูแลระบบของคณะ เข้าตรวจสอบ โดยการสร้าง Account แยกต่างหาก และรายงานทุกขั้นตอนการทำงานให้ทราบ สิ่งที่พบคือ เป็น Ubuntu และใช้ Apache + PHP + MySQL มีการใช้งาน CMS เป็น WordPress เป็นส่วนใหญ่ แต่มี Joomla แค่หนึ่งเดียว นอกจากนั้น ยังพบว่ามี phpMyAdmin ด้วย เริ่มต้นจาก ตรวจสอบตามกระบวนการใน วิธีตรวจสอบเว็บไซต์ที่โตน Hack #4 ก็ไม่พบความผิดปรกติใด ผู้ดูแลระบบแจ้งว่า หลังจากทราบข่าว ก็ตรวจสอบทันที มีข้อสังเกต ว่า มี Process แปลกๆ ทำงาน ซึ่งตรวจสอบด้วยคำสั่ง ps aux ได้ผลว่ามีโปรแกรมแปลกๆ ทำงานในพื้นที่ /tmp และพยายามติดต่อไปภายนอก ดังนี้ ซึ่งทำงานด้วย User ชื่อ www-data ซึ่ง เป็น Web User ซึ่งผิดปรกติ โดยชื่อโปรแกรมที่ทำงาน ชื่อ /tmp/php /tmp/pnscan ดูจากคำสั่ง สงสัยได้ว่า จะมีการติดต่อไปยังภายนอก เพื่อทำการบางอย่าง … จึงตรวจสอบ พบว่าไฟล์ ด้วยคำสั่ง stat /tmp/php stat /tmp/pnscan  ได้ผลดังนี้ /tmp/php ไฟล์สร้างเมื่อประมาณ         2013-12-13 20:22:51 /tmp/pnscan ไฟล์สร้างเมื่อประมาณ     2013-12-13 20:22:35  จึงตรวจสอบต่อ ด้วยคำสั่ง top แล้วเลือกดู เฉพาะ Process ที่ทำงานด้วย www-data โดยกดปุ่ม u แล้ว พิมพ์ www-data ได้ผลดังนี้  จึงเห็น Process แปลกๆ คือ .xx มีเลข PID คือ 24813  จึงไปดูรายละเอียดว่าไฟล์ดังกล่าว อยู่ที่ใด ด้วยคำสั่ง ls -l /proc/24813 ได้ผลดังนี้  จึงทราบว่า Process ดังกล่าว ไปเรียกไฟล์จาก /dev/shm/.xx ซึ่งเป็นส่วนพื้นที่ของ Share Memory จึงลองใช้คำสั่ง ls -la /dev/shm/  ได้ผลดังนี้  พบว่า ไฟล์ดังกล่าว สร้างเมื่อเวลาประมาณ 2013-12-13 22:45 และ มีความพยายามจะสร้างอีกไฟล์ ชื่อ .x เมื่อเวลาประมาณ 2013-12-14 11:47  เพื่อให้เห็นการทำงาน ของ Process ID 24813 ให้ละเอียดยิ่งขึ้น จึงปรับคำสั่ง จาก ps aux เป็น (เพิ่ม we เข้าไป) ps auxwe | grep 24813 เพื่อให้แสดงผล แบบ Wide Output (w) และ แสดง Environment Variable (e) ที่เกี่ยวข้องด้วย ได้ผลดังนี้  จากคำสั่งนี้ ทำให้ทราบว่า Hacker เรียกมาจาก  REMOTE_ADDR=193.51.237.2

Read More »

ติดตั้ง LibreOffice 4.1 บน Ubuntu และ Linux Mint

Add repository โดย repository นี้ใช้ได้สำหรับ Ubuntu รุ่น Precise, Quantal, Raring และ Linux Mint ในรุ่นที่เทียบเคียงกัน เช่น ปัจจุบัน Linux Mint 15 ซึ่งเทียบเคียงได้กับ Ubuntu Raring เป็นต้น ด้วยคำสั่ง sudo add-apt-repository ppa:libreoffice/ppa เนื่องจากในมหาวิทยาลัยสงขลานครินทร์ มีไซต์ http://mirrors.psu.ac.th ซึ่งได้ทำการ mirror ไซต์ต่างๆ ที่จำเป็นไว้แล้วส่วนหนึ่ง รวมถึง repository ของ LibreOffice ด้วย ดังนั้น สามารถใช้งานได้ โดยการแก้แฟ้ม /etc/apt/sources.list.d/libreoffice-ppa-raring.list จากเดิม มีอะไรอยู่ให้แก้เป็นดังนี้ โดยหากเป็น Ubuntu รุ่นอื่นๆ ก็ให้เปลี่ยนคำว่า raring เป็นรุ่นที่ใช้งาน สำหรับ Linux Mint ก็ยังคงใช้รุ่นของ Ubuntu ที่เทียบเคียงกันมาเช่น Linux Mint 15 ก็ให้ใช้ของ raring deb http://mirrors.psu.ac.th/ppa/libreoffice/ raring main สั่ง update ฐานข้อมูล software ด้วยคำสั่ง sudo apt-get update สั่ง upgrade software ซึ่ง LibreOffice จะถูก upgrade ไปในคราวเดียวกันโดยอัตโนมัติด้วยคำสั่ง sudo apt-get -y dist-upgrade จบ.. ขอให้สนุกครับ ที่มา     http://www.ubuntuupdates.org/ppa/libreoffice

Read More »

Mount & fstab

วันนี้หลังจากติดตั้ง OS ใหม่ ก็มานั่งคิดๆ ดูว่าจะใช้ อะไรในการ mount โฟลเดอร์ที่ได้แบ่งแยกไว้แต่แรกมาใช้ได้อย่างไร ซึ่งจากเดิมจะใช้วิธีแก้แฟ้ม /etc/rc.local โดยเพิ่มข้อความเข้าไปประมาณว่า mount –bind /home/sipa /usr/share/fonts/truetype/sipa ซึ่งวันนี้ก็พบว่า มันไม่ทำงาน และเหมือนกับว่าถ้ามีการอัพเดต kernel แฟ้มนี้จะถูกเปลี่ยนกลับเป็นเหมือนเดิม คือ ไม่มีข้อความข้างต้นอยู่ข้างใน (อันนี้ยังไม่ยืนยันเพราะเจอแค่ครั้งเดียว) ต่อมาเลยนั่งมองว่าแล้วเราจะใส่แบบข้างบนลงไปในแฟ้ม /etc/fstab ได้มั้ย ทำอย่างไร ก็ค้นไปเรื่อยๆ พบว่าทำได้ โดยให้ใส่เพิ่มเข้าไปดังนี้ /home/sipa /usr/share/fonts/truetype/sipa none  bind    0 0 เมื่อแก้แฟ้มนี้เสร็จออกมาสั่ง sudo mkdir /usr/share/fonts/truetype/sipa ; sudo mount -a ได้ทันที ได้ผลเป็นที่น่าพอใจ มีอีกวิธี คือการสร้างเป็น Upstart job ทำได้โดย สร้างแฟ้ม /etc/init/mount-bind.conf โดยมีข้อความว่า # # bind mounts # description “bind” start on stopped mountall script mount –bind /home/sipa /usr/share/fonts/truetype/sipa end script ขอให้สนุกครับ ที่มา http://ubuntuforums.org/showthread.php?t=1642616 http://www.linuxforums.org/forum/servers/28252-fstab-mount.html

Read More »